2

Discourseフォーラム ソフトウェアを使用しています。現在の状態と同様に、Discourse はトピックへのリンクを 2 つの方法で提示します。末尾に投稿番号がある場合とない場合です。

例:

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

最初のものは私が望むものであり、2番目のものはフォーラムにまったく表示されないようにしたい.

Discourse フォーラムに投稿しましたが、管理セクションのパーマリンク正規化入力フィールドにどの正規表現を入力するかについての回答がありませんでした。

次のようにパーマリンクの正規化を使用してそれを行うオプションがあると言われました(これは管理者の正規表現入力テキストの下に示されている例です。私はそれを書きませんでした):

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ライブラリです (パーマリンク ライブラリは、これを実現する方法についてより良い手がかりを得るのに役立つと思います)。これを機能させるには、談話ルーティングに関する知識が必要なように思われるため、これにアプローチする方法がわかりません。たとえば、なぜ(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

注:パーマリンクの正規化入力フィールドは、文字|をセパレータとして扱い、複数の正規表現を区切ります。

4

3 に答える 3

0

私はあなたの質問を本当に理解していませんでしたが、私が正しければ、最後に /some-number とのリンクが必要であると言っていますが、最後に /some-number/some-number とのリンクは必要ありません。その場合、正規表現は次のとおりです。

forum\.domain\.com\/t\/[^0-9\/]+\/\d{1,9}$

「フォーラム」をフォーラム名に、「ドメイン」をドメイン名に置き換えることができます。

于 2016-07-09T16:52:50.640 に答える
0

これにより、末尾"/<digits>"が次々に削除され"/<digits>"ます。

/(forum.domain.com(\/\w+)*\/\d+)\/\d+(?=\s|$)/\1
于 2016-07-09T16:59:05.410 に答える