自动链接词

我的 Linkify 功能已经几乎完全符合我的预期:

/TBI\s*\W?(\d*)/,https://tbi.example.com/tbi/$1/

这可以覆盖用户输入的多种形式的“TBI 编号”:

  • TBI 17
  • TBI-17
  • TBI17
  • TBI -17
  • TBI*17
  • 等等。

我喜欢这种灵活性。

不幸的是,它无法处理输入这些编号的标准方式:

  • TBI #17

似乎无论我怎么做,都无法正确匹配 #(井号、哈希符、数字符号、八重符号、井号标记、磅号、井字棋符号)。我尝试过:

/TBI\s*#?(\d*)/,https://tbi.example.com/tbi/$1/
/TBI\s*\#?(\d*)/,https://tbi.example.com/tbi/$1/

当然,这些都不起作用;甚至连完整的通配符也不行:

/TBI\s*.?(\d*)/,https://tbi.example.com/tbi/$1/

在我看来,可能是分类弹出功能接管了这一过程,导致 Linkify 无法正常工作——即使用户没有选择提供的任何分类。

这是预期行为还是 bug?是否有人知道如何绕过这个问题?

是的,如果你检查 HTML 源代码,会发现 Discourse 似乎会将任何以井号(#)开头的内容放入独立的 span 元素中,从而破坏了链接化主题的流式布局。恐怕这个问题没有简单的解决办法,很抱歉。:frowning: 除非有人有更好的主意,否则你可能需要 fork 这个主题并针对此情况进行自定义。

这个插件运行良好,谢谢。不过,与 abrify 结合使用时无法正常工作。
是否可以让链接在添加该插件所带的 类时也能正常工作?
https://github.com/metabrainz/discourse-abbrify-words。

我认为问题在于 abbrify 插件默认会跳过链接标签。你可以通过修改代码来解决,删除 head_tag.html 中的第 16 行:

'a': 1,

如果有效,或者你需要更多指导,请告诉我。:slightly_smiling_face:

2 个赞

看起来已经可以正常工作了,非常感谢。

顺便问一下,如果只在 CSS/HTML 模板中进行编辑,而不是直接从 GitHub 编辑,会有什么区别吗?

是的,从 GitHub 更新主题组件时需要小心,它会覆盖您在 CSS/HTML 中的本地更改。

3 个赞

谢谢,我想知道是否也能实现类似的功能,但不是添加 abriffy 属性,而是添加其他类型的类,例如 dfn data-info、span aria-label 等。

例如,与 content: attr() 配合使用。

没错,肯定可以。你可以尝试使用 createAbbr 函数(或者 linkify 主题中对应的函数)

1 个赞

真的很好。我得稍微玩一下。
我想这里可能有很多可能性。你知道如何通过某种方式使用 JSON 和 API 吗?

例如,能否通过 API 在 WordPress 上显示 Abriffy 单词和其他数据?

我不太明白您的意思。您能否更具体地说明您想要实现什么?主题组件在 Discourse 中运行,没有 API 可以在其他地方使用它们。但您应该可以在大多数情况下,只需将 JS 代码复制到其他位置,并修改与 Discourse 相关的部分,即可使用这些代码。

有没有办法避免将 onebox 中的内容自动转换为链接?

1 个赞

你可以尝试在“跳过标签”设置中添加 <aside> 标签。不过我不确定所有一体框(oneboxes)是否都放在 <aside> 内。也许我们需要一个基于类名的过滤器。

@sam 对此有什么看法?:arrow_double_up: 这似乎是一个合理的默认行为(不在一体框中自动创建链接)。

4 个赞

基于类的过滤设置听起来很完美,默认情况下我们应该排除一个框。

7 个赞

好的,我下周会尝试提交一个 PR。

2 个赞

你好,我今天已成功为默认的 Light 主题安装了此主题组件,但它对我来说无法正常工作。

我尝试过使用正则表达式以及默认的链接化词汇(discoursemeta),但都没有成功。

我安装的是 v2.3.0.beta2 +256 版本。请问有什么调试建议吗?提前感谢 :slight_smile:

1 个赞

我们最近进行了代码重构,您可能需要更新您的 Discourse(这很方便,因为 2.4 版本刚刚发布 :slightly_smiling_face:

6 个赞

onebox 中的 Linkify 现在默认已禁用。@jrgong 能否请您更新主题并测试一下?

1 个赞

看来这个问题还没解决?我本以为可以通过从管理界面导出组件来创建备份,但导出内容并不包含自定义设置。

有个想法:如果该设置及其所有行在双击时变成一个可编辑的文本区域会怎样?类似于 编辑 CSS/HTML 编辑器?这样无论是备份/导出,还是导入每行一个项目的列表都会变得很简单。

之前:

双击后:

另外提一点:你可能会在那里看到一些奇怪的正则表达式,但在这些设置字段中无法使用 |。也许上述方案也能解决这个问题。

3 个赞

你好,朋友!你觉得如何利用 linkify/abrify 插件将文字或链接转换成图片呢?

使用当前插件可能无法实现,但修改插件以生成 <img> 标签而不是 <a> 标签应该不难。

1 个赞