[英]Convert Markdown text to RTF, using Ruby and Pandoc?
使用Ruby和Ruby-Pandoc。 看起来像一个很好的工具,如果我可以让它工作。
我想将一些Markdown文本(包含嵌入列表和其他幻想)转换为Rich Text。 这是我正在转换的文字:
Title
===
This is a paragraph. Hallelujah.
Here comes a nested list.
---
* List item 1
* List item 1.1
* List item 1.2
* List item 2
* List item 2.1
这是我的Ruby代码......
require 'pandoc-ruby'
input = File.read(test.md)
converter = PandocRuby.new(input, from: :markdown, to: :rtf)
puts converter.convert
...(将输出保存到文件后)生成一个没有任何标题的文档:
这是RTF文件的代码:
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 Title\par}
{\pard \ql \f0 \sa180 \li0 \fi0 This is a paragraph. Hallelujah.\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs32 Here comes a nested list.\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 1\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 1.1\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 1.2\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 2\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 2.1\sa180\par}
此外,即使它确实出现在我的RTF查看器(Mac TextEdit)中,RTF代码似乎已经丢失了所有列表嵌套。 我不知道如何诊断这个,我是否在Ruby-Pandoc中没有说明必要的头信息。
提前致谢!
将您的输出包裹在prolog和右大括号中。 像这样:
{\rtf1\ansi\deff0{\fonttbl{\f0 Times New Roman;}}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs36 Title\par}
{\pard \ql \f0 \sa180 \li0 \fi0 This is a paragraph. Hallelujah.\par}
{\pard \ql \f0 \sa180 \li0 \fi0 \b \fs32 Here comes a nested list.\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 1\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 1.1\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 1.2\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 2\par}
{\pard \ql \f0 \sa0 \li360 \fi-360 \bullet \tx360\tab List item 2.1\sa180\par}
}
更新
我错过了“包装”配置设置吗?
是的,根据宝石自述文件 。
如果您尝试生成具有完整文件头而不仅仅是标记片段的独立文件,请记住传递:standalone选项,以便添加正确的页眉和页脚。
怎么样缺乏嵌套列表?
根据PanDoc文档 ,您的源文本缺少2个缩进空间。
所以把它放在一起,这是完整的解决方案。
你的源文件:
Title
===
This is a paragraph. Hallelujah.
Here comes a nested list.
---
* List item 1
* List item 1.1
* List item 1.2
* List item 2
* List item 2.1
转换代码:
require 'pandoc-ruby'
input = File.read('./test.md')
puts PandocRuby.markdown(input).to_rtf(:standalone)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.