[PATCH v4 12/16] md2html: add asset postfix arg
Andy Green
andy at warmcat.com
Wed Jun 20 12:12:59 CEST 2018
Extend md2html with an optional third argument for URL postfix, like "?h=mybranch"
Signed-off-by: Andy Green <andy at warmcat.com>
---
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)
More information about the CGit
mailing list