From mboxrd@z Thu Jan 1 00:00:00 1970 From: andy at warmcat.com (Andy Green) Date: Mon, 18 Jun 2018 10:58:26 +0800 Subject: [PATCH v2 14/15] md2html-add-asset-postfix-arg In-Reply-To: <152928998685.10419.7869045561776063625.stgit@mail.warmcat.com> References: <152928998685.10419.7869045561776063625.stgit@mail.warmcat.com> Message-ID: <152929070596.10419.8074350024589074648.stgit@mail.warmcat.com> Extend md2html with a third argument for URL postfix, like "?h=mybranch" Signed-off-by: Andy Green --- filters/html-converters/md2html | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/filters/html-converters/md2html b/filters/html-converters/md2html index eb5d977..128a61b 100755 --- a/filters/html-converters/md2html +++ b/filters/html-converters/md2html @@ -9,31 +9,36 @@ 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: return + asset_postfix = self.getConfig('asset_postfix') + if not asset_postfix: + return md.treeprocessors.add('asset_mapping', - AssetMappingProcessor(asset_prefix), + AssetMappingProcessor(asset_prefix, asset_postfix), '_end') @@ -333,8 +338,8 @@ extension_configs = { "markdown.extensions.codehilite":{"css_class":"highlight"} } -if len(sys.argv) > 2: - extensions.append(AssetMappingExtension(asset_prefix=sys.argv[2])) +if len(sys.argv) > 3: + extensions.append(AssetMappingExtension(asset_prefix=sys.argv[2],asset_postfix=sys.argv[3])) # Note: you may want to run this through bleach for sanitization markdown.markdownFromFile(output_format="html5", extensions=extensions, extension_configs=extension_configs)