【发布时间】:2010-03-30 17:46:39
【问题描述】:
我目前正在使用 BlueCloth 在 Ruby 中处理 Markdown 并将其显示为 HTML,但在一个位置我需要它作为纯文本(没有一些 Markdown)。有没有办法做到这一点?
是否有降价到纯文本的方法?有没有一种 html 到纯文本的方法可以让我感受到 BlueCloth 的结果?
【问题讨论】:
我目前正在使用 BlueCloth 在 Ruby 中处理 Markdown 并将其显示为 HTML,但在一个位置我需要它作为纯文本(没有一些 Markdown)。有没有办法做到这一点?
是否有降价到纯文本的方法?有没有一种 html 到纯文本的方法可以让我感受到 BlueCloth 的结果?
【问题讨论】:
RedCarpet gem 有一个 Redcarpet::Render::StripDown 渲染器,可以“将 Markdown 转换为纯文本”。
复制并修改它以满足您的需要。
或者像这样使用它:
Redcarpet::Markdown.new(Redcarpet::Render::StripDown).render(markdown)
【讨论】:
使用 Ruby 将 HTML 转换为纯文本是 not a problem,但当然你会丢失所有标记。如果您只想摆脱 一些 Markdown 语法,它可能不会产生您正在寻找的结果。
底线是未渲染的 Markdown 旨在用作 纯文本,因此将其 转换 为纯文本实际上没有任何意义。我见过的所有 Ruby 实现都遵循相同的接口,它不提供剥离语法的方法(仅包括 to_html 和 text,它返回原始 Markdown 文本)。
【讨论】:
它不是 ruby,但 Pandoc 现在编写的格式之一是“plain”。这是一些任意的降价:
# 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*.
(不确定如何关闭语法高亮!)这是相关的“plain”:
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 显示修改行为是多么容易。
【讨论】: