我正在Visual Studio Code中使用Pandoc格式的扩展名来格式化我的降价文件。
我以类似于Stack Overflow的样式编写参考链接,如下所示:
$("#you").attr("data-you","New Value");
Pandoc确实破坏了这些引用。我尝试了各种选项和命令行实验的组合,例如:
This is a test file, created by Tim at [Tigra Astronomy][tigra].
This is another line.
[tigra]: http://tigra-astronomy.com "Tigra home page"
该命令实际上产生以下输出:
这是一个测试文件,由Tim [Tigra Astronomy] []创建。
这是另一行。
[Tigra天文学]:http://tigra-astronomy.com“ Tigra主页”
...非常接近,但仍不完全存在。那么,有什么办法可以说服Pandoc保持参考文献的“原样”?
答案 0 :(得分:1)
那么有没有办法说服Pandoc将我的参考文献“保持原样”?
简而言之,否,因为Pandoc不会保留该信息。
使用命令pandoc --from markdown --to native
,可以使Pandoc输出Abstract Syntax Tree(AST),这是Pandoc对文档的内部本机表示。对于您的示例文档,AST如下所示(另请参见online demo):
[Para [Str "This",Space,Str "is",Space,Str "a",Space,Str "test",Space,Str "file,",Space,Str "created",Space,Str "by",Space,Str "Tim",Space,Str "at",Space,Link ("",[],[]) [Str "Tigra",Space,Str "Astronomy"] ("http://tigra-astronomy.com","Tigra home page"),Str "."]
,Para [Str "This",Space,Str "is",Space,Str "another",Space,Str "line."]]
如您所见,该链接未保留您为其分配的“名称”。因此,当Pandoc将AST转换回Markdown时,它无法使用您的“名称”,因为它不可用。最初,我以为您也许可以使用filter或custom writer来包含您的参考名称,但由于该名称根本不可用,因此也不起作用。
最后,这不足为奇。 Pandoc不承诺保留文档中包含的所有元数据。实际上,文档warns:
因为pandoc对文档的中间表示较少 比它所转换的许多格式更具表现力, 不要期望每种格式之间都能完美转换。 Pandoc尝试保留文档的结构元素,但是 不格式化诸如边距大小之类的详细信息。还有一些文件 元素(例如复杂表格)可能不适合pandoc的简单元素 文档模型。从pandoc的Markdown转换为全部 格式追求完美,将格式转换成更具表现力的格式 比pandoc的Markdown可能有损。
当然,参考名称是Markdown的特定功能。但是,Markdown支持以多种方式表示链接,并且维护有效的Markdown文档不需要维护引用名称。因此,引用名称是Pandoc失去的东西之一。
但是,如果Pandoc仅输出相同格式,为什么还要通过AST运行它。因为这就是它的架构方式。有关更多信息,请参见API documentation。
答案 1 :(得分:0)
有一种本地方法可以将链接标题保留在Pandoc markdown中,例如:I'm an inline-style link with title
[I'm an inline-style link with title](https://www.noproblemo.ca "No Problemo")
如您所见,标题用括号括起来,与引号中的URL隔开一个空格。