问题标签 [commonmark]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
83 浏览

markdown - 支持 Markdown 子集限制的 .NET 库(类似于 SO 注释)

实现类似于 StackOverflow 评论部分的最简单方法是什么?他们将其称为“mini-Markdown”:只允许使用斜体、粗体和代码。所以一个有限的 Markdown 标签列表。其他所有内容,包括 HTML 和其他 MD 标记都应按原样显示(HtmlEncoded)以避免 XSS。

我正在使用 CommonMark.NET,但对任何其他 .NET 解决方案都是开放的。

我觉得这是一个非常常见的用例,我找不到一个好的例子,我什至不确定我是否走在正确的轨道上。似乎对实现“安全降价”很感兴趣,我认为应该归结为能够像我所描述的那样轻松实现 Markdown 的子集。

大多数 Markdown 库只会将所有标准 MD 标签转换为 HTML,而不会触及 HTML 孤岛(根据 commonmark 规范)。我想要的行为是允许指定 MD 功能的白名单(比如粗体和斜体),并且 HTML 对其他所有内容进行编码,以便它可以按原样显示给最终用户。

0 投票
1 回答
159 浏览

markdown - 我可以使用 Markdown 语法在 MoonMail 中撰写电子邮件吗?

MoonMail使用 Liquid 模板引擎来呈现电子邮件。有没有办法可以使用 Markdown/CommonMark 语法?

0 投票
1 回答
218 浏览

php - 如何使用 Commonmark for PHP 解析嵌套容器?

我正在尝试使用 League 的CommonMark 包创建一个扰流板。

该块由三个倒置的感叹号打开,可选地后跟摘要;三个正常的感叹号结束该块。

这是我到目前为止的代码:

元素

解析器

渲染器

当我嵌套多个扰流块时会出现问题:第一个终止符关闭所有块。

这是解析的 AST:

这是预期的 AST:

0 投票
1 回答
38 浏览

commonmark - 为什么 CommonMark 将这 7 个空格缩进视为代码块?

我正在用 CommonMark 存储一些笔记,我注意到这个片段似乎在 SO 上呈现不同(echo缩进7个空格)。

在这里,它被解释为http://spec.commonmark.org/dingus/上的代码块:

在此处输入图像描述

这里是堆栈溢出:

在此处输入图像描述

如果我将echo缩进8个空格,它现在将在 Stack Overflow 上显示为代码块:

在此处输入图像描述

但是在http://spec.commonmark.org/dingus/它现在有一个前导空格(我选择它来显示):

在此处输入图像描述

这是因为 SO 实际上没有使用完整的 CommonMark 规范(还没有?)?

或者是否有一个 CommonMark 设置让它呈现 SO 的方式?

这有点烦人,因为我的许多笔记确实是可以在 Stack Exchange 的某个地方找到问题或答案的文本。所以我只是希望弄清楚这里发生了什么。

0 投票
1 回答
385 浏览

java - Java 的 Commonmark - 我想在没有段落的情况下呈现?

我正在使用此处找到的 Atlassian Commonmark API将 Markdown 解析为 HTML。
效果很好,但倾向于在每个解析的字符串的开头和结尾 添加<p和。</p>

过去有没有人广泛使用过 API 和/或知道如何让它停止这样做?
除了事后手动删除段落,也就是说,感觉……不干净。

编辑澄清:转换后的代码片段旨在用于 HTML 表格,因此我不需要它们之前和之后的段落位。

Markdown 输入可能是:

我得到的输出是:

我想要的只是不添加段落剪辑:

0 投票
1 回答
258 浏览

php - PHP League Commonmark 返回用引号括起来的 HTML

我在 Laravel 应用程序中使用 PHP League Commonmark 包。Commonmark 的 convertToHtml() 返回用双引号括起来的 html。当然,此内容是在显示 html 标记的页面上呈现的。我正在使用演示者来转换从我的数据库返回的 md。我已经确认数据库中的内容中没有引号。

我以前用过这个包,找不到我做错了什么。谁能指出我正确的方向?

这是我的演示者(扩展类是 Laracasts 演示者):

0 投票
0 回答
308 浏览

php - CommonMark Markdown 内联解析器总是在 `

`标签

我正在使用 League 的CommonMark 包,并创建自定义扩展以<img>使用自定义标记降价显示标记,如下所示:@image(image_id)

在降价是:@image(image_id)

我预期的结果:

这是我尝试过的代码:ImageParser.php

测试代码:ImageExtensionText.php

这里是测试结果: 在此处输入图像描述

在测试文件上@image(image_id)总是返回内部<p></p>标签,这不是我预期的结果。

0 投票
1 回答
357 浏览

html - CommonMark 中的制表符是如何解释的?

请参阅 CommonMark 规范中示例 6 之前的描述:http ://spec.commonmark.org/0.27/#example-5

我试图了解以下代码如何导致以两个空格开头的代码块。

示例 6 表明这将转化为以下内容。

但第 2.2 节明确指出:

但是,在空格有助于定义块结构的上下文中,制表符的行为就像它们被替换为具有 4 个制表位的空格一样。

因此,根据我的理解,上述 Markdown 的行为如下(我用点表示空格)。

由于在 之后允许有一个可选空格>,并且使用 4 个空格来缩进代码块,因此我们得到了,

这是一个以三个空格开头的代码块。那么 CommonMark 如何声称它应该导致一个以两个空格开头的代码块?我错过了什么?

0 投票
1 回答
91 浏览

html - CommonMark 规范是否允许列表标记前的前导空格?

这是 CommonMark 中的有效列表吗?

我担心每个列表标记之前两个前导空格的有效性,即1.,2.等。在列表标记之前提供前导空格是否有效?

我无法在规范中找到任何明确提到可以在http://spec.commonmark.org/0.27/的 CommonMark 规范中的每个列表标记之前有前导空格的内容。

但是有许多示例似乎显示了列表标记之前使用的前导空格。例如,请参阅

但我希望规范清楚地说明在列表标记之前放置空格是有效的。您能在规范中找到任何清楚说明或至少暗示这一点的内容吗?

0 投票
2 回答
2656 浏览

php - 正则表达式用逗号或空格匹配全名

我正在使用 CommonMark,并且我创建了一个“@mention”解析器,当找到@mention 时它将返回一个链接。但是,我正在调整它以链接全名而不是用户名。这是我目前拥有的:

但是,这似乎错误地捕获了名称,并链接了另一个名称的开头(见下文):

在此处输入图像描述

有谁知道我可以更改什么以匹配用逗号和/或空格分隔的整个名称?我不擅长写正则表达式。

提前感谢您的帮助!

编辑:

以下是应该匹配的内容:

(名称只能是最少 2 个字,最多 3 个字)

  • 鲍曼,史蒂夫
  • 史蒂夫鲍曼
  • 母鹿,玛丽苏
  • 玛丽苏杜

带逗号的姓氏只能是一个单词。

什么不应该匹配:

  • 史蒂夫
  • 鲍曼
  • 玛丽
  • 能源部

正则表达式需要匹配整个名称,而不是单个名称。

这是该match方法背后的 CommonMark 代码:

这导致: