今更ながらですけど、書式の定義について、[[ヘルプ]]に書かれてはいますが、今後を見越して再定義&論じていければなぁと思います。現在、HTMLの正規化((言葉として正しいかどうかは不安))をムリにワタシが行ったために内部的にはかなり歪な処理になっていて、それに伴う不具合やバグも増えてきているので、そろそろ見直す必要があるのではないかと思います。 -- [[kawara]]

#contents

*書式の定義
**行頭で有効な書式
-見出し
 * ** ***
-リスト
 - -- ---
 + ++ +++
 : : ←問題あり
--<dl>の<dt>と<dd>を:で区切るという現在の書式は、ユーザー定義やURL、InterWikiの書式と競合してしまっているので改善する必要がある。-- [[reimy]]
--リストのネスト方法をきちんと整理する必要あり。HTMLとして出力させるかぎり、第2階層は第1階層の子要素に、第3階層は第2階層の子要素にする必要がある。現状のように先頭の要素をいきなり第2階層や第3階層にすることはできない。-- [[reimy]]
--これに伴い、#contentsの出力も見直す必要が出てくる。-- [[reimy]]
-引用
 > >> >>>
--引用文内での改段落の書式を考える必要あり。-- [[reimy]]
-プラグイン(ブロック)
 #
-表組み
 |
--表組みの各要素のセル幅指定ができるような書式も検討。-- [[reimy]]
-ヘアライン
 ----
-コメント
 //
-整形済み

-位置指定 (div align) 左寄せ・右寄せ・センタリングは必要((暫定的にプラグインで対処してるけど、限界があるので)) -- [[reimy]]
**行末で有効な書式
-改行
 ~
**行中で有効な書式
-WikiName
-BracketName
 [[ ]]
-InterWiki
 [ : ]
-Alias
 [[ > ]]
-URL
-注釈
 (( ))
-ユーザー定義書式(書き込み時変換)
-ユーザー定義書式(逐次変換)
 :~:←問題あり
--うちでは&~;という形式にしていますが、なかなか便利です -- [[reimy]]
-ボールド
 '' ''
-イタリック
 ''' '''
-アンダーライン((現在はない -- [[reimy]]))
-打ち消し線
 %% %%
-色づけ
 COLOR( ){ }
-フォントサイズ
 SIZE( ){ }
-位置指定 (表組みの中でのみ -- [[reimy]])
 LEFT: CENTER: RIGHT:
