「プラグイン/」で始まるページを作成
思い付き段階の各種機能。そのうちフレームワークにふさわしくないもの。
機能の実装はページ/要素、それをシステムに導入する仕組みはプラグイン。呼び出すときはNotationText上に記法を書く。
→ 記法
→ X/Element[?]
目次 †
- 目次
- 関連
- プラグイン周辺のタグ
- 機能/favicon.ico
- 機能/fotolife
- Google AdSenseを組み込む
- Google計算呼び出し
- Googleグラフ呼び出し
- 機能/included
- 機能/InterInclude
- 機能/New!
- 機能/Pager
- 機能/POD
- 機能/QRコード
- 機能/RSSバー
- 機能/TODO
- 機能/URI
- 機能/yetlist
- 機能/★
- 機能/お絵かき
- 機能/ここに追加
- 機能/はてなWordLink
- 機能/はてなハイク
- 機能/はてなブックマーク
- 機能/もっと読む…
- 機能/アイコン
- 機能/イメージマップ
- 機能/インデント
- 機能/カウンター
- 機能/文字数
- 機能/カレンダー
- 機能/キーワード強調
- 機能/キーワード強調/引用時のマーカーとして
- 機能/クラスタリング
- 機能/クリップボード
- 機能/ジオタグ送信
- 機能/ソート
- 機能/タグクラウド
- プラグイン
- 実装
- 設計
関連 †
検索:プラグイン
プラグイン周辺のタグ †
Array機能/favicon.ico †
favicon.icoもアップロードされたファイル。
特定のファイルを更新する機能でファイルをアップロード。
機能/fotolife †
はてなのfotolife記法を使えるように。
画像を貼るときの記法でfotolife記法を書けるようにした方がいい。
Google AdSenseを組み込む †
利用者ごとに書いた言葉、編集したページ名を記録。
これらを集めたページを利用者のポータルページとして、そこにAdSenseを貼る。
そのほか、表示中のページとその周辺ページ(リンクでつながっていたり、親にあたるページ)のキーワードを反映させたり。
Google計算呼び出し †
埋め込みページを使って。
Google計算機能の答えだけ残して、埋め込み。
(式も残すオプションがあってもいい)
特別に行なうことはパラメーターをGoogleを渡すことと、答え以外のフィルタリング。
{Google計算:一足す一} → '一 +一 = 二' または '二'
Googleグラフ呼び出し †
計算機と同じようにグラフ呼び出しも。
機能/included †
includeの逆リンク調査。
relatedのように、include機能で呼んでいるページを列挙。
依存されているページから依存しているページを表示する機能はサイトをまとめる上で便利。
→ relatedにしていい。
機能/InterInclude †
埋め込み。
よそのWikiのページであっても埋め込み。
全てURIで。
内容がInterPageの場合でも、PageAliasを編集したときにInterPageに反映させたい。
時間がかかるので遅延処理。
機能/New! †
ページ/名前に付く”New!”はリンク。そのページの更新差分ビューへ。
New!をクリックするとどこがNewなのか見られる。
"New!"より”up”がいい。
最近の変更量に応じた強調にする。少ないと"new?", 多いと"NEEEEEEEEEEEEEEEEEEEEEEEEEWWWWWWWWWWWWWWWWWWWWWWWW!!!!!!#!!!##&&###&#########!!!!!!!!!"
を量に応じた長さで。カラーバーとかn文字変更とか要らない。
機能/Pager †
AutoPagerを機能として提供。
そのページだけをページング。(継承されるならそのページも)
AutoPagerizeも。AutoPagerize向けSITEINFOを書いて。公式wedataでなく対象サイトに書く方法があればそちら優先。
機能/POD †
PODのような、WEB(SimpleWEB)のようなプログラム表記法。
を、閲覧時に整形、表示。
それと、キーワード強調などのプリティ・プリンティング。
と、それからコードを取り出す(それ以外をコメント化)ツールを。
記法をあてるなら段落の先頭で。段落ごと。
機能/QRコード †
HTMLだけで描画されるQRコード。
テーブルで。
画像を扱うライブラリがなくてもいいように。
カラーコードも。
これで任意の文字列をQRコード化できる記法を。
見出しやページ名をQRコード化したい。
パーマリンクさえあればいい?あとはブラウザー拡張で。
X内で生成するならページフッターに。パーマリンクに添える。
機能/RSSバー †
機能。
ページごと(章ごと)に編集された時刻を刻む。
機能/TODO †
チェックボックスと日付になる。
チェックボックスは状態が変わるときに送信、状態を永続化。
日付を現在日時に変更。(間違ってチェックを入れたら履歴を遡ることになる)
その場で編集するためのボタンも付けたい。
シングルクリックで1行選択になるようにも。
機能/URI †
URIとしての文字列を表す表記法。
これを使うとURLエスケープされた文字列が閲覧時にURLデコードされたり。
サイト内URLは置き換え。
ページ名でもリンクするので、サイト内を指す(URLエスケープされた)URLはページ名に置き換え。元々URLにはページ名が含まれているので置きかえても差はない。デコードするくらい。
機能/yetlist †
まだ無いページのリスト。
呼び方
- WantedPageList
- WantedPages
- yetlist
条件付きWantedListが欲しい。特定の階層だけなど。Wiki構築のため。
これに限らずページ名を制限したいときがあるはず。
ページ名の指定でワイルドカードを使えるようにすべき?
機能/★ †
スター。★。コレクション用。付けるとそのページをコレクション。
ページを「カートに入れる」ようなもの。
コレクションは複数あってもいい。
星の色を変えたり、ラベル付きのカートを用意したり。
機能/お絵かき †
手書きできるなら背景色は透過。
テキストと同じ背景になるようにする。
Googleドライブを併用すればアプリを用意しなくても済む。
UIのシームレス感はないけど。
機能/ここに追加 †
「ここに追加」リンク
章扱い。
追加すると新しい章を前か後に追加する。
編集するのは…
…の2つ。
新しいページはともかく、機能を呼び出しているページの編集をどう組み込むか。
→ 機能を呼び出しているページを編集する。ここに章を書き足すのと同じ処理をすればいい。
機能/はてなWordLink †
はてなWordLinkから受信。送信するデータは無い。
自動リンクの対象をはてなに問い合わせる。得た言葉を新規ページ作成リンクやコピペしやすい形に。
ここから着想を得られるように。
使い方は
- 検索結果にキーワードと関連語(ページ名から得たもの)を
- ls機能のように特定のページを渡すとそこに含まれる自動リンク対象をWordLinkから得る。結果は埋め込み。
- テキストボックスからこの機能専用のページへ。
- 特定の言葉と一緒に機能呼び出しを記述。(またはURLクエリーに付ける。)埋め込みか専用ページで表示。
機能/はてなハイク †
Twitterから取り込みするなら、はてなハイクからも。
ただし、はてなハイククライアントがいろんな端末で使えるようになってないと利点なし。
はてなハイクAPI一覧 - Hatena Developer Center
機能/はてなブックマーク †
設置すると、そのページやサイトのブックマークエントリーを表示。
コメント付きなので、コメントをシェアできる。ブックマーク利用者→編集者への意見に。
機能/もっと読む… †
下位ページには「もっと読む…」を。
最初から表示する範囲はどう決めるか?
→テキスト内に「---ここまで---」を。
複数あれば最も末尾方向にあるものを使用する?
(最初から表示する範囲を広くするように)?
参照するほうのページの機能。
機能/アイコン †
クリックするたびに変化するアイコン。
どのアイコンかはページに記録。
□ → ★ → チェックボックス(空) → チェックボックス(済) → □
…など。
クリックするたびにページが更新されるので、それを避けるためにリストから選択するというのも。
□|▼
…のようなドロップダウンリスト付きのアイコンで。アイコン部分はトグル切り替え。ただし表示によって変化の仕方が異なる。
- □ → ★ → □
- チェックボックス(空) → チェックボックス(済) → チェックボックス(空)
ドロップダウンから選択するとトグルで出てこないアイコンも選択可能。
機能/イメージマップ †
イメージマップの作成。表示。
作成はアップロード済みイメージやURLを指定するところから。
イメージ上でドラッグか、2回クリック。矩形領域だけ作成可能。ただし重ね合わせも可能に。重ね順はリスト表示でそこで順序とジャンプ先変更。
イメージ以外の情報はこの機能のパラメーターになる。それとイメージの場所も。
イメージの場所の代わりにdata:スキーマのURIも可能に。
ジャンプ先がクライアント側スクリプトのトリガーになっていて、イメージマップのクリック→ポインター位置にセクションの内容をバルーン表示、なども。
機能/インデント †
- 改行は続けた分だけ行を空けるように。
→ :i/テキストで図を描くツール
機能/カウンター †
パラメーターにページセットやなにか列挙できるものを受けて要素数を表示。
テキストなら文字数。
その他の型でも何かしらを数える。
順序付きリストで一覧表示することでも代用可能。
→ 機能/文字数
機能/文字数 †
文字数を数える。
条件
これだけの実装で章の数や使用されている機能数なども分かる。
→ 機能/カウンター
- -----------------------------------------------
文字数表示はよその文字数制限のあるサービスに移動させるときに有用。あまり使わない。
文字数に目標があるときの進捗表示として利用したり。この場合は複数のページの合計を見たい。下位展開範囲の合計文字数をテキスト部分だけ/それ以外を含む値を表示。
機能/カレンダー †
2007?/08? |
---|
月 | 火 | 水 | 木 | 金 | 土 | 日 |
1 | 2 | 3? | 4? |
数字部分はリンク。
1は「2007/08/01」というページへのリンク。
「2007」というページには章として「2007/08」と「2007/08/01」と「2007/08/02」が含まれている。
さらに、「2007/08」には「2007/08/01」が含まれる。
曜日も検索リンクだと面白い。
ライフハックに使えそう。
機能/キーワード強調 †
ページ内検索時に見つけた言葉を強調してアンカー付け。アンカーは目次に含める。
目次には前後の言葉も併記。リンクも併記。
キーワードの目次も。位置が分かるように通常の目次の中に強調部分を挿入して。
機能/キーワード強調/引用時のマーカーとして †
引用したい箇所を強調してURI化。canonicalなURIには含めないこと。
ドキュメントに手を加えずに一部だけ強調できる。
テキスト選択から始めるようなUIも。選択してからキーボードで修正できるようにして。
機能/クラスタリング †
共通部分を一覧できるようにする機能。
ページに定型を当てはめている場合に有効。
必ず「概要」を書くとか。
機能/クリップボード †
クリップボード、あるいはペーストボードのような一時領域。
ページ内容やページ名を集めるときにここに追記。
自分用のページに書いておけばいいが、それをやりやすく。
サイドバー的にページ端に常駐。取り出しを他のページでできるように。
章を選んでカットまたはコピー、ページ移動後ペーストしたい。
カットはコピー+削除でもいい。
- 文字選択、ボタン押す→クリップ
- 文字選択、ドロップ
などでクリップしたい。
貼るときはテキストエリアでクリップ選択、テキストエリアのキャレット位置に貼り付け、
またはドラッグアンドドロップ。
見た目をデスクトップのクリップボード拡張より豪華にしないと意味が無い。
WikitextではなくHTMLで見せるとか。
コピー元へのリンクがあるとか。
機能/ジオタグ送信 †
機能/ソート †
渡されたデータをソート。
- 区切り文字(改行可能)
- データ(テキスト)
…を渡す。
ソート済みのテキストを返す。
文字列置換機能と組み合わせて、,区切りを改行区切りのソート済みリストに。など。
ページ/要素でも。
ページセットや、ページ/要素の集合でも?
機能/タグクラウド †
タグクラウドの文字の大きさを濃淡表示にしたグラフ。
2007 |
---|
Jan. | Feb. | Mar. |
---|
タグ1 |
タグ2 |
時間のスケールはオリンピックイヤーごと、年、1月始まりの半期、四半期、月、月内の週、日、0:00始まりの半日、時、1/4時間。
の中から2つを選択。小さいほうのスケールで集計、濃淡表示。大きいスケール(上記例の"2007")は小さいスケールの説明でしかない。
プラグイン †
できれば大きさや面積で表現したほうが分かりやすい。
→ グラフ?
一般的に「プラグイン」と呼ばれているものと、それを呼び出すための書式(Wiki記法)をまとめて扱う。
→「WikiNotation」と呼ぶ。
インライン/ブロック/ページ †
3種類の型。
使われ方と出力の違い。使われ方はUIの範疇なので、プラグインでは出力だけ気にすればいい。
- インライン
- 普通の。どこからどこまでかを指示して書く。1文字単位。
普通のタグクラウドならレイアウトに注意。
幅が広いと行間が調整されて整然としてしまうので、1行を短く。複数列に入れればいい。
使われ方の違いは「どう書くか」だけの違い。
1行ごとに指示を書くか、1ページにまとめて指示するか。
機能/ダウンロード †
内部では渡されるデータの長さと呼び出される回数が違うだけ。
複数行をまとめて扱う必要のある場合、表などはページやブロックじゃないと。
CSV形式の表を貼り付けるにもページやブロックで表になるよう指示。テキスト加工が要らない。
実装 †
ページの本文を記法付きテキストとしてダウンロード。
1行目はページのタイトル。(…なのはページと同じなので、結局ページをそのままダウンロードするのと同じ)
ファイル名はページのタイトル。ルートからのフルパスにあたる完全修飾名。
複数行パラメーターの書き方 †
複数行をプラグインに渡すには、置き換えと埋め込みページが良さそう。
- 置き換え
plugin(l1
l2,p2)
WikiCreole式。
改行文字になる表現を使って。プラグインには改行文字が渡る。 - 埋め込み
plugin({{ページ}})
他のページを指すリファレンスを渡す。ページは埋め込みの仕組みを使って展開されてからパラメーターとしてプラグインへ。
4態 †
WikiText→オブジェクト(保存される)→HTML→キャッシュ(保存される)
…をプラグインごとに行う。
特にプログラムコードをダウンロード。ファイル名の変更と配置さえすればそのまま動かせるように。
機能/テキスト出力 †
キャッシュの保存はプラグインごとに。
XML、RSS以外にもテキストブラウザー用の出力を。
オブジェクトの保存はバージョニングのこと。
ページの属性次第で保存するかしないかが決まる。
保存しないのは特殊なページ。
機能/テンプレート生成 †
複数のページからテンプレート生成。
複数のページを与えると共通部分を返す。
diffと違い、順序を無視する。とにかく共通部分を。
プラグインはオブジェクト †
プラグインをページとコンポジション関係にして、ページのデシリアライズを単純化。
パラメータには…
- 入力するページ(複数)
- 何文字以上の共通部分を返すか
- 章
- リンク
…を。
…などは1つのオブジェクトにしたほうが都合が良い。
機能/ナビゲーションバー †
…が、機能が低下するので却下。
デシリアライズが複雑になる。
ナビバーには「ホーム」を置きたい。
「ホーム」はサイト内の好きなページ。利用者設定で。ゲストの場合はサイト設定による。
スペースの代表を反映させたい。
機能/ページ生成 †
プラグインの展開タイミング †
ページ特有の解析処理(利用者登録など)の前か後かはプラグインの実装次第で決まるように。
ページ特有の処理の前に展開すれば展開後のテキストも解析されることになる。
静的なページを自動生成するもの。
頻出語を検出。静的ページにすることを提案。
プラグインの出力はそれ以上処理しないので、自動リンクや埋め込みの展開などはプラグイン側で行なう。
プラグインの出力はWikiTextではなくHTML。そのままレスポンスの一部になる。
導入 †
- ファイルコピー
所定のサブディレクトリは1つのプラグイン。 - 設定ページ作成
ページ/名前はフレームワークによって決まっている。
範囲を限れるように。
ユーザーの個人ページからのみ検出など。
→ SNSに。
機能/ログ †
パフォーマンス計測用ログ。通常のクエリーにこの機能呼び出しを付加して、その処理が終わるまでの時間を表示。
これをWiki上で。
プラグインは部品 †
プラグインは部品であるべき。
組み合わせる余地が要る。
機能/体裁 †
見せ方を変えるだけのもの。
HTMLテンプレートをWikitextにしたような。
投稿時展開するものは要らない †
投稿時展開するくらいなら編集時にボタンなどで展開後のテキストを挿入した方がいい。
MediaWikiの~~~~のようなもの。
そういったボタンを使えないクライアントにはただの文字列を提供。編集ページを開いた時点で展開しておく。それをコピペ。量が多くなるのであまり一度に用意できない。
パラメーターは複数あっていい。テンプレートが受け取れるだけ。
段落単位で体裁を変えられる。
その他のプラグイン †
- ページ全体
閲覧時展開。内容とページ名 - 1ページ内の見出し全て
閲覧時展開。ページ名(省略可) - 1ページ内のレベル1見出し全て
閲覧時展開。Webcat Plusに渡せるような。
ほかの機能の出力をこのパラメーターにしたり。
コメント投稿の一件あたりの体裁を決めたり。
いろいろな体裁
会話。
FAQや一問一答のインタビューに。
左右を選んで吹き出し表示。
左右両方、左右どちらでもないというのも選択可能にして。
設計 †
Plug-inはネスト可能。
Decorator。
吹き出しの形を選べてもいい。
オブジェクトから展開済みテキストを得る。
Plug-inが独自にファイルを作るかも。
- →ライブラリでサポート
削除もしやすく。しやすくする以上のことはできない。
機能/個人用メモ †
書き換え(編集)はPageのテキストと複数ファイルに対して。
直後にオブジェクト群を再生成。
→ :i/下書き[?]
→ :t/クリップボード
版は?
→クラス定義に(テキストと複数ファイル)を残すこと。
オブジェクトは残さなくて良い(はず)。
差分はとれるか?→取れる。
自分の投稿を他のページに表示。
自分だけのコメント。
閲覧している利用者の利用者ページをサイドバーなどに埋め込めばいい。
機能/動的なページ名を使って。
&ref(): File not found: "Page-Plugin.png" at page ":i/機能";
Plug-inをオブジェクトとして永続化する場合、Pageと一緒にということになる。
動的データはPageが持つテキストからすべて作成可能。
クラス定義ではテキスト1つと複数ファイル。
インスタンスはテキストから複数Plug-in、そのままの複数ファイル+テキストということに。
→テキストからPlug-inを作って足すだけ。
気に入らない見解を書いておくとか。
検索語をDanglingLink化
検索語を明示的リンク化して、個人ページにリストアップ。存在しないならDanglingLink…ページ作成へのリンクとなる。
検索語は公開されないものなので個人ページに。
利用者による編集と同じで、ページを更新するときは履歴を作るのが基本。
でも、プラグインの設定(プラグイン内の定義)で履歴を作らないことが指示されていれば作らない。
展開は閲覧時 †
閲覧時展開。
置き換えない。
HTMLに置き換えてもHTMLエスケープしてしまうので。
ずっと動的に展開。
ページ作成/どこに書くか迷っている時の検索で活用。
追加先が見つからなかったとき、このリストがページ名候補になる。
メタシンボルの類も同じ。他のプラグインと同様に。
Chain of Responsibility †
プラグインはChain of Responsibility。
機能/分析 †
クエリーはプラグイン名とページ名を指定するのでなく、やって欲しいことを。
同じクエリーでも導入されているプラグイン次第で別の処理が行われるかも知れないし、いくつのプラグインが反応するかも変わってくる。管理次第。
Wikiを分析、再編するためのツールを。
これはWikiが正しく構築されていれば正しく動くし、間違っていれば結果(ページ出力)に表れるので分かりやすい。対応付けを厳格にすると設定が難しくなるし、後から付け足した設定で以前の設定が無効になることもあるので、それを回避するのが狙い。
MediaWikiの特別ページ(SpecialPages)も参考に。
→ :i/参考に/Semantic MediaWiki#o4b637f8
フレームワークもChain of Responsibility。
ページ─プラグインはコンポジションに †
MediaWikiの特別ページ(SpecialPages)のように。
Notationオブジェクトは書くたびにインスタンス生成。
リファレンスだけを増やしたいときはPukiWikiでの「includeプラグイン」のような特別な方法で。
どのプラグインか †
プラグイン使用時の記述はプラグインを表すキーワードと、プラグイン指定のキーワードで。
1つのキーワードで複数のプラグイン呼び出し可能。
処理できるプラグイン1つが処理する。
いずれもフィルタリングよりソートのほうが望ましい。
上位を表示すれば良い。下位も見ることはできるように。
処理可能かどうかの判定はプラグインごとに優先順位ありで、プラグイン内に優先度を記述しておく。
ページに対してできることは章に対してもできるようにしたい。
章を章として扱えれば容易?
検索での実装
検索機能で柔軟に実現できる。
ページにはデータ量などのデータが埋め込まれるようにしておく。
(これをリクエスト時に作られるページにしてもいい。データ量を返すコマンド式機能で得られるページ(「name:トップページ,size:10000」などと書かれている)を使って)
ソート部分を指定した検索ワード「size:([0-9]+)」を与え、数値部分をソート。
検索機能とクエリー1つで分析ページを1つ作れる。
呼び出し方2種類 †
コマンド式機能を指定するのはどうやって?
→ size:でsize機能呼び出し。…のように:を付けて指定。機能名:検索ワード
ページにXML形式に変換するような機能があるなら、それを利用すれば良い。
この検索条件は予め記述しておくものになるので、書きにくくても良い。
常時有効なプラグイン †
トリガーが内部にある。自動起動。
ページ/要素での実装
URIパラメーターで呼び出せるページ/要素で(PukiWikiでURIに付けるcmdやpluginのようなもので)。ページ/要素なのでページ上に配置することも可能に。
機能ごとに専用のページ/要素を作ることになる。
専用のプログラムが必要なものばかりなのでそれでいい。
実装はテンプレートメソッドの集まり。
機能/前後のページ †
前後のページへのリンクになる。閲覧時展開。
並び順はディレクトリ内でページ名順に並べたときのもの。
トリガーを備えるプラグイン †
WikiTextとして記述して使うもの。
前後ページが無いときは淡色表示で無効化。
両立もできる。
MVC †
- M
- いくつでも。(複数クラス、複数ファイル)
名前などすべて利用者の任意。
Mと同じように任意。
同プラグインのMとVを呼び出す。
名前に規則あり。フレームワークから呼び出しやすくするため。
C(前)とC(後)がある。
日記などで使用できるように。
フレームワーク | → | 1.C(前) | → | 2.M、Vなど |
→ | 3.子のC(前) | → | 4.子のM、子のVなど |
→ | 5.子のC(後) | → | 6.子のM、子のVなど |
→ | 7.C(後) | → | 8.M、Vなど |
深さ優先の呼び出し。
機能/即投稿 †
Wiki内のどこからでも投稿するための入力欄。
ページに記述されたとき、Chain of Responsibilityで †
WikiNotationに分類されるものも含めてChain of Responsibility。
機能/地名 †
ただし、高速化のため1文字程度を各プラグインから提出してもらう。
それらを事前判定に使う。
その判定の後に見込みのあるプラグインを呼んで本判定をしてもらう。
地名はGoogleに任せるのがいい。
InterWikiNameで。
「地図:」とか「場所:」とか。
自動リンクしたいなら、都、道、府、県、市、群、字、村などを目印に区切り文字間をまとめてリンク。Googleへのリンク。
Wiki上での設定でWikiNotationを変更できるなら、プラグインの追加手順は
- プログラムファイルを置く
- WikiNotation定義に追加
の2ステップ。ただし、プラグイン呼び出し用のWikiNotation + プラグイン名で呼び出すならWikiNotation定義は要らない。
機能/大きくする †
トリガー指定 †
見出しのように
+
の数で後に続くインライン要素の表示が大きくなるように。
文字以外も。
++++TODO:…
でチェックボックス付きの特大文字、とか。
インライン要素の属性を変える機能。
だからTODO:…から+の数を参照できるということに。
機能/定着する文字 †
書いてすぐなら淡く表示。
newとは逆。新しいと淡く、古いと通常表示。新しいからといっても強調にはならない。
推敲するような箇所に。事実ではなくアイデアを書くとき向け。
追記用。
定着しきったときに機能呼び出しを無くしたいが、ページの定義次第。
利用者以外がページ/内容を更新して良いのなら、自動的に機能呼び出し削除。
機能/引用補助 †
読むためのノートのために。
ラインマーカーが欲しい。
引用をするためなので、複数ページに複数マーカーを引いて(WikiTextでなく)テキストとしてコピペしやすい形に。
Kindleにある機能。
ページを集めるショッピングカートのようなもの。
そこにページの一部を複数保存。保存場所はブラウザーか自分のユーザーページに。
カートから引用元(各ページ)にリンク。
ユーザーページで永続化できるなら、閲覧者がWikiを分類することもできる。
実装方法は…
- ページを小窓表示してそこにコピペ
ただ複数ページを表示するだけ。それほど支援にならない。 - 小窓をカートにする
コピペすると段落生成。×ボタンがあってすぐ消せる。ドラッグ・ドロップで並び替え。カート内から引用元へリンク。 - 小窓と連携
小窓があるときに本文を選択状態にするとマーカーになるとか。カートに自動追加されるとか。引用モードになる。
他にはよそのツールと連携。そっちに任せるとか。
機能/承認ボタン †
モデレーションの編集/承認ではなく、権限が欲しいというリクエスト。
管理者とのコミュニケーションのツール。
管理者にメッセージを送るだけのほうが良さそう。通常の操作で申請に応える。この機能はメッセージを的確に送るための支援機能。ページの閲覧は管理者へ、ページの作成は作ってくれそうな利用者や利用者全員に向けるもの。単一の機能ではなく、いろいろなコミュニケーション支援機能になる。
承認ボタン
管理者でなければできないことがあるときでも、申請なら誰でもできる。
申請は管理者向けページに集まる。
機能/時限ロック †
一定期間編集されないとロック。
少数の利用者で運用する場合に。
その利用者全員にロック解除の権限が必要。
注目されなくなったページ(保守されなくなったページ)をロックするための機能。
トリガーは時間と編集時。閲覧時に正しいロック状態を表示するならそのときも。
→ ページが呼ばれたとき(閲覧、編集ほか)、最終更新から一定期間過ぎていればロック。(ページ/属性を更新)
ページ/属性の変更頻度が増える。
機能/歴史 †
サイトの年表に出すようなイベントを登録。
年表作成時に参照したり、ページ/履歴でも版の合間に表示。
「サイト移転」とか。更新履歴上のコメントとして使えるように。
日時指定で当時のWikiを再現するときのマーカーにも。「サイト移転 時のウィキエンジンX」というサイト名にして。
→ タイムマシン
機能/疑似SSI †
ページ内のマークアップ位置に別プログラムの出力を埋め込む。
別プログラムを実行する条件を書ける。
- 1日1回0:00を過ぎたら
- 前回起動から5分過ぎていたら
…など。
管理者の承認が欲しいので、条件・プログラムパスなどを含んだマークアップを管理者が作っておく。
実行順序 †
プラグインの実行順をURLクエリーに書かれている順ということにする。
同じトリガーを使うプラグインが複数ある場合。
ページに埋め込めるのはマークアップのみ。
プログラムパスや条件は管理者が決めたもののみ。
埋め込めるときに決められるようにも。
パスを任意にすればどんなプログラムも、条件を任意にすればいつでも何度でも、ということになる。
データの改ざん †
前のプラグインの出力は次のプラグインに入力される。
クライアントからの入力も書き換え可能。次のプラグインには書き換え後が渡る。
→ 別のシステムでログを生成しておいて、Xではそのログだけをインポートする仕組みにしたほうがいい。Xから起動はしない。
問題は出力と入力のデータ型を統一すること。
文字列か、文字列の集約。
HTMLで書かれたページの断片。
機能/自動フォーマット †
自動認識で良い感じにフォーマット。
ページ単位の機能。ページ属性に入れればページ全体をフォーマット。
表とか、リストとか。見出しとか画像埋め込みとか。
自動フォーマットしたページを他のページに埋め込んで使用。
自動フォーマットの機能とかも。
機能/自動更新 †
† :i/自動処理はbotで
内容を自動整頓。
データを一定量だけ残してあとは削除したり、…他。
方法
型を揃える必要がある。ページの内容はテキストなのでフォーマットを整えることに。
ページ全体を1行1レコードのデータ列として扱う。
データを更新するときは…
…このページ呼び出しを定期的に。
機能/要約 †
1画面内の文書を要約。
要約度合いをスライダー操作。
…といったように短く表示。
スライダーはページスクロールと無関係に表示。
要約中はどこかをダブルクリックすれば’’そこだけ’’要約解除。「そこだけ」なのは眺めるだけでなく要約から探して編集できるようにするため。
機能/計算・電卓 †
Googleのように。
Googleの結果を埋め込んでもいい。
改行などにとらわれないように。
自由な書式で。
単位付き計算も。不明な単位はNotationの書き損じと同じように対処。
単位変換
- 昭和21年を西暦に
- 昭和21年+12ヶ月を西暦で
- 平成元年-0.75年を大正で
→ :i/Google計算機の結果に置き換え
機能/記法リスト †
- 特定のNotationだけをリスト化。
- 特定のDOMクラスだけをリスト化。
クライアント側で。 - 特定のリンクだけをリスト化。
タグだけのリスト(タグリスト、タグ一覧)を作るために。正規表現でフィルタリングしたリンクリスト。
機能/誰かが編集中 †
「誰かが編集中」と通知。
編集者が編集の衝突を予測できるように。
編集画面のどこかに埋め込んでおけばいい。
定期的に自動更新。
データは毎秒変わるので、カウンターと同じ領域に。
頻繁にリセットされるカウンター。
編集中なので、警告はしない。何人いるかを表示するだけ。
閲覧中が何人かというのも載せていいかも。
編集中の版が最新版かどうかも載せていいかも。
誰かに先に編集されたことが分かる。これも警告ではなく表示を変えるだけ。
機能/集合操作 †
- HTMLを渡す(複数)、操作も指示。
- リスト(<li>)などを要素として、1つのHTMLを1つの集合にする。
- 和や積を得て、リストとして出力。
※入力と出力の型を同じに。
書式は…
&...({ページ}などHTMLに展開されるもの1,∩,HTML2,∪,HTML3);
とか
&...(HTML4,/,&...(HTML1,∩,HTML2););
とか
ページセットは?ページセットを扱うとしたら…?