Уценка к простому тексту в 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; Есть также учебник, который показывает, как легко изменить поведение.

Другие вопросы по тегам