差分

→‎URI: URLを更新。
1行目: 1行目: −
「Hiki2MediaWiki for SRW Wiki」は、記事移植の際に必要なHiki書式からMediaWiki書式への変換を行うコンバータです。JavaScriptを用いて、旧wikiの記事「[http://hiki.cre.jp/SRW/?ConvertingHikiFormatToMediawikiFormat Hiki書式からMediawiki書式への変換]」に従った変換を自動で行います。記事移植の効率化に役立てていただければ幸いです。
+
「Hiki2MediaWiki for SRW Wiki」は、記事移植の際に必要な Hiki 書式からMediaWiki書式への変換を行うコンバータです。JavaScriptを用いて、旧wikiの記事「[http://hiki.cre.jp/SRW/?ConvertingHikiFormatToMediawikiFormat Hiki書式からMediawiki書式への変換]」に従った変換を自動で行います。記事移植の効率化に役立てていただければ幸いです。
    
使い方などについての質問は[[利用者・トーク:Ochaochaocha3|トークページ]]にてお願いいたします。
 
使い方などについての質問は[[利用者・トーク:Ochaochaocha3|トークページ]]にてお願いいたします。
    
== URI ==
 
== URI ==
http://www.li-sa.net/ocha3/hiki2mw/
+
;コンバータ
 +
:http://www.li-sa.jp/ocha3/hiki2mw/srw/
 +
;GitHubレポジトリ
 +
:https://github.com/ochaochaocha3/hiki2mw-srw
    
== 動作環境 ==
 
== 動作環境 ==
14行目: 17行目:     
== 機能・特徴 ==
 
== 機能・特徴 ==
*以下の要素のHiki書式からMediaWiki書式への変換
+
[https://github.com/ochaochaocha3/hiki2mw-srw GitHubレポジトリ]のREADMEをご参照ください。
**見出し
  −
**表
  −
**定義リスト(:用語:説明)
  −
**URIリンク
  −
**パイプ付きリンク(<nowiki>[[A|B]]</nowiki>)
  −
**取消線(== 〜 ==)
  −
**強制改行(<nowiki>{{br}}</nowiki>)
  −
**Amazonリンク
  −
**整形済みテキスト(行頭がスペースまたはタブ。<<< 〜 >>> には現在は未対応)
  −
**引用(行頭が "")
  −
**コメント行
  −
*不要要素の削除
  −
**<nowiki>{{toc}}</nowiki>など
  −
*見出しレベル調整
  −
**見出しレベルを順次下降するように調整
  −
*リンク解析
  −
**リンク切れが生じやすい「英字名ページへのリンク」、「WikiName」、「括弧を含む名前のページへのリンク」の一覧表示
  −
**有効/無効設定可
  −
*ブラウザのJavaScriptエンジンを使用する、クライアント側での完全実行
  −
**入力されたソースは、ネットワーク上には一切送信されない
      
== 更新履歴 ==
 
== 更新履歴 ==
*2012年7月31日(Ver. 2.0.2)
+
最新版は '''ver. 2.2.3''' (2013年3月10日更新)です。
**見出しレベル調整のアルゴリズムを変更。
+
 
**URIリンクを含む定義リストの変換に関するバグ(再発)を修正。
+
詳細は、コンバータ付属の[http://www.li-sa.jp/ocha3/hiki2mw/changelog.html 更新履歴ページ]をご参照ください。
*2012年7月7日(Ver. 2.0.1)
  −
**表の行末に空列を生成しないよう修正。
  −
**コメントアウトされた見出しも(コメントアウトされたまま)変換するよう変更。
  −
*2012年6月29日(Ver. 2.0)
  −
**リンク解析機能を追加。
  −
***リンク切れが生じやすい「英字名ページへのリンク」、「WikiName」、「括弧を含む名前のページへのリンク」を一覧表示します(有効/無効設定可)。
  −
***英字名ページへのリンク、WikiNameには旧wiki上のページへのリンクが設定されるため、リンク先を1クリックで確認することができます。
  −
**対応書式を追加。
  −
***整形済みテキスト(行頭がスペースまたはタブ。<<< 〜 >>> には現在は未対応)
  −
***取消線(== 〜 ==)
  −
***引用(行頭が "")
  −
**動作に関する設定を保存する機能を追加。
  −
***Cookieを使用します。
  −
**MediaWiki書式のソースの整形機能を改良。
  −
***整形済みテキスト、見出し、引用、表の前に空行を入れる(ソースの可読性の向上)。
  −
***コメント行の前の空行を除く(MediaWiki上での余分な空白の表示を防ぐ)。
  −
***見出し内の全角括弧の前の余分な空白を除く。
  −
*2012年6月21日(Ver. 1.3.3)
  −
**UIを変更。
  −
*2012年6月21日(Ver. 1.3.2)
  −
**MediaWiki書式の見出しのレベルを2以下にするよう修正。
  −
*2012年6月17日(Ver. 1.3.1)
  −
**匿名URIリンクの変換を正しく行うよう修正。
  −
**MediaWiki書式のソースをフォーカス時に選択状態にする機能を追加。
  −
**リファクタリング。変換部と制御部を独立化。
  −
*2012年6月7日(Ver. 1.3)
  −
**表の変換に対応。
  −
*2012年5月30日(Ver. 1.2.2)
  −
**強制改行(<nowiki>{{br}}</nowiki>)が正しく変換されない点を修正。
  −
*2012年5月29日(Ver. 1.2.1)
  −
**UIを改良。
  −
**配列の処理方法を改良。
  −
*2012年5月27日(Ver. 1.2)
  −
**URIリンクの変換に対応。
  −
**URIリンクを含む定義リストの変換に関するバグを修正。
  −
**見出しレベルの調整機能を改良。
  −
*2012年5月17日(Ver. 1.1)
  −
**Amazonリンクの変換に関するバグを修正。
  −
**アップロード場所を変更。直接使用可能に。
  −
**現在未対応の、表の書式変換を行うプログラムを書いています。オーソドックスな見出し行+通常行の表の変換は可能になりました。今後、見出し列や、行・列の結合に対応させたいと考えているところです。
  −
*2012年5月7日(Ver. 1.0)
  −
**初公開。
      
== 技術的メモ ==
 
== 技術的メモ ==
    
=== 見出しレベル調整の速度 ===
 
=== 見出しレベル調整の速度 ===
ランダムなレベルの見出し100,000個の変換に要した時間。表記がない場合、単位はms。
+
ランダムなレベルの見出し100,000個の変換に要した時間を、Firebug 1.10.0のプロファイル機能を用いて測定した。表記がない場合、単位はms。
    
環境はCore2 Quad Q9550、メモリ4 GB、Ubuntu 12.04 x64、Firefox 14.0.1。  
 
環境はCore2 Quad Q9550、メモリ4 GB、Ubuntu 12.04 x64、Firefox 14.0.1。  
102行目: 43行目:  
| style="text-align: right" | 59 || style="text-align: right" | 59 || style="text-align: right" | 59
 
| style="text-align: right" | 59 || style="text-align: right" | 59 || style="text-align: right" | 59
 
|-
 
|-
! <code>hasDescendants()</code> の回数(回)
+
! <code>hasDescendants()</code> の回数/回
 
| style="text-align: right" | 244471 || style="text-align: right" | 244567 || style="text-align: right" | 244606
 
| style="text-align: right" | 244471 || style="text-align: right" | 244567 || style="text-align: right" | 244606
 
|-
 
|-
147行目: 88行目:  
| style="text-align: right" | 436 || style="text-align: right" | 434 || style="text-align: right" | 436
 
| style="text-align: right" | 436 || style="text-align: right" | 434 || style="text-align: right" | 436
 
|-
 
|-
! l469: <code>convertLineByLine
+
! l469: <code>convertLineByLine()</code>
 
| style="text-align: right" | 6764 || style="text-align: right" | 6718 || style="text-align: right" | 6878
 
| style="text-align: right" | 6764 || style="text-align: right" | 6718 || style="text-align: right" | 6878
 
|}
 
|}
178行目: 119行目:  
|}
 
|}
   −
