11 import re |
11 import re |
12 import subprocess |
12 import subprocess |
13 import os |
13 import os |
14 import pkg_resources |
14 import pkg_resources |
15 import glob, os, re, sys |
15 import glob, os, re, sys |
|
16 from docbook import Writer |
|
17 from docutils.core import publish_file |
|
18 |
|
19 #repo="/home/hg/repos/test_review/sttp/" |
16 repo=sys.argv[1] |
20 repo=sys.argv[1] |
17 names = glob.glob(os.path.join(repo , 'ch*.xml')) |
21 #names = glob.glob(os.path.join(repo , '*.rst')) |
18 """ |
22 tmp_folder="/home/hg/repos/SEES-hacks/temp/" |
|
23 |
|
24 |
19 chapterno=0 |
25 chapterno=0 |
20 |
26 |
21 def convert2xml(file): |
27 # def convert2xml(file): |
22 # print folder,subfolder,file |
28 # # print folder,subfolder,file |
|
29 # global chapterno |
|
30 # name=file.split('/')[-1] |
|
31 # name=str(chapterno)+name.split('.')[0] |
|
32 # # full_file=os.path.join(folder,file) |
|
33 # # if file.endswith('.rst'): |
|
34 # print file |
|
35 # xml_file=name+'.xml' |
|
36 # command="rst2xml.py %s > %s" %(file , xml_file) |
|
37 # print command |
|
38 # a=subprocess.Popen(command , shell=True) |
|
39 |
|
40 |
|
41 |
|
42 # def walk(repo): |
|
43 # global chapterno |
|
44 # mainfolder='/home/amit/sttp_latest/' |
|
45 # for readline in open('index.config','r').readlines(): |
|
46 # chapterno+=1 |
|
47 # filename=mainfolder+readline |
|
48 # convert2xml(filename) |
|
49 |
|
50 |
|
51 |
|
52 # def convert2docbook(name ,xml_string): |
|
53 # """changing tags to convert the xml to docbook""" |
|
54 |
|
55 # xml_string=re.sub('<strong>','<emphasis role="strong">', xml_string) |
|
56 # xml_string=re.sub('</strong>' ,'</emphasis>',xml_string) |
|
57 # xml_string=re.sub('<literal_block xml:space="preserve">','<literal_block xml:space="preserve">\n',xml_string) |
|
58 # xml_string=re.sub('<literal_block xml:space="preserve">','<programlisting>',xml_string) |
|
59 # xml_string=re.sub('</literal_block>','</programlisting>',xml_string) |
|
60 # xml_string=re.sub('<paragraph>' ,'<para>',xml_string) |
|
61 # xml_string=re.sub('</paragraph>' ,'</para>',xml_string) |
|
62 |
|
63 # xml_string=re.sub('<bullet_list bullet="[-*+]">','<itemizedlist mark="*">',xml_string,) |
|
64 # xml_string=re.sub('</bullet_list>','</itemizedlist>',xml_string) |
|
65 # xml_string=re.sub('<list_item>','<listitem>',xml_string) |
|
66 # xml_string=re.sub('</list_item>','</listitem>',xml_string) |
|
67 # xml_string=re.sub('<enumerated_list enumtype="arabic" prefix="." suffix=".">', '<orderedlist numeration="arabic">',xml_string) |
|
68 # xml_string=re.sub('<enumerated_list enumtype="arabic" prefix="" suffix=".">', '<orderedlist numeration="arabic">',xml_string) |
|
69 # xml_string=re.sub('</enumerated_list>', '</orderedlist>',xml_string) |
|
70 # xml_string=re.sub('<line_block>', '',xml_string) |
|
71 # xml_string=re.sub('</line_block>', '',xml_string) |
|
72 # xml_string=re.sub('<line>', '',xml_string) |
|
73 # xml_string=re.sub('</line>', '',xml_string) |
|
74 # xml_string=re.sub('<block_quote>', '',xml_string) |
|
75 # xml_string=re.sub('</block_quote>', '',xml_string) |
|
76 # xml_string=re.sub('<title_reference>', '',xml_string) |
|
77 # xml_string=re.sub('</title_reference>', '',xml_string) |
|
78 # xml_string=re.sub('<definition>', '',xml_string) |
|
79 # xml_string=re.sub('</definition>', '',xml_string) |
|
80 # xml_string=re.sub('<definition_list_item>', '',xml_string) |
|
81 # xml_string=re.sub('</definition_list_item>', '',xml_string) |
|
82 # xml_string=re.sub('<definition_list>', '',xml_string) |
|
83 # xml_string=re.sub('</definition_list>', '',xml_string) |
|
84 # xml_string=re.sub('<term>', '',xml_string) |
|
85 # xml_string=re.sub('</term>', '',xml_string) |
|
86 # xml_string=re.sub('<entry>', '',xml_string) |
|
87 # xml_string=re.sub('</entry>', '',xml_string) |
|
88 # xml_string=re.sub('<row>', '',xml_string) |
|
89 # xml_string=re.sub('</row>', '',xml_string) |
|
90 # xml_string=re.sub('<tbody>', '',xml_string) |
|
91 # xml_string=re.sub('</tbody>', '',xml_string) |
|
92 # xml_string=re.sub('<table>', '',xml_string) |
|
93 # xml_string=re.sub('</table>', '',xml_string) |
|
94 # xml_string=re.sub('<thead>', '',xml_string) |
|
95 # xml_string=re.sub('</thead>', '',xml_string) |
|
96 |
|
97 # xml_string=re.sub('<tgroup.*"/>', '',xml_string) |
|
98 # xml_string=re.sub('</tgroup>', '',xml_string) |
|
99 # chapter= ET.Element("chapter") |
|
100 # article=ET.SubElement(chapter,"article") |
|
101 # articleinfo=ET.SubElement(article,"articleinfo") |
|
102 |
|
103 # try: |
|
104 |
|
105 # # print name |
|
106 # tree = ET.fromstring(xml_string) |
|
107 # except: |
|
108 # pass |
|
109 # #print name |
|
110 |
|
111 # # tree=ET2.fromstring(xml_string) |
|
112 # #print "xml_string problem" |
|
113 |
|
114 # # print "fromstring" |
|
115 # try: |
|
116 # title= ET.SubElement(articleinfo,"title") |
|
117 # title_element=tree.find('title') |
|
118 # title.text=title_element.text |
|
119 # article.insert(1,tree) |
|
120 # except: |
|
121 # if name not in ('ch12index.xml',): |
|
122 # title= ET.SubElement(articleinfo,"title") |
|
123 # section_element=tree.find('section') |
|
124 # title_element=section_element.find('title') |
|
125 # title.text=title_element.text |
|
126 # article.insert(1,tree) |
|
127 |
|
128 # xml_string=ET.tostring(chapter) |
|
129 # xml_string=xml_string.replace('\\',' ') |
|
130 # xml_string=re.sub('<document[-A-Za-z=/_" .0-9:]*>' ,'',xml_string) |
|
131 # xml_string=re.sub('</document>' ,'',xml_string) |
|
132 # # xml_string=re.sub('</section></section></section>' ,'</section></section>',xml_string) |
|
133 # return xml_string |
|
134 |
|
135 def convert2docbook(file_name): |
|
136 global chapterno |
|
137 file_name=file_name.split()[0] |
|
138 name=file_name.split('/')[-1] |
|
139 |
|
140 xml_file_temp='/'.join(file_name.split('/')[:-2]) |
|
141 |
|
142 name='ch'+str(chapterno)+name.split('.')[0] |
|
143 docbook_file=tmp_folder+name+'.docbook' |
|
144 print docbook_file |
|
145 writer=Writer() |
|
146 # try: |
|
147 publish_file(source_path=file_name, destination_path=docbook_file,parser_name='restructuredtext', writer=writer) |
|
148 # except : |
|
149 # pass |
|
150 |
|
151 |
|
152 |
|
153 |
|
154 |
|
155 |
|
156 |
|
157 |
|
158 |
|
159 # for name in names: |
|
160 |
|
161 # #print name |
|
162 # #xml_string=open(name,'r').read() |
|
163 # xml_string=open(name,'r').read() |
|
164 # xml_string=convert2docbook(name,xml_string) |
|
165 # docbook_file=name.split('.')[0]+'.docbook' |
|
166 # f=open(docbook_file,'w') |
|
167 # try: |
|
168 # f.write(xml_string) |
|
169 # except: |
|
170 # pass |
|
171 def main(): |
|
172 |
23 global chapterno |
173 global chapterno |
24 name=file.split('/')[-1] |
174 # mainfolder='/home/hg/repos/sttp/' |
25 name=str(chapterno)+name.split('.')[0] |
175 for readline in open('/home/hg/repos/SEES-hacks/index.config','r').readlines(): |
26 # full_file=os.path.join(folder,file) |
|
27 # if file.endswith('.rst'): |
|
28 print file |
|
29 xml_file=name+'.xml' |
|
30 command="rst2xml.py %s > %s" %(file , xml_file) |
|
31 print command |
|
32 a=subprocess.Popen(command , shell=True) |
|
33 |
|
34 |
|
35 |
|
36 def walk(repo): |
|
37 global chapterno |
|
38 mainfolder='/home/amit/sttp_latest/' |
|
39 for readline in open('index.config','r').readlines(): |
|
40 chapterno+=1 |
176 chapterno+=1 |
41 filename=mainfolder+readline |
177 filename=repo+readline |
42 convert2xml(filename) |
178 print filename |
43 |
179 convert2docbook(filename) |
44 |
|
45 """ |
|
46 def convert2docbook(name ,xml_string): |
|
47 """changing tags to convert the xml to docbook""" |
|
48 |
|
49 xml_string=re.sub('<strong>','<emphasis role="strong">', xml_string) |
|
50 xml_string=re.sub('</strong>' ,'</emphasis>',xml_string) |
|
51 xml_string=re.sub('<literal_block xml:space="preserve">','<literal_block xml:space="preserve">\n',xml_string) |
|
52 xml_string=re.sub('<literal_block xml:space="preserve">','<programlisting>',xml_string) |
|
53 xml_string=re.sub('</literal_block>','</programlisting>',xml_string) |
|
54 xml_string=re.sub('<paragraph>' ,'<para>',xml_string) |
|
55 xml_string=re.sub('</paragraph>' ,'</para>',xml_string) |
|
56 |
|
57 xml_string=re.sub('<bullet_list bullet="[-*+]">','<itemizedlist mark="*">',xml_string,) |
|
58 xml_string=re.sub('</bullet_list>','</itemizedlist>',xml_string) |
|
59 xml_string=re.sub('<list_item>','<listitem>',xml_string) |
|
60 xml_string=re.sub('</list_item>','</listitem>',xml_string) |
|
61 xml_string=re.sub('<enumerated_list enumtype="arabic" prefix="." suffix=".">', '<orderedlist numeration="arabic">',xml_string) |
|
62 xml_string=re.sub('<enumerated_list enumtype="arabic" prefix="" suffix=".">', '<orderedlist numeration="arabic">',xml_string) |
|
63 xml_string=re.sub('</enumerated_list>', '</orderedlist>',xml_string) |
|
64 xml_string=re.sub('<line_block>', '',xml_string) |
|
65 xml_string=re.sub('</line_block>', '',xml_string) |
|
66 xml_string=re.sub('<line>', '',xml_string) |
|
67 xml_string=re.sub('</line>', '',xml_string) |
|
68 xml_string=re.sub('<block_quote>', '',xml_string) |
|
69 xml_string=re.sub('</block_quote>', '',xml_string) |
|
70 xml_string=re.sub('<title_reference>', '',xml_string) |
|
71 xml_string=re.sub('</title_reference>', '',xml_string) |
|
72 xml_string=re.sub('<definition>', '',xml_string) |
|
73 xml_string=re.sub('</definition>', '',xml_string) |
|
74 xml_string=re.sub('<definition_list_item>', '',xml_string) |
|
75 xml_string=re.sub('</definition_list_item>', '',xml_string) |
|
76 xml_string=re.sub('<definition_list>', '',xml_string) |
|
77 xml_string=re.sub('</definition_list>', '',xml_string) |
|
78 xml_string=re.sub('<term>', '',xml_string) |
|
79 xml_string=re.sub('</term>', '',xml_string) |
|
80 xml_string=re.sub('<entry>', '',xml_string) |
|
81 xml_string=re.sub('</entry>', '',xml_string) |
|
82 xml_string=re.sub('<row>', '',xml_string) |
|
83 xml_string=re.sub('</row>', '',xml_string) |
|
84 xml_string=re.sub('<tbody>', '',xml_string) |
|
85 xml_string=re.sub('</tbody>', '',xml_string) |
|
86 xml_string=re.sub('<table>', '',xml_string) |
|
87 xml_string=re.sub('</table>', '',xml_string) |
|
88 xml_string=re.sub('<thead>', '',xml_string) |
|
89 xml_string=re.sub('</thead>', '',xml_string) |
|
90 |
|
91 xml_string=re.sub('<tgroup.*"/>', '',xml_string) |
|
92 xml_string=re.sub('</tgroup>', '',xml_string) |
|
93 chapter= ET.Element("chapter") |
|
94 article=ET.SubElement(chapter,"article") |
|
95 articleinfo=ET.SubElement(article,"articleinfo") |
|
96 |
|
97 try: |
|
98 |
|
99 # print name |
|
100 tree = ET.fromstring(xml_string) |
|
101 except: |
|
102 pass |
|
103 #print name |
|
104 |
|
105 # tree=ET2.fromstring(xml_string) |
|
106 #print "xml_string problem" |
|
107 |
|
108 # print "fromstring" |
|
109 try: |
|
110 title= ET.SubElement(articleinfo,"title") |
|
111 title_element=tree.find('title') |
|
112 title.text=title_element.text |
|
113 article.insert(1,tree) |
|
114 except: |
|
115 if name not in ('ch12index.xml',): |
|
116 title= ET.SubElement(articleinfo,"title") |
|
117 section_element=tree.find('section') |
|
118 title_element=section_element.find('title') |
|
119 title.text=title_element.text |
|
120 article.insert(1,tree) |
|
121 |
|
122 xml_string=ET.tostring(chapter) |
|
123 xml_string=xml_string.replace('\\',' ') |
|
124 xml_string=re.sub('<document[-A-Za-z=/_" .0-9:]*>' ,'',xml_string) |
|
125 xml_string=re.sub('</document>' ,'',xml_string) |
|
126 # xml_string=re.sub('</section></section></section>' ,'</section></section>',xml_string) |
|
127 return xml_string |
|
128 |
|
129 |
|
130 |
|
131 |
|
132 |
|
133 |
180 |
134 if __name__=='__main__': |
181 if __name__=='__main__': |
135 |
182 main() |
136 for name in names: |
183 |
137 |
184 |
138 #print name |
185 |
139 #xml_string=open(name,'r').read() |
186 |
140 xml_string=open(name,'r').read() |
187 |
141 xml_string=convert2docbook(name,xml_string) |
188 |
142 docbook_file=name.split('.')[0]+'.docbook' |
189 |
143 f=open(docbook_file,'w') |
190 |
144 try: |
191 |
145 f.write(xml_string) |
192 |
146 except: |
193 |
147 pass |
194 |
148 |
195 |
149 |
196 |
150 |
197 |
151 |
198 |
152 |
199 |
153 |
200 |
154 |
201 |
155 |
202 |
156 |
203 |
157 |
204 |
158 |
205 |
159 |
206 |
160 |
207 |
161 |
208 |
162 |
209 |
163 |
210 |
164 |
|
165 |
|
166 |
|
167 |
|
168 |
|
169 |
|
170 |
|
171 |
|
172 |
|
173 |
|
174 |
|
175 |
|
176 |
|
177 |
|
178 |
|
179 |
|