Table of Contents

外部から取り込んだプラグイン Edit

名前のアルファベット順

calc Edit

計算式を評価してその値を表す数字に置き換えるプラグイン

PukiWiki/1.4/自作プラグイン/calcプラグイン - PukiWiki-Dev

contentsx Edit

見出しをもとに目次を作る標準機能(contents)の機能拡張版

Plugin/contentsx.inc.php - Sonots' PukiWiki プラグイン

description / keywords Edit

ページ概要およびキーワードに関するmetaタグを生成するプラグイン

自作プラグイン/description.inc.php - PukiWiki-official
自作プラグイン/keywords.inc.php - PukiWiki-official

ただ、有効性はもうあまりないかも

htmlinsert Edit

ファイル(および :HTML/ の接頭辞がつくページ)の内容をそのまま呼び出し箇所に埋め込むプラグイン

Plugin/htmlinsert.inc.php - Sonots' PukiWiki プラグイン

lightbox Edit

Lightbox2を使えるようにするプラグイン。jQueryのロードがあわせて必要

プラグインとしては以下の形式でHTMLを出力させる。あとはLightbox2におまかせ

<a href="fullsize.png" data-lightbox="title" title="title">
  <img src="thumbnail.png" width="180" height="180" />
</a>

null Edit

囲んだ範囲(複数行可)を非表示にするプラグイン。実質的にコメントアウトとして機能する

自作プラグイン/null.inc.php - PukiWiki-official

recaptcha3 Edit

Google reCAPTCHA v3 を利用したスパム防止プラグイン

自作プラグイン/recaptcha3.inc.php - PukiWiki-official

配布元に明記されていない注意事項

secedit Edit

見出しおよびその下位にある内容について部分的に編集ができるようにするプラグイン

見出し編集を可能にするPukiWikiプラグイン "secedit.inc.php"(ミラー)
※配布されていたファイルはWaybackMachine経由で取得が可能(2021/8/8現在)

配布元に明記されていない注意事項

改造もしくは自作したプラグイン Edit

countdownex Edit

現在時刻とリアルタイムで比較した残り日数(もしくは時間)を算出して表示するプラグイン

オンラインゲームの時限イベントに対する活用を意図して、開始時刻と終了時刻の2つをもらい、開始時刻よりも前であれば残り時間としては表示させない
もとにしたものは 自作プラグイン/countdown.inc.php - PukiWiki-official だけど、ほぼ原形を残していないので自作扱いで掲載

&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 Edit

div を横方向に複数個並べることを実現するプラグイン

縦方向の高さを意識しなければならないfloatはもはや不便 なので flexbox に基づいて記述したHTMLを生成する
もとにしたものは 自作プラグイン/blockdiv.inc.php - PukiWiki-official だけど、機能がほぼ異なるので自作扱いで掲載

#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>';
    }
}
?>

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2021-08-15 (日) 20:11:30