我想讀取模板,然後讀入零個或多個包含要注入模板的內容的文件。模板和內容都在Markdown中。從它看起來像Swig reasearch少量將會提供一個輕量級的標記,我可以使用Gulp:從磁盤讀取內容以插入模板
產生的功能將是這個樣子:
function assembleCharacterDocument(slug) {
return gulp.src('./templates/character-document.md')
.pipe(files2obj(['characters/'+slug+'/*.md'])) // read content for the character
.pipe(swig()) // == require('gulp-swig'); inject content into template
.pipe(md2pdf()) // convert Markdown to PDF - outside scope of this question
.pipe(gulp.dest('./products/characters/'+slug+'.pdf'));
});
由於Swig需要普通老式對象爲其更換數據,我希望每個進來的文件都有文件名作爲對象的關鍵字。因此,舉例來說,我的替換數據對象將是這個樣子:
{
"bio": content of characters/{slug}/bio.md,
"profile": content of characters/{slug}/profile.md,
"timeline": content of characters/{slug}/timeline.md,
etc.
}
什麼是files2obj()
的內容?
我在問題中說我要使用Swig。這個問題不是關於解決模板問題,而是關於如何將文件放入Swig使用的對象中。 –
@JayBienvenu對不起,你鏈接到Swig。我錯過了代碼中的評論,認爲它是咕嚕咕嚕。 – fotijr
@JayBienvenu和gulp-swig Github,gulp-data聽起來好像會解決你的問題。 「通過新的gulp-data插件將數據注入到您的模板中,它會根據您需要的數據創建一個file.data屬性。」 – fotijr