→WikiNotation[?]

→X/PageElement[?]

思い付き段階の各種機能。そのうちフレームワークにふさわしくないもの。

機能の実装はページ/要素、それをシステムに導入する仕組みはプラグイン。呼び出すときはNotationText上に記法を書く。

プラグイン/」で始まるページを作成

記法

→ X/Element[?]

機能/favicon.ico Edit

目次 Edit

  1. 機能/favicon.ico
  1. 目次
  2. 関連
  3. プラグイン周辺のタグ
  4. プラグイン
    1. 機能/fotolife
    1. インライン/ブロック/ページ
      1. Google AdSenseを組み込む
      2. Google計算呼び出し
  5. 実装
    1. 時刻だけ書いたら同じページに書かれている日付を加味
      1. Googleグラフ呼び出し
      2. 機能/included
    2. インスタンス
    3. 複数行パラメーターの書き方
    4. 3態
      1. 機能/InterInclude
    5. ページがコンポジション
      1. 機能/New!
    6. プラグインの展開タイミング
      1. 機能/Pager
      2. 機能/POD
      3. 機能/QRコード
      4. 機能/RSSバー
      5. 機能/TODO
      6. 機能/URI
      7. 機能/yetlist
      8. 機能/★
      9. 機能/お絵かき
      10. 機能/ここに追加
      11. 機能/はてなWordLink
      12. 機能/はてなハイク
      13. 機能/はてなブックマーク
      14. 機能/もっと読む…
      15. 機能/アイコン
      16. 機能/イメージマップ
      17. 機能/インデント
      18. 機能/カウンター
      19. 機能/文字数
      20. 機能/カレンダー
      21. 機能/キーワード強調
      22. 機能/キーワード強調/引用時のマーカーとして
      23. 機能/クラスタリング
      24. 機能/クリップボード
      25. 機能/ジオタグ送信
      26. 機能/ソート
      27. 機能/タグクラウド
    7. 導入
    8. 導入は「置いて書く」
      1. 機能/ダウンロード
    9. プラグインは部品
      1. 機能/テキスト出力
    10. 投稿時展開するものは要らない
      1. 機能/テンプレート生成
    11. その他のプラグイン
  6. 設計
    1. 機能/ナビゲーションバー
    2. 機能/ページ生成
    1. 展開は閲覧時
    2. Chain of Responsibility
      1. 機能/ログ
    3. ページ─プラグインはコンポジションに
      1. 機能/体裁
    4. どのプラグインか
    5. 使い方2種類
    6. 使い方が2種類あっても実体は同じ
      1. 機能/個人用メモ
    7. リクエストからの直接呼び出しでもネスト可能に
    8. URLクエリーは一時的ページ
    9. MVC
    10. ページに記述されたとき、Chain of Responsibilityで
      1. 機能/分析
      2. トリガー指定
      3. 機能/前後のページ
      4. 機能/即投稿
      5. 機能/地名
      6. 機能/大きくする
      7. 機能/定着する文字
      8. 機能/引用補助
      9. 機能/承認ボタン
      10. 機能/時限ロック
      11. 機能/歴史
      12. 機能/疑似SSI
      13. 実行順序
      14. データの改ざん
      15. 機能/自動フォーマット
      16. 機能/自動更新
      17. 機能/要約
      18. 機能/計算・電卓
      19. 機能/記法リスト
      20. 機能/誰かが編集中
      21. 機能/集合操作
    11. 機能/

関連 Edit

 

検索:プラグイン
 

プラグイン周辺のタグ Edit

Array
 
  • -
    favicon.icoもアップロードされたファイル。

    特定のファイルを更新する機能でファイルをアップロード。

プラグイン Edit

機能/fotolife Edit


機能追加の仕組みと追加されるもの。

記法プラグイン

汎用のプラグイン呼び出し記法か、プラグインごとに定義したWikiNotationで記述すると機能するようになる。

はてなのfotolife記法を使えるように。

画像を貼るときの記法でfotolife記法を書けるようにした方がいい。

内部ではWikiNotationプラグイン呼び出し記法に置き換えられる。

プラグイン呼び出しをするクラスはプラグイン記法だけを扱えればいい。

インライン/ブロック/ページ Edit


3種類の

使われ方と出力の違い。使われ方はUIの範疇なので、プラグインでは出力だけ気にすればいい。

Google AdSenseを組み込む Edit

インライン
普通の。どこからどこまでかを指示して書く。1文字単位。
ブロック
1段落(空行と空行の間)を一度に処理。段落のどこかに書けばいい。
ページ
1ページを一度に処理。ページ属性として書く。
利用者ごとに書いた言葉、編集したページ名を記録。

