aboutsummaryrefslogtreecommitdiffstats
path: root/nikola/plugins/task_render_listings.py
diff options
context:
space:
mode:
authorLibravatarAgustin Henze <tin@sluc.org.ar>2013-11-20 16:58:50 -0300
committerLibravatarAgustin Henze <tin@sluc.org.ar>2013-11-20 16:58:50 -0300
commitca94afc07df55cb7fc6fe3b4f3011877b7881195 (patch)
treed81e1f275aa77545f33740723f307a83dde2e0b4 /nikola/plugins/task_render_listings.py
parentf794eee787e9cde54e6b8f53e45d69c9ddc9936a (diff)
Imported Upstream version 6.2.1upstream/6.2.1
Diffstat (limited to 'nikola/plugins/task_render_listings.py')
-rw-r--r--nikola/plugins/task_render_listings.py129
1 files changed, 0 insertions, 129 deletions
diff --git a/nikola/plugins/task_render_listings.py b/nikola/plugins/task_render_listings.py
deleted file mode 100644
index 0cadfd3..0000000
--- a/nikola/plugins/task_render_listings.py
+++ /dev/null
@@ -1,129 +0,0 @@
-# Copyright (c) 2012 Roberto Alsina y otros.
-
-# Permission is hereby granted, free of charge, to any
-# person obtaining a copy of this software and associated
-# documentation files (the "Software"), to deal in the
-# Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish,
-# distribute, sublicense, and/or sell copies of the
-# Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice
-# shall be included in all copies or substantial portions of
-# the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
-# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
-# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
-# PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
-# OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-# OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
-# OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
-# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-from __future__ import unicode_literals, print_function
-
-import os
-
-from pygments import highlight
-from pygments.lexers import get_lexer_for_filename, TextLexer
-from pygments.formatters import HtmlFormatter
-
-from nikola.plugin_categories import Task
-from nikola import utils
-
-
-class Listings(Task):
- """Render pretty listings."""
-
- name = "render_listings"
-
- def gen_tasks(self):
- """Render pretty code listings."""
- kw = {
- "default_lang": self.site.config["DEFAULT_LANG"],
- "listings_folder": self.site.config["LISTINGS_FOLDER"],
- "output_folder": self.site.config["OUTPUT_FOLDER"],
- }
-
- # Things to ignore in listings
- ignored_extensions = (".pyc",)
-
- def render_listing(in_name, out_name, folders=[], files=[]):
- if in_name:
- with open(in_name, 'r') as fd:
- try:
- lexer = get_lexer_for_filename(in_name)
- except:
- lexer = TextLexer()
- code = highlight(fd.read(), lexer,
- HtmlFormatter(cssclass='code',
- linenos="table", nowrap=False,
- lineanchors=utils.slugify(f),
- anchorlinenos=True))
- title = os.path.basename(in_name)
- else:
- code = ''
- title = ''
- crumbs = utils.get_crumbs(os.path.relpath(out_name,
- kw['output_folder']),
- is_file=True)
- context = {
- 'code': code,
- 'title': title,
- 'crumbs': crumbs,
- 'lang': kw['default_lang'],
- 'folders': folders,
- 'files': files,
- 'description': title,
- }
- self.site.render_template('listing.tmpl', out_name,
- context)
- flag = True
- template_deps = self.site.template_system.template_deps('listing.tmpl')
- for root, dirs, files in os.walk(kw['listings_folder']):
- flag = False
- # Render all files
- out_name = os.path.join(
- kw['output_folder'],
- root, 'index.html'
- )
- yield {
- 'basename': self.name,
- 'name': out_name,
- 'file_dep': template_deps,
- 'targets': [out_name],
- 'actions': [(render_listing, [None, out_name, dirs, files])],
- # This is necessary to reflect changes in blog title,
- # sidebar links, etc.
- 'uptodate': [utils.config_changed(
- self.site.config['GLOBAL_CONTEXT'])],
- 'clean': True,
- }
- for f in files:
- ext = os.path.splitext(f)[-1]
- if ext in ignored_extensions:
- continue
- in_name = os.path.join(root, f)
- out_name = os.path.join(
- kw['output_folder'],
- root,
- f) + '.html'
- yield {
- 'basename': self.name,
- 'name': out_name,
- 'file_dep': template_deps + [in_name],
- 'targets': [out_name],
- 'actions': [(render_listing, [in_name, out_name])],
- # This is necessary to reflect changes in blog title,
- # sidebar links, etc.
- 'uptodate': [utils.config_changed(
- self.site.config['GLOBAL_CONTEXT'])],
- 'clean': True,
- }
- if flag:
- yield {
- 'basename': self.name,
- 'actions': [],
- }