外部から取り込んだプラグイン †
名前のアルファベット順 calc †
計算式を評価してその値を表す数字に置き換えるプラグイン PukiWiki/1.4/自作プラグイン/calcプラグイン - PukiWiki-Dev contentsx †
見出しをもとに目次を作る標準機能(contents)の機能拡張版 Plugin/contentsx.inc.php - Sonots' PukiWiki プラグイン description / keywords †
ページ概要およびキーワードに関するmetaタグを生成するプラグイン 自作プラグイン/description.inc.php - PukiWiki-official ただ、有効性はもうあまりないかも htmlinsert †
ファイル(および :HTML/ の接頭辞がつくページ)の内容をそのまま呼び出し箇所に埋め込むプラグイン Plugin/htmlinsert.inc.php - Sonots' PukiWiki プラグイン lightbox †
Lightbox2を使えるようにするプラグイン。jQueryのロードがあわせて必要 プラグインとしては以下の形式でHTMLを出力させる。あとはLightbox2におまかせ <a href="fullsize.png" data-lightbox="title" title="title"> <img src="thumbnail.png" width="180" height="180" /> </a> null †
囲んだ範囲(複数行可)を非表示にするプラグイン。実質的にコメントアウトとして機能する 自作プラグイン/null.inc.php - PukiWiki-official recaptcha3 †
Google reCAPTCHA v3 を利用したスパム防止プラグイン 自作プラグイン/recaptcha3.inc.php - PukiWiki-official 配布元に明記されていない注意事項
secedit †
見出しおよびその下位にある内容について部分的に編集ができるようにするプラグイン 見出し編集を可能にするPukiWikiプラグイン "secedit.inc.php"(ミラー) 配布元に明記されていない注意事項
改造もしくは自作したプラグイン †
countdownex †
現在時刻とリアルタイムで比較した残り日数(もしくは時間)を算出して表示するプラグイン オンラインゲームの時限イベントに対する活用を意図して、開始時刻と終了時刻の2つをもらい、開始時刻よりも前であれば残り時間としては表示させない &countdownex(開始時刻,終了時刻); ※時刻は [ YYYY/mm/dd HH24:MM ]で指定(PHPが解釈できればよい)
plugin/countdownex.inc.php <?php function plugin_countdownex_inline() { $SECONDS_OF_MINUTE = 60; $SECONDS_OF_HOUR = 60 * $SECONDS_OF_MINUTE; $SECONDS_OF_DAY = 24 * $SECONDS_OF_HOUR; $PRESET_TZ = date_default_timezone_get(); list($start_str, $end_str) = func_get_args(); date_default_timezone_set('Asia/Tokyo'); $now = time(); $start = strtotime($start_str); $end = strtotime($end_str); date_default_timezone_set($PRESET_TZ); if ($now < $start) { // 開始前 $rest = $start - $now; $format = '開始まで<br/>あと%1$d日'; return sprintf($format, ceil($rest / $SECONDS_OF_DAY)); } else if ($now >= $end) { // 終了後 return '終了しました'; } else { // 期間中 $rest = $end - $now; if ($rest >= $SECONDS_OF_DAY) { // 終了時刻まで24時間以上 $format = 'あと%1$d日'; return sprintf($format, $rest / $SECONDS_OF_DAY); } else if ($rest >= $SECONDS_OF_HOUR) { // 終了時刻まで1時間以上 $format = '<strong class="countdownex">あと%1$d時間</strong>'; return sprintf($format, $rest / $SECONDS_OF_HOUR); } else { // 終了時刻まで1時間未満 $format = '<strong class="countdownex">あと%1$d分</strong>'; return sprintf($format, $rest / $SECONDS_OF_MINUTE); } } } fletbox †
div を横方向に複数個並べることを実現するプラグイン 縦方向の高さを意識しなければならないfloatはもはや不便 なので flexbox に基づいて記述したHTMLを生成する #flexbox(start); AAA #flexbox(continue,marginleft:0.5em); BBB #flexbox(end); このプラグイン呼び出しを含んだ記述で以下のHTMLを出力する <div class="flexbox" style="display: flex; align-items: flex-start;"> <div> AAA </div> <div style="margin-left: 0.5em;"> BBB </div> </div> plugin/flexbox.inc.php <?php function plugin_flexbox_convert() { # 初期設定値 $params = array( 'start' => false, 'continue' => false, 'end' => false, 'display' => 'flex', 'alignitems' => 'flex-start', 'marginleft' => '0.5em' ); # 引数解析 $args = func_get_args(); foreach ($args as $value) { if (preg_match("/^ *([a-zA-Z0-9_]+) *$/i", $value, $matches)) { $params[strtolower($matches[1])] = true; } else if (preg_match("/^ *([a-zA-Z0-9_]+):([a-zA-Z0-9\.%_# ]+)$/i", $value, $matches)) { $params[strtolower($matches[1])] = $matches[2]; } } # HTML生成 if ($params['start']) { return '<div class="flexbox" style="display: flex; ' . 'align-items: ' . $params['alignitems'] . ';">' . '<div>'; } else if ($params['continue']) { if ($params['marginleft'] == '') { return '</div><div>'; } else { return '</div><div style="margin-left: ' . $params['marginleft'] . ';">'; } } else if ($params['end']) { return '</div></div>'; } } ?> |