Уценка к простому тексту в Ruby?
В настоящее время я использую BlueCloth для обработки Markdown в Ruby и отображения его в виде HTML, но в одном месте он мне нужен в виде простого текста (без некоторой уценки). Есть ли способ достичь этого?
Есть ли метод уценки к обычному тексту? Есть ли метод html-to-text, который я мог почувствовать в результате BlueCloth?
3 ответа
RedCarpet Gem имеет рендерер Redcarpet::Render::StripDown, который "превращает Markdown в открытый текст".
Скопируйте и измените его в соответствии с вашими потребностями.
Или используйте это так:
Redcarpet::Markdown.new(Redcarpet::Render::StripDown).render(markdown)
Преобразование HTML в обычный текст с помощью Ruby не является проблемой, но, конечно, вы потеряете всю разметку. Если вы хотите избавиться от синтаксиса Markdown, он, скорее всего, не даст желаемого результата.
Суть в том, что неопубликованная Markdown предназначена для использования в качестве простого текста, поэтому преобразование ее в простой текст не имеет смысла. Все реализации Ruby, которые я видел, следуют одному и тому же интерфейсу, который не предлагает способ удаления синтаксиса (только включая to_html
, а также text
, который возвращает исходный текст уценки).
Это не рубин, но один из форматов, которые сейчас пишет Pandoc, "простой". Вот некоторая произвольная уценка:
# My Great Work
## First Section
Here we discuss my difficulties with [Markdown](http://wikipedia.org/Markdown)
## Second Section
We begin with a quote:
> We hold these truths to be self-evident ...
then some code:
#! /usr/bin/bash
That's *all*.
(Не уверен, как отключить подсветку синтаксиса!) Вот связанное "обычное":
My Great Work
=============
First Section
-------------
Here we discuss my difficulties with Markdown
Second Section
--------------
We begin with a quote:
We hold these truths to be self-evident ...
then some code:
#! /usr/bin/bash
That's all.
Вы можете получить представление о том, что он делает с различными элементами, которые он разбирает из документов, из определения plainify
в pandoc/blob/master/src/Text/Pandoc/Writers/Markdown.hs в репозитории Github; Есть также учебник, который показывает, как легко изменить поведение.