-改行 (表組みの中で必要 -- [[reimy]])
-改段落 (引用文、注釈の中で必要 -- [[reimy]])
-インラインプラグイン (anchor、online、versionなど((現在はインラインであるべきなのにブロックになってしまっている)) -- [[reimy]])
--anchorはAliasやURLの中で処理すべき。-- [[reimy]]
*空行のあつかい
空行は現在段落の切れ目という意味となっている。
-段落の切れ目ではなく、段落と段落の区切りの意味になってます。それゆえ、段落と他のブロック要素との間に空行を入れていはいけない。 -- [[reimy]]
-はい、段落の切れ目ってのは区切りのつもりで書きました。個人的には空行で''ブロック抜け''をイメージしています。 -- [[kawara]] SIZE(10){2002-07-26 (金) 14:33:36}
-「段落の切れ目」だと段落の次に他のブロック要素が来る場合も含んでしまうので。段落以外のブロック要素からの脱出には空行は不要((PukiWikiはブロック要素の中に他の種類のブロック要素を含むことを認めていないため。<ol>の中に<ul>や<dl>を使いたいという要望はありそうだけどねぇ…))。 -- [[reimy]] SIZE(10){2002-07-26 (金) 14:36:47}
-現在の空行は''空の段落''を入れるという仕様になっているが、個人的にはどうも抵抗があります。空行は何もしないって方向でいいのかななんて思ってます。 -- [[kawara]] SIZE(10){2002-07-26 (金) 17:52:05}
-わたしも「何もしない」がベストだと思います。ただ、従来との「見た目の」互換性を考えると<p></p>や<br>というのも仕方ないかなとも思えるけどね。個人的には空行=改行は好きじゃないので、互換性を無視してでも「何もしない」がいいけど。 -- [[reimy]] SIZE(10){2002-07-26 (金) 18:14:43}
-見た目の互換性って現在のPukiWikiを使いこなしている人に影響があることだと思うので、現状の使用者数ならあまり気にしなくてもいいのかな、ってのは横暴ですかね。 (^^; -- [[kawara]] SIZE(10){2002-07-26 (金) 18:45:10}
-1.3系列は互換性重視で、1.4からは新書式でというのはどうでしょう。1.4リリース後もセキュリティfixなどは1.3系列もサポートするということで。 -- [[reimy]] SIZE(10){2002-07-26 (金) 20:59:56}
-1.4じゃなくてPukiWiki2じゃないですかね?新書式までいくと。 -- [[ゆう]] SIZE(10){2002-07-27 (土) 00:18:00}
-同じ行頭書式が同じレベルで続く場合、それはブロックとして認識してもいいと思う。そして、空行が来たらブロックが終わる。これって問題ありますか?この考え方で行けば<ol><ul>を同時に使えるような気がする。<ol><ul>をリストという類で同じ種類の要素として扱うというイメージ。そう考えた場合、やっぱり私の中では空行が''ブロック抜け''なんですよね。で、もちろん、種類が違う行頭書式が連続した場合は自動的にブロックは切り替わる。 -- [[kawara]] SIZE(10){2002-07-30 (火) 20:06:39}
-そういえば、reimyさんの言う段落って<p>ってことでいいんですよね? -- [[kawara]] SIZE(10){2002-07-30 (火) 20:10:42}
-そうです。空行がブロック抜けという考え方はいいんですが<blockquote><p>~</p></blockquote>の中の改段落をどのような書式にするかという問題は残ります。 -- [[reimy]] SIZE(10){2002-07-31 (水) 00:16:32}
#comment
*ブロック構造の実現
もともと(1.3まで)が行指向でブロックという考え方が無かった。

プラグインのブロック構文には下記のような書式が考えられますね。 - [[ゆう]]
上の書き方の方がスマートですが、終わりの}の後にも何か書けてしまってちょっとイヤな感じじゃないですか?
 #hogegege(zz) {
   foo bar baz
 }

 #hogehoge(zz)
   foo bar baz
 #end
-ブロックの閉めは # だけってのは乱暴ですかね?さすがに乱暴かな…。 (^^; -- [[kawara]] SIZE(10){2002-07-26 (金) 19:32:40}
-SIZE(9){ブロックをプラグインで実現するにはそのプラグインがブロック構造を持つことを本体に知らせる必要がありますね。って、そこは書式とはちょっと違う話になっちゃうな。} -- [[kawara]] SIZE(10){2002-07-26 (金) 19:35:10}
-これは書式というより、プラグインの仕様次第ですね。極端な話、プラグインのネストも許したりして(笑い) -- [[reimy]] SIZE(10){2002-07-26 (金) 21:13:34}
-{と}はCOLORやSIZEで使ってるけど競合はしないのかな? -- [[reimy]] SIZE(10){2002-07-26 (金) 23:32:23}
-上はインラインプラグイン、下はブロックプラグインって方法もありますね。 -- [[ゆう]] SIZE(10){2002-07-27 (土) 00:17:20}
-インラインであれば行頭に書く必要はないですね(というか行頭に書かなければいけないというのではインラインにならない) -- [[reimy]] SIZE(10){2002-07-27 (土) 04:23:06}
-&calc(hogehoe)ですかね?<インライン -- [[ゆう]] SIZE(10){2002-07-28 (日) 13:27:15}
-上記のような定義の仕方だと、ブロック構造の引数は1つしかとれないことになりますね。次のようにすれば複数のブロック構造を引数に取れるのでは? -- [[reimy]] SIZE(10){2002-07-29 (月) 17:09:45}
 #hogehoge({
 hogera
 hogetta
 },{
 hogeme
 hogereba
 hogetatoki
 })