同じアルゴリズムだが、従来の<code>investigateHeadings()</code>より若干速いくらいまで速度が上がった。特に<code>appendTo()</code>に要する時間が劇的に短くなった。配列への追加は非常に高速。
+
同じアルゴリズムだが、従来の <code>investigateHeadings()</code> より若干速いくらいまで速度が上がった。特に <code>appendTo()</code> に要する時間が劇的に短くなった。配列への追加は非常に高速。
 +
 
 +
==== 幅優先探索(配列、関数呼び出しなし)(ver. 2.0.3) ====
 +
 
 +
変更点は、<code>headingsBFS()</code> 中にコールバック関数の処理を直接記述し、関数呼び出しをなくしたことのみ。
 +
 
 +
{| class="wikitable"
 +
|-
 +
! 関数 / # !! 1 !! 2 !! 3
 +
|-
 +
! 全体時間
 +
| style="text-align: right" | 1282 || style="text-align: right" | 1377 || style="text-align: right" | 1342
 +
|-
 +
! l149: <code>appendTo()</code>
 +
| style="text-align: right" | 59 || style="text-align: right" | 58 || style="text-align: right" | 55
 +
|-
 +
! l156: <code>newHeading()</code>
 +
| style="text-align: right" | 431 || style="text-align: right" | 465 || style="text-align: right" | 476
 +
|-
 +
! l174: <code>appendHeading()</code>
 +
| style="text-align: right" | 124 || style="text-align: right" | 123 || style="text-align: right" | 120
 +
|-
 +
! l195: <code>headingsBFS()</code>
 +
| style="text-align: right" | 120 || style="text-align: right" | 125 || style="text-align: right" | 123
 +
|-
 +
! l459: <code>convertLineByLine()</code>
 +
| style="text-align: right" | 1047 || style="text-align: right" | 1078 || style="text-align: right" | 1086
 +
|}
 +
 
 +
関数呼び出しのオーバーヘッドがなくなり、処理が速くなった。