from dexy.template import Template

class CodeJournalHtmlPython(Template):
    """
    Write HTML to discuss a short Python script.

    This is configured to run the website reporter, which will apply the
    _template.html template to any HTML files it processes. Stylesheets for the
    Atatonic web framework and pygments syntax highlighting are included.
    """
    aliases = ['code-journal-html-python']
    filters_used = ['jinja', 'pyg', 'pycon', 'idio']

class CodeJournalHtmlR(Template):
    """
    Write HTML to discuss a short R script.

    This is configured to run the website reporter, which will apply the
    _template.html template to any HTML files it processes. Stylesheets for the
    Atatonic web framework are included. A pygments stylesheet is generated by
    dexy.
    """
    aliases = ['code-journal-html-r']
    filters_used = ['jinja', 'idio', 'rint', 'pyg']

class CodeJournalMarkdownMatplotlib(Template):
    """
    Write Markdown to discuss a Python script calling numpy and matplotlib.

    This is configured to run the website reporter, which will apply the
    _template.html template to any HTML files it processes. Stylesheets for the
    Atatonic web framework are included. A pygments stylesheet is generated by
    dexy. The python script generates .png plots and reads a .csv file.
    """
    aliases = ['code-journal-markdown-matplotlib']
    filters_used = ['markdown', 'idio', 'jinja', 'pycon', 'pyg']

class CodeJournalMarkdownR(Template):
    """
    Write Markdown to discuss an R script.

    This is configured to run the website reporter, which will apply the
    _template.html template to any HTML files it processes. Stylesheets for the
    Atatonic web framework are included. A pygments stylesheet is generated by
    dexy. The python script generates .png plots and reads a .csv file.
    """
    aliases = ['code-journal-markdown-r']
    filters_used = ['rint', 'markdown', 'idio', 'jinja', 'pyg']

class CodeJournalTextileRuby(Template):
    """
    Template for a code journal about Ruby code, written in textile and
    converted to HTML.
    """
    aliases = ['code-journal-textile-ruby']
    filters_used = ['textile', 'pyg', 'rb', 'jinja', 'easyhtml']

class LatexArticlePython(Template):
    """
    Write LaTeX to discuss Python code.

    The LaTeX in article.tex is wrapped with the content in _header.tex and
    _footer.tex before the jinja and LaTeX filters are applied.
    """
    aliases = ['latex-article-python']
    filters_used = ['latex', 'ft', 'jinja', 'l', 'pycon', 'idio', 'hd', 'pyg']

class LatexArticleR(Template):
    """
    Write LaTeX to discuss R code.

    The LaTeX in article.tex is wrapped with the content in _header.tex and
    _footer.tex before the jinja and LaTeX filters are applied.
    """
    aliases = ['latex-article-r']
    filters_used = ['latex', 'r', 'jinja', 'idio', 'l', 'pyg', 'hd', 'ft']

class LatexBeamerR(Template):
    """
    Write LaTeX beamer slides to discuss R code.
    """
    aliases = ['latex-beamer-r']
    filters_used = ['latex', 'r', 'jinja', 'idio', 'l', 'pyg']

class LatexBookR(Template):
    """
    Write a PDF book in LaTeX with separate chapters included via jinja.
    """
    aliases = ['latex-book-r']
    filters_used = ['latex', 'jinja', 'l', 'r', 'idio', 'pyg']

class TufteArticleLaTeXR(Template):
    """
    Write a PDF article in LaTeX about R code applying the Tufte-LaTeX style.
    """
    aliases = ['tufte-article-latex-r']
    filters_used = ['latex', 'ft', 'jinja', 'l', 'r', 'idio', 'hd', 'pyg']

class TufteArticleMarkdownR(Template):
    """
    Write a PDF article in Markdown about R code applying the Tufte-LaTeX style.
    """
    aliases = ['tufte-article-markdown-r']
    filters_used = ['latex', 'ft', 'jinja', 'l', 'r', 'idio', 'hd', 'pyg', 'markdown']

class Pander(Template):
    """
    Examples using pander (http://rapporter.github.com/pander) to generate
    markdown output from R and pandoc to render in multiple formats.
    """
    aliases = [ 'pander']
    filters_used = ['pandoc', 'jinja', 'rout', 'calibre']

class SimpleWebsite(Template):
    """
    Minimal example of creating a website from reStructuredText content using
    dexy's WebsiteReporter.
    """
    aliases = ['website-simple']
    filters_used = ['jinja', 'rstbody']

class Html5Website(Template):
    """
    Template for creating a website using dexy's WebsiteReporter. (based on
    http://html5templates.com/altitude/)

    You need to run a static web server to view the content properly. If you
    run "dexy serve" after running dexy, this will start the built-in
    SimpleHTTPServer and allow you to view the content locally.
    """
    aliases = ['website-html5-altitude']
    filters_used = ['jinja', 'markdown', 'shint', 'idio', 'pyg', 'htmlsections']
