# -*- coding: utf-8 -*-
from setuptools import setup

packages = \
['pelican',
 'pelican.plugins.liquid_tags',
 'pelican.plugins.liquid_tags.test_data']

package_data = \
{'': ['*'],
 'pelican.plugins.liquid_tags': ['content/test_data/*'],
 'pelican.plugins.liquid_tags.test_data': ['content/*',
                                           'content/notebooks/*',
                                           'output/*']}

install_requires = \
['ipython>=7.16.1', 'nbconvert>=6.0.7', 'pelican>=4.5']

extras_require = \
{'markdown': ['markdown>=3.2']}

setup_kwargs = {
    'name': 'pelican-liquid-tags',
    'version': '1.0.2',
    'description': 'Pelican plugin that supports Liquid-style tags in Markdown documents',
    'long_description': '# Liquid Tags\n\n[![Build Status](https://img.shields.io/github/workflow/status/pelican-plugins/liquid-tags/build)](https://github.com/pelican-plugins/liquid-tags/actions)\n[![PyPI Version](https://img.shields.io/pypi/v/pelican-liquid-tags)](https://pypi.org/project/pelican-liquid-tags/)\n![License](https://img.shields.io/pypi/l/pelican-liquid-tags?color=blue)\n\nThis Pelican plugin allows Liquid-style tags to be inserted into Markdown within\nPelican documents via tags bounded by `{% ... %}`, a convention also used\nto extend Markdown in other publishing platforms such as Octopress.\n\nThis set of extensions does not actually interface with Liquid, but allows\nusers to define their own Liquid-style tags which will be inserted into\nthe Markdown pre-processor stream. There are several built-in tags, which\ncan be added as follows below.\n\n## Installation\n\nThis plugin can be installed via:\n\n    python -m pip install pelican-liquid-tags\n\nFor more detailed plugin installation instructions, please refer to the\n[Pelican Plugin Documentation](https://docs.getpelican.com/en/latest/plugins.html).\n\n## Configuration\n\nWhile this plugin does provide an extensive set of built-in tags (see below),\nnone of them is imported and made available by default. In order to use specific\ntags in your post, you need to explicitly enable them in your settings file:\n\n    LIQUID_TAGS = ["img", "literal", "video", "youtube",\n                   "vimeo", "include_code"]\n\n### Configuration Settings in Custom Tags\n\nTags do not have access to the full set of Pelican settings, and instead arrange\nfor the variables to be passed to the tag. Tag authors who plan to add their\ntag as an in-tree tag can just add the variables they need to an array in\n`mdx_liquid_tags.py`. Out-of-tree tag authors can specify which variables they\nneed by including a tuple of (variable, default value, helptext) via the\nappropriate Pelican setting:\n\n    LIQUID_CONFIGS = ((\'PATH\', \'.\', "The default path"), (\'SITENAME\', \'Default Sitename\', \'The name of the site\'))\n\n## Tags in this Plugin\n\n### Image Tag\n\nTo insert a sized and labeled image in your document, enable the\n`img` tag and use the following:\n\n    {% img [class name(s)] path/to/image [lazy | eager] [width [height]] [title text | "title text" ["alt text"]] %}\n\nThe configuration variable `IMG_DEFAULT_LOADING` can change the default beahavior\nof the plugin. `lazy` setting takes precendence over the default `eager`.\nIf `lazy` is set, all the images will receive the attribute. This is not the case\nwith `eager` because it\'s the default behavior of browsers when faced with an image.\nExplicit parameters specified in liquid-tags `img` will always take precedence\nand will always be translated into attributes.\n\n### Base64 Image (Inline Image) Tag\n\n`b64img` is based on the`img` tag, but instead of inserting a link to the image, it encodes it as Base64 text and inserts it into an `<img src=` attribute.\n\nTo use it:\n\n1. Enable `b64img`\n2. Insert a tag as follows: `{% b64img [class name(s)] path/to/image [width [height]] [title text | "title text" ["alt text"]] %}`\n\nImages are encoded at generation time, so you can use any local path (just be sure that the image will remain in the same location for subsequent site generations).\n\n### Instagram Tag\n\nTo insert a sized and labeled Instagram image in your document by its short-code (such as `pFI0CAIZna`), enable the `gram` tag and use the following:\n\n    {% gram shortcode [size] [width] [class name(s)] [title text | "title text" ["alt text"]] %}\n\nYou can specify a size with `t`, `m`, or `l`.\n\n### Flickr Tag\n\nTo insert a Flickr image to a post, follow these steps:\n\n1. Enable `flickr`\n2. [Get an API key from Flickr](https://www.flickr.com/services/apps/create/apply)\n3. Add `FLICKR_API_KEY` to your settings file\n4. Add this to your source document:\n\n       {% flickr image_id [small|medium|large] ["alt text"|\'alt text\'] %}\n\n### Giphy Tag\n\nTo insert a GIF from Giphy in a post, follow these steps:\n1. Enable `giphy`\n2. [Get an API key from Giphy](https://developers.giphy.com/docs/api#quick-start-guide)\n3. Add `GIPHY_API_KEY` to your settings file\n4. Add this to your source document:\n\n       {% giphy gif_id ["alt text"|\'alt text\'] %}\n\n### Soundcloud Tag\n\nTo insert a Soundcloud widget in your content, follow these steps:\n\n1. Enable `soundcloud`\n2. Add this to your source document:\n\n       {% soundcloud track_url %}\n\n### YouTube Tag\n\nTo insert a YouTube video into your content, enable the\n`youtube` plugin and add the following to your source document:\n\n    {% youtube youtube_id [width] [height] %}\n\nThe width and height are in pixels and are optional. If they\nare not specified, then the dimensions will be 640 (wide) by 390 (tall).\n\nIf you experience issues with code generation (e.g., missing closing tags),\nyou might need to add `SUMMARY_MAX_LENGTH = None` to your settings file.\n\n#### Embedding Thumbnail Only\n\nIf you do not want to add 1+ megabyte of JS code to your page, you can embed a\nlinked thumbnail instead. To do so, set a `YOUTUBE_THUMB_ONLY` variable in your\nsettings file. The `YOUTUBE_THUMB_SIZE` variable controls thumbnail dimensions,\nwith four sizes available:\n\nname  | xres | yres\n------|------|-----\nmaxres| 1280 | 720\nsd    |  640 | 480\nhq    |  480 | 360\nmq    |  320 | 180\n\nEmbedded thumbnails have CSS class `youtube_video`, which can be used to add\na *Play* button.\n\n### Vimeo Tag\n\nTo insert a Vimeo video into your content, enable the `vimeo`\nplugin and add the following to your source document:\n\n    {% vimeo vimeo_id [width] [height] %}\n\nThe width and height are in pixels and are optional. If they\nare not specified, then the dimensions will be 640 (wide) by 390 (tall).\n\nIf you experience issues with code generation (e.g., missing closing tags),\nyou might need to add `SUMMARY_MAX_LENGTH = None` to your settings file.\n\n### Speakerdeck Tag\n\nTo insert a Speakerdeck viewer into your content, follow these steps:\n\n1. Enable the `soundcloud` plugin\n2. Add the following to your source document:\n\n```html\n{% speakerdeck speakerdeck_id [ratio] %}\n```\n\nNotes:\n\n- The ratio is a decimal number and is optional.\n- Ratio must be a decimal number and any digit after decimal is optional.\n- If ratio is not specified, then it will be `1.33333333333333` (4/3).\n- Common value for the ratio is `1.77777777777777` (16/9).\n\n### Video Tag\n\nTo insert HTML5-friendly video into your content, enable the `video`\nplugin and add the following to your source document:\n\n    {% video /url/to/video.mp4 [width] [height] [/path/to/poster.png] %}\n\nThe width and height are in pixels and are optional. If they are not specified,\nthen the native video size will be used. The poster image is a preview image\nthat is shown prior to initiating video playback.\nTo link to a video file, make sure it is in a static directory, transmitted\nto your server, and available at the specified URL.\n\n### Audio Tag\n\nTo insert HTML5 audio into a post, enable the `audio` plugin\nand add the following to your source document:\n\n    {% audio url/to/audio [url/to/audio] [url/to/audio] %}\n\nThis tag supports up to three audio URL arguments so you can add different\naudio file versions, as different browsers support different file formats.\n\nTo link to an audio file, make sure it is in a static directory, transmitted\nto your server, and available at the specified URL.\n\n### Include Code\n\nTo include code from a file in your document, with optional link to the original\nfile, enable the `include_code` plugin, and add the following to your source\ndocument:\n\n    {% include_code path/to/code.py [lang:python] [lines:X-Y] [:hidefilename:] [:hidelink:] [:hideall:] [title] %}\n\n`path/to/code.py` is path to file with source code, relative to `CODE_DIR` subdirectory\nin your content folder. `CODE_DIR` is `code` by default and can be changed in\nyour settings file:\n\n    CODE_DIR = \'code\'\n\nAdditionally, in order for the resulting hyperlink to work, this directory must\nbe listed in the `STATIC_PATHS` setting. For example:\n\n    STATIC_PATHS = [\'images\', \'code\']\n\nAll other arguments are optional but must be specified in the order shown above.\nFollowing example will show the first ten lines of the file.\n\n    {% include_code path/to/code.py lines:1-10 Test Example %}\n\nTo hide the filename, use `:hidefilename:`. When that flag is specified, a title\nmust be provided.\n\nYou can hide download links only, while leaving the filename, by adding\n`:hidelink:`.\n\nIf you would like to hide all three (title, filename, and download link),\nuse `:hideall:`.\n\nThe following example hides the filename:\n\n    {% include_code path/to/code.py lines:1-10 :hidefilename: Test Example %}\n\n### IPython notebooks\n\nTo insert an [IPython][] notebook into your post, enable the\n`notebook` plugin and add the following to your source document:\n\n    {% notebook filename.ipynb %}\n\nThe file should be specified relative to the `notebooks` subdirectory of the\ncontent directory. Optionally, this subdirectory can be specified in your\nsettings file:\n\n    NOTEBOOK_DIR = \'notebooks\'\n\nBecause the conversion and rendering of notebooks is rather involved, there\nare a few extra steps required for this plugin. First, you must install IPython:\n\n      pip install ipython==2.4.1\n\nAfter running Pelican on content containing an IPython notebook tag, a file\ncalled `_nb_header.html` will be generated in the main directory. The content\nof this file should be included in the header of your theme. An easy way to\naccomplish this is to add the following to your theme’s header template…\n\n      {% if EXTRA_HEADER %}\n      {{ EXTRA_HEADER }}\n      {% endif %}\n\n… and in your settings file, include the line:\n\n      from io import open\n      EXTRA_HEADER = open(\'_nb_header.html\', encoding=\'utf-8\').read()\n\nThis will insert the proper CSS formatting into your generated document.\n\n#### Optional Arguments for Notebook Tags\n\nThe notebook tag also has two optional arguments: `cells` and `language`.\n\n- You can specify a slice of cells to include:\n\n  `{% notebook filename.ipynb cells[2:8] %}`\n\n- You can also specify the name of the language that Pygments should use for\n  highlighting code cells. For a list of the language short names that Pygments\n  can highlight, refer to the [Pygments lexer list](https://pygments.org/docs/lexers/).\n\n  `{% notebook filename.ipynb language[julia] %}`\n\n  This may be helpful for those using [IJulia](https://github.com/JuliaLang/IJulia.jl)\n  or notebooks in other languages, especially as the IPython project [broadens its\n  scope](https://github.com/ipython/ipython/wiki/Roadmap:-IPython) to [support\n  other languages](https://jupyter.org). The default language for highlighting\n  is `ipython`.\n\n- These options can be used separately, together, or not at all. However,\n  if both tags are used then `cells` must come before `language`:\n\n  `{% notebook filename.ipynb cells[2:8] language[julia] %}`\n\n#### Collapsible Code in IPython Notebooks\n\nThe IPython plugin also enables collapsible code input boxes. For this to work\nyou must first copy the file `pelicanhtml_3.tpl` (for IPython 3.x) or\n`pelicanhtml_2.tpl` (for IPython 2.x) to the top level of your content\ndirectory. Notebook input cells containing the comment line `#\n<!-- collapse=True -->` will be collapsed when the HTML page is\nloaded and can be expanded by tapping on them. Cells containing the\ncomment line `# <!-- collapse=False -->` will be expanded on load but\ncan be collapsed by tapping on their header. Cells without collapsed\ncomments are rendered as standard code input cells.\n\n## Testing\n\nTo run the plugin test suite, [set up your development environment][] and run:\n\n    cd path/to/liquid_tags\n    invoke tests\n\nTo test the plugin in multiple environments, install and use [Tox](https://tox.readthedocs.io/en/latest/):\n\n    tox\n\n## Contributing\n\nContributions are welcome and much appreciated. Every little bit helps. You can contribute by improving the documentation, adding missing features, and fixing bugs. You can also help out by reviewing and commenting on [existing issues][].\n\nTo start contributing to this plugin, review the [Contributing to Pelican][] documentation, beginning with the **Contributing Code** section.\n\n## Gratitude\n\nThanks to [Jake Vanderplas](https://github.com/jakevdp) for creating this plugin, which has subsequently been enhanced by [dozens of contributors](https://github.com/pelican-plugins/liquid-tags/graphs/contributors).\n\n\n[IPython]: http://ipython.org/\n[set up your development environment]: https://docs.getpelican.com/en/latest/contribute.html#setting-up-the-development-environment\n[existing issues]: https://github.com/pelican-plugins/liquid-tags/issues\n[Contributing to Pelican]: https://docs.getpelican.com/en/latest/contribute.html\n',
    'author': 'Pelican Dev Team',
    'author_email': 'authors@getpelican.com',
    'maintainer': None,
    'maintainer_email': None,
    'url': 'https://github.com/pelican-plugins/liquid-tags',
    'packages': packages,
    'package_data': package_data,
    'install_requires': install_requires,
    'extras_require': extras_require,
    'python_requires': '>=3.6.2,<4.0',
}


setup(**setup_kwargs)