-プラグインのブロック構造が実現すると、表組みの右寄せとかができるようになるね。期待してます。 -- [[reimy]] SIZE(10){2002-07-29 (月) 17:01:56}
 #align(RIGHT,{
 |東京|名古屋|大阪|
 |フジ|東海|関西|
 })
-だんだん複雑になってきちゃってますが・・・・HTMLの再開発にならないことを祈ってます。 --  SIZE(10){2002-07-30 (火) 07:04:17}
-個人的にはTeXの書式が使えればいいんだけど(^^;; -- [[reimy]] SIZE(10){2002-07-30 (火) 07:34:26}
-TeXWiki作ってみません?(笑>reimy -- [[ゆう]] SIZE(10){2002-07-30 (火) 13:11:47}
-HTML再開発になってきている気はするんですよ。私も。LEFT, RIGHT,SIZE,COLORもプラグイン行きですよね。 -- [[ゆう]] SIZE(10){2002-07-30 (火) 13:14:55}
-ブロック構造の引数は一つでいいと思います>reimy -- [[ゆう]] SIZE(10){2002-07-30 (火) 13:15:53}
-インラインの書式は&size(1){test}でいいんじゃないですかね。 -- [[ゆう]] SIZE(10){2002-07-30 (火) 13:16:40}
-難しいことをしたい場合はプラグインっていうノリだから車輪の再発明にはならなくて済むと思いますよ。基本の書式使うだけでけっこう文書作れちゃいますもんね。 -- [[kawara]] SIZE(10){2002-07-30 (火) 13:27:09}
-その場合、&size(1){&color(red){small red}}をどうやって許すかだよなー。ブロックの引数内に}があったらそこで終わってしまうし。{}内はWiki書式とは限らないから{}の対応が取れてるとは限らないし。基本的には{}対応が取れてるとしてそれ以外に}を使いたい場合はやっぱりエスケープしかないなぁー -- [[ゆう]] SIZE(10){2002-07-30 (火) 17:34:14}
-ラインパースで正規表現使ってなんとかしようと考えるとかなり辛そうですよね -- [[kawara]] SIZE(10){2002-07-30 (火) 19:58:52}
-インラインプラグインの書式を&hoge<.....>にすれば解決するでしょ。{ }にしなければユーザー定義も中で使えます。 -- [[reimy]] SIZE(10){2002-07-31 (水) 00:22:18}
--<だったら次にプラグインの中に<ほげほげ>って書く時にこまるから同じですよ。 -- [[ゆう]] SIZE(10){2002-07-31 (水) 01:08:45}
--SIZEやCOLORもインラインプラグインにしようと考えてるんですよ。そうすると難しいかなぁ・・・ -- [[ゆう]] SIZE(10){2002-07-31 (水) 01:12:51}
--プラグインの中にプラグインを持ってくるとかなり厄介か・・ -- [[ゆう]] SIZE(10){2002-07-31 (水) 01:16:28}
--インライン要素は多重ネストしますし、ブロック型プラグインの引数の中でも使用されます。したがってインライン要素をプラグイン化するには多重ネストを前提に設計する必要があります。 -- [[reimy]]
-<ほげほげ>と書く時には困らないですよ。文字参照や数字参照で対応できますから。[[ちょっと便利に]]参照。 -- [[reimy]] SIZE(10){2002-07-31 (水) 01:17:32}
--なかで書く場合は&lt;って書くってことですか? -- [[ゆう]] SIZE(10){2002-07-31 (水) 01:46:02}
--文字参照であればね -- [[reimy]] SIZE(10){2002-07-31 (水) 02:39:27}
#comment
*ページ内変数の導入
-書式の中で変数を扱えるようになるとおもしろいかもしれません。簡単な表計算に利用するとか -- [[reimy]] SIZE(10){2002-07-26 (金) 21:16:00}
-うーん、それはプラグインにしません?そこまで行くとZopeになっちゃう気が -- [[ゆう]] SIZE(10){2002-07-27 (土) 00:15:23}
-#script("$a=10")とか #calc(10+20*30)とか。 -- [[ゆう]] SIZE(10){2002-07-27 (土) 00:30:56}
-ページ単位で変数が使えると見出しに「第1章」とか出力できるのでいいかなあと思ったの。まあページ単位では章はちとつらいけど。 -- [[reimy]] SIZE(10){2002-07-27 (土) 04:21:38}
-calcとかはインラインでないと意味がないので、行頭から#で始まるブロックプラグインでは使い物にならないです。行中で「昨日の支出は&calc((10+24)*1000);円でした」という形で使えないと。 -- [[reimy]] SIZE(10){2002-07-27 (土) 04:25:28}
#comment