これらを集めたページ利用者ポータルページとして、そこにAdSenseを貼る。

使われ方の違いは「どう書くか」だけの違い。

1行ごとに指示を書くか、1ページにまとめて指示するか。

そのほか、示中のページとその周辺ページリンクでつながっていたり、親にあたるページ)のキーワードを反映させたり。

内部では渡されるデータの長さと呼び出される回数が違うだけ。

複数行をまとめて扱う必要のある場合、などはページブロックじゃないと。

Google計算呼び出し Edit


埋め込みページを使って。

Google計算機能の答えだけ残して、埋め込み

(式も残すオプションがあってもいい)

特別に行なうことはパラメーターをGoogleを渡すことと、答え以外のフィルタリング。

実装 Edit

{Google計算:一足す一} → '一 +一 = 二' または '二'

時刻だけ書いたら同じページに書かれている日付を加味 Edit

Googleグラフ呼び出し Edit


検索時の同一性評価で、足りない情報を同じページから取得。

時刻だけの現には同じページにある日付を。同じページに日付だけの現がないなら日付時刻から日付を流用。

計算機と同じようにグラフ呼び出しも。

足りないフィールドは同じ(近い)ページから取得。

Wikiなので情報は非定。補える場合は少ないし重複がある。

→足りない情報を補うための機能ではなく、近い情報を加味する基本的な機能で。

機能/included Edit


プラグインはそこにパラメーター履歴を残して置けばいい。

依存されているページから依存しているページ示する機能はサイトをまとめる上で便利。

インスタンス Edit


というか、設定を複数用意可能に。

同じプラグインでも設定ごとに異なるWikiNotationを当てて、使い分けできるように。

→ relatedにしていい。

プラグイン側で設定ページをパラメーター化すればいい。

WikiNotationの記述で、Notation設定を抱き合わせにすれば実現可能。

フレームワークでやる必要はない。

複数行パラメーターの書き方 Edit


複数行をプラグインに渡すには、置き換えと埋め込みページが良さそう。

3態 Edit


WikiText→オブジェクト→HTML

…をプラグインごとに行う。出力はそのままレスポンスに含める。

機能/InterInclude Edit


WikiNotation設定に依存しない基本的なWikiNotation)をHTMLに変換するためのライブラリを用意。

これで他のWikiNotationと変換結果を統一。

埋め込み

よそのWikiのページであっても埋め込み

全てURIで

20091101202939.png

HTMLのメモ化プラグインごとに。
PageAlias
別名。内容が1つ、ページ名が複数。ハードリンクのようなもの。内容はPageでもInterPage(エクスポート形式のPage)でもいい。
内容がInterPageの場合でも、PageAliasを編集したときにInterPageに反映させたい。

時間がかかるので遅延処理。

オブジェクトの保存はバージョニングのこと。

ページ属性次第で保存するかしないかが決まる。

保存しないのは特殊なページ

ページがコンポジション Edit


ページプラグインのコンポジション。永続化と復帰を単純化。

機能/New! Edit


リンクは1つのオブジェクトにしたほうが都合が良い。

…が、機能が低下するので却下。

永続化と復帰が複雑になる。

プラグインの展開タイミング Edit


ページ特有の解析処理(利用者登録など)の前か後かはプラグインの実装次第で決まるように。

ページ特有の処理の前に展開すれば展開後のテキストも解析されることになる。

ページ/名前に付く”New!”はリンク。そのページの更新差分ビューへ。

New!をクリックするとどこがNewなのか見られる。

includeのように他のページを取り込むプラグインを使えば、任意のページ利用者登録ページに取り込んで一括登録できる。その代わり取り込まれるページ管理者権限でしか編集できないようにしなければならない。など利点と欠点がある。

"New!"より”up”がいい。

プラグインの出力はそれ以上処理しないので、自動リンク埋め込みの展開などはプラグイン側で行なう。

WikiNotationプラグイン呼び出し)のパラメーター部分にWikiNotationがあっても処理するのはプラグイン。それ以外はページが処理。

これでページ/編集/HTML書き込み[?]埋め込みと展開を邪魔しないようにできる。

プラグインの出力はWikiTextではなくHTML。そのままレスポンスの一部になる。

最近の変更量に応じた強調にする。少ないと"new?", 多いと"NEEEEEEEEEEEEEEEEEEEEEEEEEWWWWWWWWWWWWWWWWWWWWWWWW!!!!!!#!!!##&&###&#########!!!!!!!!!"

を量に応じた長さで。カラーバーとかn文字変更とか要らない。

プラグインの処理のうち共通部分に埋め込みの展開を置いてもいい。

メタシンボル埋め込みで動的なパラメーター指定ができるが、これを全プラグインの仕様にしたいので。

