2015-02-23 41 views
0

我正在研究一个插件来解析所有帖子,并将它们收集到JSON文件中以供搜索机制使用。 我怎样才能访问这个帖子的文本,没有标记?我目前访问site.posts,然后例如page.content循环。这将返回帖子的内容,但包含换行符标记(\n)和Markdown语法。从Jekyll插件访问无标记帖子和页面内容

我看到有人想要get Markdown processed content in a Jekyll tag plugin的另一个问题,但我的情况是不同的:我根本不需要任何标记,只是文章的纯文本,没有格式应用。

以下是我目前实施的关键def

def generate(site) 
    target = File.open('js/searchcontent.js', 'w') 
    target.truncate(target.size) 
    target.puts('var tipuesearch = {"pages": [') 

    all_but_last, last = site.posts[0..-2], site.posts.last 

    # Process all posts but the last one 
    all_but_last.each do |page| 
    tp_page = TipuePage.new(
     page.data['title'], 
     "#{page.data['tags']} #{page.data['categories']}", 
     page.url, 
     page.content 
    ) 
    target.puts(tp_page.to_json + ',') 
    end 

    # Do the last post 
    tp_page = TipuePage.new(
    last.data['title'], 
    "#{last.data['tags']} #{last.data['categories']}", 
    last.url, 
    last.content 
) 
    target.puts(tp_page.to_json) 

    target.puts(']};') 
    target.close 
end 

回答

1

也许你可以试试这个:

{{ page.content | strip_html | strip_newlines }} 

编辑很明显,我误解你的问题。

但是你可以使用液体过滤器与include Liquid::StandardFilters

然后你可以在你的插件使用strip_htmlstrip_newlines

+0

这些是液体过滤器,无法从插件Ruby脚本访问。我需要完全在此插件文件中完成此操作。 – Tohuw 2015-02-23 14:32:31