diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/METADATA b/METADATA new file mode 100644 index 0000000..223aa00 --- /dev/null +++ b/METADATA @@ -0,0 +1,2 @@ +languages: bash, css, json, lisp, markdown, plaintext, xml, yaml +theme: atom-one-dark diff --git a/api/index.html b/api/index.html new file mode 100644 index 0000000..c948f45 --- /dev/null +++ b/api/index.html @@ -0,0 +1,503 @@ + + + + API + + + + + + + + + + + + + + + + + + + +
Fork me on GitHub + + +

API

STATICL

Functions

function
&KEY (ROOT-DIR \*DEFAULT-PATHNAME-DEFAULTS\*) (STAGE-DIR (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "stage")) + (UIOP/PATHNAME:ENSURE-DIRECTORY-PATHNAME ROOT-DIR))) (ALTER-PIPELINE #'IDENTITY)
function
path title url &key (description "")

Creates a new site skeleton with a few posts.

function
&KEY (ROOT-DIR \*DEFAULT-PATHNAME-DEFAULTS\*) (STAGE-DIR (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "stage")) + (UIOP/PATHNAME:ENSURE-DIRECTORY-PATHNAME ROOT-DIR))) (IN-THREAD T) PORT (INTERFACE "localhost")

STATICL/BUILDER

Functions

