在Ruby中标记为纯文本?

时间:2010-03-30 17:46:39

标签: ruby markdown bluecloth

我目前正在使用BlueCloth在Ruby中处理Markdown并将其显​​示为HTML,但在一个位置我需要它作为纯文本(没有一些Markdown)。有没有办法实现这个目标?

是否有降价到纯文本的方法?是否有一个html到纯文本的方法,我能感觉到BlueCloth的结果?

3 个答案:

答案 0 :(得分:7)

RedCarpet gem有一个Redcarpet::Render::StripDown渲染器,它将Markdown变为明文"。

复制并修改它以满足您的需求。

或者像这样使用它:

Redcarpet::Markdown.new(Redcarpet::Render::StripDown).render(markdown)

答案 1 :(得分:2)

使用Ruby将HTML转换为纯文本是not a problem,但当然你会丢失所有标记。如果您只想摆脱Markdown语法的部分,它可能不会产生您正在寻找的结果。

最重要的是,未提交的Markdown旨在将用作纯文本,因此转换为纯文本并不合理。我见过的所有Ruby实现都遵循相同的接口,它不提供剥离语法的方法(仅包括to_htmltext,它返回原始的Markdown文本)。

答案 2 :(得分:-3)

这不是红宝石,但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.

你可以从github中pandoc / blob / master / src / Text / Pandoc / Writers / Markdown.hs中plainify的定义解析文档中的不同元素,了解它的作用库;还有一个tutorial表示修改行为是多么容易。