A tumblelog CMS built on AJAX, PHP and MySQL.

html4strict.php 10KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <?php
  2. /*************************************************************************************
  3. * html4strict.php
  4. * ---------------
  5. * Author: Nigel McNie (nigel@geshi.org)
  6. * Copyright: (c) 2004 Nigel McNie (http://qbnz.com/highlighter/)
  7. * Release Version: 1.0.7.21
  8. * Date Started: 2004/07/10
  9. *
  10. * HTML 4.01 strict language file for GeSHi.
  11. *
  12. * CHANGES
  13. * -------
  14. * 2005/12/28 (1.0.4)
  15. * - Removed escape character for strings
  16. * 2004/11/27 (1.0.3)
  17. * - Added support for multiple object splitters
  18. * 2004/10/27 (1.0.2)
  19. * - Added support for URLs
  20. * 2004/08/05 (1.0.1)
  21. * - Added INS and DEL
  22. * - Removed the background colour from tags' styles
  23. * 2004/07/14 (1.0.0)
  24. * - First Release
  25. *
  26. * TODO (updated 2004/11/27)
  27. * -------------------------
  28. * * Check that only HTML4 strict attributes are highlighted
  29. * * Eliminate empty tags that aren't allowed in HTML4 strict
  30. * * Split to several files - html4trans, xhtml1 etc
  31. *
  32. *************************************************************************************
  33. *
  34. * This file is part of GeSHi.
  35. *
  36. * GeSHi is free software; you can redistribute it and/or modify
  37. * it under the terms of the GNU General Public License as published by
  38. * the Free Software Foundation; either version 2 of the License, or
  39. * (at your option) any later version.
  40. *
  41. * GeSHi is distributed in the hope that it will be useful,
  42. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  43. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  44. * GNU General Public License for more details.
  45. *
  46. * You should have received a copy of the GNU General Public License
  47. * along with GeSHi; if not, write to the Free Software
  48. * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  49. *
  50. ************************************************************************************/
  51. $language_data = array (
  52. 'LANG_NAME' => 'HTML',
  53. 'COMMENT_SINGLE' => array(),
  54. 'COMMENT_MULTI' => array('<!--' => '-->'),
  55. 'CASE_KEYWORDS' => GESHI_CAPS_NO_CHANGE,
  56. 'QUOTEMARKS' => array("'", '"'),
  57. 'ESCAPE_CHAR' => '',
  58. 'KEYWORDS' => array(
  59. 1 => array(
  60. ),
  61. 2 => array(
  62. '&lt;a&gt;', '&lt;abbr&gt;', '&lt;acronym&gt;', '&lt;address&gt;', '&lt;applet&gt;',
  63. '&lt;a', '&lt;abbr', '&lt;acronym', '&lt;address', '&lt;applet',
  64. '&lt;/a&gt;', '&lt;/abbr&gt;', '&lt;/acronym&gt;', '&lt;/address&gt;', '&lt;/applet&gt;',
  65. '&lt;/a', '&lt;/abbr', '&lt;/acronym', '&lt;/address', '&lt;/applet',
  66. '&lt;base&gt;', '&lt;basefont&gt;', '&lt;bdo&gt;', '&lt;big&gt;', '&lt;blockquote&gt;', '&lt;body&gt;', '&lt;br&gt;', '&lt;button&gt;', '&lt;b&gt;',
  67. '&lt;base', '&lt;basefont', '&lt;bdo', '&lt;big', '&lt;blockquote', '&lt;body', '&lt;br', '&lt;button', '&lt;b',
  68. '&lt;/base&gt;', '&lt;/basefont&gt;', '&lt;/bdo&gt;', '&lt;/big&gt;', '&lt;/blockquote&gt;', '&lt;/body&gt;', '&lt;/br&gt;', '&lt;/button&gt;', '&lt;/b&gt;',
  69. '&lt;/base', '&lt;/basefont', '&lt;/bdo', '&lt;/big', '&lt;/blockquote', '&lt;/body', '&lt;/br', '&lt;/button', '&lt;/b',
  70. '&lt;caption&gt;', '&lt;center&gt;', '&lt;cite&gt;', '&lt;code&gt;', '&lt;colgroup&gt;', '&lt;col&gt;',
  71. '&lt;caption', '&lt;center', '&lt;cite', '&lt;code', '&lt;colgroup', '&lt;col',
  72. '&lt;/caption&gt;', '&lt;/center&gt;', '&lt;/cite&gt;', '&lt;/code&gt;', '&lt;/colgroup&gt;', '&lt;/col&gt;',
  73. '&lt;/caption', '&lt;/center', '&lt;/cite', '&lt;/code', '&lt;/colgroup', '&lt;/col',
  74. '&lt;dd&gt;', '&lt;del&gt;', '&lt;dfn&gt;', '&lt;dir&gt;', '&lt;div&gt;', '&lt;dl&gt;', '&lt;dt&gt;',
  75. '&lt;dd', '&lt;del', '&lt;dfn', '&lt;dir', '&lt;div', '&lt;dl', '&lt;dt',
  76. '&lt;/dd&gt;', '&lt;/del&gt;', '&lt;/dfn&gt;', '&lt;/dir&gt;', '&lt;/div&gt;', '&lt;/dl&gt;', '&lt;/dt&gt;',
  77. '&lt;/dd', '&lt;/del', '&lt;/dfn', '&lt;/dir', '&lt;/div', '&lt;/dl', '&lt;/dt',
  78. '&lt;em&gt;',
  79. '&lt;em',
  80. '&lt;/em&gt;',
  81. '&lt;/em',
  82. '&lt;fieldset&gt;', '&lt;font&gt;', '&lt;form&gt;', '&lt;frame&gt;', '&lt;frameset&gt;',
  83. '&lt;fieldset', '&lt;font', '&lt;form', '&lt;frame', '&lt;frameset',
  84. '&lt;/fieldset&gt;', '&lt;/font&gt;', '&lt;/form&gt;', '&lt;/frame&gt;', '&lt;/frameset&gt;',
  85. '&lt;/fieldset', '&lt;/font', '&lt;/form', '&lt;/frame', '&lt;/frameset',
  86. '&lt;h1&gt;', '&lt;h2&gt;', '&lt;h3&gt;', '&lt;h4&gt;', '&lt;h5&gt;', '&lt;h6&gt;', '&lt;head&gt;', '&lt;hr&gt;', '&lt;html&gt;',
  87. '&lt;h1', '&lt;h2', '&lt;h3', '&lt;h4', '&lt;h5', '&lt;h6', '&lt;head', '&lt;hr', '&lt;html',
  88. '&lt;/h1&gt;', '&lt;/h2&gt;', '&lt;/h3&gt;', '&lt;/h4&gt;', '&lt;/h5&gt;', '&lt;/h6&gt;', '&lt;/head&gt;', '&lt;/hr&gt;', '&lt;/html&gt;',
  89. '&lt;/h1', '&lt;/h2', '&lt;/h3', '&lt;/h4', '&lt;/h5', '&lt;/h6', '&lt;/head', '&lt;/hr', '&lt;/html',
  90. '&lt;iframe&gt;', '&lt;ilayer&gt;', '&lt;img&gt;', '&lt;input&gt;', '&lt;ins&gt;', '&lt;isindex&gt;', '&lt;i&gt;',
  91. '&lt;iframe', '&lt;ilayer', '&lt;img', '&lt;input', '&lt;ins', '&lt;isindex', '&lt;i',
  92. '&lt;/iframe&gt;', '&lt;/ilayer&gt;', '&lt;/img&gt;', '&lt;/input&gt;', '&lt;/ins&gt;', '&lt;/isindex&gt;', '&lt;/i&gt;',
  93. '&lt;/iframe', '&lt;/ilayer', '&lt;/img', '&lt;/input', '&lt;/ins', '&lt;/isindex', '&lt;/i',
  94. '&lt;kbd&gt;',
  95. '&lt;kbd',
  96. '&t;/kbd&gt;',
  97. '&lt;/kbd',
  98. '&lt;label&gt;', '&lt;legend&gt;', '&lt;link&gt;', '&lt;li&gt;',
  99. '&lt;label', '&lt;legend', '&lt;link', '&lt;li',
  100. '&lt;/label&gt;', '&lt;/legend&gt;', '&lt;/link&gt;', '&lt;/li&gt;',
  101. '&lt;/label', '&lt;/legend', '&lt;/link', '&lt;/li',
  102. '&lt;map&gt;', '&lt;meta&gt;',
  103. '&lt;map', '&lt;meta',
  104. '&lt;/map&gt;', '&lt;/meta&gt;',
  105. '&lt;/map', '&lt;/meta',
  106. '&lt;noframes&gt;', '&lt;noscript&gt;',
  107. '&lt;noframes', '&lt;noscript',
  108. '&lt;/noframes&gt;', '&lt;/noscript&gt;',
  109. '&lt;/noframes', '&lt;/noscript',
  110. '&lt;object&gt;', '&lt;ol&gt;', '&lt;optgroup&gt;', '&lt;option&gt;',
  111. '&lt;object', '&lt;ol', '&lt;optgroup', '&lt;option',
  112. '&lt;/object&gt;', '&lt;/ol&gt;', '&lt;/optgroup&gt;', '&lt;/option&gt;',
  113. '&lt;/object', '&lt;/ol', '&lt;/optgroup', '&lt;/option',
  114. '&lt;param&gt;', '&lt;pre&gt;', '&lt;p&gt;',
  115. '&lt;param', '&lt;pre', '&lt;p',
  116. '&lt;/param&gt;', '&lt;/pre&gt;', '&lt;/p&gt;',
  117. '&lt;/param', '&lt;/pre', '&lt;/p',
  118. '&lt;q&gt;',
  119. '&lt;q',
  120. '&lt;/q&gt;',
  121. '&lt;/q',
  122. '&lt;samp&gt;', '&lt;script&gt;', '&lt;select&gt;', '&lt;small&gt;', '&lt;span&gt;', '&lt;strike&gt;', '&lt;strong&gt;', '&lt;style&gt;', '&lt;sub&gt;', '&lt;sup&gt;', '&lt;s&gt;',
  123. '&lt;samp', '&lt;script', '&lt;select', '&lt;small', '&lt;span', '&lt;strike', '&lt;strong', '&lt;style', '&lt;sub', '&lt;sup', '&lt;s',
  124. '&lt;/samp&gt;', '&lt;/script&gt;', '&lt;/select&gt;', '&lt;/small&gt;', '&lt;/span&gt;', '&lt;/strike&gt;', '&lt;/strong&gt;', '&lt;/style&gt;', '&lt;/sub&gt;', '&lt;/sup&gt;', '&lt;/s&gt;',
  125. '&lt;/samp', '&lt;/script', '&lt;/select', '&lt;/small', '&lt;/span', '&lt;/strike', '&lt;/strong', '&lt;/style', '&lt;/sub', '&lt;/sup', '&lt;/s',
  126. '&lt;table&gt;', '&lt;tbody&gt;', '&lt;td&gt;', '&lt;textarea&gt;', '&lt;text&gt;', '&lt;tfoot&gt;', '&lt;thead&gt;', '&lt;th&gt;', '&lt;title&gt;', '&lt;tr&gt;', '&lt;tt&gt;',
  127. '&lt;table', '&lt;tbody', '&lt;td', '&lt;textarea', '&lt;text', '&lt;tfoot', '&lt;tfoot', '&lt;thead', '&lt;th', '&lt;title', '&lt;tr', '&lt;tt',
  128. '&lt;/table&gt;', '&lt;/tbody&gt;', '&lt;/td&gt;', '&lt;/textarea&gt;', '&lt;/text&gt;', '&lt;/tfoot&gt;', '&lt;/thead', '&lt;/tfoot', '&lt;/th&gt;', '&lt;/title&gt;', '&lt;/tr&gt;', '&lt;/tt&gt;',
  129. '&lt;/table', '&lt;/tbody', '&lt;/td', '&lt;/textarea', '&lt;/text', '&lt;/tfoot', '&lt;/tfoot', '&lt;/thead', '&lt;/th', '&lt;/title', '&lt;/tr', '&lt;/tt',
  130. '&lt;ul&gt;', '&lt;u&gt;',
  131. '&lt;ul', '&lt;u',
  132. '&lt;/ul&gt;', '&lt;/ul&gt;',
  133. '&lt;/ul', '&lt;/u',
  134. '&lt;var&gt;',
  135. '&lt;var',
  136. '&lt;/var&gt;',
  137. '&lt;/var',
  138. '&gt;', '&lt;'
  139. ),
  140. 3 => array(
  141. 'abbr', 'accept-charset', 'accept', 'accesskey', 'action', 'align', 'alink', 'alt', 'archive', 'axis',
  142. 'background', 'bgcolor', 'border',
  143. 'cellpadding', 'cellspacing', 'char', 'char', 'charoff', 'charset', 'checked', 'cite', 'class', 'classid', 'clear', 'code', 'codebase', 'codetype', 'color', 'cols', 'colspan', 'compact', 'content', 'coords',
  144. 'data', 'datetime', 'declare', 'defer', 'dir', 'disabled',
  145. 'enctype',
  146. 'face', 'for', 'frame', 'frameborder',
  147. 'headers', 'height', 'href', 'hreflang', 'hspace', 'http-equiv',
  148. 'id', 'ismap',
  149. 'label', 'lang', 'language', 'link', 'longdesc',
  150. 'marginheight', 'marginwidth', 'maxlength', 'media', 'method', 'multiple',
  151. 'name', 'nohref', 'noresize', 'noshade', 'nowrap',
  152. 'object', 'onblur', 'onchange', 'onclick', 'ondblclick', 'onfocus', 'onkeydown', 'onkeypress', 'onkeyup', 'onload', 'onmousedown', 'onmousemove', 'onmouseout', 'onmouseover', 'onmouseup', 'onreset', 'onselect', 'onsubmit', 'onunload',
  153. 'profile', 'prompt',
  154. 'readonly', 'rel', 'rev', 'rowspan', 'rows', 'rules',
  155. 'scheme', 'scope', 'scrolling', 'selected', 'shape', 'size', 'span', 'src', 'standby', 'start', 'style', 'summary',
  156. 'tabindex', 'target', 'text', 'title', 'type',
  157. 'usemap',
  158. 'valign', 'value', 'valuetype', 'version', 'vlink', 'vspace',
  159. 'width'
  160. )
  161. ),
  162. 'SYMBOLS' => array(
  163. '/', '='
  164. ),
  165. 'CASE_SENSITIVE' => array(
  166. GESHI_COMMENTS => false,
  167. 1 => false,
  168. 2 => false,
  169. 3 => false,
  170. ),
  171. 'STYLES' => array(
  172. 'KEYWORDS' => array(
  173. 1 => 'color: #b1b100;',
  174. 2 => 'color: #000000; font-weight: bold;',
  175. 3 => 'color: #000066;'
  176. ),
  177. 'COMMENTS' => array(
  178. 'MULTI' => 'color: #808080; font-style: italic;'
  179. ),
  180. 'ESCAPE_CHAR' => array(
  181. 0 => 'color: #000099; font-weight: bold;'
  182. ),
  183. 'BRACKETS' => array(
  184. 0 => 'color: #66cc66;'
  185. ),
  186. 'STRINGS' => array(
  187. 0 => 'color: #ff0000;'
  188. ),
  189. 'NUMBERS' => array(
  190. 0 => 'color: #cc66cc;'
  191. ),
  192. 'METHODS' => array(
  193. ),
  194. 'SYMBOLS' => array(
  195. 0 => 'color: #66cc66;'
  196. ),
  197. 'SCRIPT' => array(
  198. 0 => 'color: #00bbdd;',
  199. 1 => 'color: #ddbb00;',
  200. 2 => 'color: #009900;'
  201. ),
  202. 'REGEXPS' => array(
  203. )
  204. ),
  205. 'URLS' => array(
  206. 1 => '',
  207. 2 => 'http://december.com/html/4/element/{FNAME}.html',
  208. 3 => ''
  209. ),
  210. 'OOLANG' => false,
  211. 'OBJECT_SPLITTERS' => array(
  212. ),
  213. 'REGEXPS' => array(
  214. ),
  215. 'STRICT_MODE_APPLIES' => GESHI_ALWAYS,
  216. 'SCRIPT_DELIMITERS' => array(
  217. 0 => array(
  218. '<!DOCTYPE' => '>'
  219. ),
  220. 1 => array(
  221. '&' => ';'
  222. ),
  223. 2 => array(
  224. '<' => '>'
  225. )
  226. ),
  227. 'HIGHLIGHT_STRICT_BLOCK' => array(
  228. 0 => false,
  229. 1 => false,
  230. 2 => true
  231. ),
  232. 'TAB_WIDTH' => 4
  233. );
  234. ?>