45 lines
1.3 KiB
Python
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)
|