From mboxrd@z Thu Jan 1 00:00:00 1970 From: andy at warmcat.com (Andy Green) Date: Wed, 20 Jun 2018 18:12:59 +0800 Subject: [PATCH v4 12/16] md2html: add asset postfix arg In-Reply-To: <152948941145.29466.10223016890282865269.stgit@mail.warmcat.com> References: <152948941145.29466.10223016890282865269.stgit@mail.warmcat.com> Message-ID: <152948957978.29466.8447227266640642756.stgit@mail.warmcat.com> Extend md2html with an optional third argument for URL postfix, like "?h=mybranch" Signed-off-by: Andy Green --- filters/html-converters/md2html | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/filters/html-converters/md2html b/filters/html-converters/md2html index eb5d977..6f4f1b3 100755 --- a/filters/html-converters/md2html +++ b/filters/html-converters/md2html @@ -9,31 +9,35 @@ from urllib.parse import urljoin class AssetMappingProcessor(markdown.treeprocessors.Treeprocessor): - def __init__(self, asset_prefix): + def __init__(self, asset_prefix, asset_postfix): self.asset_prefix = asset_prefix + self.asset_postfix = asset_postfix def run(self, root): asset_prefix = self.asset_prefix + asset_postfix = self.asset_postfix for img in root.iter('img'): src = img.get('src') if src is None: continue - img.set('src', urljoin(asset_prefix, src)) + img.set('src', urljoin(urljoin(asset_prefix, src), asset_postfix)) class AssetMappingExtension(markdown.extensions.Extension): def __init__(self, **kwargs): - self.config = {'asset_prefix': ['', 'prefix for relative asset URLs']} + self.config = {'asset_prefix': ['', 'prefix for relative asset URLs'], + 'asset_postfix': ['', 'postfix for relative asset URLs']} super(AssetMappingExtension, self).__init__(**kwargs) def extendMarkdown(self, md, md_globals): asset_prefix = self.getConfig('asset_prefix') - if not asset_prefix: + asset_postfix = self.getConfig('asset_postfix') + if not (asset_prefix or asset_postfix): return md.treeprocessors.add('asset_mapping', - AssetMappingProcessor(asset_prefix), + AssetMappingProcessor(asset_prefix, asset_postfix), '_end') @@ -334,7 +338,10 @@ extension_configs = { } if len(sys.argv) > 2: - extensions.append(AssetMappingExtension(asset_prefix=sys.argv[2])) + args = {'asset_prefix': sys.argv[2]} + if len(sys.argv) > 3: + args['asset_postfix'] = sys.argv[3] + extensions.append(AssetMappingExtension(**args)) # Note: you may want to run this through bleach for sanitization markdown.markdownFromFile(output_format="html5", extensions=extensions, extension_configs=extension_configs)