28 lines
1.6 KiB
Python
28 lines
1.6 KiB
Python
from pelican import signals
|
|
import os
|
|
import sh
|
|
|
|
NODE_PRODUCTION = os.environ.get('NODE_ENV') == 'production'
|
|
|
|
def static_build(*args, **kwargs):
|
|
if NODE_PRODUCTION:
|
|
print('Building Production...')
|
|
|
|
sh.mkdir('-p', 'theme/static/build/js/lib')
|
|
os.system('uglifyjs node_modules/bootstrap-sass/assets/javascripts/bootstrap.js --compress --screw-ie8 --define --stats --keep-fnames -o theme/static/build/js/lib/bootstrap.js')
|
|
os.system('uglifyjs theme/static/build/js/lib/* --compress --screw-ie8 --define --stats --keep-fnames -o theme/static/build/js/libs.js')
|
|
sh.rm('-rf', 'theme/static/build/js/lib')
|
|
os.system('uglifyjs node_modules/jquery/dist/jquery.js --compress --screw-ie8 --define --stats --keep-fnames -o theme/static/build/js/jquery.js')
|
|
os.system('browserify -t [ babelify --presets [ es2015 react ] ] theme/static/src/js/app.js -o theme/static/build/js/app.js')
|
|
os.system('uglifyjs theme/static/build/js/app.js --compress --screw-ie8 --define --stats --keep-fnames -o theme/static/build/js/app.js')
|
|
print('JS built!')
|
|
|
|
os.system('pygmentize -S github -f html -a .highlight > theme/static/src/scss/pygment.css')
|
|
os.system('npm run build-scss')
|
|
os.system('node-sass theme/static/src/scss/index.scss theme/static/build/css/index.css --source-map-embed')
|
|
os.system('postcss -u autoprefixer -o theme/static/build/css/index.css theme/static/build/css/index.css')
|
|
os.system('cleancss -d --s0 -o theme/static/build/css/index.css theme/static/build/css/index.css')
|
|
print('SCSS Built!')
|
|
|
|
def register():
|
|
signals.static_generator_init.connect(static_build)
|