Created
December 18, 2011 08:50
-
-
Save kiwanami/1492766 to your computer and use it in GitHub Desktop.
Gentoo翻訳まとめページ生成
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/ruby | |
# -*- coding: utf-8 -*- | |
# cvs diff -u -D20111001 -D20111101 -N . 2>/dev/null|egrep 'Index|version|date' | |
BASE_URL = 'http://www.gentoo.org/doc/ja/' | |
class Document | |
def initialize(path) | |
@path = path | |
@title = path | |
@new_flag = true | |
end | |
def title(t) | |
@title = t | |
end | |
def plus_version(ver) | |
@plus_version = ver | |
end | |
def minus_version(ver) | |
@minus_version = ver | |
@new_flag = false | |
end | |
def plus_date(d) | |
@plus_date = d | |
end | |
def minus_date(d) | |
@minus_date = d | |
@new_flag = false | |
end | |
def new_doc? | |
@new_flag | |
end | |
def to_xml | |
" <li> | |
#{_to_xml} | |
</li> | |
" | |
end | |
def _to_xml | |
@new_flag ? | |
"<uri link=\"#{BASE_URL}#{@path}\">#{@title}</uri> (新たな翻訳)" : | |
"<uri link=\"#{BASE_URL}#{@path}\">#{@title}</uri> (version. #{@minus_version} (#{@minus_date}) → #{@plus_version} (#{@plus_date}))" | |
end | |
end | |
def main | |
documents = [] | |
current_doc = nil | |
loop do | |
line = gets | |
break unless line | |
case line | |
when /^Index: metadoc\.xml/ | |
current_doc = nil | |
when /^Index: (.*)$/ | |
documents << current_doc if current_doc | |
current_doc = Document.new(Regexp.last_match[1]) | |
when /^\+ *\<version\>([^<]+)<\/version\>/ | |
current_doc.plus_version(Regexp.last_match[1]) if current_doc | |
when /^\- *\<version\>([^<]+)<\/version\>/ | |
current_doc.minus_version(Regexp.last_match[1]) if current_doc | |
when /^\+ *\<date\>([^<]+)<\/date\>/ | |
current_doc.plus_date(Regexp.last_match[1]) if current_doc | |
when /^\- *\<date\>([^<]+)<\/date\>/ | |
current_doc.minus_date(Regexp.last_match[1]) if current_doc | |
end | |
end | |
documents << current_doc if current_doc | |
new_documents = documents.select {|i| i.new_doc?} | |
mod_documents = documents - new_documents | |
maps = { | |
'DATE' => '2011-11-01', | |
'YEAR' => 2011, 'MONTH' => 10, | |
'NEW_NUM' => new_documents.size, | |
'STR_NEWDOC' => new_documents.map{|i| i.to_xml }, | |
'STR_MODDOC' => mod_documents.map{|i| i.to_xml }, | |
} | |
puts (maps.inject(DATA.read) { |acc, i| | |
k,v = i | |
acc.gsub("%#{k}%",v.to_s) | |
}) | |
end | |
main | |
__END__ | |
<?xml version='1.0'?> | |
<?xml-stylesheet href="/xsl/guide.xsl" type="text/xsl"?> | |
<news gentoo="yes" category="gentoojp"> | |
<poster>naota</poster> | |
<date>%DATE%</date> | |
<title>翻訳プロジェクト%MONTH%月の活動内容</title> | |
<body> | |
<p> | |
GentooJP翻訳プロジェクト%YEAR%年%MONTH%月の活動内容を公表します。 | |
%MONTH%月はx86/amd64/PPCハンドブックおよび新たな%NEW_NUM%つのドキュメントの翻訳を行ないました。 | |
先月の3名の方の翻訳を反映しました。 | |
</p> | |
<ul> | |
%STR_NEWDOC% | |
%STR_MODDOC% | |
</ul> | |
<p> | |
GentooJP翻訳プロジェクトは引き続き、特に迅速な更新が望まれる次の文書に対して、翻訳者を募集しています。 | |
</p> | |
<ul> | |
<li> | |
<uri link="http://www.gentoo.org/doc/ja/handbook/">Gentoo ハンドブック</uri> | |
</li> | |
<li> | |
<uri link="http://www.gentoo.org/doc/ja/openrc-migration.xml">BaselayoutとOpenRCの移行ガイド</uri> | |
</li> | |
<li> | |
<uri link="http://www.gentoo.org/doc/ja/gentoo-x86-quickinstall.xml">Gentoo Linux x86クイックインストールガイド</uri> | |
</li> | |
<li> | |
<uri link="http://www.gentoo.org/doc/ja/xorg-config.xml">X サーバー設定ガイド</uri> | |
</li> | |
<li> | |
<uri link="http://www.gentoo.org/doc/ja/alsa-guide.xml">Gentoo Linux ALSA ガイド</uri> | |
</li> | |
</ul> | |
<p> | |
翻訳に興味があり参加してみたい方は、ぜひ<uri link="http://www.gentoo.gr.jp/jpmain/translation.xml">GentooJP翻訳プロジェクト</uri> | |
をご覧ください。 | |
</p> | |
</body> | |
</news> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment