12 import shutil |
12 import shutil |
13 import subprocess # secok |
13 import subprocess # secok |
14 import sys |
14 import sys |
15 |
15 |
16 from eric7 import Preferences |
16 from eric7 import Preferences |
17 from eric7.Utilities import generateQtToolName, getQtBinariesPath, html_encode, joinext |
17 from eric7.SystemUtilities import FileSystemUtilities, QtUtilities |
|
18 from eric7.Utilities import html_encode |
18 |
19 |
19 HelpCollection = r"""<?xml version="1.0" encoding="utf-8" ?> |
20 HelpCollection = r"""<?xml version="1.0" encoding="utf-8" ?> |
20 <QHelpCollectionProject version="1.0"> |
21 <QHelpCollectionProject version="1.0"> |
21 <docFiles> |
22 <docFiles> |
22 <register> |
23 <register> |
130 |
131 |
131 self.packages[package] = {"subpackages": {}, "modules": {}} |
132 self.packages[package] = {"subpackages": {}, "modules": {}} |
132 |
133 |
133 kwEntry = ( |
134 kwEntry = ( |
134 "{0} (Package)".format(package.split(".")[-1]), |
135 "{0} (Package)".format(package.split(".")[-1]), |
135 joinext("index-{0}".format(package), ".html"), |
136 FileSystemUtilities.joinext("index-{0}".format(package), ".html"), |
136 ) |
137 ) |
137 if kwEntry not in self.keywords: |
138 if kwEntry not in self.keywords: |
138 self.keywords.append(kwEntry) |
139 self.keywords.append(kwEntry) |
139 |
140 |
140 if moduleDocument.isEmpty(): |
141 if moduleDocument.isEmpty(): |
148 elt["modules"][moduleDocument.name()] = moduleDocument.name() |
149 elt["modules"][moduleDocument.name()] = moduleDocument.name() |
149 |
150 |
150 if "__init__" not in file: |
151 if "__init__" not in file: |
151 kwEntry = ( |
152 kwEntry = ( |
152 "{0} (Module)".format(moduleDocument.name().split(".")[-1]), |
153 "{0} (Module)".format(moduleDocument.name().split(".")[-1]), |
153 joinext(moduleDocument.name(), ".html"), |
154 FileSystemUtilities.joinext(moduleDocument.name(), ".html"), |
154 ) |
155 ) |
155 if kwEntry not in self.keywords: |
156 if kwEntry not in self.keywords: |
156 self.keywords.append(kwEntry) |
157 self.keywords.append(kwEntry) |
157 for kw in moduleDocument.getQtHelpKeywords(): |
158 for kw in moduleDocument.getQtHelpKeywords(): |
158 kwEntry = ( |
159 kwEntry = ( |
159 kw[0], |
160 kw[0], |
160 "{0}{1}".format(joinext(moduleDocument.name(), ".html"), kw[1]), |
161 "{0}{1}".format( |
|
162 FileSystemUtilities.joinext(moduleDocument.name(), ".html"), kw[1] |
|
163 ), |
161 ) |
164 ) |
162 if kwEntry not in self.keywords: |
165 if kwEntry not in self.keywords: |
163 self.keywords.append(kwEntry) |
166 self.keywords.append(kwEntry) |
164 |
167 |
165 def __generateSections(self, package, level): |
168 def __generateSections(self, package, level): |
173 indent = level * " " |
176 indent = level * " " |
174 indent1 = indent + " " |
177 indent1 = indent + " " |
175 s = indent + '<section title="{0}" ref="{1}">\n'.format( |
178 s = indent + '<section title="{0}" ref="{1}">\n'.format( |
176 package == "00index" and self.title or package, |
179 package == "00index" and self.title or package, |
177 package == "00index" |
180 package == "00index" |
178 and joinext("index", ".html") |
181 and FileSystemUtilities.joinext("index", ".html") |
179 or joinext("index-{0}".format(package), ".html"), |
182 or FileSystemUtilities.joinext("index-{0}".format(package), ".html"), |
180 ) |
183 ) |
181 for subpack in sorted(self.packages[package]["subpackages"]): |
184 for subpack in sorted(self.packages[package]["subpackages"]): |
182 s += self.__generateSections(subpack, level + 1) + "\n" |
185 s += self.__generateSections(subpack, level + 1) + "\n" |
183 for mod in sorted(self.packages[package]["modules"]): |
186 for mod in sorted(self.packages[package]["modules"]): |
184 s += indent1 + '<section title="{0}" ref="{1}" />\n'.format( |
187 s += indent1 + '<section title="{0}" ref="{1}" />\n'.format( |
185 mod, joinext(mod, ".html") |
188 mod, FileSystemUtilities.joinext(mod, ".html") |
186 ) |
189 ) |
187 s += indent + "</section>" |
190 s += indent + "</section>" |
188 return s |
191 return s |
189 |
192 |
190 def __convertEol(self, txt, newline): |
193 def __convertEol(self, txt, newline): |
286 cwd = os.getcwd() |
289 cwd = os.getcwd() |
287 # generate the compressed files |
290 # generate the compressed files |
288 qhelpgeneratorExe = Preferences.getQt("QHelpGenerator") |
291 qhelpgeneratorExe = Preferences.getQt("QHelpGenerator") |
289 if not qhelpgeneratorExe: |
292 if not qhelpgeneratorExe: |
290 qhelpgeneratorExe = os.path.join( |
293 qhelpgeneratorExe = os.path.join( |
291 getQtBinariesPath(libexec=True), generateQtToolName("qhelpgenerator") |
294 QtUtilities.getQtBinariesPath(libexec=True), |
|
295 QtUtilities.generateQtToolName("qhelpgenerator"), |
292 ) |
296 ) |
293 if not os.path.exists(qhelpgeneratorExe): |
297 if not os.path.exists(qhelpgeneratorExe): |
294 qhelpgeneratorExe = os.path.join( |
298 qhelpgeneratorExe = os.path.join( |
295 getQtBinariesPath(libexec=False), |
299 QtUtilities.getQtBinariesPath(libexec=False), |
296 generateQtToolName("qhelpgenerator"), |
300 QtUtilities.generateQtToolName("qhelpgenerator"), |
297 ) |
301 ) |
298 shutil.copy(os.path.join(self.outputDir, HelpProjectFile), self.htmlDir) |
302 shutil.copy(os.path.join(self.outputDir, HelpProjectFile), self.htmlDir) |
299 os.chdir(self.htmlDir) |
303 os.chdir(self.htmlDir) |
300 subprocess.run( # secok |
304 subprocess.run( # secok |
301 [ |
305 [ |