compress.html (5321B)
1 --- 2 # Jekyll layout that compresses HTML 3 # v2.1.0 4 # http://jch.penibelst.de/ 5 # © 2014–2015 Anatol Broder 6 # MIT License 7 --- 8 9 {% if site.compress_html.ignore.envs contains jekyll.environment %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd p rt rp optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}</{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.ignore.whitespaces %}{% assign _random = site.time | date: "%s%N" %}{% if site.compress_html.ignore.whitespaces contains "SPACE" %}{% capture _ignore_space %} {% endcapture %}{% capture _freeze_space %}space{{ _random }}{% endcapture %}{% capture _join %} 10 {% endcapture %}{% else %}{% capture _ignore_space %}{% endcapture %}{% capture _freeze_space %}{% endcapture %}{% capture _join %} {% endcapture %}{% endif %}{% if site.compress_html.ignore.whitespaces contains "LINE FEED" %}{% capture _ignore_line_feed %} 11 {% endcapture %}{% capture _freeze_line_feed %}line_feed{{ _random }}{% endcapture %}{% else %}{% capture _ignore_line_feed %}{% endcapture %}{% capture _freeze_line_feed %}{% endcapture %}{% endif %}{% if site.compress_html.ignore.whitespaces contains "CHARACTER TABULATION" %}{% capture _ignore_character_tabulation %} {% endcapture %}{% capture _freeze_character_tabulation %}character_tabulation{{ _random }}{% endcapture %}{% else %}{% capture _ignore_character_tabulation %}{% endcapture %}{% capture _freeze_character_tabulation %}{% endcapture %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "<pre" %}{% assign _content = "" %}{% for _pre_before in _pre_befores %}{% assign _pres = _pre_before | split: "</pre>" %}{% if _pres.size != 0 %}{% if site.compress_html.ignore.whitespaces %}{% assign _pres_after = _pres.last | replace: _ignore_space, _freeze_space | replace: _ignore_line_feed, _freeze_line_feed | replace: _ignore_character_tabulation, _freeze_character_tabulation | split: " " | join: _join | replace: _freeze_character_tabulation, _ignore_character_tabulation | replace: _freeze_line_feed, _ignore_line_feed | replace: _freeze_space, _ignore_space %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% case _pres.size %}{% when 2 %}{% capture _content %}{{ _content }}<pre{{ _pres.first }}</pre>{{ _pres_after }}{% endcapture %}{% when 1 %}{% capture _content %}{{ _content }}{{ _pres_after }}{% endcapture %}{% endcase %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "<!-- -->" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% assign _comment_befores = _content | split: _comments.first %}{% for _comment_before in _comment_befores %}{% assign _comment_content = _comment_before | split: _comments.last | first %}{% if _comment_content %}{% capture _comment %}{{ _comments.first }}{{ _comment_content }}{{ _comments.last }}{% endcapture %}{% assign _content = _content | remove: _comment %}{% endif %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " <e;<e; </e>;</e>;</e> ;</e>" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %} <table id="compress_html_profile_{{ site.time | date: "%Y%m%d" }}" class="compress_html_profile"> <thead> <tr> <td>Step <td>Bytes <tbody> <tr> <td>raw <td>{{ content | size }}{% if _profile_endings %} <tr> <td>endings <td>{{ _profile_endings }}{% endif %}{% if _profile_startings %} <tr> <td>startings <td>{{ _profile_startings }}{% endif %}{% if _profile_collapse %} <tr> <td>collapse <td>{{ _profile_collapse }}{% endif %}{% if _profile_comments %} <tr> <td>comments <td>{{ _profile_comments }}{% endif %}{% if _profile_clippings %} <tr> <td>clippings <td>{{ _profile_clippings }}{% endif %} </table>{% endif %}{% endif %}