Remove NodeJS support

This commit is contained in:
Jesús
2019-11-11 19:20:50 -05:00
parent dfad552ee0
commit cb496623a4
4 changed files with 22 additions and 31 deletions

View File

@@ -1,16 +1,16 @@
## Descripción
Es un complemento para Pelican que minifica los archivos CSS y
JavaScript usando uglifycss y uglifyjs. Preserva los archivos JavaScript
JavaScript usando css-html-js-minify. Preserva los archivos JavaScript
originales y añade a los archivos JavaScript minificados la cadena
`.min` antes de la extensión `.js`.
## Instalación
Para que funcione es necesario instalar nodejs y npm. Después instala
uglifycss y uglifyjs con la siguiente instrucción:
Para que funcione es necesario instalar python y pip. Después instala
css-html-js-minify con la siguiente instrucción:
```
npm install uglifycss uglify-js -g
pip install css-html-js-minify
```
Finalmente, añade `compressor` a `pelicanconf.py`: `PLUGINS =

View File

@@ -9,31 +9,36 @@ 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 uglifycss and uglifyjs.
with css-html-js-minify.
"""
def minify(pelican):
"""
Minify CSS and JavaScript
:param pelican: The Pelican instance
"""
for dirpath, _, filenames in os.walk(pelican.settings['OUTPUT_PATH']):
for dirpathcss, _, filenames in os.walk(PATH_CSS):
for name in filenames:
if os.path.splitext(name)[1] in ('.css'):
filepath = os.path.join(dirpath, name)
logger.info('minifiy %s with uglifycss', filepath)
debug = '--debug' if SHOW_OUTPUT else ''
call('uglifycss {} --output {} {}'.format(debug, filepath, filepath),
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)
elif os.path.splitext(name)[1] in ('.js'):
filepath = os.path.join(dirpath, name)
logger.info('minifiy %s with uglifyjs', filepath)
verbose = '-v' if SHOW_OUTPUT else ''
min_filepath = filepath[:-3] + '.min' + filepath[-3:]
call("uglifyjs {} {} -o {} --mangle".format(filepath, verbose, min_filepath),
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)