这是什么文章

Qiita的降价如下qiita-markdown我们正在调用的库中进行内容清理等。

由于这在 OSS 上对公众开放,因此您可以通过实现必要的实现并提交 PR 来使用您想要使用的嵌入式脚本。

在本文中,我将总结如何具体实现它。

什么是qiita-markdown

在描述实现之前,qiita-markdown我将解释什么样的图书馆。
qiita-markdown 是一个 Markdown 解析器,实际上是用来将 Qiita 的 Markdown 转换为 HTML。
您可以在 Markdown 中自由编写 HTML 脚本标签,但 Qiita 允许不特定数量的用户发布 Markdown 文章,因此为了防止发布恶意脚本,正在清理 HTML 标签。

但是,对于可以在 Qiita 中使用的脚本标签,以白名单格式跳过清理。

换句话说,如果你有一个嵌入标签要与 qiita-markdown 一起使用,你需要将该标签添加到 qiita-markdown 作为白名单。

有两个白名单:

  • 可以在脚本和 iframe 标记中指定的 URL
  • 可为脚本和 iframe 标记指定的属性

如果可以根据要嵌入标签的条件,将实现加入这两个白名单,就可以在Qiita中使用。 (准确的说是添加了实现后,需要发布gem → 升级Qiita中的版本,所以会有一点时间延迟)

添加嵌入标签到白名单的流程

本节介绍加入白名单的流程。

定义要添加到白名单的嵌入标签

如↑所示,在lib/qiita/markdown/embed/中定义嵌入标签。

如果您需要设置除 URL 之外的特定数据属性,请按如下所示进行设置。

将定义好的URL和HOST加入lib/qiita/markdown/transformers/filter_*.rb的URL白名单

如果您要添加的嵌入标签是iframelib/qiita/markdown/transformers/filter_iframe.rb我想添加到
如果嵌入标签是scriptlib/qiita/markdown/transformers/filter_script.rb让我们将定义的 URL HOST 添加到 .

将定义的属性添加到白名单

lib/qiita/markdown/filters/user_input_sanitizer.rb如果有您想要允许的新属性,请添加它。如果它已经被容忍了,那就没有必要去触摸它了。

写一个测试

编写测试以确保添加的白名单正常工作。
在qiita-markdownrspec我正在使用创建测试
spec/qiita/markdown/processor_spec.rb 添加测试,如下所示。

在最后

Qiita 的 markdown 处理作为 OSS 对公众开放,所以任何人都可以添加自己想要使用的标签。
如果您发现难以使用,或者在添加处理时有任何不便,如果您能给我反馈,我会很高兴。

Dev Talk 也对公众开放,所以如果您想直接交谈,请随意说“我想交谈”!


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308628931.html

相关文章:

  • 2021-12-06
  • 2021-12-01
  • 2022-12-23
  • 2022-12-23
  • 2021-09-26
  • 2022-12-23
  • 2021-09-08
猜你喜欢
  • 2022-12-23
  • 2021-06-16
  • 2021-07-08
  • 2022-12-23
  • 2021-04-09
  • 2022-12-23
  • 2022-02-14
相关资源
相似解决方案