The module plain.modes in the directory http://gloss.bham.ac.uk/mv/html/ of the gloss distribution and web pages contains the base code for (x)html pages.
!declare-prefix @prefix[html] @uri[http://gloss.bham.ac.uk/mv/html/plain] {
!declare-prefix @prefix[xml] @uri[http://gloss.bham.ac.uk/mv/xml/xml] {
!init-parameter @name[xml:decl] @value[include] !init-parameter @name[xml:version] @value[1.0] !init-parameter @name[xml:encoding] @value[UTF-8] !init-parameter @name[xml:bom] @value[include] !init-parameter @name[html:public] @value[-//W3C//DTD XHTML 1.1//EN] !init-parameter @name[html:system] @value[http$://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd] !init-parameter @name[html:int-dtd] @value[]
!mode @name[html:doctype] @accept[] @type[process] @use-indentation[false]
!hook @mode[xml:doctype] @action[process]
!default
!doctype
!if @test[$\{html:public\}] !attribute @name[public] !text [$\{html:public\}]
!if @test[$\{html:system\}] !attribute @name[system] !text [$\{html:system\}]
!if @test[$\{html:int-dtd\}] !literal [$\{html:int-dtd\}]
!return
Put output elements in default namespace in the XHTML namespace.
!init-parameter @name[html:html-namespace] @value[http$://www.w3.org/1999/xhtml]
!init-parameter @name[\{http://gloss.bham.ac.uk/mv/xmlnamespaces\}] @value[$\{html:html-namespace\}]
!mode @name[html:root] @template[xml:root] @type[process]
!hook @mode[xml:root] @action[process]
html
!element @name[html]
!process-tokens @mode[xml:attribute-list]
!text 

!process-tokens @mode[html:html-content]
!text 

!return
!elt !error[html expected]
!include @mode[xml:root] @hook[process]
!mode @name[html:html-content] @accept[elt|pi|!LITERAL|!|\{|\}|\[|\]] @children[2] @type[process]
!punc @data[\{] @children-adjust[1]
!execute @mode[xml:brace-group]
!set-parameter @name[xml:inner-structured-content] @value[html:html-content]
!punc @data[\}] !abort
head
!element @name[head]
!process-tokens @mode[html:head-content]
!set-parameter @name[xml:inner-structured-content] @value[html:head-content]
!text 

body
!element @name[body]
!process-tokens @mode[html:body-content]
!set-parameter @name[xml:inner-structured-content] @value[html:body-content]
!text 

!elt !error['head' or 'body' expected]
!include @mode[xml:structured-content]
!mode @name[html:head-content] @type[process]
@accept[elt|attr|pi|cref|eref|!CDATA|!LITERAL|!|\{|\}|\[|\]]
!punc @data[\{]
!execute @mode[xml:brace-group]
!set-parameter @name[xml:inner-structured-content] @value[html:head-content]
!punc @data[\}] !abort
!include @mode[xml:structured-content]
!mode @name[html:body-content] @type[process]
@accept[elt|attr|pi|cref|eref|!CDATA|!LITERAL|!|\{|\}|\[|\]]
!punc @data[\[]
!execute @mode[xml:text]
!set-parameter @name[xml:inner-structured-content] @value[html:body-content]
!punc @data[\]] !abort
!punc @data[\{]
!execute @mode[xml:brace-group]
!set-parameter @name[xml:inner-structured-content] @value[html:body-content]
!punc @data[\}] !abort
!include @mode[xml:structured-content]
}; declare-prefix }; declare-prefix
This file is part of the GLOSS system, Copyright Richard Kaye http://gloss.bham.ac.uk/. Usage permitted under the GPL. No Warranty.
This page is copyright. Web page design and creation by GLOSS.