20行目: |
20行目: |
| **URIリンク | | **URIリンク |
| **パイプ付きリンク(<nowiki>[[A|B]]</nowiki>) | | **パイプ付きリンク(<nowiki>[[A|B]]</nowiki>) |
| + | **取消線(== 〜 ==) |
| **強制改行(<nowiki>{{br}}</nowiki>) | | **強制改行(<nowiki>{{br}}</nowiki>) |
| **Amazonリンク | | **Amazonリンク |
| + | **整形済みテキスト(行頭がスペースまたはタブ。<<< 〜 >>> には現在は未対応) |
| + | **引用(行頭が "") |
| **コメント行 | | **コメント行 |
| *不要要素の削除 | | *不要要素の削除 |
| **<nowiki>{{toc}}</nowiki>など | | **<nowiki>{{toc}}</nowiki>など |
− | *見出しレベルを順次下降するように調整する機能 | + | *見出しレベル調整 |
| + | **見出しレベルを順次下降するように調整 |
| + | *リンク解析 |
| + | **リンク切れが生じやすい「英字名ページへのリンク」、「WikiName」、「括弧を含む名前のページへのリンク」の一覧表示 |
| **有効/無効設定可 | | **有効/無効設定可 |
| *ブラウザのJavaScriptエンジンを使用する、クライアント側での完全実行 | | *ブラウザのJavaScriptエンジンを使用する、クライアント側での完全実行 |
31行目: |
37行目: |
| | | |
| == 更新履歴 == | | == 更新履歴 == |
| + | *2012年7月31日(Ver. 2.0.2) |
| + | **見出しレベル調整のアルゴリズムを変更。 |
| + | **URIリンクを含む定義リストの変換に関するバグ(再発)を修正。 |
| *2012年7月7日(Ver. 2.0.1) | | *2012年7月7日(Ver. 2.0.1) |
| **表の行末に空列を生成しないよう修正。 | | **表の行末に空列を生成しないよう修正。 |
73行目: |
82行目: |
| *2012年5月7日(Ver. 1.0) | | *2012年5月7日(Ver. 1.0) |
| **初公開。 | | **初公開。 |
| + | |
| + | == 技術的メモ == |
| + | |
| + | === 見出しレベル調整の速度 === |
| + | ランダムなレベルの見出し100,000個の変換に要した時間。表記がない場合、単位はms。 |
| + | |
| + | 環境はCore2 Quad Q9550、メモリ4 GB、Ubuntu 12.04 x64、Firefox 14.0.1。 |
| + | |
| + | ==== <code>investigateHeadings()</code>(ver. 2.0.1以前) ==== |
| + | |
| + | {| class="wikitable" |
| + | |- |
| + | ! 関数 / # !! 1 !! 2 !! 3 |
| + | |- |
| + | ! 全体時間 |
| + | | style="text-align: right" | 1495 || style="text-align: right" | 1495 || style="text-align: right" | 1485 |
| + | |- |
| + | ! l153: <code>hasDescendants()</code> |
| + | | style="text-align: right" | 59 || style="text-align: right" | 59 || style="text-align: right" | 59 |
| + | |- |
| + | ! <code>hasDescendants()</code> の回数(回) |
| + | | style="text-align: right" | 244471 || style="text-align: right" | 244567 || style="text-align: right" | 244606 |
| + | |- |
| + | ! l156: <code>hasChildren()</code> |
| + | | style="text-align: right" | 26 || style="text-align: right" | 26 || style="text-align: right" | 26 |
| + | |- |
| + | ! l160: <code>newHeading()</code> |
| + | | style="text-align: right" | 167 || style="text-align: right" | 169 || style="text-align: right" | 177 |
| + | |- |
| + | ! l169: <code>investigateHeadings()</code> |
| + | | style="text-align: right" | 198 || style="text-align: right" | 198 || style="text-align: right" | 198 |
| + | |- |
| + | ! l233: <code>adjustHeadingLevel()</code> |
| + | | style="text-align: right" | 79 || style="text-align: right" | 80 || style="text-align: right" | 78 |
| + | |- |
| + | ! l281: <code>convertHeadings()</code> |
| + | | style="text-align: right" | 276 || style="text-align: right" | 276 || style="text-align: right" | 274 |
| + | |- |
| + | ! l494: <code>convertLineByLine()</code> |
| + | | style="text-align: right" | 1231 || style="text-align: right" | 1226 || style="text-align: right" | 1236 |
| + | |} |
| + | |
| + | 処理速度は実用的だが、<code>hasDescendants()</code> の呼び出し回数が無駄に多い。 |
| + | |
| + | ==== 幅優先探索(リスト構造)(ver. 2.0.2試作) ==== |
| + | |
| + | {| class="wikitable" |
| + | |- |
| + | ! 関数 / # !! 1 !! 2 !! 3 |
| + | |- |
| + | ! 全体時間 |
| + | | style="text-align: right" | 7022 || style="text-align: right" | 7026 || style="text-align: right" | 7166 |
| + | |- |
| + | ! l155: <code>appendTo()</code> |
| + | | style="text-align: right" | 5422 || style="text-align: right" | 5360 || style="text-align: right" | 5518 |
| + | |- |
| + | ! l173: <code>newHeading()</code> |
| + | | style="text-align: right" | 445 || style="text-align: right" | 458 || style="text-align: right" | 461 |
| + | |- |
| + | ! l190: <code>appendHeading()</code> |
| + | | style="text-align: right" | 5491 || style="text-align: right" | 5432 || style="text-align: right" | 5586 |
| + | |- |
| + | ! l229: <code>headingsBFS()</code> |
| + | | style="text-align: right" | 436 || style="text-align: right" | 434 || style="text-align: right" | 436 |
| + | |- |
| + | ! l469: <code>convertLineByLine |
| + | | style="text-align: right" | 6764 || style="text-align: right" | 6718 || style="text-align: right" | 6878 |
| + | |} |
| + | |
| + | アルゴリズムに無駄がなくなったが、非常に遅くなった。JavaScriptではオブジェクトメンバへのアクセスが遅いことが原因? |
| + | |
| + | ==== 幅優先探索(配列)(ver. 2.0.2) ==== |
| + | |
| + | {| class="wikitable" |
| + | |- |
| + | ! 関数 / # !! 1 !! 2 !! 3 |
| + | |- |
| + | ! 全体時間 |
| + | | style="text-align: right" | 1479 || style="text-align: right" | 1379 || style="text-align: right" | 1442 |
| + | |- |
| + | ! l154: <code>appendTo()</code> |
| + | | style="text-align: right" | 59 || style="text-align: right" | 56 || style="text-align: right" | 57 |
| + | |- |
| + | ! l164: <code>newHeading()</code> |
| + | | style="text-align: right" | 398 || style="text-align: right" | 411 || style="text-align: right" | 427 |
| + | |- |
| + | ! l183: <code>appendHeading()</code> |
| + | | style="text-align: right" | 130 || style="text-align: right" | 125 || style="text-align: right" | 124 |
| + | |- |
| + | ! l222: <code>headingsBFS()</code> |
| + | | style="text-align: right" | 278 || style="text-align: right" | 258 || style="text-align: right" | 258 |
| + | |- |
| + | ! l467: <code>convertLineByLine()</code> |
| + | | style="text-align: right" | 1178 || style="text-align: right" | 1149 || style="text-align: right" | 1182 |
| + | |} |
| + | |
| + | 同じアルゴリズムだが、従来の<code>investigateHeadings()</code>より若干速いくらいまで速度が上がった。特に<code>appendTo()</code>に要する時間が劇的に短くなった。配列への追加は非常に高速。 |