81 f.write( |
81 f.write( |
82 ''' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n''') |
82 ''' "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\n''') |
83 f.write('''<html xmlns="http://www.w3.org/1999/xhtml">\n''') |
83 f.write('''<html xmlns="http://www.w3.org/1999/xhtml">\n''') |
84 f.write('''<head>\n''') |
84 f.write('''<head>\n''') |
85 if titleFullPath: |
85 if titleFullPath: |
86 f.write('''<title>%s</title>\n''' % self.editor.getFileName()) |
86 f.write('''<title>{0}</title>\n'''.format(self.editor.getFileName())) |
87 else: |
87 else: |
88 f.write('''<title>%s</title>\n''' % \ |
88 f.write('''<title>{0}</title>\n'''.format( |
89 os.path.basename(self.editor.getFileName())) |
89 os.path.basename(self.editor.getFileName()))) |
90 f.write('''<meta name="Generator" content="eric5" />\n''') |
90 f.write('''<meta name="Generator" content="eric5" />\n''') |
91 f.write('''<meta http-equiv="Content-Type" ''' |
91 f.write('''<meta http-equiv="Content-Type" ''' |
92 '''content="text/html; charset=utf-8" />\n''') |
92 '''content="text/html; charset=utf-8" />\n''') |
93 if folding: |
93 if folding: |
94 f.write('''<script language="JavaScript" type="text/javascript">\n''' |
94 f.write('''<script language="JavaScript" type="text/javascript">\n''' |
138 colour = lex.color(istyle) |
138 colour = lex.color(istyle) |
139 paper = lex.paper(istyle) |
139 paper = lex.paper(istyle) |
140 if istyle == QsciScintilla.STYLE_DEFAULT: |
140 if istyle == QsciScintilla.STYLE_DEFAULT: |
141 f.write('''span {\n''') |
141 f.write('''span {\n''') |
142 else: |
142 else: |
143 f.write('''.S%d {\n''' % istyle) |
143 f.write('''.S{0:d} {\n'''.format(istyle)) |
144 if font.italic(): |
144 if font.italic(): |
145 f.write(''' font-style: italic;\n''') |
145 f.write(''' font-style: italic;\n''') |
146 if font.bold(): |
146 if font.bold(): |
147 f.write(''' font-weight: bold;\n''') |
147 f.write(''' font-weight: bold;\n''') |
148 if wysiwyg: |
148 if wysiwyg: |
149 f.write(''' font-family: '%s';\n''' % \ |
149 f.write(''' font-family: '{0}';\n'''.format( |
150 font.family()) |
150 font.family())) |
151 f.write(''' color: %s;\n''' % colour.name()) |
151 f.write(''' color: {0};\n'''.format(colour.name())) |
152 if istyle != QsciScintilla.STYLE_DEFAULT and \ |
152 if istyle != QsciScintilla.STYLE_DEFAULT and \ |
153 bgColour != paper.name(): |
153 bgColour != paper.name(): |
154 f.write(''' background: %s;\n''' % paper.name()) |
154 f.write(''' background: {0};\n'''.format( |
|
155 paper.name())) |
155 f.write(''' text-decoration: inherit;\n''') |
156 f.write(''' text-decoration: inherit;\n''') |
156 if wysiwyg: |
157 if wysiwyg: |
157 f.write(''' font-size: %dpt;\n''' % \ |
158 f.write(''' font-size: {0:d}pt;\n'''.format( |
158 QFontInfo(font).pointSize()) |
159 QFontInfo(font).pointSize())) |
159 f.write('''}\n''') |
160 f.write('''}\n''') |
160 else: |
161 else: |
161 styleIsUsed[istyle] = False |
162 styleIsUsed[istyle] = False |
162 istyle += 1 |
163 istyle += 1 |
163 else: |
164 else: |
168 if font.italic(): |
169 if font.italic(): |
169 f.write(''' font-style: italic;\n''') |
170 f.write(''' font-style: italic;\n''') |
170 if font.bold(): |
171 if font.bold(): |
171 f.write(''' font-weight: bold;\n''') |
172 f.write(''' font-weight: bold;\n''') |
172 if wysiwyg: |
173 if wysiwyg: |
173 f.write(''' font-family: '%s';\n''' % font.family()) |
174 f.write(''' font-family: '{0}';\n'''.format(font.family())) |
174 f.write(''' color: %s;\n''' % colour.name()) |
175 f.write(''' color: {0};\n'''.format(colour.name())) |
175 if bgColour != paper.name(): |
176 if bgColour != paper.name(): |
176 f.write(''' background: %s;\n''' % paper.name()) |
177 f.write(''' background: {0};\n'''.format(paper.name())) |
177 f.write(''' text-decoration: inherit;\n''') |
178 f.write(''' text-decoration: inherit;\n''') |
178 if wysiwyg: |
179 if wysiwyg: |
179 f.write(''' font-size: %dpt;\n''' % \ |
180 f.write(''' font-size: {0:d}pt;\n'''.format( |
180 QFontInfo(font).pointSize()) |
181 QFontInfo(font).pointSize())) |
181 f.write('''}\n''') |
182 f.write('''}\n''') |
182 f.write('''</style>\n''') |
183 f.write('''</style>\n''') |
183 f.write('''</head>\n''') |
184 f.write('''</head>\n''') |
184 |
185 |
185 f.write('''<body bgcolor="%s">\n''' % bgColour) |
186 f.write('''<body bgcolor="{0}">\n'''.format(bgColour)) |
186 line = self.editor.lineAt(0) |
187 line = self.editor.lineAt(0) |
187 level = self.editor.foldLevelAt(line) - QsciScintilla.SC_FOLDLEVELBASE |
188 level = self.editor.foldLevelAt(line) - QsciScintilla.SC_FOLDLEVELBASE |
188 levelStack = [level] |
189 levelStack = [level] |
189 styleCurrent = self.editor.styleAt(0) |
190 styleCurrent = self.editor.styleAt(0) |
190 inStyleSpan = False |
191 inStyleSpan = False |
196 f.write('''<pre>''') |
197 f.write('''<pre>''') |
197 |
198 |
198 if folding: |
199 if folding: |
199 if self.editor.foldFlagsAt(line) & \ |
200 if self.editor.foldFlagsAt(line) & \ |
200 QsciScintilla.SC_FOLDLEVELHEADERFLAG: |
201 QsciScintilla.SC_FOLDLEVELHEADERFLAG: |
201 f.write('''<span id="hd%d" onclick="toggle('%d')">''' % \ |
202 f.write('''<span id="hd{0:d}" onclick="toggle('{1:d}')">'''\ |
202 (line, line + 1)) |
203 .format(line, line + 1)) |
203 f.write('''<span id="bt%d">- </span>''' % line) |
204 f.write('''<span id="bt{0:d}">- </span>'''.format(line)) |
204 inFoldSpan = True |
205 inFoldSpan = True |
205 else: |
206 else: |
206 f.write(''' ''') |
207 f.write(''' ''') |
207 |
208 |
208 if styleIsUsed[styleCurrent]: |
209 if styleIsUsed[styleCurrent]: |
209 f.write('''<span class="S%0d">''' % styleCurrent) |
210 f.write('''<span class="S{0:0d}">'''.format(styleCurrent)) |
210 inStyleSpan = True |
211 inStyleSpan = True |
211 |
212 |
212 column = 0 |
213 column = 0 |
213 pos = 0 |
214 pos = 0 |
214 utf8 = self.editor.isUtf8() |
215 utf8 = self.editor.isUtf8() |
282 while levelStack[-1] > newLevel: |
283 while levelStack[-1] > newLevel: |
283 f.write('''</span>''') |
284 f.write('''</span>''') |
284 levelStack.pop() |
285 levelStack.pop() |
285 f.write('\n') # here to get clean code |
286 f.write('\n') # here to get clean code |
286 if newLevel > level: |
287 if newLevel > level: |
287 f.write('''<span id="ln%d">''' % line) |
288 f.write('''<span id="ln{0:d}">'''.format(line)) |
288 levelStack.append(newLevel) |
289 levelStack.append(newLevel) |
289 if self.editor.foldFlagsAt(line) & \ |
290 if self.editor.foldFlagsAt(line) & \ |
290 QsciScintilla.SC_FOLDLEVELHEADERFLAG: |
291 QsciScintilla.SC_FOLDLEVELHEADERFLAG: |
291 f.write('''<span id="hd%d" onclick="toggle('%d')">''' % \ |
292 f.write( |
292 (line, line + 1)) |
293 '''<span id="hd{0:d}" onclick="toggle('{1:d}')">'''\ |
293 f.write('''<span id="bt%d">- </span>''' % line) |
294 .format(line, line + 1)) |
|
295 f.write('''<span id="bt{0:d}">- </span>'''.format(line)) |
294 inFoldSpan = True |
296 inFoldSpan = True |
295 else: |
297 else: |
296 f.write(''' ''') |
298 f.write(''' ''') |
297 level = newLevel |
299 level = newLevel |
298 else: |
300 else: |
300 |
302 |
301 if styleIsUsed[styleCurrent] and \ |
303 if styleIsUsed[styleCurrent] and \ |
302 self.editor.byteAt(pos + 1) not in [b'\r', b'\n']: |
304 self.editor.byteAt(pos + 1) not in [b'\r', b'\n']: |
303 # We know it's the correct next style, |
305 # We know it's the correct next style, |
304 # but no (empty) span for an empty line |
306 # but no (empty) span for an empty line |
305 f.write('''<span class="S%0d">''' % styleCurrent) |
307 f.write('''<span class="S{0:0d}">'''.format(styleCurrent)) |
306 inStyleSpan = True |
308 inStyleSpan = True |
307 else: |
309 else: |
308 if ch == b'<': |
310 if ch == b'<': |
309 f.write('''<''') |
311 f.write('''<''') |
310 elif ch == b'>': |
312 elif ch == b'>': |