【Dokuwiki】javascriptを使った新規ページボタンの作成(2023.12月修正)

2023-12-23

以前、Dokuwikiで検索せず、新規記事の作成が直感的に操作できるようにボタンの作成方法を紹介していましたが、バージョンアップに伴い多少変更が必要になったので更新します。

現在使っているバージョンは DokuWiki 2023-04-04a 'Jack Jackrum’です。

変更点と対応

HTMLの埋め込み許可の設定

古いバージョンでは「管理」ページからHTML、PHPの埋め込みの許可ができましたが、現在は「管理」ページから設定できなくなりました。

更新履歴[Dokuwiki]

セキュリティ面を優先とのことです。

プラグインで設定するように変更されたので「htmlok plugin」を導入します。

似た名前のプラグインが多いのですが、更新履歴からリンクされていたプラグインの方が信頼できると思います。

プラグインのインストール後は「管理」ー「サイト設定」からHTMLとPHPの埋め込みが設定できるようになります。

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>

変更箇所

修正前
//編集ページ名「ベースURLyyyy-mm-dd-hhnnss?do=edit」・・・【2】
  location.href = base+yyyy+'-'+mm+'-'+dd+'-'+hh+nn+ss+'?do=edit';

修正後
//編集ページ名「ベースURLyyyy-mm-dd-hhnnss?do=edit」・・・【2】
  location.href = base+yyyy+'-'+mm+'-'+dd+'-'+hh+nn+ss+'&do=edit';

編集ページ名を「?」から「&」に変更すると、今まで通りに動作するようになりました。

「新規ページ作成」を押すとタイムスタンプで作られたページの編集画面に移動します。

以上が、DokuWiki 2023-04-04a 'Jack Jackrum’でjavascriptを使ったページ作成ボタンを動作させる変更・修正点です。

元々はこちらのサイトを参考にさせてもらっています。