* 方向性
気をつけてください。書式が複雑になる方向ですすんでいます。~
Wikiは「簡単に書ける」ことが大事で、表現力は二の次だと思います。~
レイアウトや見た目の問題はプラグインにしませんか。~
LEFT, RIGHT, SIZE, COLOR, 複雑なTABLEはインライン型プラグインにできますよね。~
こうすれば、Wikiエンジンとしては軽くなりますし。 - [[ゆう]]
-なぜTABLEがインラインなんですか? TABLEなんてブロック型の典型じゃないですか(笑い) -- [[reimy]] SIZE(10){2002-07-30 (火) 19:03:30}
--(笑いってこういうときに書くとちょっと感じ悪く読めちゃいますよ -- [[ゆう]] SIZE(10){2002-07-31 (水) 01:10:27}
--もっときちんとインラインとブロックの違いを理解していないと1.3の二の舞になってしまいます。 -- [[reimy]] SIZE(10){2002-07-30 (火) 19:06:27}
--それは了解しました。それにしても感じの悪いと感じる書き方は避けてもらいたいですね~ -- [[ゆう]]
-ブロック要素であるブロック型プラグインと、構文としてのブロック構造とはまったく別物です。 -- [[reimy]] SIZE(10){2002-07-30 (火) 19:10:03}
-おっとTABLEは間違った(笑 -- [[ゆう]] SIZE(10){2002-07-31 (水) 01:06:25}
-LEFTやRIGHTもインラインではありません。だからこそalignプラグインが必要になったわけでしょ? -- [[reimy]] SIZE(10){2002-07-31 (水) 01:28:42}
-「レイアウトや見た目の問題はプラグインにしませんか」ということであれば、alignプラグインの中で注釈やソース書き換え型ユーザー定義が使えるような方法はあるのでしょうか? -- [[reimy]] SIZE(10){2002-07-31 (水) 01:24:03}
-複雑化という意味ではブロック構造を持ち込むことが一番の複雑化だと思いますが、やめますか? -- [[reimy]] SIZE(10){2002-07-31 (水) 01:25:42}
-インライン型にブロック構造はいらないかも知れないですね。 -- [[ゆう]] SIZE(10){2002-07-31 (水) 01:47:21}
--いや、だからブロック型であるかインライン型であるかということと、ブロック構造とは無関係だって(もう笑えない) -- [[reimy]] SIZE(10){2002-07-31 (水) 02:54:45}
-現在でもプラグイン内でconvert_htmlを呼べばできませんか?<プラグインの中でWiki書式 -- [[ゆう]] SIZE(10){2002-07-31 (水) 01:48:54}
--プラグインの引数まで書き換えてくれないとプラグインでは無理でしょう -- [[reimy]] SIZE(10){2002-07-31 (水) 02:48:14}
#comment

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 5.6.40-0+deb8u12. HTML convert time: 0.113 sec.

OSDN