• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:&tag(実装,思い付き);
RIGHT:&tag(ページ,思い付き,実装);


*目次 [#x41691d5]
#contents
#br
#lsx(new=true);
#br

*関連 [#z4f8fb37]
#related
#br
#lsx(tag=作成,new=true,except=^ページ/作成(/.*)?$)
#br
[[検索:作成]]
#br
----


*ページ/作成 [#c0e0aef8]
RIGHT:[[:t/作成]]


*思い付き [#c08f57d2]


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

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

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


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


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

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

ワークフローで使う。


**ページ/名前を複数入力 [#w013b466]
空白や句読点を区切りとして、複数のページ/名前を与えられると一度にリダイレクトページを作る。
名前が複数考えられるときはまとめて入力すれば手間が省ける。

RIGHT:[[:t/手間を省く]] [[:t/UI]]


*実装 [#o29bb71e]

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


**手順 [#s1207fad]

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


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

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