• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/編集]] [[:t/UI]]
RIGHT:[[:t/作成]] [[:t/編集]]

ページの作成は、ページ生成と編集の組み合わせ。
でもページはすべて存在するものとするなら作成=編集。
→ [[:i/存在しないページは無い]]
→ [[ページ/編集]]

----

#contents

*あとでなおす [#v3de648f]
**似ているページ [#f310f8d3]
ページ名を入力した時点で「以前に作成したこのページと重複していませんか?」と。
*** テンプレート [#oddf0c98]
ページ/作成はテンプレートを利用するもの。
テンプレートには属性領域も含まれる。つまり権限も含まれるということ。

-ページ名を入力した時点で
-本文を書いたあと
-本文を書く前
テンプレート適用時にそのテンプレートの閲覧権限が必要。ページ/作成を制限するなら、使えるテンプレートを無くせばいい。
もしページ/編集と作成を別のユースケースにするのなら、そこで権限判定してもいい。

記事の重複を防ぐ。
個人のメモ書きにも有効。
ページ名の他、「アウトライン」「概要」で探しても良い。


**既存のページを作成しようとしたら編集ページに [#l1cefa1a]
新規作成のページ名入力の次は編集。ページ名入力時にページが存在していても編集に。
既存ページを入力する使い方もあり、間違いではないので挙動は揃える。

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

→重複するページは作れなくする。既存ページを作ろうとしても通常のページ作成になるが、送信時に追加になる。
送信ボタンが追加という表示になってもいい。
これは見出し記法で任意のページを作成、既存なら追加になる仕様と揃えるため。


**テンプレート指定済み [#g23eb94c]
URLクエリーでページ内容のテンプレートを指定。
ページ/作成できるように。

RIGHT:[[:t/クエリー]]

[[→:ワークフロー]]で使う。

このときもページが既存なら編集ページに。テンプレートは無視される。
編集ではなく追加だったらテンプレート有効。
**初期ページ [#e5a145e6]
何もテンプレートを指定しないときの、テキストボックスの初期状態。
これもページ内容のテンプレートとしてWikiの設定に含める。
→[[:i/既定値ページ]]

**下位ページサポート [#qbf4c984]
ページを作るとき(方法に依らず全ての場合で)上位ページも作るように。
ページ/内容はページ編集時のデフォルトページ内容。(ページ作成時、最初からテキストボックスに入っている内容)


**ページ名・内容は順序不問 [#y3588aa2]
ページ名入力(決定)とページ内容入力(決定)は順序不問。
どちらも無ければ内容入力。
両方あれば入力完了。
一方が無ければそれを入力。

優先順位は内容、ページ名の順。
1行目にページ名の既定値を入れておいてもいい。


**パーマリンク [#y4df99a2]
ページ名が入力されたらURLクエリーに含めてリダイレクト。クエリーを送り返してもらう。
新規作成ページではなく、ページ編集ページで新しいページを書いてもらうことになる。
ブラウザーで戻って、書き直しや修正がしやすいようにするため。


**手順 [#s1207fad]
+当てはめるテンプレートを判断、決定
ページ名や内容をRegExpに当てはめてみる。
テンプレートが決まる。
RegExpマッチング。
+フィルタリング
テンプレートに結びついている()付き穴空きテキストを使い、フィルタリング。
フィルタリングは変換
置き換え1。
+埋め込み
テンプレートに結び付けられている$1など付き穴空きテキストに2で得た()部分を当てはめる。
※2の()部分全てにはそれぞれ名前がついている。
置き換え2。
+展開
機能など展開。
これはテンプレートが適用されなかったときと同じ。
ページ生成。


**初版はテンプレート [#leec4a73]

新規作成時、テンプレートがあった場合、それが初版に。
最初の投稿で第2版。
履歴にテンプレートも残すようにするため。

**作成/ [#a99c3a50]
- [[ページ/作成でやること]]

#ls