forked from unit/ciclostile
First commit
This commit is contained in:
commit
7b41841dd2
65
ciclostile.py
Executable file
65
ciclostile.py
Executable file
|
@ -0,0 +1,65 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
import os
|
||||||
|
import markdown
|
||||||
|
import jinja2
|
||||||
|
|
||||||
|
template_file = 'template.html'
|
||||||
|
md_path = './markdown'
|
||||||
|
html_path = './html'
|
||||||
|
|
||||||
|
|
||||||
|
def write_page(page, out_name):
|
||||||
|
out_path = os.path.join(html_path, out_name)
|
||||||
|
with open(out_path, 'w') as f:
|
||||||
|
f.write(page)
|
||||||
|
|
||||||
|
|
||||||
|
def render_page(data):
|
||||||
|
with open(template_file) as f:
|
||||||
|
template = f.read()
|
||||||
|
|
||||||
|
page = jinja2.Template(template).render(**data)
|
||||||
|
write_page(page, data['file_name'])
|
||||||
|
|
||||||
|
|
||||||
|
def read_md(md_file):
|
||||||
|
full_name = os.path.join(md_path, md_file)
|
||||||
|
with open(full_name) as f:
|
||||||
|
md_text = f.read()
|
||||||
|
return md_text
|
||||||
|
|
||||||
|
|
||||||
|
def make_page(md_file):
|
||||||
|
md_text = read_md(md_file)
|
||||||
|
|
||||||
|
md = markdown.Markdown(extensions=['meta'], output_format='html5')
|
||||||
|
html = md.convert(md_text)
|
||||||
|
|
||||||
|
# get markdown metadata
|
||||||
|
data = {key: md.Meta[key][0]
|
||||||
|
for key in md.Meta.keys()}
|
||||||
|
|
||||||
|
out_name = os.path.splitext(md_file)[0] + '.html'
|
||||||
|
|
||||||
|
data.update({
|
||||||
|
'content': html,
|
||||||
|
'file_name': out_name,
|
||||||
|
})
|
||||||
|
|
||||||
|
return data
|
||||||
|
|
||||||
|
|
||||||
|
def valid_md(md_file):
|
||||||
|
full_name = os.path.join(md_path, md_file)
|
||||||
|
return os.path.isfile(full_name) and full_name.endswith('.md')
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
for md_file in os.listdir(md_path):
|
||||||
|
if valid_md(md_file):
|
||||||
|
page = make_page(md_file)
|
||||||
|
render_page(page)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
2
requirements.txt
Normal file
2
requirements.txt
Normal file
|
@ -0,0 +1,2 @@
|
||||||
|
markdown
|
||||||
|
jinja2
|
Loading…
Reference in New Issue
Block a user