Jak czysto ustawiam doctype pliku na HTML5 <!DOCTYPE html>
przez XSLT (w tym przypadku z collect.xdv )
Oto, co jest najlepsze, jakie mój foo z Google mógł znaleźć:
<xsl:output
method="html"
doctype-public="XSLT-compat"
omit-xml-declaration="yes"
encoding="UTF-8"
indent="yes" />
produkuje:
<!DOCTYPE html PUBLIC "XSLT-compat" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html>
, starszy<!DOCTYPE HTML SYSTEM "about:legacy-compat">
i przestarzały („nie powinien”) HTML 4, HTML 4.01, XHTML 1.0 i XHTML 1.1 (wszystkie ścisłe DTD, gdy istnieje SYSTEM).Odpowiedzi:
Myślę, że jest to obecnie obsługiwane tylko przez zapisanie dokumentu jako tekstu:
To da następujący wynik:
źródło
disable-output-escaping
miał na myśli CaseyAby użyć prostego HTML doctype
<!DOCTYPE html>
, trzeba użyćdisable-output-escaping
funkcji:<xsl:text disable-output-escaping="yes"><!DOCTYPE html></xsl:text>
. Jednakże,disable-output-escaping
jest to opcjonalna funkcja w XSLT, więc silnik XSLT lub rurociąg serializacji nie może go poprzeć.Z tego powodu HTML5 zapewnia alternatywny doctype dla kompatybilności z nieświadomymi HTML5 wersjami XSLT (tj. Wszystkimi obecnie istniejącymi wersjami XSLT) i innymi systemami, które mają ten sam problem. Alternatywnym typem dokumentu jest
<!DOCTYPE html SYSTEM "about:legacy-compat">
. Aby wyświetlić ten typ dokumentu, użyj atrybutudoctype-system="about:legacy-compat"
naxsl:output
elemencie bez używaniadoctype-public
atrybutu w ogóle.źródło
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
moim typem dokumentu. Jak zasugerował @Jirka Kosek, myślę, że mój procesor XSLT może być uszkodzony.<!DOCTYPE html SYSTEM "about:legacy-compat">
to wychodzi
jest to zmodyfikowane jako moja poprawka do http://ukchill.com/technology/generating-html5-using-xslt/
źródło
<!DOCTYPE html SYSTEM "about:legacy-compat">
Z Saxon 9.4 możesz używać:
To generuje:
źródło
Użyj doctype-system zamiast doctype-public
źródło
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"
w doctype.Państwo musi używać XHTML 1.0 Strict jako doctype jeśli chcesz Wyjście XHTML zgodny z HTML5, libxml2 za xml serializer ma specjalny tryb wyjścia wyzwalany przez XHTML 1.0 doctypes który zapewnia produkcji jest zgodny z XHTML (np
<br />
zamiast<br/>
,<div></div>
zamiast<div/>
).doctype-system="about:legacy-compat"
czy nie wywoła to tryb zgodnościJeśli jesteś zadowolony z wyjścia html, ustawienie
<xsl:output method="html">
powinno działać właściwie. Następnie możesz ustawić doctype za pomocą<xsl:text disable-output-escaping="yes"><!DOCTYPE html></xsl:text>
, chociaż będzie to wymagało podłączenia instalacji hydraulicznej w odpowiednim miejscu, ponieważ XDV jeszcze tego nie obsługuje.W rzeczywistości wydaje się, że to
<xsl:output method="html"/>
też nie pomaga - spowoduje to wyświetlenie pliku w<br/>
formacie<br></br>
.źródło
Ta odmiana porady Jirki Kosek , za pośrednictwem motywów Advanced XDV na Plone.org, wydaje się działać dla mnie w Collective.xdv .
źródło
To jest komentarz, ale nie mam wystarczającej liczby punktów karmy, aby umieścić go we właściwym miejscu. Westchnienie.
Nie, Twój procesor XSLT nie jest uszkodzony, po prostu XDV dodaje:
<xsl:output method="xml" indent="no" omit-xml-declaration="yes" media-type="text/html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
domyślnie, więc po dodaniu sekundy
<xsl:output doctype-system="about:legacy-compat"/>
poprzedniadoctype-public
nie jest nadpisywana.Zwróć uwagę, że XHTML 1.0 strict jest wymieniony jako przestarzały, dozwolony ciąg znaków typu doctype , więc używanie tego typu dokumentu i nadal nazywanie go HTML5 jest całkowicie dopuszczalne.
źródło
Przepraszam, że podam tylko linki, ale było to omawiane w grupie WHATWG, ale minęło wiele miesięcy, odkąd się tym zajmowałem. Tutaj Ian Hickson i niektórzy eksperci XML omawiają to:
http://lists.w3.org/Archives/Public/public-html/2009Jan/0640.html
http://markmail.org/message/64aykbbsfzlbidzl,
a tutaj jest rzeczywisty problem numer:
http://www.w3.org/html/wg/tracker/issues/54
i tutaj jest ta dyskusja
http://www.contentwithstyle.co.uk/content/xslt-and-html-5-problems
źródło
Użyj tego tagu
źródło
Poniższy kod będzie działał jako samodzielny szablon, jeśli zostanie zapisany jako
html5.xml
:Bibliografia
źródło
to jest to, czego używam do generowania kompatybilnego doctype html5 (wyciągam saksofon html5, w przeciwnym razie robię starsze rzeczy)
źródło