在 Hexo 中,提供 plugin 外掛,種類有:
Console
Deployer
Filter
Generator
Helper
Migrator
Processor
Renderer
Tag
以下著重在 hexo 如何實作不同類型的外掛,以及撰寫這些 plugin 的 API。
[hexo 3.2.0] filter 觀察
以下針對 hexo 的 filter 中,以下幾個 filter 的執行順序作探討:
after_init
before_exit
before_post_render
after_post_render
before_generate
after_generate
template_locals
after_render
post_permalink
new_post_path
[初級韓文][01] 韓文活用變化、不規則變化
活用變化「活用」是日文中單字接續文法的特有現象,日文中依據詞彙是否活用與否,分為「用言」、「體言」兩大類。韓文中也有類似的情形,若依據這種分法,韓文的用言大致為動詞和形容詞兩種,並且有些詞彙會有不規則變化。
符號介紹
V = 動詞
A = 形容詞
N = 名詞
名詞不屬於用言,但是名詞會和「이다」(是)、「아니다」(不是) 做變化
注意이다是「指示詞」,아니다是「形容詞」
S = 謂詞
V
A
N + 이다
N + 가 아니다
韓文用言分三種變化,直接稱為「第一語基」、「第二語基」、「第三語基」,以下是符號寫法,後面會從規則變化來介紹。
第一語基:VⅠ、AⅠ、SⅠ
第二語基:VⅡ、AⅡ、SⅡ
第三語基:VⅢ、AⅢ、SⅢ
[hexo 3.0.0-beta.1] hexo 原始碼閱讀 01
最近 Tommy 大發佈了 hexo 3.0.0 的 beta1 版本,那麼就藉機來讀一下新版本 hexo 的架構,之後也好開發新東西。
[轉載] 一堆三個字在一起,你會念嗎?
三個「金」–>鑫:ㄒㄧㄣ,興盛、多財。
三個「木」–>森:ㄙㄣ
樹木濃密的樣子。
眾多的。
三個「水」–>淼:ㄇㄧㄠˇ,水流廣大的樣子。
三個「火」–>焱:ㄧㄢˋ,火花、火焰。
三個「土」–>垚:ㄧㄠˊ
土高起的樣子。
「堯」之異體。
[翻譯][UVa][599] The Forrest for the Trees
一張圖 (graph) $G$ 有一個點集 $V(G)$ 和一個邊集 $E(G)$,其中邊集 $E(G)$ 內的元素是 $V(G)$ 中相異兩個無序點對。
範例一:令 $G$ 是一張圖,$V(G) = \{a, b, c, d\}$ 且 $E(G) = \{(a, b), (b, c), (c, d), (d, b)\}$,下圖給出整個圖 $G$:
注意圖 G 包含一個「環」$\{(b, c), (c, d), (d, b)\}$。一張缺乏環的圖我們稱為樹 (tree)。圖 G 的一條路徑 (path) 是點和邊的交替序列 (序列是由點開始和結束) 且路徑上所有點皆相異。在範例一的圖中,$\{a, (a, b), b, (b, c), c, (c, d)\}$ 是一條路徑。
事實:樹上任意兩點的路徑是唯一的
如果一張圖任意點對有一條路徑,則圖是連通的 (connected),範例一的圖即是連通的。如果一張圖沒有連通而有數個子圖 (subgraph),則每個子圖被稱為圖 $G$ 的連通分量 (connected component)。
如果一張圖的連通分量都是樹,則整張圖稱為森林 (forest),見下圖。
一個值得一提的極端例子,就是若有一個連通分量樹只有一個點而沒有邊,這棵樹就像是一個孤立點,我們稱之為橡實 (acorn)。接下來我們來定義本問題。
問題:給一座森林,請您寫一隻程式計算有幾棵樹和幾個橡實。
[翻譯][UVa][10685] Nature
在自然界中,存在著食物鏈 (alimentary chain),在食物鏈的底層通常是植物 (vegetal),小型動物吃這些植物,然後大型動物吃這些小型動物。食物鏈可以是環狀,當有些動物死掉後他將會分解變成礦物質,而這些礦物質會是植物的營養來源。
在這題目中,給你一堆生物,你將找出最大的食物鏈。如果 $A$ 是 $B$ 的掠食者 (predator),則你可以將他們都視為在相同食物鏈中。
[翻譯][UVa][11525] Permutation
給定 $N$ 和 $K$,請從 1 到 $K$ 的字典順序排列中,找出第 $N$ 個排列,$N$ 從 0 開始,因為 $N$ 會很大,因此我們用 K 個非負整數 $S_1$, $S_2$, $\cdots{}$, $S_k$ 來表示。從這一系列的數字,我們可以用下面的公式計算 $N$:
$\sum^{K}_{i=1}{S_i\times{(K-i)!}}$
[翻譯][UVa][12086] Potentiometers
電位計 (potentiometer,簡稱 potmeter) 是一種有可變電阻的電子設備,它有兩個接點 (terminal) 和一些控制結構 (通常是刻度盤、齒輪或者滑塊) 使得我們可以調整兩接點間的電阻值從 0 (無電阻) 到一個最大值。電阻的單位是歐姆 (Ohm),當有兩個以上的電阻串聯 (也就是一個接著一個連接) 在一起,總電阻就會是個別電阻的總和。
在這個問題中,我們考慮 $N$ 個串聯的電位計,從左到右分別編號為 1 號到 $N$ 號,第 $x$ 號的電位計左側接點和第 $x-1$ 號的右側相連,且第 $x$ 號的電位計右側接點和第 $x+1$ 號的左側相連,而 1 號電位計的左側接點和 $N$ 號的右側接點並沒有接上其他東西。
一開始所有電位計會有介於 0 到 1000 歐姆的電阻,我們可以做兩件事:
設定其中一個電位計為另一個電阻值
測量任意兩個接點之間的電阻
Span 的性質
我們知道定義中,和子定理:
$\text{如果 }U,V\text{ 是 vector space,則 }U+V=span(U\cup{V})$ $$\begin{align} & span(R\cap{S}) \\ \subseteq{} & span(R)\cap{span(S)} \\ \subseteq{} & span(R)\cup{span(S)} \\ \subseteq{} & span(R\cup{S}) = span(R+S) = span(R)+span(S) = span(span(R)\cup{span(S)}) \end{align}$$