[PATCH v2 14/15] md2html-add-asset-postfix-arg

Andy Green andy at warmcat.com
Mon Jun 18 04:58:26 CEST 2018


Extend md2html with a third argument for URL postfix, like "?h=mybranch"

Signed-off-by: Andy Green <andy at warmcat.com>
---
 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)



More information about the CGit mailing list