gpt4 book ai didi

ruby-on-rails - 规范化 Discourse 论坛中主题链接的正则表达式

转载 作者:数据小太阳 更新时间:2023-10-29 08:59:56 24 4
gpt4 key购买 nike

我正在使用 Discourse论坛软件。与当前状态一样,Discourse 以两种方式显示主题链接,末尾有和没有帖子编号。

例子:

forum.domain.com/t/some-topic/23
forum.domain.com/t/some-topic/23/5

第一个是我想要的,第二个是我不想在论坛中显示的。

我写了a post about it在 Discourse 论坛上,但没有收到关于在管理部分的永久链接规范化输入字段中放入什么 Regex 的答案。

有人告诉我,有一个选项可以像这样使用永久链接规范化来做到这一点(这是在正则表达式输入文本下的管理员中显示的一个示例,我没有写它):

permalink normalizations

Apply the following regex before matching permalinks,
for example: /(topic.)\?./\1 will strip query strings from topic routes.
Format is regex+string use \1 etc. to access captures

我不知道应该使用什么正则表达式来从链接中删除帖子编号的数值。我只需要它用于主题链接。

这是 routes.rb路由库,这是 permalink.rb库(我认为 永久链接库 应该有助于更好地了解如何实现这一点)。我不知道如何处理这个问题,因为我似乎需要一些关于 Discourse 路由的知识才能使其工作。例如,我不明白为什么 (topic.) 是正则表达式的一部分,它是什么意思,所以他们的例子并不能帮助我找到解决方案。

在管理员中,我有一个输入字段,我需要在其中放置规范化正则表达式代码。

我需要有关正则表达式的帮助。 我需要正则表达式来处理所有主题

我尝试过但没有成功的事情:

/(\/\d+)\/\d+$/\1

/(t/[^/]+/\d+).*/\1

/(\/\d+)\/[0-9]+$/\1

/(\/\d+)\/[0-9]+/\1

/(\/\d+)\/\d+$/\1/

/(forum.domain.com(\/\w+)*\/\d+)\/\d+(?=\s|$)/\1

注意:永久链接规范化输入字段将字符 | 视为分隔多个 Regex 表达式的分隔符。

最佳答案

我认为这可能是您要放入设置字段中的表达式:

/(t\/.*\/\d+)(\/\d+)/\1

可以看到working on Rubular .

然而,the code that generates the url未使用规范化代码,因此表达式将被忽略。

您可以尝试规范化永久链接:

def last_post_url
url = "#{Discourse.base_uri}/t/#{slug}/#{id}/#{posts_count}"
url = Permalink.normalize_url url
url
end

关于ruby-on-rails - 规范化 Discourse 论坛中主题链接的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38283678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com