aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/compressor/compressor.py
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/compressor/compressor.py')
-rw-r--r--plugins/compressor/compressor.py65
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)