• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:&tag(ページ,編集,リンク,機能,UI,API,思い付き,方法);

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

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


*ページ/編集 [#e94e9e5c]
RIGHT:[[:t/編集]]


update
*思い付き [#u64877d3]

**外に出さない書き込み [#kbb64a4c]
議論中の書き込み、不確定な書き込み、暴言は外に出したくない。
でも内部には公開したい。

Wikiなので、そのうち暴言は消される。
残るならそれがそのWikiでの結論。

→それなら''追加された(更新された)部分はしばらく外に出さない''だけでいい。

:外|Google、アンテナなど。
外に出さないものは拒否を表明しておくだけ。

別ページにしないと、更新された部分だけ分けることができない。
→外には古い版を出せばいい。

------------------------------------------------------------

つまり、不適切な書き込みをネットに広めないように…
-Google、その他対応可能なボットには古い版を見せる
-ボットが最新版をリクエストしてきた場合、拒否する
定着した古い版を代わりに見せる。

…ということ。

RIGHT:&tag(編集);
**ここで履歴を取って公開 [#ke656eec]
更新は何回してもいい。でも公開するなら履歴も必要、という発想。
**プレビューでも差分表示 [#k6076ce8]
変更点が分かりさえすればいい。
前後を表示しなくても、変更後だけ表示して行頭に変更マークを付けるとか、変更のあった行だけをリストアップするとか。
**編集時に編集者名を記録 [#tee31ac5]
(デフォルト設定では)編集不可能になっているページに記録する。
編集者名は分かるときのみで良い。ログインしていない利用者まで記録することはない。
この機能は特定の人の編集結果を探すための機能。荒らし対策のためではない。
→利用者ごとのページに記録してもいい。

RIGHT:[[:t/自動生成ページ]] [[:t/利用者名]]
**衝突 [#u7dce5ab]
フォームには編集対象の版を結びつける。
最新版以外を対象にしたフォームからの投稿は衝突とする。

衝突をエラーとしてはいけない。正常な動作なので。
Windowsでの「情報」レベル。

1つのページは複数のファイルから成り立っているので、ファイル単位の衝突を検出するように。
同じページを編集しても、異なるファイルしか編集していないなら衝突なし。
編集結果…1つのテキストを複数のファイルに割り当てる処理が要る。
**一人衝突対策 [#da01b164]
編集、投稿→戻るボタン→投稿→衝突(一人衝突)
これを防ぐには、最新版取得をページロード時にも行う。実装では最新版の版番号を取得するだけでいい。それが読み込み済みのWikitextのものかどうか判定。

これは編集作業中にも行なっていいがうるさいので、警告のしようがない。


**衝突時も画面フローは変わらない [#xfa389f9]
通常でも編集後は差分表示。
衝突時も差分表示。メッセージが付くだけ「編集が立て込んだので確認しておいて」。


編集処理が一度キューに入るなら衝突が分かるのは後になる。なので編集時ではなく閲覧時にページ冒頭にでも「3版前に衝突がありました→確認する」という案内でも出しておけばいい。どのみち利用者が編集しないと衝突は回避できないし。
**編集衝突時の統合はシステムによる編集 [#s9b131e8]
統合をしたら編集者は「システム」になる。
これで意図的に「システム」にして編集者名を隠せるが、そんなことはどうでもいい。
・編集者名は荒らし防止のためのものではない。

編集にシステムが介入したら衝突した編集者(複数)にメッセージを送る。
事後通知。
メッセージはメール?利用者ページ?後から編集した方(衝突したほう)なら編集直後のページで分かるが、前(衝突されたほう)にはお知らせできない。
**編集禁止機能は不要 [#t7556970]
自分が書いたページ、自分が編集した分だけの履歴を取り出して、それを元に新しい版を作れればいい。
他人による編集を禁止するのではなく、自分が関わった版を改訂していけるように。

Wikiの設定類は編集権限の有無で。
これは編集権限はあるのに編集禁止されるページについて。
**編集がプレーンテキストなのは [#q94cd70a]
-なんでもできる。
拡張性が高い。
-作りにくい項目がある。
--表
→リロード無しのプレビューで。
また、記法を書きやすく。
--長文
→章ごとの編集で
-ブラウザーが用意するフォームが使いにくい。
→テキストエディターで編集するように勧める。
など。

他、MediaWikiの「外部エディターで編集」に対応するWebブラウザー拡張機能を作るとか。
**ページ作成の手順 [#k610397d]
ページを作る→タイトルかアウトライン入力→本文、タイトル、アウトラインなどすべて編集

----
-アウトラインを入力すると記事検索に使われる。
-本文中に見出しとして追加される。

-アウトラインは本文と違って
--(編集中に表示される)類語検索の対象
--記事の要約になる
--編集単位…

----
→本文中に書いた見出しをアウトラインとしたほうがいい。
-「記事を書くときは見出しから書きましょう」
「そうすれば、以前に書いた似ている記事が自動表示されます」と。
----

ページ作成時、ページ名入力の後に
 もしかして…
で似ているページ名を列挙。

ページ名の重複を防がせる。

----

ページの編集とページ名変更を分けても無意味。

「どんなことを書くの?」→主題入力→おすすめ追記先候補(または新規ページ)選択→ページの編集→ページ名と内容が決まる。
**署名 [#o60dd4c9]
利用者の署名は…
-自分の記事を探すため。
-自分宛の記事を探すため。

RIGHT:[[:t/利用者/署名]]

**書き続けられるように [#n7b9843d]
+1つのフォームに書く
+送信
++ページ/名前が自動的に決まる
++ページに追加される。無ければ作成される
+同じ型、空のフォームが返ってくる

RIGHT:&tag(手間,UI);
**あとで書く [#o423aa69]
下書きを保存。
(中断、後回し)

編集中のテキストを自分の個人ページ下のページとして保存。
ページ名を変えて保存するだけで良い。
RIGHT:[[:t/ページ/名前]]


**%%追加(追記)は章単位。%% [#q36869da]
+%%下位ページを作って%%
+%%参照する側のページにリンクを追加%%

%%…ということ。%%


*方法 [#v0d54912]

**HTML除去はいつ行うか [#h8b5b607]

ページ/編集/HTML書き込みを許可するので、永続化されたページの中にはHTMLを含む場合と含まない場合が生まれる。
含まない場合はいつHTMLタグを除去するか。
→閲覧時にページ/属性が「HTML」になってるかで判断して除去するか、あるいは編集時に。
→閲覧時。データは利用者に与えられたままで保存すべき。
**下位ページを含むか?(下位展開) [#w79e04f0]
ページトップのEditボタンなら表示されている範囲を編集。(下位ページが表示されていればそれらを連結して編集)
見出し横のEditボタンはその見出し分だけ(章・下位ページ1つだけ)

??

**下位ページを何階層展開するかは編集機能次第 [#e679781c]
編集機能呼び出しのパラメータで指定。
**編集権限 [#vf538c2a]
下位ページを含む編集では章ごとに編集権限が必要。
1ページ内の編集権限の無い部分は埋め込みオプション付きの見出し記法のまま展開しない。
 **ページタイトル/処理されない [#d68cd82c]
 ──あなたには編集できない部分です(ログインすると編集可能になるかもしれません)──

編集後に消えてしまっていたら末尾に追加。
消してしまっても順序が変わるだけ。

--------
編集可能な部分のみ展開。
できれば全て展開してWikiTextが見えるように、クリップボードにコピーできるようにしつつ、編集不可能と可能の区別がつくように表示したいが。

編集不可能なWikiTextが(見出し以外)見えなくなる。
でも、WikiTextを参考にしたりコピーできなくなるくらいの不都合しかない。
→[[機能/ソース]]機能を使用して解決。
全ページ共通のヘッダーあたりに置けばいい。
**編集ページは検索エンジンにインデクシングさせないように指定 [#c52b3e86]
**添付ファイルのファイル名は使わない [#ia2230c8]
-ページ/内部名はシステムが決めるルール。
-ページ/表示名はマルチバイト文字で付けられるルール。

→ファイル名を使う箇所がない。



**機能で操作しやすいようにテキストに構造を持たせる [#g1a37628]
編集時には出さない。ページ更新時に。
<div><span>でid、class属性を付ける。
機能の出力にも付けやすいように。フレームワークで付けるように。機能では「指定」のみをする。

機能の出力は<div class="機能名"></div>の中に書く。
なども。

機能ではclass名ごとに構造を扱えるように。


**%%相互リンク%% [#vadd981c]
%%ページ更新時、リンクを調べて''リンク先''が相互リンク用ページなら(相互リンクを表示するための領域があれば)相互リンク(返信)を作る。%%
+%%リンク先の編集が増える%%
+%%相互リンクするか否かは''リンクされるページ''による%%
%%リンクするときの利用者の手間を減らして、相互リンク用ページへのリンクを''全て''相互リンクにするため。%%

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

→バックリンクの機能をページのフッターにでも入れておけばいい。
**ページ削除は編集の内、ページ作成も編集の内 [#b60c3d97]
PukiWikiと同様に…

ページを空にするのが削除。
空のページに書き込むのが作成。
空でないページに書き込むのが編集。
…全て編集のうち。

編集の権限さえあれば、削除と作成もできるということに。

RIGHT:[[:t/型の統一]]

**編集の競合は編集フォームを作成した時点の最新版で判定 [#fb049753]
競合判定は利便性のため。
判定は最新版の版番号でいい。