function
&KEY (ROOT-DIR \*DEFAULT-PATHNAME-DEFAULTS\*) (STAGE-DIR (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "stage")) + (UIOP/PATHNAME:ENSURE-DIRECTORY-PATHNAME ROOT-DIR))) (ALTER-PIPELINE #'IDENTITY)

STATICL/CLEAN-URLS

Generics

Converts the pathname to the form that should be used to write content to the disk.

If the site has the clean-urls setting enabled, then the filename like some/page.html will be converted +to some/page/index.html. If clean-urls is not enabled, the pathname will remain unchanged.

Converts the URL to the form that should be used on the site.

If the site has the clean-urls setting enabled, then the URL like /some/page.html will be converted +to /some/page/. If clean-urls is not enabled, the URL will remain unchanged.

STATICL/CONTENT

Classes

CONTENT-FROM-FILE

Readers

Absolute pathname to the file read from disk or NIL for content objects which have no source file, like RSS feeds.

CONTENT-TYPE

Readers

CONTENT-WITH-TAGS-MIXIN

Readers

CONTENT-WITH-TITLE-MIXIN

Readers

CONTENT

Readers

reader
(= (make-hash-table :test 'equal))

A hash with additional fields specified in the file's header.

Generics

Should return an absolute pathname to a file where this content item should be rendered.

Returns T if content has a given TAG-NAME. For content which does not support tags, returns NIL.

Returns a list of content objects corresponding to a given content type.

EXCLUDE argument is a list of pathname prefixes to ignore. Pathnames should be given relative to the root dir of the site.

Returns a list of content objects loaded from files.

EXCLUDE argument is a list of pathname prefixes to ignore. Pathnames should be given relative to the root dir of the site.

Writes CONTENT object to the STAGE-DIR.

Writes CONTENT object to the STREAM using given FORMAT.

Functions

function
content key value &key override-slot

Changes metadata dictionary by adding a new item with key KEY.

Key should be a string and it is automatically downcased.

Note, this way, you can override content's object slots. +To prevent accidential override, function will raise an error +in case if a slot named KEY exists in the object CONTENT. +To force override provide OVERRIDE-SLOT argument.

STATICL/CONTENT-PIPELINE

Classes

LOAD-CONTENT

Readers

Functions

Reads content from the disk.

By default only post and page files are loaded. But this list could be extended if you'll define +a custom site class and a method for staticl/content:supported-content-types generic-function.

STATICL/CONTENT/HTML-CONTENT

Generics

Returns a content as HTML string.

Returns an excerpt of full content as HTML string.

Returns T if there is more content than was returned by content-html-excerpt generic-function.

STATICL/CONTENT/PAGE

Classes

PAGE-TYPE

PAGE

STATICL/CONTENT/POST

Classes

POST-TYPE

POST

This is the class for a page which will not be included into the feed and indices.

Functions

Returns T if given object is a content of post class.

STATICL/CONTENT/READER

Functions

function
file &key (separator \*default-metadata-separator\*)

Returns a plist of metadata from FILE with :TEXT holding the content going after the SEPARATOR.

STATICL/CURRENT-ROOT

Functions

Macros

STATICL/FEEDS/ATOM

Classes

ATOM

Functions

function
&KEY (TARGET-PATH #P"atom.xml") (LIMIT 10)

Creates an XML feed in Atom format at TARGET-PATH.

Only a LIMIT latest posts are included into the feed.

STATICL/FEEDS/RSS

Classes

RSS

Functions

function
&KEY (TARGET-PATH #P"rss.xml") (LIMIT 10)

Creates an XML feed in Rss format at TARGET-PATH.

Only a LIMIT latest posts are included into the feed.

STATICL/FILTER

Classes

FILTER

Readers

Macros

macro
(&key path tags invert) &body pipeline

Filters input content objects and processes them using pipeline items given as a body.

Arguments:

  • PATH: result will contain only items read from the given path.

  • TAGS: result will contain only items having all given tags.

  • INVERT: inverts effect of the filter.

  • PIPELINE: any number of function calls returning pipeline nodes.

Note: Right now, all new items generated by PIPELINE given to the filter macro +are added to the toplevel list and stay invisible to the sebsequent pipeline nodes. +The same applicable to content deletion.

STATICL/FORMAT

Generics

STATICL/INDEX/BASE

Classes

BASE-INDEX

Readers

Relative pathname to a directory where all pages will be generated.

INDEX-PAGE

Readers

Relative pathname to a file with page content.

A title of the page.

Accessors

STATICL/INDEX/PAGINATED

Classes

PAGINATED-INDEX

Readers

A callback to change page titles.

Accepts single argument - a page number and should return a pathname relative to the site's root. +By default, it returns index.html for the first page and page-2.html, page-3.html for others.

If site has "clean urls" setting enabled, then additional transformation to the pathname will be +applied automatically.

A callback to change page titles.

Accepts single argument - a page number and should return a string.

For example, here is how you can translate page title into a russian:

(paginated-index :target-path #P"ru/"
+                 :page-title-fn (lambda (num)
+                                  (fmt "Страница ~A" num)))

Functions

function
&rest initargs &key target-path page-size template page-title-fn page-filename-fn

Creates additional HTML files with post's excerpts grouped by PAGE-SIZE items.

By default index.html, page-2.html, page-3.html, etc. filenames are used, but this +can be overriden by PAGE-FILENAME-FN argument.

The same way page title may be overriden by providing a function as PAGE-TITLE-FN argument.

Arguments:

PAGE-FILENAME-FN:

A callback to change page titles.

Accepts single argument - a page number and should return a pathname relative to the site's root. +By default, it returns index.html for the first page and page-2.html, page-3.html for others.

If site has "clean urls" setting enabled, then additional transformation to the pathname will be +applied automatically.

PAGE-TITLE-FN:

A callback to change page titles.

Accepts single argument - a page number and should return a string.

For example, here is how you can translate page title into a russian:

(paginated-index :target-path #P"ru/"
+                 :page-title-fn (lambda (num)
+                                  (fmt "Страница ~A" num)))

STATICL/INDEX/TAGS

Classes

TAGS-INDEX

Readers

A callback to change page titles.

Accepts single argument - a tag name and should return a pathname

By default, for tag "foo-bar" it returns foo-bar.html.

If site has "clean urls" setting enabled, then additional +transformation to the pathname will be +applied automatically.

A callback to change page titles.

Accepts single argument - a tag name and should return a string.

For example, here is how you can translate page title into a russian:

(tags-index :target-path #P"ru/"
+            :page-title-fn (lambda (tag-name)
+                             (fmt "Записи с тегом ~A" tag-name)))

Functions

function
&rest initargs &key target-path page-size template page-title-fn page-filename-fn

Creates additional HTML files with post's excerpts grouped by tag names.

By default some.html, another.html filenames are used, but this +can be overriden by PAGE-FILENAME-FN argument.

The same way page title may be overriden by providing a function as PAGE-TITLE-FN argument.

Arguments:

PAGE-FILENAME-FN:

A callback to change page titles.

Accepts single argument - a tag name and should return a pathname

By default, for tag "foo-bar" it returns foo-bar.html.

If site has "clean urls" setting enabled, then additional +transformation to the pathname will be +applied automatically.

PAGE-TITLE-FN:

A callback to change page titles.

Accepts single argument - a tag name and should return a string.

For example, here is how you can translate page title into a russian:

(tags-index :target-path #P"ru/"
+            :page-title-fn (lambda (tag-name)
+                             (fmt "Записи с тегом ~A" tag-name)))

STATICL/INJECTIONS

Classes

CONTENT-WITH-INJECTIONS-MIXIN

Readers

Generics

Adds a piece of HTML to the list of pieces to be inserted to a given point when content will be rendered to a file.

STATICL/LINKS/LINK

Classes

LINK

Readers

Functions

Creates a link to the given content piece.

When such object is passed to the template, it is resolved to a +page URL and title.

STATICL/LINKS/PREV-NEXT

Classes

PREV-NEXT-LINKS

Functions

Creates a links between pages.

Links are added to the content item's metadata and available in templates as +content.prev.url and content.next.url variables.

STATICL/NAVIGATION

Classes

ITEM

Readers

MENU

Readers

Functions

STATICL/PIPELINE

Generics

generic-function
site pipeline-node content-items

A method for this generic function should process CONTENT-ITEMS - a list of conten items +produced by a previous pipeline nodes.

During the execution, method can call produce-item or remove-item functions to add a new content +or to remove some content item.

Functions

function
site &key (alter-pipeline #'identity)

STATICL/PLUGIN

Classes

PLUGIN

Functions

STATICL/PLUGINS/DISQUS

Classes

DISQUS

Readers

reader
(:SHORTNAME = (ERROR "Shortname should be given."))

Functions

Enables Disqus on the page.

To make it work, you have to register your site at Disqus and provide a short site name to the function.

STATICL/PLUGINS/MATHJAX

Classes

MATHJAX

Readers

Functions

function
&KEY FORCE (TAG-NAME "math")

Enables MathJAX on the page if it's content has tag equal to the TAG-NAME or if FORCE argument was given.

STATICL/PLUGINS/SITEMAP

Classes

SITEMAP

Functions

STATICL/RSYNC

Classes

RSYNC

Readers

Functions

STATICL/SERVER

Functions

function
&KEY (ROOT-DIR \*DEFAULT-PATHNAME-DEFAULTS\*) (STAGE-DIR (MERGE-PATHNAMES (MAKE-PATHNAME :DIRECTORY '(:RELATIVE "stage")) + (UIOP/PATHNAME:ENSURE-DIRECTORY-PATHNAME ROOT-DIR))) (IN-THREAD T) PORT (INTERFACE "localhost")

STATICL/SITE

Classes

SITE

Readers

Generate some-page/index.html instead of some-page.html to make URLs look like https://my-site.com/some-page/ instead of https://my-site.com/some-page.html

Site's charset. By default it is UTF-8.

A directory pathname where .staticlrc file can be found.

Site's description.

Site's navigation.

A list of pipline nodes

A theme object for the site.

Site's title.

Functions

STATICL/SKELETON

Functions

function
path title url &key (description "")

Creates a new site skeleton with a few posts.

STATICL/TAG

Classes

TAG

Readers

STATICL/THEME

Classes

THEME

Readers

Generics

Copies static files such as CSS, JS, images into the STAGE-DIR.

Usually it is enough to define a method for list-static generic-function.

Returns a list of static files such as CSS, JS, images.

Each list item should be a list of two items where first +item is an absolute pathname and second is a pathname relative +to the root of the site.

generic-function
theme template-name vars stream

Renders fills template named TEMPLATE-NAME with given VARS and renders into a given STREAM.

  • NAME argument is a string.

  • VARS argument is a hash table with string keys.

Fills a hash-table given as HASH argument with variables for filling a template.

If hash is NIL, then a new hash-table should be allocated with EQUAL :TEST argument.

Returned hash-table will be used for rendering a template for an OBJECT.

STATICL/URL

Generics

generic-function
site obj &key full &allow-other-keys

Returns a full object URL. +A method should return an relative URL, but if case if FULL argument was given, +the full url with schema and domain will be returned.

Note a call to this method should happen in a context of the with-base-url macro, +because it is always return a path from the site's root even if FULL is not given +(in this case return only the path without a domain).

You may wonder: "Why does we bother to return a path without a domain?" +It is much easier to service such static site locally for debugging purpose, because +you don't have to setup a web server and dns resolver.

Actually you will need to use FULL argument only in a rare case when you really need +and absolute URL, for example in an RSS feed.

Macros

STATICL/UTILS

Functions

function
plist &rest normalizers-plist &key &allow-other-keys

Returns a new list where each value is replaced with results of call of normalizing functions.

For example:

CL-USER> (normalize-plist '(:foo "Bar" :blah 123)
+                          :foo (lambda (value)
+                                 (alexandria:make-keyword (string-upcase value))))
+(LIST :FOO :BAR :BLAH 123)

Macros

macro
(filename root-path &key file-type) &body body

For each file under ROOT-PATH, run BODY. If FILE-TYPE is provided, only run +BODY on files that match the given extension.

+
+
+ + \ No newline at end of file diff --git a/doctools.js b/doctools.js new file mode 100644 index 0000000..8cbf1b1 --- /dev/null +++ b/doctools.js @@ -0,0 +1,323 @@ +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + if (DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) { + this.initOnKeyListeners(); + } + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n === 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated === 'undefined') + return string; + return (typeof translated === 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated === 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + * see: https://bugzilla.mozilla.org/show_bug.cgi?id=645075 + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) === 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this === '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + }, + + initOnKeyListeners: function() { + $(document).keydown(function(event) { + var activeElementType = document.activeElement.tagName; + // don't navigate when in search box, textarea, dropdown or button + if (activeElementType !== 'TEXTAREA' && activeElementType !== 'INPUT' && activeElementType !== 'SELECT' + && activeElementType !== 'BUTTON' && !event.altKey && !event.ctrlKey && !event.metaKey + && !event.shiftKey) { + switch (event.keyCode) { + case 37: // left + var prevHref = $('link[rel="prev"]').prop('href'); + if (prevHref) { + window.location.href = prevHref; + return false; + } + break; + case 39: // right + var nextHref = $('link[rel="next"]').prop('href'); + if (nextHref) { + window.location.href = nextHref; + return false; + } + break; + } + } + }); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); diff --git a/highlight.min.css b/highlight.min.css new file mode 100644 index 0000000..5344ee3 --- /dev/null +++ b/highlight.min.css @@ -0,0 +1 @@ +pre code.hljs{display:block;overflow-x:auto;padding:1em}code.hljs{padding:3px 5px}.hljs{color:#abb2bf;background:#282c34}.hljs-comment,.hljs-quote{color:#5c6370;font-style:italic}.hljs-doctag,.hljs-formula,.hljs-keyword{color:#c678dd}.hljs-deletion,.hljs-name,.hljs-section,.hljs-selector-tag,.hljs-subst{color:#e06c75}.hljs-literal{color:#56b6c2}.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#98c379}.hljs-attr,.hljs-number,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-pseudo,.hljs-template-variable,.hljs-type,.hljs-variable{color:#d19a66}.hljs-bullet,.hljs-link,.hljs-meta,.hljs-selector-id,.hljs-symbol,.hljs-title{color:#61aeee}.hljs-built_in,.hljs-class .hljs-title,.hljs-title.class_{color:#e6c07b}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:700}.hljs-link{text-decoration:underline} \ No newline at end of file diff --git a/highlight.min.js b/highlight.min.js new file mode 100644 index 0000000..79e2864 --- /dev/null +++ b/highlight.min.js @@ -0,0 +1,468 @@ +/*! + Highlight.js v11.10.0 (git: 366a8bd012) + (c) 2006-2024 Josh Goebel and other contributors + License: BSD-3-Clause + */ +var hljs=function(){"use strict";function e(t){ +return t instanceof Map?t.clear=t.delete=t.set=()=>{ +throw Error("map is read-only")}:t instanceof Set&&(t.add=t.clear=t.delete=()=>{ +throw Error("set is read-only") +}),Object.freeze(t),Object.getOwnPropertyNames(t).forEach((n=>{ +const i=t[n],s=typeof i;"object"!==s&&"function"!==s||Object.isFrozen(i)||e(i) +})),t}class t{constructor(e){ +void 0===e.data&&(e.data={}),this.data=e.data,this.isMatchIgnored=!1} +ignoreMatch(){this.isMatchIgnored=!0}}function n(e){ +return e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'") +}function i(e,...t){const n=Object.create(null);for(const t in e)n[t]=e[t] +;return t.forEach((e=>{for(const t in e)n[t]=e[t]})),n}const s=e=>!!e.scope +;class o{constructor(e,t){ +this.buffer="",this.classPrefix=t.classPrefix,e.walk(this)}addText(e){ +this.buffer+=n(e)}openNode(e){if(!s(e))return;const t=((e,{prefix:t})=>{ +if(e.startsWith("language:"))return e.replace("language:","language-") +;if(e.includes(".")){const n=e.split(".") +;return[`${t}${n.shift()}`,...n.map(((e,t)=>`${e}${"_".repeat(t+1)}`))].join(" ") +}return`${t}${e}`})(e.scope,{prefix:this.classPrefix});this.span(t)} +closeNode(e){s(e)&&(this.buffer+="")}value(){return this.buffer}span(e){ +this.buffer+=``}}const r=(e={})=>{const t={children:[]} +;return Object.assign(t,e),t};class a{constructor(){ +this.rootNode=r(),this.stack=[this.rootNode]}get top(){ +return this.stack[this.stack.length-1]}get root(){return this.rootNode}add(e){ +this.top.children.push(e)}openNode(e){const t=r({scope:e}) +;this.add(t),this.stack.push(t)}closeNode(){ +if(this.stack.length>1)return this.stack.pop()}closeAllNodes(){ +for(;this.closeNode(););}toJSON(){return JSON.stringify(this.rootNode,null,4)} +walk(e){return this.constructor._walk(e,this.rootNode)}static _walk(e,t){ +return"string"==typeof t?e.addText(t):t.children&&(e.openNode(t), +t.children.forEach((t=>this._walk(e,t))),e.closeNode(t)),e}static _collapse(e){ +"string"!=typeof e&&e.children&&(e.children.every((e=>"string"==typeof e))?e.children=[e.children.join("")]:e.children.forEach((e=>{ +a._collapse(e)})))}}class c extends a{constructor(e){super(),this.options=e} +addText(e){""!==e&&this.add(e)}startScope(e){this.openNode(e)}endScope(){ +this.closeNode()}__addSublanguage(e,t){const n=e.root +;t&&(n.scope="language:"+t),this.add(n)}toHTML(){ +return new o(this,this.options).value()}finalize(){ +return this.closeAllNodes(),!0}}function l(e){ +return e?"string"==typeof e?e:e.source:null}function g(e){return h("(?=",e,")")} +function u(e){return h("(?:",e,")*")}function d(e){return h("(?:",e,")?")} +function h(...e){return e.map((e=>l(e))).join("")}function f(...e){const t=(e=>{ +const t=e[e.length-1] +;return"object"==typeof t&&t.constructor===Object?(e.splice(e.length-1,1),t):{} +})(e);return"("+(t.capture?"":"?:")+e.map((e=>l(e))).join("|")+")"} +function p(e){return RegExp(e.toString()+"|").exec("").length-1} +const b=/\[(?:[^\\\]]|\\.)*\]|\(\??|\\([1-9][0-9]*)|\\./ +;function m(e,{joinWith:t}){let n=0;return e.map((e=>{n+=1;const t=n +;let i=l(e),s="";for(;i.length>0;){const e=b.exec(i);if(!e){s+=i;break} +s+=i.substring(0,e.index), +i=i.substring(e.index+e[0].length),"\\"===e[0][0]&&e[1]?s+="\\"+(Number(e[1])+t):(s+=e[0], +"("===e[0]&&n++)}return s})).map((e=>`(${e})`)).join(t)} +const E="[a-zA-Z]\\w*",x="[a-zA-Z_]\\w*",w="\\b\\d+(\\.\\d+)?",y="(-?)(\\b0[xX][a-fA-F0-9]+|(\\b\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)",_="\\b(0b[01]+)",O={ +begin:"\\\\[\\s\\S]",relevance:0},v={scope:"string",begin:"'",end:"'", +illegal:"\\n",contains:[O]},k={scope:"string",begin:'"',end:'"',illegal:"\\n", +contains:[O]},N=(e,t,n={})=>{const s=i({scope:"comment",begin:e,end:t, +contains:[]},n);s.contains.push({scope:"doctag", +begin:"[ ]*(?=(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):)", +end:/(TODO|FIXME|NOTE|BUG|OPTIMIZE|HACK|XXX):/,excludeBegin:!0,relevance:0}) +;const o=f("I","a","is","so","us","to","at","if","in","it","on",/[A-Za-z]+['](d|ve|re|ll|t|s|n)/,/[A-Za-z]+[-][a-z]+/,/[A-Za-z][a-z]{2,}/) +;return s.contains.push({begin:h(/[ ]+/,"(",o,/[.]?[:]?([.][ ]|[ ])/,"){3}")}),s +},S=N("//","$"),M=N("/\\*","\\*/"),R=N("#","$");var j=Object.freeze({ +__proto__:null,APOS_STRING_MODE:v,BACKSLASH_ESCAPE:O,BINARY_NUMBER_MODE:{ +scope:"number",begin:_,relevance:0},BINARY_NUMBER_RE:_,COMMENT:N, +C_BLOCK_COMMENT_MODE:M,C_LINE_COMMENT_MODE:S,C_NUMBER_MODE:{scope:"number", +begin:y,relevance:0},C_NUMBER_RE:y,END_SAME_AS_BEGIN:e=>Object.assign(e,{ +"on:begin":(e,t)=>{t.data._beginMatch=e[1]},"on:end":(e,t)=>{ +t.data._beginMatch!==e[1]&&t.ignoreMatch()}}),HASH_COMMENT_MODE:R,IDENT_RE:E, +MATCH_NOTHING_RE:/\b\B/,METHOD_GUARD:{begin:"\\.\\s*"+x,relevance:0}, +NUMBER_MODE:{scope:"number",begin:w,relevance:0},NUMBER_RE:w, +PHRASAL_WORDS_MODE:{ +begin:/\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\b/ +},QUOTE_STRING_MODE:k,REGEXP_MODE:{scope:"regexp",begin:/\/(?=[^/\n]*\/)/, +end:/\/[gimuy]*/,contains:[O,{begin:/\[/,end:/\]/,relevance:0,contains:[O]}]}, +RE_STARTERS_RE:"!|!=|!==|%|%=|&|&&|&=|\\*|\\*=|\\+|\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\?|\\[|\\{|\\(|\\^|\\^=|\\||\\|=|\\|\\||~", +SHEBANG:(e={})=>{const t=/^#![ ]*\// +;return e.binary&&(e.begin=h(t,/.*\b/,e.binary,/\b.*/)),i({scope:"meta",begin:t, +end:/$/,relevance:0,"on:begin":(e,t)=>{0!==e.index&&t.ignoreMatch()}},e)}, +TITLE_MODE:{scope:"title",begin:E,relevance:0},UNDERSCORE_IDENT_RE:x, +UNDERSCORE_TITLE_MODE:{scope:"title",begin:x,relevance:0}});function A(e,t){ +"."===e.input[e.index-1]&&t.ignoreMatch()}function I(e,t){ +void 0!==e.className&&(e.scope=e.className,delete e.className)}function T(e,t){ +t&&e.beginKeywords&&(e.begin="\\b("+e.beginKeywords.split(" ").join("|")+")(?!\\.)(?=\\b|\\s)", +e.__beforeBegin=A,e.keywords=e.keywords||e.beginKeywords,delete e.beginKeywords, +void 0===e.relevance&&(e.relevance=0))}function L(e,t){ +Array.isArray(e.illegal)&&(e.illegal=f(...e.illegal))}function B(e,t){ +if(e.match){ +if(e.begin||e.end)throw Error("begin & end are not supported with match") +;e.begin=e.match,delete e.match}}function P(e,t){ +void 0===e.relevance&&(e.relevance=1)}const D=(e,t)=>{if(!e.beforeMatch)return +;if(e.starts)throw Error("beforeMatch cannot be used with starts") +;const n=Object.assign({},e);Object.keys(e).forEach((t=>{delete e[t] +})),e.keywords=n.keywords,e.begin=h(n.beforeMatch,g(n.begin)),e.starts={ +relevance:0,contains:[Object.assign(n,{endsParent:!0})] +},e.relevance=0,delete n.beforeMatch +},H=["of","and","for","in","not","or","if","then","parent","list","value"],C="keyword" +;function $(e,t,n=C){const i=Object.create(null) +;return"string"==typeof e?s(n,e.split(" ")):Array.isArray(e)?s(n,e):Object.keys(e).forEach((n=>{ +Object.assign(i,$(e[n],t,n))})),i;function s(e,n){ +t&&(n=n.map((e=>e.toLowerCase()))),n.forEach((t=>{const n=t.split("|") +;i[n[0]]=[e,U(n[0],n[1])]}))}}function U(e,t){ +return t?Number(t):(e=>H.includes(e.toLowerCase()))(e)?0:1}const z={},W=e=>{ +console.error(e)},X=(e,...t)=>{console.log("WARN: "+e,...t)},G=(e,t)=>{ +z[`${e}/${t}`]||(console.log(`Deprecated as of ${e}. ${t}`),z[`${e}/${t}`]=!0) +},K=Error();function F(e,t,{key:n}){let i=0;const s=e[n],o={},r={} +;for(let e=1;e<=t.length;e++)r[e+i]=s[e],o[e+i]=!0,i+=p(t[e-1]) +;e[n]=r,e[n]._emit=o,e[n]._multi=!0}function Z(e){(e=>{ +e.scope&&"object"==typeof e.scope&&null!==e.scope&&(e.beginScope=e.scope, +delete e.scope)})(e),"string"==typeof e.beginScope&&(e.beginScope={ +_wrap:e.beginScope}),"string"==typeof e.endScope&&(e.endScope={_wrap:e.endScope +}),(e=>{if(Array.isArray(e.begin)){ +if(e.skip||e.excludeBegin||e.returnBegin)throw W("skip, excludeBegin, returnBegin not compatible with beginScope: {}"), +K +;if("object"!=typeof e.beginScope||null===e.beginScope)throw W("beginScope must be object"), +K;F(e,e.begin,{key:"beginScope"}),e.begin=m(e.begin,{joinWith:""})}})(e),(e=>{ +if(Array.isArray(e.end)){ +if(e.skip||e.excludeEnd||e.returnEnd)throw W("skip, excludeEnd, returnEnd not compatible with endScope: {}"), +K +;if("object"!=typeof e.endScope||null===e.endScope)throw W("endScope must be object"), +K;F(e,e.end,{key:"endScope"}),e.end=m(e.end,{joinWith:""})}})(e)}function V(e){ +function t(t,n){ +return RegExp(l(t),"m"+(e.case_insensitive?"i":"")+(e.unicodeRegex?"u":"")+(n?"g":"")) +}class n{constructor(){ +this.matchIndexes={},this.regexes=[],this.matchAt=1,this.position=0} +addRule(e,t){ +t.position=this.position++,this.matchIndexes[this.matchAt]=t,this.regexes.push([t,e]), +this.matchAt+=p(e)+1}compile(){0===this.regexes.length&&(this.exec=()=>null) +;const e=this.regexes.map((e=>e[1]));this.matcherRe=t(m(e,{joinWith:"|" +}),!0),this.lastIndex=0}exec(e){this.matcherRe.lastIndex=this.lastIndex +;const t=this.matcherRe.exec(e);if(!t)return null +;const n=t.findIndex(((e,t)=>t>0&&void 0!==e)),i=this.matchIndexes[n] +;return t.splice(0,n),Object.assign(t,i)}}class s{constructor(){ +this.rules=[],this.multiRegexes=[], +this.count=0,this.lastIndex=0,this.regexIndex=0}getMatcher(e){ +if(this.multiRegexes[e])return this.multiRegexes[e];const t=new n +;return this.rules.slice(e).forEach((([e,n])=>t.addRule(e,n))), +t.compile(),this.multiRegexes[e]=t,t}resumingScanAtSamePosition(){ +return 0!==this.regexIndex}considerAll(){this.regexIndex=0}addRule(e,t){ +this.rules.push([e,t]),"begin"===t.type&&this.count++}exec(e){ +const t=this.getMatcher(this.regexIndex);t.lastIndex=this.lastIndex +;let n=t.exec(e) +;if(this.resumingScanAtSamePosition())if(n&&n.index===this.lastIndex);else{ +const t=this.getMatcher(0);t.lastIndex=this.lastIndex+1,n=t.exec(e)} +return n&&(this.regexIndex+=n.position+1, +this.regexIndex===this.count&&this.considerAll()),n}} +if(e.compilerExtensions||(e.compilerExtensions=[]), +e.contains&&e.contains.includes("self"))throw Error("ERR: contains `self` is not supported at the top-level of a language. See documentation.") +;return e.classNameAliases=i(e.classNameAliases||{}),function n(o,r){const a=o +;if(o.isCompiled)return a +;[I,B,Z,D].forEach((e=>e(o,r))),e.compilerExtensions.forEach((e=>e(o,r))), +o.__beforeBegin=null,[T,L,P].forEach((e=>e(o,r))),o.isCompiled=!0;let c=null +;return"object"==typeof o.keywords&&o.keywords.$pattern&&(o.keywords=Object.assign({},o.keywords), +c=o.keywords.$pattern, +delete o.keywords.$pattern),c=c||/\w+/,o.keywords&&(o.keywords=$(o.keywords,e.case_insensitive)), +a.keywordPatternRe=t(c,!0), +r&&(o.begin||(o.begin=/\B|\b/),a.beginRe=t(a.begin),o.end||o.endsWithParent||(o.end=/\B|\b/), +o.end&&(a.endRe=t(a.end)), +a.terminatorEnd=l(a.end)||"",o.endsWithParent&&r.terminatorEnd&&(a.terminatorEnd+=(o.end?"|":"")+r.terminatorEnd)), +o.illegal&&(a.illegalRe=t(o.illegal)), +o.contains||(o.contains=[]),o.contains=[].concat(...o.contains.map((e=>(e=>(e.variants&&!e.cachedVariants&&(e.cachedVariants=e.variants.map((t=>i(e,{ +variants:null},t)))),e.cachedVariants?e.cachedVariants:q(e)?i(e,{ +starts:e.starts?i(e.starts):null +}):Object.isFrozen(e)?i(e):e))("self"===e?o:e)))),o.contains.forEach((e=>{n(e,a) +})),o.starts&&n(o.starts,r),a.matcher=(e=>{const t=new s +;return e.contains.forEach((e=>t.addRule(e.begin,{rule:e,type:"begin" +}))),e.terminatorEnd&&t.addRule(e.terminatorEnd,{type:"end" +}),e.illegal&&t.addRule(e.illegal,{type:"illegal"}),t})(a),a}(e)}function q(e){ +return!!e&&(e.endsWithParent||q(e.starts))}class J extends Error{ +constructor(e,t){super(e),this.name="HTMLInjectionError",this.html=t}} +const Y=n,Q=i,ee=Symbol("nomatch"),te=n=>{ +const i=Object.create(null),s=Object.create(null),o=[];let r=!0 +;const a="Could not find the language '{}', did you forget to load/include a language module?",l={ +disableAutodetect:!0,name:"Plain text",contains:[]};let p={ +ignoreUnescapedHTML:!1,throwUnescapedHTML:!1,noHighlightRe:/^(no-?highlight)$/i, +languageDetectRe:/\blang(?:uage)?-([\w-]+)\b/i,classPrefix:"hljs-", +cssSelector:"pre code",languages:null,__emitter:c};function b(e){ +return p.noHighlightRe.test(e)}function m(e,t,n){let i="",s="" +;"object"==typeof t?(i=e, +n=t.ignoreIllegals,s=t.language):(G("10.7.0","highlight(lang, code, ...args) has been deprecated."), +G("10.7.0","Please use highlight(code, options) instead.\nhttps://github.com/highlightjs/highlight.js/issues/2277"), +s=e,i=t),void 0===n&&(n=!0);const o={code:i,language:s};N("before:highlight",o) +;const r=o.result?o.result:E(o.language,o.code,n) +;return r.code=o.code,N("after:highlight",r),r}function E(e,n,s,o){ +const c=Object.create(null);function l(){if(!N.keywords)return void M.addText(R) +;let e=0;N.keywordPatternRe.lastIndex=0;let t=N.keywordPatternRe.exec(R),n="" +;for(;t;){n+=R.substring(e,t.index) +;const s=_.case_insensitive?t[0].toLowerCase():t[0],o=(i=s,N.keywords[i]);if(o){ +const[e,i]=o +;if(M.addText(n),n="",c[s]=(c[s]||0)+1,c[s]<=7&&(j+=i),e.startsWith("_"))n+=t[0];else{ +const n=_.classNameAliases[e]||e;u(t[0],n)}}else n+=t[0] +;e=N.keywordPatternRe.lastIndex,t=N.keywordPatternRe.exec(R)}var i +;n+=R.substring(e),M.addText(n)}function g(){null!=N.subLanguage?(()=>{ +if(""===R)return;let e=null;if("string"==typeof N.subLanguage){ +if(!i[N.subLanguage])return void M.addText(R) +;e=E(N.subLanguage,R,!0,S[N.subLanguage]),S[N.subLanguage]=e._top +}else e=x(R,N.subLanguage.length?N.subLanguage:null) +;N.relevance>0&&(j+=e.relevance),M.__addSublanguage(e._emitter,e.language) +})():l(),R=""}function u(e,t){ +""!==e&&(M.startScope(t),M.addText(e),M.endScope())}function d(e,t){let n=1 +;const i=t.length-1;for(;n<=i;){if(!e._emit[n]){n++;continue} +const i=_.classNameAliases[e[n]]||e[n],s=t[n];i?u(s,i):(R=s,l(),R=""),n++}} +function h(e,t){ +return e.scope&&"string"==typeof e.scope&&M.openNode(_.classNameAliases[e.scope]||e.scope), +e.beginScope&&(e.beginScope._wrap?(u(R,_.classNameAliases[e.beginScope._wrap]||e.beginScope._wrap), +R=""):e.beginScope._multi&&(d(e.beginScope,t),R="")),N=Object.create(e,{parent:{ +value:N}}),N}function f(e,n,i){let s=((e,t)=>{const n=e&&e.exec(t) +;return n&&0===n.index})(e.endRe,i);if(s){if(e["on:end"]){const i=new t(e) +;e["on:end"](n,i),i.isMatchIgnored&&(s=!1)}if(s){ +for(;e.endsParent&&e.parent;)e=e.parent;return e}} +if(e.endsWithParent)return f(e.parent,n,i)}function b(e){ +return 0===N.matcher.regexIndex?(R+=e[0],1):(T=!0,0)}function m(e){ +const t=e[0],i=n.substring(e.index),s=f(N,e,i);if(!s)return ee;const o=N +;N.endScope&&N.endScope._wrap?(g(), +u(t,N.endScope._wrap)):N.endScope&&N.endScope._multi?(g(), +d(N.endScope,e)):o.skip?R+=t:(o.returnEnd||o.excludeEnd||(R+=t), +g(),o.excludeEnd&&(R=t));do{ +N.scope&&M.closeNode(),N.skip||N.subLanguage||(j+=N.relevance),N=N.parent +}while(N!==s.parent);return s.starts&&h(s.starts,e),o.returnEnd?0:t.length} +let w={};function y(i,o){const a=o&&o[0];if(R+=i,null==a)return g(),0 +;if("begin"===w.type&&"end"===o.type&&w.index===o.index&&""===a){ +if(R+=n.slice(o.index,o.index+1),!r){const t=Error(`0 width match regex (${e})`) +;throw t.languageName=e,t.badRule=w.rule,t}return 1} +if(w=o,"begin"===o.type)return(e=>{ +const n=e[0],i=e.rule,s=new t(i),o=[i.__beforeBegin,i["on:begin"]] +;for(const t of o)if(t&&(t(e,s),s.isMatchIgnored))return b(n) +;return i.skip?R+=n:(i.excludeBegin&&(R+=n), +g(),i.returnBegin||i.excludeBegin||(R=n)),h(i,e),i.returnBegin?0:n.length})(o) +;if("illegal"===o.type&&!s){ +const e=Error('Illegal lexeme "'+a+'" for mode "'+(N.scope||"")+'"') +;throw e.mode=N,e}if("end"===o.type){const e=m(o);if(e!==ee)return e} +if("illegal"===o.type&&""===a)return 1 +;if(I>1e5&&I>3*o.index)throw Error("potential infinite loop, way more iterations than matches") +;return R+=a,a.length}const _=O(e) +;if(!_)throw W(a.replace("{}",e)),Error('Unknown language: "'+e+'"') +;const v=V(_);let k="",N=o||v;const S={},M=new p.__emitter(p);(()=>{const e=[] +;for(let t=N;t!==_;t=t.parent)t.scope&&e.unshift(t.scope) +;e.forEach((e=>M.openNode(e)))})();let R="",j=0,A=0,I=0,T=!1;try{ +if(_.__emitTokens)_.__emitTokens(n,M);else{for(N.matcher.considerAll();;){ +I++,T?T=!1:N.matcher.considerAll(),N.matcher.lastIndex=A +;const e=N.matcher.exec(n);if(!e)break;const t=y(n.substring(A,e.index),e) +;A=e.index+t}y(n.substring(A))}return M.finalize(),k=M.toHTML(),{language:e, +value:k,relevance:j,illegal:!1,_emitter:M,_top:N}}catch(t){ +if(t.message&&t.message.includes("Illegal"))return{language:e,value:Y(n), +illegal:!0,relevance:0,_illegalBy:{message:t.message,index:A, +context:n.slice(A-100,A+100),mode:t.mode,resultSoFar:k},_emitter:M};if(r)return{ +language:e,value:Y(n),illegal:!1,relevance:0,errorRaised:t,_emitter:M,_top:N} +;throw t}}function x(e,t){t=t||p.languages||Object.keys(i);const n=(e=>{ +const t={value:Y(e),illegal:!1,relevance:0,_top:l,_emitter:new p.__emitter(p)} +;return t._emitter.addText(e),t})(e),s=t.filter(O).filter(k).map((t=>E(t,e,!1))) +;s.unshift(n);const o=s.sort(((e,t)=>{ +if(e.relevance!==t.relevance)return t.relevance-e.relevance +;if(e.language&&t.language){if(O(e.language).supersetOf===t.language)return 1 +;if(O(t.language).supersetOf===e.language)return-1}return 0})),[r,a]=o,c=r +;return c.secondBest=a,c}function w(e){let t=null;const n=(e=>{ +let t=e.className+" ";t+=e.parentNode?e.parentNode.className:"" +;const n=p.languageDetectRe.exec(t);if(n){const t=O(n[1]) +;return t||(X(a.replace("{}",n[1])), +X("Falling back to no-highlight mode for this block.",e)),t?n[1]:"no-highlight"} +return t.split(/\s+/).find((e=>b(e)||O(e)))})(e);if(b(n))return +;if(N("before:highlightElement",{el:e,language:n +}),e.dataset.highlighted)return void console.log("Element previously highlighted. To highlight again, first unset `dataset.highlighted`.",e) +;if(e.children.length>0&&(p.ignoreUnescapedHTML||(console.warn("One of your code blocks includes unescaped HTML. This is a potentially serious security risk."), +console.warn("https://github.com/highlightjs/highlight.js/wiki/security"), +console.warn("The element with unescaped HTML:"), +console.warn(e)),p.throwUnescapedHTML))throw new J("One of your code blocks includes unescaped HTML.",e.innerHTML) +;t=e;const i=t.textContent,o=n?m(i,{language:n,ignoreIllegals:!0}):x(i) +;e.innerHTML=o.value,e.dataset.highlighted="yes",((e,t,n)=>{const i=t&&s[t]||n +;e.classList.add("hljs"),e.classList.add("language-"+i) +})(e,n,o.language),e.result={language:o.language,re:o.relevance, +relevance:o.relevance},o.secondBest&&(e.secondBest={ +language:o.secondBest.language,relevance:o.secondBest.relevance +}),N("after:highlightElement",{el:e,result:o,text:i})}let y=!1;function _(){ +"loading"!==document.readyState?document.querySelectorAll(p.cssSelector).forEach(w):y=!0 +}function O(e){return e=(e||"").toLowerCase(),i[e]||i[s[e]]} +function v(e,{languageName:t}){"string"==typeof e&&(e=[e]),e.forEach((e=>{ +s[e.toLowerCase()]=t}))}function k(e){const t=O(e) +;return t&&!t.disableAutodetect}function N(e,t){const n=e;o.forEach((e=>{ +e[n]&&e[n](t)}))} +"undefined"!=typeof window&&window.addEventListener&&window.addEventListener("DOMContentLoaded",(()=>{ +y&&_()}),!1),Object.assign(n,{highlight:m,highlightAuto:x,highlightAll:_, +highlightElement:w, +highlightBlock:e=>(G("10.7.0","highlightBlock will be removed entirely in v12.0"), +G("10.7.0","Please use highlightElement now."),w(e)),configure:e=>{p=Q(p,e)}, +initHighlighting:()=>{ +_(),G("10.6.0","initHighlighting() deprecated. Use highlightAll() now.")}, +initHighlightingOnLoad:()=>{ +_(),G("10.6.0","initHighlightingOnLoad() deprecated. Use highlightAll() now.") +},registerLanguage:(e,t)=>{let s=null;try{s=t(n)}catch(t){ +if(W("Language definition for '{}' could not be registered.".replace("{}",e)), +!r)throw t;W(t),s=l} +s.name||(s.name=e),i[e]=s,s.rawDefinition=t.bind(null,n),s.aliases&&v(s.aliases,{ +languageName:e})},unregisterLanguage:e=>{delete i[e] +;for(const t of Object.keys(s))s[t]===e&&delete s[t]}, +listLanguages:()=>Object.keys(i),getLanguage:O,registerAliases:v, +autoDetection:k,inherit:Q,addPlugin:e=>{(e=>{ +e["before:highlightBlock"]&&!e["before:highlightElement"]&&(e["before:highlightElement"]=t=>{ +e["before:highlightBlock"](Object.assign({block:t.el},t)) +}),e["after:highlightBlock"]&&!e["after:highlightElement"]&&(e["after:highlightElement"]=t=>{ +e["after:highlightBlock"](Object.assign({block:t.el},t))})})(e),o.push(e)}, +removePlugin:e=>{const t=o.indexOf(e);-1!==t&&o.splice(t,1)}}),n.debugMode=()=>{ +r=!1},n.safeMode=()=>{r=!0},n.versionString="11.10.0",n.regex={concat:h, +lookahead:g,either:f,optional:d,anyNumberOfTimes:u} +;for(const t in j)"object"==typeof j[t]&&e(j[t]);return Object.assign(n,j),n +},ne=te({});return ne.newInstance=()=>te({}),ne}() +;"object"==typeof exports&&"undefined"!=typeof module&&(module.exports=hljs);/*! `bash` grammar compiled for Highlight.js 11.10.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const s=e.regex,t={},n={begin:/\$\{/, +end:/\}/,contains:["self",{begin:/:-/,contains:[t]}]};Object.assign(t,{ +className:"variable",variants:[{ +begin:s.concat(/\$[\w\d#@][\w\d_]*/,"(?![\\w\\d])(?![$])")},n]});const a={ +className:"subst",begin:/\$\(/,end:/\)/,contains:[e.BACKSLASH_ESCAPE] +},i=e.inherit(e.COMMENT(),{match:[/(^|\s)/,/#.*$/],scope:{2:"comment"}}),c={ +begin:/<<-?\s*(?=\w+)/,starts:{contains:[e.END_SAME_AS_BEGIN({begin:/(\w+)/, +end:/(\w+)/,className:"string"})]}},o={className:"string",begin:/"/,end:/"/, +contains:[e.BACKSLASH_ESCAPE,t,a]};a.contains.push(o);const r={begin:/\$?\(\(/, +end:/\)\)/,contains:[{begin:/\d+#[0-9a-f]+/,className:"number"},e.NUMBER_MODE,t] +},l=e.SHEBANG({binary:"(fish|bash|zsh|sh|csh|ksh|tcsh|dash|scsh)",relevance:10 +}),m={className:"function",begin:/\w[\w\d_]*\s*\(\s*\)\s*\{/,returnBegin:!0, +contains:[e.inherit(e.TITLE_MODE,{begin:/\w[\w\d_]*/})],relevance:0};return{ +name:"Bash",aliases:["sh","zsh"],keywords:{$pattern:/\b[a-z][a-z0-9._-]+\b/, +keyword:["if","then","else","elif","fi","for","while","until","in","do","done","case","esac","function","select"], +literal:["true","false"], +built_in:["break","cd","continue","eval","exec","exit","export","getopts","hash","pwd","readonly","return","shift","test","times","trap","umask","unset","alias","bind","builtin","caller","command","declare","echo","enable","help","let","local","logout","mapfile","printf","read","readarray","source","sudo","type","typeset","ulimit","unalias","set","shopt","autoload","bg","bindkey","bye","cap","chdir","clone","comparguments","compcall","compctl","compdescribe","compfiles","compgroups","compquote","comptags","comptry","compvalues","dirs","disable","disown","echotc","echoti","emulate","fc","fg","float","functions","getcap","getln","history","integer","jobs","kill","limit","log","noglob","popd","print","pushd","pushln","rehash","sched","setcap","setopt","stat","suspend","ttyctl","unfunction","unhash","unlimit","unsetopt","vared","wait","whence","where","which","zcompile","zformat","zftp","zle","zmodload","zparseopts","zprof","zpty","zregexparse","zsocket","zstyle","ztcp","chcon","chgrp","chown","chmod","cp","dd","df","dir","dircolors","ln","ls","mkdir","mkfifo","mknod","mktemp","mv","realpath","rm","rmdir","shred","sync","touch","truncate","vdir","b2sum","base32","base64","cat","cksum","comm","csplit","cut","expand","fmt","fold","head","join","md5sum","nl","numfmt","od","paste","ptx","pr","sha1sum","sha224sum","sha256sum","sha384sum","sha512sum","shuf","sort","split","sum","tac","tail","tr","tsort","unexpand","uniq","wc","arch","basename","chroot","date","dirname","du","echo","env","expr","factor","groups","hostid","id","link","logname","nice","nohup","nproc","pathchk","pinky","printenv","printf","pwd","readlink","runcon","seq","sleep","stat","stdbuf","stty","tee","test","timeout","tty","uname","unlink","uptime","users","who","whoami","yes"] +},contains:[l,e.SHEBANG(),m,r,i,c,{match:/(\/[a-z._-]+)+/},o,{match:/\\"/},{ +className:"string",begin:/'/,end:/'/},{match:/\\'/},t]}}})() +;hljs.registerLanguage("bash",e)})();/*! `css` grammar compiled for Highlight.js 11.10.0 */ +(()=>{var e=(()=>{"use strict" +;const e=["a","abbr","address","article","aside","audio","b","blockquote","body","button","canvas","caption","cite","code","dd","del","details","dfn","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","html","i","iframe","img","input","ins","kbd","label","legend","li","main","mark","menu","nav","object","ol","optgroup","option","p","picture","q","quote","samp","section","select","source","span","strong","summary","sup","table","tbody","td","textarea","tfoot","th","thead","time","tr","ul","var","video","defs","g","marker","mask","pattern","svg","switch","symbol","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feFlood","feGaussianBlur","feImage","feMerge","feMorphology","feOffset","feSpecularLighting","feTile","feTurbulence","linearGradient","radialGradient","stop","circle","ellipse","image","line","path","polygon","polyline","rect","text","use","textPath","tspan","foreignObject","clipPath"],r=["any-hover","any-pointer","aspect-ratio","color","color-gamut","color-index","device-aspect-ratio","device-height","device-width","display-mode","forced-colors","grid","height","hover","inverted-colors","monochrome","orientation","overflow-block","overflow-inline","pointer","prefers-color-scheme","prefers-contrast","prefers-reduced-motion","prefers-reduced-transparency","resolution","scan","scripting","update","width","min-width","max-width","min-height","max-height"].sort().reverse(),t=["active","any-link","blank","checked","current","default","defined","dir","disabled","drop","empty","enabled","first","first-child","first-of-type","fullscreen","future","focus","focus-visible","focus-within","has","host","host-context","hover","indeterminate","in-range","invalid","is","lang","last-child","last-of-type","left","link","local-link","not","nth-child","nth-col","nth-last-child","nth-last-col","nth-last-of-type","nth-of-type","only-child","only-of-type","optional","out-of-range","past","placeholder-shown","read-only","read-write","required","right","root","scope","target","target-within","user-invalid","valid","visited","where"].sort().reverse(),i=["after","backdrop","before","cue","cue-region","first-letter","first-line","grammar-error","marker","part","placeholder","selection","slotted","spelling-error"].sort().reverse(),o=["accent-color","align-content","align-items","align-self","alignment-baseline","all","animation","animation-delay","animation-direction","animation-duration","animation-fill-mode","animation-iteration-count","animation-name","animation-play-state","animation-timing-function","appearance","backface-visibility","background","background-attachment","background-blend-mode","background-clip","background-color","background-image","background-origin","background-position","background-repeat","background-size","baseline-shift","block-size","border","border-block","border-block-color","border-block-end","border-block-end-color","border-block-end-style","border-block-end-width","border-block-start","border-block-start-color","border-block-start-style","border-block-start-width","border-block-style","border-block-width","border-bottom","border-bottom-color","border-bottom-left-radius","border-bottom-right-radius","border-bottom-style","border-bottom-width","border-collapse","border-color","border-image","border-image-outset","border-image-repeat","border-image-slice","border-image-source","border-image-width","border-inline","border-inline-color","border-inline-end","border-inline-end-color","border-inline-end-style","border-inline-end-width","border-inline-start","border-inline-start-color","border-inline-start-style","border-inline-start-width","border-inline-style","border-inline-width","border-left","border-left-color","border-left-style","border-left-width","border-radius","border-right","border-end-end-radius","border-end-start-radius","border-right-color","border-right-style","border-right-width","border-spacing","border-start-end-radius","border-start-start-radius","border-style","border-top","border-top-color","border-top-left-radius","border-top-right-radius","border-top-style","border-top-width","border-width","bottom","box-decoration-break","box-shadow","box-sizing","break-after","break-before","break-inside","cx","cy","caption-side","caret-color","clear","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","color-scheme","column-count","column-fill","column-gap","column-rule","column-rule-color","column-rule-style","column-rule-width","column-span","column-width","columns","contain","content","content-visibility","counter-increment","counter-reset","cue","cue-after","cue-before","cursor","direction","display","dominant-baseline","empty-cells","enable-background","fill","fill-opacity","fill-rule","filter","flex","flex-basis","flex-direction","flex-flow","flex-grow","flex-shrink","flex-wrap","float","flow","flood-color","flood-opacity","font","font-display","font-family","font-feature-settings","font-kerning","font-language-override","font-size","font-size-adjust","font-smoothing","font-stretch","font-style","font-synthesis","font-variant","font-variant-caps","font-variant-east-asian","font-variant-ligatures","font-variant-numeric","font-variant-position","font-variation-settings","font-weight","gap","glyph-orientation-horizontal","glyph-orientation-vertical","grid","grid-area","grid-auto-columns","grid-auto-flow","grid-auto-rows","grid-column","grid-column-end","grid-column-start","grid-gap","grid-row","grid-row-end","grid-row-start","grid-template","grid-template-areas","grid-template-columns","grid-template-rows","hanging-punctuation","height","hyphens","icon","image-orientation","image-rendering","image-resolution","ime-mode","inline-size","inset","inset-block","inset-block-end","inset-block-start","inset-inline","inset-inline-end","inset-inline-start","isolation","kerning","justify-content","justify-items","justify-self","left","letter-spacing","lighting-color","line-break","line-height","list-style","list-style-image","list-style-position","list-style-type","marker","marker-end","marker-mid","marker-start","mask","margin","margin-block","margin-block-end","margin-block-start","margin-bottom","margin-inline","margin-inline-end","margin-inline-start","margin-left","margin-right","margin-top","marks","mask","mask-border","mask-border-mode","mask-border-outset","mask-border-repeat","mask-border-slice","mask-border-source","mask-border-width","mask-clip","mask-composite","mask-image","mask-mode","mask-origin","mask-position","mask-repeat","mask-size","mask-type","max-block-size","max-height","max-inline-size","max-width","min-block-size","min-height","min-inline-size","min-width","mix-blend-mode","nav-down","nav-index","nav-left","nav-right","nav-up","none","normal","object-fit","object-position","opacity","order","orphans","outline","outline-color","outline-offset","outline-style","outline-width","overflow","overflow-wrap","overflow-x","overflow-y","padding","padding-block","padding-block-end","padding-block-start","padding-bottom","padding-inline","padding-inline-end","padding-inline-start","padding-left","padding-right","padding-top","page-break-after","page-break-before","page-break-inside","pause","pause-after","pause-before","perspective","perspective-origin","pointer-events","position","quotes","r","resize","rest","rest-after","rest-before","right","rotate","row-gap","scale","scroll-margin","scroll-margin-block","scroll-margin-block-end","scroll-margin-block-start","scroll-margin-bottom","scroll-margin-inline","scroll-margin-inline-end","scroll-margin-inline-start","scroll-margin-left","scroll-margin-right","scroll-margin-top","scroll-padding","scroll-padding-block","scroll-padding-block-end","scroll-padding-block-start","scroll-padding-bottom","scroll-padding-inline","scroll-padding-inline-end","scroll-padding-inline-start","scroll-padding-left","scroll-padding-right","scroll-padding-top","scroll-snap-align","scroll-snap-stop","scroll-snap-type","scrollbar-color","scrollbar-gutter","scrollbar-width","shape-image-threshold","shape-margin","shape-outside","shape-rendering","stop-color","stop-opacity","stroke","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","speak","speak-as","src","tab-size","table-layout","text-anchor","text-align","text-align-all","text-align-last","text-combine-upright","text-decoration","text-decoration-color","text-decoration-line","text-decoration-skip-ink","text-decoration-style","text-decoration-thickness","text-emphasis","text-emphasis-color","text-emphasis-position","text-emphasis-style","text-indent","text-justify","text-orientation","text-overflow","text-rendering","text-shadow","text-transform","text-underline-offset","text-underline-position","top","transform","transform-box","transform-origin","transform-style","transition","transition-delay","transition-duration","transition-property","transition-timing-function","translate","unicode-bidi","vector-effect","vertical-align","visibility","voice-balance","voice-duration","voice-family","voice-pitch","voice-range","voice-rate","voice-stress","voice-volume","white-space","widows","width","will-change","word-break","word-spacing","word-wrap","writing-mode","x","y","z-index"].sort().reverse() +;return n=>{const a=n.regex,l=(e=>({IMPORTANT:{scope:"meta",begin:"!important"}, +BLOCK_COMMENT:e.C_BLOCK_COMMENT_MODE,HEXCOLOR:{scope:"number", +begin:/#(([0-9a-fA-F]{3,4})|(([0-9a-fA-F]{2}){3,4}))\b/},FUNCTION_DISPATCH:{ +className:"built_in",begin:/[\w-]+(?=\()/},ATTRIBUTE_SELECTOR_MODE:{ +scope:"selector-attr",begin:/\[/,end:/\]/,illegal:"$", +contains:[e.APOS_STRING_MODE,e.QUOTE_STRING_MODE]},CSS_NUMBER_MODE:{ +scope:"number", +begin:e.NUMBER_RE+"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?", +relevance:0},CSS_VARIABLE:{className:"attr",begin:/--[A-Za-z_][A-Za-z0-9_-]*/} +}))(n),s=[n.APOS_STRING_MODE,n.QUOTE_STRING_MODE];return{name:"CSS", +case_insensitive:!0,illegal:/[=|'\$]/,keywords:{keyframePosition:"from to"}, +classNameAliases:{keyframePosition:"selector-tag"},contains:[l.BLOCK_COMMENT,{ +begin:/-(webkit|moz|ms|o)-(?=[a-z])/},l.CSS_NUMBER_MODE,{ +className:"selector-id",begin:/#[A-Za-z0-9_-]+/,relevance:0},{ +className:"selector-class",begin:"\\.[a-zA-Z-][a-zA-Z0-9_-]*",relevance:0 +},l.ATTRIBUTE_SELECTOR_MODE,{className:"selector-pseudo",variants:[{ +begin:":("+t.join("|")+")"},{begin:":(:)?("+i.join("|")+")"}]},l.CSS_VARIABLE,{ +className:"attribute",begin:"\\b("+o.join("|")+")\\b"},{begin:/:/,end:/[;}{]/, +contains:[l.BLOCK_COMMENT,l.HEXCOLOR,l.IMPORTANT,l.CSS_NUMBER_MODE,...s,{ +begin:/(url|data-uri)\(/,end:/\)/,relevance:0,keywords:{built_in:"url data-uri" +},contains:[...s,{className:"string",begin:/[^)]/,endsWithParent:!0, +excludeEnd:!0}]},l.FUNCTION_DISPATCH]},{begin:a.lookahead(/@/),end:"[{;]", +relevance:0,illegal:/:/,contains:[{className:"keyword",begin:/@-?\w[\w]*(-\w+)*/ +},{begin:/\s/,endsWithParent:!0,excludeEnd:!0,relevance:0,keywords:{ +$pattern:/[a-z-]+/,keyword:"and or not only",attribute:r.join(" ")},contains:[{ +begin:/[a-z-]+(?=:)/,className:"attribute"},...s,l.CSS_NUMBER_MODE]}]},{ +className:"selector-tag",begin:"\\b("+e.join("|")+")\\b"}]}}})() +;hljs.registerLanguage("css",e)})();/*! `json` grammar compiled for Highlight.js 11.10.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const a=["true","false","null"],s={ +scope:"literal",beginKeywords:a.join(" ")};return{name:"JSON",aliases:["jsonc"], +keywords:{literal:a},contains:[{className:"attr", +begin:/"(\\.|[^\\"\r\n])*"(?=\s*:)/,relevance:1.01},{match:/[{}[\],:]/, +className:"punctuation",relevance:0 +},e.QUOTE_STRING_MODE,s,e.C_NUMBER_MODE,e.C_LINE_COMMENT_MODE,e.C_BLOCK_COMMENT_MODE], +illegal:"\\S"}}})();hljs.registerLanguage("json",e)})();/*! `lisp` grammar compiled for Highlight.js 11.10.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="[a-zA-Z_\\-+\\*\\/<=>&#][a-zA-Z0-9_\\-+*\\/<=>&#!]*",a="\\|[^]*?\\|",i="(-|\\+)?\\d+(\\.\\d+|\\/\\d+)?((d|e|f|l|s|D|E|F|L|S)(\\+|-)?\\d+)?",s={ +className:"literal",begin:"\\b(t{1}|nil)\\b"},l={className:"number",variants:[{ +begin:i,relevance:0},{begin:"#(b|B)[0-1]+(/[0-1]+)?"},{ +begin:"#(o|O)[0-7]+(/[0-7]+)?"},{begin:"#(x|X)[0-9a-fA-F]+(/[0-9a-fA-F]+)?"},{ +begin:"#(c|C)\\("+i+" +"+i,end:"\\)"}]},b=e.inherit(e.QUOTE_STRING_MODE,{ +illegal:null}),g=e.COMMENT(";","$",{relevance:0}),r={begin:"\\*",end:"\\*"},t={ +className:"symbol",begin:"[:&]"+n},c={begin:n,relevance:0},d={begin:a},o={ +contains:[l,b,r,t,{begin:"\\(",end:"\\)",contains:["self",s,b,l,c]},c], +variants:[{begin:"['`]\\(",end:"\\)"},{begin:"\\(quote ",end:"\\)",keywords:{ +name:"quote"}},{begin:"'"+a}]},v={variants:[{begin:"'"+n},{ +begin:"#'"+n+"(::"+n+")*"}]},m={begin:"\\(\\s*",end:"\\)"},u={endsWithParent:!0, +relevance:0};return m.contains=[{className:"name",variants:[{begin:n,relevance:0 +},{begin:a}]},u],u.contains=[o,v,m,s,l,b,g,r,t,d,c],{name:"Lisp",illegal:/\S/, +contains:[l,e.SHEBANG(),s,b,g,o,v,m,c]}}})();hljs.registerLanguage("lisp",e) +})();/*! `markdown` grammar compiled for Highlight.js 11.10.0 */ +(()=>{var e=(()=>{"use strict";return e=>{const n={begin:/<\/?[A-Za-z_]/, +end:">",subLanguage:"xml",relevance:0},a={variants:[{begin:/\[.+?\]\[.*?\]/, +relevance:0},{ +begin:/\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/, +relevance:2},{ +begin:e.regex.concat(/\[.+?\]\(/,/[A-Za-z][A-Za-z0-9+.-]*/,/:\/\/.*?\)/), +relevance:2},{begin:/\[.+?\]\([./?&#].*?\)/,relevance:1},{ +begin:/\[.*?\]\(.*?\)/,relevance:0}],returnBegin:!0,contains:[{match:/\[(?=\])/ +},{className:"string",relevance:0,begin:"\\[",end:"\\]",excludeBegin:!0, +returnEnd:!0},{className:"link",relevance:0,begin:"\\]\\(",end:"\\)", +excludeBegin:!0,excludeEnd:!0},{className:"symbol",relevance:0,begin:"\\]\\[", +end:"\\]",excludeBegin:!0,excludeEnd:!0}]},i={className:"strong",contains:[], +variants:[{begin:/_{2}(?!\s)/,end:/_{2}/},{begin:/\*{2}(?!\s)/,end:/\*{2}/}] +},s={className:"emphasis",contains:[],variants:[{begin:/\*(?![*\s])/,end:/\*/},{ +begin:/_(?![_\s])/,end:/_/,relevance:0}]},c=e.inherit(i,{contains:[] +}),t=e.inherit(s,{contains:[]});i.contains.push(t),s.contains.push(c) +;let g=[n,a];return[i,s,c,t].forEach((e=>{e.contains=e.contains.concat(g) +})),g=g.concat(i,s),{name:"Markdown",aliases:["md","mkdown","mkd"],contains:[{ +className:"section",variants:[{begin:"^#{1,6}",end:"$",contains:g},{ +begin:"(?=^.+?\\n[=-]{2,}$)",contains:[{begin:"^[=-]*$"},{begin:"^",end:"\\n", +contains:g}]}]},n,{className:"bullet",begin:"^[ \t]*([*+-]|(\\d+\\.))(?=\\s+)", +end:"\\s+",excludeEnd:!0},i,s,{className:"quote",begin:"^>\\s+",contains:g, +end:"$"},{className:"code",variants:[{begin:"(`{3,})[^`](.|\\n)*?\\1`*[ ]*"},{ +begin:"(~{3,})[^~](.|\\n)*?\\1~*[ ]*"},{begin:"```",end:"```+[ ]*$"},{ +begin:"~~~",end:"~~~+[ ]*$"},{begin:"`.+?`"},{begin:"(?=^( {4}|\\t))", +contains:[{begin:"^( {4}|\\t)",end:"(\\n)$"}],relevance:0}]},{ +begin:"^[-\\*]{3,}",end:"$"},a,{begin:/^\[[^\n]+\]:/,returnBegin:!0,contains:[{ +className:"symbol",begin:/\[/,end:/\]/,excludeBegin:!0,excludeEnd:!0},{ +className:"link",begin:/:\s*/,end:/$/,excludeBegin:!0}]},{scope:"literal", +match:/&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/}]}}})() +;hljs.registerLanguage("markdown",e)})();/*! `plaintext` grammar compiled for Highlight.js 11.10.0 */ +(()=>{var t=(()=>{"use strict";return t=>({name:"Plain text", +aliases:["text","txt"],disableAutodetect:!0})})() +;hljs.registerLanguage("plaintext",t)})();/*! `xml` grammar compiled for Highlight.js 11.10.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const a=e.regex,n=a.concat(/[\p{L}_]/u,a.optional(/[\p{L}0-9_.-]*:/u),/[\p{L}0-9_.-]*/u),s={ +className:"symbol",begin:/&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/},t={begin:/\s/, +contains:[{className:"keyword",begin:/#?[a-z_][a-z1-9_-]+/,illegal:/\n/}] +},i=e.inherit(t,{begin:/\(/,end:/\)/}),c=e.inherit(e.APOS_STRING_MODE,{ +className:"string"}),l=e.inherit(e.QUOTE_STRING_MODE,{className:"string"}),r={ +endsWithParent:!0,illegal:/`]+/}]}]}]};return{ +name:"HTML, XML", +aliases:["html","xhtml","rss","atom","xjb","xsd","xsl","plist","wsf","svg"], +case_insensitive:!0,unicodeRegex:!0,contains:[{className:"meta",begin://,relevance:10,contains:[t,l,c,i,{begin:/\[/,end:/\]/,contains:[{ +className:"meta",begin://,contains:[t,i,l,c]}]}] +},e.COMMENT(//,{relevance:10}),{begin://, +relevance:10},s,{className:"meta",end:/\?>/,variants:[{begin:/<\?xml/, +relevance:10,contains:[l]},{begin:/<\?[a-z][a-z0-9]+/}]},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"style"},contains:[r],starts:{ +end:/<\/style>/,returnEnd:!0,subLanguage:["css","xml"]}},{className:"tag", +begin:/)/,end:/>/,keywords:{name:"script"},contains:[r],starts:{ +end:/<\/script>/,returnEnd:!0,subLanguage:["javascript","handlebars","xml"]}},{ +className:"tag",begin:/<>|<\/>/},{className:"tag", +begin:a.concat(//,/>/,/\s/)))), +end:/\/?>/,contains:[{className:"name",begin:n,relevance:0,starts:r}]},{ +className:"tag",begin:a.concat(/<\//,a.lookahead(a.concat(n,/>/))),contains:[{ +className:"name",begin:n,relevance:0},{begin:/>/,relevance:0,endsParent:!0}]}]}} +})();hljs.registerLanguage("xml",e)})();/*! `yaml` grammar compiled for Highlight.js 11.10.0 */ +(()=>{var e=(()=>{"use strict";return e=>{ +const n="true false yes no null",a="[\\w#;/?:@&=+$,.~*'()[\\]]+",s={ +className:"string",relevance:0,variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/ +},{begin:/\S+/}],contains:[e.BACKSLASH_ESCAPE,{className:"template-variable", +variants:[{begin:/\{\{/,end:/\}\}/},{begin:/%\{/,end:/\}/}]}]},i=e.inherit(s,{ +variants:[{begin:/'/,end:/'/},{begin:/"/,end:/"/},{begin:/[^\s,{}[\]]+/}]}),l={ +end:",",endsWithParent:!0,excludeEnd:!0,keywords:n,relevance:0},t={begin:/\{/, +end:/\}/,contains:[l],illegal:"\\n",relevance:0},g={begin:"\\[",end:"\\]", +contains:[l],illegal:"\\n",relevance:0},b=[{className:"attr",variants:[{ +begin:/\w[\w :()\./-]*:(?=[ \t]|$)/},{begin:/"\w[\w :()\./-]*":(?=[ \t]|$)/},{ +begin:/'\w[\w :()\./-]*':(?=[ \t]|$)/}]},{className:"meta",begin:"^---\\s*$", +relevance:10},{className:"string", +begin:"[\\|>]([1-9]?[+-])?[ ]*\\n( +)[^ ][^\\n]*\\n(\\2[^\\n]+\\n?)*"},{ +begin:"<%[%=-]?",end:"[%-]?%>",subLanguage:"ruby",excludeBegin:!0,excludeEnd:!0, +relevance:0},{className:"type",begin:"!\\w+!"+a},{className:"type", +begin:"!<"+a+">"},{className:"type",begin:"!"+a},{className:"type",begin:"!!"+a +},{className:"meta",begin:"&"+e.UNDERSCORE_IDENT_RE+"$"},{className:"meta", +begin:"\\*"+e.UNDERSCORE_IDENT_RE+"$"},{className:"bullet",begin:"-(?=[ ]|$)", +relevance:0},e.HASH_COMMENT_MODE,{beginKeywords:n,keywords:{literal:n}},{ +className:"number", +begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b" +},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b] +;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0, +aliases:["yml"],contains:b}}})();hljs.registerLanguage("yaml",e)})(); \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..d610a3c --- /dev/null +++ b/index.html @@ -0,0 +1,147 @@ + + + + StatiCL - Flexible static site generator + + + + + + + + + + + + + + + + + + + +
Fork me on GitHub + + +

StatiCL - Flexible static site generator

ASDF System Details

+ + + + + + + +
+ + + +
+ +

Installation

This library is not in Quicklisp yet, but you can install it from Ultralisp.org:

(ql-dist:install-dist "http://dist.ultralisp.org/"
+                      :prompt nil)
+(ql:quickload :staticl)

Or, if you wish to use a command line utility, then install it with Roswell like this:

ros run --eval '(ql-dist:install-dist "http://dist.ultralisp.org/" :prompt nil)' --quit
+ros install 40ants-asdf-system
+ros install spinneret
+ros install 40ants/staticl

Rationale

Why was another static website generator made when the world is already full of them? There are only three reasons.

The first reason is that at 40Ants we prefer to use Common Lisp in our projects, because it is a significant lever and increases the efficiency of the developer. But the choice of static generators of sites written in Common Lisp is not so great. We know of only one such project – Coleslaw. Actually, we used it, but it turned out that it was not flexible enough.

And here we come to reason number two – Coleslaw was originally conceived as a static blog generator and only later it became possible to add arbitrary pages. So its whole architecture revolves around posts and indexes. We wanted something more. For example, the ability to make static landing pages with arbitrary placement of blocks, and remove blog posts in a separate subsection. And also, we really wanted to run a multilingual blog where posts in different languages could be in different folders. And so on.

Of course, we could look at static site generators in other programming languages, for example Hugo or Nikola. But most of them use simple linear configs or awful YAML files, whereas with Lisp we have more extensive site configuration options due to the fact that all the features of the programming language are available to us. The ability to use DSL (Domain Specific Language) for greater expressiveness of site configuration is the third reason why it was decided to make StatiCL.

Features

  • Hackable. StaticCL probably the most hackable static site builder in the World due to the nature of Common Lisp programming language and it's interactive development approach.

  • Suitable for a site of any configuration, not only for a blog.

  • Multiplatform. This project is already tested on Linix and OSX.

  • Supports different themes.

  • Multiple templating engines might be used.

  • Many content formats are supported. Markdown is used by default, but you can easily use reStructured text, Spinneret or add your own.

  • Plugins and themse can be hosted along with the content of your site.

See also the Roadmap section.

Basics

Why do we need static website generators?

In the era of high technology and fast access to information, when every second of page loading is worth its weight in gold, static website generators come to the fore. But why are they so important? And which tool should I choose to create the perfect static website?

We present to your attention StatiCL — one of the most promising tools in this niche. But before we dive into the specifics of StatiCL, let's figure out what static site generators are for and what advantages they bring.

The main advantages of static site generators

  • No movement, no problem. Static sites are much more resistant to hacker attacks, because they simply do not have a server that can be hacked.

  • Instant page loading becomes a reality, as static content is easily cached and does not require additional processing by the server.

  • Has your website suddenly gained popularity? Static sites can easily withstand traffic growth without the need for complex infrastructure configuration.

  • Using version control systems such as Git, you can always roll back to a previous version of the site or make changes without risking the current operating environment.

  • Static pages do not require complex server solutions, which significantly reduces the cost of hosting.

How static site generators work

Generators convert content from a simple Markdown markup language to HTML and CSS. They allow you to create beautiful and readable web pages without requiring the developer to write complex code. Generators greatly simplify the process of website development by providing fast and efficient formatting of text, inserting images, videos and other multimedia components.

You can use various methods to host a static site, including Github Pages, CDN, or other affordable cheap hosting services. Github Pages is a free service provided by Github that allows you to host static sites directly from the repository on Github. This is a convenient way to host small projects or personal pages. CDN (Content Delivery Network) is a network of servers distributed around the world that helps speed up the loading of content on a site due to the proximity of servers to end users. This is especially useful for sites with a large number of visitors and traffic. If you have a budget, you can also consider other cheap hosting providers that offer good conditions for hosting static sites. It is important to consider the requirements of your project and choose the appropriate option that meets your needs in terms of performance, reliability and price.

Why was StatiCL created

At 40Ants, we believe in the power of Common Lisp and use it as the basis of all our projects. We used to work with the Coleslaw static blog generator, but we encountered some of its limitations. For example, it was difficult for us to create a website in several languages and set up the main page in a different way than just a list of articles. Coleslaw is more suitable for blogs than for sites with a diverse structure. Therefore, we have developed a StatiCL tool with even more flexibility. With StatiCL, you can create a static website of any complexity, without limiting yourself to blog templates.

In StatiCL, you can easily create extensions, as well as use any template engine, not limited to Clozure Templates. This gives you more freedom in choosing tools to work with your static sites and allows you to use those technologies that are more convenient and familiar to you. The flexibility of StatiCL makes it an excellent choice for developers who want to create high-quality static websites optimized for their needs and preferences.

The basic principles underlying StatiCL

StatiCL is an innovative content processing system based on the pipeline concept. The pipeline consists of various nodes, each of which receives all the content objects generated by the previous parts of the pipeline. Each node has the ability to modify existing content or add new elements to it. This allows you to create unique and high-quality content enriched with a variety of data and information. In addition, thanks to the use of a content processing pipeline, StatiCL provides efficient and fast information processing. Each stage of the pipeline is performed sequentially, which allows you to optimize the process of creating content and improve its quality. This approach allows users to easily manage the content processing process and create unique materials for various purposes. Thanks to the flexible pipeline structure and the ability to add new nodes, StatiCL provides a high degree of personalization and customization of the content processing process for specific user needs. Thus, the system allows you to create content that meets the individual requirements and tasks of users, ensuring high efficiency and effectiveness of work.

The pipeline describing the site generation is written in Lisp and is a series of nested function calls. Each site using StatiCL must contain a .staticlrc file in its root directory, which contains a description of the pipeline. This is how the simplest description of the site looks like:

(site "Trivial Site"
+      :description "A trivial staticl site."
+      :url "https://example.com"
+      :pipeline (list (load-content))
+      :theme "readable")

When you run the staticl generate command, the engine will start processing content from files on disk. It will read all the files with the post and page extensions, and then create the corresponding html files. This way, you will receive ready-made files that can be easily placed on the site for visitors to view.

To create an RSS feed for all blog posts, you need to add a new step in the StatiCL pipeline. Let's create an element (rss) that will be responsible for generating the RSS feed. This element will extract data about blog posts and generate an appropriate XML file containing information about the titles, publication date and content of each post. This way users will be able to subscribe to blog updates via RSS readers.

(site "Trivial Site"
+      :description "A trivial staticl site."
+      :url "https://example.com"
+      :pipeline (list (load-content)
+                      (rss))
+      :theme "readable")

When creating sitemap.xml In addition to RSS, we can add another step to our pipeline - creating a sitemap. This file is a special format that allows search engines to index pages of our site more efficiently. Creation sitemap.xml It will help to improve the SEO optimization of the site, as search engines will be able to detect and index new content faster. In addition, sitemap.xml allows you to tell search engines which pages are the most important for indexing, which can also affect the ranking of the site in search results.

(site "Trivial Site"
+      :description "A trivial staticl site."
+      :url "https://example.com"
+      :pipeline (list (load-content)
+                      (rss)
+                      (sitemap))
+      :theme "readable")

The (sitemap) step will receive all the content created by the previous steps and create a file at the output sitemap.xml.

In addition to sequentially executing the pipeline steps, you can split the content into different "streams". For example, you can filter them by the language in which the texts are written, and perform different pipeline steps for each language. For example, you can create separate RSS feeds for each language. You can read more about this in the tutorial.

Read more about pipeline in the Pipeline section and walk through a tutorial in Making a Static Site section.

Roadmap

  • Add support for translations for themes and menu items to be able to make multilingual sites.

  • Add a documentation on theme and plugin creation.

  • Implement more themes.

  • Port all Coleslaw plugins.

  • Support more services for adding comments.

  • Make cool demos for YouTube and publish them at 40Ants channel.

Sites Built With StatiCL

Here is a list of sites which use StatiCL to generate HTML:

Feel free to create PR to add your site here. It will be intresting to share configurations, themes and plugins!

Contribution

I'll be happy to discuss your ideas in the issues and to review your pull-requests.

Follow these few rules to make it be merged faster:

  • Write a detailed description of the changes made in the pull request.

  • Keep the same style as in the rest of code.

  • If unsure, check Google's Common Lisp Styleguide.

  • Write a test on added functionality.

  • Describe your changes in the docs/changelog.lisp file. This way documentation and a ChangeLog.md file will be updated after the merge.

  • Make changes to the documentation files inside the docs/ folder.

  • Ensure all checks on the pull request are green.

Contributors

  • Alexander Artemenko (initial author).

+
+
+ + \ No newline at end of file diff --git a/jquery.js b/jquery.js new file mode 100644 index 0000000..b061403 --- /dev/null +++ b/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.5.1 | (c) JS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.5.1",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e.namespaceURI,n=(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function D(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||j,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,j=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function qe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function Le(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function He(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Oe(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var Ut,Xt=[],Vt=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Xt.pop()||S.expando+"_"+Ct.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Vt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Vt.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Vt,"$1"+r):!1!==e.jsonp&&(e.url+=(Et.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Xt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Ut=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Ut.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):("number"==typeof f.top&&(f.top+="px"),"number"==typeof f.left&&(f.left+="px"),c.css(f))}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=$e(y.pixelPosition,function(e,t){if(t)return t=Be(e,n),Me.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 00 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + + + +var splitChars = (function() { + var result = {}; + var singles = [96, 180, 187, 191, 215, 247, 749, 885, 903, 907, 909, 930, 1014, 1648, + 1748, 1809, 2416, 2473, 2481, 2526, 2601, 2609, 2612, 2615, 2653, 2702, + 2706, 2729, 2737, 2740, 2857, 2865, 2868, 2910, 2928, 2948, 2961, 2971, + 2973, 3085, 3089, 3113, 3124, 3213, 3217, 3241, 3252, 3295, 3341, 3345, + 3369, 3506, 3516, 3633, 3715, 3721, 3736, 3744, 3748, 3750, 3756, 3761, + 3781, 3912, 4239, 4347, 4681, 4695, 4697, 4745, 4785, 4799, 4801, 4823, + 4881, 5760, 5901, 5997, 6313, 7405, 8024, 8026, 8028, 8030, 8117, 8125, + 8133, 8181, 8468, 8485, 8487, 8489, 8494, 8527, 11311, 11359, 11687, 11695, + 11703, 11711, 11719, 11727, 11735, 12448, 12539, 43010, 43014, 43019, 43587, + 43696, 43713, 64286, 64297, 64311, 64317, 64319, 64322, 64325, 65141]; + var i, j, start, end; + for (i = 0; i < singles.length; i++) { + result[singles[i]] = true; + } + var ranges = [[0, 47], [58, 64], [91, 94], [123, 169], [171, 177], [182, 184], [706, 709], + [722, 735], [741, 747], [751, 879], [888, 889], [894, 901], [1154, 1161], + [1318, 1328], [1367, 1368], [1370, 1376], [1416, 1487], [1515, 1519], [1523, 1568], + [1611, 1631], [1642, 1645], [1750, 1764], [1767, 1773], [1789, 1790], [1792, 1807], + [1840, 1868], [1958, 1968], [1970, 1983], [2027, 2035], [2038, 2041], [2043, 2047], + [2070, 2073], [2075, 2083], [2085, 2087], [2089, 2307], [2362, 2364], [2366, 2383], + [2385, 2391], [2402, 2405], [2419, 2424], [2432, 2436], [2445, 2446], [2449, 2450], + [2483, 2485], [2490, 2492], [2494, 2509], [2511, 2523], [2530, 2533], [2546, 2547], + [2554, 2564], [2571, 2574], [2577, 2578], [2618, 2648], [2655, 2661], [2672, 2673], + [2677, 2692], [2746, 2748], [2750, 2767], [2769, 2783], [2786, 2789], [2800, 2820], + [2829, 2830], [2833, 2834], [2874, 2876], [2878, 2907], [2914, 2917], [2930, 2946], + [2955, 2957], [2966, 2968], [2976, 2978], [2981, 2983], [2987, 2989], [3002, 3023], + [3025, 3045], [3059, 3076], [3130, 3132], [3134, 3159], [3162, 3167], [3170, 3173], + [3184, 3191], [3199, 3204], [3258, 3260], [3262, 3293], [3298, 3301], [3312, 3332], + [3386, 3388], [3390, 3423], [3426, 3429], [3446, 3449], [3456, 3460], [3479, 3481], + [3518, 3519], [3527, 3584], [3636, 3647], [3655, 3663], [3674, 3712], [3717, 3718], + [3723, 3724], [3726, 3731], [3752, 3753], [3764, 3772], [3774, 3775], [3783, 3791], + [3802, 3803], [3806, 3839], [3841, 3871], [3892, 3903], [3949, 3975], [3980, 4095], + [4139, 4158], [4170, 4175], [4182, 4185], [4190, 4192], [4194, 4196], [4199, 4205], + [4209, 4212], [4226, 4237], [4250, 4255], [4294, 4303], [4349, 4351], [4686, 4687], + [4702, 4703], [4750, 4751], [4790, 4791], [4806, 4807], [4886, 4887], [4955, 4968], + [4989, 4991], [5008, 5023], [5109, 5120], [5741, 5742], [5787, 5791], [5867, 5869], + [5873, 5887], [5906, 5919], [5938, 5951], [5970, 5983], [6001, 6015], [6068, 6102], + [6104, 6107], [6109, 6111], [6122, 6127], [6138, 6159], [6170, 6175], [6264, 6271], + [6315, 6319], [6390, 6399], [6429, 6469], [6510, 6511], [6517, 6527], [6572, 6592], + [6600, 6607], [6619, 6655], [6679, 6687], [6741, 6783], [6794, 6799], [6810, 6822], + [6824, 6916], [6964, 6980], [6988, 6991], [7002, 7042], [7073, 7085], [7098, 7167], + [7204, 7231], [7242, 7244], [7294, 7400], [7410, 7423], [7616, 7679], [7958, 7959], + [7966, 7967], [8006, 8007], [8014, 8015], [8062, 8063], [8127, 8129], [8141, 8143], + [8148, 8149], [8156, 8159], [8173, 8177], [8189, 8303], [8306, 8307], [8314, 8318], + [8330, 8335], [8341, 8449], [8451, 8454], [8456, 8457], [8470, 8472], [8478, 8483], + [8506, 8507], [8512, 8516], [8522, 8525], [8586, 9311], [9372, 9449], [9472, 10101], + [10132, 11263], [11493, 11498], [11503, 11516], [11518, 11519], [11558, 11567], + [11622, 11630], [11632, 11647], [11671, 11679], [11743, 11822], [11824, 12292], + [12296, 12320], [12330, 12336], [12342, 12343], [12349, 12352], [12439, 12444], + [12544, 12548], [12590, 12592], [12687, 12689], [12694, 12703], [12728, 12783], + [12800, 12831], [12842, 12880], [12896, 12927], [12938, 12976], [12992, 13311], + [19894, 19967], [40908, 40959], [42125, 42191], [42238, 42239], [42509, 42511], + [42540, 42559], [42592, 42593], [42607, 42622], [42648, 42655], [42736, 42774], + [42784, 42785], [42889, 42890], [42893, 43002], [43043, 43055], [43062, 43071], + [43124, 43137], [43188, 43215], [43226, 43249], [43256, 43258], [43260, 43263], + [43302, 43311], [43335, 43359], [43389, 43395], [43443, 43470], [43482, 43519], + [43561, 43583], [43596, 43599], [43610, 43615], [43639, 43641], [43643, 43647], + [43698, 43700], [43703, 43704], [43710, 43711], [43715, 43738], [43742, 43967], + [44003, 44015], [44026, 44031], [55204, 55215], [55239, 55242], [55292, 55295], + [57344, 63743], [64046, 64047], [64110, 64111], [64218, 64255], [64263, 64274], + [64280, 64284], [64434, 64466], [64830, 64847], [64912, 64913], [64968, 65007], + [65020, 65135], [65277, 65295], [65306, 65312], [65339, 65344], [65371, 65381], + [65471, 65473], [65480, 65481], [65488, 65489], [65496, 65497]]; + for (i = 0; i < ranges.length; i++) { + start = ranges[i][0]; + end = ranges[i][1]; + for (j = start; j <= end; j++) { + result[j] = true; + } + } + return result; +})(); + +function splitQuery(query) { + var result = []; + var start = -1; + for (var i = 0; i < query.length; i++) { + if (splitChars[query.charCodeAt(i)]) { + if (start !== -1) { + result.push(query.slice(start, i)); + start = -1; + } + } else if (start === -1) { + start = i; + } + } + if (start !== -1) { + result.push(query.slice(start)); + } + return result; +} + + diff --git a/making-a-site/index.html b/making-a-site/index.html new file mode 100644 index 0000000..87af0fe --- /dev/null +++ b/making-a-site/index.html @@ -0,0 +1,170 @@ + + + + Making a Static Site + + + + + + + + + + + + + + + + + + + +
Fork me on GitHub + + +

Making a Static Site

In this tutorial, we will create our first static website using Static. The site will have pages "Home", "About the site", "Services" and a blog with posts. The blog posts will be collected in an RSS feed, and all pages will be presented in a file sitemap.xml . At the end, we will connect the Disqus comment system to the posts for feedback from visitors. Thanks to these additional features, the site will be more user-friendly and attractive to users.

Initializing static for the site

For a quick start, StatiCL allows you to create the structure of a future site using a simple command. You can call it via Lisp REPL:

CL-USER> (staticl:new-site "/tmp/my-site"
+                           "My Lisp Site"
+                           "https://about-lisp.org")
+#P"/tmp/my-site/"

Or you can call the same command from the command line if you installed StatiCL using Roswell - just open a terminal and enter this command to create the initial site config:

$ staticl --verbose new-site -o /tmp/my-site 'My Lisp Site' https://about-lisp.org
+Site's content was written to: /tmp/my-site/

Let's look at what happened as a result:

$ tree -a /tmp/blah
+/tmp/blah
+├── .staticlrc
+├── about.page
+├── blog
+│   ├── first.post
+│   └── second.post
+└── index.page

Here we see the site config .staticlrc, two regular pages: index.page and about.page, as well as two blog posts. And here are the settings generated for us:

(asdf:load-system "staticl/format/spinneret")
+    
+(site "My Lisp Site"
+      :description "A site description."
+      :url "https://about-lisp.org"
+      :navigation (menu (item "Blog" "/blog/")
+                        (item "About" "/about/"))
+      :pipeline (list (load-content)
+                      (prev-next-links)
+                      (paginated-index :target-path "blog/")
+                      (rss :target-path "blog/rss.xml")
+                      (atom :target-path "blog/atom.xml")
+                      (tags-index :target-path "tags/")
+                      (sitemap))
+      :theme "readable")

To create a site, the staticl/user-package:site function is used, which passes the site title, its description, the URL for publication, links for navigation and a description of the content processing pipeline. The pipeline plays a key role in the formation of the site, since the final result depends on it. To load the staticl/format/spinneret dependency, you need to call the asdf:load-system function. This module adds support for the Spinneret format, an example of which can be found in the about.post file. Now let's look at the contents of the pipeline.

The first call in the pipeline is staticl/user-package:load-content function. It is responsible for downloading content from files with the post and page extensions. Next comes the staticl/user-package:prev-next-links (1 2) block, it links the "post" type content together, due to which the Previous and Next links appear on the blog pages. The staticl/user-package:paginated-index (1 2) block is responsible for creating pages on which blog posts are grouped into N pieces. Here, in the example, the number of posts per page is not specified, but the staticl/user-package:paginated-index function can accept the :PAGE-SIZE argument, as well as some other arguments. The great news is that when you edit such a config in an editor that supports working with Common Lisp, the IDE will tell you what the signature of each function is and what parameters it can have. Try to do this with a static site generator that uses the YAML format for configuration!

Next we have two calls of staticl/user-package:rss function and staticl/user-package:atom function. They are similar in that they give a feed output from the latest blog posts. Well, the staticl/user-package:sitemap function generates a file sitemap.xml and includes all the content that was created in the previous stages.

Generating a static website

Now that we have some content, let's make an HTML website out of it. To do this, run the following command in REPL:

CL-USER> (staticl:generate :root-dir "/tmp/my-site"
+                           :stage-dir "/tmp/result")
+#P"/tmp/result/"

Or on the command line:

$ staticl -v generate -s /tmp/my-site -o /tmp/result
+Site was written to: /tmp/result/

This command created several HTML files in the /tmp/result/ directory, and also put the necessary CSS and JS files there:

$ tree /tmp/result
+/tmp/result
+├── about
+│   └── index.html
+├── blog
+│   ├── atom.xml
+│   ├── first
+│   │   └── index.html
+│   ├── index.html
+│   ├── rss.xml
+│   └── second
+│       └── index.html
+├── css
+│   ├── bootstrap.min.css
+│   └── custom.css
+├── img
+│   ├── cc-by-sa.png
+│   ├── glyphicons-halflings-white.png
+│   ├── glyphicons-halflings.png
+│   └── staticl-logo-small.webp
+├── index.html
+├── js
+│   └── bootstrap.min.js
+├── sitemap.xml
+└── tags
+    ├── bar
+    │   └── index.html
+    ├── example
+    │   └── index.html
+    └── foo
+        └── index.html

Now we need to somehow open the site in the browser. If you just open the file in the browser index.html, then he will load it without styles, and other things may not work either, since the page opened in this way will not have a domain. To fully open the site, we need to launch a web server. Previously, I would have done this using python. This is how you can distribute static from a local directory using python and its http.server module:

$ cd /tmp/result
+$ python3 -m http.server
+Serving HTTP on :: port 8000 (http://[::]:8000/) ...

However, we can do better – a web server is already built into StatiCL. Moreover, it can track changes in your site's files and update the site pages opened in the browser. To start this local web server, use the following command in REPL:

CL-USER> (staticl:serve :root-dir #P"/tmp/my-site"
+                        :stage-dir #P"/tmp/result")
+ [21:35:55] staticl/utils utils.lisp (top level form find-class-by-name) -
+  Searching class by name STATICL/UTILS::NAME: "closure-template"
+  [21:35:55] staticl/server server.lisp (top level form serve) -
+  Starting Clack server to serve site from /tmp/result/
+Hunchentoot server is started.
+Listening on localhost:8001.

Or from the command line:

$ staticl serve -s /tmp/my-site -o /tmp/result
+  [21:39:48] staticl/server server.lisp (top level form serve) -
+  Starting Clack server to serve site from /tmp/result/
+Hunchentoot server is started.
+Listening on localhost:8001.

As you can see, the serve command is very similar to generate, and accepts similar parameters, because it needs not only to distribute static, but also to generate it. In addition, the serve command will try to open the site in the browser. Look at it:

If you click on the Blog link, a page with a list of posts will open. This part of the pipeline is responsible for its generation: `(paginated-index :target-path #P"blog/")'. The page looks like this:

On the index page, StatiCL displays only the introduction if the source file of the post separates it from the main part with the line <!--more-->.

If you click on one of the posts, it will open in its entirety:

Pay attention to the "Next" link in the lower right corner. All blog posts are linked to each other and this is also done thanks to a separate pipeline block: `(prev-next-links)'. This pipeline block adds metadata to each post, which is then available in the template. If you remove it, the links will disappear from the pages.

How to add comments using Disqus

Like any content creator, you will definitely want to communicate with your readers. The easiest way to do this is to connect dynamic comments to our static blog. There are many services that provide such comments – for example, Disqus, Commento, Remark42, etc..

At the moment, StatiCL only supports Disqus, but it's easy to write a plugin for any other comment system.

Let's add comments to our website! All you need to do is register with Disqus, get a short site name, and add another pipeline block to the config. Let's say I registered the site name example in Disqus, and then I need to add the `(disqus "example") block to our pipeline:

:pipeline (list (load-content)
+                (prev-next-links)
+                (paginated-index :target-path #P"blog/")
+                (rss :target-path "blog/rss.xml")
+                (atom :target-path "blog/atom.xml")
+                (tags-index :target-path "tags/")
+                (sitemap)
+                (disqus "example"))

This is how the post page with comments will look like:

Content filtering

Now let's assume that we don't want to connect comments to all posts, but only to those where there is no no-comments tag. To do this, we can filter the content using the staticl/user-package:filter (1 2) block. This block accepts a number of parameters, as well as other pipeline blocks, which will receive only those content elements that have passed the filter. This is how the filter will look like, which will apply staticl/user-package:disqus function only to content that does not have the no-comments tag:

(filter (:tags "no-comments"
+         :invert t)
+        (disqus "example"))

Now add the no-comments tag to the blog/first.post file and make sure that comments are not displayed on the page of this post. They are on the page of the second post.

In the following tutorials, we will figure out how to create themes for your static website and learn how to add the necessary functionality using plugins.

+
+
+ + \ No newline at end of file diff --git a/pipeline/index.html b/pipeline/index.html new file mode 100644 index 0000000..f6fdaf4 --- /dev/null +++ b/pipeline/index.html @@ -0,0 +1,110 @@ + + + + Pipeline + + + + + + + + + + + + + + + + + + + +
Fork me on GitHub + + +

Pipeline

Idea

Pipeline is the basis of Static. All the content of the site passes through the pipeline, and is converted at the output to HTML, XML, and other formats. The pipeline principle is used here – each part of the pipeline processes or creates new content elements, and those, in turn, are processed by subsequent pipeline blocks.

In the static site config, the pipeline is assembled using function calls. But these functions do not create any content at the time of loading the configuration file. They only return a description of the pipeline.

For example, the pipeline of the simplest site will consist of only one element: load-content. He is responsible for reading pages and posts from files.

If we want to do something with posts and pages, for example, create for them sitemap.xml, then we can add a call to another sitemap function after the load-content function. Both of these functions return the "nodes" of the pipeline. Each node is an object that will then be used when calling generic-function staticl/pipeline:process-items to process the content.

Building Blocks

All symbols, listed below, are available in the STATICL-USER package and can be used in the .staticlrc file without a package prefix.

Main Building Blocks

Reads content from the disk.

By default only post and page files are loaded. But this list could be extended if you'll define +a custom site class and a method for staticl/content:supported-content-types generic-function.

macro
(&key path tags invert) &body pipeline

Filters input content objects and processes them using pipeline items given as a body.

Arguments:

  • PATH: result will contain only items read from the given path.

  • TAGS: result will contain only items having all given tags.

  • INVERT: inverts effect of the filter.

  • PIPELINE: any number of function calls returning pipeline nodes.

Note: Right now, all new items generated by PIPELINE given to the filter macro +are added to the toplevel list and stay invisible to the sebsequent pipeline nodes. +The same applicable to content deletion.

Content Organization

Creates a links between pages.

Links are added to the content item's metadata and available in templates as +content.prev.url and content.next.url variables.

function
&rest initargs &key target-path page-size template page-title-fn page-filename-fn

Creates additional HTML files with post's excerpts grouped by PAGE-SIZE items.

By default index.html, page-2.html, page-3.html, etc. filenames are used, but this +can be overriden by PAGE-FILENAME-FN argument.

The same way page title may be overriden by providing a function as PAGE-TITLE-FN argument.

Arguments:

PAGE-FILENAME-FN:

A callback to change page titles.

Accepts single argument - a page number and should return a pathname relative to the site's root. +By default, it returns index.html for the first page and page-2.html, page-3.html for others.

If site has "clean urls" setting enabled, then additional transformation to the pathname will be +applied automatically.

PAGE-TITLE-FN:

A callback to change page titles.

Accepts single argument - a page number and should return a string.

For example, here is how you can translate page title into a russian:

(paginated-index :target-path #P"ru/"
+                 :page-title-fn (lambda (num)
+                                  (fmt "Страница ~A" num)))
function
&rest initargs &key target-path page-size template page-title-fn page-filename-fn

Creates additional HTML files with post's excerpts grouped by tag names.

By default some.html, another.html filenames are used, but this +can be overriden by PAGE-FILENAME-FN argument.

The same way page title may be overriden by providing a function as PAGE-TITLE-FN argument.

Arguments:

PAGE-FILENAME-FN:

A callback to change page titles.

Accepts single argument - a tag name and should return a pathname

By default, for tag "foo-bar" it returns foo-bar.html.

If site has "clean urls" setting enabled, then additional +transformation to the pathname will be +applied automatically.

PAGE-TITLE-FN:

A callback to change page titles.

Accepts single argument - a tag name and should return a string.

For example, here is how you can translate page title into a russian:

(tags-index :target-path #P"ru/"
+            :page-title-fn (lambda (tag-name)
+                             (fmt "Записи с тегом ~A" tag-name)))

Feeds

function
&KEY (TARGET-PATH #P"atom.xml") (LIMIT 10)

Creates an XML feed in Atom format at TARGET-PATH.

Only a LIMIT latest posts are included into the feed.

function
&KEY (TARGET-PATH #P"rss.xml") (LIMIT 10)

Creates an XML feed in Rss format at TARGET-PATH.

Only a LIMIT latest posts are included into the feed.

Plugins

Enables Disqus on the page.

To make it work, you have to register your site at Disqus and provide a short site name to the function.

function
&KEY FORCE (TAG-NAME "math")

Enables MathJAX on the page if it's content has tag equal to the TAG-NAME or if FORCE argument was given.

+
+
+ + \ No newline at end of file diff --git a/references.json b/references.json new file mode 100644 index 0000000..6bb2471 --- /dev/null +++ b/references.json @@ -0,0 +1 @@ +[{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FUTILS-3ADO-FILES-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29","OBJECT":"STATICL/UTILS:DO-FILES","LOCATIVE":["MACRO"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FUTILS-3FMacros-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/UTILS?Macros-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FUTILS-3ANORMALIZE-PLIST-20FUNCTION-29","OBJECT":"STATICL/UTILS:NORMALIZE-PLIST","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FUTILS-3AASSERT-ABSOLUTE-URL-20FUNCTION-29","OBJECT":"STATICL/UTILS:ASSERT-ABSOLUTE-URL","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FUTILS-3AABSOLUTE-URL-P-20FUNCTION-29","OBJECT":"STATICL/UTILS:ABSOLUTE-URL-P","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FUTILS-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/UTILS?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2813-29-20BASE-CHAR-20-2E-20-22STATICL-2FUTILS-22-29-20PACKAGE-29","OBJECT":"STATICL/UTILS","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FUTILS-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/UTILS?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FURL-3AWITH-BASE-URL-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29","OBJECT":"STATICL/URL:WITH-BASE-URL","LOCATIVE":["MACRO"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FURL-3FMacros-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/URL?Macros-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FURL-3AOBJECT-URL-20GENERIC-FUNCTION-29","OBJECT":"STATICL/URL:OBJECT-URL","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FURL-3FGenerics-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/URL?Generics-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2811-29-20BASE-CHAR-20-2E-20-22STATICL-2FURL-22-29-20PACKAGE-29","OBJECT":"STATICL/URL","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FURL-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/URL?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FTHEME-3ATEMPLATE-VARS-20GENERIC-FUNCTION-29","OBJECT":"STATICL/THEME:TEMPLATE-VARS","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FTHEME-3ARENDER-20GENERIC-FUNCTION-29","OBJECT":"STATICL/THEME:RENDER","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FTHEME-3ALIST-STATIC-20GENERIC-FUNCTION-29","OBJECT":"STATICL/THEME:LIST-STATIC","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FTHEME-3ACOPY-STATIC-20GENERIC-FUNCTION-29","OBJECT":"STATICL/THEME:COPY-STATIC","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FTHEME-3FGenerics-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/THEME?Generics-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FTHEME-3ATHEME-PATH-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FTHEME-3ATHEME-29-29","OBJECT":"STATICL/THEME:THEME-PATH","LOCATIVE":["READER","THEME"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FTHEME-3ATHEME-20CLASS-29","OBJECT":"STATICL/THEME:THEME","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FTHEME-24THEME-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/THEME$THEME?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FTHEME-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/THEME?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2813-29-20BASE-CHAR-20-2E-20-22STATICL-2FTHEME-22-29-20PACKAGE-29","OBJECT":"STATICL/THEME","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FTHEME-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/THEME?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FTAG-3ATAG-NAME-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FTAG-3ATAG-29-29","OBJECT":"STATICL/TAG:TAG-NAME","LOCATIVE":["READER","TAG"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FTAG-3ATAG-20CLASS-29","OBJECT":"STATICL/TAG:TAG","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FTAG-24TAG-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/TAG$TAG?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FTAG-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/TAG?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2811-29-20BASE-CHAR-20-2E-20-22STATICL-2FTAG-22-29-20PACKAGE-29","OBJECT":"STATICL/TAG","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FTAG-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/TAG?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FSKELETON-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/SKELETON?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2816-29-20BASE-CHAR-20-2E-20-22STATICL-2FSKELETON-22-29-20PACKAGE-29","OBJECT":"STATICL/SKELETON","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FSKELETON-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/SKELETON?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-20FUNCTION-29","OBJECT":"STATICL/SITE:SITE","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3AMAKE-SITE-20FUNCTION-29","OBJECT":"STATICL/SITE:MAKE-SITE","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FSITE-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/SITE?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-URL-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29","OBJECT":"STATICL/SITE:SITE-URL","LOCATIVE":["READER","SITE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-TITLE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29","OBJECT":"STATICL/SITE:SITE-TITLE","LOCATIVE":["READER","SITE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-THEME-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29","OBJECT":"STATICL/SITE:SITE-THEME","LOCATIVE":["READER","SITE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-PIPELINE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29","OBJECT":"STATICL/SITE:SITE-PIPELINE","LOCATIVE":["READER","SITE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-NAVIGATION-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29","OBJECT":"STATICL/SITE:SITE-NAVIGATION","LOCATIVE":["READER","SITE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-DESCRIPTION-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29","OBJECT":"STATICL/SITE:SITE-DESCRIPTION","LOCATIVE":["READER","SITE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-CONTENT-ROOT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29","OBJECT":"STATICL/SITE:SITE-CONTENT-ROOT","LOCATIVE":["READER","SITE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-CHARSET-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29","OBJECT":"STATICL/SITE:SITE-CHARSET","LOCATIVE":["READER","SITE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ACLEAN-URLS-P-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29","OBJECT":"STATICL/SITE:CLEAN-URLS-P","LOCATIVE":["READER","SITE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSITE-3ASITE-20CLASS-29","OBJECT":"STATICL/SITE:SITE","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FSITE-24SITE-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/SITE$SITE?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FSITE-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/SITE?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2812-29-20BASE-CHAR-20-2E-20-22STATICL-2FSITE-22-29-20PACKAGE-29","OBJECT":"STATICL/SITE","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FSITE-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/SITE?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FSERVER-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/SERVER?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2814-29-20BASE-CHAR-20-2E-20-22STATICL-2FSERVER-22-29-20PACKAGE-29","OBJECT":"STATICL/SERVER","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FSERVER-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/SERVER?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FRSYNC-3ARSYNC-20FUNCTION-29","OBJECT":"STATICL/RSYNC:RSYNC","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FRSYNC-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/RSYNC?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FRSYNC-3ARSYNC-HOST-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FRSYNC-3ARSYNC-29-29","OBJECT":"STATICL/RSYNC:RSYNC-HOST","LOCATIVE":["READER","RSYNC"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FRSYNC-3ARSYNC-20CLASS-29","OBJECT":"STATICL/RSYNC:RSYNC","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FRSYNC-24RSYNC-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/RSYNC$RSYNC?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FRSYNC-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/RSYNC?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2813-29-20BASE-CHAR-20-2E-20-22STATICL-2FRSYNC-22-29-20PACKAGE-29","OBJECT":"STATICL/RSYNC","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FRSYNC-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/RSYNC?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPLUGINS-2FSITEMAP-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PLUGINS/SITEMAP?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPLUGINS-2FSITEMAP-3ASITEMAP-20CLASS-29","OBJECT":"STATICL/PLUGINS/SITEMAP:SITEMAP","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FPLUGINS-2FSITEMAP-24SITEMAP-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/PLUGINS/SITEMAP$SITEMAP?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPLUGINS-2FSITEMAP-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PLUGINS/SITEMAP?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2823-29-20BASE-CHAR-20-2E-20-22STATICL-2FPLUGINS-2FSITEMAP-22-29-20PACKAGE-29","OBJECT":"STATICL/PLUGINS/SITEMAP","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FPLUGINS-2FSITEMAP-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/PLUGINS/SITEMAP?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPLUGINS-2FMATHJAX-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PLUGINS/MATHJAX?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPLUGINS-2FMATHJAX-3AMATH-TAG-NAME-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FPLUGINS-2FMATHJAX-3AMATHJAX-29-29","OBJECT":"STATICL/PLUGINS/MATHJAX:MATH-TAG-NAME","LOCATIVE":["READER","MATHJAX"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPLUGINS-2FMATHJAX-3AFORCE-MATHJAX-P-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FPLUGINS-2FMATHJAX-3AMATHJAX-29-29","OBJECT":"STATICL/PLUGINS/MATHJAX:FORCE-MATHJAX-P","LOCATIVE":["READER","MATHJAX"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPLUGINS-2FMATHJAX-3AMATHJAX-20CLASS-29","OBJECT":"STATICL/PLUGINS/MATHJAX:MATHJAX","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FPLUGINS-2FMATHJAX-24MATHJAX-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/PLUGINS/MATHJAX$MATHJAX?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPLUGINS-2FMATHJAX-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PLUGINS/MATHJAX?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2823-29-20BASE-CHAR-20-2E-20-22STATICL-2FPLUGINS-2FMATHJAX-22-29-20PACKAGE-29","OBJECT":"STATICL/PLUGINS/MATHJAX","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FPLUGINS-2FMATHJAX-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/PLUGINS/MATHJAX?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPLUGINS-2FDISQUS-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PLUGINS/DISQUS?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPLUGINS-2FDISQUS-3ADISQUS-SHORTNAME-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FPLUGINS-2FDISQUS-3ADISQUS-29-29","OBJECT":"STATICL/PLUGINS/DISQUS:DISQUS-SHORTNAME","LOCATIVE":["READER","DISQUS"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPLUGINS-2FDISQUS-3ADISQUS-20CLASS-29","OBJECT":"STATICL/PLUGINS/DISQUS:DISQUS","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FPLUGINS-2FDISQUS-24DISQUS-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/PLUGINS/DISQUS$DISQUS?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPLUGINS-2FDISQUS-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PLUGINS/DISQUS?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2822-29-20BASE-CHAR-20-2E-20-22STATICL-2FPLUGINS-2FDISQUS-22-29-20PACKAGE-29","OBJECT":"STATICL/PLUGINS/DISQUS","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FPLUGINS-2FDISQUS-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/PLUGINS/DISQUS?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPLUGIN-3AMAKE-PLUGIN-20FUNCTION-29","OBJECT":"STATICL/PLUGIN:MAKE-PLUGIN","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPLUGIN-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PLUGIN?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPLUGIN-3APLUGIN-20CLASS-29","OBJECT":"STATICL/PLUGIN:PLUGIN","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FPLUGIN-24PLUGIN-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/PLUGIN$PLUGIN?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPLUGIN-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PLUGIN?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2814-29-20BASE-CHAR-20-2E-20-22STATICL-2FPLUGIN-22-29-20PACKAGE-29","OBJECT":"STATICL/PLUGIN","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FPLUGIN-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/PLUGIN?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPIPELINE-3AREMOVE-ITEM-20FUNCTION-29","OBJECT":"STATICL/PIPELINE:REMOVE-ITEM","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPIPELINE-3APRODUCE-ITEM-20FUNCTION-29","OBJECT":"STATICL/PIPELINE:PRODUCE-ITEM","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPIPELINE-3AEXECUTE-PIPELINE-20FUNCTION-29","OBJECT":"STATICL/PIPELINE:EXECUTE-PIPELINE","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPIPELINE-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PIPELINE?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FPIPELINE-3APROCESS-ITEMS-20GENERIC-FUNCTION-29","OBJECT":"STATICL/PIPELINE:PROCESS-ITEMS","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FPIPELINE-3FGenerics-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/PIPELINE?Generics-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2816-29-20BASE-CHAR-20-2E-20-22STATICL-2FPIPELINE-22-29-20PACKAGE-29","OBJECT":"STATICL/PIPELINE","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FPIPELINE-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/PIPELINE?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FNAVIGATION-3AMENU-20FUNCTION-29","OBJECT":"STATICL/NAVIGATION:MENU","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FNAVIGATION-3AITEM-20FUNCTION-29","OBJECT":"STATICL/NAVIGATION:ITEM","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FNAVIGATION-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/NAVIGATION?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FNAVIGATION-3AMENU-ITEMS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FNAVIGATION-3AMENU-29-29","OBJECT":"STATICL/NAVIGATION:MENU-ITEMS","LOCATIVE":["READER","MENU"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FNAVIGATION-3AMENU-20CLASS-29","OBJECT":"STATICL/NAVIGATION:MENU","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FNAVIGATION-24MENU-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/NAVIGATION$MENU?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FNAVIGATION-3AMENU-ITEM-URL-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FNAVIGATION-3AITEM-29-29","OBJECT":"STATICL/NAVIGATION:MENU-ITEM-URL","LOCATIVE":["READER","ITEM"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FNAVIGATION-3AMENU-ITEM-TITLE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FNAVIGATION-3AITEM-29-29","OBJECT":"STATICL/NAVIGATION:MENU-ITEM-TITLE","LOCATIVE":["READER","ITEM"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FNAVIGATION-3AITEM-20CLASS-29","OBJECT":"STATICL/NAVIGATION:ITEM","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FNAVIGATION-24ITEM-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/NAVIGATION$ITEM?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FNAVIGATION-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/NAVIGATION?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FNAVIGATION-22-29-20PACKAGE-29","OBJECT":"STATICL/NAVIGATION","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FNAVIGATION-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/NAVIGATION?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FLINKS-2FPREV-NEXT-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/LINKS/PREV-NEXT?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FLINKS-2FPREV-NEXT-3APREV-NEXT-LINKS-20CLASS-29","OBJECT":"STATICL/LINKS/PREV-NEXT:PREV-NEXT-LINKS","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FLINKS-2FPREV-NEXT-24PREV-NEXT-LINKS-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/LINKS/PREV-NEXT$PREV-NEXT-LINKS?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FLINKS-2FPREV-NEXT-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/LINKS/PREV-NEXT?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2823-29-20BASE-CHAR-20-2E-20-22STATICL-2FLINKS-2FPREV-NEXT-22-29-20PACKAGE-29","OBJECT":"STATICL/LINKS/PREV-NEXT","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FLINKS-2FPREV-NEXT-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/LINKS/PREV-NEXT?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FLINKS-2FLINK-3ALINK-20FUNCTION-29","OBJECT":"STATICL/LINKS/LINK:LINK","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FLINKS-2FLINK-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/LINKS/LINK?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FLINKS-2FLINK-3ALINK-CONTENT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FLINKS-2FLINK-3ALINK-29-29","OBJECT":"STATICL/LINKS/LINK:LINK-CONTENT","LOCATIVE":["READER","LINK"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FLINKS-2FLINK-3ALINK-20CLASS-29","OBJECT":"STATICL/LINKS/LINK:LINK","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FLINKS-2FLINK-24LINK-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/LINKS/LINK$LINK?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FLINKS-2FLINK-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/LINKS/LINK?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FLINKS-2FLINK-22-29-20PACKAGE-29","OBJECT":"STATICL/LINKS/LINK","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FLINKS-2FLINK-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/LINKS/LINK?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINJECTIONS-3AADD-INJECTION-20GENERIC-FUNCTION-29","OBJECT":"STATICL/INJECTIONS:ADD-INJECTION","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FINJECTIONS-3FGenerics-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/INJECTIONS?Generics-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINJECTIONS-3ACONTENT-INJECTIONS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINJECTIONS-3ACONTENT-WITH-INJECTIONS-MIXIN-29-29","OBJECT":"STATICL/INJECTIONS:CONTENT-INJECTIONS","LOCATIVE":["READER","CONTENT-WITH-INJECTIONS-MIXIN"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINJECTIONS-3ACONTENT-WITH-INJECTIONS-MIXIN-20CLASS-29","OBJECT":"STATICL/INJECTIONS:CONTENT-WITH-INJECTIONS-MIXIN","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FINJECTIONS-24CONTENT-WITH-INJECTIONS-MIXIN-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/INJECTIONS$CONTENT-WITH-INJECTIONS-MIXIN?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FINJECTIONS-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/INJECTIONS?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FINJECTIONS-22-29-20PACKAGE-29","OBJECT":"STATICL/INJECTIONS","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FINJECTIONS-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/INJECTIONS?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FINDEX-2FTAGS-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/INDEX/TAGS?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FTAGS-3APAGE-TITLE-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FTAGS-3ATAGS-INDEX-29-29","OBJECT":"STATICL/INDEX/TAGS:PAGE-TITLE-FN","LOCATIVE":["READER","TAGS-INDEX"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FTAGS-3APAGE-FILENAME-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FTAGS-3ATAGS-INDEX-29-29","OBJECT":"STATICL/INDEX/TAGS:PAGE-FILENAME-FN","LOCATIVE":["READER","TAGS-INDEX"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FTAGS-3ATAGS-INDEX-20CLASS-29","OBJECT":"STATICL/INDEX/TAGS:TAGS-INDEX","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FINDEX-2FTAGS-24TAGS-INDEX-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/INDEX/TAGS$TAGS-INDEX?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FINDEX-2FTAGS-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/INDEX/TAGS?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FINDEX-2FTAGS-22-29-20PACKAGE-29","OBJECT":"STATICL/INDEX/TAGS","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FINDEX-2FTAGS-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/INDEX/TAGS?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FINDEX-2FPAGINATED-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/INDEX/PAGINATED?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FPAGINATED-3APAGE-TITLE-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FPAGINATED-3APAGINATED-INDEX-29-29","OBJECT":"STATICL/INDEX/PAGINATED:PAGE-TITLE-FN","LOCATIVE":["READER","PAGINATED-INDEX"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FPAGINATED-3APAGE-FILENAME-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FPAGINATED-3APAGINATED-INDEX-29-29","OBJECT":"STATICL/INDEX/PAGINATED:PAGE-FILENAME-FN","LOCATIVE":["READER","PAGINATED-INDEX"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FPAGINATED-3APAGINATED-INDEX-20CLASS-29","OBJECT":"STATICL/INDEX/PAGINATED:PAGINATED-INDEX","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FINDEX-2FPAGINATED-24PAGINATED-INDEX-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/INDEX/PAGINATED$PAGINATED-INDEX?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FINDEX-2FPAGINATED-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/INDEX/PAGINATED?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2823-29-20BASE-CHAR-20-2E-20-22STATICL-2FINDEX-2FPAGINATED-22-29-20PACKAGE-29","OBJECT":"STATICL/INDEX/PAGINATED","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FINDEX-2FPAGINATED-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/INDEX/PAGINATED?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3APREV-PAGE-20-2840ANTS-DOC-2FLOCATIVES-3AACCESSOR-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29","OBJECT":"STATICL/INDEX/BASE:PREV-PAGE","LOCATIVE":["ACCESSOR","INDEX-PAGE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3ANEXT-PAGE-20-2840ANTS-DOC-2FLOCATIVES-3AACCESSOR-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29","OBJECT":"STATICL/INDEX/BASE:NEXT-PAGE","LOCATIVE":["ACCESSOR","INDEX-PAGE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3APREV-PAGE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29","OBJECT":"STATICL/INDEX/BASE:PREV-PAGE","LOCATIVE":["READER","INDEX-PAGE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3APAGE-TITLE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29","OBJECT":"STATICL/INDEX/BASE:PAGE-TITLE","LOCATIVE":["READER","INDEX-PAGE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3APAGE-TARGET-PATH-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29","OBJECT":"STATICL/INDEX/BASE:PAGE-TARGET-PATH","LOCATIVE":["READER","INDEX-PAGE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3APAGE-ITEMS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29","OBJECT":"STATICL/INDEX/BASE:PAGE-ITEMS","LOCATIVE":["READER","INDEX-PAGE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3ANEXT-PAGE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29","OBJECT":"STATICL/INDEX/BASE:NEXT-PAGE","LOCATIVE":["READER","INDEX-PAGE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-TEMPLATE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29","OBJECT":"STATICL/CONTENT:CONTENT-TEMPLATE","LOCATIVE":["READER","INDEX-PAGE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-20CLASS-29","OBJECT":"STATICL/INDEX/BASE:INDEX-PAGE","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FINDEX-2FBASE-24INDEX-PAGE-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/INDEX/BASE$INDEX-PAGE?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3APAGE-SIZE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3ABASE-INDEX-29-29","OBJECT":"STATICL/INDEX/BASE:PAGE-SIZE","LOCATIVE":["READER","BASE-INDEX"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3AINDEX-TARGET-PATH-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3ABASE-INDEX-29-29","OBJECT":"STATICL/INDEX/BASE:INDEX-TARGET-PATH","LOCATIVE":["READER","BASE-INDEX"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-TEMPLATE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3ABASE-INDEX-29-29","OBJECT":"STATICL/CONTENT:CONTENT-TEMPLATE","LOCATIVE":["READER","BASE-INDEX"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FINDEX-2FBASE-3ABASE-INDEX-20CLASS-29","OBJECT":"STATICL/INDEX/BASE:BASE-INDEX","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FINDEX-2FBASE-24BASE-INDEX-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/INDEX/BASE$BASE-INDEX?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FINDEX-2FBASE-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/INDEX/BASE?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FINDEX-2FBASE-22-29-20PACKAGE-29","OBJECT":"STATICL/INDEX/BASE","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FINDEX-2FBASE-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/INDEX/BASE?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FFORMAT-3ATO-HTML-20GENERIC-FUNCTION-29","OBJECT":"STATICL/FORMAT:TO-HTML","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FFORMAT-3FGenerics-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/FORMAT?Generics-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2814-29-20BASE-CHAR-20-2E-20-22STATICL-2FFORMAT-22-29-20PACKAGE-29","OBJECT":"STATICL/FORMAT","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FFORMAT-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/FORMAT?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FFILTER-3FMacros-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/FILTER?Macros-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FFILTER-3APIPELINE-ITEMS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FFILTER-3AFILTER-29-29","OBJECT":"STATICL/FILTER:PIPELINE-ITEMS","LOCATIVE":["READER","FILTER"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FFILTER-3AFILTER-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FFILTER-3AFILTER-29-29","OBJECT":"STATICL/FILTER:FILTER-FN","LOCATIVE":["READER","FILTER"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FFILTER-3AFILTER-20CLASS-29","OBJECT":"STATICL/FILTER:FILTER","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FFILTER-24FILTER-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/FILTER$FILTER?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FFILTER-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/FILTER?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2814-29-20BASE-CHAR-20-2E-20-22STATICL-2FFILTER-22-29-20PACKAGE-29","OBJECT":"STATICL/FILTER","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FFILTER-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/FILTER?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FFEEDS-2FRSS-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/FEEDS/RSS?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FFEEDS-2FRSS-3ARSS-20CLASS-29","OBJECT":"STATICL/FEEDS/RSS:RSS","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FFEEDS-2FRSS-24RSS-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/FEEDS/RSS$RSS?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FFEEDS-2FRSS-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/FEEDS/RSS?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2817-29-20BASE-CHAR-20-2E-20-22STATICL-2FFEEDS-2FRSS-22-29-20PACKAGE-29","OBJECT":"STATICL/FEEDS/RSS","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FFEEDS-2FRSS-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/FEEDS/RSS?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FFEEDS-2FATOM-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/FEEDS/ATOM?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FFEEDS-2FATOM-3AATOM-20CLASS-29","OBJECT":"STATICL/FEEDS/ATOM:ATOM","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FFEEDS-2FATOM-24ATOM-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/FEEDS/ATOM$ATOM?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FFEEDS-2FATOM-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/FEEDS/ATOM?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FFEEDS-2FATOM-22-29-20PACKAGE-29","OBJECT":"STATICL/FEEDS/ATOM","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FFEEDS-2FATOM-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/FEEDS/ATOM?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCURRENT-ROOT-3AWITH-CURRENT-ROOT-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29","OBJECT":"STATICL/CURRENT-ROOT:WITH-CURRENT-ROOT","LOCATIVE":["MACRO"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCURRENT-ROOT-3FMacros-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CURRENT-ROOT?Macros-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCURRENT-ROOT-3ACURRENT-ROOT-20FUNCTION-29","OBJECT":"STATICL/CURRENT-ROOT:CURRENT-ROOT","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCURRENT-ROOT-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CURRENT-ROOT?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2820-29-20BASE-CHAR-20-2E-20-22STATICL-2FCURRENT-ROOT-22-29-20PACKAGE-29","OBJECT":"STATICL/CURRENT-ROOT","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCURRENT-ROOT-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CURRENT-ROOT?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-2FREADER-3AREAD-CONTENT-FILE-20FUNCTION-29","OBJECT":"STATICL/CONTENT/READER:READ-CONTENT-FILE","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-2FREADER-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT/READER?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2822-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-2FREADER-22-29-20PACKAGE-29","OBJECT":"STATICL/CONTENT/READER","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-2FREADER-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT/READER?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-2FPOST-3APOSTP-20FUNCTION-29","OBJECT":"STATICL/CONTENT/POST:POSTP","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-2FPOST-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT/POST?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-2FPOST-3APOST-20CLASS-29","OBJECT":"STATICL/CONTENT/POST:POST","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-2FPOST-24POST-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT/POST$POST?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-2FPOST-3APOST-TYPE-20CLASS-29","OBJECT":"STATICL/CONTENT/POST:POST-TYPE","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-2FPOST-24POST-TYPE-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT/POST$POST-TYPE?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-2FPOST-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT/POST?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2820-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-2FPOST-22-29-20PACKAGE-29","OBJECT":"STATICL/CONTENT/POST","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-2FPOST-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT/POST?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-2FPAGE-3APAGE-20CLASS-29","OBJECT":"STATICL/CONTENT/PAGE:PAGE","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-2FPAGE-24PAGE-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT/PAGE$PAGE?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-2FPAGE-3APAGE-TYPE-20CLASS-29","OBJECT":"STATICL/CONTENT/PAGE:PAGE-TYPE","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-2FPAGE-24PAGE-TYPE-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT/PAGE$PAGE-TYPE?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-2FPAGE-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT/PAGE?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2820-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-2FPAGE-22-29-20PACKAGE-29","OBJECT":"STATICL/CONTENT/PAGE","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-2FPAGE-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT/PAGE?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-2FHTML-CONTENT-3AHAS-MORE-CONTENT-P-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT/HTML-CONTENT:HAS-MORE-CONTENT-P","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-2FHTML-CONTENT-3ACONTENT-HTML-EXCERPT-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT/HTML-CONTENT:CONTENT-HTML-EXCERPT","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-2FHTML-CONTENT-3ACONTENT-HTML-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT/HTML-CONTENT:CONTENT-HTML","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-2FHTML-CONTENT-3FGenerics-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT/HTML-CONTENT?Generics-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2828-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-2FHTML-CONTENT-22-29-20PACKAGE-29","OBJECT":"STATICL/CONTENT/HTML-CONTENT","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-2FHTML-CONTENT-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT/HTML-CONTENT?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-PIPELINE-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT-PIPELINE?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-PIPELINE-3AEXCLUDE-PATTERNS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-PIPELINE-3ALOAD-CONTENT-29-29","OBJECT":"STATICL/CONTENT-PIPELINE:EXCLUDE-PATTERNS","LOCATIVE":["READER","LOAD-CONTENT"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-PIPELINE-3ALOAD-CONTENT-20CLASS-29","OBJECT":"STATICL/CONTENT-PIPELINE:LOAD-CONTENT","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-PIPELINE-24LOAD-CONTENT-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT-PIPELINE$LOAD-CONTENT?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-PIPELINE-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT-PIPELINE?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2824-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-PIPELINE-22-29-20PACKAGE-29","OBJECT":"STATICL/CONTENT-PIPELINE","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-PIPELINE-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT-PIPELINE?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ASET-METADATA-20FUNCTION-29","OBJECT":"STATICL/CONTENT:SET-METADATA","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3AWRITE-CONTENT-TO-STREAM-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT:WRITE-CONTENT-TO-STREAM","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3AWRITE-CONTENT-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT:WRITE-CONTENT","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ASUPPORTED-CONTENT-TYPES-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT:SUPPORTED-CONTENT-TYPES","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3AREAD-CONTENTS-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT:READ-CONTENTS","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3AREAD-CONTENT-FROM-DISK-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT:READ-CONTENT-FROM-DISK","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3AHAS-TAG-P-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT:HAS-TAG-P","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3AGET-TARGET-FILENAME-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CONTENT:GET-TARGET-FILENAME","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-3FGenerics-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT?Generics-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-METADATA-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-29-29","OBJECT":"STATICL/CONTENT:CONTENT-METADATA","LOCATIVE":["READER","CONTENT"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-20CLASS-29","OBJECT":"STATICL/CONTENT:CONTENT","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-24CONTENT-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT$CONTENT?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-TITLE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-WITH-TITLE-MIXIN-29-29","OBJECT":"STATICL/CONTENT:CONTENT-TITLE","LOCATIVE":["READER","CONTENT-WITH-TITLE-MIXIN"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-WITH-TITLE-MIXIN-20CLASS-29","OBJECT":"STATICL/CONTENT:CONTENT-WITH-TITLE-MIXIN","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-24CONTENT-WITH-TITLE-MIXIN-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT$CONTENT-WITH-TITLE-MIXIN?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-TAGS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-WITH-TAGS-MIXIN-29-29","OBJECT":"STATICL/CONTENT:CONTENT-TAGS","LOCATIVE":["READER","CONTENT-WITH-TAGS-MIXIN"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-WITH-TAGS-MIXIN-20CLASS-29","OBJECT":"STATICL/CONTENT:CONTENT-WITH-TAGS-MIXIN","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-24CONTENT-WITH-TAGS-MIXIN-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT$CONTENT-WITH-TAGS-MIXIN?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-FILE-TYPE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-TYPE-29-29","OBJECT":"STATICL/CONTENT:CONTENT-FILE-TYPE","LOCATIVE":["READER","CONTENT-TYPE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-CLASS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-TYPE-29-29","OBJECT":"STATICL/CONTENT:CONTENT-CLASS","LOCATIVE":["READER","CONTENT-TYPE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-TYPE-20CLASS-29","OBJECT":"STATICL/CONTENT:CONTENT-TYPE","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-24CONTENT-TYPE-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT$CONTENT-TYPE?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-TEXT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29","OBJECT":"STATICL/CONTENT:CONTENT-TEXT","LOCATIVE":["READER","CONTENT-FROM-FILE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-TEMPLATE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29","OBJECT":"STATICL/CONTENT:CONTENT-TEMPLATE","LOCATIVE":["READER","CONTENT-FROM-FILE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-FORMAT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29","OBJECT":"STATICL/CONTENT:CONTENT-FORMAT","LOCATIVE":["READER","CONTENT-FROM-FILE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-FILE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29","OBJECT":"STATICL/CONTENT:CONTENT-FILE","LOCATIVE":["READER","CONTENT-FROM-FILE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-EXCERPT-SEPARATOR-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29","OBJECT":"STATICL/CONTENT:CONTENT-EXCERPT-SEPARATOR","LOCATIVE":["READER","CONTENT-FROM-FILE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-CREATED-AT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29","OBJECT":"STATICL/CONTENT:CONTENT-CREATED-AT","LOCATIVE":["READER","CONTENT-FROM-FILE"]},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCONTENT-3ACONTENT-FROM-FILE-20CLASS-29","OBJECT":"STATICL/CONTENT:CONTENT-FROM-FILE","LOCATIVE":"CLASS"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-24CONTENT-FROM-FILE-3FCLASS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT$CONTENT-FROM-FILE?CLASS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCONTENT-3FClasses-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CONTENT?Classes-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2815-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-22-29-20PACKAGE-29","OBJECT":"STATICL/CONTENT","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCONTENT-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CONTENT?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCLEAN-URLS-3ATRANSFORM-URL-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CLEAN-URLS:TRANSFORM-URL","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FCLEAN-URLS-3ATRANSFORM-FILENAME-20GENERIC-FUNCTION-29","OBJECT":"STATICL/CLEAN-URLS:TRANSFORM-FILENAME","LOCATIVE":"GENERIC-FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FCLEAN-URLS-3FGenerics-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/CLEAN-URLS?Generics-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FCLEAN-URLS-22-29-20PACKAGE-29","OBJECT":"STATICL/CLEAN-URLS","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FCLEAN-URLS-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/CLEAN-URLS?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-2FBUILDER-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL/BUILDER?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-2815-29-20BASE-CHAR-20-2E-20-22STATICL-2FBUILDER-22-29-20PACKAGE-29","OBJECT":"STATICL/BUILDER","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-2FBUILDER-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL/BUILDER?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSERVER-3ASERVE-20FUNCTION-29","OBJECT":"STATICL/SERVER:SERVE","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FSKELETON-3ANEW-SITE-20FUNCTION-29","OBJECT":"STATICL/SKELETON:NEW-SITE","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-2FBUILDER-3AGENERATE-20FUNCTION-29","OBJECT":"STATICL/BUILDER:GENERATE","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-7C-40STATICL-3FFunctions-SECTION-7C-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::|@STATICL?Functions-SECTION|","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28-23A-28-287-29-20BASE-CHAR-20-2E-20-22STATICL-22-29-20PACKAGE-29","OBJECT":"STATICL","LOCATIVE":"PACKAGE"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40STATICL-3FPACKAGE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@STATICL?PACKAGE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/api/#x-28STATICL-DOCS-2FINDEX-3A-3A-40API-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@API","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FPLUGINS-2FMATHJAX-3AMATHJAX-20FUNCTION-29","OBJECT":"STATICL/PLUGINS/MATHJAX:MATHJAX","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FPLUGINS-2FDISQUS-3ADISQUS-20FUNCTION-29","OBJECT":"STATICL/PLUGINS/DISQUS:DISQUS","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FPLUGINS-2FSITEMAP-3ASITEMAP-20FUNCTION-29","OBJECT":"STATICL/PLUGINS/SITEMAP:SITEMAP","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FFEEDS-2FRSS-3ARSS-20FUNCTION-29","OBJECT":"STATICL/FEEDS/RSS:RSS","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FFEEDS-2FATOM-3AATOM-20FUNCTION-29","OBJECT":"STATICL/FEEDS/ATOM:ATOM","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FINDEX-2FTAGS-3ATAGS-INDEX-20FUNCTION-29","OBJECT":"STATICL/INDEX/TAGS:TAGS-INDEX","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FINDEX-2FPAGINATED-3APAGINATED-INDEX-20FUNCTION-29","OBJECT":"STATICL/INDEX/PAGINATED:PAGINATED-INDEX","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FLINKS-2FPREV-NEXT-3APREV-NEXT-LINKS-20FUNCTION-29","OBJECT":"STATICL/LINKS/PREV-NEXT:PREV-NEXT-LINKS","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FFILTER-3AFILTER-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29","OBJECT":"STATICL/FILTER:FILTER","LOCATIVE":["MACRO"]},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-2FCONTENT-PIPELINE-3ALOAD-CONTENT-20FUNCTION-29","OBJECT":"STATICL/CONTENT-PIPELINE:LOAD-CONTENT","LOCATIVE":"FUNCTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-DOCS-2FPIPELINE-3A-3A-40BUILDING-BLOCKS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/PIPELINE::@BUILDING-BLOCKS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-DOCS-2FPIPELINE-3A-3A-40IDEA-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/PIPELINE::@IDEA","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/pipeline/#x-28STATICL-DOCS-2FPIPELINE-3A-3A-40PIPELINE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/PIPELINE::@PIPELINE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/making-a-site/#x-28STATICL-DOCS-2FMAKING-A-STATIC-SITE-3A-3A-40MAKING-A-SITE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/MAKING-A-STATIC-SITE::@MAKING-A-SITE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/#x-28STATICL-DOCS-2FCONTRIBUTION-3A-3A-40CONTRIBUTORS-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/CONTRIBUTION::@CONTRIBUTORS","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/#x-28STATICL-DOCS-2FCONTRIBUTION-3A-3A-40CONTRIBUTION-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/CONTRIBUTION::@CONTRIBUTION","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/#x-28STATICL-DOCS-2FSITES-3A-3A-40SITES-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/SITES::@SITES","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/#x-28STATICL-DOCS-2FROADMAP-3A-3A-40ROADMAP-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/ROADMAP::@ROADMAP","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/#x-28STATICL-DOCS-2FINTRODUCTION-3A-3A-40INTRODUCTION-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INTRODUCTION::@INTRODUCTION","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/#x-28STATICL-DOCS-2FINDEX-3A-3A-40FEATURES-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@FEATURES","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/#x-28STATICL-DOCS-2FINDEX-3A-3A-40RATIONALE-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@RATIONALE","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/#x-28STATICL-DOCS-2FINDEX-3A-3A-40INSTALLATION-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX::@INSTALLATION","LOCATIVE":"SECTION"},{"URL":"https://40ants.com/staticl/#x-28-23A-28-287-29-20BASE-CHAR-20-2E-20-22staticl-22-29-20ASDF-2FSYSTEM-3ASYSTEM-29","OBJECT":"staticl","LOCATIVE":"SYSTEM"},{"URL":"https://40ants.com/staticl/#x-28STATICL-DOCS-2FINDEX-3A-40INDEX-2040ANTS-DOC-2FLOCATIVES-3ASECTION-29","OBJECT":"STATICL-DOCS/INDEX:@INDEX","LOCATIVE":"SECTION"}] \ No newline at end of file diff --git a/search/index.html b/search/index.html new file mode 100644 index 0000000..a783104 --- /dev/null +++ b/search/index.html @@ -0,0 +1,105 @@ + + + + Search Page + + + + + + + + + + + + + + + + + + + +
Fork me on GitHub + + +
+ + + + + +
+
+
+ + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 0000000..6f8b27e --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"docnames":["../index","../making-a-site","../pipeline","../api"],"filenames":["../","../making-a-site/","../pipeline/","../api/"],"objects":{"STATICL/CONTENT-PIPELINE":{"LOAD-CONTENT":[3,6,2,"x-28STATICL-2FCONTENT-PIPELINE-3ALOAD-CONTENT-20FUNCTION-29"],"EXCLUDE-PATTERNS":[3,18,2,"x-28STATICL-2FCONTENT-PIPELINE-3AEXCLUDE-PATTERNS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-PIPELINE-3ALOAD-CONTENT-29-29"]},"STATICL/FILTER":{"FILTER":[3,12,2,"x-28STATICL-2FFILTER-3AFILTER-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"],"FILTER-FN":[3,18,2,"x-28STATICL-2FFILTER-3AFILTER-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FFILTER-3AFILTER-29-29"],"PIPELINE-ITEMS":[3,18,2,"x-28STATICL-2FFILTER-3APIPELINE-ITEMS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FFILTER-3AFILTER-29-29"]},"STATICL/LINKS/PREV-NEXT":{"PREV-NEXT-LINKS":[3,6,2,"x-28STATICL-2FLINKS-2FPREV-NEXT-3APREV-NEXT-LINKS-20FUNCTION-29"]},"STATICL/INDEX/PAGINATED":{"PAGINATED-INDEX":[3,6,2,"x-28STATICL-2FINDEX-2FPAGINATED-3APAGINATED-INDEX-20FUNCTION-29"],"PAGE-FILENAME-FN":[3,18,2,"x-28STATICL-2FINDEX-2FPAGINATED-3APAGE-FILENAME-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FPAGINATED-3APAGINATED-INDEX-29-29"],"PAGE-TITLE-FN":[3,18,2,"x-28STATICL-2FINDEX-2FPAGINATED-3APAGE-TITLE-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FPAGINATED-3APAGINATED-INDEX-29-29"]},"STATICL/INDEX/TAGS":{"TAGS-INDEX":[3,6,2,"x-28STATICL-2FINDEX-2FTAGS-3ATAGS-INDEX-20FUNCTION-29"],"PAGE-FILENAME-FN":[3,18,2,"x-28STATICL-2FINDEX-2FTAGS-3APAGE-FILENAME-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FTAGS-3ATAGS-INDEX-29-29"],"PAGE-TITLE-FN":[3,18,2,"x-28STATICL-2FINDEX-2FTAGS-3APAGE-TITLE-FN-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FTAGS-3ATAGS-INDEX-29-29"]},"STATICL/FEEDS/ATOM":{"ATOM":[3,6,2,"x-28STATICL-2FFEEDS-2FATOM-3AATOM-20FUNCTION-29"]},"STATICL/FEEDS/RSS":{"RSS":[3,6,2,"x-28STATICL-2FFEEDS-2FRSS-3ARSS-20FUNCTION-29"]},"STATICL/PLUGINS/SITEMAP":{"SITEMAP":[3,6,2,"x-28STATICL-2FPLUGINS-2FSITEMAP-3ASITEMAP-20FUNCTION-29"]},"STATICL/PLUGINS/DISQUS":{"DISQUS":[3,6,2,"x-28STATICL-2FPLUGINS-2FDISQUS-3ADISQUS-20FUNCTION-29"],"DISQUS-SHORTNAME":[3,18,2,"x-28STATICL-2FPLUGINS-2FDISQUS-3ADISQUS-SHORTNAME-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FPLUGINS-2FDISQUS-3ADISQUS-29-29"]},"STATICL/PLUGINS/MATHJAX":{"MATHJAX":[3,6,2,"x-28STATICL-2FPLUGINS-2FMATHJAX-3AMATHJAX-20FUNCTION-29"],"FORCE-MATHJAX-P":[3,18,2,"x-28STATICL-2FPLUGINS-2FMATHJAX-3AFORCE-MATHJAX-P-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FPLUGINS-2FMATHJAX-3AMATHJAX-29-29"],"MATH-TAG-NAME":[3,18,2,"x-28STATICL-2FPLUGINS-2FMATHJAX-3AMATH-TAG-NAME-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FPLUGINS-2FMATHJAX-3AMATHJAX-29-29"]},"":{"STATICL":[3,14,2,"x-28-23A-28-287-29-20BASE-CHAR-20-2E-20-22STATICL-22-29-20PACKAGE-29"],"STATICL/BUILDER":[3,14,2,"x-28-23A-28-2815-29-20BASE-CHAR-20-2E-20-22STATICL-2FBUILDER-22-29-20PACKAGE-29"],"STATICL/CLEAN-URLS":[3,14,2,"x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FCLEAN-URLS-22-29-20PACKAGE-29"],"STATICL/CONTENT":[3,14,2,"x-28-23A-28-2815-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-22-29-20PACKAGE-29"],"STATICL/CONTENT-PIPELINE":[3,14,2,"x-28-23A-28-2824-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-PIPELINE-22-29-20PACKAGE-29"],"STATICL/CONTENT/HTML-CONTENT":[3,14,2,"x-28-23A-28-2828-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-2FHTML-CONTENT-22-29-20PACKAGE-29"],"STATICL/CONTENT/PAGE":[3,14,2,"x-28-23A-28-2820-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-2FPAGE-22-29-20PACKAGE-29"],"STATICL/CONTENT/POST":[3,14,2,"x-28-23A-28-2820-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-2FPOST-22-29-20PACKAGE-29"],"STATICL/CONTENT/READER":[3,14,2,"x-28-23A-28-2822-29-20BASE-CHAR-20-2E-20-22STATICL-2FCONTENT-2FREADER-22-29-20PACKAGE-29"],"STATICL/CURRENT-ROOT":[3,14,2,"x-28-23A-28-2820-29-20BASE-CHAR-20-2E-20-22STATICL-2FCURRENT-ROOT-22-29-20PACKAGE-29"],"STATICL/FEEDS/ATOM":[3,14,2,"x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FFEEDS-2FATOM-22-29-20PACKAGE-29"],"STATICL/FEEDS/RSS":[3,14,2,"x-28-23A-28-2817-29-20BASE-CHAR-20-2E-20-22STATICL-2FFEEDS-2FRSS-22-29-20PACKAGE-29"],"STATICL/FILTER":[3,14,2,"x-28-23A-28-2814-29-20BASE-CHAR-20-2E-20-22STATICL-2FFILTER-22-29-20PACKAGE-29"],"STATICL/FORMAT":[3,14,2,"x-28-23A-28-2814-29-20BASE-CHAR-20-2E-20-22STATICL-2FFORMAT-22-29-20PACKAGE-29"],"STATICL/INDEX/BASE":[3,14,2,"x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FINDEX-2FBASE-22-29-20PACKAGE-29"],"STATICL/INDEX/PAGINATED":[3,14,2,"x-28-23A-28-2823-29-20BASE-CHAR-20-2E-20-22STATICL-2FINDEX-2FPAGINATED-22-29-20PACKAGE-29"],"STATICL/INDEX/TAGS":[3,14,2,"x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FINDEX-2FTAGS-22-29-20PACKAGE-29"],"STATICL/INJECTIONS":[3,14,2,"x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FINJECTIONS-22-29-20PACKAGE-29"],"STATICL/LINKS/LINK":[3,14,2,"x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FLINKS-2FLINK-22-29-20PACKAGE-29"],"STATICL/LINKS/PREV-NEXT":[3,14,2,"x-28-23A-28-2823-29-20BASE-CHAR-20-2E-20-22STATICL-2FLINKS-2FPREV-NEXT-22-29-20PACKAGE-29"],"STATICL/NAVIGATION":[3,14,2,"x-28-23A-28-2818-29-20BASE-CHAR-20-2E-20-22STATICL-2FNAVIGATION-22-29-20PACKAGE-29"],"STATICL/PIPELINE":[3,14,2,"x-28-23A-28-2816-29-20BASE-CHAR-20-2E-20-22STATICL-2FPIPELINE-22-29-20PACKAGE-29"],"STATICL/PLUGIN":[3,14,2,"x-28-23A-28-2814-29-20BASE-CHAR-20-2E-20-22STATICL-2FPLUGIN-22-29-20PACKAGE-29"],"STATICL/PLUGINS/DISQUS":[3,14,2,"x-28-23A-28-2822-29-20BASE-CHAR-20-2E-20-22STATICL-2FPLUGINS-2FDISQUS-22-29-20PACKAGE-29"],"STATICL/PLUGINS/MATHJAX":[3,14,2,"x-28-23A-28-2823-29-20BASE-CHAR-20-2E-20-22STATICL-2FPLUGINS-2FMATHJAX-22-29-20PACKAGE-29"],"STATICL/PLUGINS/SITEMAP":[3,14,2,"x-28-23A-28-2823-29-20BASE-CHAR-20-2E-20-22STATICL-2FPLUGINS-2FSITEMAP-22-29-20PACKAGE-29"],"STATICL/RSYNC":[3,14,2,"x-28-23A-28-2813-29-20BASE-CHAR-20-2E-20-22STATICL-2FRSYNC-22-29-20PACKAGE-29"],"STATICL/SERVER":[3,14,2,"x-28-23A-28-2814-29-20BASE-CHAR-20-2E-20-22STATICL-2FSERVER-22-29-20PACKAGE-29"],"STATICL/SITE":[3,14,2,"x-28-23A-28-2812-29-20BASE-CHAR-20-2E-20-22STATICL-2FSITE-22-29-20PACKAGE-29"],"STATICL/SKELETON":[3,14,2,"x-28-23A-28-2816-29-20BASE-CHAR-20-2E-20-22STATICL-2FSKELETON-22-29-20PACKAGE-29"],"STATICL/TAG":[3,14,2,"x-28-23A-28-2811-29-20BASE-CHAR-20-2E-20-22STATICL-2FTAG-22-29-20PACKAGE-29"],"STATICL/THEME":[3,14,2,"x-28-23A-28-2813-29-20BASE-CHAR-20-2E-20-22STATICL-2FTHEME-22-29-20PACKAGE-29"],"STATICL/URL":[3,14,2,"x-28-23A-28-2811-29-20BASE-CHAR-20-2E-20-22STATICL-2FURL-22-29-20PACKAGE-29"],"STATICL/UTILS":[3,14,2,"x-28-23A-28-2813-29-20BASE-CHAR-20-2E-20-22STATICL-2FUTILS-22-29-20PACKAGE-29"]},"STATICL/BUILDER":{"GENERATE":[3,6,2,"x-28STATICL-2FBUILDER-3AGENERATE-20FUNCTION-29"]},"STATICL/SKELETON":{"NEW-SITE":[3,6,2,"x-28STATICL-2FSKELETON-3ANEW-SITE-20FUNCTION-29"]},"STATICL/SERVER":{"SERVE":[3,6,2,"x-28STATICL-2FSERVER-3ASERVE-20FUNCTION-29"]},"STATICL/CLEAN-URLS":{"TRANSFORM-FILENAME":[3,7,2,"x-28STATICL-2FCLEAN-URLS-3ATRANSFORM-FILENAME-20GENERIC-FUNCTION-29"],"TRANSFORM-URL":[3,7,2,"x-28STATICL-2FCLEAN-URLS-3ATRANSFORM-URL-20GENERIC-FUNCTION-29"]},"STATICL/CONTENT":{"CONTENT-FROM-FILE":[3,3,2,"x-28STATICL-2FCONTENT-3ACONTENT-FROM-FILE-20CLASS-29"],"CONTENT-CREATED-AT":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-CREATED-AT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29"],"CONTENT-EXCERPT-SEPARATOR":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-EXCERPT-SEPARATOR-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29"],"CONTENT-FILE":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-FILE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29"],"CONTENT-FORMAT":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-FORMAT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29"],"CONTENT-TEMPLATE":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-TEMPLATE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29"],"CONTENT-TEXT":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-TEXT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-FROM-FILE-29-29"],"CONTENT-TYPE":[3,3,2,"x-28STATICL-2FCONTENT-3ACONTENT-TYPE-20CLASS-29"],"CONTENT-CLASS":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-CLASS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-TYPE-29-29"],"CONTENT-FILE-TYPE":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-FILE-TYPE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-TYPE-29-29"],"CONTENT-WITH-TAGS-MIXIN":[3,3,2,"x-28STATICL-2FCONTENT-3ACONTENT-WITH-TAGS-MIXIN-20CLASS-29"],"CONTENT-TAGS":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-TAGS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-WITH-TAGS-MIXIN-29-29"],"CONTENT-WITH-TITLE-MIXIN":[3,3,2,"x-28STATICL-2FCONTENT-3ACONTENT-WITH-TITLE-MIXIN-20CLASS-29"],"CONTENT-TITLE":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-TITLE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-WITH-TITLE-MIXIN-29-29"],"CONTENT":[3,3,2,"x-28STATICL-2FCONTENT-3ACONTENT-20CLASS-29"],"CONTENT-METADATA":[3,18,2,"x-28STATICL-2FCONTENT-3ACONTENT-METADATA-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FCONTENT-3ACONTENT-29-29"],"GET-TARGET-FILENAME":[3,7,2,"x-28STATICL-2FCONTENT-3AGET-TARGET-FILENAME-20GENERIC-FUNCTION-29"],"HAS-TAG-P":[3,7,2,"x-28STATICL-2FCONTENT-3AHAS-TAG-P-20GENERIC-FUNCTION-29"],"READ-CONTENT-FROM-DISK":[3,7,2,"x-28STATICL-2FCONTENT-3AREAD-CONTENT-FROM-DISK-20GENERIC-FUNCTION-29"],"READ-CONTENTS":[3,7,2,"x-28STATICL-2FCONTENT-3AREAD-CONTENTS-20GENERIC-FUNCTION-29"],"SUPPORTED-CONTENT-TYPES":[3,7,2,"x-28STATICL-2FCONTENT-3ASUPPORTED-CONTENT-TYPES-20GENERIC-FUNCTION-29"],"WRITE-CONTENT":[3,7,2,"x-28STATICL-2FCONTENT-3AWRITE-CONTENT-20GENERIC-FUNCTION-29"],"WRITE-CONTENT-TO-STREAM":[3,7,2,"x-28STATICL-2FCONTENT-3AWRITE-CONTENT-TO-STREAM-20GENERIC-FUNCTION-29"],"SET-METADATA":[3,6,2,"x-28STATICL-2FCONTENT-3ASET-METADATA-20FUNCTION-29"]},"STATICL/CONTENT/HTML-CONTENT":{"CONTENT-HTML":[3,7,2,"x-28STATICL-2FCONTENT-2FHTML-CONTENT-3ACONTENT-HTML-20GENERIC-FUNCTION-29"],"CONTENT-HTML-EXCERPT":[3,7,2,"x-28STATICL-2FCONTENT-2FHTML-CONTENT-3ACONTENT-HTML-EXCERPT-20GENERIC-FUNCTION-29"],"HAS-MORE-CONTENT-P":[3,7,2,"x-28STATICL-2FCONTENT-2FHTML-CONTENT-3AHAS-MORE-CONTENT-P-20GENERIC-FUNCTION-29"]},"STATICL/CONTENT/PAGE":{"PAGE-TYPE":[3,3,2,"x-28STATICL-2FCONTENT-2FPAGE-3APAGE-TYPE-20CLASS-29"],"PAGE":[3,3,2,"x-28STATICL-2FCONTENT-2FPAGE-3APAGE-20CLASS-29"]},"STATICL/CONTENT/POST":{"POST-TYPE":[3,3,2,"x-28STATICL-2FCONTENT-2FPOST-3APOST-TYPE-20CLASS-29"],"POST":[3,3,2,"x-28STATICL-2FCONTENT-2FPOST-3APOST-20CLASS-29"],"POSTP":[3,6,2,"x-28STATICL-2FCONTENT-2FPOST-3APOSTP-20FUNCTION-29"]},"STATICL/CONTENT/READER":{"READ-CONTENT-FILE":[3,6,2,"x-28STATICL-2FCONTENT-2FREADER-3AREAD-CONTENT-FILE-20FUNCTION-29"]},"STATICL/CURRENT-ROOT":{"CURRENT-ROOT":[3,6,2,"x-28STATICL-2FCURRENT-ROOT-3ACURRENT-ROOT-20FUNCTION-29"],"WITH-CURRENT-ROOT":[3,12,2,"x-28STATICL-2FCURRENT-ROOT-3AWITH-CURRENT-ROOT-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"]},"STATICL/FORMAT":{"TO-HTML":[3,7,2,"x-28STATICL-2FFORMAT-3ATO-HTML-20GENERIC-FUNCTION-29"]},"STATICL/INDEX/BASE":{"BASE-INDEX":[3,3,2,"x-28STATICL-2FINDEX-2FBASE-3ABASE-INDEX-20CLASS-29"],"INDEX-TARGET-PATH":[3,18,2,"x-28STATICL-2FINDEX-2FBASE-3AINDEX-TARGET-PATH-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3ABASE-INDEX-29-29"],"PAGE-SIZE":[3,18,2,"x-28STATICL-2FINDEX-2FBASE-3APAGE-SIZE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3ABASE-INDEX-29-29"],"INDEX-PAGE":[3,3,2,"x-28STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-20CLASS-29"],"NEXT-PAGE":[3,17,2,"x-28STATICL-2FINDEX-2FBASE-3ANEXT-PAGE-20-2840ANTS-DOC-2FLOCATIVES-3AACCESSOR-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29"],"PAGE-ITEMS":[3,18,2,"x-28STATICL-2FINDEX-2FBASE-3APAGE-ITEMS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29"],"PAGE-TARGET-PATH":[3,18,2,"x-28STATICL-2FINDEX-2FBASE-3APAGE-TARGET-PATH-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29"],"PAGE-TITLE":[3,18,2,"x-28STATICL-2FINDEX-2FBASE-3APAGE-TITLE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29"],"PREV-PAGE":[3,17,2,"x-28STATICL-2FINDEX-2FBASE-3APREV-PAGE-20-2840ANTS-DOC-2FLOCATIVES-3AACCESSOR-20STATICL-2FINDEX-2FBASE-3AINDEX-PAGE-29-29"]},"STATICL/INJECTIONS":{"CONTENT-WITH-INJECTIONS-MIXIN":[3,3,2,"x-28STATICL-2FINJECTIONS-3ACONTENT-WITH-INJECTIONS-MIXIN-20CLASS-29"],"CONTENT-INJECTIONS":[3,18,2,"x-28STATICL-2FINJECTIONS-3ACONTENT-INJECTIONS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FINJECTIONS-3ACONTENT-WITH-INJECTIONS-MIXIN-29-29"],"ADD-INJECTION":[3,7,2,"x-28STATICL-2FINJECTIONS-3AADD-INJECTION-20GENERIC-FUNCTION-29"]},"STATICL/LINKS/LINK":{"LINK":[3,6,2,"x-28STATICL-2FLINKS-2FLINK-3ALINK-20FUNCTION-29"],"LINK-CONTENT":[3,18,2,"x-28STATICL-2FLINKS-2FLINK-3ALINK-CONTENT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FLINKS-2FLINK-3ALINK-29-29"]},"STATICL/NAVIGATION":{"ITEM":[3,6,2,"x-28STATICL-2FNAVIGATION-3AITEM-20FUNCTION-29"],"MENU-ITEM-TITLE":[3,18,2,"x-28STATICL-2FNAVIGATION-3AMENU-ITEM-TITLE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FNAVIGATION-3AITEM-29-29"],"MENU-ITEM-URL":[3,18,2,"x-28STATICL-2FNAVIGATION-3AMENU-ITEM-URL-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FNAVIGATION-3AITEM-29-29"],"MENU":[3,6,2,"x-28STATICL-2FNAVIGATION-3AMENU-20FUNCTION-29"],"MENU-ITEMS":[3,18,2,"x-28STATICL-2FNAVIGATION-3AMENU-ITEMS-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FNAVIGATION-3AMENU-29-29"]},"STATICL/PIPELINE":{"PROCESS-ITEMS":[3,7,2,"x-28STATICL-2FPIPELINE-3APROCESS-ITEMS-20GENERIC-FUNCTION-29"],"EXECUTE-PIPELINE":[3,6,2,"x-28STATICL-2FPIPELINE-3AEXECUTE-PIPELINE-20FUNCTION-29"],"PRODUCE-ITEM":[3,6,2,"x-28STATICL-2FPIPELINE-3APRODUCE-ITEM-20FUNCTION-29"],"REMOVE-ITEM":[3,6,2,"x-28STATICL-2FPIPELINE-3AREMOVE-ITEM-20FUNCTION-29"]},"STATICL/PLUGIN":{"PLUGIN":[3,3,2,"x-28STATICL-2FPLUGIN-3APLUGIN-20CLASS-29"],"MAKE-PLUGIN":[3,6,2,"x-28STATICL-2FPLUGIN-3AMAKE-PLUGIN-20FUNCTION-29"]},"STATICL/RSYNC":{"RSYNC":[3,6,2,"x-28STATICL-2FRSYNC-3ARSYNC-20FUNCTION-29"],"RSYNC-HOST":[3,18,2,"x-28STATICL-2FRSYNC-3ARSYNC-HOST-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FRSYNC-3ARSYNC-29-29"]},"STATICL/SITE":{"SITE":[3,6,2,"x-28STATICL-2FSITE-3ASITE-20FUNCTION-29"],"CLEAN-URLS-P":[3,18,2,"x-28STATICL-2FSITE-3ACLEAN-URLS-P-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29"],"SITE-CHARSET":[3,18,2,"x-28STATICL-2FSITE-3ASITE-CHARSET-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29"],"SITE-CONTENT-ROOT":[3,18,2,"x-28STATICL-2FSITE-3ASITE-CONTENT-ROOT-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29"],"SITE-DESCRIPTION":[3,18,2,"x-28STATICL-2FSITE-3ASITE-DESCRIPTION-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29"],"SITE-NAVIGATION":[3,18,2,"x-28STATICL-2FSITE-3ASITE-NAVIGATION-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29"],"SITE-PIPELINE":[3,18,2,"x-28STATICL-2FSITE-3ASITE-PIPELINE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29"],"SITE-THEME":[3,18,2,"x-28STATICL-2FSITE-3ASITE-THEME-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29"],"SITE-TITLE":[3,18,2,"x-28STATICL-2FSITE-3ASITE-TITLE-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29"],"SITE-URL":[3,18,2,"x-28STATICL-2FSITE-3ASITE-URL-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FSITE-3ASITE-29-29"],"MAKE-SITE":[3,6,2,"x-28STATICL-2FSITE-3AMAKE-SITE-20FUNCTION-29"]},"STATICL/TAG":{"TAG":[3,3,2,"x-28STATICL-2FTAG-3ATAG-20CLASS-29"],"TAG-NAME":[3,18,2,"x-28STATICL-2FTAG-3ATAG-NAME-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FTAG-3ATAG-29-29"]},"STATICL/THEME":{"THEME":[3,3,2,"x-28STATICL-2FTHEME-3ATHEME-20CLASS-29"],"THEME-PATH":[3,18,2,"x-28STATICL-2FTHEME-3ATHEME-PATH-20-2840ANTS-DOC-2FLOCATIVES-3AREADER-20STATICL-2FTHEME-3ATHEME-29-29"],"COPY-STATIC":[3,7,2,"x-28STATICL-2FTHEME-3ACOPY-STATIC-20GENERIC-FUNCTION-29"],"LIST-STATIC":[3,7,2,"x-28STATICL-2FTHEME-3ALIST-STATIC-20GENERIC-FUNCTION-29"],"RENDER":[3,7,2,"x-28STATICL-2FTHEME-3ARENDER-20GENERIC-FUNCTION-29"],"TEMPLATE-VARS":[3,7,2,"x-28STATICL-2FTHEME-3ATEMPLATE-VARS-20GENERIC-FUNCTION-29"]},"STATICL/URL":{"OBJECT-URL":[3,7,2,"x-28STATICL-2FURL-3AOBJECT-URL-20GENERIC-FUNCTION-29"],"WITH-BASE-URL":[3,12,2,"x-28STATICL-2FURL-3AWITH-BASE-URL-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"]},"STATICL/UTILS":{"ABSOLUTE-URL-P":[3,6,2,"x-28STATICL-2FUTILS-3AABSOLUTE-URL-P-20FUNCTION-29"],"ASSERT-ABSOLUTE-URL":[3,6,2,"x-28STATICL-2FUTILS-3AASSERT-ABSOLUTE-URL-20FUNCTION-29"],"NORMALIZE-PLIST":[3,6,2,"x-28STATICL-2FUTILS-3ANORMALIZE-PLIST-20FUNCTION-29"],"DO-FILES":[3,12,2,"x-28STATICL-2FUTILS-3ADO-FILES-20-2840ANTS-DOC-2FLOCATIVES-3AMACRO-29-29"]}},"objnames":[["lisp","symbol","Symbol"],["lisp","argument","Argument"],["lisp","system","ASDF System"],["lisp","class","Class"],["lisp","compiler-macro","Compiler Macro"],["lisp","constant","Constant"],["lisp","function","Function"],["lisp","generic-function","Generic Function"],["lisp","glossary-term","Glossary Term"],["lisp","include","Included Block"],["lisp","stdout-of","Stdout of Code"],["lisp","locative","Locative"],["lisp","macro","Macro"],["lisp","method","Method"],["lisp","package","Package"],["lisp","restart","Restart"],["lisp","section","Section"],["lisp","accessor","Accessor"],["lisp","reader","Slot Reader"],["lisp","writer","Slot Write"],["lisp","structure-accessor","Structure Accessor"],["lisp","type","Type"],["lisp","variable","Variable"]],"objtypes":["lisp:symbol","lisp:argument","lisp:system","lisp:class","lisp:compiler-macro","lisp:constant","lisp:function","lisp:generic-function","lisp:glossary-term","lisp:include","lisp:stdout-of","lisp:locative","lisp:macro","lisp:method","lisp:package","lisp:restart","lisp:section","lisp:accessor","lisp:reader","lisp:writer","lisp:structure-accessor","lisp:type","lisp:variable"],"terms":{"Description:":[0],"Flexibl":[0],"and":[3,2,1,0],"customiz":[0],"static":[3,2,1,0],"site":[3,2,1,0],"gener":[3,2,1,0],"with":[3,2,1,0],"a":[3,2,1,0],"lot":[0],"of":[3,2,1,0],"plugins!":[0],"Licence:":[0],"Unlicens":[0],"Author:":[0],"Alexand":[0],"Artemenko":[0],"":[0],"Homepage:":[0],"https://40ants.com/staticl/":[0],"Bug":[0],"tracker:":[0],"https://github.com/40ants/staticl/issu":[0],"Sourc":[0],"control:":[0],"GIT":[0],"Depend":[0],"on:":[0],"3bmd":[0],",":[3,2,1,0],"3bmd-ext-code-block":[0],"40ants-doc":[0],"alexandria":[0],"bordeaux-thread":[0],"cl-fad":[0],"cl-ppcre":[0],"cl-sitemap":[0],"clack":[0],"closer-mop":[0],"closure-templ":[0],"docs-build":[0],"feeder":[0],"fs-watcher":[0],"fuzzy-d":[0],"html2text":[0],"lack":[0],"lack-app-fil":[0],"lack-util-writer-stream":[0],"local-tim":[0],"log4cl":[0],"mystic":[0],"mystic-file-mixin":[0],"quri":[0],"serapeum":[0],"str":[0],"trivial-open-brows":[0],"usocket":[0],"utilities.print-item":[0],"ASDF":[0],"System":[0],"Detail":[0],"Thi":[3,1,0],"librari":[0],"is":[3,2,1,0],"not":[3,2,1,0],"in":[3,2,1,0],"Quicklisp":[0],"yet,":[0],"but":[3,2,1,0],"you":[3,2,1,0],"can":[3,2,1,0],"instal":[1,0],"it":[3,2,1,0],"from":[3,2,1,0],"Ultralisp.org:":[0],"(ql-dist:install-dist":[0],"\"http://dist.ultralisp.org/\"\n":[0],":prompt":[0],"nil)\n(ql:quickload":[0],":staticl)":[0],"Or,":[0],"if":[3,2,1,0],"wish":[0],"to":[3,2,1,0],"us":[3,2,1,0],"command":[1,0],"line":[1,0],"utility,":[0],"then":[3,2,1,0],"Roswel":[1,0],"like":[3,1,0],"this:":[1,0],"ro":[0],"run":[3,1,0],"--eval":[0],"'(ql-dist:install-dist":[0],"\"http://dist.ultralisp.org/\"":[0],"nil)'":[0],"--quit\nro":[0],"40ants-asdf-system\nro":[0],"spinneret\nro":[0],"40ants/staticl":[0],"Installat":[0],"Why":[0],"wa":[3,2,1,0],"anoth":[2,1,0],"websit":[1,0],"made":[0],"when":[3,2,1,0],"the":[3,2,1,0],"world":[0],"alreadi":[1,0],"full":[3,0],"them?":[0],"There":[1,0],"ar":[3,2,1,0],"onli":[3,2,1,0],"three":[0],"reasons.":[0],"The":[3,2,1,0],"first":[3,2,1,0],"reason":[0],"that":[3,2,1,0],"at":[3,2,1,0],"40A":[0],"nt":[0],"we":[3,2,1,0],"prefer":[0],"Common":[1,0],"Lisp":[1,0],"our":[1,0],"projects,":[0],"becaus":[1,0],"signific":[0],"lever":[0],"increas":[0],"effici":[0],"developer.":[0],"But":[3,2,0],"choic":[0],"written":[1,0],"so":[0],"great.":[0],"We":[0],"know":[0],"on":[3,2,1,0],"such":[3,1,0],"project":[0],"–":[2,1,0],"Coleslaw.":[0],"Actually,":[0],"it,":[1,0],"turn":[0],"out":[1,0],"flexibl":[0],"enough.":[0],"And":[1,0],"here":[3,2,1,0],"come":[1,0],"number":[3,2,1,0],"two":[3,1,0],"Coleslaw":[0],"origin":[0],"conceiv":[0],"as":[3,2,1,0],"blog":[1,0],"later":[0],"becam":[0],"possibl":[0],"add":[3,2,1,0],"arbitrari":[0],"pages.":[3,2,1,0],"So":[0],"whole":[0],"architectur":[0],"revolv":[0],"around":[0],"post":[3,2,1,0],"indexes.":[0],"want":[2,1,0],"someth":[2,0],"more.":[0],"For":[3,2,1,0],"example,":[3,2,1,0],"abil":[0],"make":[3,2,1,0],"land":[0],"page":[3,2,1,0],"placement":[0],"blocks,":[1,0],"remov":[3,1,0],"separ":[1,0],"subsection.":[0],"also,":[0],"realli":[3,0],"multilingu":[0],"where":[3,1,0],"differ":[0],"languag":[0],"could":[3,2,0],"be":[3,2,1,0],"folders.":[0],"on.":[0],"Of":[0],"course,":[0],"look":[3,1,0],"other":[2,1,0],"program":[0],"languages,":[0],"for":[3,2,1,0],"exampl":[3,1,0],"Hugo":[0],"or":[3,2,0],"Nikola.":[0],"most":[0],"them":[3,2,0],"simpl":[1,0],"linear":[0],"config":[1,0],"aw":[0],"YAML":[1,0],"files,":[0],"wherea":[0],"have":[3,2,1,0],"more":[3,1,0],"extens":[0],"configur":[2,0],"option":[0],"due":[1,0],"fact":[0],"all":[3,2,1,0],"featur":[0],"avail":[3,2,1,0],"us.":[0],"DSL":[0],"(Domain":[0],"Specif":[0],"Language)":[0],"greater":[0],"express":[0],"third":[0],"why":[0],"decid":[0],"StatiCL":[1,0],".":[3,2,1,0],"Rational":[0],"Hackable.":[0],"StaticCL":[0],"probabl":[0],"hackabl":[0],"builder":[0],"World":[0],"natur":[0],"it'":[3,2,1,0],"interact":[0],"develop":[0],"approach.":[0],"Suitabl":[0],"ani":[3,2,1,0],"configuration,":[0],"blog.":[1,0],"Multiplatform.":[0],"test":[0],"Linix":[0],"OSX":[0],"Support":[0],"themes.":[0],"Multipl":[0],"templat":[3,2,0],"engin":[0],"might":[0],"used.":[0],"Mani":[0],"content":[3,2,1,0],"format":[3,2,1,0],"supported.":[0],"Markdown":[0],"by":[3,2,1,0],"default,":[3,2,0],"easili":[0],"reStructur":[0],"text,":[0],"Spinneret":[1,0],"your":[3,2,1,0],"own.":[0],"Plugin":[2,0],"thems":[0],"host":[0],"along":[0],"site.":[3,0],"See":[0],"also":[1,0],"Roadmap":[0],"section.":[0],"Featur":[0],"In":[2,1,0],"era":[0],"high":[0],"technolog":[0],"fast":[0],"access":[0],"information,":[0],"everi":[0],"second":[3,1,0],"load":[3,2,1,0],"worth":[0],"weight":[0],"gold,":[0],"fore.":[0],"thei":[1,0],"important?":[0],"which":[3,1,0],"tool":[0],"should":[3,2,0],"I":[1,0],"choos":[0],"creat":[2,1,0],"perfect":[0],"website?":[0],"present":[1,0],"attent":[1,0],"—":[0],"promis":[0],"thi":[3,2,1,0],"niche.":[0],"befor":[0],"dive":[0],"into":[3,2,1,0],"specif":[0],"let'":[1,0],"figur":[1,0],"what":[1,0],"advantag":[0],"bring.":[0],"do":[2,1,0],"need":[3,1,0],"generators?":[0],"No":[0],"movement,":[0],"no":[3,1,0],"problem.":[0],"Static":[1,0],"much":[3,0],"resist":[0],"hacker":[0],"attacks,":[0],"simpli":[0],"server":[3,1,0],"hacked.":[0],"Instant":[0],"becom":[0],"reality,":[0],"cach":[0],"doe":[3,1,0],"requir":[0],"addit":[3,2,1,0],"process":[3,2,1,0],"server.":[1,0],"Ha":[0],"suddenli":[0],"gain":[0],"popularity?":[0],"withstand":[0],"traffic":[0],"growth":[0],"without":[3,2,1,0],"complex":[0],"infrastructur":[0],"configuration.":[0],"Using":[0],"version":[0],"control":[0],"system":[1,0],"Git,":[0],"alwai":[3,0],"roll":[0],"back":[0],"previou":[3,1,0],"chang":[3,2,1,0],"risk":[0],"current":[0],"oper":[0],"environment.":[0],"solutions,":[0],"significantli":[0],"reduc":[0],"cost":[0],"hosting.":[0],"main":[1,0],"Gener":[3,1,0],"convert":[2,0],"markup":[0],"HTML":[3,2,1,0],"CSS":[3,1,0],"Thei":[2,1,0],"allow":[1,0],"beauti":[0],"readabl":[0],"web":[3,1,0],"write":[3,1,0],"code.":[0],"greatli":[0],"simplifi":[0],"provid":[3,2,1,0],"insert":[3,0],"images,":[0],"video":[0],"multimedia":[0],"components.":[0],"You":[3,1,0],"variou":[0],"method":[3,2,0],"site,":[1,0],"includ":[3,2,1,0],"Github":[0],"Pages,":[0],"CDN":[0],"afford":[0],"cheap":[0],"services.":[0],"Page":[0],"free":[0],"servic":[3,1,0],"directli":[0],"repositori":[0],"Github.":[0],"conveni":[0],"wai":[3,2,1,0],"small":[0],"person":[0],"(Content":[0],"Deliveri":[0],"Network)":[0],"network":[0],"distribut":[1,0],"help":[0],"speed":[0],"up":[0],"proxim":[0],"end":[0],"users.":[1,0],"especi":[0],"larg":[0],"visitor":[0],"traffic.":[0],"If":[3,2,1,0],"budget,":[0],"consid":[0],"offer":[0],"good":[0],"condit":[0],"sites.":[0],"It":[1,0],"import":[0],"appropri":[0],"meet":[0],"term":[0],"performance,":[0],"reliabl":[0],"price.":[0],"How":[1,0],"work":[1,0],"At":[1,0],"40Ant":[0],"believ":[0],"power":[0],"basi":[2,0],"projects.":[0],"generator,":[0],"encount":[0],"some":[3,1,0],"limitations.":[0],"difficult":[0],"sever":[1,0],"set":[3,2,1,0],"than":[3,0],"just":[1,0],"list":[3,2,1,0],"articles.":[0],"suitabl":[0],"divers":[0],"structure.":[0],"Therefore,":[0],"even":[3,0],"flexibility.":[0],"With":[0],"complexity,":[0],"limit":[0],"yourself":[0],"templates.":[0],"extensions,":[0],"well":[1,0],"engine,":[0],"Clozur":[0],"Templates.":[0],"give":[1,0],"freedom":[0],"those":[1,0],"familiar":[0],"you.":[0],"an":[3,2,1,0],"excel":[0],"who":[0],"high-qual":[0],"optim":[0],"their":[0],"preferences.":[0],"innov":[0],"base":[0],"pipelin":[3,2,1,0],"concept.":[0],"consist":[2,0],"nodes,":[0],"each":[3,2,1,0],"receiv":[1,0],"object":[3,2,0],"part":[2,1,0],"pipeline.":[2,1,0],"Each":[3,2,0],"node":[3,2,0],"ha":[3,2,0],"modifi":[0],"exist":[3,0],"new":[3,2,1,0],"element":[1,0],"it.":[1,0],"uniqu":[0],"enrich":[0],"varieti":[0],"data":[0],"information.":[0],"addition,":[1,0],"thank":[1,0],"pipeline,":[2,0],"inform":[0],"processing.":[0],"stage":[0],"perform":[0],"sequentially,":[0],"improv":[0],"quality.":[0],"approach":[0],"user":[0],"manag":[0],"materi":[0],"purposes.":[0],"Thank":[1,0],"structur":[1,0],"degre":[0],"custom":[3,2,0],"needs.":[0],"Thus,":[0],"individu":[0],"task":[0],"users,":[0],"ensur":[0],"effect":[3,2,0],"work.":[0],"describ":[0],"seri":[0],"nest":[0],"function":[3,2,1,0],"calls.":[2,0],"must":[0],"contain":[3,2,0],".staticlrc":[3,2,1,0],"file":[3,2,1,0],"root":[3,0],"directory,":[1,0],"descript":[2,1,0],"how":[3,2,1,0],"simplest":[2,0],"like:":[1,0],"(site":[0],"\"Trivial":[0],"Site\"\n":[1,0],":descript":[1,0],"\"A":[1,0],"trivial":[0],"staticl":[1,0],"site.\"\n":[0],":url":[1,0],"\"https://example.com\"\n":[0],":pipelin":[1,0],"(list":[1,0],"(load-content))\n":[0],":theme":[1,0],"\"readable\")":[1,0],"When":[3,0],"command,":[0],"will":[3,2,1,0],"start":[1,0],"disk.":[3,2,0],"read":[3,2,0],"correspond":[3,0],"html":[0],"files.":[3,2,0],"way,":[3,0],"ready-mad":[0],"place":[0],"view.":[0],"To":[3,2,1,0],"RSS":[3,1,0],"feed":[3,2,1,0],"posts,":[1,0],"step":[0],"Let'":[1,0],"(rss)":[0],"respons":[2,1,0],"feed.":[3,2,0],"extract":[0],"about":[0],"XML":[3,2,0],"titles,":[0],"public":[0],"date":[0],"post.":[1,0],"abl":[0],"subscrib":[0],"updat":[1,0],"via":[1,0],"readers.":[1,0],"(load-content)\n":[1,0],"(rss))\n":[0],"sitemap.xml":[2,1,0],"-":[3,2,1,0],"sitemap.":[0],"special":[0],"search":[0],"index":[1,0],"efficiently.":[0],"Creation":[0],"SEO":[0],"detect":[0],"faster.":[0],"tell":[1,0],"indexing,":[0],"affect":[0],"rank":[0],"results.":[0],"(rss)\n":[0],"(sitemap))\n":[1,0],"(sitemap)":[0],"output":[2,1,0],"sequenti":[0],"execut":[0],"steps,":[0],"split":[0],"\"streams\".":[0],"filter":[3,2,1,0],"text":[0],"written,":[0],"language.":[0],"language. Y":[0],"tutorial.":[0],"Read":[3,2,0],"Pipelin":[2,0],"section":[0],"walk":[0],"through":[2,0],"tutori":[0],"Make":[1,0],"Site":[1,0],"basic":[0],"principl":[2,0],"underli":[0],"Basic":[0],"Add":[3,0],"support":[3,1,0],"translat":[3,2,0],"theme":[3,1,0],"menu":[0],"item":[3,2,0],"document":[0],"plugin":[1,0],"creation.":[0],"Implement":[0],"Port":[0],"ad":[3,2,0],"comments.":[0],"cool":[0],"demo":[0],"YouTub":[0],"publish":[0],"channel":[0],"Here":[1,0],":":[3,2,1,0],"https://40ants.com/":[0],"(":[1,0],"sourc":[3,1,0],").":[0],"Feel":[0],"PR":[0],"here.":[0],"intrest":[0],"share":[0],"configurations,":[0],"Built":[0],"I'll":[0],"happi":[0],"discuss":[0],"idea":[0],"issu":[0],"review":[0],"pull-requests.":[0],"Follow":[0],"these":[2,1,0],"few":[3,0],"rule":[0],"merg":[0],"faster:":[0],"Write":[3,0],"detail":[0],"pull":[0],"request.":[0],"Keep":[0],"same":[3,2,1,0],"style":[0],"rest":[0],"unsure,":[0],"check":[0],"Google'":[0],"Styleguid":[0],"functionality.":[0],"Describ":[0],"docs/changelog.lisp":[0],"file.":[3,2,1,0],"ChangeLog.md":[0],"after":[3,2,0],"merge.":[0],"insid":[0],"docs/":[0],"folder.":[0],"Ensure":[0],"request":[0],"green.":[0],"(initi":[0],"author).":[0],"Contributor":[0],"Contribut":[0],"tutorial,":[1],"Static.":[2,1],"\"Home\",":[1],"\"About":[1],"site\",":[1],"\"Services\"":[1],"posts.":[3,1],"collect":[1],"feed,":[1],"end,":[1],"connect":[1],"Disqu":[3,2,1],"comment":[1],"feedback":[1],"visitors.":[1],"features,":[1],"user-friendli":[1],"attract":[1],"quick":[1],"start,":[1],"futur":[1],"command.":[1],"call":[3,2,1],"REPL":[1],"CL-USER>":[3,1],"(staticl:new-sit":[1],"\"/tmp/my-site\"\n":[1],"\"My":[1],"\"https://about-lisp.org\")\n#P\"/tmp/my-site/\"":[1],"Or":[1],"open":[1],"termin":[1],"enter":[1],"initi":[1],"config:":[1],"$":[1],"--verbos":[1],"new-sit":[1],"-o":[1],"/tmp/my-sit":[1],"'My":[1],"Site'":[3,1],"https://about-lisp.org\nSite'":[1],"to:":[1],"/tmp/my-site/":[1],"happen":[3,1],"result:":[1],"tree":[1],"-a":[1],"/tmp/blah\n/tmp/blah\n├──":[1],".staticlrc\n├──":[1],"about.page\n├──":[1],"blog\n│  ":[1],"├──":[1],"first.post\n│  ":[1],"└──":[1],"second.post\n└──":[1],"index.pag":[1],"see":[1],"regular":[1],"pages:":[1],"about.pag":[1],"us:":[1],"(asdf:load-system":[1],"\"staticl/format/spinneret\")\n":[1],"\n(site":[1],"description.\"\n":[1],"\"https://about-lisp.org\"\n":[1],":navig":[1],"(menu":[1],"(item":[1],"\"Blog\"":[1],"\"/blog/\")\n":[1],"\"About\"":[1],"\"/about/\"))\n":[1],"(prev-next-links)\n":[1],"(paginated-index":[3,2,1],":target-path":[3,2,1],"\"blog/\")\n":[1],"(rss":[1],"\"blog/rss.xml\")\n":[1],"(atom":[1],"\"blog/atom.xml\")\n":[1],"(tags-index":[3,2,1],"\"tags/\")\n":[1],"staticl/user-package:sit":[1],"used,":[3,2,1],"pass":[3,2,1],"title,":[1],"description,":[1],"URL":[3,1],"publication,":[1],"link":[3,2,1],"navig":[1],"plai":[1],"kei":[3,1],"role":[1],"sinc":[1],"final":[1],"result":[3,2,1],"depend":[1],"staticl/format/spinneret":[1],"dependency,":[1],"asdf:load-system":[1],"function.":[3,2,1],"modul":[1],"format,":[1],"found":[1],"about.post":[1],"Now":[1],"staticl/user-package:load-cont":[1],"download":[1],"extensions.":[1],"Next":[1],"staticl/user-package:prev-next-link":[1],"1":[1],"2":[1],")":[1],"block,":[1],"\"post\"":[1],"type":[1],"together,":[1],"Previou":[1],"appear":[1],"staticl/user-package:paginated-index":[1],"block":[1],"group":[3,2,1],"N":[1],"pieces.":[1],"Here,":[1],"per":[1],"specified,":[1],"accept":[1],":PAGE-SIZE":[1],"argument,":[1],"arguments.":[1],"great":[1],"edit":[1],"editor":[1],"Lisp,":[1],"IDE":[1],"signatur":[1],"paramet":[1],"have.":[1],"Try":[1],"configuration!":[1],"staticl/user-package:rss":[1],"staticl/user-package:atom":[1],"similar":[1],"latest":[3,2,1],"Well,":[1],"staticl/user-package:sitemap":[1],"stages.":[1],"Initial":[1],"content,":[1],"this,":[1],"follow":[1],"(staticl:gener":[1],":root-dir":[1],":stage-dir":[1],"\"/tmp/result\")\n#P\"/tmp/result/\"":[1],"line:":[1],"-v":[1],"-s":[1],"/tmp/result\nSit":[1],"/tmp/result/":[1],"put":[1],"necessari":[1],"JS":[3,1],"there:":[1],"/tmp/result\n/tmp/result\n├──":[1],"about\n│  ":[1],"index.html\n├──":[1],"atom.xml\n│  ":[1],"first\n│  ":[1],"│  ":[1],"index.html\n│  ":[1],"rss.xml\n│  ":[1],"second\n│  ":[1],"css\n│  ":[1],"bootstrap.min.css\n│  ":[1],"custom.css\n├──":[1],"img\n│  ":[1],"cc-by-sa.png\n│  ":[1],"glyphicons-halflings-white.png\n│  ":[1],"glyphicons-halflings.png\n│  ":[1],"staticl-logo-small.webp\n├──":[1],"js\n│  ":[1],"bootstrap.min.js\n├──":[1],"sitemap.xml\n└──":[1],"tags\n":[1],"bar\n":[1],"index.html\n":[1],"example\n":[1],"foo\n":[1],"index.html":[3,2,1],"somehow":[1],"browser.":[1],"browser":[1],"he":[1],"styles,":[1],"thing":[1],"mai":[3,2,1],"either,":[1],"domain.":[1],"fulli":[1],"launch":[1],"Previously,":[1],"would":[1],"done":[1],"python":[1],"local":[3,1],"directori":[3,1],"http.server":[1],"module:":[1],"cd":[1],"/tmp/result\n$":[1],"python3":[1],"-m":[1],"http.server\nServ":[1],"HTTP":[1],"::":[1],"port":[1],"8000":[1],"(http://[::]:8000/)":[1],"...":[1],"However,":[1],"better":[1],"built":[1],"Moreover,":[1],"track":[1],"site'":[3,2,1],"server,":[1],"(staticl:serv":[1],"#P\"/tmp/my-site\"\n":[1],"#P\"/tmp/result\")\n":[1],"[21:35:55]":[1],"staticl/util":[1],"utils.lisp":[1],"(top":[1],"level":[1],"form":[3,1],"find-class-by-name)":[1],"-\n":[1],"Search":[1],"class":[3,2,1],"name":[3,2,1],"STATICL/UTILS::NAME:":[1],"\"closure-template\"\n":[1],"staticl/serv":[1],"server.lisp":[1],"serve)":[1],"Start":[1],"Clack":[1],"serv":[1],"/tmp/result/\nHunchentoot":[1],"started.\nListen":[1],"localhost:8001.":[1],"/tmp/result\n":[1],"[21:39:48]":[1],"As":[1],"see,":[1],"veri":[1],"parameters,":[1],"static,":[1],"try":[1],"Look":[1],"it:":[1],"click":[1],"Blog":[1],"link,":[1],"open.":[1],"generation:":[1],"`(paginated-index":[1],"#P\"blog/\")'.":[1],"On":[1],"page,":[1],"displai":[1],"introduct":[1],"":[1],"entirety:":[1],"Pai":[1],"\"Next\"":[1],"lower":[1],"right":[1],"corner.":[1],"All":[2,1],"block:":[1],"`(prev-next-links)'.":[1],"metadata":[3,2,1],"post,":[1],"template.":[3,1],"disappear":[1],"Like":[1],"creator,":[1],"definit":[1],"commun":[1],"easiest":[1],"dynam":[1],"mani":[1],"Disqus,":[1],"Commento,":[1],"Remark42,":[1],"etc..":[1],"moment,":[1],"easi":[1],"system.":[1],"website!":[1],"regist":[3,2,1],"get":[1],"short":[3,2,1],"name,":[1],"config.":[1],"sai":[1],"`(disqu":[1],"\"example\")":[1],"pipeline:":[1],"#P\"blog/\")\n":[1],"(sitemap)\n":[1],"(disqu":[1],"\"example\"))":[1],"assum":[1],"don't":[3,1],"there":[3,1],"no-com":[1],"tag.":[1],"staticl/user-package:filt":[1],"block.":[1],"filter.":[3,2,1],"like,":[1],"appli":[1],"staticl/user-package:disqu":[1],"tag:":[1],"(filter":[1],"(:tag":[1],"\"no-comments\"\n":[1],":invert":[1],"t)\n":[1],"tag":[3,2,1],"blog/first.post":[1],"sure":[1],"tutorials,":[1],"learn":[1],"plugins.":[1],"Content":[2,1],"formats.":[2],"elements,":[2],"those,":[2],"turn,":[2],"subsequ":[2],"blocks.":[2],"config,":[2],"assembl":[2],"time":[2],"return":[3,2],"element:":[2],"load-content.":[2],"He":[2],"pages,":[2],"sitemap":[2],"load-cont":[2],"Both":[2],"\"nodes\"":[2],"generic-funct":[2],"staticl/pipeline:process-item":[2],"content.":[3,2],"Idea":[2],"symbols,":[2],"below,":[2],"STATICL-USER":[2],"packag":[2],"prefix.":[2],"Main":[2],"Build":[2],"Block":[2],"By":[3,2],"default":[3,2],"loaded.":[3,2],"extend":[3,2],"you'll":[3,2],"define\na":[3,2],"staticl/content:supported-content-typ":[3,2],"generic-function.":[3,2],"Filter":[3,2],"input":[3,2],"given":[3,2],"body.":[3,2],"Arguments:":[3,2],"PATH":[3,2],"path.":[3,2],"TAGS":[3,2],"tags.":[3,2],"INVERT":[3,2],"invert":[3,2],"PIPELINE":[3,2],"nodes.":[3,2],"Note:":[3,2],"Right":[3,2],"now,":[3,2],"macro\nar":[3,2],"toplevel":[3,2],"stai":[3,2],"invis":[3,2],"sebsequ":[3,2],"nodes.\nTh":[3,2],"applic":[3,2],"deletion.":[3,2],"Organiz":[2],"Creat":[3,2],"between":[3,2],"Link":[3,2],"item'":[3,2],"as\n":[3,2],"content.prev.url":[3,2],"content.next.url":[3,2],"variables.":[3,2],"post'":[3,2],"excerpt":[3,2],"PAGE-SIZE":[3,2],"items.":[3,2],"page-2.html":[3,2],"page-3.html":[3,2],"etc.":[3,2],"filenam":[3,2],"this\ncan":[3,2],"overriden":[3,2],"PAGE-FILENAME-FN":[3,2],"argument.":[3,2],"titl":[3,2],"PAGE-TITLE-FN":[3,2],"A":[3,2],"callback":[3,2],"titles.":[3,2],"Accept":[3,2],"singl":[3,2],"argument":[3,2],"pathnam":[3,2],"rel":[3,2],"root.\nBi":[3,2],"others.":[3,2],"\"clean":[3,2],"urls\"":[3,2],"enabled,":[3,2],"transform":[3,2],"be\nappli":[3,2],"automatically.":[3,2],"string.":[3,2],"russian:":[3,2],"#P\"ru/\"\n":[3,2],":page-title-fn":[3,2],"(lambda":[3,2],"(num)\n":[3,2],"(fmt":[3,2],"\"Страница":[3,2],"~A\"":[3,2],"num)))":[3,2],"names.":[3,2],"some.html":[3,2],"another.html":[3,2],"\"foo-bar\"":[3,2],"foo-bar.html.":[3,2],"additional\ntransform":[3,2],"(tag-name)\n":[3,2],"\"Записи":[3,2],"с":[3,2],"тегом":[3,2],"tag-name)))":[3,2],"Feed":[2],"Atom":[3,2],"TARGET-PATH":[3,2],"Only":[3,2],"LIMIT":[3,2],"Rss":[3,2],"Enabl":[3,2],"page.":[3,2],"work,":[3,2],"MathJAX":[3,2],"equal":[3,2],"TAG-NAME":[3,2],"FORCE":[3,2],"given.":[3,2],"skeleton":[3],"Function":[3],"STATICL":[3],"STATICL/BUILDER":[3],"Convert":[3],"clean-url":[3],"some/page.html":[3],"converted\nto":[3],"some/page/index.html.":[3],"remain":[3],"unchanged.":[3],"/some/page.html":[3],"/some/page/.":[3],"STATICL/CLEAN-URLS":[3],"Reader":[3],"Absolut":[3],"disk":[3],"NIL":[3],"file,":[3],"feeds.":[3],"CONTENT-FROM-FILE":[3],"CONTENT-TYPE":[3],"CONTENT-WITH-TAGS-MIXIN":[3],"CONTENT-WITH-TITLE-MIXIN":[3],"hash":[3],"field":[3],"specifi":[3],"file'":[3],"header.":[3],"CONTENT":[3],"Class":[3],"Should":[3],"absolut":[3],"rendered.":[3],"Return":[3],"T":[3],"tags,":[3],"type.":[3],"EXCLUDE":[3],"prefix":[3],"ignore.":[3],"Pathnam":[3],"dir":[3],"content-typ":[3],"objects.":[3],"STAGE-DIR":[3],"STREAM":[3],"FORMAT":[3],"Chang":[3],"dictionari":[3],"KEY":[3],"Kei":[3],"string":[3],"automat":[3],"downcased.":[3],"Note,":[3],"overrid":[3],"content'":[3],"slots.\nTo":[3],"prevent":[3],"accidenti":[3],"override,":[3],"rais":[3],"error\nin":[3],"case":[3],"slot":[3],".\nTo":[3],"forc":[3],"OVERRIDE-SLOT":[3],"STATICL/CONTENT":[3],"LOAD-CONTENT":[3],"STATICL/CONTENT-PIPELINE":[3],"content-html-excerpt":[3],"STATICL/CONTENT/HTML-CONTENT":[3],"PAGE-TYPE":[3],"PAGE":[3],"STATICL/CONTENT/PAGE":[3],"POST-TYPE":[3],"indices.":[3],"POST":[3],"class.":[3],"STATICL/CONTENT/POST":[3],"plist":[3],"FILE":[3],":TEXT":[3],"hold":[3],"go":[3],"SEPARATOR":[3],"STATICL/CONTENT/READER":[3],"Macro":[3],"STATICL/CURRENT-ROOT":[3],"ATOM":[3],"STATICL/FEEDS/ATOM":[3],"STATICL/FEEDS/RSS":[3],"FILTER":[3],"STATICL/FILTER":[3],"STATICL/FORMAT":[3],"Rel":[3],"generated.":[3],"BASE-INDEX":[3],"Accessor":[3],"INDEX-PAGE":[3],"STATICL/INDEX/BASE":[3],"PAGINATED-INDEX":[3],"STATICL/INDEX/PAGINATED":[3],"TAGS-INDEX":[3],"STATICL/INDEX/TAGS":[3],"CONTENT-WITH-INJECTIONS-MIXIN":[3],"piec":[3],"point":[3],"render":[3],"STATICL/INJECTIONS":[3],"LINK":[3],"piece.":[3],"template,":[3],"resolv":[3],"a\npag":[3],"title.":[3],"STATICL/LINKS/LINK":[3],"PREV-NEXT-LINKS":[3],"STATICL/LINKS/PREV-NEXT":[3],"ITEM":[3],"MENU":[3],"STATICL/NAVIGATION":[3],"CONTENT-ITEMS":[3],"conten":[3],"items\nproduc":[3],"Dure":[3],"execution,":[3],"produce-item":[3],"remove-item":[3],"content\nor":[3],"item.":[3],"STATICL/PIPELINE":[3],"PLUGIN":[3],"STATICL/PLUGIN":[3],"DISQUS":[3],"STATICL/PLUGINS/DISQUS":[3],"MATHJAX":[3],"STATICL/PLUGINS/MATHJAX":[3],"SITEMAP":[3],"STATICL/PLUGINS/SITEMAP":[3],"RSYNC":[3],"STATICL/RSYNC":[3],"STATICL/SERVER":[3],"some-page/index.html":[3],"instead":[3],"some-page.html":[3],"s":[3],"https://my-site.com/some-page/":[3],"https://my-site.com/some-page.html":[3],"charset.":[3],"UTF-8":[3],"found.":[3],"description.":[3],"navigation.":[3],"piplin":[3],"SITE":[3],"STATICL/SITE":[3],"STATICL/SKELETON":[3],"TAG":[3],"STATICL/TAG":[3],"THEME":[3],"Copi":[3],"imag":[3],"Usualli":[3],"enough":[3],"defin":[3],"list-stat":[3],"images.":[3],"first\nitem":[3],"relative\nto":[3],"Render":[3],"fill":[3],"TEMPLATE-NAME":[3],"VARS":[3],"NAME":[3],"tabl":[3],"keys.":[3],"Fill":[3],"hash-tabl":[3],"HASH":[3],"variabl":[3],"alloc":[3],"EQUAL":[3],":TEST":[3],"OBJECT":[3],"STATICL/THEME":[3],".\nA":[3],"FULL":[3],"given,\nth":[3],"url":[3],"schema":[3],"domain":[3],"returned.":[3],"Note":[3],"context":[3],"with-base-url":[3],"macro,\nbecaus":[3],"path":[3],"given\n(in":[3],"domain).":[3],"wonder:":[3],"\"Why":[3],"bother":[3],"domain?\"\nIt":[3],"easier":[3],"debug":[3],"purpose,":[3],"because\ny":[3],"setup":[3],"dn":[3],"resolver.":[3],"Actualli":[3],"rare":[3],"need\nand":[3],"STATICL/URL":[3],"valu":[3],"replac":[3],"normal":[3],"functions.":[3],"example:":[3],"(normalize-plist":[3],"'(:foo":[3],"\"Bar\"":[3],":blah":[3],"123)\n":[3],":foo":[3],"(value)\n":[3],"(alexandria:make-keyword":[3],"(string-upcas":[3],"value))))\n(LIST":[3],":FOO":[3],":BAR":[3],":BLAH":[3],"123)":[3],"under":[3],"ROOT-PATH":[3],"BODY":[3],"FILE-TYPE":[3],"provided,":[3],"run\n":[3],"match":[3],"extension.":[3],"STATICL/UTILS":[3],"API":[3]},"titles":["StatiCL - Flexible static site generator","Making a Static Site","Pipeline","API"],"titleterms":[]}) diff --git a/searchtools.js b/searchtools.js new file mode 100644 index 0000000..c0180d7 --- /dev/null +++ b/searchtools.js @@ -0,0 +1,532 @@ +/* + * searchtools.js + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for the full-text search. + * + * :copyright: Copyright 2007-2021 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +if (!Scorer) { + /** + * Simple result scoring code. + */ + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [filename, title, anchor, descr, score] + // and returns the new score. + /* + score: function(result) { + return result[4]; + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: {0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5}, // used to be unimportantResults + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2 + }; +} + +if (!splitQuery) { + function splitQuery(query) { + return query.split(/\s+/); + } +} + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + htmlToText : function(htmlString) { + var virtualDocument = document.implementation.createHTMLDocument('virtual'); + var htmlElement = $(htmlString, virtualDocument); + htmlElement.find('.headerlink').remove(); + docContent = htmlElement.find('[role=main]')[0]; + if(docContent === undefined) { + console.warn("Content block not found. Sphinx search tries to obtain it " + + "via '[role=main]'. Could you check your theme or template."); + return ""; + } + return docContent.textContent || docContent.innerText; + }, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, + dataType: "script", cache: true, + complete: function(jqxhr, textstatus) { + if (textstatus != "success") { + document.getElementById("searchindexloader").src = url; + } + }}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + var i; + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + } + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

 

').appendTo(this.out); + this.output = $('