FastComments.com

注释语法

在这里我们将介绍 FastComments 评论格式、在撰写评论时支持的功能、 如何格式化文本,以及系统中包含的各种过滤器和安全措施。

基本格式 Internal Link

FastComments 使用 Markdown 和简单的 HTML 子集组合来允许撰写评论。

Markdown 语法的良好资源在这里。

对于最常见的格式,您可以使用格式工具栏来执行诸如加粗或斜体文本之类的操作。

一些语法示例:

  • 粗体:
    • **粗体**
    • <b>粗体文本</b>
  • 斜体:
    • *斜体*
    • <i>斜体文本</i>
  • 删除线:
    • ~~删除线~~
    • <strike>删除线</strike>
  • 引用:
    • > 引用

请注意,Markdown 标题不受支持。

链接可以写成原始 URL,无需 HTML 或其他语法,默认情况下链接将被转换为带有 target="nofollow noopener" 的可点击链接,以阻止垃圾邮件发送者。某些网站可能会选择禁用自动链接创建。

有序列表可以这样写:

1. 第一项。
2. 第二项。
3. 第三项。

项目符号列表也是如此:

- 某个要点。
- 另一个要点。

对于面向编程的社区,可以通过将代码粘贴到评论区来分享代码,语言将被自动检测并格式化。代码可以添加在 <code></code> 标签或使用反引号的 Markdown 代码块中。

安全 Internal Link

允许用户向网站添加内容并在多种不同类型的设备上渲染这些内容时,安全涉及多个方面。

防止格式滥用

用户可能会通过滥用文本格式来编写故意在视觉上造成干扰的内容,从而降低讨论的价值。

FastComments 采取了一系列措施来防止与格式相关的滥用行为:

  • 大量连续重复的换行会被折叠。
  • 我们不渲染标题(它们会变成普通文本)。
  • 我们不允许使用 CSS 或自定义颜色。

防止漏洞利用

在渲染 HTML 的系统中可能存在漏洞利用。FastComments 采取了多项措施来防止这种情况:

  • 我们只允许明确定义的一组 HTML 标签。
  • 我们只允许明确定义的一组 HTML 标签属性。
  • 我们对所有输入进行净化和清理。
    • 这是通过 DOMPurify 和 sanitizeHtml 库实现的。
    • 我们选择这些库是因为它们经过了充分测试(每周下载量分别超过 400 万和 100 万次)。

这意味着用户无法执行诸如编写 <script> 或 <style> 标签,或尝试向图片或其他内容添加 onload=alert() 类型脚本之类的操作。

我们允许的 HTML 标签如下:

  • <b>
  • <em>
  • <u>
  • <i>
  • <strike>
  • <pre>
  • <span>
  • <code>
  • <img>
  • <a>
  • <strong>
  • <ul>
  • <ol>
  • <li>
  • <br>

默认情况下不允许使用 <iframe> 标签。如果您开启了“允许媒体嵌入”,iframe 也将被允许,但仅当其来源是内置的可信提供商列表(如 YouTube、Vimeo、SoundCloud 和 Spotify)之一,或您明确添加的主机名时。来自任何其他来源的 iframe 都会被移除。