我想写一个生成器插件来添加一些类似帖子的项目到我的博客。这些项目应该出现在博客索引中,但它们没有与之关联的页面(您无法点击它们)。
我知道我需要像
这样的东西SELECT tblStatus.ClientID, Max(tblStatus.Date) AS Date
FROM tblStatus
WHERE tblStatus.Status=
(
SELECT MIN(Status)
FROM tblStatus Status
WHERE ClientID=tblStatus.ClientID
)
GROUP BY tblStatus.ClientID
但我不明白的是如何实现我的class QuoteGenerator < Generator
safe true
def generate(site)
# add a single post
site.posts << QuotePost.new(site, site.source, "Blub")
end
end
子类。我发现其他插件(如this one to embed Flickr photos)将他们想要的数据写入markdown + YAML文件,然后引用此文件:
Post
但是,我首先不需要插件。我可以自己生成markdown文件(使用外部脚本)。
我想做的是在Post子类中设置几个变量,并在博客索引的模板中使用它们。我怎么能这样做?
答案 0 :(得分:0)
您所描述的案例与Post
无关,因为通常的帖子都是基于文件的。收藏可能是合适的,但同样 - 你不清楚如何获得内容。
我建议两个主要选择:
使用_data /设置对象列表,如果您可以通过静态JSON / CSV / etc文件定义它们(或生成一次,以分离外部数据生成器和jekyll可视化),则每个项目都具有所需的属性)。
如果您必须通过代码定义数据,请使用:pre_render hook和插件 -
你的钩子也会收到一个有效载荷哈希作为第二个参数,它允许你完全控制渲染时可用的变量
将数据放在site.data
变量中可以让您遍历项目,渲染内容或包含模板等等。还有一些插件可以根据网站的数据生成新页面。
正确的答案取决于您获取内容的方式,您需要的标记以及如何使用这些内容。