<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Share_Icons on 小M平碎碎念</title>
    <link>https://www.lilmp.com/tags/share_icons/</link>
    <description>Recent content in Share_Icons on 小M平碎碎念</description>
    <image>
      <url>https://www.lilmp.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</url>
      <link>https://www.lilmp.com/%3Clink%20or%20path%20of%20image%20for%20opengraph,%20twitter-cards%3E</link>
    </image>
    <generator>Hugo -- gohugo.io</generator>
    <language>en-us</language>
    <lastBuildDate>Thu, 30 Jun 2022 04:47:06 +0800</lastBuildDate><atom:link href="https://www.lilmp.com/tags/share_icons/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>新增LINE分享按鈕</title>
      <link>https://www.lilmp.com/2022-06-30/%E6%96%B0%E5%A2%9Eline%E5%88%86%E4%BA%AB%E6%8C%89%E9%88%95/</link>
      <pubDate>Thu, 30 Jun 2022 04:47:06 +0800</pubDate>
      
      <guid>https://www.lilmp.com/2022-06-30/%E6%96%B0%E5%A2%9Eline%E5%88%86%E4%BA%AB%E6%8C%89%E9%88%95/</guid>
      <description>這篇教你如何在hugo blog中新增自訂分享按鈕！</description>
      <content:encoded><![CDATA[<h2 id="寫在前面">寫在前面</h2>
<p>社群分享對自媒體或是創作者來說一直是一個很重要的功能。從創作者的角度來說，花費好大的心力寫好一篇文章，當然不希望只是擺在家裡孤芳自賞；而從讀者的角度來說，看到一篇實用、知識量高的文章，也會希望能有快速方便的管道，將文章分享出去，因此一鍵分享的功能可說是引導流量的一個重要關鍵。</p>
<p>Hugo是一個客制化程度很高的靜態部落格系統，內建有社群分享的功能，且有數不清的主題可以套用並修改。
以本站的主題PaperMod為例，當然也有內建社群分享按鈕<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup>囉！</p>
<p>以台灣來說，LINE大概是最多人使用的社群軟體，很可惜這並沒有整合到PaperMod主題裡面，所幸研究了一下，發現要達成這件事並不困難，以下就手把手跟著我做吧！</p>
<h2 id="1-啟用sharebutton功能">1. 啟用ShareButton功能</h2>
<p>首先先來看看文章分享按鈕在Hugo/PaperMod中是如何實現的。
找到config.yml檔案，並在params區塊中添加以下參數：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yml" data-lang="yml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">ShowShareButtons</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w"> </span><span class="c"># 啟用ShareButton</span><span class="w">
</span></span></span></code></pre></div><p>如此便會啟用社群分享功能，隨便點開一篇文章，滑到最下面應該就可以看到出現各式各樣的社群分享按鈕。
<figure class="align-center ">
    <img loading="lazy" src="/posts/hugo-add-social-share-buttons/share-button-list.jpg#center" width="70%"/> <figcaption>
            內建分享按鈕有 twitter、linkedin、reddit、facebook、whatsapp、以及telegram (由左至右)
        </figcaption>
</figure>
</p>
<h3 id="11-特定sharebutton">1.1 特定ShareButton</h3>
<p>如果只想要特定的 share button(s)，則只要在原本的ShowShareButtons處添加下面這行即可：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yml" data-lang="yml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">ShowShareButtons</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="c"># 從6個內建分享按鈕中，加入欲新增的shareButton(s)，用&#34;,&#34;隔開</span><span class="w">
</span></span></span><span class="line hl"><span class="cl"><span class="w">    </span><span class="nt">ShareButtons</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;twitter&#34;</span><span class="p">,</span><span class="s2">&#34;facebook&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;telegram&#34;</span><span class="p">]</span><span class="w"> 
</span></span></span></code></pre></div><figure class="align-center ">
    <img loading="lazy" src="/posts/hugo-add-social-share-buttons/few-buttons.jpg#center"/> <figcaption>
            只顯示指定的按鈕
        </figcaption>
</figure>

<h2 id="2-新增自定義按鈕">2. 新增自定義按鈕</h2>
<p>接下來找到share_icons.html檔案。</br>
原始檔案位置在<code>{site name}/themes/PaperMod/layouts/partials/share_icons.html</code>，我們把它複製出來並貼到<code>{site name}/layouts/partials/share_icons.html</code><sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup></p>
<h3 id="21-share_iconshtml">2.1 share_icons.html</h3>
<p>share_icons.html裡面有預設六種的社群分享按鈕，隨便取一個出來觀察程式結構：</br>
(大概在62行附近)</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre tabindex="0" class="chroma"><code><span class="lnt">62
</span><span class="hl"><span class="lnt">63
</span></span><span class="hl"><span class="lnt">64
</span></span><span class="hl"><span class="lnt">65
</span></span><span class="hl"><span class="lnt">66
</span></span><span class="hl"><span class="lnt">67
</span></span><span class="hl"><span class="lnt">68
</span></span><span class="hl"><span class="lnt">69
</span></span><span class="lnt">70
</span></code></pre></td>
<td class="lntd">
<pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl">{{- if (cond ($custom) (in $ShareButtons &#34;telegram&#34;) (true)) }}
</span></span><span class="line hl"><span class="cl"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span> <span class="na">rel</span><span class="o">=</span><span class="s">&#34;noopener noreferrer&#34;</span> <span class="na">aria-label</span><span class="o">=</span><span class="s">&#34;share {{ $title | plainify }} on telegram&#34;</span>
</span></span><span class="line hl"><span class="cl">    <span class="na">href</span><span class="o">=</span><span class="s">&#34;https://telegram.me/share/url?text={{ $title }}&amp;amp;url={{ $pageurl }}&#34;</span><span class="p">&gt;</span>
</span></span><span class="line hl"><span class="cl">    <span class="p">&lt;</span><span class="nt">svg</span> <span class="na">version</span><span class="o">=</span><span class="s">&#34;1.1&#34;</span> <span class="na">xml:space</span><span class="o">=</span><span class="s">&#34;preserve&#34;</span> <span class="na">viewBox</span><span class="o">=</span><span class="s">&#34;2 2 28 28&#34;</span><span class="p">&gt;</span>
</span></span><span class="line hl"><span class="cl">        <span class="p">&lt;</span><span class="nt">path</span>
</span></span><span class="line hl"><span class="cl">            <span class="na">d</span><span class="o">=</span><span class="s">&#34;M26.49,29.86H5.5a3.37,3.37,0,0,1-2.47-1,3.35,3.35,0,0,1-1-2.47V5.48A3.36,3.36,0,0,1,3,3,3.37,3.37,0,0,1,5.5,2h21A3.38,3.38,0,0,1,29,3a3.36,3.36,0,0,1,1,2.46V26.37a3.35,3.35,0,0,1-1,2.47A3.38,3.38,0,0,1,26.49,29.86Zm-5.38-6.71a.79.79,0,0,0,.85-.66L24.73,9.24a.55.55,0,0,0-.18-.46.62.62,0,0,0-.41-.17q-.08,0-16.53,6.11a.59.59,0,0,0-.41.59.57.57,0,0,0,.43.52l4,1.24,1.61,4.83a.62.62,0,0,0,.63.43.56.56,0,0,0,.4-.17L16.54,20l4.09,3A.9.9,0,0,0,21.11,23.15ZM13.8,20.71l-1.21-4q8.72-5.55,8.78-5.55c.15,0,.23,0,.23.16a.18.18,0,0,1,0,.06s-2.51,2.3-7.52,6.8Z&#34;</span> <span class="p">/&gt;</span>
</span></span><span class="line hl"><span class="cl">    <span class="p">&lt;/</span><span class="nt">svg</span><span class="p">&gt;</span>
</span></span><span class="line hl"><span class="cl"><span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">{{- end }}
</span></span></code></pre></td></tr></table>
</div>
</div><p>觀察後發現，每個按鈕的結構其實都很類似：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl">{{- if (cond ($custom) (in $ShareButtons &#34;telegram&#34;) (true)) }}　<span class="c">&lt;!-- 頭尾兩個大括號先不管 --&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">target</span> <span class="na">rel</span> <span class="na">aria-label</span> <span class="na">href</span> <span class="p">&gt;</span> <span class="c">&lt;!-- 這段定義按下icon後的動作 --&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">svg</span><span class="p">&gt;</span>...<span class="p">&lt;/</span><span class="nt">svg</span><span class="p">&gt;</span> <span class="c">&lt;!-- 其實這裡放的就是icon的圖形 --&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">{{ - end }} <span class="c">&lt;!-- 頭尾兩個大括號先不管 --&gt;</span>
</span></span></code></pre></div><blockquote>
<p>那麼只要土炮一個類似的東西，應該就可以達成目的了吧！</p>
</blockquote>
<h3 id="22-加入line圖示">2.2 加入line圖示</h3>
<p>先來處理icon的部分，查了一下開發者說明的文件<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>，提到希望icon盡量參照<code>feathericon</code> <code>simpleicons</code>的設計風格，來去這兩個地方找找吧！</p>
<ul>
<li><a href="https://feathericons.com/?query=line" target="_blank" >feathericon</a>
</li>
<li><a href="https://simpleicons.org/?q=line" target="_blank" >simpleicons</a>
</li>
</ul>
<p>bingo! 在simpleicons還真的找到了，把它的svg檔下載下來並用vs code開啟。
<figure class="align-center ">
    <img loading="lazy" src="/posts/hugo-add-social-share-buttons/simpleicons.jpg#center" width="100%"/> <figcaption>
            記得要選svg!
        </figcaption>
</figure>
</p>
<p>用文字編輯器打開後，看到這一長串，這就是我們要的！複製起來等等用。</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">svg</span> <span class="na">role</span><span class="o">=</span><span class="s">&#34;img&#34;</span> <span class="na">viewBox</span><span class="o">=</span><span class="s">&#34;0 0 24 24&#34;</span> <span class="na">xmlns</span><span class="o">=</span><span class="s">&#34;http://www.w3.org/2000/svg&#34;</span><span class="p">&gt;&lt;</span><span class="nt">title</span><span class="p">&gt;</span>LINE<span class="p">&lt;/</span><span class="nt">title</span><span class="p">&gt;&lt;</span><span class="nt">path</span> <span class="na">d</span><span class="o">=</span><span class="s">&#34;M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346 0 .627.285.627.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346 0 .628.285.628.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314&#34;</span><span class="p">/&gt;&lt;/</span><span class="nt">svg</span><span class="p">&gt;</span>
</span></span></code></pre></div><h3 id="23-按下按鈕的動作">2.3 按下按鈕的動作</h3>
<p>接下來處理按下按鈕的動作。</p>
<p>觀察a標籤裡面的東西，和其他按鈕比較一下</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">target</span> <span class="na">rel</span> <span class="na">aria-label</span> <span class="na">href</span> <span class="p">&gt;</span> <span class="c">&lt;!-- 這段定義按下icon後的動作 --&gt;</span>
</span></span></code></pre></div><ul>
<li>target=&quot;_blank&quot;表示是按下後開啟新分頁</li>
<li>rel, aria-label　大家都差不多</li>
<li>關鍵在href</li>
</ul>
<p>google 關鍵字 [line 按鈕 分享]，找到「建立line分享按鍵」那篇文章<sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>
<figure class="align-center ">
    <img loading="lazy" src="/posts/hugo-add-social-share-buttons/line-share.jpg#center"/> <figcaption>
            紅色框裡面的東西是我們要放在href的地方的東西
        </figcaption>
</figure>
</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl">https://social-plugins.line.me/lineit/share?url=
</span></span></code></pre></div><h3 id="24-組合在一起">2.4 組合在一起</h3>
<p>按鈕部分的程式碼如下：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl">{{- if (cond ($custom) (in $ShareButtons &#34;line&#34;) (true)) }}
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">a</span> <span class="na">target</span><span class="o">=</span><span class="s">&#34;_blank&#34;</span> 
</span></span><span class="line"><span class="cl">    <span class="na">rel</span><span class="o">=</span><span class="s">&#34;noopener noreferrer&#34;</span> 
</span></span><span class="line hl"><span class="cl">    <span class="na">aria-label</span><span class="o">=</span><span class="s">&#34;share {{ $title | plainify }} on line&#34;</span>  
</span></span><span class="line hl"><span class="cl">    <span class="na">href</span><span class="o">=</span><span class="s">&#34;https://social-plugins.line.me/lineit/share?url={{ $pageurl }}&#34;</span> <span class="p">&gt;</span> 
</span></span><span class="line"><span class="cl"><span class="c">&lt;!-- 以下直接複製line的svg圖形 --&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;</span><span class="nt">svg</span> <span class="na">role</span><span class="o">=</span><span class="s">&#34;img&#34;</span> <span class="na">viewBox</span><span class="o">=</span><span class="s">&#34;0 0 24 24&#34;</span> <span class="na">xmlns</span><span class="o">=</span><span class="s">&#34;http://www.w3.org/2000/svg&#34;</span><span class="p">&gt;&lt;</span><span class="nt">title</span><span class="p">&gt;</span>LINE<span class="p">&lt;/</span><span class="nt">title</span><span class="p">&gt;&lt;</span><span class="nt">path</span> <span class="na">d</span><span class="o">=</span><span class="s">&#34;M19.365 9.863c.349 0 .63.285.63.631 0 .345-.281.63-.63.63H17.61v1.125h1.755c.349 0 .63.283.63.63 0 .344-.281.629-.63.629h-2.386c-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63h2.386c.346 0 .627.285.627.63 0 .349-.281.63-.63.63H17.61v1.125h1.755zm-3.855 3.016c0 .27-.174.51-.432.596-.064.021-.133.031-.199.031-.211 0-.391-.09-.51-.25l-2.443-3.317v2.94c0 .344-.279.629-.631.629-.346 0-.626-.285-.626-.629V8.108c0-.27.173-.51.43-.595.06-.023.136-.033.194-.033.195 0 .375.104.495.254l2.462 3.33V8.108c0-.345.282-.63.63-.63.345 0 .63.285.63.63v4.771zm-5.741 0c0 .344-.282.629-.631.629-.345 0-.627-.285-.627-.629V8.108c0-.345.282-.63.63-.63.346 0 .628.285.628.63v4.771zm-2.466.629H4.917c-.345 0-.63-.285-.63-.629V8.108c0-.345.285-.63.63-.63.348 0 .63.285.63.63v4.141h1.756c.348 0 .629.283.629.63 0 .344-.282.629-.629.629M24 10.314C24 4.943 18.615.572 12 .572S0 4.943 0 10.314c0 4.811 4.27 8.842 10.035 9.608.391.082.923.258 1.058.59.12.301.079.766.038 1.08l-.164 1.02c-.045.301-.24 1.186 1.049.645 1.291-.539 6.916-4.078 9.436-6.975C23.176 14.393 24 12.458 24 10.314&#34;</span><span class="p">/&gt;&lt;/</span><span class="nt">svg</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl"><span class="p">&lt;/</span><span class="nt">a</span><span class="p">&gt;</span>
</span></span><span class="line"><span class="cl">{{ - end }} 
</span></span></code></pre></div><p>注意看 highlight 起來的那兩行</br>
aria-label：只是把 on &ldquo;telegram&rdquo; 改成 on &ldquo;line&quot;</br>
href 的最後面則是加上 {{ $pageurl }}：這樣才會在按下按鈕後自動帶入文章的 url</p>
<p>最後一步了，我們來處理頭尾的雙括號！</p>
<h3 id="25-處理頭尾雙括號">2.5 處理頭尾雙括號</h3>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-html" data-lang="html"><span class="line"><span class="cl">{{- if (cond ($custom) (in $ShareButtons &#34;line&#34;) (true)) }}
</span></span></code></pre></div><p>看到關鍵字<code>if</code> <code>in</code> <code>$shareButtons</code> <code>&quot;line&quot;</code>，感覺是必須要把&quot;line按鈕&quot;註冊到　$ShareButtons　列表裡面，才可以正常運作/顯示。</p>
<p>參考上面<a href="#11-%e7%89%b9%e5%ae%9asharebutton" >特定ShareButton段落</a>
，回到<code>config.yml</code>把line加到列表裡吧!</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-yml" data-lang="yml"><span class="line"><span class="cl"><span class="nt">params</span><span class="p">:</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">ShowShareButtons</span><span class="p">:</span><span class="w"> </span><span class="kc">true</span><span class="w">
</span></span></span><span class="line"><span class="cl"><span class="w">    </span><span class="nt">ShareButtons</span><span class="p">:</span><span class="w"> </span><span class="p">[</span><span class="s2">&#34;twitter&#34;</span><span class="p">,</span><span class="s2">&#34;facebook&#34;</span><span class="p">,</span><span class="w"> </span><span class="s2">&#34;telegram&#34;</span><span class="p">,</span><span class="s2">&#34;line&#34;</span><span class="p">]</span><span class="w"> 
</span></span></span></code></pre></div><p>大功告成啦!!!</p>
<figure class="align-center ">
    <img loading="lazy" src="/posts/hugo-add-social-share-buttons/result.jpg#center"/> <figcaption>
            Line按鈕出現啦~~~感動~~~
        </figcaption>
</figure>

<!-- raw HTML omitted -->
<h2 id="註解文章連結">註解&amp;文章連結</h2>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p><a href="https://github.com/adityatelange/hugo-PaperMod/wiki/Icons#share-icons" target="_blank" >PaperMod主題支援的分享按鈕列表</a>
 (檢自開發者的github說明文件)&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>一般會避免直接改動<code>themes</code>資料夾下的原始檔案，原因有二：1. hugo預設會先讀取<code>{site name}/layouts</code>下的設定(在這裡做客制化)，如果該資料夾沒有檔案才會去<code>{site name}/themes/PaperMod/layouts</code>下面找，這樣的好處是，如此一來一旦自己把blog改壞了，至少還有範本可以參考。2. 主題開發者有可能會因為增加新功能而更新資源，如果重新遠端clone repo的話，之前修改過的東西就會被蓋掉了。&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p><a href="https://github.com/adityatelange/hugo-PaperMod/pull/733" target="_blank" >討論icon風格的PR(pull request)</a>
&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>直接幫你<a href="https://developers.line.biz/zh-hant/docs/line-social-plugins/install-guide/using-line-share-buttons/" target="_blank" >找好了</a>
，是不是很貼心！&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>
]]></content:encoded>
    </item>
    
  </channel>
</rss>
