InfiniteWing

Give me a place to stand on, and I will move the Earth

  • 2017-07-06
    網站設計►Hexo

    第一次玩Hexo架站

    1. 前言
    2. 安裝Hexo
    3. Run Hexo
    4. 個人化

    前言

    看了許多人的GitHub Page之後,心頭躍躍欲試。之前一直考慮是要自己重寫一個可以產生靜態網站的程式或是選用現成的網誌工具,最後還是不敵懶惰的天性選擇了許多人使用的Hexo。

    經過一天的努力終於弄好了整個Hexo的環境,修改了一些設定及版面CSS設計後,完成了這個自己的個人網站~

    安裝Hexo

    開始以Hexo(https://hexo.io/zh-tw/)作為靜態網站架站工具前,你的電腦必須支援以下功能:

    • Node.js
    • Git

    確定安裝了以上的相依套件後,你就可以用node.js的套件安裝包npm來完成Hexo的安裝

    1
    $ npm install -g hexo-cli

    Run Hexo

    安裝完成後需要執行建立部落格檔案的動作,請在CMD下切換到你要存放部落格的目錄,接著打下指令:

    1
    2
    3
    $ hexo init 'your_folder_name'
    $ cd 'your_folder_name'
    $ npm install

    如此一來最基本的部落格檔案就自動生成了,有關生成後的檔案結構可以到Hexo中文官網查看。這時候的部落格雖然是空的,但已經可以直接運行來查看是否成功安裝。

    1
    $ hexo server

    打開你常用的瀏覽器,照著CMD輸出上的網址打上(一般預設是localhost:4000/),沒有意外發生的話,你應該就能看到陽春版的Hexo預設主題 - landscape。

    Hexo預設的landscape主題

    有關更進階的產生日誌、更換主題的說明可以參考Hexo中文官網,應該都滿容易理解的~

    個人化

    雖然說連自己寫個靜態部落格產生器都懶,但為了讓自己的網誌有個人的特色(或者說自己看了會比較順眼),因此我決定修改一下預設的主題CSS及Layout檔。這裡不說Hexo的檔案結構非常完整,基本上如果你對網站設計跟程式語言有接觸的話,應該不難去找到如何修改成自己需要的主題。

    如果是要改生成出來的模板效果,有時候需要去修改Hexo的原始js程式碼,舉例來說我就覺得首頁的per_page跟archives底下的per_page共用有點不太人性,因為預設landscape的archives表現是一個區塊一個區塊,如果只有十筆資料的話下方會留許多空白,因此我就改了node_modules/hexo-generator-archive/底下的index.js以及lib/generator.js

    index.js
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    var per_page;
    var archive_per_page;
    if (hexo.config.archive === 1) {
    per_page = 0;
    archive_per_page = 0
    } else if (typeof hexo.config.per_page === 'undefined') {
    per_page = 10;
    archive_per_page=18;
    } else {
    per_page = hexo.config.per_page;
    archive_per_page = hexo.config.archive_per_page;
    }
    lib/generator.js
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    function generate(path, posts, options) {
    options = options || {};
    options.archive = true;
    if(path.match('^archives/.*$')){
    perPage = config.archive_generator.archive_per_page;
    }else{
    perPage = config.archive_generator.per_page;
    }
    result = result.concat(pagination(path, posts, {
    perPage: perPage,
    layout: ['archive', 'index'],
    format: paginationDir + '/%d/',
    data: options
    }));
    }

    如此一來就能達到理想的效果了~

    完結灑花!
    To be continued..
    Posted at 2017-07-06 06:36:32
    Share 留言
    • Hexo
    • 第一次
    • 經驗
    • 網站設計
    下一篇
    [FreeBSD] 以ssmtp搭配Gamil實現ssh登入自動提醒
    上一篇
    楓之谷APP開發日誌 ─ 第六章

    InfiniteWing

    總覺得我一直在尋覓著什麼

    最新文章

    • [Performance comparison] CSV reader C/C++ V.S. Python - 2020-07-11
    • [Kaggle] Jigsaw Unintended Bias in Toxicity Classification - 2019-06-28
    • [Kaggle] Instant Gratification - A synchronous Kernels-only competition - 2019-06-21
    • 楓之谷APP開發日誌 ─ 小結 - 2018-08-21
    • WSDM - KKBox's Churn Prediction Challenge - 2018-01-01

    分類

    • Big Data13
      • Cloud Computing3
      • Competition8
      • Deep Learning2
    • FreeBSD1
      • 系統防護1
    • Kaggle1
      • Notebook1
    • Performance comparison1
      • C/C++1
        • Python1
    • 個人作品8
      • 楓之谷APP8
    • 網站設計2
      • Hexo2
    • 論文寫作1

    標籤雲

    Android APP8 Big Data13 C/C++1 CNN2 Cloud Computing3 Deep Learning2 Experience1 FreeBSD1 GCP3 Hexo2 KO1 Kaggle11 Keras2 NLP1 Notebook4 Performance comparison1 Python1 Visualization1 WSDM1 ssmtp1 個人作品8 童年8 第一次3 系統防護1 經驗16 網站設計2 論文寫作1 資訊安全1

    彙整

    • 七月 20201
    • 六月 20192
    • 八月 20181
    • 一月 20181
    • 十二月 20171
    • 十一月 20171
    • 十月 20171
    • 九月 20171
    • 八月 20174
    • 七月 20177
    • 二月 20171
    • 一月 20172
    • 十一月 20151
    • 十月 20152
    • 九月 20151
    © 2021 InfiniteWing all rights reserved.
    Powered by Hexo
  • Home
  • About
  • Archives
  • Work
  • Gallery
  • Private