- 履歴一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- Pukiwikiカスタマイズ へ行く。
- 1 (2020-01-05 (日) 18:05:18)
- 2 (2020-01-05 (日) 19:46:24)
- 3 (2020-01-06 (月) 00:23:40)
- 4 (2020-01-06 (月) 01:31:15)
- 5 (2020-01-06 (月) 20:33:29)
- 6 (2020-01-07 (火) 01:14:22)
- 7 (2020-01-08 (水) 15:29:26)
- 8 (2020-01-08 (水) 18:10:59)
- 9 (2020-01-09 (木) 15:19:38)
- 10 (2020-01-20 (月) 08:40:03)
- 11 (2020-02-05 (水) 15:49:55)
- 12 (2020-02-09 (日) 15:15:11)
- 13 (2020-02-09 (日) 15:15:11)
- 14 (2020-02-13 (木) 04:40:40)
- 15 (2020-02-13 (木) 15:22:39)
- 16 (2020-02-16 (日) 06:22:21)
- 17 (2020-03-10 (火) 10:09:05)
- 18 (2020-10-18 (日) 12:54:54)
- 19 (2021-03-28 (日) 08:00:44)
- 20 (2021-03-28 (日) 08:00:44)
- 21 (2021-03-28 (日) 08:00:44)
- 22 (2021-03-28 (日) 08:00:44)
- 23 (2021-03-28 (日) 08:00:44)
- 24 (2021-03-28 (日) 08:00:44)
- 25 (2021-03-28 (日) 08:00:44)
- 26 (2021-03-28 (日) 08:00:44)
- 27 (2021-07-12 (月) 12:21:57)
- 28 (2022-02-01 (火) 14:41:59)
- 29 (2022-02-01 (火) 14:41:59)
- 30 (2022-05-21 (土) 12:03:03)
- 31 (2022-05-21 (土) 20:34:59)
カテゴリ:カスタマイズ
Pukiwiki1.5.1を弄りまくってたらPukiwiki1.5.2にバージョンアップするときにちょっと苦労したので変更箇所をメモ書き。
まだ書きかけ
目次
[表示]
追加した機能
AutoAlias
- 概要
- 指定した文字列を自動的にリンクに変換する。詳細
- 参考
- 質問箱/4436 - PukiWiki-official
- 備考
- RecentにAutoAliasNameを表示したくなかったのでpukiwiki.ini.phpの$non_listに追加。
対象とするページの設定いじった方が良かった気もする (先頭にコロン追加)。
変更前
変更後// Regex of ignore pages $non_list = '^\:';
// Regex of ignore pages $non_list = '^\:|^AutoAliasName';
1.5.3で標準搭載されるそうな。
タグ入力支援
- 概要
- 編集時にボタン1つで様々なタグを入力できるようにする。
- 参考
- Software/wiki自作プラグイン/instag.inc.php - DEX Lab
- 備考
- スキンのheadに追加する記述で、paraeditを使っていないので代わりにseceditとareaeditを追加
変更前
変更後<?php if ($_GET['cmd']=='edit'|| isset($_POST['preview']) || isset($_POST['template']) || $_GET['cmd']=='paraedit' ) { ?>
<?php if ($_GET['cmd']=='edit'|| isset($_POST['preview']) || isset($_POST['template']) || $_GET['cmd']=='secedit' || $_GET['plugin']=='areaedit' ) { ?>
スパムフィルタ
- 概要
- Akismet等を利用した1.5.2用汎用スパムフィルタ。
- 参考
- PukiWiki1.5.2にスパム対策メールフォームを設置!Googleアドセンスに備える! | SEの良心
- 参考
- recaptchalib.phpが同梱されていなかったので別途用意。
seceditとareaeditをAkismetの対象に指定すると誤検知しまくるのでどうにかしたいところ。
URL短縮
- 概要
- 日本語ページなど長過ぎるURLを短い文字列に置換する。
- 参考
- PukiWikiのクソ長いURLをURL短縮ライブラリを組み込んで解決する! | SEの良心
- 備考
- 編集を完了した後だと元々のURLが表示される。
OGPタグ
- 概要
- ページ内容から自動的にOGPを出力する。
- 参考
- ソフトウェア/pukiwiki/Open Graph Protocol (OGP) - 武内@筑波大
- 備考
- ・Descriptionの改変。
・1.5.2でページ内のURLが相対パスで出力されるようになったので画像のパスを修正 (このやり方であっているのだろうか)。
・各見出しに使用するparaedit.pngなどimageフォルダ内の画像を除外するよう調整。
・ついでに画像がないページは設定したアイキャッチが表示されるようにしてみる。
などを経て最終的にこうなった<meta property="og:title" content="<?php echo $title ?>" /> <meta property="og:type" content="article" /> <meta property="og:url" content="<?php echo 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']; ?>" /> <?php // descriptionを作成 $str = $body; $str = preg_replace('/<table.*class="toc"(.|\n)*?<\/table>/', '', $str); // 目次を取り除く $str = preg_replace('/<h[1-6].*?<\/h[1-6]>/', '', $str); // 見出しを取り除く $str = preg_replace('/<script(.|\n)*?<\/script>/', '', $str); // スクリプトを取り除く $str = preg_replace('/<span.*class="tag".*?<\/span>/', '', $str); // tag.inc.phpを取り除く $str = preg_replace('/<\/td>|<\/th>/', '-', $str); // 表を変換 $str = strip_htmltag($str, $all = TRUE); // タグを取り除く $str = htmlspecialchars($str); // & などをエスケープ $str = str_replace(array("\r\n","\r","\n"," "), '', mb_strcut($str,0,400,"UTF-8"));//改行を削除 ?> <meta property="og:description" content="<?php echo $str ?>" /> <meta property="og:site_name" content="<?php echo $page_title ?>" /> <meta property="og:image" content="<?php // imageフォルダの画像を除外して探す $str = $body; $uri = get_base_uri(PKWK_URI_ABSOLUTE); $result = preg_match_all('/<img.*?(data-lazy|src)=(["\'])\.\/(.+?)\2.*?>/i', $str, $imgurl); if($result) { echo $uri . htmlspecialchars_decode($imgurl[3][0]); } else { echo $uri . 'image/eyecatch.jpg'; } ?>" />
ちなみにimgタグの属性"data-lazy"はSlideshowプラグインで使っているもの。
各種SNSボタン
- 概要
- ページ上部に各種SNS用のシェアボタンを表示する。
- 参考
- シェアされるシェアボタンとは。CSSだけで作られた12のオリジナルレスポンシブシェアボタン【無料ダウンロード】–[FIT BLOG-フィットブログ]
- 備考
- レスポンシブ対応の一環でモニタサイズによってデザインが変わるようCSSで調整。
スライドメニュー
- 概要
- ボタンを押すと横からスライドしてくるサイドメニュー。
- 参考
- レスポンシブでハンバーガーメニューになる固定サイドバー | webOpixel
- 備考
- スマホ用。画面上部に常に表示。
スクロールボタンとか加えたほうが良いかも。
PC/スマホ切り替えボタン
- 概要
- PC/スマホでページの幅を切り替えるボタン
- 参考
- スマホサイト・PCサイトの切り替えボタンを設置する方法|お小遣い稼ぎSite
- 備考
- 正直あんまり存在意義が感じられない機能。
ajaxを利用したプレビュー
- 概要
- 編集時、画面遷移せずに使えるプレビュー機能。
- 参考
- AjaxでFormデータ送信する簡単な仕方 - Qiita
jQueryでフォームをAjax送信する際の基本パターンのチュートリアル。二重送信の防御とか。 | Ginpen.com - 備考
- プレビュー時にいちいちエディタのスクロールリセットされるのが煩わしかったのでなんとかしてみた。
ajax、というかJavascriptの知識は全然なかったので少し勉強になった。
そのうちリアルタイムプレビューも欲しいかな。
追加したプラグイン
インストール自体はしてあるが使っていない(非推奨)ものは除く。
alias.inc.php
- 概要
- あるページを他のページの別名にするプラグイン。
- 参考
- pukiwikiプラグイン/alias - Tomose's junkyard.
- 備考
- aliasを使ったページを管理するaliaslist.inc.phpも導入。
導入に際してrename.inc.phpを編集。
また、アンカーに対応させるための記述を追加
attachref.inc.php
- 概要
- 添付した画像をその場に置き換えるプラグイン。
- 参考
- 自作プラグイン/attachref.inc.php - PukiWiki-official
- 備考
- PHP7に対応させるためsplit関数をexplodeに置換。
attach.inc.phpと同様最大ファイルサイズを512KBに。
contentsx.inc.php
- 概要
- 標準contentsプラグインの拡張版。
- 参考
- Plugin/contentsx.inc.php - Sonots' PukiWiki プラグイン
- 備考
- 開閉機能を追加。
expand.inc.php
- 概要
- 指定した範囲を折りたたみ表示するプラグイン。
→ 自作プラグイン/expand - 備考
- Edgeは対応してないけど目をつむることに。
プラグイン名summaryかdetailsにすればよかったと後悔。
iframe.inc.php
- 概要
- iframe埋め込み用プラグイン。
- 参考
- Plugin/iframe.inc.php - Sonots' PukiWiki プラグイン
- 備考
- 1.5.1以前でもHTML5用に改造してたのでobjectを使わず普通にiframeで埋め込み。
今の所SteamストアとDiscordのウィジェット、あとはSpreadsheetくらいしか許可していない。
includex.inc.php
- 概要
- 他のページの内容を表示するプラグイン。
- 参考
- Plugin/includex.inc.php - Sonots' PukiWiki プラグイン
- 備考
- 特になし。
lsx.inc.php
- 概要
- ページをリストするためのプラグイン。
- 参考
- Plugin/lsx.inc.php - Sonots' PukiWiki プラグイン
- 備考
- 同氏作成のincludex.inc.php及びcontentsx.inc.phpが必要。
nop.inc.php
- 概要
- 指定部分のPukiWiki記法やリンクを無効にするプラグイン。
- 参考
- 質問箱/3323 - PukiWiki-official
- 備考
- 部分的にオートリンクしたくない文字列用に導入。
null.inc.php
- 概要
- 指定部分を空文字に置き換えるプラグイン。
- 参考
- 自作プラグイン/null.inc.php - PukiWiki-official
- 備考
- 複数行のコメントアウトやテーブル内でのコメントアウト等に使用。
ogp.inc.php
- 概要
- リンクをブログカード風に表示するプラグイン。
- 参考
- pukiwikiカスタマイズ箇所/ogp.inc.php - 腫瘍学レ点ノート
- 備考
- XSS対策や機能追加などいろいろと改造 プラグインの変更箇所/ogp.inc.php