機能/Pager Edit


AutoPagerを機能として提供。

そのページだけをページング。(継承されるならそのページも)

AutoPagerizeも。AutoPagerize向けSITEINFOを書いて。公式wedataでなく対象サイトに書く方法があればそちら優先。

機能/POD Edit


PODのような、WEB(SimpleWEB)のようなプログラム記法

を、閲覧時に整形、示。

それと、キーワード強調などのプリティ・プリンティング。

と、それからコードを取り出す(それ以外をコメント化)ツールを。

記法をあてるなら段落の先頭で。段落ごと。

機能/QRコード Edit


HTMLだけで描画されるQRコード。

テーブルで。

画像を扱うライブラリがなくてもいいように。

カラーコードも。

これで任意の文字列をQRコード化できる記法を。

見出しページ名をQRコード化したい。

パーマリンクさえあればいい?あとはブラウザー拡張で。

X内で生成するならページフッターに。パーマリンクに添える。

機能/RSSバー Edit


機能

ページごと(章ごと)に編集された時刻を刻む。

機能/TODO Edit


チェックボックスと日付になる。

チェックボックスは状態が変わるときに送信、状態を永続化

日付を現在日時に変更。(間違ってチェックを入れたら履歴を遡ることになる)

その場で編集するためのボタンも付けたい。

シングルクリックで1行選択になるようにも。

機能/URI Edit


URIとしての文字列を記法

これを使うとURLエスケープされた文字列が閲覧時にURLデコードされたり。

サイト内URLは置き換え。

ページ名でもリンクするので、サイト内を指す(URLエスケープされた)URLはページ名に置き換え。元々URLにはページ名が含まれているので置きかえても差はない。デコードするくらい。

機能/yetlist Edit


まだ無いページのリスト。

呼び方
  • WantedPageList
  • WantedPages
  • yetlist

条件付きWantedListが欲しい。特定の階層だけなど。Wiki構築のため。

これに限らずページ名を制限したいときがあるはず。

ページ名の指定でワイルドカードを使えるようにすべき?
  1. ページ名の指定で複数のページを一度に指定できるようになる
    1. ページ名によるリンク自動リンクなど)でリンク先が複数になる

機能/★ Edit


スター。★。コレクション用。付けるとそのページコレクション

ページを「カートに入れる」ようなもの。

コレクションは複数あってもいい。

の色を変えたり、ラベル付きのカートを用意したり。

機能/お絵かき Edit


手書きできるなら背景色は透過。

テキストと同じ背景になるようにする。

Googleドライブを併用すればアプリを用意しなくても済む。

UIのシームレス感はないけど。

機能/ここに追加 Edit


「ここに追加」リンク

章扱い。

追加すると新しい章を前か後に追加する。

編集するのは…

…の2つ。

新しいページはともかく、機能を呼び出しているページ編集をどう組み込むか。

機能を呼び出しているページ編集する。ここに章を書き足すのと同じ処理をすればいい。

機能/はてなWordLink Edit


はてなWordLinkから受信。送信するデータは無い。

自動リンクの対象をはてなに問い合わせる。得た言葉を新規ページ作成リンクやコピペしやすい形に。

ここから着想を得られるように。

使い方は

機能/はてなハイク Edit


Twitterから取り込みするなら、はてなハイクからも。

ただし、はてなハイククライアントがいろんな端末で使えるようになってないと利点なし。

はてなハイクAPI一覧 - Hatena Developer Center

機能/はてなブックマーク Edit


設置すると、そのページやサイトのブックマークエントリーを示。

コメント付きなので、コメントをシェアできる。ブックマーク利用者編集者への意見に。

機能/もっと読む… Edit


下位ページには「もっと読む…」を。

最初から示する範囲はどう決めるか?

→テキスト内に「---ここまで---」を。

複数あれば最も末尾方向にあるものを使用する?

(最初から示する範囲を広くするように)?

参照するほうのページ機能

機能/アイコン Edit


クリックするたびに変化するアイコン

どのアイコンかはページに記録。

□ → ★ → チェックボックス(空) → チェックボックス(済) → □

…など。

クリックするたびにページが更新されるので、それを避けるためにリストから選択するというのも。
□|▼

…のようなドロップダウンリスト付きのアイコンで。アイコン部分はトグル切り替え。ただし示によって変化の仕方が異なる。
  • □ → ★ → □
  • チェックボックス(空) → チェックボックス(済) → チェックボックス(空)

ドロップダウンから選択するとトグルで出てこないアイコンも選択可能。

機能/イメージマップ Edit


イメージマップの作成。示。

作成はアップロード済みイメージやURLを指定するところから。

