Markdown中的评论
在批注文件中存储注释的语法是什么,例如文件顶部的CVS $ Id $注释? 我在减价项目上找不到任何东西。
我相信所有以前提出的解决scheme(除那些需要特定实现的解决scheme外)都会导致注释被包含在输出HTML中,即使它们没有被显示。
如果你想要一个严格意义上的评论(转换文档的读者不应该能够看到它,即使是“查看源”),你可以(ab)使用链接标签(用于引用样式链接)在核心Markdown规范中可用:
http://daringfireball.net/projects/markdown/syntax#link
那是:
[comment]: <> (This is a comment, it will not be included) [comment]: <> (in the output file unless you use it in) [comment]: <> (a reference style link.)
或者你可以走得更远:
[//]: <> (This is also a comment.)
为了提高平台兼容性(并保存一个击键),也可以使用#
(这是一个合法的超链接目标)而不是<>
:
[//]: # (This may be the most platform independent comment)
在这种types的注释之前和之后插入一个空白行也是谨慎的,因为一些Markdownparsing器可能不喜欢链接定义对常规文本的刷新。
这应该适用于大多数Markdownparsing器,因为它是核心规范的一部分。 (即使定义了多个链接时的行为,或者定义了链接但从未使用链接的行为也没有严格规定)。
我使用标准的HTML标签,如
<!--- your comment goes here and here -->
注意三重短划线。 它的优点是在生成TeX或HTML输出时可以与pandoc协同工作。 更多的信息可以在pandoc讨论组中find 。
这个小小的研究certificate和改进了Magnus的答案
最平台独立的语法是
(empty line) [comment]: # (This actually is the most platform independent comment)
这两个条件都很重要:
- 使用
#
(而不是<>
) - 在评论前用空行 。 评论之后的空行对结果没有影响。
严格的Markdown规范CommonMark只能按照这个语法(而不是<>
和/或空行)
为了certificate这一点,我们将使用John MacFarlane所写的Babelmark2。 该工具检查28个Markdown实现中特定源代码的呈现。
( +
– 通过了testing, -
没有通过, – 留下了一些垃圾,这些垃圾没有在呈现的HTML中显示)。
- 没有空行,使用
<>
13+,15- - 空行注释之前,使用
<>
20+,8- - 评论周围的空行,使用
<>
20+,8- - 没有空行,使用
#
13 + 1? 14- - 评论之前的空行,使用
#
23 + 1? 4- - 评论周围的空行,使用
#
23 + 1? 4-
这certificate了上面的陈述。
这些实现失败所有6个testing。 没有机会使用排除在渲染评论与他们。
- cebe / markdown 1.1.0
- cebe / markdown MarkdownExtra 1.1.0
- cebe / markdown GFM 1.1.0
- s9e \ TextFormatter(Fatdown / PHP)
如果你正在使用Jekyll或八爪鱼以下也将工作。
{% comment %} These commments will not include inside the source. {% endcomment %}
液体标记{% comment %}
首先被parsing,然后在MarkDown处理器甚至到达它之前被移除。 当他们试图从浏览器查看源代码时,访问者不会看到。
另一种方法是将注释放在风格化的HTML标签中。 这样,您可以根据需要切换其可见性。 例如,在CSS样式表中定义一个注释类。
.comment { display: none; }
然后,下面的增强MARKDOWN
We do <span class="comment">NOT</span> support comments
在BROWSER中显示如下
We do support comments
这适用于GitHub:
[](Comment text goes here)
生成的HTML如下所示:
<a href="Comment%20text%20goes%20here"></a>
这基本上是一个空的链接。 很明显,你可以在提供的文本的源文件中阅读,但是你可以在GitHub上做到这一点。
另请参阅批评标记,由越来越多的Markdown工具支持。
Comment {>> <<} Lorem ipsum dolor sit amet.{>>This is a comment<<} Highlight+Comment {== ==}{>> <<} Lorem ipsum dolor sit amet, consectetur adipiscing elit. {==Vestibulum at orci magna. Phasellus augue justo, sodales eu pulvinar ac, vulputate eget nulla.==}{>>confusing<<} Mauris massa sem, tempor sed cursus et, semper tincidunt lacus.
披露:我写了这个插件。
由于该问题没有指定具体的降价实现,所以我想提一下python-markdown的注释插件 ,它实现了上面提到的相同的pandoc注释风格。
如何把评论放在一个非Eval的非回声R块? 即
```{r echo=FALSE, eval=FALSE} All the comments! ```
似乎对我很好。
<!--- ... -->
在Pandoc Markdown中不起作用(Pandoc 1.12.2.1)。 评论仍然出现在HTML中。 以下工作:
Blank line [^Comment]: Text that will not appear in html source Blank line
然后使用+脚注扩展。 这本质上是一个从未被引用的脚注。
kramdown – 基于Ruby的Markdown引擎是Jekyll的默认设置,因此GitHub Pages- 通过扩展语法具有内置的注释支持 :
{::comment} This text is completely ignored by kramdown - a comment in the text. {:/comment} Do you see {::comment}this text{:/comment}? {::comment}some other comment{:/}
这有利于允许在线评论,但不能移植到其他Markdown引擎的缺点。
Vim Instant-Markdown用户需要使用
<!--- First comment line... // _NO_BLANK_LINES_ARE_ALLOWED_ // _and_try_to_avoid_double_minuses_like_this_: -- // last comment line. -->
你可以试试
[]( Your comments go here however you cannot leave // a blank line so fill blank lines with // Something )
对于pandoc来说,阻止评论的一个好方法是使用yaml元块, 正如pandoc作者所build议的 。 我注意到,与其他许多提议的解决scheme相比,这至less在我的环境( vim
, vim-pandoc
和vim-pandoc-syntax
)中提供了更正确的语法突出显示。
由于html-注释不能嵌套 ,因此我使用yaml块注释和html-inline注释组合在一起。 不幸的是, 在yaml元区块内没有阻止注释的方法 ,所以每一行都必须单独评论。 幸运的是,软件中只能有一行。
在我的~/.vimrc
,我设置了块注释的自定义快捷键:
nmap <Leader>b }o<Esc>O...<Esc>{ji#<Esc>O---<Esc>2<down> nmap <Leader>v {jddx}kdd
作为我的<Leader>
键,分别使用,b
和,v
评论和取消注释。 如果我需要评论多个段落,我将j,b
映射到一个macros(通常是Q
),然后运行<number-of-paragraphs><name-of-macro>
(例如( 3Q
)。