これまでプログラミングや設定方法の備忘録は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上の名前空間の区切りにスラッシュを使用 | True | DokuWikiは「:」で区切る設定になっているが、「/」で区切るようにする |
.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 |
サーバのパス | / |
サーバのURL | https://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)$/}}
.. | ルートの名前空間(「.」だと現在の名前空間 |
#1 | jsオプションで下位名前空間をどこまで表示するか。0か1で非表示、2以降で下位を表示 |
js | エクスプローラー風にして右クリックを有効にする |
navbar | 現在のページが属する名前空間が自動的に開く |
noscroll | 横スクロールを無効 |
notoc | TOCコンテンツ(目次)を無効にする(マウスオーバーで表示するかどうか) |
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で素直に改行してくれた方が楽です。
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”を付加 | False | SEO対策 |
インデックスを許可(何秒後) | 0 | SEO対策 |
InterWikiリンクのtarget属性 | _blank | 内部リンク以外は別窓表示 |
外部リンクのtarget属性 | _blank | 内部リンク以外は別窓表示 |
メディアリンクのtarget属性 | _blank | 内部リンク以外は別窓表示 |
Windowsリンクのtarget属性 | _blank | 内部リンク以外は別窓表示 |
コメント