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がインストールされているディレクトリにアップロードすれば完了です。

サブディレクトリにインストールしてルートで表示

https://example.com/dokuwiki/にインストールし、https://exampla.com/で表示する例です。

サイトの設定

設定項目
URLの置き換え.htaccess
サーバのパス/
サーバのURLhttps://www.example.com

.htaccessの設定

DokuWikiのインストールファイル内に「.htaccess.dist」があるので、FTPソフトでダウンロードし、ファイル名の変更で「.dist」部分を消すことでテンプレをベースに作成できます。必要箇所のコメントアウトを外しながら入力の値を変えます。

ルートディレクトリとインストール先のディレクトリの2つを追加する必要があります。

「dokuwiki」はインストール先のディレクトリ名なので、環境に応じて適宜変更してください。

ルートディレクトリ

RewriteEngine on
RewriteBase /
RewriteRule ^$ dokuwiki/ [L]
RewriteRule (.*) dokuwiki/$1 [L]

インストール先ディレクトリ

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
RewriteBase /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を非表示にする)

サイドバー向け JavaScriptなし

{{indexmenu>..#2|tsort nsort skipfile=/sidebar/ skipns=/^(wiki|playground)$/}}

2階層目まで表示、ページタイトルと名前空間でソート、sidebarとwiki、playgroundを非表示にする設定です。

サイドバー向け JavaScriptあり

{{indexmenu>..#2|js#bj-tango.png navbar noscroll notoc tsort nsort nocookie skipfile=/sidebar/ skipns=/^(wiki|playground)$/}}

JavaScriptありの場合です。jsの後ろでデザインを設定、navbarで現在の名前空間を開いた状態にし、noscrollはスクロールをオフ、notocはTOCのプレビューをオフ、nocookieは名前空間の開閉を保持しなくなります。

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

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

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

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

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

パンくずの表示

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

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

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

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

Enterで改行する

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

plugin:xbr [DokuWiki]

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

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

Google Analyticsに登録する

meta.htmlを作成します。

<?php
    global $INFO;
    if (!$INFO['isadmin']) {
?>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-**********"></script>
<script>
  window.dataLayer = window.dataLayer || [];
  function gtag(){dataLayer.push(arguments);}
  gtag('js', new Date());
 
  gtag('config', 'G-**********');
</script>
<?php
    }
?>

このファイルを/lib/tpl/dokuwiki/(使用しているテンプレートにより最後のディレクトリは変わります)の下にアップロードします。

Search Consoleに登録する

Search Console に「https://www.example.com/doku.php?do=sitemap」を登録してサイトマップを送信します。

robots.txtを作成してルートディレクトリにアップロードします。

User-agent: *
Disallow:
Sitemap: https://www.example/doku.php?do=sitemap

広告などをページ下部に固定表示する

表示したい内容を記述して「pagefooter.html」を作成し、FTPソフトでDokuWikiのディレクトリ内にある「conf」ディレクトリにアップロードします。

    その他設定

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

    最終編集者の情報として表示する内容ユーザーのフルネームログイン名だと不正ログインのヒントに
    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で情報発信]
    サブディレクトリにインストールした「dokuwiki」をルートURLで表示したい
    ### 実現したいこと`example.com/aaa/`内にインストールした「dokuwiki」を``ではなく`

    コメント

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

    迷惑コメント防止のために初回のコメント投稿は承認制のため、投稿が反映されるまで少し時間がかかります。もちろん荒らしは承認しません。

    教えて君やクレクレ君に対しては回答しませんのでご了承ください。