【问题标题】:Wrapping markdownToHTML input in an HTML container?在 HTML 容器中包装 markdownToHTML 输入?
【发布时间】:2013-11-15 17:52:48
【问题描述】:

有谁知道是否可以将knit2html(即markdownToHTML)的输出包装在HTML 容器中?

目前,所有内容都被转储到<body>,这并没有为控制布局提供很大的灵活性。

例如,我想从以下内容中获得什么:

example.md

<div id='main'>
Markdown
========
some text, etc. here...
</div>

收件人:

example.html

<!DOCTYPE html>
<html>
<head> ... </head>
<body>
<div id='main'>
(HTML VERSION OF MARKDOWN
</div>
</body>
</html>

如果我省略 div 容器,markdown 将被完美翻译并放置在 &lt;body&gt; 的顶层。我想做的只是简单地放在 body 的子容器中,这样我就可以更好地控制内容的格式。

有什么想法吗?

【问题讨论】:

  • markdown 的大多数实现会将div 标记之间的任何内容解释为 HTML,而中间的内容保持不变。 pandoc 是我知道的唯一降价转换器,这可能是例外。

标签: r markdown knitr r-markdown


【解决方案1】:

在您对markdownToHTML 的调用中,设置一个名为fragment_only 的选项:

markdownToHTML(..., options=c('fragment_only')

我相信,这将跳过将其放入身体中,然后您应该可以随意使用它。

您也应该能够在对knit2html 的调用中指定它,作为... 参数的一部分。

【讨论】:

  • 感谢您的建议!不幸的是,这并没有做到(上面发布的示例以获得更好的格式......)
  • @Keith 也许你应该提供一个更完整的源代码示例,因为我在这里的回答是建议你可以运行markdownToHTMLfragment_only 来构建几个你想要的部分然后可以合并到更大的文档中。如果您知道markdownToHTML 会忽略&lt;div&gt; 中的内容,我不确定您为什么希望指定fragment_only 来改变这种行为(就像您在第二个示例中所做的那样)。
  • 对不起,如果我没有很好地解释事情。我的基本目标是完全按照markdownToHTML() 当前所做的工作,但能够对生成的 HTML 的嵌入位置提供一些控制。我将在上面再举一个例子。
  • 1.将example.html 重命名为example.Rhtml; 2.在example.Rhtml中使用&lt;!--rinline markdown::markdownToHTML(text = readLines('example.md'), fragment_only = TRUE) --&gt;,和knit()它; 3. ??... 4. 利润!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-02-26
  • 1970-01-01
  • 2015-01-04
  • 1970-01-01
  • 2022-08-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多