我有一个jekyll页面,其中有两个文件夹:products
_products/product_name
我有一个包含此产品的产品页面md文件:
---
title: product_title
subtitle: subtilte
layout: product
description: long description
product_icon: product_image_path
---
这个简单的布局:
---
layout: default
---
<!-- Main -->
<div id="main">
<div id="content" class="container">
<header id="product_header">
<div class="half_left center">
<img id="product_icon" src="/assets/{{ page.product_icon }}" alt="">
<h2 id="product_title">{{ page.title }}</h2>
<h3 id="product_subtitle">{{page.subtitle}}</h3>
</div>
<div class="half_right center">
{% markdown _products/page.title/short.md %}
</div>
<div class="clear"></div>
</header>
{{content}}
</div>
</div>
然而在:{% markdown _products/page.title/short.md %}
我似乎无法捕获页面标题,我该怎么做?
我的降价标记:
# From: http://wolfslittlestore.be/2013/10/rendering-markdown-in-jekyll/
=begin
Jekyll tag to include Markdown text from _includes directory preprocessing with Liquid.
Usage:
{% markdown <filename> %}
Dependency:
- kramdown
=end
module Jekyll
class MarkdownTag < Liquid::Tag
def initialize(tag_name, text, tokens)
super
@text = text.strip
end
require "kramdown"
def render(context)
tmpl = File.read File.join Dir.pwd, "", @text
site = context.registers[:site]
tmpl = (Liquid::Template.parse tmpl).render site.site_payload
html = Kramdown::Document.new(tmpl).to_html
end
end
end
Liquid::Template.register_tag('markdown', Jekyll::MarkdownTag)
有人可以告诉我如何抓取{% markdown _products/page.title/short.md %}
中的page.title我收到此错误:Liquid Exception: No such file or directory @ rb_sysopen - /home/tools/git/pagename.github.io/_products/page.title/short in _layouts/product.html
答案 0 :(得分:1)
我在jekyll的解决方案中发现了一个不同的构建版本,因此我没有使用插件
我们假设您在路径john.md
中有降价文件markdown_files
,我们可以执行以下操作:
{% capture john %}
{% include_relative markdown_files/john.md %}
{% endcapture %}
然后,我们想要输入john.md
中现在捕获的john
文字,我们可以将此{{ john | markdownify }}
它不是一个光滑的,不是一个班轮,但它的工作原理。根据您的设置,您可以使用include
代替include_relative
希望它可以帮助其他人,并感谢Jekyll IRC社区帮助我找到解决方案。