#!/usr/bin/python3 import os import os.path import sys #from jinja2 import Environment, PackageLoader, Template, FileSystemLoader from jinja2 import Environment, PackageLoader, Template, FileSystemLoader import mistune #global name for templates article = {}# #class TocMixin(): # """TOC mixin for Renderer, mix this with Renderer::# # class TocRenderer(TocMixin, Renderer): # pass# # toc = TocRenderer() # md = mistune.Markdown(renderer=toc)# # # required in this order # toc.reset_toc() # initial the status # md.parse(text) # parse for headers # toc.render_toc(level=3) # render TOC HTML # """# # def reset_toc(self): # self.toc_tree = [] # self.toc_count = 0 # self.title = None # self.img_count = -1# # def header(self, text, level, raw=None): # rv = "" # if level != 1: # rv = '%s\n' % ( # level, self.toc_count, text, level # ) # else: # self.title = text # self.toc_tree.append((self.toc_count, text, level, raw)) # self.toc_count += 1 # return rv# # #Lets do previev image # def image(self, src, title, alt_text): # prev_img = src.split(".") # prev_img = prev_img[0]+"_prev."+prev_img[1] # self.img_count += 1 # return "\""+alt_text+"\""# # def render_toc(self, level=3): # """Render TOC to HTML.# # :param level: render toc to the given level # """ # return ''.join(self._iter_toc(level))# # def _iter_toc(self, level): # first_level = None # last_level = None # cnt = 0# # if (self.title != None): # yield '

%s

\n' % (self.title)# # yield '\n\n' # last_level -= 1# # yield '\n' # self.toc_count = 0# #class TocRenderer(TocMixin, mistune.Renderer): # pass ################################################################################ #get first tags and use them to configure some bits def get_tags(data): text = "" tag_section = True for line in data.split("\n"): if tag_section: tag = line.split(":") l = len(tag) if l != 2: tag_section = False text += line+"\n" else: article[tag[0]] = tag[1] else: text += line+"\n" return text ################################################################################ #check if there is input file if len(sys.argv) < 2: print("ERROR: Exit . Need more arguments") sys.exit(0) md_fn = sys.argv[1] #template loader loader = FileSystemLoader( "/home/fam/downloads/source/repos/md-site/src/templ" ) templ_env = Environment( loader = loader )# t = templ_env.get_template("main.thtml")# ##get md file f = open( md_fn, "r" ) data = f.read() data = get_tags(data) #toc = TocRenderer() ## Create AST rendered ## Create AST -> Markdown renderer ## Mistune generate MTL md_rend = mistune.html(data) #print t.render( article=article, block = md_rend ) print(t.render( article=article, block = md_rend )) f.close()