diff options
author | Waylan Limberg <waylan.limberg@icloud.com> | 2014-11-20 16:07:03 -0500 |
---|---|---|
committer | Waylan Limberg <waylan.limberg@icloud.com> | 2014-11-20 16:07:03 -0500 |
commit | 8f66a94eab1389d97041944ed24afd2bf7c4389c (patch) | |
tree | 10b53664076650be951468cbbb163f3d637e5891 /markdown/extensions/codehilite.py | |
parent | 0c2143819ef7de53be52f7a4d47e027ff194a9b4 (diff) | |
download | markdown-8f66a94eab1389d97041944ed24afd2bf7c4389c.tar.gz markdown-8f66a94eab1389d97041944ed24afd2bf7c4389c.tar.bz2 markdown-8f66a94eab1389d97041944ed24afd2bf7c4389c.zip |
Flake8 cleanup (mostly whitespace).
Got all but a couple files in the tests (ran out of time today).
Apparently I have been using some bad form for years (although a few
things seemed to look better before the update). Anyway, conformant now.
Diffstat (limited to 'markdown/extensions/codehilite.py')
-rw-r--r-- | markdown/extensions/codehilite.py | 77 |
1 files changed, 45 insertions, 32 deletions
diff --git a/markdown/extensions/codehilite.py b/markdown/extensions/codehilite.py index 0c3df7e..211db21 100644 --- a/markdown/extensions/codehilite.py +++ b/markdown/extensions/codehilite.py @@ -4,7 +4,7 @@ CodeHilite Extension for Python-Markdown Adds code/syntax highlighting to standard Python-Markdown code blocks. -See <https://pythonhosted.org/Markdown/extensions/code_hilite.html> +See <https://pythonhosted.org/Markdown/extensions/code_hilite.html> for documentation. Original code Copyright 2006-2008 [Waylan Limberg](http://achinghead.com/). @@ -19,7 +19,7 @@ from __future__ import absolute_import from __future__ import unicode_literals from . import Extension from ..treeprocessors import Treeprocessor -import warnings + try: from pygments import highlight from pygments.lexers import get_lexer_by_name, guess_lexer @@ -47,7 +47,7 @@ def parse_hl_lines(expr): # ------------------ The Main CodeHilite Class ---------------------- class CodeHilite(object): """ - Determine language of source code, and pass it into the pygments hilighter. + Determine language of source code, and pass it into pygments hilighter. Basic Usage: >>> code = CodeHilite(src = 'some text') @@ -55,10 +55,11 @@ class CodeHilite(object): * src: Source string or any object with a .readline attribute. - * linenums: (Boolean) Set line numbering to 'on' (True), 'off' (False) or 'auto'(None). - Set to 'auto' by default. + * linenums: (Boolean) Set line numbering to 'on' (True), + 'off' (False) or 'auto'(None). Set to 'auto' by default. - * guess_lang: (Boolean) Turn language auto-detection 'on' or 'off' (on by default). + * guess_lang: (Boolean) Turn language auto-detection + 'on' or 'off' (on by default). * css_class: Set class name of wrapper div ('codehilite' by default). @@ -67,14 +68,14 @@ class CodeHilite(object): Low Level Usage: >>> code = CodeHilite() >>> code.src = 'some text' # String or anything with a .readline attr. - >>> code.linenos = True # True or False; Turns line numbering on or of. + >>> code.linenos = True # Turns line numbering on or of. >>> html = code.hilite() """ def __init__(self, src=None, linenums=None, guess_lang=True, - css_class="codehilite", lang=None, style='default', - noclasses=False, tab_length=4, hl_lines=None): + css_class="codehilite", lang=None, style='default', + noclasses=False, tab_length=4, hl_lines=None): self.src = src self.lang = lang self.linenums = linenums @@ -132,9 +133,9 @@ class CodeHilite(object): classes.append('linenums') class_str = '' if classes: - class_str = ' class="%s"' % ' '.join(classes) - return '<pre class="%s"><code%s>%s</code></pre>\n'% \ - (self.css_class, class_str, txt) + class_str = ' class="%s"' % ' '.join(classes) + return '<pre class="%s"><code%s>%s</code></pre>\n' % \ + (self.css_class, class_str, txt) def _parseHeader(self): """ @@ -142,8 +143,8 @@ class CodeHilite(object): line should be removed or left in place. If the sheband line contains a path (even a single /) then it is assumed to be a real shebang line and left alone. However, if no path is given (e.i.: #!python or :::python) - then it is assumed to be a mock shebang for language identifitation of a - code fragment and removed from the code block prior to processing for + then it is assumed to be a mock shebang for language identifitation of + a code fragment and removed from the code block prior to processing for code highlighting. When a mock shebang (e.i: #!python) is found, line numbering is turned on. When colons are found in place of a shebang (e.i.: :::python), line numbering is left in the current state - off @@ -156,9 +157,9 @@ class CodeHilite(object): import re - #split text into lines + # split text into lines lines = self.src.split("\n") - #pull first line to examine + # pull first line to examine fl = lines.pop(0) c = re.compile(r''' @@ -192,8 +193,9 @@ class CodeHilite(object): self.src = "\n".join(lines).strip("\n") - # ------------------ The Markdown Extension ------------------------------- + + class HiliteTreeprocessor(Treeprocessor): """ Hilight source code in code blocks. """ @@ -203,13 +205,15 @@ class HiliteTreeprocessor(Treeprocessor): for block in blocks: children = block.getchildren() if len(children) == 1 and children[0].tag == 'code': - code = CodeHilite(children[0].text, - linenums=self.config['linenums'], - guess_lang=self.config['guess_lang'], - css_class=self.config['css_class'], - style=self.config['pygments_style'], - noclasses=self.config['noclasses'], - tab_length=self.markdown.tab_length) + code = CodeHilite( + children[0].text, + linenums=self.config['linenums'], + guess_lang=self.config['guess_lang'], + css_class=self.config['css_class'], + style=self.config['pygments_style'], + noclasses=self.config['noclasses'], + tab_length=self.markdown.tab_length + ) placeholder = self.markdown.htmlStash.store(code.hilite(), safe=True) # Clear codeblock in etree instance @@ -226,13 +230,22 @@ class CodeHiliteExtension(Extension): def __init__(self, *args, **kwargs): # define default configs self.config = { - 'linenums': [None, "Use lines numbers. True=yes, False=no, None=auto"], - 'force_linenos' : [False, "Depreciated! Use 'linenums' instead. Force line numbers - Default: False"], - 'guess_lang' : [True, "Automatic language detection - Default: True"], - 'css_class' : ["codehilite", - "Set class name for wrapper <div> - Default: codehilite"], - 'pygments_style' : ['default', 'Pygments HTML Formatter Style (Colorscheme) - Default: default'], - 'noclasses': [False, 'Use inline styles instead of CSS classes - Default false'] + 'linenums': [None, + "Use lines numbers. True=yes, False=no, None=auto"], + 'force_linenos': [False, + "Depreciated! Use 'linenums' instead. Force " + "line numbers - Default: False"], + 'guess_lang': [True, + "Automatic language detection - Default: True"], + 'css_class': ["codehilite", + "Set class name for wrapper <div> - " + "Default: codehilite"], + 'pygments_style': ['default', + 'Pygments HTML Formatter Style ' + '(Colorscheme) - Default: default'], + 'noclasses': [False, + 'Use inline styles instead of CSS classes - ' + 'Default false'] } super(CodeHiliteExtension, self).__init__(*args, **kwargs) @@ -247,4 +260,4 @@ class CodeHiliteExtension(Extension): def makeExtension(*args, **kwargs): - return CodeHiliteExtension(*args, **kwargs) + return CodeHiliteExtension(*args, **kwargs) |