/samples/scalate-presentation/src/highlight/languages/apache.js

http://github.com/scalate/scalate · JavaScript · 442 lines · 432 code · 1 blank · 9 comment · 0 complexity · df841226883b50d303d00adc3bf8ad1d MD5 · raw file

  1. /*
  2. Language: Apache
  3. Author: Ruslan Keba <rukeba@gmail.com>
  4. Website: http://rukeba.com/
  5. Description: language definition for Apache configuration files (httpd.conf & .htaccess)
  6. Version 1.1
  7. Date: 2008-12-27
  8. */
  9. hljs.LANGUAGES.apache =
  10. {
  11. case_insensitive: true,
  12. defaultMode: {
  13. lexems: [hljs.IDENT_RE],
  14. contains: ['comment', 'sqbracket', 'cbracket', 'number', 'tag', 'string'],
  15. keywords: {
  16. 'keyword': {
  17. 'acceptfilter': 1,
  18. 'acceptmutex': 1,
  19. 'acceptpathinfo': 1,
  20. 'accessfilename': 1,
  21. 'action': 1,
  22. 'addalt': 1,
  23. 'addaltbyencoding': 1,
  24. 'addaltbytype': 1,
  25. 'addcharset': 1,
  26. 'adddefaultcharset': 1,
  27. 'adddescription': 1,
  28. 'addencoding': 1,
  29. 'addhandler': 1,
  30. 'addicon': 1,
  31. 'addiconbyencoding': 1,
  32. 'addiconbytype': 1,
  33. 'addinputfilter': 1,
  34. 'addlanguage': 1,
  35. 'addmoduleinfo': 1,
  36. 'addoutputfilter': 1,
  37. 'addoutputfilterbytype': 1,
  38. 'addtype': 1,
  39. 'alias': 1,
  40. 'aliasmatch': 1,
  41. 'allow': 1,
  42. 'allowconnect': 1,
  43. 'allowencodedslashes': 1,
  44. 'allowoverride': 1,
  45. 'anonymous': 1,
  46. 'anonymous_logemail': 1,
  47. 'anonymous_mustgiveemail': 1,
  48. 'anonymous_nouserid': 1,
  49. 'anonymous_verifyemail': 1,
  50. 'authbasicauthoritative': 1,
  51. 'authbasicprovider': 1,
  52. 'authdbduserpwquery': 1,
  53. 'authdbduserrealmquery': 1,
  54. 'authdbmgroupfile': 1,
  55. 'authdbmtype': 1,
  56. 'authdbmuserfile': 1,
  57. 'authdefaultauthoritative': 1,
  58. 'authdigestalgorithm': 1,
  59. 'authdigestdomain': 1,
  60. 'authdigestnccheck': 1,
  61. 'authdigestnonceformat': 1,
  62. 'authdigestnoncelifetime': 1,
  63. 'authdigestprovider': 1,
  64. 'authdigestqop': 1,
  65. 'authdigestshmemsize': 1,
  66. 'authgroupfile': 1,
  67. 'authldapbinddn': 1,
  68. 'authldapbindpassword': 1,
  69. 'authldapcharsetconfig': 1,
  70. 'authldapcomparednonserver': 1,
  71. 'authldapdereferencealiases': 1,
  72. 'authldapgroupattribute': 1,
  73. 'authldapgroupattributeisdn': 1,
  74. 'authldapremoteuserattribute': 1,
  75. 'authldapremoteuserisdn': 1,
  76. 'authldapurl': 1,
  77. 'authname': 1,
  78. 'authnprovideralias': 1,
  79. 'authtype': 1,
  80. 'authuserfile': 1,
  81. 'authzdbmauthoritative': 1,
  82. 'authzdbmtype': 1,
  83. 'authzdefaultauthoritative': 1,
  84. 'authzgroupfileauthoritative': 1,
  85. 'authzldapauthoritative': 1,
  86. 'authzownerauthoritative': 1,
  87. 'authzuserauthoritative': 1,
  88. 'balancermember': 1,
  89. 'browsermatch': 1,
  90. 'browsermatchnocase': 1,
  91. 'bufferedlogs': 1,
  92. 'cachedefaultexpire': 1,
  93. 'cachedirlength': 1,
  94. 'cachedirlevels': 1,
  95. 'cachedisable': 1,
  96. 'cacheenable': 1,
  97. 'cachefile': 1,
  98. 'cacheignorecachecontrol': 1,
  99. 'cacheignoreheaders': 1,
  100. 'cacheignorenolastmod': 1,
  101. 'cacheignorequerystring': 1,
  102. 'cachelastmodifiedfactor': 1,
  103. 'cachemaxexpire': 1,
  104. 'cachemaxfilesize': 1,
  105. 'cacheminfilesize': 1,
  106. 'cachenegotiateddocs': 1,
  107. 'cacheroot': 1,
  108. 'cachestorenostore': 1,
  109. 'cachestoreprivate': 1,
  110. 'cgimapextension': 1,
  111. 'charsetdefault': 1,
  112. 'charsetoptions': 1,
  113. 'charsetsourceenc': 1,
  114. 'checkcaseonly': 1,
  115. 'checkspelling': 1,
  116. 'chrootdir': 1,
  117. 'contentdigest': 1,
  118. 'cookiedomain': 1,
  119. 'cookieexpires': 1,
  120. 'cookielog': 1,
  121. 'cookiename': 1,
  122. 'cookiestyle': 1,
  123. 'cookietracking': 1,
  124. 'coredumpdirectory': 1,
  125. 'customlog': 1,
  126. 'dav': 1,
  127. 'davdepthinfinity': 1,
  128. 'davgenericlockdb': 1,
  129. 'davlockdb': 1,
  130. 'davmintimeout': 1,
  131. 'dbdexptime': 1,
  132. 'dbdkeep': 1,
  133. 'dbdmax': 1,
  134. 'dbdmin': 1,
  135. 'dbdparams': 1,
  136. 'dbdpersist': 1,
  137. 'dbdpreparesql': 1,
  138. 'dbdriver': 1,
  139. 'defaulticon': 1,
  140. 'defaultlanguage': 1,
  141. 'defaulttype': 1,
  142. 'deflatebuffersize': 1,
  143. 'deflatecompressionlevel': 1,
  144. 'deflatefilternote': 1,
  145. 'deflatememlevel': 1,
  146. 'deflatewindowsize': 1,
  147. 'deny': 1,
  148. 'directoryindex': 1,
  149. 'directorymatch': 1,
  150. 'directoryslash': 1,
  151. 'documentroot': 1,
  152. 'dumpioinput': 1,
  153. 'dumpiologlevel': 1,
  154. 'dumpiooutput': 1,
  155. 'enableexceptionhook': 1,
  156. 'enablemmap': 1,
  157. 'enablesendfile': 1,
  158. 'errordocument': 1,
  159. 'errorlog': 1,
  160. 'example': 1,
  161. 'expiresactive': 1,
  162. 'expiresbytype': 1,
  163. 'expiresdefault': 1,
  164. 'extendedstatus': 1,
  165. 'extfilterdefine': 1,
  166. 'extfilteroptions': 1,
  167. 'fileetag': 1,
  168. 'filterchain': 1,
  169. 'filterdeclare': 1,
  170. 'filterprotocol': 1,
  171. 'filterprovider': 1,
  172. 'filtertrace': 1,
  173. 'forcelanguagepriority': 1,
  174. 'forcetype': 1,
  175. 'forensiclog': 1,
  176. 'gracefulshutdowntimeout': 1,
  177. 'group': 1,
  178. 'header': 1,
  179. 'headername': 1,
  180. 'hostnamelookups': 1,
  181. 'identitycheck': 1,
  182. 'identitychecktimeout': 1,
  183. 'imapbase': 1,
  184. 'imapdefault': 1,
  185. 'imapmenu': 1,
  186. 'include': 1,
  187. 'indexheadinsert': 1,
  188. 'indexignore': 1,
  189. 'indexoptions': 1,
  190. 'indexorderdefault': 1,
  191. 'indexstylesheet': 1,
  192. 'isapiappendlogtoerrors': 1,
  193. 'isapiappendlogtoquery': 1,
  194. 'isapicachefile': 1,
  195. 'isapifakeasync': 1,
  196. 'isapilognotsupported': 1,
  197. 'isapireadaheadbuffer': 1,
  198. 'keepalive': 1,
  199. 'keepalivetimeout': 1,
  200. 'languagepriority': 1,
  201. 'ldapcacheentries': 1,
  202. 'ldapcachettl': 1,
  203. 'ldapconnectiontimeout': 1,
  204. 'ldapopcacheentries': 1,
  205. 'ldapopcachettl': 1,
  206. 'ldapsharedcachefile': 1,
  207. 'ldapsharedcachesize': 1,
  208. 'ldaptrustedclientcert': 1,
  209. 'ldaptrustedglobalcert': 1,
  210. 'ldaptrustedmode': 1,
  211. 'ldapverifyservercert': 1,
  212. 'limitinternalrecursion': 1,
  213. 'limitrequestbody': 1,
  214. 'limitrequestfields': 1,
  215. 'limitrequestfieldsize': 1,
  216. 'limitrequestline': 1,
  217. 'limitxmlrequestbody': 1,
  218. 'listen': 1,
  219. 'listenbacklog': 1,
  220. 'loadfile': 1,
  221. 'loadmodule': 1,
  222. 'lockfile': 1,
  223. 'logformat': 1,
  224. 'loglevel': 1,
  225. 'maxclients': 1,
  226. 'maxkeepaliverequests': 1,
  227. 'maxmemfree': 1,
  228. 'maxrequestsperchild': 1,
  229. 'maxrequestsperthread': 1,
  230. 'maxspareservers': 1,
  231. 'maxsparethreads': 1,
  232. 'maxthreads': 1,
  233. 'mcachemaxobjectcount': 1,
  234. 'mcachemaxobjectsize': 1,
  235. 'mcachemaxstreamingbuffer': 1,
  236. 'mcacheminobjectsize': 1,
  237. 'mcacheremovalalgorithm': 1,
  238. 'mcachesize': 1,
  239. 'metadir': 1,
  240. 'metafiles': 1,
  241. 'metasuffix': 1,
  242. 'mimemagicfile': 1,
  243. 'minspareservers': 1,
  244. 'minsparethreads': 1,
  245. 'mmapfile': 1,
  246. 'mod_gzip_on': 1,
  247. 'mod_gzip_add_header_count': 1,
  248. 'mod_gzip_keep_workfiles': 1,
  249. 'mod_gzip_dechunk': 1,
  250. 'mod_gzip_min_http': 1,
  251. 'mod_gzip_minimum_file_size': 1,
  252. 'mod_gzip_maximum_file_size': 1,
  253. 'mod_gzip_maximum_inmem_size': 1,
  254. 'mod_gzip_temp_dir': 1,
  255. 'mod_gzip_item_include': 1,
  256. 'mod_gzip_item_exclude': 1,
  257. 'mod_gzip_command_version': 1,
  258. 'mod_gzip_can_negotiate': 1,
  259. 'mod_gzip_handle_methods': 1,
  260. 'mod_gzip_static_suffix': 1,
  261. 'mod_gzip_send_vary': 1,
  262. 'mod_gzip_update_static': 1,
  263. 'modmimeusepathinfo': 1,
  264. 'multiviewsmatch': 1,
  265. 'namevirtualhost': 1,
  266. 'noproxy': 1,
  267. 'nwssltrustedcerts': 1,
  268. 'nwsslupgradeable': 1,
  269. 'options': 1,
  270. 'order': 1,
  271. 'passenv': 1,
  272. 'pidfile': 1,
  273. 'protocolecho': 1,
  274. 'proxybadheader': 1,
  275. 'proxyblock': 1,
  276. 'proxydomain': 1,
  277. 'proxyerroroverride': 1,
  278. 'proxyftpdircharset': 1,
  279. 'proxyiobuffersize': 1,
  280. 'proxymaxforwards': 1,
  281. 'proxypass': 1,
  282. 'proxypassinterpolateenv': 1,
  283. 'proxypassmatch': 1,
  284. 'proxypassreverse': 1,
  285. 'proxypassreversecookiedomain': 1,
  286. 'proxypassreversecookiepath': 1,
  287. 'proxypreservehost': 1,
  288. 'proxyreceivebuffersize': 1,
  289. 'proxyremote': 1,
  290. 'proxyremotematch': 1,
  291. 'proxyrequests': 1,
  292. 'proxyset': 1,
  293. 'proxystatus': 1,
  294. 'proxytimeout': 1,
  295. 'proxyvia': 1,
  296. 'readmename': 1,
  297. 'receivebuffersize': 1,
  298. 'redirect': 1,
  299. 'redirectmatch': 1,
  300. 'redirectpermanent': 1,
  301. 'redirecttemp': 1,
  302. 'removecharset': 1,
  303. 'removeencoding': 1,
  304. 'removehandler': 1,
  305. 'removeinputfilter': 1,
  306. 'removelanguage': 1,
  307. 'removeoutputfilter': 1,
  308. 'removetype': 1,
  309. 'requestheader': 1,
  310. 'require': 2,
  311. 'rewritebase': 1,
  312. 'rewritecond': 10,
  313. 'rewriteengine': 1,
  314. 'rewritelock': 1,
  315. 'rewritelog': 1,
  316. 'rewriteloglevel': 1,
  317. 'rewritemap': 1,
  318. 'rewriteoptions': 1,
  319. 'rewriterule': 10,
  320. 'rlimitcpu': 1,
  321. 'rlimitmem': 1,
  322. 'rlimitnproc': 1,
  323. 'satisfy': 1,
  324. 'scoreboardfile': 1,
  325. 'script': 1,
  326. 'scriptalias': 1,
  327. 'scriptaliasmatch': 1,
  328. 'scriptinterpretersource': 1,
  329. 'scriptlog': 1,
  330. 'scriptlogbuffer': 1,
  331. 'scriptloglength': 1,
  332. 'scriptsock': 1,
  333. 'securelisten': 1,
  334. 'seerequesttail': 1,
  335. 'sendbuffersize': 1,
  336. 'serveradmin': 1,
  337. 'serveralias': 1,
  338. 'serverlimit': 1,
  339. 'servername': 1,
  340. 'serverpath': 1,
  341. 'serverroot': 1,
  342. 'serversignature': 1,
  343. 'servertokens': 1,
  344. 'setenv': 1,
  345. 'setenvif': 1,
  346. 'setenvifnocase': 1,
  347. 'sethandler': 1,
  348. 'setinputfilter': 1,
  349. 'setoutputfilter': 1,
  350. 'ssienableaccess': 1,
  351. 'ssiendtag': 1,
  352. 'ssierrormsg': 1,
  353. 'ssistarttag': 1,
  354. 'ssitimeformat': 1,
  355. 'ssiundefinedecho': 1,
  356. 'sslcacertificatefile': 1,
  357. 'sslcacertificatepath': 1,
  358. 'sslcadnrequestfile': 1,
  359. 'sslcadnrequestpath': 1,
  360. 'sslcarevocationfile': 1,
  361. 'sslcarevocationpath': 1,
  362. 'sslcertificatechainfile': 1,
  363. 'sslcertificatefile': 1,
  364. 'sslcertificatekeyfile': 1,
  365. 'sslciphersuite': 1,
  366. 'sslcryptodevice': 1,
  367. 'sslengine': 1,
  368. 'sslhonorciperorder': 1,
  369. 'sslmutex': 1,
  370. 'ssloptions': 1,
  371. 'sslpassphrasedialog': 1,
  372. 'sslprotocol': 1,
  373. 'sslproxycacertificatefile': 1,
  374. 'sslproxycacertificatepath': 1,
  375. 'sslproxycarevocationfile': 1,
  376. 'sslproxycarevocationpath': 1,
  377. 'sslproxyciphersuite': 1,
  378. 'sslproxyengine': 1,
  379. 'sslproxymachinecertificatefile': 1,
  380. 'sslproxymachinecertificatepath': 1,
  381. 'sslproxyprotocol': 1,
  382. 'sslproxyverify': 1,
  383. 'sslproxyverifydepth': 1,
  384. 'sslrandomseed': 1,
  385. 'sslrequire': 1,
  386. 'sslrequiressl': 1,
  387. 'sslsessioncache': 1,
  388. 'sslsessioncachetimeout': 1,
  389. 'sslusername': 1,
  390. 'sslverifyclient': 1,
  391. 'sslverifydepth': 1,
  392. 'startservers': 1,
  393. 'startthreads': 1,
  394. 'substitute': 1,
  395. 'suexecusergroup': 1,
  396. 'threadlimit': 1,
  397. 'threadsperchild': 1,
  398. 'threadstacksize': 1,
  399. 'timeout': 1,
  400. 'traceenable': 1,
  401. 'transferlog': 1,
  402. 'typesconfig': 1,
  403. 'unsetenv': 1,
  404. 'usecanonicalname': 1,
  405. 'usecanonicalphysicalport': 1,
  406. 'user': 1,
  407. 'userdir': 1,
  408. 'virtualdocumentroot': 1,
  409. 'virtualdocumentrootip': 1,
  410. 'virtualscriptalias': 1,
  411. 'virtualscriptaliasip': 1,
  412. 'win32disableacceptex': 1,
  413. 'xbithack': 1
  414. },
  415. 'literal': {'on': 1, 'off': 1}
  416. }
  417. },
  418. modes: [
  419. hljs.HASH_COMMENT_MODE,
  420. {
  421. /* TODO: check tag content: Location, Files, VirtualHost, ... */
  422. className: 'tag',
  423. begin: '</?', end: '>'
  424. },
  425. {
  426. className: 'sqbracket',
  427. begin: '\\s\\[', end: '\\]$'
  428. },
  429. {
  430. className: 'cbracket',
  431. begin: '[\\$%]\\{', end: '\\}',
  432. contains: ['cbracket', 'number']
  433. },
  434. {
  435. className: 'number',
  436. begin: '[\\$%]\\d+', end: '^'
  437. },
  438. hljs.QUOTE_STRING_MODE,
  439. hljs.BACKSLASH_ESCAPE
  440. ]
  441. };