Wed, 13 Jul 2022 14:55:47 +0200
Reformatted the source code using the 'Black' utility.
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 | |
8881
54e42bc2437a
Updated copyright for 2022.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8366
diff
changeset
|
3 | # Copyright (c) 2007 - 2022 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 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
13 | import os |
5837 | 14 | import sys |
7192
a22eee00b052
Started removing runtime support for Python2 and PyQt4.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
6942
diff
changeset
|
15 | import io |
8243
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8205
diff
changeset
|
16 | import contextlib |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
17 | |
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
|
18 | 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
|
19 | from PyQt6.QtWidgets import QInputDialog |
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.Qsci import QsciScintilla |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
21 | |
8358
144a6b854f70
Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8356
diff
changeset
|
22 | from EricWidgets import EricMessageBox |
144a6b854f70
Sorted the eric specific extensions into packages named like the corresponding PyQt packages (i.e. EricCore,EricGui and EricWidgets).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8356
diff
changeset
|
23 | from EricGui.EricOverrideCursor import EricOverrideCursor |
537
72b32daeb8d6
Continued replacing QMessageBox methods with own methods.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
535
diff
changeset
|
24 | |
12
1d8dd9706f46
First commit after changing to Python 3.1.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
0
diff
changeset
|
25 | from .ExporterBase import ExporterBase |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
26 | |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
27 | import Preferences |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
28 | import Utilities |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
29 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
30 | |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
31 | 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
|
32 | """ |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
33 | 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
|
34 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
35 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
36 | 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
|
37 | """ |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
38 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
39 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
40 | @param editor reference to the editor object (QScintilla.Editor.Editor) |
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 | |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
56 | @param tabSize size of tabs (integer) |
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
57 | @param useTabs flag indicating the use of tab characters (boolean) |
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
58 | @param wysiwyg flag indicating colorization (boolean) |
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
59 | @param folding flag indicating usage of fold markers |
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
60 | @param onlyStylesUsed flag indicating to include only style |
3011
18292228c724
Continued to shorten the code lines to max. 79 characters.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
2302
diff
changeset
|
61 | definitions for styles used in the source (boolean) |
7900
72b88fb20261
Corrected the use of '@keyparam' in the source documentation.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7836
diff
changeset
|
62 | @param titleFullPath flag indicating to include the full file path |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
63 | in the title tag (boolean) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
64 | @return generated HTML text (string) |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
65 | """ |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
66 | 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
|
67 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
68 | 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
|
69 | styleIsUsed = {} |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
70 | 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
|
71 | 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
|
72 | 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
|
73 | # 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
|
74 | 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
|
75 | 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
|
76 | 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
|
77 | 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
|
78 | else: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
79 | 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
|
80 | 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
|
81 | 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
|
82 | |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
83 | html = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
84 | """<!DOCTYPE html PUBLIC "-//W3C//DTD""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
85 | """ 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
|
86 | """ "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
|
87 | """\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
88 | """<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
|
89 | """<head>\n""" |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
90 | ) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
91 | if titleFullPath: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
92 | 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
|
93 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
94 | 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
|
95 | 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
|
96 | ) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
97 | html += ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
98 | """<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
|
99 | """<meta http-equiv="Content-Type" """ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
100 | """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
|
101 | ) |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
102 | if folding: |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
103 | html += ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
104 | """<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
|
105 | """<!--\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
106 | """function symbol(id, sym) {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
107 | """ if (id.textContent == undefined) {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
108 | """ id.innerText = sym;\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
109 | """ } else {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
110 | """ id.textContent = sym;\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
111 | """ }\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 toggle(id) {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
114 | """ 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
|
115 | """ id -= 1;\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
116 | """ 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
|
117 | """ 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
|
118 | """ 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
|
119 | """ thislayer.style.display = 'block';\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
120 | """ togline.style.textDecoration = 'none';\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
121 | """ symbol(togsym, '- ');\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
122 | """ } else {\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
123 | """ thislayer.style.display = 'none';\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
124 | """ togline.style.textDecoration = 'underline';\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
125 | """ symbol(togsym, '+ ');\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
126 | """ }\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
127 | """}\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
128 | """//-->\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
129 | """</script>\n""" |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
130 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
131 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
132 | 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
|
133 | 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
|
134 | 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
|
135 | if lex |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
136 | 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
|
137 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
138 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
139 | 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
|
140 | 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
|
141 | 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
|
142 | while istyle <= QsciScintilla.STYLE_MAX: |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
143 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
144 | istyle <= QsciScintilla.STYLE_DEFAULT |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
145 | or istyle > QsciScintilla.STYLE_LASTPREDEFINED |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
146 | ) and styleIsUsed[istyle]: |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
147 | 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
|
148 | 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
|
149 | 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
|
150 | 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
|
151 | 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
|
152 | 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
|
153 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
154 | 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
|
155 | if font.italic(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
156 | 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
|
157 | if font.bold(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
158 | 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
|
159 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
160 | 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
|
161 | font.family() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
162 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
163 | 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
|
164 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
165 | istyle != QsciScintilla.STYLE_DEFAULT |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
166 | and bgColour != paper.name() |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
167 | ): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
168 | 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
|
169 | 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
|
170 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
171 | 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
|
172 | QFontInfo(font).pointSize() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
173 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
174 | html += """}\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
175 | |
7949
17c0a4ec3cf0
Fixed export as HTML+ODT/PDF/RTF/TEX when text using substyles.
T.Rzepka <Tobias.Rzepka@gmail.com>
parents:
7923
diff
changeset
|
176 | # get substyles |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
177 | 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
|
178 | 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
|
179 | 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
|
180 | 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
|
181 | 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
|
182 | 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
|
183 | 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
|
184 | if font.italic(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
185 | 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
|
186 | if font.bold(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
187 | 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
|
188 | 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
|
189 | 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
|
190 | font.family() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
191 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
192 | 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
|
193 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
194 | 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
|
195 | QFontInfo(font).pointSize() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
196 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
197 | html += "}\n" |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
198 | # __IGNORE_WARNING_Y113__ |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
199 | else: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
200 | 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
|
201 | 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
|
202 | else: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
203 | 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
|
204 | 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
|
205 | font = Preferences.getEditorOtherFonts("DefaultFont") |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
206 | 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
|
207 | if font.italic(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
208 | 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
|
209 | if font.bold(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
210 | 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
|
211 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
212 | 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
|
213 | 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
|
214 | if bgColour != paper.name(): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
215 | 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
|
216 | 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
|
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-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
|
219 | QFontInfo(font).pointSize() |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
220 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
221 | html += """}\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
222 | html += """</style>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
223 | html += """</head>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
224 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
225 | 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
|
226 | 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
|
227 | 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
|
228 | 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
|
229 | 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
|
230 | 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
|
231 | 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
|
232 | # 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
|
233 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
234 | 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
|
235 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
236 | html += """<pre>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
237 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
238 | if folding: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
239 | 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
|
240 | 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
|
241 | line, line + 1 |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
242 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
243 | 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
|
244 | 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
|
245 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
246 | html += """ """ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
247 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
248 | if styleIsUsed[styleCurrent]: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
249 | 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
|
250 | inStyleSpan = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
251 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
252 | 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
|
253 | 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
|
254 | 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
|
255 | 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
|
256 | utf8Len = 0 |
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 | 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
|
259 | 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
|
260 | 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
|
261 | 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
|
262 | if inStyleSpan: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
263 | 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
|
264 | inStyleSpan = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
265 | 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
|
266 | if styleIsUsed[style]: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
267 | 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
|
268 | 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
|
269 | styleCurrent = style |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
270 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
271 | 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
|
272 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
273 | 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
|
274 | 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
|
275 | # 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
|
276 | # 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
|
277 | prevCh = b" " |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
278 | 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
|
279 | if prevCh != b" ": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
280 | 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
|
281 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
282 | 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
|
283 | 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
|
284 | 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
|
285 | 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
|
286 | 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
|
287 | # 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
|
288 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
289 | 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
|
290 | column += 1 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
291 | 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
|
292 | 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
|
293 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
294 | 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
|
295 | 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
|
296 | 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
|
297 | if useTabs: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
298 | 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
|
299 | 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
|
300 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
301 | 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
|
302 | column += ts |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
303 | 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
|
304 | if inStyleSpan: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
305 | 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
|
306 | 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
|
307 | if inFoldSpan: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
308 | 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
|
309 | inFoldSpan = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
310 | 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
|
311 | 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
|
312 | 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
|
313 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
314 | html += """<br />""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
315 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
316 | 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
|
317 | 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
|
318 | 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
|
319 | 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
|
320 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
321 | 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
|
322 | while levelStack[-1] > newLevel: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
323 | 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
|
324 | levelStack.pop() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
325 | 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
|
326 | if newLevel > level: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
327 | 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
|
328 | levelStack.append(newLevel) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
329 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
330 | self.editor.foldFlagsAt(line) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
331 | & QsciScintilla.SC_FOLDLEVELHEADERFLAG |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
332 | ): |
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
333 | html += ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
334 | '''<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
|
335 | ).format(line, line + 1) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
336 | 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
|
337 | 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
|
338 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
339 | 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
|
340 | 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
|
341 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
342 | html += "\n" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
343 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
344 | 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
|
345 | b"\r", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
346 | b"\n", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
347 | ]: |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
348 | # 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
|
349 | # 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
|
350 | 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
|
351 | 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
|
352 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
353 | if ch == b"<": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
354 | html += """<""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
355 | elif ch == b">": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
356 | html += """>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
357 | elif ch == b"&": |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
358 | 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
|
359 | else: |
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
360 | 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
|
361 | 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
|
362 | 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
|
363 | 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
|
364 | 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
|
365 | 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
|
366 | 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
|
367 | 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
|
368 | 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
|
369 | 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
|
370 | elif len(utf8Ch) == utf8Len: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
371 | 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
|
372 | 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
|
373 | 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
|
374 | 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
|
375 | 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
|
376 | 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
|
377 | else: |
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 += 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
|
379 | column += 1 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
380 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
381 | pos += 1 |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
382 | |
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 | if inStyleSpan: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
384 | html += """</span>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
385 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
386 | 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
|
387 | while levelStack: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
388 | 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
|
389 | levelStack.pop() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
390 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
391 | if wysiwyg: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
392 | 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
|
393 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
394 | html += """</pre>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
395 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
396 | html += """</body>\n</html>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
397 | |
532
a3c0f1e2594a
Added a source code exporter for the Open Document Text (ODT) format.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
429
diff
changeset
|
398 | 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
|
399 | |
945
8cd4d08fa9f6
Made code mostly PEP 8 compliant (except all whitespace and line length).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
791
diff
changeset
|
400 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
401 | class ExporterHTML(ExporterBase): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
402 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
403 | Class implementing an exporter for HTML. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
404 | """ |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
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 | def __init__(self, editor, parent=None): |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
407 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
408 | Constructor |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
409 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
410 | @param editor reference to the editor object (QScintilla.Editor.Editor) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
411 | @param parent parent object of the exporter (QObject) |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
412 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
413 | 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
|
414 | |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
415 | def exportSource(self): |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
416 | """ |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
417 | Public method performing the export. |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
418 | """ |
3190
a9a94491c4fd
Changed the code to use QObject.tr() instead of QObject.trUtf8().
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
3160
diff
changeset
|
419 | filename = self._getFileName(self.tr("HTML Files (*.html)")) |
0
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
420 | if not filename: |
de9c2efb9d02
Started porting eric4 to Python3
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
diff
changeset
|
421 | return |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
422 | |
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
|
423 | 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
|
424 | 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
|
425 | |
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
|
426 | if ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
427 | extension in Preferences.getEditor("PreviewMarkdownFileNameExtensions") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
428 | 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
|
429 | ): |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
430 | # 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
|
431 | 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
|
432 | 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
|
433 | 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
|
434 | ] |
787a6b3f8c9f
Optimized the use of Waiting Cursors by using a specialized context manager class.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7524
diff
changeset
|
435 | 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
|
436 | 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
|
437 | 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
|
438 | 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
|
439 | colorSchemes, |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
440 | 0, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
441 | False, |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
442 | ) |
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
|
443 | 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
|
444 | colorSchemeIndex = colorSchemes.index(colorScheme) |
5837 | 445 | 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
|
446 | # 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
|
447 | 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
|
448 | 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
|
449 | 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
|
450 | elif ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
451 | extension in Preferences.getEditor("PreviewRestFileNameExtensions") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
452 | 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
|
453 | ): |
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 | # 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
|
455 | 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
|
456 | 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
|
457 | 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
|
458 | 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
|
459 | 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
|
460 | 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
|
461 | 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
|
462 | 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
|
463 | onlyStylesUsed = Preferences.getEditorExporter("HTML/OnlyStylesUsed") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
464 | 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
|
465 | 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
|
466 | |
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
|
467 | with EricOverrideCursor(): |
5837 | 468 | generator = HTMLGenerator(self.editor) |
469 | html = generator.generate( | |
470 | tabSize=tabSize, | |
471 | useTabs=tabs, | |
472 | wysiwyg=wysiwyg, | |
473 | folding=folding, | |
474 | onlyStylesUsed=onlyStylesUsed, | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
475 | titleFullPath=titleFullPath, |
5837 | 476 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
477 | |
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
|
478 | if html: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
479 | 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
|
480 | try: |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
481 | f.write(html) |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
482 | 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
|
483 | EricMessageBox.critical( |
8205
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
484 | self.editor, |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
485 | 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
|
486 | self.tr( |
4a0f1f896341
Applied some code simplifications suggested by the new Simplify checker.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7960
diff
changeset
|
487 | """<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
|
488 | """ <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
|
489 | ).format(filename, str(err)), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
490 | ) |
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
|
491 | 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
|
492 | 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
|
493 | 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
|
494 | 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
|
495 | 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
|
496 | """<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
|
497 | """ <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
|
498 | """ generated.</p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
499 | ).format(filename), |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
500 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
501 | |
5837 | 502 | def __generateFromReSTDocutils(self): |
503 | """ | |
504 | 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
|
505 | |
5837 | 506 | @return processed HTML (string) |
507 | """ | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
508 | if "sphinx" in sys.modules: |
5837 | 509 | # 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
|
510 | unloadKeys = [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
511 | k for k in sys.modules.keys() if k.startswith(("docutils", "sphinx")) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
512 | ] |
5837 | 513 | for key in unloadKeys: |
514 | sys.modules.pop(key) | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
515 | |
5837 | 516 | try: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
517 | import docutils.core # __IGNORE_EXCEPTION__ |
5837 | 518 | 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
|
519 | EricMessageBox.critical( |
5837 | 520 | self.editor, |
521 | self.tr("Export source"), | |
522 | self.tr( | |
523 | """<p>ReStructuredText export requires the""" | |
524 | """ <b>python-docutils</b> package.<br/>Install it with""" | |
525 | """ your package manager, 'pip install docutils' or see""" | |
526 | """ <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
|
527 | """this page.</a></p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
528 | ), |
5837 | 529 | ) |
530 | return "" | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
531 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
532 | htmlFormat = Preferences.getEditor("PreviewRestDocutilsHTMLFormat").lower() |
5837 | 533 | # redirect sys.stderr because we are not interested in it here |
534 | origStderr = sys.stderr | |
535 | sys.stderr = io.StringIO() | |
536 | 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
|
537 | 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
|
538 | ).decode("utf-8") |
5837 | 539 | sys.stderr = origStderr |
540 | return html | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
541 | |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
542 | def __generateFromMarkdown(self, useDarkScheme): |
5837 | 543 | """ |
544 | 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
|
545 | |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
546 | @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
|
547 | scheme |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
548 | @type bool |
5837 | 549 | @return processed HTML |
550 | @rtype str | |
551 | """ | |
552 | try: | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
553 | import markdown # __IGNORE_EXCEPTION__ |
5837 | 554 | 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
|
555 | EricMessageBox.critical( |
5837 | 556 | self.editor, |
557 | self.tr("Export source"), | |
558 | self.tr( | |
559 | """<p>Markdown export requires the <b>python-markdown""" | |
560 | """</b> package.<br/>Install it with your package""" | |
5861
26250d8ff4e4
Fixed some typos.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
5837
diff
changeset
|
561 | """ manager, 'pip install docutils' or see """ |
5837 | 562 | """<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
|
563 | """.html"> installation instructions.</a></p>""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
564 | ), |
5837 | 565 | ) |
566 | return "" | |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
567 | |
7314
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
568 | from UI.Previewers import PreviewerHTMLStyles |
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
569 | from UI.Previewers import MarkdownExtensions |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
570 | |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
571 | extensions = [] |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
572 | |
7314
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
573 | text = self.editor.text() |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
574 | |
7314
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
575 | mermaidNeeded = False |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
576 | if Preferences.getEditor( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
577 | "PreviewMarkdownMermaid" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
578 | ) 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
|
579 | 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
|
580 | mermaidNeeded = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
581 | |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
582 | if Preferences.getEditor("PreviewMarkdownNLtoBR"): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
583 | extensions.append("nl2br") |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
584 | |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
585 | pyMdown = False |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
586 | if Preferences.getEditor("PreviewMarkdownUsePyMdownExtensions"): |
8243
cc717c2ae956
Applied some more code simplifications suggested by the new Simplify checker (Y105: use contextlib.suppress) (batch 2).
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
8205
diff
changeset
|
587 | with contextlib.suppress(ImportError): |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
588 | import pymdownx # __IGNORE_EXCEPTION__ __IGNORE_WARNING__ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
589 | |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
590 | # PyPI package is 'pymdown-extensions' |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
591 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
592 | extensions.extend( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
593 | [ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
594 | "toc", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
595 | "pymdownx.extra", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
596 | "pymdownx.caret", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
597 | "pymdownx.emoji", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
598 | "pymdownx.mark", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
599 | "pymdownx.tilde", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
600 | "pymdownx.keys", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
601 | "pymdownx.tasklist", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
602 | "pymdownx.smartsymbols", |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
603 | ] |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
604 | ) |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
605 | pyMdown = True |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
606 | |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
607 | if not pyMdown: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
608 | extensions.extend(["extra", "toc"]) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
609 | |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
610 | # 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
|
611 | 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
|
612 | 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
|
613 | ): |
7314
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
614 | extensions.append(MarkdownExtensions.SimplePatternExtension()) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
615 | |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
616 | if Preferences.getEditor("PreviewMarkdownMathJax"): |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
617 | mathjax = ( |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
618 | "<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
|
619 | " 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
|
620 | "tex-chtml.js'>\n" |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
621 | "</script>\n" |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
622 | ) |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
623 | # prepare text for mathjax |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
624 | text = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
625 | text.replace(r"\(", r"\\(") |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
626 | .replace(r"\)", r"\\)") |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
627 | .replace(r"\[", r"\\[") |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
628 | .replace(r"\]", r"\\]") |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
629 | ) |
7305
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
630 | else: |
928858251f7a
ExporterHTML: copied the Markdown changes to the exporter.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7267
diff
changeset
|
631 | mathjax = "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
632 | |
7314
c32c24345ca7
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7309
diff
changeset
|
633 | if mermaidNeeded: |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
634 | mermaid = ( |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
635 | "<script type='text/javascript' id='Mermaid-script'" |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
636 | " src='https://unpkg.com/mermaid@8/dist/mermaid.min.js'>\n" |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
637 | "</script>\n" |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
638 | ) |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
639 | if useDarkScheme: |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
640 | mermaid_initialize = ( |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
641 | "<script>mermaid.initialize({" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
642 | "theme: 'dark', " |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
643 | "startOnLoad:true" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
644 | "});</script>" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
645 | ) |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
646 | else: |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
647 | mermaid_initialize = ( |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
648 | "<script>mermaid.initialize({" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
649 | "theme: 'default', " |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
650 | "startOnLoad:true" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
651 | "});</script>" |
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
652 | ) |
7309
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
653 | else: |
5a434813eef3
PreviewerHTML, ExporterHTML:
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7305
diff
changeset
|
654 | mermaid = "" |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
655 | mermaid_initialize = "" |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
656 | |
5837 | 657 | 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
|
658 | 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
|
659 | style = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
660 | ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
661 | PreviewerHTMLStyles.css_markdown_dark |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
662 | + PreviewerHTMLStyles.css_pygments_dark |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
663 | ) |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
664 | if useDarkScheme |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
665 | else ( |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
666 | PreviewerHTMLStyles.css_markdown_light |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
667 | + PreviewerHTMLStyles.css_pygments_light |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
668 | ) |
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
|
669 | ) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
670 | |
5837 | 671 | if htmlFormat == "xhtml1": |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
672 | head = ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
673 | """<!DOCTYPE html PUBLIC "-//W3C//DTD""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
674 | """ 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
|
675 | """ "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
|
676 | """.dtd">\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
677 | """<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
|
678 | ) |
5837 | 679 | elif htmlFormat == "html5": |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
680 | head = """<!DOCTYPE html>\n""" """<html lang="EN">\n""" |
5837 | 681 | else: |
682 | 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
|
683 | head += """<head>\n""" |
5837 | 684 | 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
|
685 | head += """<title>{0}</title>\n""".format(self.editor.getFileName()) |
5837 | 686 | else: |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
687 | 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
|
688 | 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
|
689 | ) |
7267
aedc309827c7
Continued to resolve code style issue M841.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7229
diff
changeset
|
690 | head += ( |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
691 | """<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
|
692 | """<meta http-equiv="Content-Type" """ |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
693 | """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
|
694 | """{0}""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
695 | """{1}""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
696 | """<style type="text/css">""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
697 | """{2}""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
698 | """</style>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
699 | """</head>\n""" |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
700 | """<body>\n""" |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
701 | ).format(mathjax, mermaid, style) |
9221
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
702 | |
bf71ee032bb4
Reformatted the source code using the 'Black' utility.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
9209
diff
changeset
|
703 | 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
|
704 | |
7524
282680dae446
HTML Preview and Exporter: added support for dark color schemes.
Detlev Offenbach <detlev@die-offenbachs.de>
parents:
7360
diff
changeset
|
705 | return head + body + mermaid_initialize + foot |