あちあち情報局

趣味や日曜プログラムなどを書いています

ユーザ用ツール

サイト用ツール


サイドバー

メニュー

現在リニューアル中

タグ一覧

dokuwiki:notepad

📝DokuWiki 自動ページid+自動リスト

編集時に自動でページ名をつけ、編集後にページ名をリストに自動追加する方法(nspagesプラグイン+JavaScript)


概要

DokuWikiはページ名を自分でつけなければページを作成できず、自分でリンクを作らないとそのページに移動できません。ちょっとしたブログやメモ書きをする時にこの2つの作業は手間だったのでプラグインとJavaScriptにより自動化を試してみました。

動作イメージ

ページidを自動作成

サイト設定で「HTMLの埋め込み」を有効にした状態で任意の名前空間のページに下記のJavaScriptをページに記述します。コードの【1】と【2】は各自の環境や好みに変更が必要です(後述)。

「新規ページ作成」というボタンを押すと日付ベースのページIDを作成し編集ページに移動します。

<html>
<script>
function newpage(){
  //メモを書きたい名前空間のURL・・・【1】
  var base='http://www.example.com/dokuwiki/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>

変更箇所

「DokuWikiの設置URL」やサイト設定の「URLの書き換え」「名前空間の区切り」の状態によって【1】と【2】の部分は変更が必要です。

URLの書き換えや名前空間の区切りを変更していない場合

(1)var base='http://www.example.com/dokuwiki/doku.php?id=wiki:';
(2)location.href = base+yyyy+'-'+mm+'-'+dd+'-'+hh+nn+ss+'&do=edit';

URLの書き換えを「dokuwikiによる設定」にして名前空間の区切りを変更していない場合

(1)var base='http://www.example.com/dokuwiki/doku.php/wiki:';
(2)location.href = base+yyyy+'-'+mm+'-'+dd+'-'+hh+nn+ss+'?do=edit';

URLの書き換えを変更せず名前空間の区切りを「/」にしている場合

(1)var base='http://www.example.com/dokuwiki/doku.php?id=wiki/';
(2)location.href = base+yyyy+'-'+mm+'-'+dd+'-'+hh+nn+ss+'&do=edit';

URLの書き換えを「dokuwikiによる設定」にして名前空間の区切り「/」にしている場合

(1)var base='http://www.example.com/dokuwiki/doku.php/wiki/';
(2)location.href = base+yyyy+'-'+mm+'-'+dd+'-'+hh+nn+ss+'?do=edit';

URLの書き換えを「.htaccess」にして名前空間の区切り「/」にしている場合

(1)var base='http://www.example.com/dokuwiki/wiki/';
(2)location.href = base+yyyy+'-'+mm+'-'+dd+'-'+hh+nn+ss+'?do=edit';

名前空間中のページリストを表示

nspagesプラグインをインストールして、ページ中に下記のコードを記述します。表示オプションはnspagesプラグインを利用できます。

<nspages>

終わりに

自分用の備忘録・メモ書きなど簡単に書き残したい時にはかなり便利になると思います。(もう少しnspagesプラグインの表示方法が色々変更できたり装飾できるとメインページでも使用できるのになー)

ページ名を自分で決めたい場合は Add New Page Plugin を使うと良いかもしれません(未検証)

dokuwiki/notepad.txt · 最終更新: 2019/01/12 21:12 by 管理者