開始行: &tag(カスタマイズ); PukiWikiで手を入れた箇所の覚書。色々と足りてない。 #contentsx *追加した機能 [#addon] **AutoAlias [#autoalias] :概要|指定した文字列を自動的にリンクに変換する。[[詳細>ht... :参考| [[質問箱/4436 - PukiWiki-official:https://pukiwiki.osdn.j... :備考|RecentにAutoAliasNameを表示したくなかったのでpukiwi... 対象とするページの設定いじった方が良かった気もする (先頭... &br; 変更前 #prism(php,0){{ // Regex of ignore pages $non_list = '^\:'; }} 変更後 #prism(php,0){{ // Regex of ignore pages $non_list = '^\:|^AutoAliasName'; }} PukiWiki 1.5.3から標準搭載された。 **タグ入力支援 [#instag] :概要|編集時にボタン1つで様々なタグを入力できるようにする。 :参考| [[Software/wiki自作プラグイン/instag.inc.php - DEX Lab:ht... :備考|スキンのheadに追加する記述で、paraeditを使っていな... &br; 変更前 #prism(php,0){{ <?php if ($_GET['cmd']=='edit'|| isset($_POST['preview'])... }} 変更後 #prism(php,0){{ <?php if ($_GET['cmd']=='edit'|| isset($_POST['preview'])... }} **スパムフィルタ [#spam] :概要|Akismet等を利用した1.5.2用汎用スパムフィルタ。 :参考| [[PukiWiki1.5.2にスパム対策メールフォームを設置!Googleア... :参考|Akismet使うと編集時に誤検知しまくるのでそれ以外を活... **URL短縮 [#url] :概要|日本語ページなど長過ぎるURLを短い文字列に置換する。 :参考|[[BugTrack/2525 - PukiWiki-dev:https://pukiwiki.osd... :備考|PukiWiki 1.5.4で実装されたURLカスタマイズ機能を使用... **OGPタグ [#ogp] :概要|ページ内容から自動的にOGPを出力する。 :参考| [[ソフトウェア/pukiwiki/Open Graph Protocol (OGP) - 武内... :備考|・Descriptionの改変。 ・1.5.2でページ内のURLが相対パスで出力されるようになった... ・各見出しに使用するparaedit.pngなどimageフォルダ内の画像... ・ついでに画像がないページは設定したアイキャッチが表示さ... &br; #ac(などを経て最終的にこうなった (旧版)){{{ #prism(php){{ <meta property="og:title" content="<?php echo $title ?>" /> <meta property="og:type" content="article" /> <meta property="og:url" content="<?php echo 'https://' . ... <?php // descriptionを作成 $str = $body; $str = preg_replace('/<table.*class="toc"(.|\n)*?<\/tabl... $str = preg_replace('/<h[1-6].*?<\/h[1-6]>/', '', $str);... $str = preg_replace('/<script(.|\n)*?<\/script>/', '', $... $str = preg_replace('/<span.*class="tag".*?<\/span>/', '... $str = preg_replace('/<\/td>|<\/th>/', '-', $str); // 表... $str = strip_htmltag($str, $all = TRUE); // タグを取り除く $str = htmlspecialchars($str); // & などをエスケープ $str = str_replace(array("\r\n","\r","\n"," "), '', mb_s... ?> <meta property="og:description" content="<?php echo $str ... <meta property="og:site_name" content="<?php echo $page_t... <meta property="og:image" content="<?php // imageフォルダ... $str = $body; $uri = get_base_uri(PKWK_URI_ABSOLUTE); $result = preg_match_all('/<img.*?(data-lazy|src)=(["\'... if($result) { echo $uri . htmlspecialchars_decode($imgurl[3][0]); } else { echo $uri . 'image/eyecatch.jpg'; } ?>" /> }} ちなみにimgタグの属性"data-lazy"は[[Slideshowプラグイン>... }}} &br; 2021-07-12追記: 目次やタグの出力を変えたためdescriptionの生成が以前のコー... &br; 以下はdescription部分のみ #prism(php,false){{ <?php // descriptionを作成 $str = preg_replace("/\r\n|\r|\n/", '', $body); preg_match_all('/<(p|dd|dt|li).*?>(.+?)<\/\1>/', $str, $... $str = implode($matches[2]); $str = strip_tags($str); $str = mb_substr($str, 0, 200, 'UTF-8'); ?> <meta property="og:description" content="<?php echo $str ... }} 実際のコードはこれに加えてpやliを含むプラグインを除外する... **各種SNSボタン [#sns] :概要|ページ上部に各種SNS用のシェアボタンを表示する。 :参考| //[[シェアされるシェアボタンとは。CSSだけで作られた12のオ... ~- :備考| 2021年7月のサイトデザイン一新に伴って大幅に作り変え。 今はアイコンフォントを使わずSVGで直接表示している。 **スライドメニュー [#menu] :概要|ボタンを押すと横からスライドしてくるサイドメニュー。 :参考|[[レスポンシブでハンバーガーメニューになる固定サイ... :備考| スマホ用。開閉ボタンは画面右側に表示。 押しやすいように右側にボタン配置しているが、左からメニュ... **非同期プレビュー [#gd38abee] :概要|編集時、画面遷移せずに使えるプレビュー機能。 :参考| [[【JS】Fetch APIでPOST送信してみる(Form送信との比較も)... [[fetchとかで取ってきた生HTMLからDOMを作ってqueryselector... :備考| プレビュー時に毎回スクロール位置がリセットされるのが煩わ... 2022年2月を堺にjQueryのAjaxからFetch APIに切り替え。 各プラグインの動作に必要なスクリプトなどをどう読み込むか... とりあえず現状一部のプラグイン以外はプレビュー時にも動作... *追加したプラグイン [#plugin_add] 気が向いたときに追記している程度なのでここに書かれていな... [[自作プラグイン]]は別ページに。 **alias.inc.php [#add_alias] :概要|あるページを他のページの別名にするプラグイン。 :参考| [[pukiwikiプラグイン/alias - Tomose's junkyard.:http://to... :備考|aliasを使ったページを管理するaliaslist.inc.phpも導... 導入に際して[[rename.inc.php>プラグインの変更箇所/rename.... また、[[アンカーに対応させるための記述を追加>プラグインの... **attachref.inc.php [#add_attach] :概要|添付した画像をその場に置き換えるプラグイン。 :参考| [[自作プラグイン/attachref.inc.php - PukiWiki-official:ht... :備考|PHP7に対応させるためsplit関数をexplodeに置換。 attach.inc.phpと同様最大ファイルサイズを512KBに。 **contentsx.inc.php [#add_toc] :概要|標準contentsプラグインの拡張版。 :参考| [[Plugin/contentsx.inc.php - Sonots' PukiWiki プラグイン:... :備考|[[開閉機能を追加>プラグインの変更箇所/contentsx.inc... PHP8.0でも動くように修正。 (他のsonots氏製プラグインも同様) **includex.inc.php [#add_includex] :概要|他のページの内容を表示するプラグイン。 :参考| [[Plugin/includex.inc.php - Sonots' PukiWiki プラグイン:h... :備考|PHP8.0でも動くように修正。 (他のsonots氏製プラグイ... **lsx.inc.php [#add_lsx] :概要|ページをリストするためのプラグイン。 :参考| [[Plugin/lsx.inc.php - Sonots' PukiWiki プラグイン:http:/... :備考|同氏作成のincludex.inc.php及びcontentsx.inc.phpが必... PHP8.0でも動くように修正。 (他のsonots氏製プラグインも同様) **nop.inc.php [#add_nop] :概要|指定部分のPukiWiki記法やリンクを無効にするプラグイ... :参考| [[質問箱/3323 - PukiWiki-official:https://pukiwiki.osdn.j... :備考|部分的にオートリンクしたくない文字列用に導入。 PHP7.4に上げた (というかレン鯖側で勝手に上げられた) とき... **null.inc.php [#add_null] :概要|指定部分を空文字に置き換えるプラグイン。 :参考| [[自作プラグイン/null.inc.php - PukiWiki-official:https:/... :備考|複数行のコメントアウトやテーブル内でのコメントアウ... **ogp.inc.php [#add_ogp] :概要|リンクをブログカード風に表示するプラグイン。 :参考| [[pukiwikiカスタマイズ箇所/ogp.inc.php - 腫瘍学レ点ノート... :備考| XSS対策や機能追加などいろいろと改造 [[プラグインの変更箇... **sortabletable [#add_sortabletable] :概要|表をソートできるようにするプラグイン。 :参考| --[[PukiWikiで表をソートしたい | OXY NOTES:https://oxynot... --[[PukiWiki用ソートテーブル(表)プラグインを導入する! ... :備考| プラグイン名は旧版のままだが中身は新しい方 (sortable_tabl... 旧版との互換性を持たせるためにいくらか改造 & 一部バグが有... [[プラグインの変更箇所/sortabletable.inc.php]] **style.inc.php [#add_style] :概要|任意の箇所にスタイルやクラスを指定するプラグイン。 :参考| [[Plugin/style.inc.php - Sonots' PukiWiki プラグイン:http... :備考|flex表示やinfobox (モドキ) の設置、テーブルの右寄せな... クラス作っておくだけなのでレスポンシブ対応も簡単。 **tag.inc.php [#add_tag] :概要|ページにタグを付けてカテゴリ分けするプラグイン。 :参考| [[Plugin/tag.inc.php - Sonots' PukiWiki プラグイン:http:/... :備考|個人的にページを階層化するよりスッキリすると感じた... 指定タグが付いたページをリスト化するtaglistも便利。 タグを単純にリストへ移動するためのリンクとして貼るtaglink... PHP8.0でも動くように修正。 (他のsonots氏製プラグインも同様) *プラグインの変更箇所 [#plugin_edit] #lsx(プラグインの変更箇所) #space 終了行: &tag(カスタマイズ); PukiWikiで手を入れた箇所の覚書。色々と足りてない。 #contentsx *追加した機能 [#addon] **AutoAlias [#autoalias] :概要|指定した文字列を自動的にリンクに変換する。[[詳細>ht... :参考| [[質問箱/4436 - PukiWiki-official:https://pukiwiki.osdn.j... :備考|RecentにAutoAliasNameを表示したくなかったのでpukiwi... 対象とするページの設定いじった方が良かった気もする (先頭... &br; 変更前 #prism(php,0){{ // Regex of ignore pages $non_list = '^\:'; }} 変更後 #prism(php,0){{ // Regex of ignore pages $non_list = '^\:|^AutoAliasName'; }} PukiWiki 1.5.3から標準搭載された。 **タグ入力支援 [#instag] :概要|編集時にボタン1つで様々なタグを入力できるようにする。 :参考| [[Software/wiki自作プラグイン/instag.inc.php - DEX Lab:ht... :備考|スキンのheadに追加する記述で、paraeditを使っていな... &br; 変更前 #prism(php,0){{ <?php if ($_GET['cmd']=='edit'|| isset($_POST['preview'])... }} 変更後 #prism(php,0){{ <?php if ($_GET['cmd']=='edit'|| isset($_POST['preview'])... }} **スパムフィルタ [#spam] :概要|Akismet等を利用した1.5.2用汎用スパムフィルタ。 :参考| [[PukiWiki1.5.2にスパム対策メールフォームを設置!Googleア... :参考|Akismet使うと編集時に誤検知しまくるのでそれ以外を活... **URL短縮 [#url] :概要|日本語ページなど長過ぎるURLを短い文字列に置換する。 :参考|[[BugTrack/2525 - PukiWiki-dev:https://pukiwiki.osd... :備考|PukiWiki 1.5.4で実装されたURLカスタマイズ機能を使用... **OGPタグ [#ogp] :概要|ページ内容から自動的にOGPを出力する。 :参考| [[ソフトウェア/pukiwiki/Open Graph Protocol (OGP) - 武内... :備考|・Descriptionの改変。 ・1.5.2でページ内のURLが相対パスで出力されるようになった... ・各見出しに使用するparaedit.pngなどimageフォルダ内の画像... ・ついでに画像がないページは設定したアイキャッチが表示さ... &br; #ac(などを経て最終的にこうなった (旧版)){{{ #prism(php){{ <meta property="og:title" content="<?php echo $title ?>" /> <meta property="og:type" content="article" /> <meta property="og:url" content="<?php echo 'https://' . ... <?php // descriptionを作成 $str = $body; $str = preg_replace('/<table.*class="toc"(.|\n)*?<\/tabl... $str = preg_replace('/<h[1-6].*?<\/h[1-6]>/', '', $str);... $str = preg_replace('/<script(.|\n)*?<\/script>/', '', $... $str = preg_replace('/<span.*class="tag".*?<\/span>/', '... $str = preg_replace('/<\/td>|<\/th>/', '-', $str); // 表... $str = strip_htmltag($str, $all = TRUE); // タグを取り除く $str = htmlspecialchars($str); // & などをエスケープ $str = str_replace(array("\r\n","\r","\n"," "), '', mb_s... ?> <meta property="og:description" content="<?php echo $str ... <meta property="og:site_name" content="<?php echo $page_t... <meta property="og:image" content="<?php // imageフォルダ... $str = $body; $uri = get_base_uri(PKWK_URI_ABSOLUTE); $result = preg_match_all('/<img.*?(data-lazy|src)=(["\'... if($result) { echo $uri . htmlspecialchars_decode($imgurl[3][0]); } else { echo $uri . 'image/eyecatch.jpg'; } ?>" /> }} ちなみにimgタグの属性"data-lazy"は[[Slideshowプラグイン>... }}} &br; 2021-07-12追記: 目次やタグの出力を変えたためdescriptionの生成が以前のコー... &br; 以下はdescription部分のみ #prism(php,false){{ <?php // descriptionを作成 $str = preg_replace("/\r\n|\r|\n/", '', $body); preg_match_all('/<(p|dd|dt|li).*?>(.+?)<\/\1>/', $str, $... $str = implode($matches[2]); $str = strip_tags($str); $str = mb_substr($str, 0, 200, 'UTF-8'); ?> <meta property="og:description" content="<?php echo $str ... }} 実際のコードはこれに加えてpやliを含むプラグインを除外する... **各種SNSボタン [#sns] :概要|ページ上部に各種SNS用のシェアボタンを表示する。 :参考| //[[シェアされるシェアボタンとは。CSSだけで作られた12のオ... ~- :備考| 2021年7月のサイトデザイン一新に伴って大幅に作り変え。 今はアイコンフォントを使わずSVGで直接表示している。 **スライドメニュー [#menu] :概要|ボタンを押すと横からスライドしてくるサイドメニュー。 :参考|[[レスポンシブでハンバーガーメニューになる固定サイ... :備考| スマホ用。開閉ボタンは画面右側に表示。 押しやすいように右側にボタン配置しているが、左からメニュ... **非同期プレビュー [#gd38abee] :概要|編集時、画面遷移せずに使えるプレビュー機能。 :参考| [[【JS】Fetch APIでPOST送信してみる(Form送信との比較も)... [[fetchとかで取ってきた生HTMLからDOMを作ってqueryselector... :備考| プレビュー時に毎回スクロール位置がリセットされるのが煩わ... 2022年2月を堺にjQueryのAjaxからFetch APIに切り替え。 各プラグインの動作に必要なスクリプトなどをどう読み込むか... とりあえず現状一部のプラグイン以外はプレビュー時にも動作... *追加したプラグイン [#plugin_add] 気が向いたときに追記している程度なのでここに書かれていな... [[自作プラグイン]]は別ページに。 **alias.inc.php [#add_alias] :概要|あるページを他のページの別名にするプラグイン。 :参考| [[pukiwikiプラグイン/alias - Tomose's junkyard.:http://to... :備考|aliasを使ったページを管理するaliaslist.inc.phpも導... 導入に際して[[rename.inc.php>プラグインの変更箇所/rename.... また、[[アンカーに対応させるための記述を追加>プラグインの... **attachref.inc.php [#add_attach] :概要|添付した画像をその場に置き換えるプラグイン。 :参考| [[自作プラグイン/attachref.inc.php - PukiWiki-official:ht... :備考|PHP7に対応させるためsplit関数をexplodeに置換。 attach.inc.phpと同様最大ファイルサイズを512KBに。 **contentsx.inc.php [#add_toc] :概要|標準contentsプラグインの拡張版。 :参考| [[Plugin/contentsx.inc.php - Sonots' PukiWiki プラグイン:... :備考|[[開閉機能を追加>プラグインの変更箇所/contentsx.inc... PHP8.0でも動くように修正。 (他のsonots氏製プラグインも同様) **includex.inc.php [#add_includex] :概要|他のページの内容を表示するプラグイン。 :参考| [[Plugin/includex.inc.php - Sonots' PukiWiki プラグイン:h... :備考|PHP8.0でも動くように修正。 (他のsonots氏製プラグイ... **lsx.inc.php [#add_lsx] :概要|ページをリストするためのプラグイン。 :参考| [[Plugin/lsx.inc.php - Sonots' PukiWiki プラグイン:http:/... :備考|同氏作成のincludex.inc.php及びcontentsx.inc.phpが必... PHP8.0でも動くように修正。 (他のsonots氏製プラグインも同様) **nop.inc.php [#add_nop] :概要|指定部分のPukiWiki記法やリンクを無効にするプラグイ... :参考| [[質問箱/3323 - PukiWiki-official:https://pukiwiki.osdn.j... :備考|部分的にオートリンクしたくない文字列用に導入。 PHP7.4に上げた (というかレン鯖側で勝手に上げられた) とき... **null.inc.php [#add_null] :概要|指定部分を空文字に置き換えるプラグイン。 :参考| [[自作プラグイン/null.inc.php - PukiWiki-official:https:/... :備考|複数行のコメントアウトやテーブル内でのコメントアウ... **ogp.inc.php [#add_ogp] :概要|リンクをブログカード風に表示するプラグイン。 :参考| [[pukiwikiカスタマイズ箇所/ogp.inc.php - 腫瘍学レ点ノート... :備考| XSS対策や機能追加などいろいろと改造 [[プラグインの変更箇... **sortabletable [#add_sortabletable] :概要|表をソートできるようにするプラグイン。 :参考| --[[PukiWikiで表をソートしたい | OXY NOTES:https://oxynot... --[[PukiWiki用ソートテーブル(表)プラグインを導入する! ... :備考| プラグイン名は旧版のままだが中身は新しい方 (sortable_tabl... 旧版との互換性を持たせるためにいくらか改造 & 一部バグが有... [[プラグインの変更箇所/sortabletable.inc.php]] **style.inc.php [#add_style] :概要|任意の箇所にスタイルやクラスを指定するプラグイン。 :参考| [[Plugin/style.inc.php - Sonots' PukiWiki プラグイン:http... :備考|flex表示やinfobox (モドキ) の設置、テーブルの右寄せな... クラス作っておくだけなのでレスポンシブ対応も簡単。 **tag.inc.php [#add_tag] :概要|ページにタグを付けてカテゴリ分けするプラグイン。 :参考| [[Plugin/tag.inc.php - Sonots' PukiWiki プラグイン:http:/... :備考|個人的にページを階層化するよりスッキリすると感じた... 指定タグが付いたページをリスト化するtaglistも便利。 タグを単純にリストへ移動するためのリンクとして貼るtaglink... PHP8.0でも動くように修正。 (他のsonots氏製プラグインも同様) *プラグインの変更箇所 [#plugin_edit] #lsx(プラグインの変更箇所) #space ページ名: