diff options
author | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2021-12-28 23:13:42 +0700 |
---|---|---|
committer | Nguyễn Gia Phong <mcsinyx@disroot.org> | 2021-12-28 23:18:06 +0700 |
commit | 89bb239365bdfdef8827251748e6a36d741fdf63 (patch) | |
tree | 713c95eaa3beccd0616a1f25753e7dd6b022bf42 /_libs | |
parent | c111dacfdef7624bef023341b6f3a0b88b830ab3 (diff) | |
download | site-89bb239365bdfdef8827251748e6a36d741fdf63.tar.gz |
Fix all HTML and RSS compliance issues (hopefully!)
Diffstat (limited to '_libs')
-rwxr-xr-x | _libs/minify | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/_libs/minify b/_libs/minify new file mode 100755 index 0000000..67634a3 --- /dev/null +++ b/_libs/minify @@ -0,0 +1,39 @@ +#!/usr/bin/env python +# Minify HTML and CSS, patch HTML and remove JS +# Copyright (C) 2021 Nguyễn Gia Phong +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published +# by the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <https://www.gnu.org/licenses/>. + +import re +from contextlib import suppress +from pathlib import Path +from shutil import rmtree + +from css_html_js_minify import html_minify, process_single_css_file + +FOOTNOTES_START = re.compile('(<p>)?\s*<table') +FOOTNOTES_END = re.compile('</table>\s*(</p>)?') + + +def fix_footnotes(html): + """Work around https://github.com/tlienart/Franklin.jl/issues/936""" + return FOOTNOTES_START.sub('<table', FOOTNOTES_END.sub('</table>', html)) + + +site = Path(__file__).parent.parent / '__site' +process_single_css_file(site/'css'/'style.css', overwrite=True) +for html in site.rglob('*.html'): + print('Minifying and fixing up', html) + html.write_text(fix_footnotes(html_minify(html.read_text()))) +with suppress(FileNotFoundError): rmtree(site/'libs') |