我目前正在使用 BlueCloth 在 Ruby 中处理 Markdown 并将其显示为 HTML,但在一个位置我需要它作为纯文本(没有一些 Markdown)。有没有办法做到这一点?
有降价到纯文本的方法吗?是否有一种 html 到纯文本的方法可以让我感受到 BlueCloth 的结果?
RedCarpet gem 有一个 Redcarpet ::Render::StripDown渲染器,它“将 Markdown 转换为纯文本”。
复制并修改它以满足您的需要。
或者像这样使用它:
Redcarpet::Markdown.new(Redcarpet::Render::StripDown).render(markdown)
使用 Ruby 将 HTML 转换为纯文本不是问题,但是您当然会丢失所有标记。如果您只想摆脱一些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*.
(不知道如何关闭语法突出显示!)这是相关的“普通”:
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
您可以从Github 存储库中 pandoc/blob/master/src/Text/Pandoc/Writers/Markdown.hs 中的定义了解它对从文档中解析出的不同元素做了什么;还有一个教程展示了修改行为是多么容易。