ページ作成は、ページ生成と編集の組み合わせ。

でもページはすべて存在するものとするなら作成編集

:i/存在しないページは無い

ページ/編集

目次 Edit

 
 

関連 Edit

 
 

検索:作成
 
  • -

テンプレート Edit


ページ/作成テンプレートを利用するもの。

テンプレートには属性領域も含まれる。つまり権限も含まれるということ。

ページ/作成 Edit


テンプレート適用時にそのテンプレートの閲覧権限が必要。ページ/作成を制限するなら、使えるテンプレートを無くせばいい。

もしページ/編集作成を別のユースケースにするのなら、そこで権限判定してもいい。

思い付き Edit

似ているページ Edit


ページ名を入力した時点で「以前に作成したこのページと重複していませんか?」と。

記事の重複を防ぐ。

個人のメモ書きにも有効。

ページ名の他、「アウトライン」「概要」で探しても良い。

既存のページ作成しようとしたら編集ページ Edit


新規作成ページ名入力の次は編集ページ名入力時にページが存在していても編集に。

既存ページを入力する使い方もあり、間違いではないので挙動は揃える。

内部名があるのでページ名の重複が可能。ページ作成を常にページ作成にしないと重複するページを作れなくなってしまう。

テンプレート指定済み Edit


URLクエリーでページ内容テンプレートを指定。

ページ/作成できるように。

ワークフローで使う。

このときもページが既存なら編集ページに。テンプレートは無視される。

編集ではなく追加だったらテンプレート有効。

初期ページ Edit


何もテンプレートを指定しないときの、テキストボックスの初期状態。

これもページ内容テンプレートとしてWikiの設定に含める。

→ページ/初期ページ[?]

実装 Edit

ページ名内容順序不問 Edit


ページ名入力(決定)とページ内容入力(決定)は順序不問。

どちらも無ければ内容入力。

両方あれば入力完了。

一方が無ければそれを入力。

優先順位は内容ページ名の順。

1行目をページ名の既定値にしていい。

パーマリンク Edit


ページ名が入力されたらURLクエリーに含めてリダイレクト。クエリーを送り返してもらう。

新規作成ページではなく、ページ編集ページで新しいページを書いてもらうことになる。

ブラウザーで戻って、書き直しや修正がしやすいようにするため。

手順 Edit

  1. 当てはめるテンプレートを判断、決定
    ページ名内容RegExpに当てはめてみる。

    テンプレートが決まる。

    RegExpマッチング。
  2. フィルタリング
    テンプレートに結びついている()付き穴空きテキストを使い、フィルタリング。

    フィルタリングは変換

    置き換え1。
  3. 埋め込み
    テンプレートに結び付けられている$1など付き穴空きテキストに2で得た()部分を当てはめる。

    ※2の()部分全てにはそれぞれ名前がついている。

    置き換え2。
  4. 展開
    プラグインなど展開。

    これはテンプレートが適用されなかったときと同じ。

    ページ生成。

テンプレート Edit


新規作成時、テンプレートがあった場合、それが初に。

最初の投稿で第2

履歴テンプレートも残すようにするため。