为帖子正文中的链接添加类以进行样式设置

有没有办法绕过 Discourse 对锚点的重新格式化,使其按我们希望的样式显示为按钮?

帖子是通过 .raw 属性发布的(我尝试过使用 .cooked,但尽管 API 文档声称支持,这似乎并不可行)。

我发送的是:
<a aria-label="homepage-link" href="http://blablabla...">View Homepage</a>

但在 Discourse 帖子或分类描述中,它显示为:
<div class="cooked"><a>View Homepage</a></div>

我也尝试过

[View this page][http://blablabla]

结果被转换为:
<div class="cooked"><a href="http://blablabla" class="onebox" target="_blank">http://blablabla</a></div>

但如果我能直接得到:
<div class="cooked"><a href="http://blablabla" class="onebox" target="_blank">View this page</a></div>

我就可以通过 CSS 从 body 元素对其进行定位,以应用我们所需的 CSS 按钮样式。

我想已经解决了…

[查看此页面](http://blablabla)

目标 CSS 使用:

body.<在此插入顶级分类名称>-* div.cooked a

不过

如果有人对上述问题有更好的解决方案,那会更简洁,也更容易为 <a> 链接添加我们自己的类,从而避免依赖顶级分类。

提前感谢。

实现这一点的做法是使用类似以下内容:

例如

[wrap=link-button][Link Text](http://meta.discourse.org)[/wrap]

将渲染为

其标记为

<div class="d-wrap" data-wrap="link-button">
  <p>
    <a href="http://meta.discourse.org">Link Text</a>
  </p>
</div>

然后您可以在 CSS 中使用以下代码对其进行样式设置:

[data-wrap="link-button"] {
  a {
    // 链接的样式
  }
}

您可以将 [wrap=link-button] 更改为任意您想要的值,例如

[wrap=custom-button]

[wrap=home-link]

[wrap=foobar]

然后像上面的示例一样使用该值来定位链接。

@Johani 非常有趣!!!感谢您在这方面的工作,我们将研究这个选项。未来能在 API 文档中提供“Post 原始属性设置”的内容就太好了。或者,也可以有一份集中文档,汇总并定义所有与 Post 的 UPDATE:/POST: 属性相关的可能性。