如果您也是用 hexo 搭建的個人部落格,不妨一試。
部落格主題選擇
目前我的個人部落格是基於GitHub Pages,用hexo搭建的,詳細教程:《手把手教你建github技術部落格by hexo》,主題用的NexT.Pisces,之所以選擇這套主題是喜歡他的簡潔。
我有個需求
一直我有一個需求,想把我的部落格文章都帶上公眾號二維碼,這樣方便大家訂閱。之前做法,寫了個公共,在文章詳情呼叫。我也想過要不要自己也製作個屬於自己的主題,看完《從零開始製作 Hexo 主題》,感覺沒那麼簡單,html,JS,CSS我都是略知一二,製作主題恐怕要花精力,還不如用現有的主題,那如何用NexT主題,滿足我這個需求呢?hexo主題的文章詳情頁面是post.swig,我先寫了個公用的ad.swig:
<div>
<h1><b>聯絡我</b></h1>
1、Android技術交流剩者為王④群:331553260。
<a target="_blank" href="//shang.qq.com/wpa/qunwpa?idkey=d129018d31e801e676743da4b05a1063f88ae52ca0407579666545596bdb7a52"><img border="0" src="//pub.idqqimg.com/wpa/images/group.png" alt="剩者為王④群" title="剩者為王④群"></a>
<img src="https://user-gold-cdn.xitu.io/2017/4/24/ebb002fe754241b1115c6a46d1493121.png" style="margin-top: 20px; width: 40%; height: 40%"/>
<br>
2、我的小密圈:更多分享只對你公開,¥99/永久。
<img src="https://user-gold-cdn.xitu.io/2017/4/20/d0c6c0fac33f8e624260032e0158c06c.png" style="margin-top: 20px; width: 40%; height: 40%"/>
<br>
</div>複製程式碼
然後在post.swig引用,放到文章詳情內容的後面:
<!--省略前面程式碼-->
<div class="post-body" itemprop="articleBody">
{# Gallery support #}
{% if post.photos and post.photos.length %}
<div class="post-gallery" itemscope itemtype="http://schema.org/ImageGallery">
{% set COLUMN_NUMBER = 3 %}
{% for photo in post.photos %}
{% if loop.index0 % COLUMN_NUMBER === 0 %}<div class="post-gallery-row">{% endif %}
<a class="post-gallery-img fancybox"
href="{{ url_for(photo) }}" rel="gallery_{{ post._id }}"
itemscope itemtype="http://schema.org/ImageObject" itemprop="url">
<img src="{{ url_for(photo) }}" itemprop="contentUrl"/>
</a>
{% if loop.index0 % COLUMN_NUMBER === 2 %}</div>{% endif %}
{% endfor %}
{# Append end tag for `post-gallery-row` when (photos size mod COLUMN_NUMBER) is less than COLUMN_NUMBER #}
{% if post.photos.length % COLUMN_NUMBER > 0 %}</div>{% endif %}
</div>
{% endif %}
{% if is_index %}
{% if post.description and theme.excerpt_description %}
{{ post.description }}
<!--noindex-->
<div class="post-button text-center">
<a class="btn" href="{{ url_for(post.path) }}">
{{ __('post.read_more') }} »
</a>
</div>
<!--/noindex-->
{% elif post.excerpt %}
{{ post.excerpt }}
<!--noindex-->
<div class="post-button text-center">
<a class="btn" href="{{ url_for(post.path) }}{% if theme.scroll_to_more %}#{{ __('post.more') }}{% endif %}" rel="contents">
{{ __('post.read_more') }} »
</a>
</div>
<!--/noindex-->
{% elif theme.auto_excerpt.enable %}
{% set content = post.content | striptags %}
{{ content.substring(0, theme.auto_excerpt.length) }}
{% if content.length > theme.auto_excerpt.length %}...{% endif %}
<!--noindex-->
<div class="post-button text-center">
<a class="btn" href="{{ url_for(post.path) }}{% if theme.scroll_to_more %}#{{ __('post.more') }}{% endif %}" rel="contents">
{{ __('post.read_more') }} »
</a>
</div>
<!--/noindex-->
{% else %}
{% if post.type === 'picture' %}
<a href="{{ url_for(post.path) }}">{{ post.content }}</a>
{% else %}
{{ post.content }}
{% endif %}
{% endif %}
{% else %}
{{ post.content }}
<!--廣告-->
{% include 'ad.swig' %}
{% endif %}
</div>
<!--省略後面程式碼-->複製程式碼
這樣就能隨便加什麼,每天文章都有了,這樣的做法基本解決了我的這個需求。
最初想法
其實我最初的想法把二維碼固定在一個位置,前端不怎麼會,一直沒去弄,最終我還是花點時間去看了。_layout.swig是頁面模板檔案,固定二維碼應該寫在這個檔案,於是我網上找了如何寫固定內容,找到一個放在右下角程式碼,但與置頂按鈕衝突,又想放到左下角,改改程式碼,看了效果,似乎不太搭,又改到右上角,頁面兩邊平衡了,還是感覺那裡不對勁,想了想,乾脆放右邊且垂直居中,改改程式碼,搞定,_layout.swig程式碼:
<!--省略前面程式碼-->
<head>
<!--省略部分程式碼-->
<style type="text/css">
.div_right_bottom {
width: 200px;
top: 50%;
right: 0px;
position: fixed;
margin-top: -100px;
_position: absolute;
}
</head>
<body itemscope itemtype="http://schema.org/WebPage" lang="{{ page.lang || page.language || config.language }}">
<div class="div_right_bottom" align="center">
<img src="http://open.weixin.qq.com/qr/code/?username=MrWuXiaolong"/>
微信公眾號
</div>
<!--省略前面程式碼-->
</body>
</html>複製程式碼
這些程式碼並不難,就把他當成Android xml屬性,分別有哪些值,什麼意思搞明白就好了。
實際效果
頁面上下滑動,這個二維碼始終固定在那裡不動。
相關連結
手把手教你建github技術部落格by hexo
wuxiaolong.me/2015/07/31/…NexT主題
github.com/iissnan/hex…從零開始製作 Hexo 主題
www.ahonn.me/2016/12/15/…我的部落格
wuxiaolong.me/