2015-02-23 3 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 }} 

Edit очевидно, что я неправильно понял вопрос.

Но вы можете использовать жидкостные фильтры с include Liquid::StandardFilters

Вы можете использовать strip_html и strip_newlines в плагине.

+0

Это жидкостные фильтры, которые недоступны из плагина Ruby. Мне нужно сделать это полностью в этом файле плагина. – Tohuw

Смежные вопросы