From: Vladimír Vondruš Date: Mon, 4 Jun 2018 07:04:47 +0000 (+0200) Subject: plugins: avoid dependency on __init__.py for simple link plugins. X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~cjwatson/git?a=commitdiff_plain;h=f97aa36211174606bfba36c14fb0e2d16c4ec45c;p=blog.git plugins: avoid dependency on __init__.py for simple link plugins. Duplicated the common code over. It's fully covered, so it's okay. --- diff --git a/pelican-plugins/m/__init__.py b/pelican-plugins/m/__init__.py index 131dcd4d..29b1c1dd 100644 --- a/pelican-plugins/m/__init__.py +++ b/pelican-plugins/m/__init__.py @@ -22,13 +22,5 @@ # DEALINGS IN THE SOFTWARE. # -from docutils import utils -import re - -link_regexp = re.compile(r'(?P.*) <(?P<link>.+)>') - -def parse_link(text): - link = utils.unescape(text) - m = link_regexp.match(link) - if m: return m.group('title', 'link') - return None, link +# This file is here only to make python unittest work, it's not needed +# otherwise diff --git a/pelican-plugins/m/abbr.py b/pelican-plugins/m/abbr.py index 33841145..4eb705e1 100644 --- a/pelican-plugins/m/abbr.py +++ b/pelican-plugins/m/abbr.py @@ -22,10 +22,21 @@ # DEALINGS IN THE SOFTWARE. # -from . import parse_link -from docutils import nodes +import re +from docutils import nodes, utils from docutils.parsers import rst +# to avoid dependencies, link_regexp and parse_link() is common for m.abbr, +# m.gh and m.gl + +link_regexp = re.compile(r'(?P<title>.*) <(?P<link>.+)>') + +def parse_link(text): + link = utils.unescape(text) + m = link_regexp.match(link) + if m: return m.group('title', 'link') + return None, link + def abbr(name, rawtext, text, lineno, inliner, options={}, content=[]): abbr, title = parse_link(text) if not abbr: diff --git a/pelican-plugins/m/dox.py b/pelican-plugins/m/dox.py index ccf1f013..4063841b 100644 --- a/pelican-plugins/m/dox.py +++ b/pelican-plugins/m/dox.py @@ -22,7 +22,6 @@ # DEALINGS IN THE SOFTWARE. # -from . import parse_link from docutils.parsers.rst.states import Inliner from docutils import nodes, utils from docutils.parsers import rst diff --git a/pelican-plugins/m/gh.py b/pelican-plugins/m/gh.py index 858d641c..422d12de 100644 --- a/pelican-plugins/m/gh.py +++ b/pelican-plugins/m/gh.py @@ -22,10 +22,21 @@ # DEALINGS IN THE SOFTWARE. # -from . import parse_link -from docutils import nodes +import re +from docutils import nodes, utils from docutils.parsers import rst +# to avoid dependencies, link_regexp and parse_link() is common for m.abbr, +# m.gh and m.gl + +link_regexp = re.compile(r'(?P<title>.*) <(?P<link>.+)>') + +def parse_link(text): + link = utils.unescape(text) + m = link_regexp.match(link) + if m: return m.group('title', 'link') + return None, link + def gh_internal(account, ref, title, link): base_url = "https://github.com/{}/{}/{}/{}" if '#' in ref: diff --git a/pelican-plugins/m/gl.py b/pelican-plugins/m/gl.py index 7ef8071a..ae61867d 100644 --- a/pelican-plugins/m/gl.py +++ b/pelican-plugins/m/gl.py @@ -22,10 +22,21 @@ # DEALINGS IN THE SOFTWARE. # -from . import parse_link +import re from docutils import nodes, utils from docutils.parsers import rst +# to avoid dependencies, link_regexp and parse_link() is common for m.abbr, +# m.gh and m.gl + +link_regexp = re.compile(r'(?P<title>.*) <(?P<link>.+)>') + +def parse_link(text): + link = utils.unescape(text) + m = link_regexp.match(link) + if m: return m.group('title', 'link') + return None, link + def glext(name, rawtext, text, lineno, inliner, options={}, content=[]): title, extension = parse_link(text) if not title: title = extension