Polyglot markup is HTML5 that is also valid XHTML. See <https://www.w3.org/TR/html-polyglot>. With this change, pandoc's html5 writer creates HTML that is both valid HTML5 and valid XHTML. See jgm/pandoc-templates#237 for prior discussion. * Add xml namespace to `<html>` element. * Make all `<meta>` elements self closing. See <https://www.w3.org/TR/html-polyglot/#empty-elements>. * Add `xml:lang` attribute on `<html>` element, defaulting to blank, and always include `lang` attribute, even when blank. See <https://www.w3.org/TR/html-polyglot/#language-attributes>. * Update test files for template changes. The key justification for having language values default to blank: it turns out the HTML5 spec requires it (as I read it). Under [the HTML5 spec, section "3.2.5.3. The lang and xml:lang attributes"](https://www.w3.org/TR/html/dom.html#the-lang-and-xmllang-attributes), providing attributes with blank contents both: * Has meaning, "unknown", and * Is a MUST (written as "must") if a language value is not provided ... > The lang attribute (in no namespace) specifies the primary language > for the element's contents and for any of the element's attributes that > contain text. Its value must be a valid BCP 47 language tag, or the > empty string. Setting the attribute to the empty string indicates that > the primary language is unknown. In short, it seems that where a language value is not provided then a blank value MUST be provided for Polyglot Markup conformance, because the HTML5 spec stipulates a "must". So although the Polyglot Markup spec is unclear on this issue it would seem that if it was correctly written, it would therefore require blank attributes. Further justifications are found at https://github.com/jgm/pandoc-templates/issues/237#issuecomment-275584181 (but the HTML5 spec justification given above would seem to be the clincher). In addition to having lang-values-default-to-blank I recommend that, when an author does not provide a lang value, then upon on pandoc command execution a warning message like the following be provided: > Polyglot markup stipulates that 'The root element SHOULD always specify > the language'. It is therefore recommended you specify a language value in > your source document. See > <https://www.w3.org/International/articles/language-tags/> for valid > language values. |
||
---|---|---|
.. | ||
.github | ||
default.asciidoc | ||
default.beamer | ||
default.commonmark | ||
default.context | ||
default.docbook4 | ||
default.docbook5 | ||
default.dokuwiki | ||
default.dzslides | ||
default.epub2 | ||
default.epub3 | ||
default.haddock | ||
default.html4 | ||
default.html5 | ||
default.icml | ||
default.latex | ||
default.man | ||
default.markdown | ||
default.mediawiki | ||
default.opendocument | ||
default.opml | ||
default.org | ||
default.plain | ||
default.revealjs | ||
default.rst | ||
default.rtf | ||
default.s5 | ||
default.slideous | ||
default.slidy | ||
default.tei | ||
default.texinfo | ||
default.textile | ||
default.zimwiki | ||
README.markdown |
The pandoc-templates repository contains default templates for pandoc.
If you use custom templates, we recommend forking this repository, so that you can integrate changes to the default templates in future pandoc releases.
This repository is a subtree of pandoc; it will be updated each time there is a new pandoc release. However, changes to templates are made first in pandoc; thus, issues and pull requests should be made pandoc's issue tracker rather than here.
All of the templates in this repository are dual licensed, under both the GPL (v2 or higher, same as pandoc) and the BSD 3-clause license (included below).
Copyright (c) 2014--2017, John MacFarlane
All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:
-
Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
-
Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
-
Neither the name of John MacFarlane nor the names of other contributors may be used to endorse or promote products derived from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.