スマホ版表示に切り替える
Official TweetTweets by starknights_PR |
https://arknights.wikiru.jp/様からページを引用しております。 includexの活用 †
includex とは †
includex は、指定したページのテキストを grep でパイプして表示するような PukiWikiプラグインである。適切に利用することで、再利用性の高いページ、編集コストの少ないページ、閲覧者にとって読み取りやすいページを構築することができる。オプションが比較的複雑であり、またプラグイン製作者のマニュアルサイトがダウンしているため、補足事項を説明するページを作成した。 背景情報 †
拡張の系譜 †
includex のマニュアル †
Semantic MediaWiki や Google Spreadsheet †
includex の基本的な利用 †
オプションの説明 †
わかりやすい利用例 †
```source ?食品 (ページタイトル) * FRUIT くだもの ** APPLE りんご ** BANANA ばなな *** Cavendish きゃべんでぃっしゅ *** Gros Michel ぐろすみっちぇる ** CHERRY さくらんぼ ```code #includex( 食品, section=(filter=Cavendish), except=^\*, titlestr=off) 食品ページを指定し、見出しの「Cavendish」と直下の本文を抽出し、見出し行を except で排除して、ページタイトルを非表示にしている。 ```result きゃべんでぃっしゅ filter / except の対象 †
━┳ ページ (http://pukiwiki.osdn.jp/?{PAGE_NAME}) ┗┳ 見出し行 (*,**,***) ┗━ 本文行 「見出し行」と「本文行」それぞれに「grep -E (-v)」のような filter (except) オプション(実際にはphpのpreg_match)を実行することができる。 DOMライクな挙動 †
━┳ ページ ┣┷┳ * FRUIT ┃ ┗━ くだもの ┣┷┷┳ ** APPLE ┃ ┗━ りんご ┣┷┷┳ ** BANANA ┃ ┗━ ばなな ┣┷┷┷┳ *** Cavendish ┃ ┗━ きゃべんでぃっしゅ ┣┷┷┷┳ *** Gros Michel ┃ ┗━ ぐろすみっちぇる ┣┷┷┳ ** CHERRY ┇ ┗━ さくらんぼ 見出しには深さがある。具体的には「depth」オプションで参照できる。だだし1つの見出しから次の見出し直前までが一塊と判断され、見出しの階層構造は本文の階層構造に適用されない。つまり例えば「**BANANA」を選択したとき、「ばなな」は表示されるが、「きゃべんでぃっしゅ」や「ぐろすみっちぇる」を下位の要素としてアクセスすることはできない。 ```result ** APPLE りんご ** BANANA ばなな ** CHERRY さくらんぼ includex の応用 †
aname と組み合わせる †
anameプラグインは、指定した位置にアンカー(リンクの飛び先)を設定するプラグイン。アンカー名はHTMLで表示されないが、filterの評価対象にはなる。 ```source ジョナゴールド &aname(apple); キャベンディッシュ &aname(banana); グロスミッチェル &aname(banana); ```code #includex(source_page_name,filter=banana,titlestr=off) ```result (見かけ) キャベンディッシュ グロスミッチェル 表を扱う †
PukiWikiの表は先頭が「|」で始まるため「filter=^\|」とマッチさせる。 ```code #includex(source_page_name,filter=^[|],titlestr=off) これにanameを組み合わせることで、以下のように2つに分かれた表を、一つのテーブルにまとめることができる。 ```source |品種名 |分類 |産地 &aname(tag);|h |ジョナゴールド|りんご|アメリカ| |品種名 |分類 |産地 |h |キャベンディッシュ|ばなな|フィリピン | |グロスミッチェル |ばなな|中央アメリカ|
```code #includex(source_page_name,filter=(^[|].*[|]$)|(^[|].*tag.+h$),titlestr=off) ```result
細かな技法 †
バッドパターン †
num オプションはできるだけ使用しない †
以下のようなソースからバナナのみを抽出するケースを考えてみる。 ```source_1 [0] ジョナゴールド &aname(apple); [1] キャベンディッシュ &aname(banana); [2] グロスミッチェル &aname(banana); ```code_A #includex(source_page_name,num=1:2,titlestr=off) ```result_1A (見かけ) キャベンディッシュ グロスミッチェル バナナだけを抽出できている。さてここに 紅の夢(リンゴ) を追加してみよう。 ```source_2 [0] ジョナゴールド &aname(apple); [1] 紅の夢 &aname(apple); [2] キャベンディッシュ &aname(banana); [3] グロスミッチェル &aname(banana); ```result_2A (見かけ) 紅の夢 キャベンディッシュ バナナとリンゴが混ざってしまった。なぜなら単に行数を示す「num」と抽出したいカテゴリ「ばなな」との間には意味のある関係性がないからだ。 ```code_B #includex(source_page_name,filter=banana,titlestr=off) ```result_2B (見かけ) キャベンディッシュ グロスミッチェル 平文を捌くときなど num を使わざるを得ない場面があるかもしれない。ただ基本的には、「*(見出し)」を section/filter で選択する、プラグインの「#」や「>」を filter で選択する、共通して出てくる単語を filter する、などの方法を取るのが良い。 既知のバグ †
その他 †
contentsx の応用 †
lsx について †
ecacheの活用 †
|