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 标签属性集。
  • 我们净化和清理所有输入。
    • 这是通过 DOMPurifysanitizeHtml 库完成的。
    • 我们选择这些库是因为它们经过良好测试(分别每周有超过 400 万和 100 万次下载)。

这意味着用户不能做诸如编写 <script><style> 标签,或尝试向图像或其他内容添加 onload=alert() 类型脚本之类的事情。

我们允许的 HTML 标签如下:

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