This repository has been archived on 2023-03-26. You can view files and clone it, but cannot push or open issues or pull requests.
md-pdf/md_pdf/build/pandoc.py

37 lines
954 B
Python
Raw Normal View History

2017-03-27 09:17:49 +01:00
import pypandoc
from bs4 import BeautifulSoup
2017-03-28 09:21:06 +01:00
import os.path
from md_pdf.utils import PROJECT_DIR
2017-03-27 09:17:49 +01:00
2017-03-28 09:21:06 +01:00
CSL_FILE = os.path.join(PROJECT_DIR, 'assets', 'harverd.csl')
2017-03-27 09:17:49 +01:00
def fix_references_title(content):
soup = BeautifulSoup(content, 'html.parser')
2017-03-28 09:21:06 +01:00
reference_element = soup.find('div', class_='references')
if reference_element is not None:
title = soup.new_tag('h1')
title.string = "References"
reference_element.insert_before(title)
2017-03-27 09:17:49 +01:00
return soup.prettify()
2017-03-28 09:21:06 +01:00
def build_document(files_content, bibliography):
args = [
'-s',
]
filters = []
if bibliography is not None:
args += [
'--bibliography={}'.format(bibliography),
'--csl={}'.format(CSL_FILE)
2017-03-27 09:17:49 +01:00
]
2017-03-28 09:21:06 +01:00
filters.append('pandoc-citeproc')
html = pypandoc.convert_text(files_content, 'html', format='md',
extra_args=args,
filters=filters
2017-03-27 09:17:49 +01:00
)
return fix_references_title(html)