116 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			116 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| 
								 | 
							
								<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<html>
							 | 
						||
| 
								 | 
							
								<head>
							 | 
						||
| 
								 | 
							
								<title>PceEmacs SGML mode</title>
							 | 
						||
| 
								 | 
							
								</head>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<body>
							 | 
						||
| 
								 | 
							
								<h1>PceEmacs SGML mode</h1>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								This page describes the <em>PceEmacs</em> modes <b>SGML</b>, <b>HTML</b> and
							 | 
						||
| 
								 | 
							
								<b>XML</b>. These modes are based on the
							 | 
						||
| 
								 | 
							
								<a href="http://www.swi.psy.uva.nl/projects/SWI-Prolog">SWI-Prolog</a>
							 | 
						||
| 
								 | 
							
								package sgml2pl, an SGML/XML parser for Prolog. It exploits this parser
							 | 
						||
| 
								 | 
							
								to achieve both colouring syntax elements and errors as well as to
							 | 
						||
| 
								 | 
							
								provided menu-driven editing of SGML, HTML and XML documents.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<h2>Syntax highlighting</h2>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								These PceEmacs modes are designed to be simple. Colouring uses the
							 | 
						||
| 
								 | 
							
								following colours
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								<table align=center border="2">
							 | 
						||
| 
								 | 
							
								<tr><td><font color="#0000ff"><tt><b>bold blue</b></tt></font>	
							 | 
						||
| 
								 | 
							
								    <td>begin tag
							 | 
						||
| 
								 | 
							
								<tr><td bgcolor="#e7e7e7"><font color="#0000ff">
							 | 
						||
| 
								 | 
							
											    <tt><b>bold blue onlight-grey</b></tt>
							 | 
						||
| 
								 | 
							
											  </font>
							 | 
						||
| 
								 | 
							
								    <td>SGML SHORTREF expansion
							 | 
						||
| 
								 | 
							
								<tr><td><font color="#0000ff"><tt>blue</tt></font> 
							 | 
						||
| 
								 | 
							
								    <td>end tag
							 | 
						||
| 
								 | 
							
								<tr><td><font color="#288a51">sea-green</font>			
							 | 
						||
| 
								 | 
							
								    <td>CDATA declared content element
							 | 
						||
| 
								 | 
							
								<tr><td bgcolor="#ffa600"><tt>orange</tt>
							 | 
						||
| 
								 | 
							
								    <td>warning
							 | 
						||
| 
								 | 
							
								<tr><td bgcolor="#ff0000"><tt>red</tt>
							 | 
						||
| 
								 | 
							
								    <td>error
							 | 
						||
| 
								 | 
							
								</table>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								Colouring the whole buffer is the only really safe colouring method, but
							 | 
						||
| 
								 | 
							
								unfortunately doesn't scale with large files. Therefore, this mode is
							 | 
						||
| 
								 | 
							
								only initiated after loading a file in this mode, after typing
							 | 
						||
| 
								 | 
							
								<b>Control-L</b> (<b>recenter</b>) or after an explicit
							 | 
						||
| 
								 | 
							
								<b>colourise_buffer</b> command.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								The more error-prone <b>colourise_element</b> is activated after many
							 | 
						||
| 
								 | 
							
								commands as well as after an idle-period of 2 seconds. This command
							 | 
						||
| 
								 | 
							
								searches backward to the first element that encloses the caret and then
							 | 
						||
| 
								 | 
							
								colourises this element.  It is errorprone for two reasons.  First of
							 | 
						||
| 
								 | 
							
								all, it does not validate whether the checked element itself is at a
							 | 
						||
| 
								 | 
							
								valid location.  Second, it does not see elements allowed throught the
							 | 
						||
| 
								 | 
							
								DTD's <b>+(<i>Model</i>)</b> construct.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<h2>Errors and warnings</h2>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								Errors and warning encountered during parsing cause the suspect region
							 | 
						||
| 
								 | 
							
								to be coloured <font color="#ffa600">orange</font> (warning) or <font
							 | 
						||
| 
								 | 
							
								color="#ff0000">red</font> (error).  Moving the caret in the suspect
							 | 
						||
| 
								 | 
							
								area causes the error to be printed in the status line at the bottom
							 | 
						||
| 
								 | 
							
								of the editor.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<h2>Syntax-guided editing</h2>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								Most syntax-guided editing is supported using a context-sensitive
							 | 
						||
| 
								 | 
							
								popup-menu associated with the right mouse button.  To create an
							 | 
						||
| 
								 | 
							
								<b>new element</b>, press the right mouse-button at the desired location
							 | 
						||
| 
								 | 
							
								and select the desired element.  The modifier buttons define how
							 | 
						||
| 
								 | 
							
								the element is inserted:
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								<table align="center" border="2">
							 | 
						||
| 
								 | 
							
								<tr><td>control	<td>Insert adjacent begin- and end-tag.
							 | 
						||
| 
								 | 
							
								<tr><td>shift	<td>Place begin- and end-tag each on their own line
							 | 
						||
| 
								 | 
							
								<tr><td>alt	<td>(SGML only) create a <b>SHORTTAG</b> element
							 | 
						||
| 
								 | 
							
								</table>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								To <b>tag the current selection</b> with a tag, first make a selection and
							 | 
						||
| 
								 | 
							
								then press the right mouse-button inside the selection.  The same
							 | 
						||
| 
								 | 
							
								modifiers as above apply.  If no modifier is given, the default
							 | 
						||
| 
								 | 
							
								is to place the tag at their own line of the selection contains
							 | 
						||
| 
								 | 
							
								complete lines and `in-line' otherwise.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<p>
							 | 
						||
| 
								 | 
							
								To <b>add attributes</b> to an element, press the right-button inside the
							 | 
						||
| 
								 | 
							
								elements begin-tag and select the desired elements.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<h2>Bugs and TODO</h2>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								<ul>
							 | 
						||
| 
								 | 
							
								<li>Cache the parsed DTD
							 | 
						||
| 
								 | 
							
								<li>Deal with included +(Group) elements properly
							 | 
						||
| 
								 | 
							
								<li>Display total number of encountered errors and provide navigation
							 | 
						||
| 
								 | 
							
								    on large files
							 | 
						||
| 
								 | 
							
								<li>Personalise layout: style to use for certain tags, syntax
							 | 
						||
| 
								 | 
							
								    highlighting, etc.
							 | 
						||
| 
								 | 
							
								<li>Take are of already present attributes and elements.
							 | 
						||
| 
								 | 
							
								</ul>
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								</body>
							 | 
						||
| 
								 | 
							
								</html>
							 |