【Dokuwiki】普通の人がわかりやすく新規ページを作成する方法(3種類)

2022-10-09

123の数字が書かれたイラスト

社内Wikiを導入するにあたって3つのWikiシステムを比較した結果、「新規作成がわかりやすい」と言う理由でPukiwikiが選ばれました。

Dokuwiki、Mediawikiの場合は検索してから該当ページが無ければ作成のため、業務に使うには直感的では無いとの事です。

スクリーンショット

その時はほとんど初期状態のWikiで比較しましたが、色々と調べたり使っていく中でDokuwikiでもわかりやすくページの新規作成ができたので、方法をまとめています。

AddNewPage プラグイン

その名の通り、新規ページを作るプラグインです。

テンプレートによってはプラグインのインストールだけで使えるようになりますが、標準テンプレートなど、対応していない場合はテンプレートの修正が必要になります。

bootstrap3(インストールだけで使用可能)

赤丸が新規ページの作成ボタンです。

スクリーンショット

設定も管理画面から変更できます。

スクリーンショット

標準テンプレート(テンプレートの修正)

プラグインのページに書かれているように、テンプレートにコードを追加します。

追加するコード

<?php
 echo p_render('xhtml',p_get_instructions('{{NEWPAGE}}'),$info);
 ?>

「dokuwiki/lib/tpl/dokuwiki/tpl_header.php」を開き、63行目に上記のコードを追加します。

スクリーンショット

検索ボックスの下に新規作成ボタンが追加されました。

スクリーンショット

Indexmenu プラグインとSidebarの使用

Indexmenuプラグインでサイドバーに一覧を表示して、右クリックで新規ページを作る方法です。

手順

プラグインのインストール

最初に拡張機能管理からIndexmenu プラグインをインストールします。

スクリーンショット

Sidebarの設定

Sidebarページを作っていない場合は、「:sidebar」でサイドバーページを作ります。

Indexmenuの設定は以下のサイトを参考にさせていただきました。

{{indexmenu>..#1|js navbar  noscroll notoc tsort nsort skipfile=/sidebar/ skipns=/^(wiki|playground)$/ }}

上記のコードで、右クリックが使える名前空間の一覧がサイドバーに表示されます。

スクリーンショット

Javascriptを使ってページ作成

DokuWiki 2023-04-04a 'Jack Jackrum’で「管理」ページからHTMLの埋め込みが設定できなくなりました。

変更点をまとめた記事を作ったので、現在は下記をご覧ください。

注意

スクリプトを直接記述できるようになるため、セキュリティは大幅に低下します。
限られたユーザーしか使用しない場合にだけ使用してください。

こちらの記事を参考にしています。

タイムスタンプで作ったページ名を自動でつけてくれるのでとても便利です。

この方法のおかげで他のスタッフも使いやすくなりました。

手順

HTMLの埋め込みを許可する

サイト設定 – 編集から、HTMLの埋め込みを許可するを選択します。

スクリーンショット

新規作成ボタンを付け加えたい名前空間のトップページで、編集画面からJavascriptを入力・保存します。

入力するコード

<html>
<script>
function newpage(){
  //メモを書きたい名前空間のURL・・・【1】
  var base='http://www.example.com/dokuwiki/doku.php?id=wiki:';
 
  //日時を取得
  var nowTime=new Date();
  var yyyy = nowTime.getFullYear();
  var mm = ("0"+(nowTime.getMonth()+1)).slice(-2);
  var dd = ("0"+(nowTime.getDate())).slice(-2);
  var hh = ("0"+(nowTime.getHours())).slice(-2);
  var nn = ("0"+(nowTime.getMinutes())).slice(-2);
  var ss = ("0"+(nowTime.getSeconds())).slice(-2);
 
  //編集ページ名「ベースURLyyyy-mm-dd-hhnnss?do=edit」・・・【2】
  location.href = base+yyyy+'-'+mm+'-'+dd+'-'+hh+nn+ss+'?do=edit';
}
</script>
<input type="button" name="link" value="新規ページ作成" onclick="newpage()">
</html>

サイト設定によって【1】【2】の修正が必要になります。

var base='https://ドメイン名/douwikiのフォルダ/doku.php?id=作成したページを保存したい名前空間:';

詳細は参考サイトをご確認ください。

wikiの編集画面

スクリーンショット

ConoHa WINGの場合、dokuwikiからの編集ではセキュリティの問題で保存できませんでした。

ファイルマネージャーでファイルを直接編集すると問題ありませんでした。

動作確認

スクリーンショット

「新規ページ作成」のボタンが表示されます。

ボタンクリックで、タイムスタンプでページが作成されて編集画面が開きます。

スクリーンショット

テンプレートファイルを使っている場合はテンプレートも適応されます。

作成されたページは、【1】で指定した名前空間に保存されています。

スクリーンショット

まとめ

以上、Dokuwkiで新規作成が直感的に操作できる方法の3種類です。

全て導入してもエラーは起きなかったので、3種類とも導入している方が便利には使えると思います。