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

ページの作成は、ページ生成と編集の組み合わせ。
でもページはすべて存在するものとするなら作成=編集。

*あとでなおす [#v3de648f]
**似ているページ [#f310f8d3]
ページ名を入力した時点で「以前に作成したこのページと重複していませんか?」と。

-ページ名を入力した時点で
-本文を書いたあと
-本文を書く前

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


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

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

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


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

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

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


このときもページが既存なら編集ページに。テンプレートは無視される。
編集ではなく追加だったらテンプレート有効。


**初期ページ [#e5a145e6]
何もテンプレートを指定しないときの、テキストボックスの初期状態。
これもページ内容のテンプレートとしてWikiの設定に含める。
→[[ページ/初期ページ]]


*方法 [#o29bb71e]

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


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

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


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


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


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

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

**作成/ [#uefb37b0]
#ls

**[[tag:作成]] [#h7a8e5b9]
#lsx(tag=作成,new=true)