diff options
-rw-r--r-- | pelican-htmlmin/__init__.py | 1 | ||||
-rw-r--r-- | pelican-htmlmin/minify.py (renamed from __init__.py) | 22 | ||||
-rw-r--r-- | readme.md | 5 |
3 files changed, 14 insertions, 14 deletions
diff --git a/pelican-htmlmin/__init__.py b/pelican-htmlmin/__init__.py new file mode 100644 index 0000000..73ff73b --- /dev/null +++ b/pelican-htmlmin/__init__.py @@ -0,0 +1 @@ +from .minify import register diff --git a/__init__.py b/pelican-htmlmin/minify.py index 906b5a3..d403574 100644 --- a/__init__.py +++ b/pelican-htmlmin/minify.py @@ -12,34 +12,38 @@ logger = logging.getLogger(__name__) def run(pelican): - if logging.getLevelName(logger.getEffectiveLevel()) == "DEBUG": - return # don't minify content if pelican is in debug mode - - options = pelican.settings.get('MINIFY', {}) - htmlfile = re.compile(r'.html?$') + if pelican.setings.get('MINIFY_DEBUG', False): + return # specifically told to minify content or not + if logging.getLevelName(logger.getEffectiveLevel()) == 'DEBUG': + return # pelican is in debug mode, skip minification + + options = pelican.settings.get('MINIFY_OPTIONS', {}) + htmlfile = re.compile( + pelican.settings.get('MINIFY_MATCH', r'.html?$') + ) pool = multiprocessing.Pool() - # find all html & htm files and give them to the workers to minify + # find all matching files and give to workers to minify for base, dirs, files in os.walk(pelican.settings['OUTPUT_PATH']): for f in filter(htmlfile.search, files): filepath = os.path.join(base, f) pool.apply_async(worker, (filepath, options)) + # wait for the workers to finish pool.close() pool.join() def worker(filepath, options): + """use htmlmin to minify the given file""" rawhtml = open(filepath, encoding='utf-8').read() with open(filepath, 'w', encoding='utf-8') as f: + logger.debug('Minifying: %s' % filepath) try: - logger.debug('Minifying: %s' % filepath) compressed = htmlmin.minify(rawhtml, **options) f.write(compressed) except Exception as e: logger.critical('Minification failed: {}'.format(e)) - finally: - f.close() def register(): diff --git a/readme.md b/readme.md deleted file mode 100644 index 898c80c..0000000 --- a/readme.md +++ /dev/null @@ -1,5 +0,0 @@ -# pelican-minify -An [Pelican] plugin to use htmlmin to remove extra whitespace from webpages. - -[Pelican]: "http://pelican.readthedocs.org/en/latest/" - |