Thu, 21 Dec 2023 12:03:40 +0100
Converted some source code documentation to the new style.
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
1 | # -*- coding: utf-8 -*- |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
2 | |
9653
e67609152c5e
Updated copyright for 2023.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9573
diff
changeset
|
3 | # Copyright (c) 2007 - 2023 Detlev Offenbach <detlev@die-offenbachs.de> |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
4 | # |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
5 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
6 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
7 | Module implementing an exporter for HTML. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
8 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
9 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
10 | # This code is a port of the C++ code found in SciTE 1.74 |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
11 | # Original code: Copyright 1998-2006 by Neil Hodgson <neilh@scintilla.org> |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
12 | |
10331
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
13 | import importlib |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
14 | import io |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
15 | import os |
5837 | 16 | import sys |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
18 | from PyQt6.Qsci import QsciScintilla |
8318
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
19 | from PyQt6.QtGui import QFontInfo |
962bce857696
Replaced all imports of PyQt5 to PyQt6 and started to replace code using obsoleted methods and adapt to the PyQt6 enum usage.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8312
diff
changeset
|
20 | from PyQt6.QtWidgets import QInputDialog |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
9473
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
22 | from eric7 import Preferences, Utilities |
3f23dbf37dbe
Resorted the import statements using isort.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9413
diff
changeset
|
23 | from eric7.EricGui.EricOverrideCursor import EricOverrideCursor |
9413
80c06d472826
Changed the eric7 import statements to include the package name (i.e. eric7) in order to not fiddle with sys.path.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9221
diff
changeset
|
24 | from eric7.EricWidgets import EricMessageBox |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
25 | from eric7.UI.Previewers import MarkdownExtensions, PreviewerHTMLStyles |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
26 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
27 | from .ExporterBase import ExporterBase |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
29 | |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
30 | class HTMLGenerator: |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
31 | """ |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
32 | Class implementing an HTML generator for exporting source code. |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
33 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
34 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
35 | def __init__(self, editor): |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
36 | """ |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
37 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
38 | |
10431
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
39 | @param editor reference to the editor object |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
40 | @type QScintilla.Editor.Editor |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
41 | """ |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
42 | self.editor = editor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
43 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
44 | def generate( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
45 | self, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
46 | tabSize=4, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
47 | useTabs=False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
48 | wysiwyg=True, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
49 | folding=False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
50 | onlyStylesUsed=False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
51 | titleFullPath=False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
52 | ): |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
53 | """ |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
54 | Public method to generate HTML for the source editor. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
55 | |
10431
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
56 | @param tabSize size of tabs |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
57 | @type int |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
58 | @param useTabs flag indicating the use of tab characters |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
59 | @type bool |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
60 | @param wysiwyg flag indicating colorization |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
61 | @type bool |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
62 | @param folding flag indicating usage of fold markers |
10431
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
63 | @type bool |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
64 | @param onlyStylesUsed flag indicating to include only style |
10431
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
65 | definitions for styles used in the source |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
66 | @type bool |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
67 | @param titleFullPath flag indicating to include the full file path |
10431
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
68 | in the title tag |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
69 | @type bool |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
70 | @return generated HTML text |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
71 | @rtype str |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
72 | """ |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
73 | self.editor.recolor(0, -1) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
74 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
75 | lengthDoc = self.editor.length() |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
76 | styleIsUsed = {} |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
77 | if onlyStylesUsed: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
78 | for index in range(QsciScintilla.STYLE_MAX + 1): |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
79 | styleIsUsed[index] = False |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
80 | # check the used styles |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
81 | pos = 0 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
82 | while pos < lengthDoc: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
83 | styleIsUsed[self.editor.styleAt(pos) & 0x7F] = True |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
84 | pos += 1 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
85 | else: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
86 | for index in range(QsciScintilla.STYLE_MAX + 1): |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
87 | styleIsUsed[index] = True |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
88 | styleIsUsed[QsciScintilla.STYLE_DEFAULT] = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
89 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
90 | html = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
91 | """<!DOCTYPE html PUBLIC "-//W3C//DTD""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
92 | """ XHTML 1.0 Transitional//EN"\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
93 | """ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
94 | """\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
95 | """<html xmlns="http://www.w3.org/1999/xhtml">\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
96 | """<head>\n""" |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
97 | ) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
98 | if titleFullPath: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
99 | html += """<title>{0}</title>\n""".format(self.editor.getFileName()) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
100 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
101 | html += """<title>{0}</title>\n""".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
102 | os.path.basename(self.editor.getFileName()) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
103 | ) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
104 | html += ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
105 | """<meta name="Generator" content="eric" />\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
106 | """<meta http-equiv="Content-Type" """ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
107 | """content="text/html; charset=utf-8" />\n""" |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
108 | ) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
109 | if folding: |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
110 | html += ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
111 | """<script language="JavaScript" type="text/javascript">\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
112 | """<!--\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
113 | """function symbol(id, sym) {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
114 | """ if (id.textContent == undefined) {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
115 | """ id.innerText = sym;\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
116 | """ } else {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
117 | """ id.textContent = sym;\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
118 | """ }\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
119 | """}\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
120 | """function toggle(id) {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
121 | """ var thislayer = document.getElementById('ln' + id);\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
122 | """ id -= 1;\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
123 | """ var togline = document.getElementById('hd' + id);\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
124 | """ var togsym = document.getElementById('bt' + id);\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
125 | """ if (thislayer.style.display == 'none') {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
126 | """ thislayer.style.display = 'block';\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
127 | """ togline.style.textDecoration = 'none';\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
128 | """ symbol(togsym, '- ');\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
129 | """ } else {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
130 | """ thislayer.style.display = 'none';\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
131 | """ togline.style.textDecoration = 'underline';\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
132 | """ symbol(togsym, '+ ');\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
133 | """ }\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
134 | """}\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
135 | """//-->\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
136 | """</script>\n""" |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
137 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
138 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
139 | lex = self.editor.getLexer() |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
140 | bgColour = ( |
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
141 | lex.paper(QsciScintilla.STYLE_DEFAULT).name() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
142 | if lex |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
143 | else self.editor.paper().name() |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
144 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
145 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
146 | html += """<style type="text/css">\n""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
147 | if lex: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
148 | istyle = 0 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
149 | while istyle <= QsciScintilla.STYLE_MAX: |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
150 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
151 | istyle <= QsciScintilla.STYLE_DEFAULT |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
152 | or istyle > QsciScintilla.STYLE_LASTPREDEFINED |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
153 | ) and styleIsUsed[istyle]: |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
154 | if lex.description(istyle) or istyle == QsciScintilla.STYLE_DEFAULT: |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
155 | font = lex.font(istyle) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
156 | colour = lex.color(istyle) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
157 | paper = lex.paper(istyle) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
158 | if istyle == QsciScintilla.STYLE_DEFAULT: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
159 | html += """span {\n""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
160 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
161 | html += """.S{0:d} {{\n""".format(istyle) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
162 | if font.italic(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
163 | html += """ font-style: italic;\n""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
164 | if font.bold(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
165 | html += """ font-weight: bold;\n""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
166 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
167 | html += """ font-family: '{0}';\n""".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
168 | font.family() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
169 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
170 | html += """ color: {0};\n""".format(colour.name()) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
171 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
172 | istyle != QsciScintilla.STYLE_DEFAULT |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
173 | and bgColour != paper.name() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
174 | ): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
175 | html += """ background: {0};\n""".format(paper.name()) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
176 | html += """ text-decoration: inherit;\n""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
177 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
178 | html += """ font-size: {0:d}pt;\n""".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
179 | QFontInfo(font).pointSize() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
180 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
181 | html += """}\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
182 | |
7949
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
183 | # get substyles |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
184 | subs_start, subs_count = self.editor.getSubStyleRange(istyle) |
7949
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
185 | for subs_idx in range(subs_count): |
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
186 | styleIsUsed[subs_idx - subs_start] = True |
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
187 | font = lex.font(subs_start + subs_idx) |
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
188 | colour = lex.color(subs_start + subs_idx) |
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
189 | paper = lex.paper(subs_start + subs_idx) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
190 | html += ".S{0:d} {{\n".format(subs_idx - subs_start) |
7949
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
191 | if font.italic(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
192 | html += " font-style: italic;\n" |
7949
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
193 | if font.bold(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
194 | html += " font-weight: bold;\n" |
7949
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
195 | if wysiwyg: |
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
196 | html += " font-family: '{0}';\n".format( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
197 | font.family() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
198 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
199 | html += " color: {0};\n".format(colour.name()) |
7949
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
200 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
201 | html += " font-size: {0:d}pt;\n".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
202 | QFontInfo(font).pointSize() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
203 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
204 | html += "}\n" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
205 | else: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
206 | styleIsUsed[istyle] = False |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
207 | istyle += 1 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
208 | else: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
209 | colour = self.editor.color() |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
210 | paper = self.editor.paper() |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
211 | font = Preferences.getEditorOtherFonts("DefaultFont") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
212 | html += """.S0 {\n""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
213 | if font.italic(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
214 | html += """ font-style: italic;\n""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
215 | if font.bold(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
216 | html += """ font-weight: bold;\n""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
217 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
218 | html += """ font-family: '{0}';\n""".format(font.family()) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
219 | html += """ color: {0};\n""".format(colour.name()) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
220 | if bgColour != paper.name(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
221 | html += """ background: {0};\n""".format(paper.name()) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
222 | html += """ text-decoration: inherit;\n""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
223 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
224 | html += """ font-size: {0:d}pt;\n""".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
225 | QFontInfo(font).pointSize() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
226 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
227 | html += """}\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
228 | html += """</style>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
229 | html += """</head>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
230 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
231 | html += """<body bgcolor="{0}">\n""".format(bgColour) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
232 | line = self.editor.lineAt(0) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
233 | level = self.editor.foldLevelAt(line) - QsciScintilla.SC_FOLDLEVELBASE |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
234 | levelStack = [level] |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
235 | styleCurrent = self.editor.styleAt(0) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
236 | inStyleSpan = False |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
237 | inFoldSpan = False |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
238 | # Global span for default attributes |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
239 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
240 | html += """<span>""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
241 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
242 | html += """<pre>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
243 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
244 | if folding: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
245 | if self.editor.foldFlagsAt(line) & QsciScintilla.SC_FOLDLEVELHEADERFLAG: |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
246 | html += ("""<span id="hd{0:d}" onclick="toggle('{1:d}')">""").format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
247 | line, line + 1 |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
248 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
249 | html += """<span id="bt{0:d}">- </span>""".format(line) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
250 | inFoldSpan = True |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
251 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
252 | html += """ """ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
253 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
254 | if styleIsUsed[styleCurrent]: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
255 | html += """<span class="S{0:0d}">""".format(styleCurrent) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
256 | inStyleSpan = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
257 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
258 | column = 0 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
259 | pos = 0 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
260 | utf8 = self.editor.isUtf8() |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
261 | utf8Ch = b"" |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
262 | utf8Len = 0 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
263 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
264 | while pos < lengthDoc: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
265 | ch = self.editor.byteAt(pos) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
266 | style = self.editor.styleAt(pos) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
267 | if style != styleCurrent: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
268 | if inStyleSpan: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
269 | html += """</span>""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
270 | inStyleSpan = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
271 | if ch not in [b"\r", b"\n"]: # no need of a span for the EOL |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
272 | if styleIsUsed[style]: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
273 | html += """<span class="S{0:d}">""".format(style) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
274 | inStyleSpan = True |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
275 | styleCurrent = style |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
276 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
277 | if ch == b" ": |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
278 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
279 | prevCh = b"" |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
280 | if column == 0: |
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
281 | # at start of line, must put a |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
282 | # because regular space will be collapsed |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
283 | prevCh = b" " |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
284 | while pos < lengthDoc and self.editor.byteAt(pos) == b" ": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
285 | if prevCh != b" ": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
286 | html += " " |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
287 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
288 | html += """ """ |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
289 | prevCh = self.editor.byteAt(pos) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
290 | pos += 1 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
291 | column += 1 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
292 | pos -= 1 |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
293 | # the last incrementation will be done by the outer loop |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
294 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
295 | html += " " |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
296 | column += 1 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
297 | elif ch == b"\t": |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
298 | ts = tabSize - (column % tabSize) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
299 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
300 | html += """ """ * ts |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
301 | column += ts |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
302 | else: |
1112
8a7d1b9d18db
Improved code quality by getting rid of star imports. That way pyflakes can do its job. A few bugs fixed found by flakes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
945
diff
changeset
|
303 | if useTabs: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
304 | html += "\t" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
305 | column += 1 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
306 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
307 | html += " " * ts |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
308 | column += ts |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
309 | elif ch in [b"\r", b"\n"]: |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
310 | if inStyleSpan: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
311 | html += """</span>""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
312 | inStyleSpan = False |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
313 | if inFoldSpan: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
314 | html += """</span>""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
315 | inFoldSpan = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
316 | if ch == b"\r" and self.editor.byteAt(pos + 1) == b"\n": |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
317 | pos += 1 # CR+LF line ending, skip the "extra" EOL char |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
318 | column = 0 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
319 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
320 | html += """<br />""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
321 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
322 | styleCurrent = self.editor.styleAt(pos + 1) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
323 | if folding: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
324 | line = self.editor.lineAt(pos + 1) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
325 | newLevel = self.editor.foldLevelAt(line) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
326 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
327 | if newLevel < level: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
328 | while levelStack[-1] > newLevel: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
329 | html += """</span>""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
330 | levelStack.pop() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
331 | html += "\n" # here to get clean code |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
332 | if newLevel > level: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
333 | html += """<span id="ln{0:d}">""".format(line) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
334 | levelStack.append(newLevel) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
335 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
336 | self.editor.foldFlagsAt(line) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
337 | & QsciScintilla.SC_FOLDLEVELHEADERFLAG |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
338 | ): |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
339 | html += ( |
10372
1444b4bee64b
Fixed some code style issue related to implicitly and explicitly concatenated strings.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10331
diff
changeset
|
340 | """<span id="hd{0:d}" onclick="toggle('{1:d}')">""" |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
341 | ).format(line, line + 1) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
342 | html += """<span id="bt{0:d}">- </span>""".format(line) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
343 | inFoldSpan = True |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
344 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
345 | html += """ """ |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
346 | level = newLevel |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
347 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
348 | html += "\n" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
349 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
350 | if styleIsUsed[styleCurrent] and self.editor.byteAt(pos + 1) not in [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
351 | b"\r", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
352 | b"\n", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
353 | ]: |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
354 | # We know it's the correct next style, |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
355 | # but no (empty) span for an empty line |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
356 | html += """<span class="S{0:0d}">""".format(styleCurrent) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
357 | inStyleSpan = True |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
358 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
359 | if ch == b"<": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
360 | html += """<""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
361 | elif ch == b">": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
362 | html += """>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
363 | elif ch == b"&": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
364 | html += """&""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
365 | else: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
366 | if ord(ch) > 127 and utf8: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
367 | utf8Ch += ch |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
368 | if utf8Len == 0: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
369 | if (utf8Ch[0] & 0xF0) == 0xF0: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
370 | utf8Len = 4 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
371 | elif (utf8Ch[0] & 0xE0) == 0xE0: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
372 | utf8Len = 3 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
373 | elif (utf8Ch[0] & 0xC0) == 0xC0: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
374 | utf8Len = 2 |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
375 | column -= 1 # will be incremented again later |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
376 | elif len(utf8Ch) == utf8Len: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
377 | ch = utf8Ch.decode("utf8") |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
378 | html += Utilities.html_encode(ch) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
379 | utf8Ch = b"" |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
380 | utf8Len = 0 |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
381 | else: |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
382 | column -= 1 # will be incremented again later |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
383 | else: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
384 | html += ch.decode() |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
385 | column += 1 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
386 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
387 | pos += 1 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
388 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
389 | if inStyleSpan: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
390 | html += """</span>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
391 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
392 | if folding: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
393 | while levelStack: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
394 | html += """</span>""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
395 | levelStack.pop() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
396 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
397 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
398 | html += """</span>""" |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
399 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
400 | html += """</pre>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
401 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
402 | html += """</body>\n</html>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
403 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
404 | return html |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
405 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
406 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | class ExporterHTML(ExporterBase): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
409 | Class implementing an exporter for HTML. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
411 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
412 | def __init__(self, editor, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
414 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
415 | |
10431
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
416 | @param editor reference to the editor object |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
417 | @type QScintilla.Editor.Editor |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
418 | @param parent parent object of the exporter |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
419 | @type QObject |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | ExporterBase.__init__(self, editor, parent) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
422 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
423 | def exportSource(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
424 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
425 | Public method performing the export. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
426 | """ |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
427 | filename = self._getFileName(self.tr("HTML Files (*.html)")) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
428 | if not filename: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
429 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
430 | |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
431 | fn = self.editor.getFileName() |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
432 | extension = os.path.normcase(os.path.splitext(fn)[1][1:]) if fn else "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
433 | |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
434 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
435 | extension in Preferences.getEditor("PreviewMarkdownFileNameExtensions") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
436 | or self.editor.getLanguage().lower() == "markdown" |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
437 | ): |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
438 | # export markdown to HTML |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
439 | colorSchemes = [ |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
440 | self.tr("Light Background Color"), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
441 | self.tr("Dark Background Color"), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
442 | ] |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
443 | colorScheme, ok = QInputDialog.getItem( |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
444 | None, |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
445 | self.tr("Markdown Export"), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
446 | self.tr("Select color scheme:"), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
447 | colorSchemes, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
448 | 0, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
449 | False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
450 | ) |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
451 | if ok: |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
452 | colorSchemeIndex = colorSchemes.index(colorScheme) |
5837 | 453 | else: |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
454 | # light background as default |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
455 | colorSchemeIndex = 0 |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
456 | with EricOverrideCursor(): |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
457 | html = self.__generateFromMarkdown(colorSchemeIndex == 1) |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
458 | elif ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
459 | extension in Preferences.getEditor("PreviewRestFileNameExtensions") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
460 | or self.editor.getLanguage().lower() == "restructuredtext" |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
461 | ): |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
462 | # export ReST to HTML |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
463 | with EricOverrideCursor(): |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
464 | html = self.__generateFromReSTDocutils() |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
465 | else: |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
466 | tabSize = self.editor.getEditorConfig("TabWidth") |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
467 | if tabSize == 0: |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
468 | tabSize = 4 |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
469 | wysiwyg = Preferences.getEditorExporter("HTML/WYSIWYG") |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
470 | folding = Preferences.getEditorExporter("HTML/Folding") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
471 | onlyStylesUsed = Preferences.getEditorExporter("HTML/OnlyStylesUsed") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
472 | titleFullPath = Preferences.getEditorExporter("HTML/FullPathAsTitle") |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
473 | tabs = Preferences.getEditorExporter("HTML/UseTabs") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
474 | |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
475 | with EricOverrideCursor(): |
5837 | 476 | generator = HTMLGenerator(self.editor) |
477 | html = generator.generate( | |
478 | tabSize=tabSize, | |
479 | useTabs=tabs, | |
480 | wysiwyg=wysiwyg, | |
481 | folding=folding, | |
482 | onlyStylesUsed=onlyStylesUsed, | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
483 | titleFullPath=titleFullPath, |
5837 | 484 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
485 | |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
486 | if html: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
487 | with EricOverrideCursor(), open(filename, "w", encoding="utf-8") as f: |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
488 | try: |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
489 | f.write(html) |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
490 | except OSError as err: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
491 | EricMessageBox.critical( |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
492 | self.editor, |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
493 | self.tr("Export source"), |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
494 | self.tr( |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
495 | """<p>The source could not be exported to""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
496 | """ <b>{0}</b>.</p><p>Reason: {1}</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
497 | ).format(filename, str(err)), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
498 | ) |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
499 | else: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
500 | EricMessageBox.critical( |
7771
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
501 | self.editor, |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
502 | self.tr("Export source"), |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
503 | self.tr( |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
504 | """<p>The source could not be exported to""" |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
505 | """ <b>{0}</b>.</p><p>Reason: No HTML code""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
506 | """ generated.</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
507 | ).format(filename), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
508 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
509 | |
5837 | 510 | def __generateFromReSTDocutils(self): |
511 | """ | |
512 | Private method to convert ReST text into HTML using 'docutils'. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
513 | |
10431
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
514 | @return processed HTML |
64157aeb0312
Converted some source code documentation to the new style.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10373
diff
changeset
|
515 | @rtype str |
5837 | 516 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
517 | if "sphinx" in sys.modules: |
5837 | 518 | # Make sure any Sphinx polution of docutils has been removed. |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
519 | unloadKeys = [ |
10373
093dcebe5ecb
Corrected some uses of dict.keys(), dict.values() and dict.items().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10372
diff
changeset
|
520 | k for k in sys.modules if k.startswith(("docutils", "sphinx")) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
521 | ] |
5837 | 522 | for key in unloadKeys: |
523 | sys.modules.pop(key) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
524 | |
5837 | 525 | try: |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
526 | import docutils.core # __IGNORE_EXCEPTION__ __IGNORE_WARNING_I10__ |
5837 | 527 | except ImportError: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
528 | EricMessageBox.critical( |
5837 | 529 | self.editor, |
530 | self.tr("Export source"), | |
531 | self.tr( | |
532 | """<p>ReStructuredText export requires the""" | |
533 | """ <b>python-docutils</b> package.<br/>Install it with""" | |
534 | """ your package manager, 'pip install docutils' or see""" | |
535 | """ <a href="http://pypi.python.org/pypi/docutils">""" | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
536 | """this page.</a></p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
537 | ), |
5837 | 538 | ) |
539 | return "" | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
540 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
541 | htmlFormat = Preferences.getEditor("PreviewRestDocutilsHTMLFormat").lower() |
5837 | 542 | # redirect sys.stderr because we are not interested in it here |
543 | origStderr = sys.stderr | |
544 | sys.stderr = io.StringIO() | |
545 | html = docutils.core.publish_string( | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
546 | self.editor.text(), writer_name=htmlFormat |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
547 | ).decode("utf-8") |
5837 | 548 | sys.stderr = origStderr |
549 | return html | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
550 | |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
551 | def __generateFromMarkdown(self, useDarkScheme): |
5837 | 552 | """ |
553 | Private method to convert Markdown text into HTML. | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
554 | |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
555 | @param useDarkScheme flag indicating to export using a dark color |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
556 | scheme |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
557 | @type bool |
5837 | 558 | @return processed HTML |
559 | @rtype str | |
560 | """ | |
561 | try: | |
9482
a2bc06a54d9d
Corrected/acknowledged some bad import style and removed some obsolete code.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9473
diff
changeset
|
562 | import markdown # __IGNORE_EXCEPTION__ __IGNORE_WARNING_I10__ |
5837 | 563 | except ImportError: |
8356
68ec9c3d4de5
Renamed the modules and classes of the E5Gui package to have the prefix 'Eric' instead of 'E5'.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8318
diff
changeset
|
564 | EricMessageBox.critical( |
5837 | 565 | self.editor, |
566 | self.tr("Export source"), | |
567 | self.tr( | |
568 | """<p>Markdown export requires the <b>python-markdown""" | |
569 | """</b> package.<br/>Install it with your package""" | |
5861
26250d8ff4e4
Fixed some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5837
diff
changeset
|
570 | """ manager, 'pip install docutils' or see """ |
5837 | 571 | """<a href="http://pythonhosted.org/Markdown/install""" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
572 | """.html"> installation instructions.</a></p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
573 | ), |
5837 | 574 | ) |
575 | return "" | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
576 | |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
577 | extensions = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
578 | |
7314
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
579 | text = self.editor.text() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
580 | |
7314
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
581 | mermaidNeeded = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
582 | if Preferences.getEditor( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
583 | "PreviewMarkdownMermaid" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
584 | ) and MarkdownExtensions.MermaidRegexFullText.search(text): |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
585 | extensions.append(MarkdownExtensions.MermaidExtension()) |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
586 | mermaidNeeded = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
587 | |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
588 | if Preferences.getEditor("PreviewMarkdownNLtoBR"): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
589 | extensions.append("nl2br") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
590 | |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
591 | pyMdown = False |
10331
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
592 | if Preferences.getEditor("PreviewMarkdownUsePyMdownExtensions") and bool( |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
593 | importlib.util.find_spec("pymdownx") |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
594 | ): |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
595 | # PyPI package is 'pymdown-extensions' |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
596 | extensions.extend( |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
597 | [ |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
598 | "toc", |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
599 | "pymdownx.extra", |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
600 | "pymdownx.caret", |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
601 | "pymdownx.emoji", |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
602 | "pymdownx.mark", |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
603 | "pymdownx.tilde", |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
604 | "pymdownx.keys", |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
605 | "pymdownx.tasklist", |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
606 | "pymdownx.smartsymbols", |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
607 | ] |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
608 | ) |
c1a2ff7e3575
Modernized some code and corrected some code style issues.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
10180
diff
changeset
|
609 | pyMdown = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
610 | |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
611 | if not pyMdown: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
612 | extensions.extend(["extra", "toc"]) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
613 | |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
614 | # version 2.0 supports only extension names, not instances |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
615 | if markdown.version_info[0] > 2 or ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
616 | markdown.version_info[0] == 2 and markdown.version_info[1] > 0 |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
617 | ): |
7314
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
618 | extensions.append(MarkdownExtensions.SimplePatternExtension()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
619 | |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
620 | if Preferences.getEditor("PreviewMarkdownMathJax"): |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
621 | mathjax = ( |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
622 | "<script type='text/javascript' id='MathJax-script' async" |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
623 | " src='https://cdn.jsdelivr.net/npm/mathjax@3/es5/" |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
624 | "tex-chtml.js'>\n" |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
625 | "</script>\n" |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
626 | ) |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
627 | # prepare text for mathjax |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
628 | text = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
629 | text.replace(r"\(", r"\\(") |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
630 | .replace(r"\)", r"\\)") |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
631 | .replace(r"\[", r"\\[") |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
632 | .replace(r"\]", r"\\]") |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
633 | ) |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
634 | else: |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
635 | mathjax = "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
636 | |
7314
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
637 | if mermaidNeeded: |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
638 | mermaid = ( |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
639 | "<script type='text/javascript' id='Mermaid-script'" |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
640 | " src='https://unpkg.com/mermaid@8/dist/mermaid.min.js'>\n" |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
641 | "</script>\n" |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
642 | ) |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
643 | if useDarkScheme: |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
644 | mermaid_initialize = ( |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
645 | "<script>mermaid.initialize({" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
646 | "theme: 'dark', " |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
647 | "startOnLoad:true" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
648 | "});</script>" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
649 | ) |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
650 | else: |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
651 | mermaid_initialize = ( |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
652 | "<script>mermaid.initialize({" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
653 | "theme: 'default', " |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
654 | "startOnLoad:true" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
655 | "});</script>" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
656 | ) |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
657 | else: |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
658 | mermaid = "" |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
659 | mermaid_initialize = "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
660 | |
5837 | 661 | htmlFormat = Preferences.getEditor("PreviewMarkdownHTMLFormat").lower() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
662 | body = markdown.markdown(text, extensions=extensions, output_format=htmlFormat) |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
663 | style = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
664 | ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
665 | PreviewerHTMLStyles.css_markdown_dark |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
666 | + PreviewerHTMLStyles.css_pygments_dark |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
667 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
668 | if useDarkScheme |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
669 | else ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
670 | PreviewerHTMLStyles.css_markdown_light |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
671 | + PreviewerHTMLStyles.css_pygments_light |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
672 | ) |
8259
2bbec88047dd
Applied some more code simplifications suggested by the new Simplify checker (Y108: use ternary operator).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8243
diff
changeset
|
673 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
674 | |
5837 | 675 | if htmlFormat == "xhtml1": |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
676 | head = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
677 | """<!DOCTYPE html PUBLIC "-//W3C//DTD""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
678 | """ XHTML 1.0 Transitional//EN"\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
679 | """ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
680 | """.dtd">\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
681 | """<html xmlns="http://www.w3.org/1999/xhtml">\n""" |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
682 | ) |
5837 | 683 | elif htmlFormat == "html5": |
9573
9960d19d66b5
Corrected some 'wrong' string quotes caused by the Black line merging.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9487
diff
changeset
|
684 | head = """<!DOCTYPE html>\n<html lang="EN">\n""" |
5837 | 685 | else: |
686 | head = '<html lang="EN">\n' | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
687 | head += """<head>\n""" |
5837 | 688 | if Preferences.getEditorExporter("HTML/FullPathAsTitle"): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
689 | head += """<title>{0}</title>\n""".format(self.editor.getFileName()) |
5837 | 690 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
691 | head += """<title>{0}</title>\n""".format( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
692 | os.path.basename(self.editor.getFileName()) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
693 | ) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
694 | head += ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
695 | """<meta name="Generator" content="eric" />\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
696 | """<meta http-equiv="Content-Type" """ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
697 | """content="text/html; charset=utf-8" />\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
698 | """{0}""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
699 | """{1}""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
700 | """<style type="text/css">""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
701 | """{2}""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
702 | """</style>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
703 | """</head>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
704 | """<body>\n""" |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
705 | ).format(mathjax, mermaid, style) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
706 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
707 | foot = """\n</body>\n</html>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
708 | |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
709 | return head + body + mermaid_initialize + foot |
9487
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
710 | |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
711 | |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
712 | def createExporter(editor, parent=None): |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
713 | """ |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
714 | Function to instantiate an exporter object. |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
715 | |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
716 | @param editor reference to the editor object |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
717 | @type QScintilla.Editor.Editor |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
718 | @param parent parent object of the exporter (defaults to None) |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
719 | @type QObject (optional) |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
720 | @return exporter object |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
721 | @rtype ExporterHTML |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
722 | """ |
78cb053591c9
Changed document exporter imports to use importlib.import_module().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9482
diff
changeset
|
723 | return ExporterHTML(editor, parent=parent) |