Skip to content

リリースノートの差分を埋めるスクリプトです

Notifications You must be signed in to change notification settings

KenichiroTanaka/mergern

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 

Repository files navigation

mergern.py

概要:リリースノートを統合するためのスクリプト

目的:release-9.0.sgmlやrelease-9.1.sgmlには多くの同じ記述があり
   これのを他のリリースノートにコピーする作業には多くの時間が
   必要だった。コピーペースト作業は手動で行う作業である必要は
   無く、これを自動化する。

動作確認環境:python 2.7.8

使用方法: ./merge.py 翻訳文があるsgmlファイル(原文) 翻訳対象のsgmlファイル [翻訳対象のセクション(実質マイナーバージョン)]


動作仕様:
1.原文から<!--で始まる行を搜す
2.2行目に英文1行目があるのでこれをキーとするディクショナリを作る
3.1.の<!--からまでをリストオブジェクトとして格納し2.のvalueとする
4.翻訳対象と3.で作成したディクショナリを照合し、以降、までを
 置き換える。

サンプル:
     sample以下にファイルを配置しています。
     release-9.0.sgml サンプル原文
release-9.1.orid.sgml 翻訳前翻訳対象
     release-9.1.sgml 翻訳後はこのファイルのようになっていなければならない


実行例1)
     %./mergern.py sample/release-9.0.sgml sample/release-9.1.orid.sgml

最もシンプルなケース。9.1.7をコピーする

     実行例2)

     %./mergern.py sample/release-9.0.sgml sample/release-9.1.orid.sgml 2

release-9.1.orid.sgmlにdummyデータを3行含ませている。9.1.6をコピーする。
     3件の警告が発生する


FAQ:
1.英文の1行目だけを比較しているようですが、1行目がたまたま同じということが
 あるのではないでしょうか。誤動作しませんか。
 
 はい、可能性はあります。2行目以降も照合し、異なる場合は警告を出します。
 警告が上がった場合は警告箇所を必ず確認ください。

2.HTMLの解析方法が力技です。HTMLParserやBeautifulSoupeは利用しないのでしょうか。

 はい。HTMLparserでは外部参照の自動変換の問題や、バージョンごとに動作が若干
 異なる可能性がありました。また、BeautifulSoupeは別途インストールの手間が必要です。
 PostgreSQLのマニュアルは厳格に構造化されていたため、外部のパーサーを使わなくても
 十分解析が可能と判断しました。

About

リリースノートの差分を埋めるスクリプトです

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published