一个动态排序导航,包括Jekyll、Gulp和Markdown
我尝试使用标记文件中的元数据进行导航。 所以我的问题是,我只在网站上使用jekyll,而gulp用于降价,问题是我不知道如何让gulp获取元数据并将其放入jekyll导航 我的导航默认页面如下所示:一个动态排序导航,包括Jekyll、Gulp和Markdown,gulp,metadata,markdown,jekyll,Gulp,Metadata,Markdown,Jekyll,我尝试使用标记文件中的元数据进行导航。 所以我的问题是,我只在网站上使用jekyll,而gulp用于降价,问题是我不知道如何让gulp获取元数据并将其放入jekyll导航 我的导航默认页面如下所示: <nav id="subNav"> {% assign pages = site.pages | sort:"weight" %} <ul class="secondLevel"> {% for p in pages %} &
<nav id="subNav">
{% assign pages = site.pages | sort:"weight" %}
<ul class="secondLevel">
{% for p in pages %}
<li>
<a {% if p.url == page.url %}class="active"{% endif %} href="{{ p.path }}">
{{ p.title }}
</a>
</li>
{% endfor %}
</ul>
</nav>
gulp.task('markdown', function() {
return gulp.src('src/fileadmin/layout/compass/scss/media_all/*.md')
.pipe(markdown({
gfm: true,
tables: true,
breaks: true,
pedantic: true,
sanitize: false,
smartLists: true,
smartypants: true
}))
.pipe(insert.transform(function(content,file){
var ext = path.extname(file.path),
base = path.basename(file.path, ext); // https://nodejs.org/api/util.html | http://stackoverflow.com/questions/31612192/get-file-basename-in-gulp-replacer-task
var comment = '---\nlayout: default\ntitle: ' + base.charAt(0).toUpperCase() + base.substr(1) + '\n---\n\n';// http://phpjs.org/functions/ucfirst/ | http://www.w3schools.com/jsref/jsref_touppercase.asp
return comment + content;
}))
.pipe(gulp.dest(destDir));
}))
因此,gulpfile的一部分用于非动态导航。
如何从标记元数据中获取动态导航?
我希望有人能理解我的问题,并能帮助…因为您的md文件包含元数据(假设在文件顶部),您需要使用而不是渲染它们 我已经转向了另一个支持元数据标记的版本。它支持以下降价格式:
---
标题:Lorem ipsum dolor sit amet
---
#标题
将降价
替换为此模块,方法如下:
var metaMarkdown=require('gulp-meta-markdown');
var数据=需要('gulp-data');
...
返回gulp.src('src/fileadmin/layout/compass/scss/media\u all/*.md')
.管道(元标记)({
gfm:没错,
表:对,
是的,
学究:是的,
消毒:错,
智能列表:没错,
smartypants:没错
}))
这样,您将通过file.contents
属性接收对象的字符串
{
meta: {
title: "Lorem ipsum dolor..."
},
html: <rendered html code>
}
从这一点上,您可以将导航放置到元数据部分,并使用它进行渲染。由于md文件包含元数据(假设位于文件顶部),因此您需要使用而不是渲染它们 我已经转向了另一个支持元数据标记的版本。它支持以下降价格式:
---
标题:Lorem ipsum dolor sit amet
---
#标题
将降价
替换为此模块,方法如下:
var metaMarkdown=require('gulp-meta-markdown');
var数据=需要('gulp-data');
...
返回gulp.src('src/fileadmin/layout/compass/scss/media\u all/*.md')
.管道(元标记)({
gfm:没错,
表:对,
是的,
学究:是的,
消毒:错,
智能列表:没错,
smartypants:没错
}))
这样,您将通过file.contents
属性接收对象的字符串
{
meta: {
title: "Lorem ipsum dolor..."
},
html: <rendered html code>
}
从这一点开始,您可以将导航放置到元数据部分并使用它进行渲染。您可以提供示例标记文件吗?您可以提供示例标记文件吗?