Parent Directory
|
Revision Log
++ ChangeLog 11 Dec 2008 03:20:10 -0000 2008-12-11 Wakaba <wakaba@suika.fam.cx> * error-description-source.en.xml: Added descriptions for errors from Regexp::Parser and Regexp::Parser::JavaScript modules. * cc.cgi: Added support for JavaScript regular expressions. ++ html/WebHACC/Language/ChangeLog 11 Dec 2008 03:18:54 -0000 2008-12-11 Wakaba <wakaba@suika.fam.cx> * RegExpJS.pm: New module. ++ html/WebHACC/ChangeLog 11 Dec 2008 03:22:42 -0000 2008-12-11 Wakaba <wakaba@suika.fam.cx> * Output.pm (generate_input_section): Added support for JavaScript regular expressions. 2008-12-10 Wakaba <wakaba@suika.fam.cx> * Result.pm: Added support for |valueref| parameter of an error. |pos_end| should point the (intercharacter) position where the highlighted substring ends, not the character before the position, otherwise empty substring cannot be represented well.
| 1 | <!DOCTYPE html> |
| 2 | <html lang="en"> |
| 3 | <head> |
| 4 | <title>HTML5 Parser Web Interface</title> |
| 5 | <style type="text/css"> |
| 6 | form { |
| 7 | display: block; |
| 8 | position: relative; |
| 9 | height: 30em; |
| 10 | margin-left: 1em; |
| 11 | margin-right: 1em; |
| 12 | } |
| 13 | form > fieldset { |
| 14 | display: block; |
| 15 | position: absolute; |
| 16 | top: 0; left: 0; |
| 17 | width: 40%; bottom: 0; |
| 18 | margin: 0; |
| 19 | border-style: none; |
| 20 | padding: 0; |
| 21 | } |
| 22 | #result-para { |
| 23 | display: block; |
| 24 | position: absolute; |
| 25 | top: 0; right: 0; |
| 26 | width: 40%; bottom: 0; |
| 27 | margin: 0; |
| 28 | } |
| 29 | iframe { |
| 30 | display: block; |
| 31 | width: 100%; |
| 32 | height: 100%; |
| 33 | } |
| 34 | textarea { |
| 35 | width: 100%; |
| 36 | height: 19em; |
| 37 | } |
| 38 | button { |
| 39 | display: block; |
| 40 | position: absolute; |
| 41 | top: 9em; |
| 42 | left: 110%; |
| 43 | } |
| 44 | button:after { |
| 45 | content: " ->"; |
| 46 | } |
| 47 | form > fieldset > fieldset { |
| 48 | display: block; |
| 49 | position: absolute; |
| 50 | top: 11em; |
| 51 | left: 103%; |
| 52 | border-style: none; |
| 53 | padding: 0; |
| 54 | min-width: 7em; |
| 55 | } |
| 56 | form > fieldset > fieldset fieldset { |
| 57 | font-size: 60%; |
| 58 | } |
| 59 | fieldset p { |
| 60 | margin-top: 0; |
| 61 | margin-bottom: 0; |
| 62 | } |
| 63 | #element { |
| 64 | width: 5em; |
| 65 | } |
| 66 | </style> |
| 67 | </head> |
| 68 | <body onload="document.getElementById('element').disabled=!document.getElementById('html5').checked"> |
| 69 | <h1>HTML5 Parser (<em>beta</em>) Web Interface |
| 70 | (manakai Version)</h1> |
| 71 | |
| 72 | <form action="parser-manakai/html" |
| 73 | method="post" accept-charset="utf-8" target="result" |
| 74 | onsubmit=" |
| 75 | var uri = 'parser-manakai/'; |
| 76 | if (document.getElementById ('html5').checked) { |
| 77 | uri += 'html/'; |
| 78 | uri += document.getElementById ('element').value + '/'; |
| 79 | } else if (document.getElementById ('xml1').checked) { |
| 80 | uri += 'xml1/'; |
| 81 | uri += document.getElementById ('element').value + '/'; |
| 82 | } else if (document.getElementById ('swml').checked) { |
| 83 | uri += 'swml/'; |
| 84 | uri += document.getElementById ('element').value + '/'; |
| 85 | } else if (document.getElementById ('h2h').checked) { |
| 86 | uri += 'h2h/'; |
| 87 | uri += document.getElementById ('element').value + '/'; |
| 88 | } else { |
| 89 | uri += 'xhtml/'; |
| 90 | uri += '/'; |
| 91 | } |
| 92 | if (document.getElementById ('format-test').checked) { |
| 93 | this.action = uri + 'test'; |
| 94 | } else if (document.getElementById ('format-xml').checked) { |
| 95 | this.action = uri + 'xml'; |
| 96 | } else { |
| 97 | this.action = uri + 'html'; |
| 98 | } |
| 99 | "> |
| 100 | <fieldset> |
| 101 | <p><textarea name="s"><!DOCTYPE html> |
| 102 | <html> |
| 103 | <head> |
| 104 | <title></title> |
| 105 | </head> |
| 106 | <body></body> |
| 107 | </html> |
| 108 | </textarea></p> |
| 109 | <p><button type="submit">Parse</button></p> |
| 110 | <fieldset> |
| 111 | <fieldset> |
| 112 | <p><label title="Show any HTML5 parse errors if checked"><input type="radio" name="input-format" id="html5" onchange="element.disabled = false" checked> HTML5</label></p> |
| 113 | <p><label title="Show any XML 1.0/1.1 parse errors if checked (using a non-validating parser)"><input type="radio" name="input-format" onchange="element.disabled = true" id="xhtml5"> XHTML5</label></p> |
| 114 | <p><label title="Show any XML 1.0/1.1 parse errors if checked (using a non-validating parser)"><input type="radio" name="input-format" onchange="element.disabled = true" id="xml1"> XML1 (work in progress)</label></p> |
| 115 | |
| 116 | <p><label title="Parse as SWML text serialization document if checked"><input |
| 117 | type="radio" name="input-format" id="swml" |
| 118 | onchange="element.disabled = true"> SWML</label></p> |
| 119 | |
| 120 | <p><label title="Parse as H2H document if checked"><input type="radio" name="input-format" id="h2h" onchange="element.disabled = true"> H2H</label></p> |
| 121 | |
| 122 | <p><input type="text" name="element" id="element" value="" title="If specified, the input is parsed by the fragment parsing (innerHTML) algorithm."></p> |
| 123 | <p><label title="Show any conformance error of the parsed DOM tree if checked"><input type="checkbox" name="dom5"> DOM5 HTML</label></p> |
| 124 | </fieldset> |
| 125 | <fieldset> |
| 126 | <legend>Output format</legend> |
| 127 | <p><label title="Show the value of |document.innerHTML| (in HTML) if checked"><input type="radio" name="format" value="html" checked id="format-html"> |
| 128 | <code>innerHTML</code> (HTML)</label></p> |
| 129 | <p><label title="Show the value of |document.innerHTML| (in XML) |