48 TemplatesListsStyleCSS.indexListPackagesTemplate |
48 TemplatesListsStyleCSS.indexListPackagesTemplate |
49 self.indexListModulesTemplate = \ |
49 self.indexListModulesTemplate = \ |
50 TemplatesListsStyleCSS.indexListModulesTemplate |
50 TemplatesListsStyleCSS.indexListModulesTemplate |
51 self.indexListEntryTemplate = TemplatesListsStyleCSS.indexListEntryTemplate |
51 self.indexListEntryTemplate = TemplatesListsStyleCSS.indexListEntryTemplate |
52 else: |
52 else: |
53 self.headerTemplate = TemplatesListsStyle.headerTemplate % colors |
53 self.headerTemplate = TemplatesListsStyle.headerTemplate.format(**colors) |
54 self.footerTemplate = TemplatesListsStyle.footerTemplate % colors |
54 self.footerTemplate = TemplatesListsStyle.footerTemplate.format(**colors) |
55 self.indexBodyTemplate = TemplatesListsStyle.indexBodyTemplate % colors |
55 self.indexBodyTemplate = \ |
|
56 TemplatesListsStyle.indexBodyTemplate.format(**colors) |
56 self.indexListPackagesTemplate = \ |
57 self.indexListPackagesTemplate = \ |
57 TemplatesListsStyle.indexListPackagesTemplate % colors |
58 TemplatesListsStyle.indexListPackagesTemplate.format(**colors) |
58 self.indexListModulesTemplate = \ |
59 self.indexListModulesTemplate = \ |
59 TemplatesListsStyle.indexListModulesTemplate % colors |
60 TemplatesListsStyle.indexListModulesTemplate.format(**colors) |
60 self.indexListEntryTemplate = \ |
61 self.indexListEntryTemplate = \ |
61 TemplatesListsStyle.indexListEntryTemplate % colors |
62 TemplatesListsStyle.indexListEntryTemplate.format(**colors) |
62 |
63 |
63 def remember(self, file, moduleDocument, basename=""): |
64 def remember(self, file, moduleDocument, basename=""): |
64 """ |
65 """ |
65 Public method to remember a documentation file. |
66 Public method to remember a documentation file. |
66 |
67 |
117 """ |
118 """ |
118 if packagename == "00index": |
119 if packagename == "00index": |
119 f = os.path.join(self.outputDir, "index") |
120 f = os.path.join(self.outputDir, "index") |
120 title = "Table of contents" |
121 title = "Table of contents" |
121 else: |
122 else: |
122 f = os.path.join(self.outputDir, "index-%s" % packagename) |
123 f = os.path.join(self.outputDir, "index-{0}".format(packagename)) |
123 title = packagename |
124 title = packagename |
124 |
125 |
125 filename = joinext(f, ".html") |
126 filename = joinext(f, ".html") |
126 |
127 |
127 subpackages = "" |
128 subpackages = "" |
131 if package["subpackages"]: |
132 if package["subpackages"]: |
132 subpacks = package["subpackages"] |
133 subpacks = package["subpackages"] |
133 names = sorted(list(subpacks.keys())) |
134 names = sorted(list(subpacks.keys())) |
134 lst = [] |
135 lst = [] |
135 for name in names: |
136 for name in names: |
136 link = joinext("index-%s" % name, ".html") |
137 link = joinext("index-{0}".format(name), ".html") |
137 lst.append(self.indexListEntryTemplate % { |
138 lst.append(self.indexListEntryTemplate.format(**{ |
138 "Description" : subpacks[name], |
139 "Description" : subpacks[name], |
139 "Name" : name.split(".")[-1], |
140 "Name" : name.split(".")[-1], |
140 "Link" : link, |
141 "Link" : link, |
141 }) |
142 })) |
142 subpackages = self.indexListPackagesTemplate % { |
143 subpackages = self.indexListPackagesTemplate.format(**{ |
143 "Entries" : "".join(lst), |
144 "Entries" : "".join(lst), |
144 } |
145 }) |
145 |
146 |
146 # 2) modules |
147 # 2) modules |
147 if package["modules"]: |
148 if package["modules"]: |
148 mods = package["modules"] |
149 mods = package["modules"] |
149 names = sorted(list(mods.keys())) |
150 names = sorted(list(mods.keys())) |
151 for name in names: |
152 for name in names: |
152 link = joinext(name, ".html") |
153 link = joinext(name, ".html") |
153 nam = name.split(".")[-1] |
154 nam = name.split(".")[-1] |
154 if nam == "__init__": |
155 if nam == "__init__": |
155 nam = name.split(".")[-2] |
156 nam = name.split(".")[-2] |
156 lst.append(self.indexListEntryTemplate % { |
157 lst.append(self.indexListEntryTemplate.format(**{ |
157 "Description" : mods[name], |
158 "Description" : mods[name], |
158 "Name" : nam, |
159 "Name" : nam, |
159 "Link" : link, |
160 "Link" : link, |
160 }) |
161 })) |
161 modules = self.indexListModulesTemplate % { |
162 modules = self.indexListModulesTemplate.format(**{ |
162 "Entries" : "".join(lst), |
163 "Entries" : "".join(lst), |
163 } |
164 }) |
164 |
165 |
165 doc = self.headerTemplate % { \ |
166 doc = self.headerTemplate.format(**{ \ |
166 "Title" : title, |
167 "Title" : title, |
167 "Style" : self.stylesheet} + \ |
168 "Style" : self.stylesheet}) + \ |
168 self.indexBodyTemplate % { \ |
169 self.indexBodyTemplate.format(**{ \ |
169 "Title" : title, |
170 "Title" : title, |
170 "Description" : package["description"], |
171 "Description" : package["description"], |
171 "Subpackages" : subpackages, |
172 "Subpackages" : subpackages, |
172 "Modules" : modules, |
173 "Modules" : modules, |
173 } + \ |
174 }) + \ |
174 self.footerTemplate |
175 self.footerTemplate |
175 |
176 |
176 f = open(filename, "w", encoding = "utf-8", newline = newline) |
177 f = open(filename, "w", encoding = "utf-8", newline = newline) |
177 f.write(doc) |
178 f.write(doc) |
178 f.close() |
179 f.close() |
193 return |
194 return |
194 |
195 |
195 if basename: |
196 if basename: |
196 basename = basename.replace(os.sep, ".") |
197 basename = basename.replace(os.sep, ".") |
197 if not basename.endswith("."): |
198 if not basename.endswith("."): |
198 basename = "%s." % basename |
199 basename = "{0}.".format(basename) |
199 for package, element in list(self.packages.items()): |
200 for package, element in list(self.packages.items()): |
200 try: |
201 try: |
201 if basename: |
202 if basename: |
202 package = package.replace(basename,"") |
203 package = package.replace(basename,"") |
203 out = self.__writeIndex(package, element, newline) |
204 out = self.__writeIndex(package, element, newline) |
204 except IOError as v: |
205 except IOError as v: |
205 sys.stderr.write("%s error: %s\n" % (package, v[1])) |
206 sys.stderr.write("{0} error: {1}\n".format(package, v[1])) |
206 else: |
207 else: |
207 if out: |
208 if out: |
208 sys.stdout.write("%s ok\n" % out) |
209 sys.stdout.write("{0} ok\n".format(out)) |
209 |
210 |
210 sys.stdout.write("Indices written.\n") |
211 sys.stdout.write("Indices written.\n") |
211 sys.stdout.flush() |
212 sys.stdout.flush() |
212 sys.stderr.flush() |
213 sys.stderr.flush() |