DokuWikiの使い勝手を良くするための細かい設定。
組込フック(Include Hooks)とは、DokuWiki
のテンプレートに独自のHTMLを追加する機能。
全ページの<head></head>
に、一括でGoogle Tag Manager
(Google Analytics
)用のコードを追加するようなときに使います。
ファイル名 | HTMLが組み込まれる場所 |
---|---|
meta.html | <head>タグ |
header.html | ページ上部 (ページタイトルの下) |
footer.html | ページ下部 |
pageheader.html | コンテンツエリアの上部 |
pagefooter.html | コンテンツエリアの下部 |
sidebarheader.html | サイドバー上部 |
sidebarfooter.html | サイドバー下部 |
DokuWiki
のルートドキュメントが/home/user1/Dokuwiki/xxx
と仮定。
/home/user1/Dokuwiki/xxx/lib/tpl/dokuwiki
ディレクトリに、
main.php
というファイルがある。
tpl_includeFile('meta.html')
main.php
の中に上記のような記載がある。
/home/user1/Dokuwiki/xxx/lib/tpl/bootstrap3
ディレクトリに、
main.php
というファイルがある。
tpl_includeFile('meta.html')
main.php
の中に上記のような記載がある。
find . -type f -exec grep tpl_includeFile {} +
上記コマンドを実行すれば、
meta.html
以外のheader.html
やfooter.html
などについても、どのファイルでincludeされているのか確認できる。
/home/user1/Dokuwiki/xxx/conf
のようなディレクトリに、
meta.html
というファイルを新規作成する。
あいうえお
meta.html
の中にあいうえお
と書けば、
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" dir="ltr" class="no-js"> <head> <meta charset="UTF-8" /> <title>example.com</title> <script>(function(H){H.className=H.className.replace(/\bno-js\b/,'js')})(document.documentElement)</script> <meta name="viewport" content="width=device-width,initial-scale=1" /> <link rel="shortcut icon" href="https://example.com/_media/wiki/favicon.ico" /> <link rel="apple-touch-icon" href="https://example.com/_media/wiki/apple-touch-icon.png" /> あいうえお
ページのHTMLソースで、<head>
タグの中にあいうえお
とそのまま表示される。
meta.html
以外のheader.html
やfooter.html
などについても、
DokuWiki
サイトのドキュメントルート直下のconf
ディレクトリに設置すれば機能する。
本来、meta.html
には、あいうえお
のようなテキストではなく
<link rel=“xxx” href=“https://example.com/yyy” />
のようなHTMLタグを書く。
また、meta.html
などに
<?php echo “hello world”; ?>
のように書けば組み込みフック内でphp
も実行できる。
meta.html
などの組み込みフックのファイルは、DokuWiki
本体やテンプレートをアップデートしても上書きされない。
スーパーユーザーのパスワードを忘れてしまい、メールでの再発行なども失敗した場合、
users.auth.php
に、ユーザー名とパスワード(のハッシュ値)を直接書き込むことでユーザーを追加できる。
cd /home/user1/Dokuwiki/xxx vi conf/users.auth.php
users.auth.php
ファイルを開く。
deleteme:$1$4fd0ad31$.cId7p1uxI4a.RcrH81On0:-:-:admin,user
users.auth.php
に上記の1行を追加する。
すると、
ユーザー名
: deleteme
パスワード
: admin
でログインできるようになる。
$1$4fd0ad31$.cId7p1uxI4a.RcrH81On0
の部分はadmin
のハッシュ値。
ログインに成功したら、直ちに別の管理者アカウントを作成し、deleteme
というユーザーは削除する。
削除せずに放置すると、サイトを乗っ取られる恐れがある。
管理
> ユーザー管理
の画面からユーザーの追加と削除ができる。
data/pages
ディレクトリが名前空間のルートになっている。
DokuWikiでstart
というページを作成すると、
data/pages
ディレクトリに、start.txt
というファイルが生成される。
URLはhttp://example.com/start
のようになる。
DokuWikiで、aaa:bbb
というページを作成すると、
data/pages/aaa
ディレクトリに、bbb.txt
というファイルが生成される。
URLはhttp://example.com/aaa/bbb
のようになる。
管理
> サイト設定
認証 | ||
---|---|---|
disableactions DokuWiki の動作を無効にする | ユーザー登録 | チェックする |
チェックを入れるとユーザー登録
が無効になる。
自由なユーザー登録ができなくなり、
管理者が管理画面からのみユーザー追加できるようになる。
管理
> アクセスコントロール管理
ページ/名前空間 | ユーザー/グループ | 権限 |
---|---|---|
* | @ALL | 読取 (デフォルトは、 アップロード ) |
* | @user | アップロード |
@ALL
というグループのみがありアップロード
権限が設定されている。
この状態だと、ログインしていない人でもページの編集ができる。
@ALL
を読取
にすることで、ログインしていない人はページを編集できなくなる。
[ルート]
を選択し、権限を追加
から@user
を追加、アップロード
権限を設定する。
@user
というのは、ログイン済みのユーザー。
ユーザー登録しログインしたユーザーのみがページ編集をできるようになる。
DokuWikiではページ名の英字は小文字に変換される。
Wiki
というページを作成しても、
wiki
としてページが登録される。
DokuWikiではページを削除しても、履歴が残る。
履歴を含めて完全に削除するには、サーバーからいくつかのファイルを削除する必要がある。
xxx
というページを削除する場合、
data/attic
ディレクトリにある
xxx.1234567890.txt.gz
のようなファイルを消す。
1234567890
の部分の数字が異なる複数のファイルがあり、1つ1つのファイルが変更の差分になっている。
また、data/meta
ディレクトリにある、
xxx.changes
とxxx.meta
のようなファイルを消す。
xxx.changes
は変更の履歴を管理しているファイル。
{{http://example.com/xxx.jpg?nolink}}
http://example.com/xxx.jpg
というURLの画像をDokuWiki上で表示する場合、
URLを{{
と}}
で囲む。
この場合、画面に画像が表示され、かつ画像がURLへのリンクとなる。
URLのうしろに?nolink
をつけると、画像だけを表示できる。
(リンクにならない)
管理
> サイト設定
表示 | |
---|---|
hidepages 検索、サイトマップ、その他の自動インデックスの結果に表示しないページ | ^:(sidebar|playground) |
hidepages
に正規表現でパスを指定する。
^:(sidebar|playground)
と書くと
などのページが、サイトマップやRSSに表示されなくなる。
サイトマップ等にリストされなくなるだけで、URLを直接指定すれば表示自体はできてしまう。
セキュリティ的に公開するとまずい情報を非表示にできるわけではないので注意。
cd /home/user1/Dokuwiki/xxx vi conf/userscript.js
ドキュメントルートのconf
ディレクトリに
userscript.js
というファイルを新規作成する。
jQuery(function() { var prv = jQuery('div.preview'); if(prv[0]) return; jQuery('#minoredit').prop('checked', true); });
userscript.js
に上記のように書くと、
ページ編集時に小変更
のチェックがデフォルトでチェックされた状態になる。
chown nginx:nginx conf/userscript.js
userscript.js
の所有者をnginxに変更。
画面の右端に
などのアイコンが表示されている。
文書の編集権限がない人には、「文書の編集」の代わりに「ソースの表示」のアイコン。
「ソースの表示」や「以前のリビジョン」を一般ユーザーに見せたくない場合は、これらのアイコンを非表示にする。
管理
> サイト設定
認証 | ||
---|---|---|
disableactions DokuWiki の動作を無効にする | 以前のリビジョン | チェックする |
ソース閲覧 / 生データ出力 | チェックする |
チェックするとアイコンが非表示になる。
「以前のリビジョン」は、アイコンが非表示になるだけで、文書の変更履歴自体は裏で記録されている。