From ab88edb5a12e7708f812bb0c2b7edf4b941d5653 Mon Sep 17 00:00:00 2001 From: Roberto Alsina Date: Sat, 12 Apr 2014 23:46:54 -0300 Subject: [PATCH] Moved less plugin into repo (#824) --- docs/manual.txt | 8 +- nikola/plugins/task/build_less.plugin | 10 --- nikola/plugins/task/build_less.py | 118 -------------------------- 3 files changed, 4 insertions(+), 132 deletions(-) delete mode 100644 nikola/plugins/task/build_less.plugin delete mode 100644 nikola/plugins/task/build_less.py diff --git a/docs/manual.txt b/docs/manual.txt index c0e8530252..4a3749f583 100644 --- a/docs/manual.txt +++ b/docs/manual.txt @@ -851,11 +851,11 @@ CSS tweaking with a `custom theme `__. If you want to use LESS_ or Sass_ for your custom CSS, or the theme you use - contains LESS or Sass code that you want to override, create a ``less`` or + contains LESS or Sass code that you want to override, you will need to install + the `LESS plugin `__ or + `SASS plugin `__ create a ``less`` or ``sass`` directory in your site root, put your ``.less`` or ``.scss`` files - there and a targets file containing the files you want compiled. Any - ``.less`` or ``.scss`` files from the theme chain that you want to use will - need to be included in your files. + there and a targets file containing the list of files you want compiled. .. _LESS: http://lesscss.org/ .. _Sass: http://sass-lang.com/ diff --git a/nikola/plugins/task/build_less.plugin b/nikola/plugins/task/build_less.plugin deleted file mode 100644 index 27ca8cd9b0..0000000000 --- a/nikola/plugins/task/build_less.plugin +++ /dev/null @@ -1,10 +0,0 @@ -[Core] -Name = build_less -Module = build_less - -[Documentation] -Author = Roberto Alsina -Version = 0.1 -Website = http://getnikola.com -Description = Build CSS out of LESS sources - diff --git a/nikola/plugins/task/build_less.py b/nikola/plugins/task/build_less.py deleted file mode 100644 index a6722826f7..0000000000 --- a/nikola/plugins/task/build_less.py +++ /dev/null @@ -1,118 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright © 2012-2014 Roberto Alsina and others. - -# 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 - -import codecs -import glob -import os -import sys -import subprocess - -from nikola.plugin_categories import Task -from nikola import utils - - -class BuildLess(Task): - """Generate CSS out of LESS sources.""" - - name = "build_less" - sources_folder = "less" - sources_ext = ".less" - - def gen_tasks(self): - """Generate CSS out of LESS sources.""" - self.compiler_name = self.site.config['LESS_COMPILER'] - self.compiler_options = self.site.config['LESS_OPTIONS'] - - kw = { - 'cache_folder': self.site.config['CACHE_FOLDER'], - 'themes': self.site.THEMES, - } - tasks = {} - - # Find where in the theme chain we define the LESS targets - # There can be many *.less in the folder, but we only will build - # the ones listed in less/targets - if os.path.isfile(os.path.join(self.sources_folder, "targets")): - targets_path = os.path.join(self.sources_folder, "targets") - else: - targets_path = utils.get_asset_path(os.path.join(self.sources_folder, "targets"), self.site.THEMES) - try: - with codecs.open(targets_path, "rb", "utf-8") as inf: - targets = [x.strip() for x in inf.readlines()] - except Exception: - targets = [] - - for task in utils.copy_tree(self.sources_folder, os.path.join(kw['cache_folder'], self.sources_folder)): - if task['name'] in tasks: - continue - task['basename'] = 'prepare_less_sources' - tasks[task['name']] = task - yield task - - for theme_name in kw['themes']: - src = os.path.join(utils.get_theme_path(theme_name), self.sources_folder) - for task in utils.copy_tree(src, os.path.join(kw['cache_folder'], self.sources_folder)): - task['basename'] = 'prepare_less_sources' - yield task - - # Build targets and write CSS files - base_path = utils.get_theme_path(self.site.THEMES[0]) - dst_dir = os.path.join(self.site.config['OUTPUT_FOLDER'], 'assets', 'css') - # Make everything depend on all sources, rough but enough - deps = glob.glob(os.path.join( - base_path, - self.sources_folder, - "*{0}".format(self.sources_ext))) - - def compile_target(target, dst): - utils.makedirs(dst_dir) - src = os.path.join(kw['cache_folder'], self.sources_folder, target) - run_in_shell = sys.platform == 'win32' - try: - compiled = subprocess.check_output([self.compiler_name] + self.compiler_options + [src], shell=run_in_shell) - except OSError: - utils.req_missing([self.compiler_name], - 'build LESS files (and use this theme)', - False, False) - with open(dst, "wb+") as outf: - outf.write(compiled) - - yield self.group_task() - - for target in targets: - dst = os.path.join(dst_dir, target.replace(self.sources_ext, ".css")) - yield { - 'basename': self.name, - 'name': dst, - 'targets': [dst], - 'file_dep': deps, - 'task_dep': ['prepare_less_sources'], - 'actions': ((compile_target, [target, dst]), ), - 'uptodate': [utils.config_changed(kw)], - 'clean': True - }