我正在使用Discourse论坛软件。就目前的状态而言,话语以两种方式提供了话题的链接,最后有和没有邮编。正则表达式在Discourse论坛正常化主题链接
例子:
forum.domain.com/t/some-topic/23
forum.domain.com/t/some-topic/23/5
第一个是我想要的,第二个我想不会在论坛显示在所有。
我在Discourse论坛上写了a post about it,但没有收到回答正则表达式在管理部分中的永久链接规范化输入字段。
有人告诉我,有一个选项使用永久正常化像这样做(这是在正则表达式输入文字下的管理所示的例子中,我没有写它):
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
注:的永久正常化输入字段将字符|
作为分隔符的几个正则表达式表达之间的分离。
不知话语或它的永久链接管理,但你想可能是'什么正则表达式/(\/\ d +)\/\ d + $/\ 1'。很大程度上取决于Discourse支持哪些正则表达式特征。您可能需要不使用'$'和/或用'[0-9]'替换每个'\ d'。 – trincot
@trincot/t /表示话语中的话题,尽管我不知道他们放置的例子(话题)中的内容,可能与Discourse中的后向路由编码有关。 –
也许'^ /(t/some-topic/\ d +)。*/\ 1'?如果当你有'forum.domain.com/t/some-topic/23'时,正则表达式得到字符串输入为'/ t/some-topic/23',这可能会起作用。您实际上已经建议'/(topic。*)\?。*/\ 1',星号因格式不当而丢失。 –