pcmmd
clone your own copy | download snapshot

Snapshots | iceberg

Inside this repository

nginx.js
application/javascript

Download raw (9.4 KB)

/*
Language: nginx
Author: Peter Leonov <gojpeg@yandex.ru>
*/

hljs.LANGUAGES.nginx = {
  defaultMode: {
    contains: ['comment', 'directive'],
  },
  modes: [
    hljs.HASH_COMMENT_MODE,
    {
      className: 'directive',
      begin: hljs.UNDERSCORE_IDENT_RE, end: ';|{', returnEnd: true, noMarkup: true,
      contains: ['comment', 'parameters'],
      lexems: [hljs.UNDERSCORE_IDENT_RE],
      keywords: {accept_mutex: 1, accept_mutex_delay: 1, access_log: 1, add_after_body: 1, add_before_body: 1, add_header: 1, addition_types: 1, alias: 1, allow: 1, ancient_browser: 1, ancient_browser: 1, ancient_browser_value: 1, ancient_browser_value: 1, auth_basic: 1, auth_basic_user_file: 1, autoindex: 1, autoindex_exact_size: 1, autoindex_localtime: 1, 'break': 1, charset: 1, charset: 1, charset_map: 1, charset_map: 1, charset_types: 1, charset_types: 1, client_body_buffer_size: 1, client_body_in_file_only: 1, client_body_in_single_buffer: 1, client_body_temp_path: 1, client_body_timeout: 1, client_header_buffer_size: 1, client_header_timeout: 1, client_max_body_size: 1, connection_pool_size: 1, connections: 1, create_full_put_path: 1, daemon: 1, dav_access: 1, dav_methods: 1, debug_connection: 1, debug_points: 1, default_type: 1, deny: 1, directio: 1, directio_alignment: 1, echo: 1, echo_after_body: 1, echo_before_body: 1, echo_blocking_sleep: 1, echo_duplicate: 1, echo_end: 1, echo_exec: 1, echo_flush: 1, echo_foreach_split: 1, echo_location: 1, echo_location_async: 1, echo_read_request_body: 1, echo_request_body: 1, echo_reset_timer: 1, echo_sleep: 1, echo_subrequest: 1, echo_subrequest_async: 1, empty_gif: 1, empty_gif: 1, env: 1, error_log: 1, error_log: 1, error_page: 1, events: 1, expires: 1, fastcgi_bind: 1, fastcgi_buffer_size: 1, fastcgi_buffers: 1, fastcgi_busy_buffers_size: 1, fastcgi_cache: 1, fastcgi_cache_key: 1, fastcgi_cache_methods: 1, fastcgi_cache_min_uses: 1, fastcgi_cache_path: 1, fastcgi_cache_use_stale: 1, fastcgi_cache_valid: 1, fastcgi_catch_stderr: 1, fastcgi_connect_timeout: 1, fastcgi_hide_header: 1, fastcgi_ignore_client_abort: 1, fastcgi_ignore_headers: 1, fastcgi_index: 1, fastcgi_intercept_errors: 1, fastcgi_max_temp_file_size: 1, fastcgi_next_upstream: 1, fastcgi_param: 1, fastcgi_pass: 1, fastcgi_pass_header: 1, fastcgi_pass_request_body: 1, fastcgi_pass_request_headers: 1, fastcgi_read_timeout: 1, fastcgi_send_lowat: 1, fastcgi_send_timeout: 1, fastcgi_split_path_info: 1, fastcgi_store: 1, fastcgi_store_access: 1, fastcgi_temp_file_write_size: 1, fastcgi_temp_path: 1, fastcgi_upstream_fail_timeout: 1, fastcgi_upstream_max_fails: 1, flv: 1, geo: 1, geo: 1, geoip_city: 1, geoip_country: 1, gzip: 1, gzip_buffers: 1, gzip_comp_level: 1, gzip_disable: 1, gzip_hash: 1, gzip_http_version: 1, gzip_min_length: 1, gzip_no_buffer: 1, gzip_proxied: 1, gzip_static: 1, gzip_types: 1, gzip_vary: 1, gzip_window: 1, http: 1, 'if': 1, if_modified_since: 1, ignore_invalid_headers: 1, image_filter: 1, image_filter_buffer: 1, image_filter_jpeg_quality: 1, image_filter_transparency: 1, include: 1, index: 1, internal: 1, ip_hash: 1, js: 1, js_load: 1, js_require: 1, js_utf8: 1, keepalive_requests: 1, keepalive_timeout: 1, kqueue_changes: 1, kqueue_events: 1, large_client_header_buffers: 1, limit_conn: 1, limit_conn_log_level: 1, limit_except: 1, limit_rate: 1, limit_rate_after: 1, limit_req: 1, limit_req_log_level: 1, limit_req_zone: 1, limit_zone: 1, lingering_time: 1, lingering_timeout: 1, listen: 1, location: 1, lock_file: 1, log_format: 1, log_not_found: 1, log_subrequest: 1, map: 1, map_hash_bucket_size: 1, map_hash_max_size: 1, master_process: 1, memcached_bind: 1, memcached_buffer_size: 1, memcached_connect_timeout: 1, memcached_next_upstream: 1, memcached_pass: 1, memcached_read_timeout: 1, memcached_send_timeout: 1, memcached_upstream_fail_timeout: 1, memcached_upstream_max_fails: 1, merge_slashes: 1, min_delete_depth: 1, modern_browser: 1, modern_browser: 1, modern_browser_value: 1, modern_browser_value: 1, more_clear_headers: 1, more_clear_input_headers: 1, more_set_headers: 1, more_set_input_headers: 1, msie_padding: 1, msie_refresh: 1, multi_accept: 1, open_file_cache: 1, open_file_cache_errors: 1, open_file_cache_events: 1, open_file_cache_min_uses: 1, open_file_cache_retest: 1, open_file_cache_valid: 1, open_log_file_cache: 1, optimize_server_names: 1, output_buffers: 1, override_charset: 1, override_charset: 1, perl: 1, perl_modules: 1, perl_require: 1, perl_set: 1, pid: 1, port_in_redirect: 1, post_action: 1, postpone_gzipping: 1, postpone_output: 1, proxy_bind: 1, proxy_buffer_size: 1, proxy_buffering: 1, proxy_buffers: 1, proxy_busy_buffers_size: 1, proxy_cache: 1, proxy_cache_key: 1, proxy_cache_methods: 1, proxy_cache_min_uses: 1, proxy_cache_path: 1, proxy_cache_use_stale: 1, proxy_cache_valid: 1, proxy_connect_timeout: 1, proxy_headers_hash_bucket_size: 1, proxy_headers_hash_max_size: 1, proxy_hide_header: 1, proxy_ignore_client_abort: 1, proxy_ignore_headers: 1, proxy_intercept_errors: 1, proxy_max_temp_file_size: 1, proxy_method: 1, proxy_next_upstream: 1, proxy_pass: 1, proxy_pass_header: 1, proxy_pass_request_body: 1, proxy_pass_request_headers: 1, proxy_read_timeout: 1, proxy_redirect: 1, proxy_send_lowat: 1, proxy_send_timeout: 1, proxy_set_body: 1, proxy_set_header: 1, proxy_store: 1, proxy_store_access: 1, proxy_temp_file_write_size: 1, proxy_temp_path: 1, proxy_upstream_fail_timeout: 1, proxy_upstream_max_fails: 1, push_authorized_channels_only: 1, push_channel_group: 1, push_max_channel_id_length: 1, push_max_channel_subscribers: 1, push_max_message_buffer_length: 1, push_max_reserved_memory: 1, push_message_buffer_length: 1, push_message_timeout: 1, push_min_message_buffer_length: 1, push_min_message_recipients: 1, push_publisher: 1, push_store_messages: 1, push_subscriber: 1, push_subscriber_concurrency: 1, random_index: 1, read_ahead: 1, real_ip_header: 1, recursive_error_pages: 1, request_pool_size: 1, reset_timedout_connection: 1, resolver: 1, resolver_timeout: 1, 'return': 1, rewrite: 1, rewrite_log: 1, root: 1, satisfy: 1, satisfy_any: 1, send_lowat: 1, send_timeout: 1, sendfile: 1, sendfile_max_chunk: 1, server: 1, server: 1, server_name: 1, server_name_in_redirect: 1, server_names_hash_bucket_size: 1, server_names_hash_max_size: 1, server_tokens: 1, 'set': 1, set_real_ip_from: 1, source_charset: 1, source_charset: 1, ssi: 1, ssi_ignore_recycled_buffers: 1, ssi_min_file_chunk: 1, ssi_silent_errors: 1, ssi_types: 1, ssi_value_length: 1, ssl: 1, ssl_certificate: 1, ssl_certificate_key: 1, ssl_ciphers: 1, ssl_client_certificate: 1, ssl_crl: 1, ssl_dhparam: 1, ssl_prefer_server_ciphers: 1, ssl_protocols: 1, ssl_session_cache: 1, ssl_session_timeout: 1, ssl_verify_client: 1, ssl_verify_depth: 1, sub_filter: 1, sub_filter_once: 1, sub_filter_types: 1, tcp_nodelay: 1, tcp_nopush: 1, timer_resolution: 1, try_files: 1, types: 1, types_hash_bucket_size: 1, types_hash_max_size: 1, underscores_in_headers: 1, uninitialized_variable_warn: 1, upstream: 1, use: 1, user: 1, userid: 1, userid: 1, userid_domain: 1, userid_domain: 1, userid_expires: 1, userid_expires: 1, userid_mark: 1, userid_name: 1, userid_name: 1, userid_p3p: 1, userid_p3p: 1, userid_path: 1, userid_path: 1, userid_service: 1, userid_service: 1, valid_referers: 1, variables_hash_bucket_size: 1, variables_hash_max_size: 1, worker_connections: 1, worker_cpu_affinity: 1, worker_priority: 1, worker_processes: 1, worker_rlimit_core: 1, worker_rlimit_nofile: 1, worker_rlimit_sigpending: 1, working_directory: 1, xml_entities: 1, xslt_stylesheet: 1, xslt_types: 1}
    },
    {
      className: 'parameters',
      begin: '\\s', end: '[;{]', returnBegin: true, returnEnd: true, noMarkup: true,
      contains: ['comment', 'string', 'regexp', 'number', 'variable', 'built_in']
    },
    // variables (like in perl)
    {
      className: 'variable',
      begin: '\\$\\d+', end: '^'
    },
    {
      className: 'variable',
      begin: '\\${', end: '}'
    },
    {
      className: 'variable',
      begin: '[\\$\\@]' + hljs.UNDERSCORE_IDENT_RE, end: '^',
      relevance: 0
    },
    {
      className: 'built_in',
      begin: '\\b(on|off|yes|no|true|false|none|blocked|debug|info|notice|warn|error|crit|select|permanent|redirect)\\b', end: '^'
    },
    {
      className: 'built_in',
      begin: '\\b(kqueue|rtsig|epoll|poll)\\b|/dev/poll', end: '^'
    },
    // IP
    {
      className: 'number',
      begin: '\\b\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\b', end: '^'
    },
    // units
    {
      className: 'number',
      begin: '\\s\\d+[kKmMgGdshdwy]*\\b', end: '^',
      relevance: 0
    },
    {
      className: 'string',
      begin: '"', end: '"',
      contains: ['escape', 'variable'],
      relevance: 0
    },
    {
      className: 'string',
      begin: "'", end: "'",
      contains: ['escape', 'variable'],
      relevance: 0
    },
    {
      className: 'string',
      begin: '([a-z]+):/', end: '[;\\s]', returnEnd: true
    },
    {
      className: 'regexp',
      begin: "\\s\\^", end: "\\s|{|;", returnEnd: true,
      contains: ['escape', 'variable']
    },
    // regexp locations (~, ~*)
    {
      className: 'regexp',
      begin: "~\\*?\\s+", end: "\\s|{|;", returnEnd: true,
      contains: ['escape', 'variable']
    },
    // *.example.com
    {
      className: 'regexp',
      begin: "\\*(\\.[a-z\\-]+)+", end: "^",
      contains: ['escape', 'variable']
    },
    // sub.example.*
    {
      className: 'regexp',
      begin: "([a-z\\-]+\\.)+\\*", end: "^",
      contains: ['escape', 'variable']
    },
    hljs.BACKSLASH_ESCAPE
  ]
};