イメージ上でドラッグか、2回クリック。矩形領域だけ作成可能。ただし重ね合わせも可能に。重ね順はリスト示でそこで順序とジャンプ先変更。

イメージ以外の情報はこの機能のパラメーターになる。それとイメージの場所も。

イメージの場所の代わりにdata:スキーマのURIも可能に。

ジャンプ先がクライアント側スクリプトのトリガーになっていて、イメージマップのクリック→ポインター位置にセクションの内容をバルーン示、なども。

機能/インデント Edit

  • ブロック要素としては枠を作る。
    枠無しも可能。
  • インライン要素としてならスペースを作る。
  • 改行は続けた分だけ行を空けるように。

:i/テキストで図を描くツール

機能/カウンター Edit


パラメーターにページセットやなにか列挙できるものを受けて要素数を示。

テキストなら文字数。

その他のでも何かしらを数える。

順序付きリストで一覧示することでも代用可能。

機能/文字数

機能/文字数 Edit


文字数を数える。

条件

これだけの実装で章の数や使用されている機能数なども分かる。

機能/カウンター
  • -----------------------------------------------

文字数示はよその文字数制限のあるサービスに移動させるときに有用。あまり使わない。

文字数に目標があるときの進捗示として利用したり。この場合は複数のページの合計を見たい。下位展開範囲の合計文字数をテキスト部分だけ/それ以外を含む値を示。

機能/カレンダー Edit

2007?/08?
123?4?

数字部分はリンク

1は「2007/08/01」というページへのリンク

「2007」というページには章として「2007/08」と「2007/08/01」と「2007/08/02」が含まれている。

さらに、「2007/08」には「2007/08/01」が含まれる。

曜日も検索リンクだと面白い。

ライフハックに使えそう。

機能/キーワード強調 Edit


ページ内検索時に見つけた言葉を強調してアンカー付け。アンカーは目次に含める。

目次には前後の言葉も併記。リンクも併記。

強調をOFFにするリンクページの冒頭に用意。ワードごとにON/OFF。

キーワードの目次も。位置が分かるように通常の目次の中に強調部分を挿入して。

機能/キーワード強調/引用時のマーカーとして Edit


引用したい箇所を強調してURI化。canonicalなURIには含めないこと。

ドキュメントに手を加えずに一部だけ強調できる。

テキスト選択から始めるようなUIも。選択してからキーボードで修正できるようにして。

機能/クラスタリング Edit


共通部分を一覧できるようにする機能
  1. ページセットを与えられる
  2. 同じ見出しを集める
  3. 左側に重複数の多い見出し
  4. 左の見出しを選ぶと、その見出しを持つページの、その見出し部分だけを一覧示。

ページに定を当てはめている場合に有効。

必ず「概要」を書くとか。

機能/クリップボード Edit


クリップボード、あるいはペーストボードのような一時領域。

ページ内容やページ名を集めるときにここに追記。

自分用のページに書いておけばいいが、それをやりやすく。

サイドバー的にページ端に常駐。取り出しを他のページでできるように。

章を選んでカットまたはコピー、ページ移動後ペーストしたい。

カットはコピー+削除でもいい。
  • 文字選択、ボタン押す→クリップ
  • 文字選択、ドロップ

などでクリップしたい。

貼るときはテキストエリアでクリップ選択、テキストエリアのキャレット位置に貼り付け、

またはドラッグアンドドロップ。

見た目をデスクトップのクリップボード拡張より豪華にしないと意味が無い。

WikitextではなくHTMLで見せるとか。

コピー元へのリンクがあるとか。

機能/ジオタグ送信 Edit

機能/ソート Edit


渡されたデータをソート。
  • 区切り文字(改行可能)
  • データ(テキスト)

…を渡す。

ソート済みのテキストを返す。

文字列置換機能と組み合わせて、,区切りを改行区切りのソート済みリストに。など。

ページ/要素でも。

ページセットや、ページ/要素の集合でも?

機能/タグクラウド Edit


タグクラウドの文字の大きさを濃淡示にしたグラフ。
2007
Jan.Feb.Mar.
タグ1   
タグ2   
  • タグの大きさは現在の大きさ
  • いつ大きくなったかが分かる。
  • 記録が必要
    タグ集計ログを残しておかないと。
  • タグ名は現在の大きさで示。
  • タグ示の大きさに反映するもの
    • 最近の更新状況(新しい更新ほど大きく?)
      → これは色で示したほうがいい。
    • 情報量
      タグの数だけではページの長さを反映できないので。データ量を数に加味する。またはデータ量合計だけで計算、数を無視する。

