[スレッド全体]

2008/8/15 (金) 04:15:30 あろか  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
[5405] HTMLアウトライン解析の段落処理
HTMLのルールでは<p>(段落)は省略可能で、ほかのブロック要素が現れたときは自動的に終了することになっているようです。ところがサクラエディタのアウトライン解析は、<p>を</p>で明示的に終了しないで<p>を繰り返したり<pre>や<div>を続けたとき、トピックツリーがだんだん深くなってしまいます。
アウトラインを見るのに都合が悪かったので変更して、SFにパッチを用意しました。
見出しの深さ調整処理や、文字修飾タグ(boldやitalic)をツリーに入れない処理なども追加したため否定意見もあると思います。ご意見ください。

2008/8/23 (土) 17:18:59 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
[5407] Re:HTMLアウトライン解析の段落処理
▼ あろかさん
パッチを試してみようと思ったのですが、「パッチを適用」にて MakeHTMLTopic.diff を選択すると「未知の改行コードが、行 180 で見つかりました!」のエラーとなってしまいます。

パッチの中を見てみるとコード部分にCRLFのところが2箇所あったのでLFに直してみましたが現象は変わりませんでした。

Windows2000 SP4 + TortoiseSVN 1.4.5 build 10425 にて試しました。

2008/8/24 (日) 19:00:03 あろか  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
[5408] Re2:HTMLアウトライン解析の段落処理
▼ なすこじさん
お手数かけました。こちらでも失敗していましたのでdiffファイルを作り直しました。
SF.netは失敗したのでWikiのDevelop/8にアップロードしました。

PS.「<p>(段落)は省略可能で」は「<p>(段落)は</p>が省略可能で」の誤りです。

2008/8/25 (月) 04:40:46 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
[5409] Re3:HTMLアウトライン解析の段落処理
パッチの最後の方に Patches #2028628 が混入してませんか?

その部分を削除して試してみました。
タグを小文字で書くとOKですが、大文字で書くとおかしくなる
みたいです。

metaをMETAと書くとツリーを形成してしまいます。
同様に<P>や<BR>でも発生します。
タグを<p><br>の様に小文字で書くと大丈夫です。

<html>
<head>
<title>アウトライン解析テスト用1</title>
<META NAME=GENERATOR CONTENT="HANDMADE">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">
</head>
<body>
<P>パラグラフ1
<P>パラグラフ2<BR>
<BR>
<P>パラグラフ3<BR></P>
<P>パラグラフ4
<P>パラグラフ5</P>
</body>
</html>


番号付きのリストでツリーになりません。
これも<OL>を<ol>とするとツリーとなります。
パラグラフ1の<p>が関係しているようです。<P>にすると<OL>は
ツリーとなります。

<html>
<head>
<title>アウトライン解析テスト用2</title>
<META NAME=GENERATOR CONTENT="HANDMADE">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">
</head>
<body>
<p>パラグラフ1</p>
<OL>
<li>
階層1A
</li>
<li>
階層1B
</li>
<OL>
<li>
階層2A
</li>
<li>
階層2B
</li>
</OL>
</OL>
</body>
</html>

とりあえず動作だけ見てみました。
コードはまだ見れていないです。

ではでは。

2008/8/25 (月) 09:29:00 あろか  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
[5410] Re4:HTMLアウトライン解析の段落処理
▼ なすこじさん
確認ありがとうございます。

> パッチの最後の方に Patches #2028628 が混入してませんか?
はい。すみません。

> タグを小文字で書くとOKですが、大文字で書くとおかしくなる
> みたいです。
ラベルを szLabel にコピーしたとき、strlwr のつもりで tolower になっていました。
このため、大文字がまったくおかしな振る舞いになっていました。

2008/8/25 (月) 18:44:41 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 2.0.50727)
[5411] Re5:HTMLアウトライン解析の段落処理
▼ あろかさん
大文字の件は_tolowerをstrlwrに変更することで解決しました。
他に気づいた点をば。

1) Pエレメント内にAエレメントがあった場合
 インラインエレメントに関しては、パッチ適用前と同様にPに
 ぶら下がる形になるべきではないでしょうか?

2) P以外で終了タグが省略可能なもの
 HEAD,BODY,LI,DT,DD,TR,TH,TD,OPTIONなどが終了タグ省略
 可能なようですが、対処漏れがあると思います。

3) TDエレメント内にPエレメントがあった場合
 次のTRエレメントのアウトラインがおかしくなるようです。

<html>
<head>
<title>アウトライン解析テスト用3</title>
  <meta NAME=GENERATOR CONTENT="HANDMADE">
  <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=Shift_JIS">
