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