時間のスケールはオリンピックイヤーごと、年、1月始まりの半期、四半期、月、月内の週、日、0:00始まりの半日、時、1/4時間。

の中から2つを選択。小さいほうのスケールで集計、濃淡示。大きいスケール(上記例の"2007")は小さいスケールの説明でしかない。


入力:WikiText →
ページWikiNotationの解釈、オブジェクト化。
プラグイン自身の処理と自動リンクプラグイン次第)

→ 出力:HTML

導入 Edit

  1. ファイルコピー
    所定のサブディレクトリは1つのプラグイン
  2. 設定ページ作成
    ページ/名前フレームワークによって決まっている。

    できれば大きさや面積で現したほうが分かりやすい。

    → グラフ?

導入は「置いて書く」 Edit

  1. サーバーにファイルを置く
  2. Wikiに何か書く
    普通のタグクラウドならレイアウトに注意。

    幅が広いと行間が調整されて整然としてしまうので、1行を短く。複数列に入れればいい。

これで使えるように。

他に必要なことがあれば、この後にメッセージが見えるように。

機能/ダウンロード Edit


プラグインの出力がメッセージになるか、プラグイン一覧かプラグインページメッセージ出力。

ページの本文を記法付きテキストとしてダウンロード。

1行目はページのタイトル。(…なのはページと同じなので、結局ページをそのままダウンロードするのと同じ)

ファイル名はページのタイトル。ルートからのフルパスにあたる完全修飾名。

管理者だけが読めるメッセージにしたいときは?

管理者宛の親展メッセージできればいい。呼ばれるたびに送信。数を制限するならプラグインが自粛。

プラグインは部品 Edit


プラグインは部品であるべき。

組み合わせる余地が要る。
  • tag.inc.phpのように固いものや大きなもの、応用の利かないものはまずい。
  • ツール化しないように。
    ツールページ+プラグインで。

    アプリケーションはWiki全体で。

    特にプログラムコードをダウンロード。ファイル名の変更と配置さえすればそのまま動かせるように。

機能/テキスト出力 Edit

投稿時展開するものは要らない Edit


投稿時展開するくらいなら編集時にボタンなどで展開後のテキストを挿入した方がいい。

MediaWikiの~~~~のようなもの。

そういったボタンを使えないクライアントにはただの文字列を提供。編集ページを開いた時点で展開しておく。それをコピペ。量が多くなるのであまり一度に用意できない。

XML、RSS以外にもテキストブラウザー用の出力を。

機能/テンプレート生成 Edit

その他のプラグイン Edit


パラメータには…
  • 入力するページ(複数)
  • 何文字以上の共通部分を返すか

…を。

設計 Edit


プラグインというクラスは作らない。

記法(WikiNotation)と同じ扱い。X/PageElement[?]

機能/ナビゲーションバー Edit


WikiNotationはネスト可能。

独自データをページに保存可能。ページに残すので履歴付き。

ナビバーには「ホーム」を置きたい。

「ホーム」はサイト内の好きなページ利用者設定で。ゲストの場合はサイト設定による。

プラグインのアンインストール方法は?しやすく

しやすくする以上のことはできない。

スペース代表を反映させたい。

PageElementをオブジェクトとして永続化する場合、Pageと一緒にということになる。

動的データはPageが持つWikiTextからすべて作成可能。

PageインスタンスはWikiTextから生成したPageElement構造体。

機能/ページ生成 Edit


静的なページを自動生成するもの。

利用者による編集と同じで、ページを更新するときは履歴を作るのが基本。

でも、PageElementの設定(PageElementのコードで定義)で履歴を作らないことが指示されていれば作らない。

展開は閲覧時 Edit


閲覧時展開

置き換えない。

HTMLに置き換えてもHTMLエスケープしてしまうので。

ずっと動的に展開。

頻出語を検出。静的ページにすることを提案。

メタシンボルの類も同じ。他のプラグインと同様に。

Chain of Responsibility Edit


ユーザーが直接呼び出すタイプのプラグインはChain of Responsibility。

範囲を限れるように。

ユーザーの個人ページからのみ検出など。

→ SNSに。

クエリーはプラグイン名とページ名を指定するのでなく、やって欲しいことを。

同じクエリーでも導入されているプラグイン次第で別の処理が行われるかも知れないし、いくつのプラグインが反応するかも変わってくる。管理次第。

機能/ログ Edit


これはWikiが正しく構築されていれば正しく動くし、間違っていれば結果(ページ出力)にれるので分かりやすい。対応付けを厳格にすると設定が難しくなるし、後から付け足した設定で以前の設定が無効になることもあるので、それを回避するのが狙い。

パフォーマンス計測用ログ。通常のクエリーにこの機能呼び出しを付加して、その処理が終わるまでの時間を示。