</head>
<body>
<p>パラグラフ1 <a href="http://sourceforge.net/">リンク1</a></p>
<ol>
<li>
階層1A
<li>
階層1B
</li>
</ol>
<table border=1>
<tr><th>ヘッダ1</th><th>ヘッダ2</th></tr>
<tr><td>データ1A <p><a href="http://sourceforge.net/">リンク2</a></td><td>データ1B</td></tr>
<tr><td>データ2A</td><td>データ2B</td></tr>
</table>
</body>
</html>

2008/8/29 (金) 08:11:14 あろか  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
[5412] Re6:HTMLアウトライン解析の段落処理
▼ なすこじさん
> 1) Pエレメント内にAエレメントがあった場合
>  インラインエレメントに関しては、パッチ適用前と同様にPに
>  ぶら下がる形になるべきではないでしょうか?
そうですね。アウトラインに残すなら適用前の振る舞いに直したいです。
逆にインラインエレメント自体アウトラインに不要かと思ったのですがその点はいかがでしょうか。

> 2) P以外で終了タグが省略可能なもの
>  HEAD,BODY,LI,DT,DD,TR,TH,TD,OPTIONなどが終了タグ省略
>  可能なようですが、対処漏れがあると思います。
まずはpだけの改善をするつもりでした。
全部に対応しようとすると結構面倒なので諦めたのですが、やっぱりちゃんとやらないとまずいですかね。

> 3) TDエレメント内にPエレメントがあった場合
>  次のTRエレメントのアウトラインがおかしくなるようです。
修正します。

2008/8/31 (日) 05:54:22 なすこじ  
Mozilla/4.8 (Macintosh; U; PPC)
[5413] Re7:HTMLアウトライン解析の段落処理
▼ あろかさん
> > 1) Pエレメント内にAエレメントがあった場合
> >  インラインエレメントに関しては、パッチ適用前と同様にPに
> >  ぶら下がる形になるべきではないでしょうか?

> そうですね。アウトラインに残すなら適用前の振る舞いに直したいです。
> 逆にインラインエレメント自体アウトラインに不要かと思ったのですがその点はいかがでしょうか。


AやIMGの存在が分かると便利かもと思いましたが、アウトラインという観点からするとインラインエレメントは不要なのかもしれませんね。
なので、無くても良いと思います。

> > 2) P以外で終了タグが省略可能なもの
> >  HEAD,BODY,LI,DT,DD,TR,TH,TD,OPTIONなどが終了タグ省略
> >  可能なようですが、対処漏れがあると思います。

> まずはpだけの改善をするつもりでした。
> 全部に対応しようとすると結構面倒なので諦めたのですが、やっぱりちゃんとやらないとまずいですかね。


そういう事でしたら、まずはPだけでも良いと思います。

ではでは。

2008/9/8 (月) 01:09:21 あろか  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
[5415] Re8:HTMLアウトライン解析の段落処理
▼ なすこじさん
> 3) TDエレメント内にPエレメントがあった場合
>  次のTRエレメントのアウトラインがおかしくなるようです。

修正しました。pの終わりを判定する場所が不適切でした。

> AやIMGの存在が分かると便利かもと思いましたが、アウトラインという観点からするとインラインエレメントは不要なのかもしれませんね。
> なので、無くても良いと思います。

確かに便利ですね。
テキスト飾りとルビ要素はアウトラインから外すようにしましたが、他は従来どおりにしてあります。

diffをWikiのDevelop/8にアップロードしました。

2008/9/11 (木) 04:20:44 なすこじ  
Mozilla/4.0 (compatible; MSIE 6.0; KDDI-MA33) Opera 8.60 [ja]
[5425] Re9:HTMLアウトライン解析の段落処理
▼ あろかさん
ソースコードおよび動作を確認しました。
コミットOKと思います。
 
1点確認ですが、CEditDoc.cppの2955,2958行でpLineのみ更新してiを更新していないのは意識的なものでしょうか?
動作に大きな影響は無さそうですがちょっと気になりました。

2008/9/14 (日) 15:05:38 あろか  
Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.9.0.1) Gecko/2008070208 Firefox/3.0.1
[5427] Re10:HTMLアウトライン解析の段落処理
▼ なすこじさん
> ▼ あろかさん
> ソースコードおよび動作を確認しました。
> コミットOKと思います。
>
> 1点確認ですが、CEditDoc.cppの2955,2958行でpLineのみ更新してiを更新していないのは意識的なものでしょうか?
> 動作に大きな影響は無さそうですがちょっと気になりました。


度々の確認ありがとうございます。
ご指摘の二箇所にi++;を加えてコミットしました。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.81
[ut:0.020][st:0.000]