Source code for remarker.cli

import click
import codecs
import pkg_resources
import sys
from . import presentation

DEFAULT_HTML_FILE = pkg_resources.resource_filename('remarker', 'templates/default.html')
DEFAULT_CSS_FILE = pkg_resources.resource_filename('remarker', 'templates/default.css')

[docs]def loadfile(filename): with codecs.open(filename, encoding='utf8') as infile: return infile.read()
@click.argument('slides_markdown_file', type=click.Path(exists=True)) @click.option('--html-template', type=click.Path(exists=True), default=DEFAULT_HTML_FILE, help='Jinja2 template file for the presentation.') @click.option('--css-file', '-c', type=click.Path(exists=True), default=DEFAULT_CSS_FILE, help='Custom CSS to be included inline.') @click.option('--output-file', '-o', type=click.File('w', encoding='utf8'), default=sys.stdout, help='Write the output to a file instead of STDOUT.') @click.option('--title', '-t', default='Presentation', help='HTML title of the presentation.') @click.option('--verbose', '-v', is_flag=True, help='Output debugging info.') @click.version_option() @click.command() def remarker(slides_markdown_file, html_template, css_file, output_file, title, verbose): """ Generate a Remark.js HTML presentation from input Markdown and optional custom CSS. """ if verbose: click.echo('Input:', err=True) click.echo('slides_markdown_file: {}'.format(slides_markdown_file), err=True) click.echo('html-template: {}'.format(html_template), err=True) click.echo('css-file: {}'.format(css_file), err=True) click.echo('Output file: {}'.format(output_file), err=True) template_html = loadfile(html_template) slide_markdown = loadfile(slides_markdown_file) stylesheet_html = loadfile(css_file) output_html = presentation.generate_html(template_html, slide_markdown, stylesheet_html, title=title) output_file.write(output_html) if __name__ == '__main__': # pragma: no cover remarker()