これをWiki上で。

フレームワークもChain of Responsibility。

ページプラグインはコンポジションに Edit

機能/体裁 Edit


Notationオブジェクトは書くたびにインスタンス生成。

リファレンスだけを増やしたいときはPukiWikiでの「includeプラグイン」のような特別な方法で。

どのプラグイン Edit


プラグイン使用時の記述はプラグインすキーワードと、プラグイン指定のキーワードで。

1つのキーワードで複数のプラグイン呼び出し可能。

処理できるプラグイン1つが処理する。

見せ方を変えるだけのもの。

HTMLテンプレートをWikitextにしたような。

パラメーターは複数あっていい。テンプレートが受け取れるだけ。

処理可能かどうかの判定はプラグインごとに優先順位ありで、プラグイン内に優先度を記述しておく。

段落単位で体裁を変えられる。

ほかの機能の出力をこのパラメーターにしたり。

コメント投稿の一件あたりの体裁を決めたり。

使い方2種類 Edit


ls→ページ名リストを生成。パラメーターとしてはページセットを生成。

左右を選んで吹き出し示。

左右両方、左右どちらでもないというのも選択可能にして。

書かれた場所…コンテキスト文脈文脈次第でが変わる。意味は変わらない。使いにくくなるので。

使い方が2種類あっても実体は同じ Edit


どちらの使われ方でもWikiNotationを返す。それが何に埋め込まれるかはフレームワークが決める。

吹き出しの形を選べてもいい。

実装はインターフェイス。

イベントハンドラーのようなもの。

機能/個人用メモ Edit


ユーザーからのリクエストで呼ばれるだけのプラグインでも、ページに書かれたときに自身を呼ぶリンクやボタンを生成するようにすれば使いやすくなる。

→ :i/下書き[?]

:t/クリップボード

リクエストからの直接呼び出しでもネスト可能に Edit


PukiWikiのコマンドプラグインのように、ページに書かずに使う場合でもネスト可能に。一時的なページを生成してもいい。

自分の投稿を他のページ示。

自分だけのコメント

またはデリゲート可能に。最後に呼ぶもの以外はデータコンテキスト

URLクエリーは一時的ページ Edit


URLクエリーもページ

同じように解析、展開。

使い方も実装も統一できる。

閲覧している利用者利用者ページをサイドバーなどに埋め込めばいい。

機能/動的なページ名を使って。

気に入らない見解を書いておくとか。

ページ名横にアイコンリンク自分がよく使う機能へのリンクを置けるとか。閲覧時展開記法も有効で、閲覧中ページを操作するリンクになっているとか。

検索語をDanglingLink

検索語を明示的リンク化して、個人ページにリストアップ。存在しないならDanglingLinkページ作成へのリンクとなる。

検索語は公開されないものなので個人ページに。

MVC Edit

M
いくつでも。(複数クラス、複数ファイル)
名前などすべて利用者の任意。
V
いくつでも。
Mと同じように任意。
C
プラグインのエントリーポイント。
プラグインのMとVを呼び出す。

名前に規則あり。フレームワークから呼び出しやすくするため。

C(前)とC(後)がある。

ページ作成/どこに書くか迷っている時の検索で活用。

追加先が見つからなかったとき、このリストがページ名候補になる。
フレームワーク1.C(前)2.M、Vなど
3.子のC(前)4.子のM、子のVなど
5.子のC(後)6.子のM、子のVなど
7.C(後)8.M、Vなど

深さ優先の呼び出し。

ページに記述されたとき、Chain of Responsibilityで Edit


WikiNotationに分類されるものも含めてChain of Responsibility。

機能/分析 Edit


ただし、高速化のため1文字程度を各プラグインから提出してもらう。

それらを事前判定に使う。

その判定の後に見込みのあるプラグインを呼んで本判定をしてもらう。

Wikiを分析、再編するためのツールを。
 

MediaWiki特別ページ(SpecialPages)も参考に

:i/参考に/Semantic MediaWiki#o4b637f8

Wiki上での設定でWikiNotationを変更できるなら、プラグインの追加手順は
  1. ログラムファイルを置く
  2. WikiNotation定義に追加
    の2ステップ。ただし、プラグイン呼び出し用の汎用WikiNotation + プラグイン名で呼び出すならWikiNotation定義は要らない。

トリガー指定 Edit


いずれもフィルタリングよりソートのほうが望ましい。

上位を示すれば良い。下位も見ることはできるように。

ページに対してできることは章に対してもできるようにしたい。

章を章として扱えれば容易?

検索での実装

検索機能で柔軟に実現できる。

ページにはデータ量などのデータが埋め込まれるようにしておく。

