3

MediaWikiリンクを小文字にして、単語の区切り文字としてアンダースコアの代わりにハイフンを使用できますか?

WordPressや他のwikiCMSが行うことの一種。

4

4 に答える 4

2

少なくともメインの名前空間内でこれを行う方法があるので、ユーザーが編集したページにはすべて小文字/ダッシュで区切られたURLがあります。

まず、ページをすべて小文字にしてダッシュで区切るように手動で強制します。これに関する最初の問題は、内部リンクにダッシュを含める必要があることです。これにより、内部リンクの標準の平易な言語スタイルが排除され、ほとんど使用できなくなります。

For examples of this see [[making-mediawiki-links-lowercase|making mediawiki links lowercase]].

新しいウィキリンクを作成しても、二重角かっこが追加されることはなくなりました。リンクテキスト全体を書き直す必要があります(オプションで、読みやすくするためにパイプに名前を変更する必要があります)。

しかし、リンクのhrefだけを書き直す方法があります。まず、LocalSettings.phpに2つの変更を加えます。

$wgCapitalLinks = False; # like mentioned above: make MW not capitalize the page titles
$wgHooks['LinkEnd'][] = "seoUrls"; # add a hook to rewrite the links
function seoUrls($dummy, Title $target, array $options, &$html, array &$attribs, &$ret) {
    $attribs = str_replace("_", "-", $attribs);
    return True;
}

これにより、内部リンクのhrefが書き換えられ、アンダースコアではなくダッシュが使用され、アンカーの残りの部分は変更されません。

次に、CSSを使用して、ユーザーコンテンツを含むページの通常のタイトルを非表示にします(またはテンプレートファイルを変更して削除します)。CSSは次のようになります。

.ns-0.action-view #firstHeading, /* main */
.ns-14.action-view #firstHeading /* categories */
{
    display: none
}

編集ビューや特別なページなど、ユーザー定義のコンテンツを含まないページのタイトルを残したい場合があります。名前空間0(メイン)と14(カテゴリ)のみを非表示にする必要があることがわかりました。

最後に、Mediawikiが提供するタイトルの代わりに、ページのコンテンツ自体の上部にh1を追加して、ページにタイトルを付けます。

おそらく、アンダースコアを含むすべてのURLをダッシュ​​に書き直したいと思うでしょう。

RewriteRule ^([^_]*)_([^_]*_.*) $1-$2 [N]
RewriteRule ^([^_]*)_([^_]*)$ /$1-$2 [L,R=301]

問題

  • 検索対象のページにはダッシュではなくスペースが含まれているため、存在しないページの検出は完全には正確ではありません。ただし、タイトルにスペースが含まれている古いページをすべて削除している限り、これは問題になりません。
  • 最初の文字では大文字と小文字が区別されるようになったため、内部リンクは文の最初の単語のときに名前を変更する必要があります。
  • 目次とインライン編集セクションのリンクの動作は異なります。h1により、すべてのページでトリガーされるようになりました。

利点

  • タイトルは好きなように作ることができます。カテゴリページを使用してコンテンツを作成するのは好きですが、「Category:Blah」のタイトルは好きではありません。
  • また、ページタイトルにmediawikiを使用させることもできます-URLをねじ込むことなく違法または非ASCII文字。
于 2013-12-25T06:37:01.247 に答える
1

MediaWikiにアンダースコアの代わりにダッシュを使用させて空白を示すことができます。wikiHowはどうしますか。ただし、ソースコードを何度も編集する必要があり、通常はお勧めしません。また、バグがないという保証はありません。

于 2010-03-19T15:29:12.757 に答える
0

この構成値でリンクケース設定を調整できるようです。単語区切り文字については何も見つかりませんでした。幸運を。

于 2010-03-19T15:11:39.277 に答える
0

ページ名を小文字にするには、Template:Lowercaseを使用します。{{Lowercase}}任意のページに追加して、表示方法を変更します。

リンクはとにかく小文字で使用できます-リンクの最初の文字は大文字でも小文字でもかまいません-それは常に正しいページにリンクします。

于 2010-05-04T07:42:43.500 に答える