Tapestry 5
  1. Tapestry 5
  2. TAP5-1720

HTML 5 doctype is not preserved, gets transformed into XHTML 1.0

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Minor Minor
    • Resolution: Fixed
    • Affects Version/s: 5.3, 5.4
    • Fix Version/s: 5.3
    • Component/s: tapestry-core
    • Labels:
      None

      Description

      Templates that use <!DOCTYPE html> still have
      the following (non-html5) output when viewed from the browser:

      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml"><head>
      ....

      I believe that the HTML 5 doctype should be preserved 'out of the box'
      Meanwhile, there is a workaround by adding a contribution to MarkupRenderer service.

      --------------- tml ----------------------------
      <!DOCTYPE html>
      <html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd"
      xmlns="tapestry:parameter" xmlns:f="tapestry-library:flowlogix">
      <head>
      <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
      <title>Erase Junk Mail</title>
      </head>
      <body>
      hello
      </body>
      </html>
      ---------- Java (blank)

        Activity

        Hide
        Lenny Primak added a comment -

        (from Howard Lewis Ship)

        <!doctype html> is expanded to the transitional DTD, to keep the XML
        parser happy (especially about HTML entities) ... but there's no good
        way to filter it out. Also, a missing <!doctype> is treated the same
        as <!doctype html>.

        There's a Doctype component that can be used to ensure that the output
        doctype is also <!DOCTYPE html>, which you shoudl probably add to your
        Layout component.

        Show
        Lenny Primak added a comment - (from Howard Lewis Ship) <!doctype html> is expanded to the transitional DTD, to keep the XML parser happy (especially about HTML entities) ... but there's no good way to filter it out. Also, a missing <!doctype> is treated the same as <!doctype html>. There's a Doctype component that can be used to ensure that the output doctype is also <!DOCTYPE html>, which you shoudl probably add to your Layout component.
        Hide
        Lenny Primak added a comment -

        Can't the 'original' doctype be saved in the request object and then restored
        default markup writer?

        Seems like that would be a good default behavior
        that preserves the original object's doctype.

        Show
        Lenny Primak added a comment - Can't the 'original' doctype be saved in the request object and then restored default markup writer? Seems like that would be a good default behavior that preserves the original object's doctype.
        Hide
        Hudson added a comment -

        Integrated in tapestry-trunk-freestyle #607 (See https://builds.apache.org/job/tapestry-trunk-freestyle/607/)
        TAP5-1720: Supply a "<!DOCTYPE html>" for any component template that doesn't have a specific <!DOCTYPE>
        TAP5-1720: HTML 5 doctype is not preserved, gets transformed into XHTML 1.0

        hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1188867
        Files :

        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/dynamic/DynamicTemplateParserImpl.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/dynamic/DynamicTemplateSaxParser.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DTDData.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/SaxTemplateParser.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/TemplateParser.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/TemplateParserImpl.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/html_entities.tml

        hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1188866
        Files :

        • /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java
        • /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java
        Show
        Hudson added a comment - Integrated in tapestry-trunk-freestyle #607 (See https://builds.apache.org/job/tapestry-trunk-freestyle/607/ ) TAP5-1720 : Supply a "<!DOCTYPE html>" for any component template that doesn't have a specific <!DOCTYPE> TAP5-1720 : HTML 5 doctype is not preserved, gets transformed into XHTML 1.0 hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1188867 Files : /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/dynamic/DynamicTemplateParserImpl.java /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/dynamic/DynamicTemplateSaxParser.java /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/DTDData.java /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/SaxTemplateParser.java /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/TemplateParser.java /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/TemplateParserImpl.java /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java /tapestry/tapestry5/trunk/tapestry-core/src/test/resources/org/apache/tapestry5/internal/services/html_entities.tml hlship : http://svn.apache.org/viewcvs.cgi/?root=Apache-SVN&view=rev&rev=1188866 Files : /tapestry/tapestry5/trunk/tapestry-core/src/main/java/org/apache/tapestry5/internal/services/XMLTokenStream.java /tapestry/tapestry5/trunk/tapestry-core/src/test/java/org/apache/tapestry5/internal/services/TemplateParserImplTest.java

          People

          • Assignee:
            Howard M. Lewis Ship
            Reporter:
            Lenny Primak
          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development