diff options
Diffstat (limited to 'plugins/compressor/compressor.py')
-rw-r--r-- | plugins/compressor/compressor.py | 65 |
1 files changed, 30 insertions, 35 deletions
diff --git a/plugins/compressor/compressor.py b/plugins/compressor/compressor.py index 9d84dfe..7dd4406 100644 --- a/plugins/compressor/compressor.py +++ b/plugins/compressor/compressor.py @@ -1,44 +1,39 @@ # -*- coding: utf-8 -*- - -from pelican import signals -from subprocess import call -import logging -import os - -logger = logging.getLogger(__name__) - -# Display command output on DEBUG and TRACE -SHOW_OUTPUT = logger.getEffectiveLevel() <= logging.DEBUG -PATH_CSS = 'output/theme/css/' -PATH_JS = 'output/theme/js/' - """ -Minify CSS and JS files in output path -with css-html-js-minify. +css-js-minify wrapper for Pelican """ +import glob +import os +import sys -def minify(pelican): - """ - Minify CSS and JavaScript - :param pelican: The Pelican instance - """ - for dirpathcss, _, filenames in os.walk(PATH_CSS): - for name in filenames: - if os.path.splitext(name)[1] in '.css': - filepath = os.path.join(dirpathcss, name) - logger.info('minifiy %s with css-html-js-minify', filepath) - call('css-html-js-minify {}'.format(filepath), - shell=True) +from .minify import ( + process_single_css_file, + process_single_js_file, +) - for dirpathjs, _, filenames in os.walk(PATH_JS): - for name in filenames: - if os.path.splitext(name)[1] in '.js': - filepath = os.path.join(dirpathjs, name) - logger.info('minifiy %s with css-html-js-minify', filepath) - call("css-html-js-minify {}".format(filepath), - shell=True) +from pelican import signals +CSS_DIR = '/theme/css' +JS_DIR = '/theme/js' + +def main(pelican): + """ Compiler """ + for file in glob.iglob(pelican.output_path + CSS_DIR + '/**/*.css', recursive=True): + process_single_css_file(file, overwrite=True) + for file in glob.iglob(pelican.output_path + JS_DIR + '/**/*.js', recursive=True): + process_single_js_file(file, overwrite=True) def register(): - signals.finalized.connect(minify) + """ Register """ + signals.finalized.connect(main) + +SUPPORT_JS = """ +----------------------------------------------------------------- +COMPRESSOR: +----------------------------------------------------------------- +Future JavaScript support is orphan and not supported! +If you want to make ES6,ES7 work feel free to send pull requests. +----------------------------------------------------------------- +""" +print(SUPPORT_JS) |