มีทั้งหมดสองวิธีสำหรับการ render ไฟล์หรือ string ใน hexo : hexo.render.render
ท่ีเป็น asynchronous และวิธี hexo.render.renderSync
ท่ีเป็น synchronous เนื่องจากว่าสองวิธีนี้คล้ายกันมาก ก็เลยมีการอธิบายแต่ hexo.render.render
ท่ีเป็นวิธี asynchronous เท่านั้นในย่อหน้าต่อไป Unsurprisingly, the two methods are very similar so only the asynchronous hexo.render.render
will be further discussed in the below paragraphs.
Render a String
เวลา render string ผู้ใช้ต้องบ่งชี้ถึง engine
ท่ีชัดเจนเพื่อทำให้ hexo เข้าใจว่าต้องใช้ rendering engine ตัวใหน
hexo.render.render({ text: "example", engine: "swig" }).then(function (result) { |
Render a File
เมื่อ render ไฟล์ จะไม่ต้องชี้ engine
ให้ชั้ดเจน เพราะว่า hexo จะค้นหา rendering engine ท่ีเกี่ยวข้องตาม extension ของไฟล์โดยอัตโนมัติ แต่ถ้าชี้ engine
ให้ชั้ดเจนก็ไม่มีปัญหา Of course, you are also allowed to explicitly define the engine
.
hexo.render.render({ path: "path/to/file.swig" }).then(function (result) { |
Render Options
ผู้ใช้สามารถส่ง options object เข้าไปเป็น argument ท่ีสอง
hexo.render.render({ text: "" }, { foo: "foo" }).then(function (result) { |
after_render Filters
เมื่อเสร็จการ rendering hexo จะ execute filter after_render
ยกตัวอย่างเช่น ผู้ใช้สามารถ implement a JavaScript minifier ด้วยลักษณะนี้ For example, we can use this feature to implement a JavaScript minifier.
var UglifyJS = require("uglify-js"); |
Check Whether a File is Renderable
ผู้ใช้สามารถใช้วิธี isRenderable
หรือ isRenderableSync
ไปตรวจว่าไฟล์นั้น renderable หรือไม่ เมื่อมี renderer ท่ีเกี่ยวข้อง ผลท่ีส่งกลับจะเป็น true Only when a corresponding renderer has been registered will this method return true.
hexo.render.isRenderable("layout.swig"); // true |
Get the Output Extension
Use the getOutput
method to get the extension of the rendered output. ผู้ใช้สามารถได้ rendered output ด้วยวิธี getOutput
ถ้าไฟล์ไม่ใช่ renderable ผลท่ีส่งกลับด้วยวิธีนี้จะเป็น empty string
hexo.render.getOutput("layout.swig"); // html |
Disable Nunjucks tags
If you are not using a tag plugin and want to use {{ }}
or {% %}
in your post without using content escaping, you can disable processing of Nunjucks tag in existing renderer by:
// following example only applies to '.md' file extension |