hexo+github創建個人博客--深入篇

  • 內容簡介

    此篇文章介紹的是個人博客的一些配置內容,包含博客項目的介紹、主題配置、圖床配置以及各種第三方功能插件的使用,若還未搭建個人博客的哥們可以先參考hexo+github創建個人博客--基礎篇搭建出自己的個人博客。


  • hexo項目介紹

    1.目錄結構介紹

    • .deploy #需要部署的文件
    • node_modules #Hexo插件
    • public #生成的靜態網頁文件
    • scaffolds #模板
    • source #博客正文和其他源文件,404、favicon、CNAME 都應該放在這里
    • _drafts #草稿
    • _posts #文章
    • themes #主題
    • _config.yml #全局配置文件
    • package.json

    2.全局配置文件介紹

    title: 個人博客     //頁面標題
    subtitle: 玉面小飛龍     //小標題
    description: 賊溜     //描述
    author: Little Dragon       //作者
    language: zh-CN     //語言
    timezone:       //時區
    
    # URL
    ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
    url: https://halomelody.github.io/      //個人域名
    root: /     //根目錄
    permalink: :year/:month/:day/:title/        //文章創建后生成的目錄結構
    permalink_defaults:
    
    # Directory     //變量與目錄的對應情況
    source_dir: source
    public_dir: public
    tag_dir: tags
    archive_dir: archives
    category_dir: categories
    code_dir: downloads/code
    i18n_dir: :lang
    skip_render:
    
    # Writing
    new_post_name: :title.md # File name of new posts
    default_layout: post
    titlecase: false # Transform title into titlecase
    external_link: true # Open external links in new tab
    filename_case: 0
    render_drafts: false
    post_asset_folder: false
    relative_link: false
    future: true
    highlight:
      enable: true
      line_number: true
      auto_detect: false
      tab_replace:
      
    # Home page setting
    # path: Root path for your blogs index page. (default = '')
    # per_page: Posts displayed per page. (0 = disable pagination)
    # order_by: Posts order. (Order by date descending by default)
    index_generator:        //分頁設置
      path: ''
      per_page: 5
      order_by: -date
      
    # Category & Tag
    default_category: uncategorized
    category_map:
    tag_map:
    
    # Date / Time format
    ## Hexo uses Moment.js to parse and display date
    ## You can customize the date format as defined in
    ## http://momentjs.com/docs/#/displaying/format/
    date_format: YYYY-MM-DD
    time_format: HH:mm:ss
    
    # Pagination
    ## Set per_page to 0 to disable pagination
    per_page: 5
    pagination_dir: page
    
    # Extensions
    ## Plugins: https://hexo.io/plugins/
    ## Themes: https://hexo.io/themes/
    theme: yilia        //主題配置
    
    # Deployment
    ## Docs: https://hexo.io/docs/deployment.html
    deploy:     //發布對應的github賬號
      type: git
      repo: git@github.com:haloMelody/haloMelody.github.io.git
      branch: master
    
    

  • 主題配置

    1.主題選擇

    • 網上好的主題有很多,可以點擊選擇,本文介紹的是yilia主題

    2.配置主題

    • 從github上下載主題

      git clone https://github.com/litten/hexo-theme-yilia.git
      
    • 將主題配置到個人博客中,在根目錄的全局配置文件中修改此變量(主題項目中也有_config.yml配置文件)

      theme: yilia
      
    • 主題配置文件介紹(摘要)

      # Header,主題頁面顯示鏈接
      menu:
        主頁: /
        所有文章: /archives
      # Content
      # 文章太長,截斷按鈕文字
      excerpt_link: more
      # 文章卡片右下角常駐鏈接,不需要請設置為false
      show_all_link: '展開全文'
      # 數學公式
      mathjax: false
      # 是否在新窗口打開鏈接
      open_in_new: false
      # 打賞
      # 打賞type設定:0-關閉打賞; 1-文章對應的md文件里有reward:true屬性,才有打賞; 2-所有文章均有打賞
      reward_type: 1
      # 打賞wording
      reward_wording: 老板大氣,謝謝老板!
      # 支付寶二維碼圖片地址,跟你設置頭像的方式一樣。比如:/assets/img/alipay.jpg
      alipay: http://ou36vgj5u.bkt.clouddn.com/image/blog/alipay.JPG
      # 微信二維碼圖片地址
      weixin: http://ou36vgj5u.bkt.clouddn.com/image/blog/wechatpay.JPG
      
      # 目錄
      # 目錄設定:0-不顯示目錄; 1-文章對應的md文件里有toc:true屬性,才有目錄; 2-所有文章均顯示目錄
      toc: 1
      # 根據自己的習慣來設置,如果你的目錄標題習慣有標號,置為true即可隱藏hexo重復的序號;否則置為false
      toc_hide_index: true
      # 目錄為空時的提示
      toc_empty_wording: '目錄,不存在的…'
      
      # 是否有快速回到頂部的按鈕
      top: true
      
      # Miscellaneous,網站統計
      baidu_analytics: '24451a8b853bb443019686be21dfdff4'
      google_analytics: ''
      favicon: http://ou36vgj5u.bkt.clouddn.com/image/blog/fav.ico
      
      #你的頭像url
      avatar: http://ou36vgj5u.bkt.clouddn.com/image/blog/head.jpg
      
      #是否開啟分享
      share_jia: true
      
      #評論:1、多說;2、網易云跟帖;3、暢言;4、Disqus 不需要使用某項,直接設置值為false,或注釋掉
      #具體請參考wiki:https://github.com/litten/hexo-theme-yilia/wiki/
      #1、多說
      duoshuo: false
      #2、網易云跟帖
      wangyiyun: false
      #3、暢言
      changyan_appid: false
      changyan_conf: false
      #4、Disqus 在hexo根目錄的config里也有disqus_shortname字段,優先使用yilia的
      disqus: false
      #disqus_shortname: halomelody
      
      # slider的設置
      slider:
        # 是否默認展開tags板塊
        showTags: true
      
      # 智能菜單
      # 如不需要,將該對應項置為false
      # 比如
      #smart_menu:
      #  friends: false
      smart_menu:
        innerArchive: '文章查找'
        friends: '友鏈'
        aboutme: '關于我'
        #tagcloud: '標簽'
      
      #friends:
      aboutme: little dragon
      
      # 頁面統計 true為開啟
      #page_count: false
      
      # 站點統計 true為開啟
      #site_count: true
      
    • 彈框配置

      • 首先需要具備hexo中nodeJS版本高于6.2才可以生效(下載最新的nodeJS->得到的hexo可以即可滿足,可以通過hexo -v查看nodeJS版本)
      hexo-yilia-pop
      hexo-yilia-pop
      • 在根目錄配置文件中添加如下內容:
      jsonContent:  
        meta: false  
        pages: false  
        posts:  
          title: true  
          date: true  
          path: true  
          text: true  
          raw: false  
          content: false  
          slug: false  
          updated: false  
          comments: false  
          link: false  
          permalink: false  
          excerpt: false  
          categories: false  
          tags: true
      
      • 執行清除,生成,其服務等操作查看效果
    • 標簽配置

    title: hexo+github創建個人博客--深入篇
    tags: 
        - hexo
        - github
        - yilia
    
    • 文章分類
    title: hexo+github創建個人博客--深入篇
    categories: 瞎搞
    
    • 目錄配置
    title: hexo+github創建個人博客--深入篇
    toc: true
    
    • 內容截斷

      • 主題配置文件中配置截斷顯示的文字,excerpt_link: more ,此處顯示為more
      • 在文章中鍵入該注釋,即可在該位置生效:
      <!-- more -->
      
    • 相冊功能(待實現)


  • github同步本地博客

    1.提交

    • 在本地配置好個人博客,發布使用后,為防止電腦更換或突發事件導致電腦文件丟失,可以講博客項目上傳至github上保存,需要時再更新到本地即可(此時我們提交的分支為修改后的默認分支--hexo,詳細介紹請看hexo+github創建個人博客--基礎篇中的倉庫設計),提交命令為:

      git add .       //將文件加入到提交緩存
      git commit -m "comment" //添加文件注釋
      git push origin hexo    //提交到某分支
      
    • 提交以后會發現主題文件沒有提交上去,是因為此時的主題文件是另一個倉庫的git文件,需要將本地主題文件中的.git文件夾刪掉,再次提交即可


    2.更新

    • 在本地項目中運行命令:

      git pull    //更新到本地
      git status  //查看文件對比后的狀態
      
    • 首次更新代碼需要執行以下命令(注意不要執行hexo init命令):

      git clone  xxx  //復制github倉庫路徑
      npm install hexo //安裝插件
      npm install hexo-deployer-git //發布到git上時必要的插件
      

  • 其他功能配置

    1.七牛云圖床(供博客圖床使用,可選擇性進行)

    • 七牛云介紹

    挺好的一個云服務網站,注冊后可以免費領取10G免費空間等等,可以將博客中需要使用的圖片上傳到注冊的服務器上,可以加快圖片的加載速度,至少比在github上的速度快很多。

    • 七牛云賬號創建和設置

    進入七牛云官網注冊,按照流程進行,登陸后選擇對象存儲,此時可以選擇綁定域名(需要已備案),在內容管理中可以上傳圖片,復制圖片的鏈接即可在再網頁上訪問

    2.評論功能

    • 第三方的評論插件有很多種,具體介紹可以參考wiki,根據自己的情況選擇

    • yilia主題中已經集成了duoshuo,暢言,網易云跟帖,disqus這幾款評論插件,按照提示修改配置文件即可

    • 鑒于此時還沒有備案的域名,所以提供另外一個評論插件的配置-來必力,有備案域名的朋友可以考慮暢言

      1. 進入來必力,注冊,登陸,點擊右上角選擇管理頁面
      1. 選擇生成一個city版本的評論系統,綁定自己的域名,填寫必要信息,最后會生成一份JS代碼
      livere-js
      livere-js
      1. 在博客項目的...\themes\yilia\layout\_partial\post目錄下新建livere.ejs文件,將此段代碼copy進去,為了方便靈活的管理,進行如下修改:
        data-uid="<%=theme.livere_uid%>" //將此處的ID配置在主題配置文件中
      1. 在主題配置文件中加入:
        livere: true //開啟或關閉 livere-uid: 'your-livere-uid'
      1. 最后需要將創建的livere.ejs文件引入到文章中,打開...\themes\yilia\layout\_partial\article.ejs文件,在以下位置插入如下代碼:
        <% if (!index && post.comments){ %> <% if (theme.livere && theme.livere_uid){ %> <%- partial('post/livere', { key: post.slug, title: post.title, url: config.url+url_for(post.path) }) %> <% } %> <% } %>
      1. 生成發布查看效果即可,之后可以通過來必力對評論進行管理,并且可以設置郵箱提醒功能
      1. 可以通過在文章md文件中通過comments: false 來關閉某篇文章的評論功能

    3.統計功能

    • yilia主題中集成了google_analytics和baidu_analytics的統計功能,選擇一種進行注冊,綁定域名即可,但是頁面不會有顯示的效果,此處,我集成了一個第三方統計插件-不蒜子,按照官網提示操作步驟進行即可,詳細如下:

      1. 打開\themes\yilia\layout\_partial目錄下的footer.ejs文件,首先最最后copy以下一行代碼:
        <script async src="http://dn-lbstatics.qbox.me/busuanzi/2.3/busuanzi.pure.mini.js"></script>
      1. 此處為了方便靈活管理,可以通過配置文件控制顯示,選擇合適的位置(我選擇加在footer.ejs中),可以加入如下配置:
        <div class="footer-left"> ? <%= date(new Date(), 'YYYY') %> <%= config.author || config.title %> <% if (theme.site_count){ %> <span id="busuanzi_container_site_pv">本站被踩過<span id="busuanzi_value_site_pv"></span>次</span> <% } %> <% if (theme.user_count){ %> <span id="busuanzi_container_site_uv">被<span id="busuanzi_value_site_uv"></span>人踩過</span> <% } %> </div>
      1. 預覽效果為:
        count-2
        count-2
      1. 在文章標題后面顯示文章的訪問量,在\themes\yilia\layout\_partial下的article.ejs中的以下位置加入:
        <header class="article-header"> <%- partial('post/title', {class_name: 'article-title'}) %> <% if (theme.page_count && !index){ %> </br> <a class="article-count-a-tag" href="javascript:void(0);"> <span class="icon-sort"></span> <span id="busuanzi_container_page_pv" class="article-count-a-span"> 被偷看了:<span id="busuanzi_value_page_pv"></span>次 </span> </a> <% } %> <% if (!post.noDate){ %> <%- partial('post/date', {class_name: 'archive-article-date', date_format: null}) %> <% } %> </header>
      1. 此處有一個小細節就是判斷條件中加入 !index 判斷條件,在主頁時不顯示,點擊進入某文章時才顯示統計的效果,最后還需要在...\themes\yilia\source的main.css中加入自定義的class,我定義的為:
        .article-count-a-tag{color:gray;font-size:14px;} .article-count-a-span{color:#ef7522;font-size:14px;}
      1. 最終效果為:
      count-1
      count-1

    (未完待續 ......)


最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,461評論 6 532
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,538評論 3 417
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,423評論 0 375
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,991評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,761評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,207評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,268評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,419評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,959評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,782評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,983評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,528評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,222評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,653評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,901評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,678評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,978評論 2 374

推薦閱讀更多精彩內容