執行
hexoc.sh 加上指令 s 或 d
指令s
會一次性執行
1 hexo clean && hexo g && hexo s
指令d
則會一次性執行
1 hexo clean && hexo g && hexo d
EJS
參考來源 EJS
基礎用法
裡面可以放入Javascript Code但是不會輸出
裡面放入要輸出的值
EX:
1 2 3 <% if (user) { %> <h2><%= user.name %></h2> <% } %>
## 自定義分割符 delimiter
1 2 3 4 5 6 7 8 let ejs = require('ejs'), users = ['geddy', 'neil', 'alex']; // 单个模板文件 ejs.render('<?= users.join(" | "); ?>', {users: users}, {delimiter: '?'}); // => 'geddy | neil | alex'
其中
意思是將符號%改為?
Hexo-renderer-marked
在根目錄_config.yml 裡加上以下, 主要是lazyload
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 marked: gfm: true pedantic: false breaks: true smartLists: true smartypants: true quotes: '“”‘’' modifyAnchors: 0 anchorAlias: false autolink: true mangle: true sanitizeUrl: false dompurify: false headerIds: true lazyload: false prependRoot: true postAsset: false external_link: enable: false exclude: [] nofollow: false disableNunjucks: false descriptionLists: true
#
Hexo
變量
config.參數 這裡的參數是根目錄_config.yml裡面的設定值
比如_config.yml
1 2 3 4 5 6 7 8 title: 隨遇而安 subtitle: '' description: '' keywords: William Kuo author: William Kuo language: zh-CN timezone:
則相對應的hexo config.參數為
1 2 3 4 5 6 7 config.title config.subtitle config.description config.keywords config.author config.language config.timezone
如果是
1 2 3 4 5 theme.favicon .small theme.favicon .median theme.favicon .apple_touch_icon theme.favicon .safari_pinned_tab theme.favicon .msapplication
等等,則是在theme檔案夾裡zhaoo(選用的主題)的_config.yml的favicon設定
1 2 3 4 5 6 favicon: small: /images/icons/favicon-16x16.png medium: /images/icons/favicon-32x32.png apple_touch_icon: /images/icons/apple-touch-icon.png safari_pinned_tab: /images/icons/stun-logo.svg msapplication: /images/icons/favicon-144x144.png
node_modules/hexo-server/index.js
筆記
hexo.extend.console.register
use strict
嚴格模式: 在指定代碼嚴格環境下執行
1 2 3 4 5 6 7 8 hexo.config .server = Object .assign ({ port : 4000 , log : false , ip : undefined , compress : false , header : true }, hexo.config .server );
config 是全局變量網站設置 變量
1 2 3 4 5 6 7 8 9 10 hexo.extend .console .register ('server' , 'Start the server.' , { desc : 'Start the server and watch for file changes.' , options : [ {name : '-i, --ip' , desc : 'Override the default server IP. Bind to all IP address by default.' }, {name : '-p, --port' , desc : 'Override the default port.' }, {name : '-s, --static' , desc : 'Only serve static files.' }, {name : '-l, --log [format]' , desc : 'Enable logger. Override log format.' }, {name : '-o, --open' , desc : 'Immediately open the server url in your default web browser.' } ] }, require ('./lib/server' ));
console 為控制台, 裡面有控制台命令 server 為 config的屬性,
config.server start the server 為console的命令 desc 是 description
(描述) option 為選項: 選項i
\rightarrow
hexo s -i 選項o
\rightarrow
hexo s -o 是架設好本地端server後在瀏覽器開啟頁面
hexo.extend.filter.register
filter
的用法是修改特定文件 server_middleware 是在文件中加入中間件
(server_middleware是一種過濾器)
1 2 3 4 5 6 hexo.extend .filter .register ('server_middleware' , require ('./lib/middlewares/header' )); hexo.extend .filter .register ('server_middleware' , require ('./lib/middlewares/gzip' )); hexo.extend .filter .register ('server_middleware' , require ('./lib/middlewares/logger' )); hexo.extend .filter .register ('server_middleware' , require ('./lib/middlewares/route' )); hexo.extend .filter .register ('server_middleware' , require ('./lib/middlewares/static' )); hexo.extend .filter .register ('server_middleware' , require ('./lib/middlewares/redirect' ));
以上代碼為註冊名為server_middleware的過濾器,而他需要require一些檔案。
另一個例子
1 2 3 4 hexo.extend .filter .register ('before_post_render' , function (data ){ data.title = data.title .toLowerCase (); return data; });
註冊before_post_render過濾器,過濾器裡面的有function(data),data作為第一個形參,會傳入每一個過濾器(執行過濾器章節有介紹 )。
Lazyload
在 /theme/zhaoo/source/js/script.js 設置threshold為200,
令圖片在距離屏幕200像素時提前加載。
1 2 3 4 5 6 lazyload : function ( ) { $("img.lazyload" ).lazyload ({ effect : "fadeIn" , threshold : 200 , }); },
Markdown
中顯示鍵盤鍵
markdown文档中使用键盘键