我的Hexo 備份
./hexoc.sh s
會一次性執行
hexo clean && hexo g && hexo s
./hexoc.sh d
則會一次性執行
hexo clean && hexo g && hexo d
參考來源 EJS
<% %>
裡面可以放入Javascript Code但是不會輸出
<%= %>
裡面放入要輸出的值
EX:
<% if (user) { %>
<h2><%= user.name %></h2>
<% } %>
let ejs = require('ejs'),
users = ['geddy', 'neil', 'alex'];
// 单个模板文件
ejs.render('<?= users.join(" | "); ?>', {users: users},
{delimiter: '?'});
// => 'geddy | neil | alex'
其中
{delimiter: '?'}
意思是將符號%改為?
在根目錄_config.yml 裡加上以下, 主要是lazyload
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
config.參數 這裡的參數是根目錄_config.yml裡面的設定值 比如_config.yml
# Site
title: 隨遇而安
subtitle: ''
description: ''
keywords: William Kuo
author: William Kuo
language: zh-CN
timezone:
則相對應的hexo config.參數為
config.title
config.subtitle
config.description
config.keywords
config.author
config.language
config.timezone
如果是
theme.favicon.small
theme.favicon.median
theme.favicon.apple_touch_icon
theme.favicon.safari_pinned_tab
theme.favicon.msapplication
等等,則是在theme檔案夾裡zhaoo(選用的主題)的_config.yml的favicon設定
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
'use strict';
use strict 嚴格模式: 在指定代碼嚴格環境下執行
hexo.config.server = Object.assign({
port: 4000,
log: false,
// `undefined` uses Node's default (try `::` with fallback to `0.0.0.0`)
ip: undefined,
compress: false,
header: true
}, hexo.config.server);
config 是全局變量網站設置 變量
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
filter 的用法是修改特定文件 server_middleware 是在文件中加入中間件 (server_middleware是一種過濾器)
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一些檔案。
另一個例子
hexo.extend.filter.register('before_post_render', function(data){
data.title = data.title.toLowerCase();
return data;
});
註冊before_post_render過濾器,過濾器裡面的有function(data),data作為第一個形參,會傳入每一個過濾器(執行過濾器章節有介紹)。