DokuWikiで行ったページの表示設定と入力支援の拡張設定

これまでプログラミングや設定方法の備忘録はPukiWikiを使ってきました。

このブログ(WordPress)もそういう備忘録ネタがメインのコンテンツなのですが、コード1行だけのさらっとしたメモ程度に1つの記事を使うのはもったいないですし、長尺はブログ、より簡素かつ細かいものはPukiWikiという使い分けをしていました。

PukiWikiも十分使えるのですが、最近別件でDokuWikiを使うようになってこっちの方が向いてるなと思い、PukiWikiで書いていたものをすべてDokuWikiで投稿し直して引っ越ししました。

DokuWikiを選んだ最大の要因はコードハイライト機能がデフォルトであること。ハイライトがあるのとないのとでは見栄えが全然違いますかね。

また、PukiWikiでは各行の頭に半角スペースを入れないといけなかったのが、DokuWikiは<code>~</code>で囲むだけでいいというのもポイント。タブ記号は半角スペース8個分で表示されてしまうため、半角スペースで置き換える必要はありますが、編集のしやすさもDokuWikiの方が上です。

そういうわけで引っ越しがてらいろいろ設定を行いましたのでその備忘録です。

スポンサーリンク

ホームページのURLを短くする設定

DokuWikiのホームページURLが長いので、下記のように変更します。

変更前: https://iehohs.com/dokuwiki/doku.php?id=start
変更後: https://iehohs.com/dokuwiki/

サイト設定

設定項目備考
スタートページ名index.html通常Webサイトのindex.htmlのページはURLで表記を省略することができる
URLの置き換え.htaccess.htaccessで記述されている通りにアクセスを制御する
URL上の名前空間の区切りにスラッシュを使用TrueDokuWikiは「:」で区切る設定になっているが、「/」で区切るようにする

.htaccess

DokuWikiをインストールしたら、ルートディレクトリに「.htaccess.dist」というファイルがあります。

これを一旦パソコンなどローカルにダウンロードし、ファイル名を「.htaccess」にして編集します。

このファイルはあらかじめ設定項目が記述されており、コメントアウトされているためそのままでは機能しません。必要な箇所のコメントを外すことで有効化されます。

~中略~

## Uncomment these rules if you want to have nice URLs using
## $conf['userewrite'] = 1 - not needed for rewrite mode 2
RewriteEngine on

RewriteRule ^_media/(.*)              lib/exe/fetch.php?media=$1  [QSA,L]
RewriteRule ^_detail/(.*)             lib/exe/detail.php?media=$1  [QSA,L]
RewriteRule ^_export/([^/]+)/(.*)     doku.php?do=export_$1&id=$2  [QSA,L]
RewriteRule ^$                        doku.php  [L]
RewriteCond %{REQUEST_FILENAME}       !-f
RewriteCond %{REQUEST_FILENAME}       !-d
RewriteRule (.*)                      doku.php?id=$1  [QSA,L]
RewriteRule ^index.php$               doku.php

## Not all installations will require the following line.  If you do,
## change "/dokuwiki" to the path to your dokuwiki directory relative
## to your document root.
RewriteBase /

~以下略~

RewriteBaseのところは、インストールされている場所に応じて変更します。

例えば「https://iehohs.com/dokuwiki/」にインストールされているのであれば、「/dokuwiki」と記述します。

変更しましたらDokuWikiがインストールされているディレクトリにアップロードすれば完了です。

indexmenuプラグインで表示するページの一覧の設定

indexmenuプラグインでサイドバーにページ一覧を表示しています。

初期設定のままでもいいのですが、より見やすくするための設定です。

表示するページタイトルの設定

デフォルトでは設定したURLがページタイトルとなりますが、このままでは使い勝手がよくありません。

URLとは別のページタイトルを設定するためには、ページ内の見出しがページタイトルになるようにサイト設定で変更します。

設定項目
最初の見出しをページ名とする常に使用する

これで投稿の1番最初に設定した見出しがページタイトルになります。

indexmenuの表示設定

indexmenuのコードを記述する際に、表示方法を設定できます。

{{indexmenu>..#1|js navbar noscroll notoc tsort nsort nocookie skipfile=/sidebar/ skipns=/^(wiki|playground)$/}}
..ルートの名前空間(「.」だと現在の名前空間
#1jsオプションで下位名前空間をどこまで表示するか。0か1で非表示、2以降で下位を表示
jsエクスプローラー風にして右クリックを有効にする
navbar現在のページが属する名前空間が自動的に開く
noscroll横スクロールを無効
notocTOCコンテンツ(目次)を無効にする(マウスオーバーで表示するかどうか)
tsortタイトルで並び替え
nsort名前空間を並び替え
nocookie名前空間を開いているかどうかをCookieで保存しない
skipfile=/sidebar/ページを非表示(sidebarを非表示にする)
skipns=/^(wiki|playground)$/名前空間を非表示(wikiとplaygroundを非表示にする)

defer_jsの解除

jsオプションを有効にする場合、サイト設定でdefer_jsを解除しておかないと不具合が起こるとか。

設定項目
ページのHTMLが解析されるまでJavascriptの実行を延期するFalse

名前空間の親ページの設定

各名前空間の親ページには、その子ページの一覧を表示するように設定します。

{{indexmenu>.:名前空間名|noscroll notoc tsort }}

パンくずの表示

パンくずはヘンゼルとグレーテルが道に迷わないようにパンくずを落として歩いたということから、転じて現在のページまでの階層を辿れるようにするリストです。

DokuWikiのデフォルト設定では、これまで遷移してきたページを表示するようになっています。

ある意味ヘンゼルとグレーテルの内容に近いのはこちらではありますが、僕は一般的なパンくずの方が好きなので設定を変えます。

設定項目
トレース(パンくず)表示数0
現在位置を表示True

Enterで改行する

通常は「//」で改行させる必要があり、内容によってはこの仕様の方が使いやすい場合もありますが、Enterで素直に改行してくれた方が楽です。

plugin:xbr [DokuWiki]

XBRプラグインをインストールし、サイト設定を以下のように変更します。

設定項目
Wikiの出力(xhtml)に使用するレンダラーXBR Plugin

その他設定

その他、細かいところの設定です。

最終編集者の情報として表示する内容ユーザーのフルネームログイン名だと不正ログインのヒントに
DokuWiki の動作を無効にする「検索」と「文書の編集」以外をTrue必要以上の操作制限
外部リンクにrel=”ugc nofollow”を付加FalseSEO対策
インデックスを許可(何秒後)0SEO対策
InterWikiリンクのtarget属性_blank内部リンク以外は別窓表示
外部リンクのtarget属性_blank内部リンク以外は別窓表示
メディアリンクのtarget属性_blank内部リンク以外は別窓表示
Windowsリンクのtarget属性_blank内部リンク以外は別窓表示

参考サイト

DokuWikiをインストールしたらすぐに行う設定 [DokuWikiで情報発信]
DokuWikiで公開前までにしておく設定 [DokuWikiで情報発信]
DokuWikiの.htaccessによるURL書き換えの設定
PHPベースのオープンソースのウィキソフトウェア DokuWikiのセキュリティ対策について解説します。.htaccessファイルと設定変更でスラッシュ区切りの綺麗なURLへ書き換えます。
DokuWikiプラグイン : Indexmenuでサイドバーにツリービュー。エクスプローラー風操作 [DokuWikiで情報発信]

コメント

コメントする前にお読みください

プログラミングに関する質問について、詳細なコードはお答えしませんのでご了承ください。
また、迷惑コメント防止のために初回のコメント投稿は承認制です。投稿が反映されるまで少し時間がかかります。