summaryrefslogtreecommitdiff
path: root/src/md.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/md.py')
-rwxr-xr-xsrc/md.py227
1 files changed, 116 insertions, 111 deletions
diff --git a/src/md.py b/src/md.py
index 31d5e9e..60fb574 100755
--- a/src/md.py
+++ b/src/md.py
@@ -1,112 +1,114 @@
-#!/usr/bin/python2
+#!/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 = '<h%d id="toc-%d">%s</h%d>\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 "<a href="+src+"><img src=\""+prev_img+"\" alt=\""+alt_text+"\"></a>"
-
- 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 '<h1>%s</h1>\n' % (self.title)
-
- yield '<ul id="table-of-content">\n'
-
- for toc in self.toc_tree:
- index, text, l, raw = toc
- index = cnt
-
-
- if l > level:
- # ignore this level
- continue
-
- if first_level is None:
- # based on first level
- first_level = l
- last_level = l
- #yield '<li><a href="#toc-%d">%s</a>' % (cnt, text)
- yield ''
- elif last_level == l:
- yield '</li>\n<li><a href="#toc-%d">%s</a>' % (cnt, text)
- elif last_level == l - 1:
- last_level = l
- yield '<ul>\n<li><a href="#toc-%d">%s</a>' % (cnt, text)
- elif last_level > l:
- # close indention
- yield '</li>'
- while last_level > l:
- yield '</ul>\n</li>\n'
- last_level -= 1
- yield '<li><a href="#toc-%d">%s</a>' % (cnt, text)
- cnt = cnt + 1
-
- # close tags
- yield '</li>\n'
- while last_level > first_level:
- yield '</ul>\n<!--</li>-->\n'
- last_level -= 1
-
- yield '</ul>\n'
- self.toc_count = 0
-
-class TocRenderer(TocMixin, mistune.Renderer):
- pass
+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 = '<h%d id="toc-%d">%s</h%d>\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 "<a href="+src+"><img src=\""+prev_img+"\" alt=\""+alt_text+"\"></a>"#
+
+# 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 '<h1>%s</h1>\n' % (self.title)#
+
+# yield '<ul id="table-of-content">\n'#
+
+# for toc in self.toc_tree:
+# index, text, l, raw = toc
+# index = cnt
+# #
+
+# if l > level:
+# # ignore this level
+# continue#
+
+# if first_level is None:
+# # based on first level
+# first_level = l
+# last_level = l
+# #yield '<li><a href="#toc-%d">%s</a>' % (cnt, text)
+# yield ''
+# elif last_level == l:
+# yield '</li>\n<li><a href="#toc-%d">%s</a>' % (cnt, text)
+# elif last_level == l - 1:
+# last_level = l
+# yield '<ul>\n<li><a href="#toc-%d">%s</a>' % (cnt, text)
+# elif last_level > l:
+# # close indention
+# yield '</li>'
+# while last_level > l:
+# yield '</ul>\n</li>\n'
+# last_level -= 1
+# yield '<li><a href="#toc-%d">%s</a>' % (cnt, text)
+# cnt = cnt + 1#
+
+# # close tags
+# yield '</li>\n'
+# while last_level > first_level:
+# yield '</ul>\n<!--</li>-->\n'
+# last_level -= 1#
+
+# yield '</ul>\n'
+# self.toc_count = 0#
+
+#class TocRenderer(TocMixin, mistune.Renderer):
+# pass
################################################################################
#get first tags and use them to configure some bits
@@ -129,27 +131,30 @@ def get_tags(data):
################################################################################
#check if there is input file
if len(sys.argv) < 2:
- print "Need more arguments"
+ 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 )
+templ_env = Environment( loader = loader )#
-t = templ_env.get_template("main.thtml")
+t = templ_env.get_template("main.thtml")#
-#get md file
+##get md file
f = open( md_fn, "r" )
data = f.read()
data = get_tags(data)
-toc = TocRenderer()
-md = mistune.Markdown(rule=True,renderer=toc)
+#toc = TocRenderer()
+## Create AST rendered
+
+## Create AST -> Markdown renderer
+
+## Mistune generate MTL
+md_rend = mistune.html(data)
-toc.reset_toc()
-md.parse(data)
-md_rend_toc = toc.render_toc(level=3)
-md_rend = md_rend_toc + md.render( data )
+#print t.render( article=article, block = md_rend )
+print(t.render( article=article, block = md_rend ))
-print t.render( article=article, block = md_rend ) \ No newline at end of file
+f.close() \ No newline at end of file