(これをリクエスト時に作られるページにしてもいい。データ量を返すコマンド式機能で得られるページ(「name:トップページ,size:10000」などと書かれている)を使って)

ソート部分を指定した検索ワード「size:([0-9]+)」を与え、数値部分をソート。

検索機能とクエリー1つで分析ページを1つ作れる。

コマンド式機能を指定するのはどうやって?

→ size:でsize機能呼び出し。…のように:を付けて指定。機能名:検索ワード

ページXML形式に変換するような機能があるなら、それを利用すれば良い。

この検索条件は予め記述しておくものになるので、書きにくくても良い。

ページ/要素での実装

URIパラメーターで呼び出せるページ/要素で(PukiWikiでURIに付けるcmdやpluginのようなもので)。ページ/要素なのでページ上に配置することも可能に。

機能ごとに専用のページ/要素を作ることになる。

専用のプログラムが必要なものばかりなのでそれでいい。

機能/前後のページ Edit


前後のページへのリンクになる。閲覧時展開

並び順はディレクトリ内でページ名順に並べたときのもの。

前後ページが無いときは淡色示で無効化。

日記などで使用できるように。

機能/即投稿 Edit


Wiki内のどこからでも投稿するための入力欄。

機能/地名 Edit


地名はGoogleに任せるのがいい。

InterWikiNameで。

「地図:」とか「場所:」とか。

自動リンクしたいなら、都、道、府、県、市、群、字、村などを目印に区切り文字間をまとめてリンク。Googleへのリンク

機能/大きくする Edit


文字サイズを相対値指定で変更。

見出しのように
+

の数で後に続くインライン要素の示が大きくなるように。

文字以外も。
++++TODO:…

でチェックボックス付きの特大文字、とか。

インライン要素の属性を変える機能

だからTODO:…から+の数を参照できるということに。

機能/定着する文字 Edit


書いてすぐなら淡く示。

newとは逆。新しいと淡く、古いと通常示。新しいからといっても強調にはならない。

推敲するような箇所に。事実ではなくアイデアを書くとき向け。

追記用。

定着しきったときに機能呼び出しを無くしたいが、ページの定義次第。

利用者以外がページ/内容を更新して良いのなら、自動的に機能呼び出し削除。

トリガーは更新時。一部でいい。ただし定期的に。定期的に更新するか、閲覧時に判定。

機能/引用補助 Edit


読むためのノートのために。

閲覧、または専用モードで

タップして選択、新規作成、編集モードへ移行すると選択していた文字が入力済み。

クリップボードで。

ラインマーカーが欲しい。

引用をするためなので、複数ページに複数マーカーを引いて(WikiTextでなく)テキストとしてコピペしやすい形に。

Kindleにある機能

ページを集めるショッピングカートのようなもの。

そこにページの一部を複数保存。保存場所はブラウザーか自分のユーザーページに。

カートから引用元(各ページ)にリンク

ユーザーページ永続化できるなら、閲覧者がWikiを分類することもできる。

実装方法は…
  • ページを小窓示してそこにコピペ
    ただ複数ページ示するだけ。それほど支援にならない。
  • 小窓をカートにする
    コピペすると段落生成。×ボタンがあってすぐ消せる。ドラッグ・ドロップで並び替え。カート内から引用元へリンク
  • 小窓と連携
    小窓があるときに本文を選択状態にするとマーカーになるとか。カートに自動追加されるとか。引用モードになる。

他にはよそのツール連携。そっちに任せるとか。

機能/承認ボタン Edit


モデレーション編集/承認ではなく、権限が欲しいというリクエスト。

管理者とのコミュニケーションツール

管理者メッセージを送るだけのほうが良さそう。通常の操作で申請に応える。この機能メッセージを的確に送るための支援機能ページの閲覧は管理者へ、ページの作成は作ってくれそうな利用者利用者全員に向けるもの。単一の機能ではなく、いろいろなコミュニケーション支援機能になる。

閲覧、または専用モードで

タップして選択、新規作成、編集モードへ移行すると選択していた文字が入力済み。

クリップボードで。

承認ボタン

管理者でなければできないことがあるときでも、申請なら誰でもできる。

申請は管理者向けページに集まる。管理者は「承認ボタン」で実行。申請が集まるページは公開しても構わない。
  • 申請はページ作成など。
    ページ作成が許可されているかどうかは確かめなくてはならない。
  • 実行に必要なデータが揃っていないときは承認ボタン非示。
    承認できない。

機能/時限ロック Edit


一定期間編集されないとロック

少数の利用者で運用する場合に。

その利用者全員にロック解除の権限が必要。

