Update URLs in README

This commit is contained in:
Wilson Lin 2018-07-04 23:23:17 +12:00
parent 881578349b
commit 561dedd724
1 changed files with 91 additions and 17 deletions

View File

@ -35,13 +35,13 @@ Errors marked with a `⌫` can be suppressed using the [`--errorEx`](#--errorex)
It's an error if an invalid HTML entity is detected. It's an error if an invalid HTML entity is detected.
If suppressed, invalid entities are simply interpreted literally. If suppressed, invalid entities are simply interpreted literally.
See [entityrefs.c](src/main/c/rule/entityrefs.c) for the list of entity references considered valid by hyperbuild. See [entityrefs.c](src/main/c/rule/entity/entityrefs.c) for the list of entity references considered valid by hyperbuild.
Valid entities that reference a Unicode code point must be between 0x0 and 0x10FFFF (inclusive). Valid entities that reference a Unicode code point must be between 0x0 and 0x10FFFF (inclusive).
#### `EBADTAG` #### `EBADTAG`
It's an error if an unknown (non-standard) tag is reached. It's an error if an unknown (non-standard) tag is reached.
See [tags.c](src/main/c/rule/tags.c) for the list of tags considered valid by hyperbuild. See [tags.c](src/main/c/rule/tag/tags.c) for the list of tags considered valid by hyperbuild.
#### `EUCASETAG` #### `EUCASETAG`
@ -62,22 +62,22 @@ It's an error if a tag is declared where it can't be a child of.
This is a very simple check, and does not cover the comprehensive HTML rules, as they involve backtracking, tree traversal, and lots of conditionals. This is a very simple check, and does not cover the comprehensive HTML rules, as they involve backtracking, tree traversal, and lots of conditionals.
This rule is enforced in four parts: This rule is enforced in four parts:
[whitelistparents.c](src/main/c/rule/whitelistparents.c), [whitelistparents.c](src/main/c/rule/relation/whitelistparents.c),
[blacklistparents.c](src/main/c/rule/blacklistparents.c), [blacklistparents.c](src/main/c/rule/relation/blacklistparents.c),
[whitelistchildren.c](src/main/c/rule/whitelistchildren.c), and [whitelistchildren.c](src/main/c/rule/relation/whitelistchildren.c), and
[blacklistchildren.c](src/main/c/rule/blacklistchildren.c). [blacklistchildren.c](src/main/c/rule/relation/blacklistchildren.c).
#### `EUNCTAG` #### `EUNCTAG`
It's an error if a non-void tag is not closed. It's an error if a non-void tag is not closed.
See [voidtags.c](src/main/c/rule/voidtags.c) for the list of tags considered void by hyperbuild. See [voidtags.c](src/main/c/rule/tag/voidtags.c) for the list of tags considered void by hyperbuild.
This includes tags that close automatically because of siblings (e.g. `<li><li>`), as it greatly simplifies the complexity of the minifier due to guarantees about the structure. This includes tags that close automatically because of siblings (e.g. `<li><li>`), as it greatly simplifies the complexity of the minifier due to guarantees about the structure.
#### `ECLOSVOID` #### `ECLOSVOID`
It's an error if a void tag is closed. It's an error if a void tag is closed.
See [voidtags.c](src/main/c/rule/voidtags.c) for the list of tags considered void by hyperbuild. See [voidtags.c](src/main/c/rule/tag/voidtags.c) for the list of tags considered void by hyperbuild.
#### `ESELFCLOS` #### `ESELFCLOS`
@ -157,6 +157,78 @@ Read, parse, process, and minify another file, and stream the result.
## Minification ## Minification
### Theory
#### Whitespace
##### Beginning and end
##### Between text and tags
##### Contiguous
##### Whole text
#### Content
##### Specific tags
```html
<title></title>
<meta>
<link>
<table></table>
<ul></ul>
<ol></ol>
<dl></dl>
<hr>
<br>
```
##### Formatting tags
```html
<strong> moat </strong>
```
##### Content tags
```html
<p>Some <strong>content</strong></p>
```
##### Content-first tags
```html
<li>Anthony</li>
```
```html
<li>
<div>
</div>
</li>
```
##### Sectioning tags
```html
<p>Some <strong>content</strong></p>
```
##### Overview
|Type|Content|
|---|---|
|Formatting tags|Text nodes|
|Content tags|Formatting tags, text nodes|
|Sectioning tags|Sectioning tags, formatting tags|
|Tag|Formatting|Content|Sectioning|
|---|---|---|---|
|`li`, `dd`|-|1|2|
|`p`, `h1-6`|-|Y|-|
### Options ### Options
For options that have a list of tags as their values, the tags should be separated by a comma. For options that have a list of tags as their values, the tags should be separated by a comma.
@ -164,9 +236,11 @@ For brevity, hyperbuild has built-in sets of tags that can be used in place of d
|Name|Tags|Description| |Name|Tags|Description|
|---|---|---| |---|---|---|
|`$inline`|`a`, `abbr`, `b`, `bdi`, `bdo`, `cite`, `code`, `data`, `dfn`, `em`, `i`, `kbd`, `mark`, `q`, `rt`, `rtc`, `ruby`, `s`, `samp`, `small`, `span`, `strong`, `sub`, `sup`, `time`, `u`, `var`, `wbr`|Inline text semantics (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element#Inline_text_semantics). |`$wss`|`pre`, `code`|Whitespace sensitive.|
|`$content`|`p`, `h1`, `h2`, `h3`, `h4`, `h5`, `h6`|Content tags.|
|`$formatting`|`a`, `abbr`, `b`, `bdi`, `bdo`, `cite`, `code`, `data`, `dfn`, `em`, `i`, `kbd`, `mark`, `q`, `rt`, `rtc`, `ruby`, `s`, `samp`, `small`, `span`, `strong`, `sub`, `sup`, `time`, `u`, `var`, `wbr`|Inline text semantics (see https://developer.mozilla.org/en-US/docs/Web/HTML/Element#Inline_text_semantics).|
#### `--collapseWhitespaceEx pre,code` #### `--collapseWhitespaceEx $wss`
Reduce a sequence of whitespace characters in text nodes to a single space (U+0020), unless they are a child of the tags specified by this option. Reduce a sequence of whitespace characters in text nodes to a single space (U+0020), unless they are a child of the tags specified by this option.
@ -188,7 +262,7 @@ Reduce a sequence of whitespace characters in text nodes to a single space (U+00
</table> </table>
#### `--destroyWholeWhitespaceEx pre,code,p,$inline` #### `--destroyWholeWhitespaceEx $wss,$content,$formatting`
Remove any text nodes that only consist of whitespace characters, unless they are a child of the tags specified by this option. Remove any text nodes that only consist of whitespace characters, unless they are a child of the tags specified by this option.
@ -214,7 +288,7 @@ Especially useful when using `display: inline-block` so that whitespace between
</table> </table>
#### `--trimWhitespaceEx pre,code` #### `--trimWhitespaceEx $wss,$formatting`
Remove any whitespace from the start and end of a tag, if the first and/or last node is a text node, unless the tag is one of the tags specified by this option. Remove any whitespace from the start and end of a tag, if the first and/or last node is a text node, unless the tag is one of the tags specified by this option.