libretube/plugins/compressor/compressor.py

45 lines
1.3 KiB
Python

# -*- 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.
"""
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)
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)
def register():
signals.finalized.connect(minify)