注目されなくなったページ(保守されなくなったページ)をロックするための機能

トリガーは時間と編集時。閲覧時に正しいロック状態を示するならそのときも。

ページが呼ばれたとき(閲覧、編集ほか)、最終更新から一定期間過ぎていればロック。(ページ/属性を更新)

ページ/属性の変更頻度が増える。

機能/歴史 Edit


サイトの年に出すようなイベントを登録。

作成時に参照したり、ページ/履歴でもの合間に示。

「サイト移転」とか。更新履歴上のコメントとして使えるように。

日時指定で当時のWikiを再現するときのマーカーにも。「サイト移転 時のウィキエンジンX」というサイト名にして。

タイムマシン

機能/疑似SSI Edit


ページ内のマークアップ位置に別プログラムの出力を埋め込む。

別プログラムを実行する条件を書ける。
  • 1日1回0:00を過ぎたら
  • 前回起動から5分過ぎていたら
    …など。

管理者の承認が欲しいので、条件・プログラムパスなどを含んだマークアップを管理者が作っておく。

実行順序 Edit


プラグインの実行順をURLクエリーに書かれている順ということにする。

同じトリガーを使うプラグインが複数ある場合。

ページに埋め込めるのはマークアップのみ。

ログラムパスや条件は管理者が決めたもののみ。

埋め込めるときに決められるようにも。

パスを任意にすればどんなプログラムも、条件を任意にすればいつでも何度でも、ということになる。

データの改ざん Edit


前のプラグインの出力は次のプラグインに入力される。

クライアントからの入力も書き換え可能。次のプラグインには書き換え後が渡る。

→ 別のシステムでログを生成しておいて、Xではそのログだけをインポートする仕組みにしたほうがいい。Xから起動はしない。

問題は出力と入力のデータを統一すること。

文字列か、文字列の集約。

HTMLで書かれたページの断片。

機能/自動フォーマット Edit


自動認識で良い感じにフォーマット。

ページ単位の機能ページ属性に入れればページ全体をフォーマット。

とか、リストとか。見出しとか画像埋め込みとか。

自動フォーマットしたページを他のページに埋め込んで使用。

自動フォーマットの機能とかも。

機能/自動更新 Edit


:i/自動処理はbotで

内容を自動整頓。

データを一定量だけ残してあとは削除したり、…他。

方法

を揃える必要がある。ページの内容はテキストなのでフォーマットを整えることに。

ページ全体を1行1レコードのデータ列として扱う。

データを更新するときは…
  1. ページを呼び出す。
    ページ全体がデータ列。機能の処理をするにはこのデータ列を参照しているページを呼ばないと。
  2. データを集めたり、フィルタリングしたり。

…このページ呼び出しを定期的に。

機能/要約 Edit


1画面内の文書を要約

要約度合いをスライダー操作。
  1. 全て
  2. 複数行段落の示を圧縮
  3. 複数行段落や複数行箇条書きを1行だけに
  4. 見出しだけ(つまり目次

…といったように短く示。

スライダーページスクロールと無関係に示。

要約中はどこかをダブルクリックすれば’’そこだけ’’要約解除。「そこだけ」なのは眺めるだけでなく要約から探して編集できるようにするため。

機能/計算・電卓 Edit


Googleのように。

Googleの結果を埋め込んでもいい。

改行などにとらわれないように。

自由な書式で。

単位付き計算も。不明な単位はNotationの書き損じと同じように対処。

単位変換
  • 昭和21年を西暦に
  • 昭和21年+12ヶ月を西暦で
  • 平成元年-0.75年を大正で

:i/Google計算機の結果に置き換え

機能/記法リスト Edit

機能/誰かが編集 Edit


「誰かが編集中」と通知

編集者が編集の衝突を予測できるように。

編集画面のどこかに埋め込んでおけばいい。

定期的に自動更新。

データは毎秒変わるので、カウンターと同じ領域に。

頻繁にリセットされるカウンター。

編集中なので、警告はしない。何人いるかを示するだけ。

閲覧中が何人かというのも載せていいかも。

編集中の最新版かどうかも載せていいかも。

誰かに先に編集されたことが分かる。これも警告ではなく示を変えるだけ。

機能/集合操作 Edit

  1. HTMLを渡す(複数)、操作も指示。
  2. リスト(<li>)などを要素として、1つのHTMLを1つの集合にする。
  3. 和や積を得て、リストとして出力。
    ※入力と出力のを同じに。

書式は…
&...({ページ}などHTMLに展開されるもの1,∩,HTML2,∪,HTML3);

とか
&...(HTML4,/,&...(HTML1,∩,HTML2););

とか

ページセットは?ページセットを扱うとしたら…?

機能/ Edit