|
@@ -92,8 +92,20 @@ def generate_html(book, toc, book_name):
|
|
|
shutil.rmtree(book_build_d, ignore_errors=True)
|
|
|
os.mkdir(book_build_d)
|
|
|
|
|
|
- # main markdown book file where all pages will be merge
|
|
|
- book_md_f = os.path.join(book_build_d,book_name+'.md')
|
|
|
+ #
|
|
|
+ # create main html dom from template
|
|
|
+ template_f = open("templates/main.tpl.html", "r")
|
|
|
+ template_html = template_f.read()
|
|
|
+ template_dom = BeautifulSoup(template_html, 'html.parser')
|
|
|
+ # replace title
|
|
|
+ template_dom.html.head.title.contents[0].replaceWith(book_name)
|
|
|
+ # get story div
|
|
|
+ story_dom = template_dom.find('div', {"id":"my-story"})
|
|
|
+
|
|
|
+ #
|
|
|
+ # loop through pages to convert them to html and add it to main html file
|
|
|
+ book_build_d_pages = os.path.join(book_build_d,'pages')
|
|
|
+ os.mkdir(book_build_d_pages)
|
|
|
|
|
|
for p in toc:
|
|
|
# print(toc[p]['file'])
|
|
@@ -105,45 +117,32 @@ def generate_html(book, toc, book_name):
|
|
|
continue
|
|
|
# print('in_f : '+in_f)
|
|
|
|
|
|
- md_f = open(in_f, 'r')
|
|
|
- with open(book_md_f, 'a') as fp:
|
|
|
- fp.write(md_f.read())
|
|
|
-
|
|
|
-
|
|
|
- # generate html with pandoc
|
|
|
-
|
|
|
- # create the html file name
|
|
|
- html_f = book_md_f.replace('.md', '.html')
|
|
|
- # print('out_f : '+out_f)
|
|
|
-
|
|
|
- # pandoc options
|
|
|
- # filters = []
|
|
|
-
|
|
|
- pdoc_args = ['-s',
|
|
|
- '--mathjax',
|
|
|
- '--smart',
|
|
|
- '--css=../../assets/fonts/amiri/amiri.css',
|
|
|
- '--css=../../assets/css/dist/main.css',
|
|
|
- '--include-before-body=templates/top.tpl.html',
|
|
|
- '--include-after-body=templates/bot.tpl.html',
|
|
|
- '--include-after-body=assets/lib/jquery.min.js',
|
|
|
- '--include-after-body=assets/js/setup.js',
|
|
|
- '--include-after-body=assets/js/html2print.js',
|
|
|
- '--include-after-body=assets/js/script.js',
|
|
|
- '--include-after-body=templates/end.tpl.html']
|
|
|
-
|
|
|
- # pandoc command line
|
|
|
- # print(pypandoc.get_pandoc_version())
|
|
|
- output = pypandoc.convert_file(book_md_f,
|
|
|
- to='html5',
|
|
|
- format='md',
|
|
|
- extra_args=pdoc_args,
|
|
|
- # filters=filters,
|
|
|
- outputfile=html_f)
|
|
|
+ # out_f = os.path.join(book_build_d_pages, toc[p]['file'].replace('/', '-').replace('.md', '.html'))
|
|
|
+ # print('out_f : '+out_f)
|
|
|
+
|
|
|
+ pdoc_args = ['--mathjax',
|
|
|
+ '--smart']
|
|
|
+
|
|
|
+ output = pypandoc.convert_file(in_f,
|
|
|
+ to='html5',
|
|
|
+ format='md',
|
|
|
+ extra_args=pdoc_args)
|
|
|
+ # filters=filters,
|
|
|
+ # outputfile=out_f)
|
|
|
+
|
|
|
+ # append html story page to template_dom
|
|
|
+ story_page = BeautifulSoup('<div class="story-page"></div>')
|
|
|
+ story_page.div.append(BeautifulSoup(output))
|
|
|
+ story_dom.append(story_page)
|
|
|
+
|
|
|
+ # create main html file from filled template html dom
|
|
|
+ book_html_f = os.path.join(book_build_d,book_name+'.html')
|
|
|
+ with open(book_html_f, 'w') as fp:
|
|
|
+ fp.write(template_dom.prettify())
|
|
|
|
|
|
book_toc = {
|
|
|
'label':book_name,
|
|
|
- 'file':html_f
|
|
|
+ 'file':book_html_f
|
|
|
}
|
|
|
|
|
|
global _TOC
|