aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBryan Brattlof <bryanbrattlof@gmail.com>2019-09-08 12:35:38 -0500
committerBryan Brattlof <bryanbrattlof@gmail.com>2019-09-08 15:13:53 -0500
commit86f97bc655c2a5dc6b249986c4fe9d60cecb257d (patch)
treeaf2615d35da36051ff297566d60b8f54a11b4a82
parentb141915cb947d93003cbf32071938c556ff20781 (diff)
downloadpelican-htmlmin-86f97bc655c2a5dc6b249986c4fe9d60cecb257d.tar.gz
pelican-htmlmin-86f97bc655c2a5dc6b249986c4fe9d60cecb257d.tar.bz2
move minify scripts into package folder
-rw-r--r--pelican-htmlmin/__init__.py1
-rw-r--r--pelican-htmlmin/minify.py (renamed from __init__.py)22
-rw-r--r--readme.md5
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/"
-