diff options
| author | 2013-05-30 17:41:06 -0300 | |
|---|---|---|
| committer | 2013-05-30 17:41:06 -0300 | |
| commit | 0c4dfdec5b55b6064dccc38bbfb0a7c0699c895a (patch) | |
| tree | a6707225ccc559f7edf50ddd3fdc7fc85145c921 /nikola/plugins/task_copy_assets.py | |
| parent | 8b14a1e5b2ca574fdd4fd2377567ec98a110d4b6 (diff) | |
Imported Upstream version 5.4.4
Diffstat (limited to 'nikola/plugins/task_copy_assets.py')
| -rw-r--r-- | nikola/plugins/task_copy_assets.py | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/nikola/plugins/task_copy_assets.py b/nikola/plugins/task_copy_assets.py index 39fef5a..06d17e7 100644 --- a/nikola/plugins/task_copy_assets.py +++ b/nikola/plugins/task_copy_assets.py @@ -22,6 +22,7 @@ # OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE # SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +import codecs import os from nikola.plugin_categories import Task @@ -44,15 +45,20 @@ class CopyAssets(Task): "themes": self.site.THEMES, "output_folder": self.site.config['OUTPUT_FOLDER'], "filters": self.site.config['FILTERS'], + "code_color_scheme": self.site.config['CODE_COLOR_SCHEME'], } flag = True + has_code_css = False tasks = {} + code_css_path = os.path.join(kw['output_folder'], 'assets', 'css', 'code.css') for theme_name in kw['themes']: src = os.path.join(utils.get_theme_path(theme_name), 'assets') dst = os.path.join(kw['output_folder'], 'assets') for task in utils.copy_tree(src, dst): if task['name'] in tasks: continue + if task['targets'][0] == code_css_path: + has_code_css = True tasks[task['name']] = task task['uptodate'] = [utils.config_changed(kw)] task['basename'] = self.name @@ -66,3 +72,22 @@ class CopyAssets(Task): 'uptodate': [True], 'actions': [], } + + if not has_code_css: # Generate it + + def create_code_css(): + from pygments.formatters import get_formatter_by_name + formatter = get_formatter_by_name('html', style=kw["code_color_scheme"]) + with codecs.open(code_css_path, 'wb+', 'utf8') as outf: + outf.write(formatter.get_style_defs('.code')) + outf.write("table.codetable { width: 100%;} td.linenos {text-align: right; width: 4em;}") + + task = { + 'basename': self.name, + 'name': code_css_path, + 'targets': [code_css_path], + 'uptodate': [utils.config_changed(kw)], + 'actions': [(create_code_css, [])], + 'clean': True, + } + yield utils.apply_filters(task, kw['filters']) |
