Python源码示例:pypandoc.get_pandoc_version()
示例1
def main():
marks_down_links = {
"Standford CS231n 2017 Summary":
"https://raw.githubusercontent.com/mbadry1/CS231n-2017-Summary/master/README.md",
}
# Extracting pandoc version
print("pandoc_version:", pypandoc.get_pandoc_version())
print("pandoc_path:", pypandoc.get_pandoc_path())
print("\n")
# Starting downloading and converting
for key, value in marks_down_links.items():
print("Converting", key)
pypandoc.convert_file(
value,
'pdf',
extra_args=['--latex-engine=xelatex', '-V', 'geometry:margin=1.5cm'],
outputfile=(key + ".pdf")
)
print("Converting", key, "completed")
示例2
def __init__(self):
# make sure we use at least version 17 of pandoc
# TODO: fix this test, it will not work properly for version 1.2 or 1.100
version = pypandoc.get_pandoc_version()
if (version < "1.17"):
log.error('You need at least pandoc 1.17.0, download from http://pandoc.org/installing.html')
exit(1)
# precompile regular expressions
self.regexWikiLinkWithText = re.compile(r'\\\[\\\[\s*([^\]]*?)\s*\|\s*([^\]]*?)\s*\\\]\\\]')
self.regexWikiLinkWithoutText = re.compile(r'\\\[\\\[\s*([^\]]*?)\s*\\\]\\\]')
self.regexTipMacro = re.compile(r'\{\{tip\((.*?)\)\}\}')
self.regexNoteMacro = re.compile(r'\{\{note\((.*?)\)\}\}')
self.regexWarningMacro = re.compile(r'\{\{warning\((.*?)\)\}\}')
self.regexImportantMacro = re.compile(r'\{\{important\((.*?)\)\}\}')
self.regexAnyMacro = re.compile(r'\{\{(.*)\}\}')
self.regexCodeBlock = re.compile(r'\A ((.|\n)*)', re.MULTILINE)
self.regexCollapse = re.compile(r'({{collapse\s?\(([^)]+)\))(.*)(}})', re.MULTILINE | re.DOTALL)
self.regexParagraph = re.compile(r'p(\(+|(\)+)?>?|=)?\.', re.MULTILINE | re.DOTALL)
self.regexCodeHighlight = re.compile(r'(<code\s?(class=\"(.*)\")?>).*(</code>)', re.MULTILINE | re.DOTALL)
self.regexAttachment = re.compile(r'attachment:[\'\"“”‘’„”«»](.*)[\'\"“”‘’„”«»]', re.MULTILINE | re.DOTALL)
示例3
def main():
home_link = "https://raw.githubusercontent.com/mbadry1/DeepLearning.ai-Summary/master/"
marks_down_links = {
"Deeplearning.ai summary Homepage":
home_link + "Readme.md",
"01- Neural Networks and Deep Learning":
home_link + "1-%20Neural%20Networks%20and%20Deep%20Learning/Readme.md",
"02- Improving Deep Neural Networks Hyperparameter tuning, Regularization and Optimization":
home_link + "2-%20Improving%20Deep%20Neural%20Networks/Readme.md",
"03- Structuring Machine Learning Projects":
home_link + "3-%20Structuring%20Machine%20Learning%20Projects/Readme.md",
"04- Convolutional Neural Networks":
home_link + "4-%20Convolutional%20Neural%20Networks/Readme.md",
"05- Sequence Models":
home_link + "5-%20Sequence%20Models/Readme.md",
}
# Extracting pandoc version
print("pandoc_version:", pypandoc.get_pandoc_version())
print("pandoc_path:", pypandoc.get_pandoc_path())
print("\n")
# Starting downloading and converting
for key, value in marks_down_links.items():
print("Converting", key)
pypandoc.convert_file(
value,
'pdf',
extra_args=['--pdf-engine=xelatex', '-V', 'geometry:margin=1.5cm'],
outputfile=(key + ".pdf")
)
print("Converting", key, "completed")
示例4
def has_pandoc(): # pragma: no cover
try:
with captured_output():
import pypandoc
pypandoc.get_pandoc_version()
return True
except (OSError, ImportError):
logger.info("pypandoc is not installed.")
except FileNotFoundError:
logger.info("pandoc is not installed.")
return False
示例5
def __init__(self, local_repo_path):
self.repo_path = local_repo_path
self.repo = Repo(local_repo_path)
# make sure we use at least version 17 of pandoc
# TODO: fix this test, it will not work properly for version 1.2 or 1.100
version = pypandoc.get_pandoc_version()
if (version < "1.17"):
log.error('You need at least pandoc 1.17.0, download from http://pandoc.org/installing.html')
exit(1)
self.textile_converter = TextileConverter()
示例6
def render_to_format(request, format, title, template_src, context):
if format in dict(settings.EXPORT_FORMATS):
# render the template to a html string
template = get_template(template_src)
html = template.render(context)
# remove empty lines
html = os.linesep.join([line for line in html.splitlines() if line.strip()])
if format == 'html':
# create the response object
response = HttpResponse(html)
else:
if format == 'pdf':
# check pandoc version (the pdf arg changed to version 2)
if pypandoc.get_pandoc_version().split('.')[0] == '1':
args = ['-V', 'geometry:margin=1in', '--latex-engine=xelatex']
else:
args = ['-V', 'geometry:margin=1in', '--pdf-engine=xelatex']
content_disposition = 'filename="%s.%s"' % (title, format)
else:
args = []
content_disposition = 'attachment; filename="%s.%s"' % (title, format)
# use reference document for certain file formats
refdoc = set_export_reference_document(format)
if refdoc is not None and (format == 'docx' or format == 'odt'):
if pypandoc.get_pandoc_version().startswith("1"):
refdoc_param = '--reference-' + format + '=' + refdoc
args.extend([refdoc_param])
else:
refdoc_param = '--reference-doc=' + refdoc
args.extend([refdoc_param])
# create a temporary file
(tmp_fd, tmp_filename) = mkstemp('.' + format)
log.info("Export " + format + " document using args " + str(args))
# convert the file using pandoc
pypandoc.convert_text(html, format, format='html', outputfile=tmp_filename, extra_args=args)
# read the temporary file
file_handler = os.fdopen(tmp_fd, 'rb')
file_content = file_handler.read()
file_handler.close()
# delete the temporary file
os.remove(tmp_filename)
# create the response object
response = HttpResponse(file_content, content_type='application/%s' % format)
response['Content-Disposition'] = content_disposition.encode('utf-8')
return response
else:
return HttpResponseBadRequest(_('This format is not supported.'))