-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathatom.xml
263 lines (136 loc) · 95.5 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>听阅</title>
<subtitle>一款专为英语学习者设计的阅读软件</subtitle>
<link href="/atom.xml" rel="self"/>
<link href="https://eareyereading.com/"/>
<updated>2020-05-19T08:21:29.379Z</updated>
<id>https://eareyereading.com/</id>
<author>
<name>听阅</name>
</author>
<generator uri="https://hexo.io/">Hexo</generator>
<entry>
<title>Hexo 4.2.1 & official plugin hexo-fs 2.0.1 & hexo-util 1.9.1 released</title>
<link href="https://eareyereading.com/news/2020/05/14/hexo-4-2-1-hexo-fs-2-0-1-hexo-util-1-9-1/"/>
<id>https://eareyereading.com/news/2020/05/14/hexo-4-2-1-hexo-fs-2-0-1-hexo-util-1-9-1/</id>
<published>2020-05-14T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.379Z</updated>
<content type="html"><![CDATA[<h2 id="Hexo-4-2-1"><a href="#Hexo-4-2-1" class="headerlink" title="Hexo 4.2.1"></a>Hexo 4.2.1</h2><p>Before <code>4.2.0</code>, Hexo does not work with Node 14. This is a patch release for support Node 14.</p><h3 id="Fix"><a href="#Fix" class="headerlink" title="Fix"></a>Fix</h3><ul><li>chore: incompatible with Node 14 <a href="https://github.com/hexojs/hexo/pull/4285" rel="external nofollow noreferrer">#4285</a><ul><li>This release includes <a href="https://github.com/hexojs/hexo-util/releases/tag/1.9.1" rel="external nofollow noreferrer">hexo-util 1.9.1</a> and <a href="https://github.com/hexojs/hexo-fs/releases/tag/2.0.1" rel="external nofollow noreferrer">hexo-fs 2.0.1</a></li></ul></li></ul><hr><h2 id="hexo-util-1-9-1"><a href="#hexo-util-1-9-1" class="headerlink" title="hexo-util 1.9.1"></a>hexo-util 1.9.1</h2><h3 id="Fix-1"><a href="#Fix-1" class="headerlink" title="Fix"></a>Fix</h3><ul><li>Fix <a href="https://github.com/hexojs/hexo-util#cachestream" rel="external nofollow noreferrer"><code>CacheStream()</code></a> compatibility issue with Node 14 <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-util/pull/205" rel="external nofollow noreferrer">#205</a><ul><li>This fix is backport from <a href="https://github.com/hexojs/hexo-util/releases/tag/2.0.0" rel="external nofollow noreferrer">hexo-util 2.0.0</a></li></ul></li></ul><hr><h2 id="hexo-fs-2-0-1"><a href="#hexo-fs-2-0-1" class="headerlink" title="hexo-fs 2.0.1"></a>hexo-fs 2.0.1</h2><h3 id="Fix-2"><a href="#Fix-2" class="headerlink" title="Fix"></a>Fix</h3><ul><li>fix compatibility issue with Node.js 14 in writeFile() and copyFile() @SukkaW (#70)<ul><li>This fix is backport from <a href="https://github.com/hexojs/hexo-fs/releases/tag/3.0.0" rel="external nofollow noreferrer">hexo-fs 3.0.0</a></li></ul></li></ul>]]></content>
<summary type="html">
<h2 id="Hexo-4-2-1"><a href="#Hexo-4-2-1" class="headerlink" title="Hexo 4.2.1"></a>Hexo 4.2.1</h2><p>Before <code>4.2.0</code>, Hexo does n
</summary>
</entry>
<entry>
<title>Official plugins hexo-util 2.1.0 and hexo-fs 3.0.1 released</title>
<link href="https://eareyereading.com/news/2020/04/30/hexo-util-2_hexo-fs-3/"/>
<id>https://eareyereading.com/news/2020/04/30/hexo-util-2_hexo-fs-3/</id>
<published>2020-04-30T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.379Z</updated>
<content type="html"><![CDATA[<p>In preparation for the eventual release of Hexo 5.0.0, we have released new versions of the official plugins <a href="https://github.com/hexojs/hexo-util" rel="external nofollow noreferrer">hexo-util</a> and <a href="https://github.com/hexojs/hexo-fs" rel="external nofollow noreferrer">hexo-fs</a>.</p><p>Summary:</p><ul><li>We are dropping support of Node 8 across Hexo ecosystem, please upgrade to Node 10.13 or higher.</li><li>Currently Hexo has compatibility issues with Node 14, to be fixed in Hexo 5.0.0. See below for temporary workarounds.</li></ul><h2 id="Workarounds"><a href="#Workarounds" class="headerlink" title="Workarounds"></a>Workarounds</h2><p>There are two temporary workarounds in Node 14 usage:</p><ol><li>Downgrade to Node 10 or 12. If you use <code>.nvmrc</code> as part of your CI workflow, you need to change the content to <code>10</code> or <code>12</code>.</li><li>If you prefer to use Node 14, force upgrade hexo-util and hexo-fs:</li></ol><figure class="highlight diff"><figcaption><span>package.json</span></figcaption><table><tr><td class="code"><pre><span class="line">{</span><br><span class="line"> ...</span><br><span class="line"> "dependencies": {</span><br><span class="line"> "hexo": "^4.0.0",</span><br><span class="line"> "hexo-generator-archive": "^1.0.0",</span><br><span class="line"> "hexo-generator-category": "^1.0.0",</span><br><span class="line"> "hexo-generator-index": "^1.0.0",</span><br><span class="line"> "hexo-generator-tag": "^1.0.0",</span><br><span class="line"> "hexo-renderer-ejs": "^1.0.0",</span><br><span class="line"> "hexo-renderer-stylus": "^1.1.0",</span><br><span class="line"> "hexo-renderer-marked": "^2.0.0",</span><br><span class="line"> "hexo-server": "^1.0.0",</span><br><span class="line"><span class="addition">+ "hexo-util": "^2.1.0",</span></span><br><span class="line"><span class="addition">+ "hexo-fs": "^3.0.1"</span></span><br><span class="line"> }</span><br><span class="line">}</span><br></pre></td></tr></table></figure><figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">$ rm -rf node_modules/</span><br><span class="line">$ npm install</span><br></pre></td></tr></table></figure><p>The upcoming Hexo 5.0.0 will be compatible with Node 14. Stay tune.</p><h2 id="hexo-util-2-1-0"><a href="#hexo-util-2-1-0" class="headerlink" title="hexo-util 2.1.0"></a>hexo-util 2.1.0</h2><h2 id="Breaking-change"><a href="#Breaking-change" class="headerlink" title="Breaking change"></a>Breaking change</h2><ul><li>Remove <code>HashStream()</code> function <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-util/pull/198" rel="external nofollow noreferrer">#198</a><ul><li>Deprecated in <a href="https://github.com/hexojs/hexo-util/pull/45" rel="external nofollow noreferrer">#45</a>, part of <a href="https://github.com/hexojs/hexo-util/releases/tag/1.0.0" rel="external nofollow noreferrer">v1.0.0</a> release</li><li>Replaced by <a href="https://github.com/hexojs/hexo-util/tree/master#createsha1hash" rel="external nofollow noreferrer"><code>createSha1Hash()</code></a></li></ul></li></ul><h2 id="hexo-util-2-0-0"><a href="#hexo-util-2-0-0" class="headerlink" title="hexo-util 2.0.0"></a>hexo-util 2.0.0</h2><h3 id="Breaking-change-1"><a href="#Breaking-change-1" class="headerlink" title="Breaking change"></a>Breaking change</h3><ul><li>Drop support of Node 8 <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-util/pull/191" rel="external nofollow noreferrer">#191</a> <a href="https://github.com/hexojs/hexo-util/pull/193" rel="external nofollow noreferrer">#193</a></li><li>Requires <code>autoDetect</code> to be enabled and <code>lang</code> to be unset to use sublanguage <a href="https://github.com/hexojs/hexo-util#highlightstr-options" rel="external nofollow noreferrer"><code>highlight()</code></a> <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-util/pull/192" rel="external nofollow noreferrer">#192</a> <a href="https://github.com/hexojs/hexo-util/pull/196" rel="external nofollow noreferrer">#196</a></li></ul><h3 id="Fix"><a href="#Fix" class="headerlink" title="Fix"></a>Fix</h3><ul><li>Fix <a href="https://github.com/hexojs/hexo-util#cachestream" rel="external nofollow noreferrer"><code>CacheStream()</code></a> compatibility issue with Node 14 <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-util/pull/195" rel="external nofollow noreferrer">#195</a></li></ul><h3 id="Misc"><a href="#Misc" class="headerlink" title="Misc"></a>Misc</h3><ul><li>docs(isExternalLink): add JSDoc <a href="https://github.com/YoshinoriN" rel="external nofollow noreferrer">@YoshinoriN</a> <a href="https://github.com/hexojs/hexo-util/pull/190" rel="external nofollow noreferrer">#190</a></li></ul><h3 id="Dependencies"><a href="#Dependencies" class="headerlink" title="Dependencies"></a>Dependencies</h3><ul><li>chore(deps-dev): bump rewire from 4.0.1 to 5.0.0 <a href="https://github.com/hexojs/hexo-util/pull/187" rel="external nofollow noreferrer">#187</a></li></ul><h2 id="hexo-fs-3-0-1"><a href="#hexo-fs-3-0-1" class="headerlink" title="hexo-fs 3.0.1"></a>hexo-fs 3.0.1</h2><h3 id="Changes"><a href="#Changes" class="headerlink" title="Changes"></a>Changes</h3><ul><li>Requires at least Node 10.13 <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-fs/pull/63" rel="external nofollow noreferrer">#63</a><ul><li>Requires Node 10.12+ to create folder recursively using <code>mkdirs()</code> and <code>mkdirsSync()</code> <a href="https://github.com/hexojs/hexo-fs/pull/55" rel="external nofollow noreferrer">#55</a>. While hexo-fs previously supported this feature, it had custom implementation; hexo-fs 3+ uses native implementation instead.</li></ul></li><li>chore(deps): update hexo-util to 2.0.0 <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-fs/pull/64" rel="external nofollow noreferrer">#64</a></li></ul><h2 id="hexo-fs-3-0-0"><a href="#hexo-fs-3-0-0" class="headerlink" title="hexo-fs 3.0.0"></a>hexo-fs 3.0.0</h2><h3 id="Breaking-change-2"><a href="#Breaking-change-2" class="headerlink" title="Breaking change"></a>Breaking change</h3><ul><li>Drop support of Node 8 <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-fs/pull/51" rel="external nofollow noreferrer">#51</a></li></ul><h3 id="Feature"><a href="#Feature" class="headerlink" title="Feature"></a>Feature</h3><ul><li>Utilize native recursive option for <code>mkdirs()</code> and <code>mkdirsSync()</code> <a href="https://github.com/segayuu" rel="external nofollow noreferrer">@segayuu</a> <a href="https://github.com/hexojs/hexo-fs/pull/55" rel="external nofollow noreferrer">#55</a></li></ul><h3 id="Fix-1"><a href="#Fix-1" class="headerlink" title="Fix"></a>Fix</h3><ul><li>fix compatibility issue with Node.js 14 in <code>writeFile()</code> and <code>copyFile()</code> <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-fs/pull/60" rel="external nofollow noreferrer">#60</a></li></ul><h3 id="Refactor"><a href="#Refactor" class="headerlink" title="Refactor"></a>Refactor</h3><ul><li>Replace <code>escape-string-regexp</code> package with hexo-util <a href="https://github.com/hexojs/hexo-util#escaperegexstr" rel="external nofollow noreferrer"><code>escapeRegex()</code></a> <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-fs/pull/56" rel="external nofollow noreferrer">#56</a></li><li>refactor: es6 syntax <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-fs/pull/57" rel="external nofollow noreferrer">#57</a></li><li>Utilize native promise API in <code>fs.promises</code> <a href="https://github.com/segayuu" rel="external nofollow noreferrer">@segayuu</a> <a href="https://github.com/hexojs/hexo-fs/pull/53" rel="external nofollow noreferrer">#53</a><ul><li>If you need to catch error code, it’s now <code>err.code</code>, not <code>err.cause.code</code>, see <a href="https://github.com/hexojs/hexo-cli/pull/190" rel="external nofollow noreferrer">#190</a></li></ul></li></ul><h3 id="Misc-1"><a href="#Misc-1" class="headerlink" title="Misc"></a>Misc</h3><ul><li>Add release-drafter for easier changelog editing <a href="https://github.com/YoshinoriN" rel="external nofollow noreferrer">@YoshinoriN</a> <a href="https://github.com/hexojs/hexo-fs/pull/58" rel="external nofollow noreferrer">#58</a></li><li>chore(deps-dev): bump nyc from 14.1.1 to 15.0.0 <a href="https://github.com/hexojs/hexo-fs/pull/52" rel="external nofollow noreferrer">#52</a></li><li>chore(deps-dev): bump mocha from 6.2.2 to 7.0.0 <a href="https://github.com/hexojs/hexo-fs/pull/54" rel="external nofollow noreferrer">#54</a></li><li>Bump eslint-config-hexo from 3.0.0 to 4.0.0 <a href="https://github.com/hexojs/hexo-fs/pull/48" rel="external nofollow noreferrer">#48</a></li></ul>]]></content>
<summary type="html">
<p>In preparation for the eventual release of Hexo 5.0.0, we have released new versions of the official plugins <a href="https://github.com/
</summary>
</entry>
<entry>
<title>hexo-renderer-markdown-it 4.1.0 & hexo-util 1.9.0 released</title>
<link href="https://eareyereading.com/news/2020/03/08/hexo-renderer-markdown-it-4-1-0-hexo-util-1-9-0-released/"/>
<id>https://eareyereading.com/news/2020/03/08/hexo-renderer-markdown-it-4-1-0-hexo-util-1-9-0-released/</id>
<published>2020-03-08T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.378Z</updated>
<content type="html"><![CDATA[<h2 id="hexo-renderer-markdown-it-4-1-0"><a href="#hexo-renderer-markdown-it-4-1-0" class="headerlink" title="hexo-renderer-markdown-it 4.1.0"></a>hexo-renderer-markdown-it 4.1.0</h2><h3 id="Feature"><a href="#Feature" class="headerlink" title="Feature"></a>Feature</h3><ul><li><code>permalinkSide</code> option <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/105" rel="external nofollow noreferrer">#105</a>. </li></ul><p>By default, when <code>permalink</code> option is enabled, the permalink symbol is prepended before each heading. If you prefer to append to the end of each heading:</p><figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">markdown:</span></span><br><span class="line"> <span class="attr">anchors:</span></span><br><span class="line"> <span class="attr">permalink:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">permalinkSide:</span> <span class="string">'right'</span></span><br></pre></td></tr></table></figure><h3 id="Housekeeping"><a href="#Housekeeping" class="headerlink" title="Housekeeping"></a>Housekeeping</h3><ul><li>Remove unneeded <code>sluggo</code> dependency <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/99" rel="external nofollow noreferrer">#99</a>.<ul><li>It has been replaced by hexo-util’s slugize <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/95" rel="external nofollow noreferrer">#95</a>.</li></ul></li><li>Update nyc from 14.1.1 to 15.0.0 <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/100" rel="external nofollow noreferrer">#100</a></li></ul><hr><h2 id="hexo-util-1-9-0"><a href="#hexo-util-1-9-0" class="headerlink" title="hexo-util 1.9.0"></a>hexo-util 1.9.0</h2><h3 id="Features"><a href="#Features" class="headerlink" title="Features"></a>Features</h3><ul><li>feat(prism): add data-language attribute <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-util/pull/177" rel="external nofollow noreferrer">#177</a></li><li>feat(prism): add mark & firstLine option support <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-util/pull/172" rel="external nofollow noreferrer">#172</a></li><li>feat: bring up prism highlight support <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-util/pull/168" rel="external nofollow noreferrer">#168</a><ul><li>Laying the groundwork for the planned support of <a href="https://prismjs.com/" rel="external nofollow noreferrer">prism</a> highlight library in the upcoming Hexo v5, in addition to the current <a href="https://highlightjs.org/" rel="external nofollow noreferrer">highlight.js</a> library.</li></ul></li></ul><h3 id="Fixes"><a href="#Fixes" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>fix(is_external_link): handle invalid url <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-util/pull/183" rel="external nofollow noreferrer">#183</a></li><li>fix(prism): add strip_indent support <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-util/pull/184" rel="external nofollow noreferrer">#184</a></li><li>fix(tocObj): skip permalink symbol <a href="https://github.com/curbengh" rel="external nofollow noreferrer">@curbengh</a> <a href="https://github.com/hexojs/hexo-util/pull/175" rel="external nofollow noreferrer">#175</a></li><li>Fix highlighting when hljs=true <a href="https://github.com/ppwwyyxx" rel="external nofollow noreferrer">@ppwwyyxx</a> <a href="https://github.com/hexojs/hexo-util/pull/171" rel="external nofollow noreferrer">#171</a></li><li>htmlTag - toString() before match() for scalar values. <a href="https://github.com/KentarouTakeda" rel="external nofollow noreferrer">@KentarouTakeda</a> <a href="https://github.com/hexojs/hexo-util/pull/176" rel="external nofollow noreferrer">#176</a></li></ul><h3 id="Refactor"><a href="#Refactor" class="headerlink" title="Refactor"></a>Refactor</h3><ul><li>refactor: optimize cache <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-util/pull/170" rel="external nofollow noreferrer">#170</a></li><li>refactor(highlight): add strip-indent <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-util/pull/169" rel="external nofollow noreferrer">#169</a></li><li>refactor(toc_obj): simplify the code <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">@SukkaW</a> <a href="https://github.com/hexojs/hexo-util/pull/181" rel="external nofollow noreferrer">#181</a></li></ul><h3 id="Dependencies"><a href="#Dependencies" class="headerlink" title="Dependencies"></a>Dependencies</h3><ul><li>chore(deps-dev): bump mocha from 6.2.2 to 7.0.0 <a href="https://github.com/hexojs/hexo-util/pull/173" rel="external nofollow noreferrer">#173</a></li></ul>]]></content>
<summary type="html">
<h2 id="hexo-renderer-markdown-it-4-1-0"><a href="#hexo-renderer-markdown-it-4-1-0" class="headerlink" title="hexo-renderer-markdown-it 4.1.
</summary>
</entry>
<entry>
<title>Speed is the Key - How We Make Hexo 30% Faster</title>
<link href="https://eareyereading.com/news/2019/12/24/how-we-make-hexo-30-percent-faster/"/>
<id>https://eareyereading.com/news/2019/12/24/how-we-make-hexo-30-percent-faster/</id>
<published>2019-12-24T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.378Z</updated>
<content type="html"><![CDATA[<blockquote><p>Originally written by <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">Sukka</a> (one of the current Hexo development team member) in <a href="https://blog.skk.moe/post/how-we-make-hexo-4-2-faster/" rel="external nofollow noreferrer">Simplified Chinese</a> and translated into English by himself.</p></blockquote><p>Speed is always the key to Hexo. 3 years ago, <a href="https://hexo.io/news/2016/02/28/hexo-3-2-released/" rel="external nofollow noreferrer">Hexo 3.2 speeds up generation speed by 2x</a> through templates precompilation. And we are now at Hexo 4.2, with several performance improvements we successfully make the generation speed 30% faster compared to Hexo 3.2.</p><h2 id="Benchmark"><a href="#Benchmark" class="headerlink" title="Benchmark"></a>Benchmark</h2><p>Here is how the benchmark being set up:</p><ul><li>Travis CI - <a href="https://docs.travis-ci.com/user/reference/overview/#virtualisation-environment-vs-operating-system" rel="external nofollow noreferrer">Ubuntu Xenial 16.04</a><ul><li>CPU:2 Cores</li><li>RAM:7.5 GB</li></ul></li><li>Hexo default’s theme: <a href="https://github.com/hexojs/hexo-theme-landscape" rel="external nofollow noreferrer">landscape</a></li><li><a href="https://github.com/SukkaLab/hexo-many-posts/" rel="external nofollow noreferrer">300 randomly generated posts</a>. Each post contains all commonly used Markdown syntaxs and the code blocks for testing <code>highlight.js</code>. A unique category and three tags are also set in Front Matter of those posts.</li></ul><p>Since Hexo 3.2, rendered contents will be cached in the <code>warehouse</code> (<code>db.json</code>), therefore the performance of both cold generation (<code>hexo clean</code> before <code>hexo g</code>) and hot generation (no <code>hexo clean</code>) are tested in the benchmark. Each benchmark is performed by <code>Cold => Hot => Cold</code>. Memory usage is measured using <code>time</code> and the value of Resident Set Size (RSS) will be taken.</p><p>You can find the benchmark script <a href="https://github.com/theme-suka/performance-test/blob/3.2-vs-3.8-vs-4.2/perf-test.sh" rel="external nofollow noreferrer">here</a>.</p><h3 id="Node-js-8"><a href="#Node-js-8" class="headerlink" title="Node.js 8"></a>Node.js 8</h3><table><thead><tr><th align="center"></th><th align="center">Hexo 3.2</th><th align="center"></th><th align="center">Hexo 3.8</th><th align="center"></th><th align="center">Hexo 4.2</th><th align="center"></th></tr></thead><tbody><tr><td align="center">Cold processing</td><td align="center">13.585s</td><td align="center">0%</td><td align="center">18.572s</td><td align="center">+37%</td><td align="center">9.210s</td><td align="center">-32%</td></tr><tr><td align="center">Cold generation</td><td align="center">13.027s</td><td align="center">0%</td><td align="center">50.528s</td><td align="center">+284%</td><td align="center">8.666s</td><td align="center">-33%</td></tr><tr><td align="center">Memory Usage (Cold)</td><td align="center">815.754MB</td><td align="center">0%</td><td align="center">1416.309MB</td><td align="center">+69%</td><td align="center">605.312MB</td><td align="center">-26%</td></tr><tr><td align="center">Hot processing</td><td align="center">0.668s</td><td align="center">0%</td><td align="center">0.712s</td><td align="center">+6%</td><td align="center">0.732s</td><td align="center">+7%</td></tr><tr><td align="center">Hot generation</td><td align="center">11.734s</td><td align="center">0%</td><td align="center">46.339s</td><td align="center">+295%</td><td align="center">7.821s</td><td align="center">-33%</td></tr><tr><td align="center">Memory Usage (Hot)</td><td align="center">702.535MB</td><td align="center">0%</td><td align="center">1450.719MB</td><td align="center">+106%</td><td align="center">821.512MB</td><td align="center">+17%</td></tr></tbody></table><h3 id="Node-js-10"><a href="#Node-js-10" class="headerlink" title="Node.js 10"></a>Node.js 10</h3><table><thead><tr><th align="center"></th><th align="center">Hexo 3.2</th><th align="center"></th><th align="center">Hexo 3.8</th><th align="center"></th><th align="center">Hexo 4.2</th><th align="center"></th></tr></thead><tbody><tr><td align="center">Cold processing</td><td align="center">11.875s</td><td align="center">0%</td><td align="center">15.985s</td><td align="center">+35%</td><td align="center">8.043s</td><td align="center">-29%</td></tr><tr><td align="center">Cold generation</td><td align="center">10.308s</td><td align="center">0%</td><td align="center">41.339s</td><td align="center">+301%</td><td align="center">7.450s</td><td align="center">-28%</td></tr><tr><td align="center">Memory Usage (Cold)</td><td align="center">805.633MB</td><td align="center">0%</td><td align="center">1440.297MB</td><td align="center">+79%</td><td align="center">599.008MB</td><td align="center">-26%</td></tr><tr><td align="center">Hot processing</td><td align="center">0.700s</td><td align="center">0%</td><td align="center">0.676s</td><td align="center">-3%</td><td align="center">0.731s</td><td align="center">+4%</td></tr><tr><td align="center">Hot generation</td><td align="center">8.322s</td><td align="center">0%</td><td align="center">35.453s</td><td align="center">+326%</td><td align="center">6.420s</td><td align="center">-23%</td></tr><tr><td align="center">Memory Usage (Hot)</td><td align="center">679.082MB</td><td align="center">0%</td><td align="center">1447.109MB</td><td align="center">+113%</td><td align="center">789.527MB</td><td align="center">+16%</td></tr></tbody></table><h3 id="Node-js-12"><a href="#Node-js-12" class="headerlink" title="Node.js 12"></a>Node.js 12</h3><table><thead><tr><th align="center"></th><th align="center">Hexo 3.2</th><th align="center"></th><th align="center">Hexo 3.8</th><th align="center"></th><th align="center">Hexo 4.2</th><th align="center"></th></tr></thead><tbody><tr><td align="center">Cold processing</td><td align="center">11.454s</td><td align="center">0%</td><td align="center">15.626s</td><td align="center">+36%</td><td align="center">8.381s</td><td align="center">-27%</td></tr><tr><td align="center">Cold generation</td><td align="center">10.428s</td><td align="center">0%</td><td align="center">37.482s</td><td align="center">+260%</td><td align="center">7.283s</td><td align="center">-30%</td></tr><tr><td align="center">Memory Usage (Cold)</td><td align="center">1101.586MB</td><td align="center">0%</td><td align="center">1413.359MB</td><td align="center">+28%</td><td align="center">580.953MB</td><td align="center">-47%</td></tr><tr><td align="center">Hot processing</td><td align="center">0.724s</td><td align="center">0%</td><td align="center">0.790s</td><td align="center">+9%</td><td align="center">0.790s</td><td align="center">+9%</td></tr><tr><td align="center">Hot generation</td><td align="center">8.994s</td><td align="center">0%</td><td align="center">35.116s</td><td align="center">+293%</td><td align="center">6.385s</td><td align="center">-29%</td></tr><tr><td align="center">Memory Usage (Hot)</td><td align="center">696.500MB</td><td align="center">0%</td><td align="center">1538.719MB</td><td align="center">+120%</td><td align="center">600.398MB</td><td align="center">-14%</td></tr></tbody></table><h3 id="Node-js-13"><a href="#Node-js-13" class="headerlink" title="Node.js 13"></a>Node.js 13</h3><table><thead><tr><th align="center"></th><th align="center">Hexo 3.2</th><th align="center"></th><th align="center">Hexo 3.8</th><th align="center"></th><th align="center">Hexo 4.2</th><th align="center"></th></tr></thead><tbody><tr><td align="center">Cold processing</td><td align="center">11.496s</td><td align="center">0%</td><td align="center">14.970s</td><td align="center">+29%</td><td align="center">8.489s</td><td align="center">-26%</td></tr><tr><td align="center">Cold generation</td><td align="center">10.088s</td><td align="center">0%</td><td align="center">36.867s</td><td align="center">+265%</td><td align="center">7.212s</td><td align="center">-28%</td></tr><tr><td align="center">Memory Usage (Cold)</td><td align="center">1104.465MB</td><td align="center">0%</td><td align="center">1418.273MB</td><td align="center">+28%</td><td align="center">596.233MB</td><td align="center">-46%</td></tr><tr><td align="center">Hot processing</td><td align="center">0.724s</td><td align="center">0%</td><td align="center">0.776s</td><td align="center">+7%</td><td align="center">0.756s</td><td align="center">+4%</td></tr><tr><td align="center">Hot generation</td><td align="center">7.995s</td><td align="center">0%</td><td align="center">33.968s</td><td align="center">+325%</td><td align="center">6.294s</td><td align="center">-21%</td></tr><tr><td align="center">Memory Usage (Hot)</td><td align="center">761.195MB</td><td align="center">0%</td><td align="center">1516.078MB</td><td align="center">+99%</td><td align="center">812.234MB</td><td align="center">+7%</td></tr></tbody></table><h2 id="Drop-cheerio-dependency-from-Hexo"><a href="#Drop-cheerio-dependency-from-Hexo" class="headerlink" title="Drop cheerio dependency from Hexo"></a>Drop cheerio dependency from Hexo</h2><p>As you can see through benchmark result, there is a serious performance regression in Hexo 3.8. It turns out that the <code>meta_generator</code> filter introduced in <a href="https://github.com/hexojs/hexo/issues/3129" rel="external nofollow noreferrer">#3129</a> is the culprit. <a href="https://github.com/hexojs/hexo/issues/3129" rel="external nofollow noreferrer">#3129</a> uses <code>cheerio</code> to insert <code><meta name = "generator" content = "Hexo [version]"></code> into <code><head></code>, thus <code>cheerio</code> has to load all the HTMLs generated by Hexo into memory and parsed into DOM.</p><p><code>cheerio</code> is fast, but still there will be performance bottlenecks when traversing through hundreds of HTML files. In <a href="https://github.com/hexojs/hexo/issues/3677" rel="external nofollow noreferrer">#3677</a> we made a proposal to relpace <code>cheerio</code> with native API. In <a href="https://github.com/hexojs/hexo/issues/3671" rel="external nofollow noreferrer">#3671</a>, <a href="https://github.com/hexojs/hexo/issues/3680" rel="external nofollow noreferrer">#3680</a> and <a href="https://github.com/hexojs/hexo/pull/3685" rel="external nofollow noreferrer">#3685</a> we replace <code>cheerio</code> wirh regex for <code>open_graph()</code> helper, <code>meta_generator</code> filter and <code>external_link</code> filter, and in <a href="https://github.com/hexojs/hexo-util/pull/137" rel="external nofollow noreferrer">hexo-util#137</a> & <a href="https://github.com/hexojs/hexo/pull/3850" rel="external nofollow noreferrer">#3850</a> we replace <code>cheerio</code> with faster <code>htmlparser2</code>. Now we have completely dropped <code>cheerio</code> in Hexo 4.2</p><h2 id="Improve-Cache-of-Rendered-HTML-mechanism"><a href="#Improve-Cache-of-Rendered-HTML-mechanism" class="headerlink" title="Improve Cache of Rendered HTML mechanism"></a>Improve <code>Cache of Rendered HTML</code> mechanism</h2><p><code>Cache of Rendered HTML</code> is introduced in Hexo 3.0.0-rc4 (<a href="https://github.com/hexojs/hexo/commit/e8e45ed0f379f975147a214fbf52b2c28a6c806a#diff-b9bb6fa7bb069bab9948daba90c6c3b2" rel="external nofollow noreferrer"><code>e8e45ed</code></a>), which is an attempt to improve Hexo’s generation performance by caching rendering results. However, each route is used only once during <code>hexo g</code>, so memory is consumed while no performance gained. In <a href="https://github.com/hexojs/hexo/pull/3756" rel="external nofollow noreferrer">#3756</a> <code>Cache of Rendered HTML</code> is disabled for <code>hexo g</code> and enabled for <code>hexo s</code>, so the the memory usage of <code>hexo g</code> has been reduced.</p><h2 id="Drop-Lodash-dependency-from-Hexo"><a href="#Drop-Lodash-dependency-from-Hexo" class="headerlink" title="Drop Lodash dependency from Hexo"></a>Drop Lodash dependency from Hexo</h2><p>Lodash is a modern JavaScript utility library that makes working with arrays, numbers, objects and strings much easier. However, as more and more new features have been brought to ES6, most of Lodash’s features could be replaced by native JavaScript.</p><p>Hexo actually started to reduce Lodash dependent a year ago, such as <a href="https://github.com/hexojs/hexo/pull/3285" rel="external nofollow noreferrer">#3285</a>, <a href="https://github.com/hexojs/hexo/pull/3290" rel="external nofollow noreferrer">#3290</a> & <a href="https://github.com/hexojs/warehouse/pull/18" rel="external nofollow noreferrer">warehouse#18</a>. In <a href="https://github.com/hexojs/hexo/issues/3753" rel="external nofollow noreferrer">#3753</a>, we propose to gradually replace Lodash with native JavaScript by following the <a href="https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore" rel="external nofollow noreferrer">You don’t (may not) need Lodash/Underscore</a>. After <a href="https://github.com/hexojs/hexo/pull/3785" rel="external nofollow noreferrer">#3785</a>, <a href="https://github.com/hexojs/hexo/pull/3786" rel="external nofollow noreferrer">#3786</a>, <a href="https://github.com/hexojs/hexo/pull/3788" rel="external nofollow noreferrer">#3788</a>, <a href="https://github.com/hexojs/hexo/pull/3790" rel="external nofollow noreferrer">#3790</a>, <a href="https://github.com/hexojs/hexo/pull/3791" rel="external nofollow noreferrer">#3791</a>, <a href="https://github.com/hexojs/hexo/pull/3809" rel="external nofollow noreferrer">#3809</a>, <a href="https://github.com/hexojs/hexo/pull/3810" rel="external nofollow noreferrer">#3810</a>, <a href="https://github.com/hexojs/hexo/pull/3813" rel="external nofollow noreferrer">#3813</a>, <a href="https://github.com/hexojs/hexo/pull/3826" rel="external nofollow noreferrer">#3826</a>, <a href="https://github.com/hexojs/hexo/pull/3845" rel="external nofollow noreferrer">#3845</a>, <a href="https://github.com/hexojs/hexo-util/pull/141" rel="external nofollow noreferrer">hexo-util#141</a>, <a href="https://github.com/hexojs/hexo/pull/3880" rel="external nofollow noreferrer">#3880</a> & <a href="https://github.com/hexojs/hexo/pull/3969" rel="external nofollow noreferrer">#3969</a>, we successfully dropped Lodash from Hexo. We also opened a new <a href="https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore/pull/244" rel="external nofollow noreferrer">PR</a> at <a href="https://github.com/you-dont-need/You-Dont-Need-Lodash-Underscore" rel="external nofollow noreferrer">You don’t (may not) need Lodash/Underscore</a> to bring our <code>_.assignIn</code> alternative back to the community.</p><h2 id="Cache-the-return-value-of-utility-function"><a href="#Cache-the-return-value-of-utility-function" class="headerlink" title="Cache the return value of utility function"></a>Cache the return value of utility function</h2><p>There are many utilities in <a href="https://github.com/hexojs/hexo-util" rel="external nofollow noreferrer"><code>hexo-util</code></a>, such as <code>relative_url(from, to)</code> for calculating relative paths, <code>url_for(path)</code> and <code>full_url_for(path)</code> for trasnsforming relative paths into URLs, <code>gravatar(mail)</code> for calculating gravatar URLs from E-mail address, and <code>isExternalLink(url)</code> for determine whether the given URL is an external link. We found out that those functions might be called thousands of times during the Hexo generation process while the same parameters might be passed repeatedly, so the key-values of the parameters and the return value could be cached. This idea was implemented in <a href="https://github.com/hexojs/hexo-util/pull/162" rel="external nofollow noreferrer">hexo-util#162</a>.</p><h2 id="Future"><a href="#Future" class="headerlink" title="Future"></a>Future</h2><p>We have added Benchmark to CI as part of the unit test in <a href="https://github.com/hexojs/hexo/pull/3776" rel="external nofollow noreferrer">#3776</a>. Since then, benchmark has helped us find potential performance regressions (likes <a href="https://github.com/hexojs/hexo/pull/3807" rel="external nofollow noreferrer">#3807</a> & <a href="https://github.com/hexojs/hexo/issues/3833" rel="external nofollow noreferrer">#3833</a>) several times and avoiding the severe performance regression like <a href="https://github.com/hexojs/hexo/issues/3129" rel="external nofollow noreferrer">#3129</a>. And we are going to take a step further to add flamegraph to unit case in <a href="https://github.com/hexojs/hexo/pull/4000" rel="external nofollow noreferrer">#4000</a>, which will help us better optimizing the generation process of Hexo. For Hexo, speed is always the key.</p>]]></content>
<summary type="html">
<blockquote>
<p>Originally written by <a href="https://github.com/SukkaW" rel="external nofollow noreferrer">Sukka</a> (one of the current H
</summary>
</entry>
<entry>
<title>Hexo 4.2.0, hexo-util 1.8.0 & eslint-config-hexo 4.1.0 released</title>
<link href="https://eareyereading.com/news/2019/12/22/hexo-4.2_hexo-util-1-8_eslint-config-hexo-released/"/>
<id>https://eareyereading.com/news/2019/12/22/hexo-4.2_hexo-util-1-8_eslint-config-hexo-released/</id>
<published>2019-12-22T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.378Z</updated>
<content type="html"><![CDATA[<h2 id="Hexo-4-2-0"><a href="#Hexo-4-2-0" class="headerlink" title="Hexo 4.2.0"></a>Hexo 4.2.0</h2><h3 id="Features"><a href="#Features" class="headerlink" title="Features"></a>Features</h3><ul><li><code>Cache rendered HTML</code> is disabled by default in hexo-server <a href="https://github.com/hexojs/hexo/pull/3963" rel="external nofollow noreferrer">#3963</a><ul><li>It’s disabled so that any changes (particularly to the theme’s layout) can be previewed in real-time.</li><li>If you use hexo-server in production environment to serve your website, it can be enabled by,<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="string">_config.yml</span></span><br><span class="line"><span class="attr">server:</span></span><br><span class="line"> <span class="attr">cache:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure></li></ul></li><li>Add <code>min_depth:</code> option to <a href="https://hexo.io/docs/helpers#toc" rel="external nofollow noreferrer"><code>toc()</code></a> helper <a href="https://github.com/hexojs/hexo/pull/3997" rel="external nofollow noreferrer">#3997</a><ul><li>Example usage:<figure class="highlight js"><table><tr><td class="code"><pre><span class="line"><%- toc(page.content, { <span class="attr">min_depth</span>: <span class="number">2</span> }) %></span><br><span class="line"><span class="comment">// table of content would only include <h2>, <h3> and above</span></span><br></pre></td></tr></table></figure></li></ul></li></ul><h3 id="Fixes"><a href="#Fixes" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>Merges similar theme configs in main config and theme’s config <a href="https://github.com/hexojs/hexo/pull/3967" rel="external nofollow noreferrer">#3967</a><ul><li>For example:<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="string">_config.yml</span></span><br><span class="line"><span class="attr">theme_config:</span></span><br><span class="line"> <span class="attr">a:</span></span><br><span class="line"> <span class="attr">b:</span> <span class="string">'foo'</span></span><br></pre></td></tr></table></figure></li><li>Plus,<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="string">_config.yml</span> <span class="string">of</span> <span class="string">theme</span></span><br><span class="line"><span class="attr">a:</span></span><br><span class="line"> <span class="attr">c:</span> <span class="string">'bar'</span></span><br></pre></td></tr></table></figure></li><li><a href="https://hexo.io/docs/variables#Global-Variables" rel="external nofollow noreferrer"><code>theme</code></a> variable should have,<figure class="highlight plain"><table><tr><td class="code"><pre><span class="line">a: {</span><br><span class="line"> b: 'foo',</span><br><span class="line"> c: 'bar'</span><br><span class="line">}</span><br></pre></td></tr></table></figure></li></ul></li><li>Fixes some caching issue <a href="https://github.com/hexojs/hexo/pull/3985" rel="external nofollow noreferrer">#3985</a></li><li><a href="https://hexo.io/docs/helpers#open-graph" rel="external nofollow noreferrer">Open Graph</a> now applies all <a href="https://hexo.io/docs/configuration#URL" rel="external nofollow noreferrer"><code>pretty_urls</code></a> options to <code>og:url</code> tag <a href="https://github.com/hexojs/hexo/pull/3983" rel="external nofollow noreferrer">#3983</a></li></ul><h3 id="Refactor"><a href="#Refactor" class="headerlink" title="Refactor"></a>Refactor</h3><ul><li>No longer uses lodash <a href="https://github.com/hexojs/hexo/pull/3969" rel="external nofollow noreferrer">#3969</a>, <a href="https://github.com/hexojs/hexo/pull/3987" rel="external nofollow noreferrer">#3987</a>, <a href="https://github.com/hexojs/hexo/issues/3753" rel="external nofollow noreferrer">#3753</a><ul><li>Lodash <code>_</code> is still available as a <a href="https://hexo.io/docs/variables#Global-Variables" rel="external nofollow noreferrer">global variable</a>, usually utilized in theme layout.</li><li>However, we plan to completely drop it in the coming Hexo 5.0.0</li><li>This <a href="https://github.com/orgs/hexojs/projects/5#card-27533837" rel="external nofollow noreferrer">project page</a> includes all the relevant pull requests which you may find useful</li></ul></li><li>Completely drops cheerio <a href="https://github.com/hexojs/hexo/pull/3850" rel="external nofollow noreferrer">#3850</a>, <a href="https://github.com/hexojs/hexo/issues/3677" rel="external nofollow noreferrer">#3677</a><ul><li>This means Hexo no longer includes cheerio as part of its production dependencies (it’s still a development dependency)</li><li>To continuing use cheerio,<figure class="highlight sh"><table><tr><td class="code"><pre><span class="line">$ npm install --save cheerio</span><br></pre></td></tr></table></figure></li></ul></li></ul><h2 id="hexo-util-1-8-0"><a href="#hexo-util-1-8-0" class="headerlink" title="hexo-util 1.8.0"></a>hexo-util 1.8.0</h2><h3 id="Features-1"><a href="#Features-1" class="headerlink" title="Features"></a>Features</h3><ul><li><a href="https://github.com/hexojs/hexo-util#tocobjstr-options" rel="external nofollow noreferrer"><code>tocObj()</code></a> to convert headings (e.g. <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Heading_Elements" rel="external nofollow noreferrer"><code><h1></code></a>) in html into JSON format <a href="https://github.com/hexojs/hexo-util/pull/137" rel="external nofollow noreferrer">#137</a><ul><li>Enables headings to be programmatically parsed and manipulated.</li><li>Created mainly to be used by the <a href="https://hexo.io/docs/helpers#toc" rel="external nofollow noreferrer"><code>toc()</code></a> helper (ref <a href="https://github.com/hexojs/hexo/pull/3850" rel="external nofollow noreferrer">hexojs/hexo#3850</a>).</li></ul></li><li><a href="https://github.com/hexojs/hexo-util/#cache" rel="external nofollow noreferrer"><code>Cache()</code></a> class utility <a href="https://github.com/hexojs/hexo-util/pull/162" rel="external nofollow noreferrer">#162</a><ul><li>Mainly to cache user config to avoid unnecessary parsing</li><li>We have started utilizing caching on many utilities and resulted in up to 20% better performance.</li></ul></li></ul><h3 id="Fixes-1"><a href="#Fixes-1" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>In <a href="https://github.com/hexojs/hexo-util#htmltagtag-attrs-text-escape" rel="external nofollow noreferrer"><code>htmlTag()</code></a>, url in <code><meta></code> tags (in Facebook Open Graph and Twitter Card) are now percent-encoded, instead of html-escaped. <a href="https://github.com/hexojs/hexo-util/pull/159" rel="external nofollow noreferrer">#159</a><ul><li>url in <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Img" rel="external nofollow noreferrer">srcset</a> attribute is now encoded using <a href="https://github.com/hexojs/hexo-util#encodeurlstr" rel="external nofollow noreferrer"><code>encodeURL()</code></a> which supports more url types, instead of encodeURI. <a href="https://github.com/hexojs/hexo-util/pull/160" rel="external nofollow noreferrer">#160</a></li></ul></li></ul><h2 id="eslint-config-hexo-4-1-0"><a href="#eslint-config-hexo-4-1-0" class="headerlink" title="eslint-config-hexo 4.1.0"></a>eslint-config-hexo 4.1.0</h2><ul><li>must have a space between <code>async</code> and arrow function <a href="https://github.com/hexojs/eslint-config-hexo/pull/28" rel="external nofollow noreferrer">#28</a><ul><li>using <a href="https://eslint.org/docs/rules/space-before-function-paren" rel="external nofollow noreferrer"><code>space-before-function-paren</code></a> rule</li><li>incorrect<figure class="highlight js"><table><tr><td class="code"><pre><span class="line"><span class="keyword">const</span> foo = <span class="keyword">async</span>(a) => <span class="keyword">await</span> a</span><br></pre></td></tr></table></figure></li><li>correct<figure class="highlight js"><table><tr><td class="code"><pre><span class="line"><span class="keyword">const</span> foo = <span class="keyword">async</span> (a) => <span class="keyword">await</span> a</span><br></pre></td></tr></table></figure></li></ul></li></ul>]]></content>
<summary type="html">
<h2 id="Hexo-4-2-0"><a href="#Hexo-4-2-0" class="headerlink" title="Hexo 4.2.0"></a>Hexo 4.2.0</h2><h3 id="Features"><a href="#Features" cla
</summary>
</entry>
<entry>
<title>Official plugin hexo-renderer-markdown-it 4.0.0 released</title>
<link href="https://eareyereading.com/news/2019/12/15/hexo-renderer-markdown-it-4/"/>
<id>https://eareyereading.com/news/2019/12/15/hexo-renderer-markdown-it-4/</id>
<published>2019-12-15T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.378Z</updated>
<content type="html"><![CDATA[<p>We have released a new version of the official plugin <a href="https://github.com/hexojs/hexo-renderer-markdown-it" rel="external nofollow noreferrer">hexo-renderer-markdown-it</a></p><h3 id="Breaking-changes"><a href="#Breaking-changes" class="headerlink" title="Breaking changes"></a>Breaking changes</h3><ul><li>We have updated the default config to be consistent with <a href="https://github.com/hexojs/hexo-renderer-marked" rel="external nofollow noreferrer">hexo-renderer-marked</a> <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/90" rel="external nofollow noreferrer">#90</a>, <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/92" rel="external nofollow noreferrer">#92</a><ul><li>New defaults:<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">markdown:</span></span><br><span class="line"> <span class="attr">render:</span></span><br><span class="line"> <span class="attr">html:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">xhtmlOut:</span> <span class="literal">false</span></span><br><span class="line"> <span class="attr">breaks:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">linkify:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">typographer:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">quotes:</span> <span class="string">'“”‘’'</span></span><br><span class="line"> <span class="attr">plugins:</span></span><br><span class="line"> <span class="attr">anchors:</span></span><br><span class="line"> <span class="attr">level:</span> <span class="number">2</span></span><br><span class="line"> <span class="attr">collisionSuffix:</span> <span class="string">''</span></span><br><span class="line"> <span class="attr">permalink:</span> <span class="literal">false</span></span><br><span class="line"> <span class="attr">permalinkClass:</span> <span class="string">'header-anchor'</span></span><br><span class="line"> <span class="attr">permalinkSymbol:</span> <span class="string">'¶'</span></span><br><span class="line"> <span class="attr">case:</span> <span class="number">0</span></span><br><span class="line"> <span class="attr">separator:</span> <span class="string">'-'</span></span><br></pre></td></tr></table></figure></li><li>Previous defaults (other configs remain the same):<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">markdown:</span></span><br><span class="line"> <span class="attr">anchors:</span></span><br><span class="line"> <span class="attr">permalink:</span> <span class="literal">true</span></span><br><span class="line"> <span class="attr">level:</span> <span class="number">1</span></span><br><span class="line"> <span class="attr">collisionSuffix:</span> <span class="string">'v'</span></span><br><span class="line"> <span class="attr">case:</span> <span class="number">1</span></span><br></pre></td></tr></table></figure></li></ul></li><li>Requires Node 8.6+ <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/79" rel="external nofollow noreferrer">#79</a></li></ul><h3 id="Features"><a href="#Features" class="headerlink" title="Features"></a>Features</h3><ul><li>Include official markdown-it plugins <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/52" rel="external nofollow noreferrer">#52</a>, <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/86" rel="external nofollow noreferrer">#86</a>, <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/87" rel="external nofollow noreferrer">#87</a><ul><li>They are disabled by default</li><li>Included plugins:<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">markdown:</span></span><br><span class="line"> <span class="attr">plugins:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-abbr</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-cjk-breaks</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-container</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-deflist</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-emoji</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-footnote</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-ins</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-mark</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-sub</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-sup</span></span><br></pre></td></tr></table></figure></li></ul></li><li>Include <a href="https://github.com/markdown-it/markdown-it-cjk-breaks" rel="external nofollow noreferrer">markdown-it-cjk-breaks</a> plugin <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/56" rel="external nofollow noreferrer">#56</a><ul><li>To enable:<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">markdown:</span></span><br><span class="line"> <span class="attr">plugins:</span></span><br><span class="line"> <span class="bullet">-</span> <span class="string">markdown-it-cjk-breaks</span></span><br></pre></td></tr></table></figure></li></ul></li><li>Add new options to <code>anchors:</code> <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/95" rel="external nofollow noreferrer">#95</a><figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">markdown:</span></span><br><span class="line"> <span class="attr">anchors:</span></span><br><span class="line"> <span class="attr">case:</span> <span class="number">0</span> <span class="comment"># Set to 1 to transform anchors to lowercase, 2 for uppercase</span></span><br><span class="line"> <span class="attr">separator:</span> <span class="string">'-'</span> <span class="comment"># Replace the space with a dash, can be any character</span></span><br></pre></td></tr></table></figure></li></ul><h3 id="Housekeeping"><a href="#Housekeeping" class="headerlink" title="Housekeeping"></a>Housekeeping</h3><ul><li>Update markdown-it from v8 to v10 <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/80" rel="external nofollow noreferrer">#80</a>, <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/88" rel="external nofollow noreferrer">#88</a></li><li>Update mocha from v3 to v5 <a href="https://github.com/hexojs/hexo-renderer-markdown-it/pull/60" rel="external nofollow noreferrer">#60</a></li></ul>]]></content>
<summary type="html">
<p>We have released a new version of the official plugin <a href="https://github.com/hexojs/hexo-renderer-markdown-it" rel="external nofollo
</summary>
</entry>
<entry>
<title>Hexo 4.1.1, hexo-util 1.7.0 & eslint-config-hexo 4.0.0 released</title>
<link href="https://eareyereading.com/news/2019/12/12/hexo-4-1-1_hexo-util-1-7_eslint-config-hexo-4/"/>
<id>https://eareyereading.com/news/2019/12/12/hexo-4-1-1_hexo-util-1-7_eslint-config-hexo-4/</id>
<published>2019-12-12T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.378Z</updated>
<content type="html"><![CDATA[<p>We have released a bugfix release for <a href="https://github.com/hexojs/hexo" rel="external nofollow noreferrer">hexo</a>, and new version of official hexo plugins <a href="https://github.com/hexojs/hexo-util" rel="external nofollow noreferrer">hexo-util</a> and <a href="https://github.com/hexojs/eslint-config-hexo" rel="external nofollow noreferrer">eslint-config-hexo</a>.</p><h2 id="hexo-4-1-1"><a href="#hexo-4-1-1" class="headerlink" title="hexo 4.1.1"></a>hexo 4.1.1</h2><h3 id="Feature"><a href="#Feature" class="headerlink" title="Feature"></a>Feature</h3><ul><li>Add <code>trailing_html:</code> to <a href="/docs/configuration#URL"><code>pretty_urls:</code></a> option to remove “.html” from url <a href="https://github.com/hexojs/hexo/pull/3917" rel="external nofollow noreferrer">#3917</a><ul><li>Use the following config to remove the trailing “.html” from permalink <a href="/docs/variables">variables</a><figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="string">_config.yml</span></span><br><span class="line"><span class="attr">pretty_urls:</span></span><br><span class="line"> <span class="attr">trailing_html:</span> <span class="literal">false</span></span><br></pre></td></tr></table></figure></li><li>Example: <code>https://yoursite.com/page/about.html</code> -> <code>https://yoursite.com/page/about</code></li></ul></li></ul><h3 id="Fixes"><a href="#Fixes" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>Set default locales (in “language_TERRITORY” format) for <a href="https://ogp.me/#optional" rel="external nofollow noreferrer"><code>og:locale</code></a> Open Graph tag <a href="https://github.com/hexojs/hexo/pull/3921" rel="external nofollow noreferrer">#3921</a><ul><li>Previously <code>og:locale</code> was inserted only if <a href="/docs/configuration#Site"><code>language:</code></a> is configured in “language-TERRITORY” format</li><li>With this fix, if the language is “en”, <code>og:locale</code> will default to “en_US”. Refer to the pull request for the full list.</li></ul></li><li><a href="/docs/helpers#meta-generator"><code>meta_generator()</code></a> helper should output the correct Hexo version <a href="https://github.com/hexojs/hexo/pull/3925" rel="external nofollow noreferrer">#3925</a></li><li><a href="/docs/configuration#URL"><code>permalink_defaults:</code></a> option should be parsed, not replaced <a href="https://github.com/hexojs/hexo/pull/3926" rel="external nofollow noreferrer">#3926</a></li><li>“node_modules/“ and “.git/“ folders in themes/ are now always ignored <a href="https://github.com/hexojs/hexo/pull/3918" rel="external nofollow noreferrer">#3918</a></li></ul><h3 id="Refactor"><a href="#Refactor" class="headerlink" title="Refactor"></a>Refactor</h3><ul><li>Further reduces lodash usage <a href="https://github.com/hexojs/hexo/pull/3880" rel="external nofollow noreferrer">#3880</a></li></ul><h2 id="hexo-util-1-7-0"><a href="#hexo-util-1-7-0" class="headerlink" title="hexo-util 1.7.0"></a>hexo-util 1.7.0</h2><h3 id="Features"><a href="#Features" class="headerlink" title="Features"></a>Features</h3><ul><li><a href="https://github.com/hexojs/hexo-util#deepmergetarget-source" rel="external nofollow noreferrer"><code>deepMerge()</code></a> utility <a href="https://github.com/hexojs/hexo-util/pull/141" rel="external nofollow noreferrer">#141</a><ul><li>Based on <a href="https://github.com/TehShrike/deepmerge" rel="external nofollow noreferrer">deepmerge</a> library</li><li>target object is not modified, which is different to Object.assign() and lodash.merge</li></ul></li><li><a href="https://github.com/hexojs/hexo-util#prettyurlsurl-options" rel="external nofollow noreferrer"><code>prettyUrls()</code></a> utility <a href="https://github.com/hexojs/hexo-util/pull/152" rel="external nofollow noreferrer">#152</a><ul><li>This is used to remove trailing <code>.html</code> or <code>index.html</code> from a url string</li><li>Typically used for SEO, particularly to create <a href="https://support.google.com/webmasters/answer/139066?hl=en" rel="external nofollow noreferrer">canonical url</a></li></ul></li></ul><h3 id="Fixes-1"><a href="#Fixes-1" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li><code>wrap:</code> option is no longer disabled when <code>hljs:</code> is enabled in code highlight <a href="https://github.com/hexojs/hexo-util#highlightstr-options" rel="external nofollow noreferrer"><code>highlight()</code></a> utility <a href="https://github.com/hexojs/hexo-util/pull/138" rel="external nofollow noreferrer">#138</a><ul><li>Since <code>wrap:</code> is enabled by default, if you prefer previous behavior of <code>hljs:</code>, you need to specifically disable <code>wrap:</code>,<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="string">_config.yml</span></span><br><span class="line"><span class="attr">highlight:</span></span><br><span class="line"> <span class="attr">wrap:</span> <span class="literal">false</span></span><br><span class="line"> <span class="attr">hljs:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure></li></ul></li><li><code>url_for()</code> & <code>full_url_for()</code> should ignore absolute url (i.e. links that start with “http” or double slash “//“) <a href="https://github.com/hexojs/hexo-util/pull/147" rel="external nofollow noreferrer">#147</a></li><li>Selecting a codeblock should not include line number <a href="https://github.com/hexojs/hexo-util/pull/153" rel="external nofollow noreferrer">#153</a><ul><li>This reverts breaking change introduced in <a href="https://github.com/hexojs/hexo-util/pull/132" rel="external nofollow noreferrer">#132</a></li></ul></li></ul><h2 id="eslint-config-hexo-4-0-0"><a href="#eslint-config-hexo-4-0-0" class="headerlink" title="eslint-config-hexo 4.0.0"></a>eslint-config-hexo 4.0.0</h2><h3 id="Features-1"><a href="#Features-1" class="headerlink" title="Features"></a>Features</h3><ul><li>Support up to ES2020 syntax by using eslint-plugin-node v10 <a href="https://github.com/hexojs/eslint-config-hexo/pull/23" rel="external nofollow noreferrer">#23</a></li><li>Prefer ES6+ syntax <a href="https://github.com/hexojs/eslint-config-hexo/pull/22" rel="external nofollow noreferrer">#22</a></li><li>Remove deprecated/duplicated rules <a href="https://github.com/hexojs/eslint-config-hexo/pull/4" rel="external nofollow noreferrer">#4</a>, <a href="https://github.com/hexojs/eslint-config-hexo/pull/6" rel="external nofollow noreferrer">#6</a>, <a href="https://github.com/hexojs/eslint-config-hexo/pull/21" rel="external nofollow noreferrer">#21</a></li></ul><h3 id="Fix"><a href="#Fix" class="headerlink" title="Fix"></a>Fix</h3><ul><li>Retain <a href="https://nodejs.org/docs/latest-v8.x/api/url.html#url_legacy_url_api" rel="external nofollow noreferrer">legacy</a> URL API <a href="https://github.com/hexojs/eslint-config-hexo/pull/19" rel="external nofollow noreferrer">#19</a><ul><li>Contrary to the pull request’s description, Node 8 actually does support the newer <a href="https://nodejs.org/docs/latest-v8.x/api/url.html#url_the_whatwg_url_api" rel="external nofollow noreferrer">WHATWG URL</a> API.</li><li>However, it is later found that migrating completely to the newer API caused performance regression, so for now hexo uses a mixture of legacy and newer API. <a href="https://github.com/hexojs/hexo/issues/3833" rel="external nofollow noreferrer">hexojs/hexo#3833</a>, <a href="https://github.com/hexojs/hexo/issues/3846" rel="external nofollow noreferrer">hexojs/hexo#3846</a></li></ul></li></ul>]]></content>
<summary type="html">
<p>We have released a bugfix release for <a href="https://github.com/hexojs/hexo" rel="external nofollow noreferrer">hexo</a>, and new versi
</summary>
</entry>
<entry>
<title>Hexo 4.1.0 Released</title>
<link href="https://eareyereading.com/news/2019/12/09/hexo-4-1-released/"/>
<id>https://eareyereading.com/news/2019/12/09/hexo-4-1-released/</id>
<published>2019-12-09T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.377Z</updated>
<content type="html"><![CDATA[<h3 id="Breaking-changes"><a href="#Breaking-changes" class="headerlink" title="Breaking changes"></a>Breaking changes</h3><ul><li>Requires Node 8.10 or above <a href="https://github.com/hexojs/hexo/pull/3778" rel="external nofollow noreferrer">#3778</a><ul><li>Node 8 is going to be deprecated in <a href="https://github.com/nodejs/Release/blob/master/README.md" rel="external nofollow noreferrer">less than a month</a>, we strongly urge to upgrade to Node 10 or newer</li></ul></li><li><code>og:locale</code> <a href="https://ogp.me/" rel="external nofollow noreferrer">Open Graph</a> tag won’t be inserted if <code>language:</code> (in config, front-matter of post/page or <a href="/docs/helpers#open-graph"><code>open_graph()</code></a> helper) is not in <code>language-TERRITORY</code> format <a href="https://github.com/hexojs/hexo/pull/3808" rel="external nofollow noreferrer">#3808</a><ul><li><code>en</code> is invalid</li><li><code>en-GB</code> is valid</li><li>Not all locales are supported (e.g. <code>en-AU</code> is not valid), see <a href="https://developers.facebook.com/docs/messenger-platform/messenger-profile/supported-locales/" rel="external nofollow noreferrer">official list</a></li><li>Dash (e.g. “en-GB”) must be used for multilingual support, dash is automatically transformed to underscore (e.g. “en_GB”) in <code>og:locale</code></li><li>Verify the corresponding file exists in the <code>languages/</code> folder of installed theme before changing the <code>language:</code> config</li></ul></li></ul><h3 id="Features"><a href="#Features" class="headerlink" title="Features"></a>Features</h3><ul><li>Support adding hour and minute to post permalink <a href="https://github.com/hexojs/hexo/pull/3629" rel="external nofollow noreferrer">#3629</a><ul><li>Example usage:<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="string">_config.yml</span></span><br><span class="line"><span class="attr">permalink:</span> <span class="string">:year/:month/:day/:hour/:minute/:title/</span></span><br></pre></td></tr></table></figure></li><li>Results in <code>https://yoursite.com/2019/12/09/23/59/a-post/</code></li></ul></li><li>Insert <code>article:published_time</code> <a href="https://github.com/hexojs/hexo/pull/3674" rel="external nofollow noreferrer">#3674</a> <code>article:author</code> <a href="https://github.com/hexojs/hexo/pull/3805" rel="external nofollow noreferrer">#3805</a> Open Graph tags</li><li>Enable <code>lazyload</code> in iframe-related tag plugins <a href="https://github.com/hexojs/hexo/pull/3798" rel="external nofollow noreferrer">#3798</a><ul><li>Affects <a href="/docs/tag-plugins#iframe"><code>iframe</code></a>, <a href="/docs/tag-plugins#jsFiddle"><code>jsfiddle</code></a>, <a href="/docs/tag-plugins#Vimeo"><code>vimeo</code></a>, <a href="/docs/tag-plugins#YouTube"><code>youtube</code></a> tag plugins</li><li>Requires <a href="https://caniuse.com/#feat=loading-lazy-attr" rel="external nofollow noreferrer">supported browsers</a> to benefit from this feature</li><li>Unsupported browsers would simply ignore the attribute, thus it is safe to use and always enabled</li></ul></li><li><code>meta_generator</code> helper to insert <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Element/meta" rel="external nofollow noreferrer">metadata</a> element tag <a href="https://github.com/hexojs/hexo/pull/3782" rel="external nofollow noreferrer">#3782</a><ul><li>Example usage:</li><li>Insert the following snippet (if EJS is used) inside <code><head></code> element of your theme layout,<figure class="highlight js"><table><tr><td class="code"><pre><span class="line"><%- meta_generator() %></span><br></pre></td></tr></table></figure></li><li>would output <code><meta name="generator" content="Hexo 4.1.0"></code></li><li>Hexo 3.9.0+ inserts the tag automatically; to get the performance benefit (of the <code>meta_generator</code> helper), <a href="/docs/configuration#Extensions"><code>meta_generator:</code></a> option should be disabled,<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="string">_config.yml</span></span><br><span class="line"><span class="attr">meta_generator:</span> <span class="literal">false</span></span><br></pre></td></tr></table></figure></li></ul></li><li>Support custom attributes in <a href="/docs/helpers#js"><code>js()</code></a> <a href="https://github.com/hexojs/hexo/pull/3681" rel="external nofollow noreferrer">#3681</a> and <a href="/docs/helpers#css"><code>css()</code></a> <a href="https://github.com/hexojs/hexo/pull/3690" rel="external nofollow noreferrer">#3690</a> helpers<ul><li>Example usage:<figure class="highlight js"><table><tr><td class="code"><pre><span class="line"><%- js({ <span class="attr">src</span>: <span class="string">'script.js'</span>, <span class="attr">integrity</span>: <span class="string">'foo'</span>, <span class="attr">async</span>: <span class="literal">true</span> }) %></span><br><span class="line"><span class="comment">// <script src="/script.js" integrity="foo" async></script></span></span><br><span class="line"></span><br><span class="line"><%- css({ <span class="attr">href</span>: <span class="string">'style.css'</span>, <span class="attr">integrity</span>: <span class="string">'foo'</span> }) %></span><br><span class="line"><span class="comment">// <link rel="stylesheet" href="/style.css" integrity="foo"></span></span><br></pre></td></tr></table></figure></li></ul></li><li>Support <code>wrap:</code> option to enable/disable wrapping backtick codeblock in <code><table></code> element <a href="https://github.com/hexojs/hexo/pull/3827" rel="external nofollow noreferrer">#3827</a><ul><li>Enabled by default, enabling <code>line_number</code> also enables it</li><li>Configure in <a href="/docs/configuration#Writing"><code>highlight:</code></a><figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="string">_config.yml</span></span><br><span class="line"><span class="attr">highlight:</span></span><br><span class="line"> <span class="attr">line_number:</span> <span class="literal">false</span> <span class="comment"># must be disabled to disable wrap:</span></span><br><span class="line"> <span class="attr">wrap:</span> <span class="literal">false</span></span><br></pre></td></tr></table></figure></li><li>This option also can be passed to <a href="/docs/tag-plugins#Code-Block"><code>codeblock()</code></a> tag plugin <a href="https://github.com/hexojs/hexo/pull/3848" rel="external nofollow noreferrer">#3848</a><figure class="highlight js"><table><tr><td class="code"><pre><span class="line">{% codeblock lang:js wrap:<span class="literal">false</span> %}</span><br><span class="line"><span class="keyword">const</span> foo = <span class="function">(<span class="params">bar</span>) =></span> {</span><br><span class="line"> <span class="keyword">return</span> bar;</span><br><span class="line">};</span><br><span class="line">{% endcodeblock %}</span><br></pre></td></tr></table></figure></li><li>Outputs,<pre><code class="highlight js"><span class="keyword">const</span> foo = <span class="function">(<span class="params">bar</span>) =></span> { <span class="keyword">return</span> bar;};</code></pre></li></ul></li></ul><h3 id="Fixes"><a href="#Fixes" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>Retain blank lines in a codeblock attached in blockquote <a href="https://github.com/hexojs/hexo/pull/3770" rel="external nofollow noreferrer">#3770</a></li><li>Replaced deprecated <code>og_updated_time</code> Open Graph tag with <code>article:modified_time</code> <a href="https://github.com/hexojs/hexo/pull/3674" rel="external nofollow noreferrer">#3674</a></li><li>Replaced deprecated <code>keywords</code> Open Graph tag with <code>article:tag</code> <a href="https://github.com/hexojs/hexo/pull/3805" rel="external nofollow noreferrer">#3805</a></li><li>meta_generator tag should be inserted into <code><head></code> that spans multiple lines <a href="https://github.com/hexojs/hexo/pull/3778" rel="external nofollow noreferrer">#3778</a></li><li>No longer clear database <code>db.json</code> when running <code>hexo new</code> or <code>hexo --help</code> <a href="https://github.com/hexojs/hexo/pull/3793" rel="external nofollow noreferrer">#3793</a></li><li>Completely ignore files/folders specified in <a href="/docs/configuration#Include-Exclude-Files-or-Folders"><code>ignore:</code></a> option <a href="https://github.com/hexojs/hexo/pull/3797" rel="external nofollow noreferrer">#3797</a><ul><li>If you’re using Webpack or related tools in your theme, the <code>node_modules</code> folder could cause some issues</li><li>A temporary workaround is to configure Hexo to ignore that folder,<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="string">_config.yml</span></span><br><span class="line"><span class="attr">ignore:</span> <span class="string">'**/themes/*/node_modules/**'</span></span><br></pre></td></tr></table></figure></li><li>The workaround will no longer be necessary in future version</li></ul></li><li>jsfiddle, vimeo and youtube tag plugins now use https only <a href="https://github.com/hexojs/hexo/pull/3806" rel="external nofollow noreferrer">#3806</a></li><li><code>external_link</code> filter should not process data URLs (e.g. <code>mailto:</code> & <code>javascript:</code>) [#3812] and <code><article></code> element <a href="https://github.com/hexojs/hexo/pull/3895" rel="external nofollow noreferrer">#3895</a></li><li>Prevent unnecessary insertion of front-matter when using alias in Hexo <a href="/docs/commands">CLI</a> <a href="https://github.com/hexojs/hexo/pull/3830" rel="external nofollow noreferrer">#3830</a><ul><li><code>-p</code> is alias of <code>--path</code></li><li><code>-s</code> is alias of <code>--slug</code></li><li><code>-r</code> is alias of <code>--replace</code></li></ul></li><li>Applies <code>include:</code> and <code>exclude:</code> <a href="/docs/configuration#Include-Exclude-Files-or-Folders">options</a> to post’s asset folder <a href="https://github.com/hexojs/hexo/pull/3882" rel="external nofollow noreferrer">#3882</a></li><li><code>ignore:</code> option should work for files, in addition to folders [#3878]</li></ul><h3 id="Housekeeping"><a href="#Housekeeping" class="headerlink" title="Housekeeping"></a>Housekeeping</h3><ul><li>Add <a href="https://fossa.com/" rel="external nofollow noreferrer">FOSSA</a> license analyzer for open-source software license compliance <a href="https://github.com/hexojs/hexo/pull/3779" rel="external nofollow noreferrer">#3779</a></li><li>Run benchmark in CI to catch regression <a href="https://github.com/hexojs/hexo/pull/3776" rel="external nofollow noreferrer">#3776</a></li><li>Further reduces lodash usage <a href="https://github.com/hexojs/hexo/pull/3786" rel="external nofollow noreferrer">#3786</a>, <a href="https://github.com/hexojs/hexo/pull/3788" rel="external nofollow noreferrer">#3788</a>, <a href="https://github.com/hexojs/hexo/pull/3790" rel="external nofollow noreferrer">#3790</a>, <a href="https://github.com/hexojs/hexo/pull/3785" rel="external nofollow noreferrer">#3785</a>, <a href="https://github.com/hexojs/hexo/pull/3809" rel="external nofollow noreferrer">#3809</a>, <a href="https://github.com/hexojs/hexo/pull/3791" rel="external nofollow noreferrer">#3791</a>, <a href="https://github.com/hexojs/hexo/pull/3810" rel="external nofollow noreferrer">#3810</a>, <a href="https://github.com/hexojs/hexo/pull/3826" rel="external nofollow noreferrer">#3826</a>, <a href="https://github.com/hexojs/hexo/pull/3867" rel="external nofollow noreferrer">#3867</a>, <a href="https://github.com/hexojs/hexo/pull/3845" rel="external nofollow noreferrer">#3845</a></li><li>Remove unnecessary file at the end of unit test <a href="https://github.com/hexojs/hexo/pull/3792" rel="external nofollow noreferrer">#3792</a></li><li>Add funding source to npm <a href="https://github.com/hexojs/hexo/pull/3851" rel="external nofollow noreferrer">#3851</a></li><li>Update strip-ansi from 5.2.0 to 6.0.0 <a href="https://github.com/hexojs/hexo/pull/3852" rel="external nofollow noreferrer">#3852</a></li><li>Update chalk from 2.4.2 to 3.0.0 <a href="https://github.com/hexojs/hexo/pull/3853" rel="external nofollow noreferrer">#3853</a></li></ul>]]></content>
<summary type="html">
<h3 id="Breaking-changes"><a href="#Breaking-changes" class="headerlink" title="Breaking changes"></a>Breaking changes</h3><ul>
<li>Requires
</summary>
</entry>
<entry>
<title>Official plugins hexo-util 1.6.0, hexo-generator-feed 2.2.0 & hexo-uglify 1.1.0 released</title>
<link href="https://eareyereading.com/news/2019/11/28/hexo-util1-6_hexo-generator-feed-2-2_hexo-uglify-1-1/"/>
<id>https://eareyereading.com/news/2019/11/28/hexo-util1-6_hexo-generator-feed-2-2_hexo-uglify-1-1/</id>
<published>2019-11-28T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.377Z</updated>
<content type="html"><![CDATA[<p>We have released a new version of the official plugins <a href="https://github.com/hexojs/hexo-util" rel="external nofollow noreferrer">hexo-util</a>, <a href="https://github.com/hexojs/hexo-generator-feed" rel="external nofollow noreferrer">hexo-generator-feed</a> and <a href="https://github.com/hexojs/hexo-uglify" rel="external nofollow noreferrer">hexo-uglify</a>.</p><h2 id="hexo-util-1-6-0"><a href="#hexo-util-1-6-0" class="headerlink" title="hexo-util 1.6.0"></a>hexo-util 1.6.0</h2><h3 id="Breaking-changes"><a href="#Breaking-changes" class="headerlink" title="Breaking changes"></a>Breaking changes</h3><ul><li><a href="https://github.com/hexojs/hexo-util#isexternallinkurl-sitehost-exclude" rel="external nofollow noreferrer"><code>isExternalLink</code></a> no longer requires <code>bind(hexo)</code> <a href="https://github.com/hexojs/hexo-util/pull/140" rel="external nofollow noreferrer">#140</a><ul><li>Pass the site config or an url as parameter<figure class="highlight js"><table><tr><td class="code"><pre><span class="line">isExternalLink(<span class="string">'https://example.com'</span>, hexo.config.url);</span><br></pre></td></tr></table></figure></li></ul></li><li><a href="https://github.com/hexojs/hexo-util#url_forpath-option" rel="external nofollow noreferrer"><code>url_for()</code></a> & <a href="https://github.com/hexojs/hexo-util#full_url_forpath" rel="external nofollow noreferrer"><code>full_url_for()</code></a> no longer process folder name with semicolon <a href="https://github.com/hexojs/hexo-util/pull/130" rel="external nofollow noreferrer">#130</a><ul><li>This is necessary to avoid processing data urls (e.g. <code>mailto:</code> & <code>data:</code>]</li></ul></li></ul><h3 id="Fixes"><a href="#Fixes" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>Fix performance regression introduced in 1.5.0 <a href="https://github.com/hexojs/hexo-util/pull/125" rel="external nofollow noreferrer">#125</a>, <a href="https://github.com/hexojs/hexo-util/pull/124" rel="external nofollow noreferrer">#124</a>, <a href="https://github.com/hexojs/hexo-util/pull/128" rel="external nofollow noreferrer">#128</a><ul><li>Affected <code>url_for()</code>, <code>full_url_for()</code>, <code>isExternalLink()</code></li><li>For background, see <a href="https://github.com/hexojs/hexo/issues/3833" rel="external nofollow noreferrer">hexojs/hexo#3833</a> & <a href="https://github.com/hexojs/hexo/issues/3846" rel="external nofollow noreferrer">hexojs/hexo#3846</a></li></ul></li><li>Remove unnecessary new line <code><br></code> element from codeblock <a href="https://github.com/hexojs/hexo-util/pull/132" rel="external nofollow noreferrer">#132</a></li><li>Handle underscore sign in <a href="https://github.com/hexojs/hexo-util#permalinkrule-options" rel="external nofollow noreferrer"><code>permalink()</code></a> <a href="https://github.com/hexojs/hexo-util/pull/139" rel="external nofollow noreferrer">#139</a></li><li>Applies <code>pretty_urls.trailing_index</code> <a href="https://hexo.io/docs/configuration#URL" rel="external nofollow noreferrer">option</a> to <code>url_for()</code> and <code>full_url_for()</code>, to remove the trailing <code>index.html</code> from links. <a href="https://github.com/hexojs/hexo-util/pull/134" rel="external nofollow noreferrer">#134</a></li><li>Replace <a href="https://github.com/mdevils/node-html-entities" rel="external nofollow noreferrer">node-html-entities</a> with <a href="https://github.com/hexojs/hexo-util#escapehtmlstr" rel="external nofollow noreferrer"><code>escapeHTML()</code></a> in <a href="https://github.com/hexojs/hexo-util#highlightstr-options" rel="external nofollow noreferrer"><code>highlight()</code></a> <a href="https://github.com/hexojs/hexo-util/pull/129" rel="external nofollow noreferrer">#129</a><ul><li><code>escapeHTML()</code> escapes more characters compared to node-html-entities.</li><li>This also means more unsafe characters are now escaped in codeblock</li></ul></li><li>Escape equal <code>=</code> sign to <code>&#x3D;</code> in <code>escapeHTML()</code> <a href="https://github.com/hexojs/hexo-util/pull/131" rel="external nofollow noreferrer">#131</a><ul><li>Equal sign can be misused to create another attribute in html element, this fix prevents that</li></ul></li></ul><h2 id="hexo-generator-feed-2-2-0"><a href="#hexo-generator-feed-2-2-0" class="headerlink" title="hexo-generator-feed 2.2.0"></a>hexo-generator-feed 2.2.0</h2><h3 id="Feature"><a href="#Feature" class="headerlink" title="Feature"></a>Feature</h3><ul><li>Support custom template, in addition to the default <a href="https://github.com/hexojs/hexo-generator-feed/blob/master/atom.xml" rel="external nofollow noreferrer">atom.xml</a> & <a href="https://github.com/hexojs/hexo-generator-feed/blob/master/rss2.xml" rel="external nofollow noreferrer">rss2.xml</a> templates. <a href="https://github.com/hexojs/hexo-generator-feed/pull/110" rel="external nofollow noreferrer">#110</a><figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">feed:</span></span><br><span class="line"> <span class="attr">template:</span> <span class="string">'./path/to/template'</span></span><br></pre></td></tr></table></figure></li></ul><h3 id="Fix"><a href="#Fix" class="headerlink" title="Fix"></a>Fix</h3><ul><li>Fix compatibility issue with existing themes <a href="https://github.com/hexojs/hexo-generator-feed/pull/114" rel="external nofollow noreferrer">#114</a></li></ul><h2 id="hexo-uglify-1-1-0"><a href="#hexo-uglify-1-1-0" class="headerlink" title="hexo-uglify 1.1.0"></a>hexo-uglify 1.1.0</h2><h3 id="Feature-1"><a href="#Feature-1" class="headerlink" title="Feature"></a>Feature</h3><ul><li>Support minifying javascript files with ES6+ syntax by utilizing <a href="https://github.com/terser/terser" rel="external nofollow noreferrer">Terser</a> <a href="https://github.com/hexojs/hexo-uglify/pull/71" rel="external nofollow noreferrer">#71</a><ul><li>Still defaults to <a href="https://github.com/mishoo/UglifyJS2" rel="external nofollow noreferrer">UglifyJS</a> (which doesn’t support ES6)</li><li>To enable ES6 support,<figure class="highlight yml"><table><tr><td class="code"><pre><span class="line"><span class="attr">uglify:</span></span><br><span class="line"> <span class="attr">es6:</span> <span class="literal">true</span></span><br></pre></td></tr></table></figure></li></ul></li></ul><h2 id="hexo-uglify-1-0-0"><a href="#hexo-uglify-1-0-0" class="headerlink" title="hexo-uglify 1.0.0"></a>hexo-uglify 1.0.0</h2><h3 id="Breaking-change"><a href="#Breaking-change" class="headerlink" title="Breaking change"></a>Breaking change</h3><ul><li>Drop EOL Node 6, now requires Node 8.6 <a href="https://github.com/hexojs/hexo-uglify/pull/46" rel="external nofollow noreferrer">#46</a></li></ul><h3 id="Feature-2"><a href="#Feature-2" class="headerlink" title="Feature"></a>Feature</h3><ul><li>Switch minimatch to micromatch, for faster exclusion operation and to support more <a href="https://github.com/micromatch/micromatch#extended-globbing" rel="external nofollow noreferrer">globbing patterns</a> <a href="https://github.com/hexojs/hexo-uglify/pull/40" rel="external nofollow noreferrer">#40</a></li></ul><h3 id="Refactors"><a href="#Refactors" class="headerlink" title="Refactors"></a>Refactors</h3><ul><li>Use native <code>Object.assign()</code> <a href="https://github.com/hexojs/hexo-uglify/pull/12" rel="external nofollow noreferrer">#12</a></li><li>Switch to eslint and drop gulp, to be inline with hexo’s <a href="https://github.com/hexojs/eslint-config-hexo" rel="external nofollow noreferrer">style</a> <a href="https://github.com/hexojs/hexo-uglify/pull/37" rel="external nofollow noreferrer">#37</a></li></ul><h3 id="Dependencies"><a href="#Dependencies" class="headerlink" title="Dependencies"></a>Dependencies</h3><ul><li>Update mocha from 2.0.1 to 6.2.0 <a href="https://github.com/hexojs/hexo-uglify/pull/6" rel="external nofollow noreferrer">#6</a>, <a href="https://github.com/hexojs/hexo-uglify/pull/16" rel="external nofollow noreferrer">#16</a>, <a href="https://github.com/hexojs/hexo-uglify/pull/42" rel="external nofollow noreferrer">#42</a></li><li>Update coveralls from 2.11.2 to 3.0.2 <a href="https://github.com/hexojs/hexo-uglify/pull/9" rel="external nofollow noreferrer">#9</a></li><li>Update chai from 1.9.1 to 4.2.0 <a href="https://github.com/hexojs/hexo-uglify/pull/8" rel="external nofollow noreferrer">#8</a></li><li>Update eslint from 5.16.0 to 6.1.0 <a href="https://github.com/hexojs/hexo-uglify/pull/43" rel="external nofollow noreferrer">#43</a></li><li>Update uglify-js from 2.6.0 to 3.6.0 <a href="https://github.com/hexojs/hexo-uglify/pull/36" rel="external nofollow noreferrer">#36</a></li></ul>]]></content>
<summary type="html">
<p>We have released a new version of the official plugins <a href="https://github.com/hexojs/hexo-util" rel="external nofollow noreferrer">h
</summary>
</entry>
<entry>
<title>Official plugins hexo-deployer-git 2.1.0, hexo-generator-feed 2.1.1 & hexo-generator-sitemap 2.0.0 released</title>
<link href="https://eareyereading.com/news/2019/11/22/hexo-deployer-git-2-1_hexo-generator-feed-2-1-1_hexo-generator-sitemap-2/"/>
<id>https://eareyereading.com/news/2019/11/22/hexo-deployer-git-2-1_hexo-generator-feed-2-1-1_hexo-generator-sitemap-2/</id>
<published>2019-11-22T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.377Z</updated>
<content type="html"><![CDATA[<p>We have released a new version of the official plugins <a href="https://github.com/hexojs/hexo-deployer-git" rel="external nofollow noreferrer">hexo-deployer-git</a>, <a href="https://github.com/hexojs/hexo-generator-feed" rel="external nofollow noreferrer">hexo-generator-feed</a> and <a href="https://github.com/hexojs/hexo-generator-sitemap" rel="external nofollow noreferrer">hexo-generator-sitemap</a>.</p><h2 id="hexo-deployer-git-2-1-0"><a href="#hexo-deployer-git-2-1-0" class="headerlink" title="hexo-deployer-git 2.1.0"></a>hexo-deployer-git 2.1.0</h2><h3 id="Features"><a href="#Features" class="headerlink" title="Features"></a>Features</h3><ul><li>Support authenticating using an access token (either the value itself or an environment variable) specified in the config <a href="https://github.com/hexojs/hexo-deployer-git/pull/135" rel="external nofollow noreferrer">#135</a><ul><li>Refer to <a href="https://github.com/hexojs/hexo-deployer-git/blob/master/README.md" rel="external nofollow noreferrer">the doc</a> for usage guide.</li></ul></li></ul><h2 id="hexo-generator-feed-2-1-1"><a href="#hexo-generator-feed-2-1-1" class="headerlink" title="hexo-generator-feed 2.1.1"></a>hexo-generator-feed 2.1.1</h2><h3 id="Fixes"><a href="#Fixes" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>namespace in atom.xml should use <code>http</code> not <code>https</code> <a href="https://github.com/hexojs/hexo-generator-feed/pull/105" rel="external nofollow noreferrer">#105</a></li><li>Skip generating feed if there is no post <a href="https://github.com/hexojs/hexo-generator-feed/pull/107" rel="external nofollow noreferrer">#107</a></li></ul><h2 id="hexo-generator-sitemap-2-0-0"><a href="#hexo-generator-sitemap-2-0-0" class="headerlink" title="hexo-generator-sitemap 2.0.0"></a>hexo-generator-sitemap 2.0.0</h2><h3 id="Breaking-change"><a href="#Breaking-change" class="headerlink" title="Breaking change"></a>Breaking change</h3><ul><li>Drop Node 6, now requires Node 8.6+ <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/54" rel="external nofollow noreferrer">#54</a></li></ul><h3 id="Features-1"><a href="#Features-1" class="headerlink" title="Features"></a>Features</h3><ul><li>Switch minimatch to micromatch for faster file exclusion and support more search patterns <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/57" rel="external nofollow noreferrer">#57</a><ul><li>See <a href="https://github.com/micromatch/micromatch#extended-globbing" rel="external nofollow noreferrer">micromatch docs</a> for supported patterns.</li></ul></li><li>Add <a href="http://microformats.org/wiki/rel-sitemap" rel="external nofollow noreferrer">rel-sitemap tag</a> <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/71" rel="external nofollow noreferrer">#71</a><ul><li>Disabled by default as it’s not widely supported by search engines yet</li></ul></li></ul><h3 id="Fixes-1"><a href="#Fixes-1" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>Publish default template <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/50" rel="external nofollow noreferrer">#50</a></li><li>Encode url except the domain (for IDN compatibility) <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/68" rel="external nofollow noreferrer">#68</a></li><li>Skip generate if there are no posts and pages <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/78" rel="external nofollow noreferrer">#78</a></li></ul><h3 id="Refactor"><a href="#Refactor" class="headerlink" title="Refactor"></a>Refactor</h3><ul><li>Update to ES6 syntax <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/40" rel="external nofollow noreferrer">#40</a>, <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/56" rel="external nofollow noreferrer">#56</a>, <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/67" rel="external nofollow noreferrer">#67</a></li><li>Utilize the faster <code>Array.push()</code> instead of <code>Array.concat()</code> <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/76" rel="external nofollow noreferrer">#76</a></li></ul><h3 id="Dependencies"><a href="#Dependencies" class="headerlink" title="Dependencies"></a>Dependencies</h3><ul><li>Update eslint from v1 to v6 <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/34" rel="external nofollow noreferrer">#34</a>, <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/39" rel="external nofollow noreferrer">#39</a>, <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/53" rel="external nofollow noreferrer">#53</a></li><li>Update mocha from v2 to v6 <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/35" rel="external nofollow noreferrer">#35</a></li><li>Update nunjucks from v2 to v3 <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/38" rel="external nofollow noreferrer">#38</a></li><li>Replace istanbul with nyc <a href="https://github.com/hexojs/hexo-generator-sitemap/pull/51" rel="external nofollow noreferrer">#51</a></li></ul>]]></content>
<summary type="html">
<p>We have released a new version of the official plugins <a href="https://github.com/hexojs/hexo-deployer-git" rel="external nofollow noref
</summary>
</entry>
<entry>
<title>Official plugins hexo-generator-feed 2.1.0 & hexo-util 1.5.0 released</title>
<link href="https://eareyereading.com/news/2019/11/10/hexo-generator-feed-2-1_hexo-util-1-5/"/>
<id>https://eareyereading.com/news/2019/11/10/hexo-generator-feed-2-1_hexo-util-1-5/</id>
<published>2019-11-10T00:00:00.000Z</published>
<updated>2020-05-19T08:21:29.377Z</updated>
<content type="html"><![CDATA[<p>We have released a new version of the official plugins <a href="https://github.com/hexojs/hexo-generator-feed" rel="external nofollow noreferrer">hexo-generator-feed</a> & <a href="https://github.com/hexojs/hexo-util" rel="external nofollow noreferrer">hexo-util</a>.</p><h2 id="hexo-generator-feed-2-1-0"><a href="#hexo-generator-feed-2-1-0" class="headerlink" title="hexo-generator-feed 2.1.0"></a>hexo-generator-feed 2.1.0</h2><h3 id="Breaking-change"><a href="#Breaking-change" class="headerlink" title="Breaking change"></a>Breaking change</h3><ul><li>Requires Node 8.10 or newer <a href="https://github.com/hexojs/hexo-generator-feed/pull/99" rel="external nofollow noreferrer">#99</a></li></ul><h3 id="Features"><a href="#Features" class="headerlink" title="Features"></a>Features</h3><ul><li>Add rss <a href="http://www.rssboard.org/rss-autodiscovery" rel="external nofollow noreferrer">autodiscovery</a> element by default <a href="https://github.com/hexojs/hexo-generator-feed/pull/96" rel="external nofollow noreferrer">#96</a></li><li>Support feed icon in RSS2 <a href="https://github.com/hexojs/hexo-generator-feed/pull/102" rel="external nofollow noreferrer">#102</a></li><li>Support generating both atom and rss2 <a href="https://github.com/hexojs/hexo-generator-feed/pull/100" rel="external nofollow noreferrer">#100</a></li></ul><h3 id="Fixes"><a href="#Fixes" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>Percent-encode <code>/root/</code>, in addition to pathname <a href="https://github.com/hexojs/hexo-generator-feed/pull/93" rel="external nofollow noreferrer">#93</a></li><li>Fix autodiscovery element did not get injected into head element that has more than one line <a href="https://github.com/hexojs/hexo-generator-feed/pull/99" rel="external nofollow noreferrer">#99</a></li></ul><h2 id="hexo-generator-feed-2-0-0"><a href="#hexo-generator-feed-2-0-0" class="headerlink" title="hexo-generator-feed 2.0.0"></a>hexo-generator-feed 2.0.0</h2><h3 id="Breaking-change-1"><a href="#Breaking-change-1" class="headerlink" title="Breaking change"></a>Breaking change</h3><ul><li>Drop Node 6, v2 onwards must use Node 8 or above <a href="https://github.com/hexojs/hexo-generator-feed/pull/85" rel="external nofollow noreferrer">#85</a></li></ul><h3 id="Features-1"><a href="#Features-1" class="headerlink" title="Features"></a>Features</h3><ul><li>Support post with <code>image</code> front-matter <a href="https://github.com/hexojs/hexo-generator-feed/pull/68" rel="external nofollow noreferrer">#68</a></li><li>Feed icon is now customizable <a href="https://github.com/hexojs/hexo-generator-feed/pull/69" rel="external nofollow noreferrer">#69</a></li><li>Support specifying per-post description by specifying “intro” in front-matter <a href="https://github.com/hexojs/hexo-generator-feed/pull/58" rel="external nofollow noreferrer">#58</a></li><li>Support feed icon <a href="https://github.com/hexojs/hexo-generator-feed/pull/57" rel="external nofollow noreferrer">#57</a></li><li>Post order can be specified. Order by newest post by default. <a href="https://github.com/hexojs/hexo-generator-feed/pull/64" rel="external nofollow noreferrer">#64</a></li></ul><h3 id="Fix"><a href="#Fix" class="headerlink" title="Fix"></a>Fix</h3><ul><li>Avoid percent-encoding the domain for compatibility with <a href="https://en.wikipedia.org/wiki/Internationalized_domain_name" rel="external nofollow noreferrer">IDN</a> <a href="https://github.com/hexojs/hexo-generator-feed/pull/82" rel="external nofollow noreferrer">#82</a></li></ul><h3 id="Housekeeping"><a href="#Housekeeping" class="headerlink" title="Housekeeping"></a>Housekeeping</h3><ul><li>chore(package): delete jscs & use eslint <a href="https://github.com/hexojs/hexo-generator-feed/pull/72" rel="external nofollow noreferrer">#72</a></li><li>Avoid publishing unnecessary files <a href="https://github.com/hexojs/hexo-generator-feed/pull/70" rel="external nofollow noreferrer">#70</a></li></ul><h2 id="hexo-util-1-5-0"><a href="#hexo-util-1-5-0" class="headerlink" title="hexo-util 1.5.0"></a>hexo-util 1.5.0</h2><h3 id="Breaking-change-2"><a href="#Breaking-change-2" class="headerlink" title="Breaking change"></a>Breaking change</h3><ul><li>IDN is no longer punycoded in <a href="https://github.com/hexojs/hexo-util#encodeurlstr" rel="external nofollow noreferrer"><code>encodeURL()</code></a>. IDN, regardless in punycode or unicode, is now always output in unicode. This also affect <a href="https://github.com/hexojs/hexo-util#decodeurlstr" rel="external nofollow noreferrer"><code>decodeURL()</code></a> <a href="https://github.com/hexojs/hexo-util/pull/116" rel="external nofollow noreferrer">#116</a></li></ul><h3 id="Feature"><a href="#Feature" class="headerlink" title="Feature"></a>Feature</h3><ul><li>Check whether a link is an external URL using <a href="https://github.com/hexojs/hexo-util#isexternallinkurl" rel="external nofollow noreferrer"><code>isExternalLink()</code></a> <a href="https://github.com/hexojs/hexo-util/pull/119" rel="external nofollow noreferrer">#119</a></li></ul><h3 id="Fixes-1"><a href="#Fixes-1" class="headerlink" title="Fixes"></a>Fixes</h3><ul><li>Support disabling <code>wrap:</code> option in <a href="https://github.com/hexojs/hexo-util#highlightstr-options" rel="external nofollow noreferrer"><code>highlight()</code></a> <a href="https://github.com/hexojs/hexo-util/pull/112" rel="external nofollow noreferrer">#112</a></li><li>Backquote is also escaped in <a href="https://github.com/hexojs/hexo-util#escapehtmlstr" rel="external nofollow noreferrer"><code>escapeHTML()</code></a> <a href="https://github.com/hexojs/hexo-util/pull/118" rel="external nofollow noreferrer">#118</a></li></ul>]]></content>
<summary type="html">
<p>We have released a new version of the official plugins <a href="https://github.com/hexojs/hexo-generator-feed" rel="external nofollow nor
</summary>
</entry>
</feed>