2 # -*- encoding: utf-8 -*-
4 # otp_imgswap.py : otp image tag swapper
13 usage = """usage: %s <target file> <output_file>""" % (os.path.basename(sys.argv[0]),)
15 rex_fig_ref = re.compile(ur"""\*図{([A-Za-z0-9_]+)}""")
16 rex_fig_def = re.compile(ur"""^☆図{([A-Za-z0-9_]+)}""")
17 rex_table_ref = re.compile(ur"""\*表{([A-Za-z0-9_]+)}""")
18 rex_table_def = re.compile(ur"""^☆表{([A-Za-z0-9_]+)}""")
19 rex_list_ref = re.compile(ur"""\*リスト{([A-Za-z0-9_]+)}""")
20 rex_list_def = re.compile(ur"""^☆リスト{([A-Za-z0-9_]+)}""")
23 in_f = codecs.open(sys.argv[1], "r", "utf_8" )
24 out_f = codecs.open(sys.argv[2], "w", "utf_8" )
37 match = rex_fig_def.search(line)
40 fig_count = fig_count + 1
41 dict_fig[id] = fig_count
43 match = rex_table_def.search(line)
46 table_count = table_count + 1
47 dict_table[id] = table_count
49 match = rex_list_def.search(line)
52 list_count = list_count + 1
53 dict_list[id] = list_count
58 for item in dict_table:
59 key = u"*表{%s}" % (item,)
60 val = u"*表%d" % dict_table[item]
61 replace_keys.append((key, val))
62 key = u"☆表{%s}" % (item,)
63 val = u"☆表%d" % dict_table[item]
64 replace_keys.append((key, val))
66 for item in dict_list:
67 key = u"*リスト{%s}" % (item,)
68 val = u"*リスト%d" % dict_list[item]
69 replace_keys.append((key, val))
70 key = u"☆リスト{%s}" % (item,)
71 val = u"☆リスト%d" % dict_list[item]
72 replace_keys.append((key, val))
75 key = u"*図{%s}" % (item,)
76 val = u"*図%d" % dict_fig[item]
77 replace_keys.append((key, val))
78 key = u"☆図{%s}" % (item,)
79 val = u"☆図%d" % dict_fig[item]
80 replace_keys.append((key, val))
84 in_f = codecs.open(sys.argv[1], "r", "utf_8" )
86 for (key, val) in replace_keys:
87 line = line.replace(key, val)
89 if rex_fig_ref.search(line):
90 match = rex_fig_ref.search(line)
91 for group in match.groups():
92 print "fig %s isn't defined." % (group,)
93 if rex_list_ref.search(line):
94 match = rex_list_ref.search(line)
95 for group in match.groups():
96 print "list %s isn't defined." % (group,)
97 if rex_table_ref.search(line):
98 match = rex_table_ref.search(line)
99 for group in match.groups():
100 print "table %s isn't defined." % (group,)
102 if (re.search(ur"""^☆include<(.*)>$""", line)):
103 fn = re.search(ur"""^☆include<(.*)>$""", line).group(1)
105 if re.search(r":.*$", fn):
106 enc = re.search(r":(.*)$", fn).group(1)
107 fn = re.search(r"^(.*):", fn).group(1)
108 if os.path.isfile(fn):
109 fo = codecs.open(fn, "r", enc )
111 print >> out_f, content
114 print "include: not found: %s" % fn
117 print >> out_f, line,
119 print "fig: %d, table: %d, list:%d." % (fig_count, table_count, list_count)