]> granicus.if.org Git - icinga2/blobdiff - doc/18-library-reference.md
Documentation: add missing argument to chkconfig command.
[icinga2] / doc / 18-library-reference.md
index fcef4597bdf1ef59c1ab2454625822b7dc562be2..91f2fff74dca80489b87fd6eec1e8e8571c98561 100644 (file)
@@ -14,7 +14,9 @@ them in your scenarios.
 
 Signature:
 
-    function regex(pattern, value, mode)
+```
+function regex(pattern, value, mode)
+```
 
 Returns true if the regular expression `pattern` matches the `value`, false otherwise.
 The `value` can be of the type [String](18-library-reference.md#string-type) or [Array](18-library-reference.md#array-type) (which
@@ -28,32 +30,37 @@ The default mode is `MatchAll`.
 
 Example for string values:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => host.vars.os_type = "Linux/Unix"
-    null
-    <2> => regex("^Linux", host.vars.os_type)
-    true
-    <3> => regex("^Linux$", host.vars.os_type)
-    false
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => host.vars.os_type = "Linux/Unix"
+null
+<2> => regex("^Linux", host.vars.os_type)
+true
+<3> => regex("^Linux$", host.vars.os_type)
+false
+```
 
 Example for an array of string values:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => host.vars.databases = [ "db-prod1", "db-prod2", "db-dev" ]
-    null
-    <2> => regex("^db-prod\\d+", host.vars.databases, MatchAny)
-    true
-    <3> => regex("^db-prod\\d+", host.vars.databases, MatchAll)
-    false
-
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => host.vars.databases = [ "db-prod1", "db-prod2", "db-dev" ]
+null
+<2> => regex("^db-prod\\d+", host.vars.databases, MatchAny)
+true
+<3> => regex("^db-prod\\d+", host.vars.databases, MatchAll)
+false
+```
 
 ### match <a id="global-functions-match"></a>
 
 Signature:
 
-    function match(pattern, text, mode)
+```
+function match(pattern, text, mode)
+```
 
 Returns true if the wildcard (`?*`) `pattern` matches the `value`, false otherwise.
 The `value` can be of the type [String](18-library-reference.md#string-type) or [Array](18-library-reference.md#array-type) (which
@@ -65,32 +72,37 @@ The default mode is `MatchAll`.
 
 Example for string values:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => var name = "db-prod-sfo-657"
-    null
-    <2> => match("*prod-sfo*", name)
-    true
-    <3> => match("*-dev-*", name)
-    false
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => var name = "db-prod-sfo-657"
+null
+<2> => match("*prod-sfo*", name)
+true
+<3> => match("*-dev-*", name)
+false
+```
 
 Example for an array of string values:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0-28)
-    <1> => host.vars.application_types = [ "web-wp", "web-rt", "db-local" ]
-    null
-    <2> => match("web-*", host.vars.application_types, MatchAll)
-    false
-    <3> => match("web-*", host.vars.application_types, MatchAny)
-    true
-
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0-28)
+<1> => host.vars.application_types = [ "web-wp", "web-rt", "db-local" ]
+null
+<2> => match("web-*", host.vars.application_types, MatchAll)
+false
+<3> => match("web-*", host.vars.application_types, MatchAny)
+true
+```
 
 ### cidr_match <a id="global-functions-cidr_match"></a>
 
 Signature:
 
-    function cidr_match(pattern, ip, mode)
+```
+function cidr_match(pattern, ip, mode)
+```
 
 Returns true if the CIDR pattern matches the IP address, false otherwise.
 
@@ -102,33 +114,39 @@ either `MatchAll` (in which case all elements for an array have to match) or `Ma
 
 Example for a single IP address:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => host.address = "192.168.56.101"
-    null
-    <2> => cidr_match("192.168.56.0/24", host.address)
-    true
-    <3> => cidr_match("192.168.56.0/26", host.address)
-    false
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => host.address = "192.168.56.101"
+null
+<2> => cidr_match("192.168.56.0/24", host.address)
+true
+<3> => cidr_match("192.168.56.0/26", host.address)
+false
+```
 
 Example for an array of IP addresses:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => host.vars.vhost_ips = [ "192.168.56.101", "192.168.56.102", "10.0.10.99" ]
-    null
-    <2> => cidr_match("192.168.56.0/24", host.vars.vhost_ips, MatchAll)
-    false
-    <3> => cidr_match("192.168.56.0/24", host.vars.vhost_ips, MatchAny)
-    true
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => host.vars.vhost_ips = [ "192.168.56.101", "192.168.56.102", "10.0.10.99" ]
+null
+<2> => cidr_match("192.168.56.0/24", host.vars.vhost_ips, MatchAll)
+false
+<3> => cidr_match("192.168.56.0/24", host.vars.vhost_ips, MatchAny)
+true
+```
 
 ### range <a id="global-functions-range"></a>
 
 Signature:
 
-    function range(end)
-    function range(start, end)
-    function range(start, end, increment)
+```
+function range(end)
+function range(start, end)
+function range(start, end, increment)
+```
 
 Returns an array of numbers in the specified range.
 If you specify one parameter, the first element starts at `0`.
@@ -142,20 +160,24 @@ as third parameter.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => range(5)
-    [ 0.000000, 1.000000, 2.000000, 3.000000, 4.000000 ]
-    <2> => range(2,4)
-    [ 2.000000, 3.000000 ]
-    <3> => range(2,10,2)
-    [ 2.000000, 4.000000, 6.000000, 8.000000 ]
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => range(5)
+[ 0.000000, 1.000000, 2.000000, 3.000000, 4.000000 ]
+<2> => range(2,4)
+[ 2.000000, 3.000000 ]
+<3> => range(2,10,2)
+[ 2.000000, 4.000000, 6.000000, 8.000000 ]
+```
 
 ### len <a id="global-functions-len"></a>
 
 Signature:
 
-    function len(value)
+```
+function len(value)
+```
 
 Returns the length of the value, i.e. the number of elements for an array
 or dictionary, or the length of the string in bytes.
@@ -166,68 +188,78 @@ prototype method: [Array#len](18-library-reference.md#array-len), [Dictionary#le
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => host.groups = [ "linux-servers", "db-servers" ]
-    null
-    <2> => host.groups.len()
-    2.000000
-    <3> => host.vars.disks["/"] = {}
-    null
-    <4> => host.vars.disks["/var"] = {}
-    null
-    <5> => host.vars.disks.len()
-    2.000000
-    <6> => host.vars.os_type = "Linux/Unix"
-    null
-    <7> => host.vars.os_type.len()
-    10.000000
-
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => host.groups = [ "linux-servers", "db-servers" ]
+null
+<2> => host.groups.len()
+2.000000
+<3> => host.vars.disks["/"] = {}
+null
+<4> => host.vars.disks["/var"] = {}
+null
+<5> => host.vars.disks.len()
+2.000000
+<6> => host.vars.os_type = "Linux/Unix"
+null
+<7> => host.vars.os_type.len()
+10.000000
+```
 
 ### union <a id="global-functions-union"></a>
 
 Signature:
 
-    function union(array, array, ...)
+```
+function union(array, array, ...)
+```
 
 Returns an array containing all unique elements from the specified arrays.
 
 Example:
-
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => var dev_notification_groups = [ "devs", "slack" ]
-    null
-    <2> => var host_notification_groups = [ "slack", "noc" ]
-    null
-    <3> => union(dev_notification_groups, host_notification_groups)
-    [ "devs", "noc", "slack" ]
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => var dev_notification_groups = [ "devs", "slack" ]
+null
+<2> => var host_notification_groups = [ "slack", "noc" ]
+null
+<3> => union(dev_notification_groups, host_notification_groups)
+[ "devs", "noc", "slack" ]
+```
 
 ### intersection <a id="global-functions-intersection"></a>
 
 Signature:
 
-    function intersection(array, array, ...)
+```
+function intersection(array, array, ...)
+```
 
 Returns an array containing all unique elements which are common to all
 specified arrays.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => var dev_notification_groups = [ "devs", "slack" ]
-    null
-    <2> => var host_notification_groups = [ "slack", "noc" ]
-    null
-    <3> => intersection(dev_notification_groups, host_notification_groups)
-    [ "slack" ]
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => var dev_notification_groups = [ "devs", "slack" ]
+null
+<2> => var host_notification_groups = [ "slack", "noc" ]
+null
+<3> => intersection(dev_notification_groups, host_notification_groups)
+[ "slack" ]
+```
 
 ### keys <a id="global-functions-keys"></a>
 
 Signature:
 
-    function keys(dict)
+```
+function keys(dict)
+```
 
 Returns an array containing the dictionary's keys.
 
@@ -236,20 +268,24 @@ prototype method: [Dictionary#keys](18-library-reference.md#dictionary-keys).
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => host.vars.disks["/"] = {}
-    null
-    <2> => host.vars.disks["/var"] = {}
-    null
-    <3> => host.vars.disks.keys()
-    [ "/", "/var" ]
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => host.vars.disks["/"] = {}
+null
+<2> => host.vars.disks["/var"] = {}
+null
+<3> => host.vars.disks.keys()
+[ "/", "/var" ]
+```
 
 ### string <a id="global-functions-string"></a>
 
 Signature:
 
-    function string(value)
+```
+function string(value)
+```
 
 Converts the value to a string.
 
@@ -264,81 +300,99 @@ prototype method:
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => 5.to_string()
-    "5"
-    <2> => false.to_string()
-    "false"
-    <3> => "abc".to_string()
-    "abc"
-    <4> => [ "dev", "slack" ].to_string()
-    "[ \"dev\", \"slack\" ]"
-    <5> => { "/" = {}, "/var" = {} }.to_string()
-    "{\n\t\"/\" = {\n\t}\n\t\"/var\" = {\n\t}\n}"
-    <6> => DateTime(2016, 11, 25).to_string()
-    "2016-11-25 00:00:00 +0100"
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => 5.to_string()
+"5"
+<2> => false.to_string()
+"false"
+<3> => "abc".to_string()
+"abc"
+<4> => [ "dev", "slack" ].to_string()
+"[ \"dev\", \"slack\" ]"
+<5> => { "/" = {}, "/var" = {} }.to_string()
+"{\n\t\"/\" = {\n\t}\n\t\"/var\" = {\n\t}\n}"
+<6> => DateTime(2016, 11, 25).to_string()
+"2016-11-25 00:00:00 +0100"
+```
 
 ### number <a id="global-functions-number"></a>
 
 Signature:
 
-    function number(value)
+```
+function number(value)
+```
 
 Converts the value to a number.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => number(false)
-    0.000000
-    <2> => number("78")
-    78.000000
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => number(false)
+0.000000
+<2> => number("78")
+78.000000
+```
 
 ### bool <a id="global-functions-bool"></a>
 
 Signature:
 
-    function bool(value)
+```
+function bool(value)
+```
 
 Converts the value to a bool.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => bool(1)
-    true
-    <2> => bool(0)
-    false
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => bool(1)
+true
+<2> => bool(0)
+false
+```
 
 ### random <a id="global-functions-random"></a>
 
 Signature:
 
-    function random()
+```
+function random()
+```
 
 Returns a random value between 0 and RAND\_MAX (as defined in stdlib.h).
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => random()
-    1263171996.000000
-    <2> => random()
-    108402530.000000
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => random()
+1263171996.000000
+<2> => random()
+108402530.000000
+```
 
 ### log <a id="global-functions-log"></a>
 
 Signature:
 
-    function log(value)
+```
+function log(value)
+```
 
 Writes a message to the log. Non-string values are converted to a JSON string.
 
 Signature:
 
-    function log(severity, facility, value)
+```
+function log(severity, facility, value)
+```
 
 Writes a message to the log. `severity` can be one of `LogDebug`, `LogNotice`,
 `LogInformation`, `LogWarning`, and `LogCritical`.
@@ -347,140 +401,188 @@ Non-string values are converted to a JSON string.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => log(LogCritical, "Console", "First line")
-    critical/Console: First line
-    null
-    <2> => var groups = [ "devs", "slack" ]
-    null
-    <3> => log(LogCritical, "Console", groups)
-    critical/Console: ["devs","slack"]
-    null
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => log(LogCritical, "Console", "First line")
+critical/Console: First line
+null
+<2> => var groups = [ "devs", "slack" ]
+null
+<3> => log(LogCritical, "Console", groups)
+critical/Console: ["devs","slack"]
+null
+```
 
 ### typeof <a id="global-functions-typeof"></a>
 
 Signature:
 
-    function typeof(value)
+```
+function typeof(value)
+```
 
 Returns the [Type](18-library-reference.md#type-type) object for a value.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => typeof(3) == Number
-    true
-    <2> => typeof("str") == String
-    true
-    <3> => typeof(true) == Boolean
-    true
-    <4> => typeof([ 1, 2, 3]) == Array
-    true
-    <5> => typeof({ a = 2, b = 3 }) == Dictionary
-    true
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => typeof(3) == Number
+true
+<2> => typeof("str") == String
+true
+<3> => typeof(true) == Boolean
+true
+<4> => typeof([ 1, 2, 3]) == Array
+true
+<5> => typeof({ a = 2, b = 3 }) == Dictionary
+true
+```
 
 ### get_time <a id="global-functions-get_time"></a>
 
 Signature:
 
-    function get_time()
+```
+function get_time()
+```
 
 Returns the current UNIX timestamp as floating point number.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => get_time()
-    1480072135.633008
-    <2> => get_time()
-    1480072140.401207
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => get_time()
+1480072135.633008
+<2> => get_time()
+1480072140.401207
+```
 
 ### parse_performance_data <a id="global-functions-parse_performance_data"></a>
 
 Signature:
 
-    function parse_performance_data(pd)
+```
+function parse_performance_data(pd)
+```
 
 Parses a performance data string and returns an array describing the values.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => var pd = "'time'=1480074205.197363;;;"
-    null
-    <2> => parse_performance_data(pd)
-    {
-       counter = false
-       crit = null
-       label = "time"
-       max = null
-       min = null
-       type = "PerfdataValue"
-       unit = ""
-       value = 1480074205.197363
-       warn = null
-    }
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => var pd = "'time'=1480074205.197363;;;"
+null
+<2> => parse_performance_data(pd)
+{
+       counter = false
+       crit = null
+       label = "time"
+       max = null
+       min = null
+       type = "PerfdataValue"
+       unit = ""
+       value = 1480074205.197363
+       warn = null
+}
+```
+
+### getenv <a id="global-functions-getenv"></a>
+
+Signature:
+
+```
+function getenv(key)
+```
+
+Returns the value from the specified environment variable key.
+
+Example:
+
+```
+$ MY_ENV_VAR=icinga2 icinga2 console
+Icinga 2 (version: v2.11.0)
+Type $help to view available commands.
+<1> => getenv("MY_ENV_VAR")
+"icinga2"
+```
 
 ### dirname <a id="global-functions-dirname"></a>
 
 Signature:
 
-    function dirname(path)
+```
+function dirname(path)
+```
 
 Returns the directory portion of the specified path.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => var path = "/etc/icinga2/scripts/xmpp-notification.pl"
-    null
-    <2> => dirname(path)
-    "/etc/icinga2/scripts"
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => var path = "/etc/icinga2/scripts/xmpp-notification.pl"
+null
+<2> => dirname(path)
+"/etc/icinga2/scripts"
+```
 
 ### basename <a id="global-functions-basename"></a>
 
 Signature:
 
-    function basename(path)
+```
+function basename(path)
+```
 
 Returns the filename portion of the specified path.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => var path = "/etc/icinga2/scripts/xmpp-notification.pl"
-    null
-    <2> => basename(path)
-    "xmpp-notification.pl"
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => var path = "/etc/icinga2/scripts/xmpp-notification.pl"
+null
+<2> => basename(path)
+"xmpp-notification.pl"
+```
 
 ### path\_exists <a id="global-functions-path-exists"></a>
 
 Signature:
 
-    function path_exists(path)
+```
+function path_exists(path)
+```
 
 Returns true if the specified path exists, false otherwise.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => var path = "/etc/icinga2/scripts/xmpp-notification.pl"
-    null
-    <2> => path_exists(path)
-    true
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => var path = "/etc/icinga2/scripts/xmpp-notification.pl"
+null
+<2> => path_exists(path)
+true
+```
 
 ### glob <a id="global-functions-glob"></a>
 
 Signature:
 
-    function glob(pathSpec, type)
+```
+function glob(pathSpec, type)
+```
 
 Returns an array containing all paths which match the
 `pathSpec` argument.
@@ -489,18 +591,22 @@ The `type` argument is optional and specifies which types
 of paths are matched. This can be a combination of the `GlobFile`
 and `GlobDirectory` constants. The default value is `GlobFile | GlobDirectory`.
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => var pathSpec = "/etc/icinga2/conf.d/*.conf"
-    null
-    <2> => glob(pathSpec)
-    [ "/etc/icinga2/conf.d/app.conf", "/etc/icinga2/conf.d/commands.conf", ... ]
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => var pathSpec = "/etc/icinga2/conf.d/*.conf"
+null
+<2> => glob(pathSpec)
+[ "/etc/icinga2/conf.d/app.conf", "/etc/icinga2/conf.d/commands.conf", ... ]
+```
 
 ### glob\_recursive <a id="global-functions-glob-recursive"></a>
 
 Signature:
 
-    function glob_recursive(path, pattern, type)
+```
+function glob_recursive(path, pattern, type)
+```
 
 Recursively descends into the specified directory and returns an array containing
 all paths which match the `pattern` argument.
@@ -509,50 +615,62 @@ The `type` argument is optional and specifies which types
 of paths are matched. This can be a combination of the `GlobFile`
 and `GlobDirectory` constants. The default value is `GlobFile | GlobDirectory`.
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => var path = "/etc/icinga2/zones.d/"
-    null
-    <2> => var pattern = "*.conf"
-    null
-    <3> => glob_recursive(path, pattern)
-    [ "/etc/icinga2/zones.d/global-templates/templates.conf", "/etc/icinga2/zones.d/master/hosts.conf", ... ]
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => var path = "/etc/icinga2/zones.d/"
+null
+<2> => var pattern = "*.conf"
+null
+<3> => glob_recursive(path, pattern)
+[ "/etc/icinga2/zones.d/global-templates/templates.conf", "/etc/icinga2/zones.d/master/hosts.conf", ... ]
+```
 
 ### escape_shell_arg <a id="global-functions-escape_shell_arg"></a>
 
 Signature:
 
-    function escape_shell_arg(text)
+```
+function escape_shell_arg(text)
+```
 
 Escapes a string for use as a single shell argument.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => escape_shell_arg("'$host.name$' '$service.name$'")
-    "''\\''$host.name$'\\'' '\\''$service.name$'\\'''"
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => escape_shell_arg("'$host.name$' '$service.name$'")
+"''\\''$host.name$'\\'' '\\''$service.name$'\\'''"
+```
 
 ### escape_shell_cmd <a id="global-functions-escape_shell_cmd"></a>
 
 Signature:
 
-    function escape_shell_cmd(text)
+```
+function escape_shell_cmd(text)
+```
 
 Escapes shell meta characters in a string.
 
 Example:
 
-    $ icinga2 console
-    Icinga 2 (version: v2.7.0)
-    <1> => escape_shell_cmd("/bin/echo 'shell test' $ENV")
-    "/bin/echo 'shell test' \\$ENV"
+```
+$ icinga2 console
+Icinga 2 (version: v2.11.0)
+<1> => escape_shell_cmd("/bin/echo 'shell test' $ENV")
+"/bin/echo 'shell test' \\$ENV"
+```
 
 ### escape_create_process_arg <a id="global-functions-escape_create_process_arg"></a>
 
 Signature:
 
-    function escape_create_process_arg(text)
+```
+function escape_create_process_arg(text)
+```
 
 Escapes a string for use as an argument for CreateProcess(). Windows only.
 
@@ -560,7 +678,9 @@ Escapes a string for use as an argument for CreateProcess(). Windows only.
 
 Signature:
 
-    function sleep(interval)
+```
+function sleep(interval)
+```
 
 Sleeps for the specified amount of time (in seconds).
 
@@ -588,7 +708,7 @@ for [custom attributes](03-monitoring-basics.md#custom-attributes-functions) whi
 use the [abbreviated lambda syntax](17-language-reference.md#nullary-lambdas).
 
 This example sets the `snmp_address` custom attribute
-based on `$address$` and `$address6`.
+based on `$address$` and `$address6$`.
 
 ```
   vars.snmp_address = {{
@@ -614,7 +734,9 @@ These functions can be used to retrieve a reference to another object by name.
 
 Signature:
 
-    function get_check_command(name);
+```
+function get_check_command(name);
+```
 
 Returns the CheckCommand object with the specified name, or `null` if no such CheckCommand object exists.
 
@@ -622,7 +744,9 @@ Returns the CheckCommand object with the specified name, or `null` if no such Ch
 
 Signature:
 
-    function get_event_command(name);
+```
+function get_event_command(name);
+```
 
 Returns the EventCommand object with the specified name, or `null` if no such EventCommand object exists.
 
@@ -630,7 +754,9 @@ Returns the EventCommand object with the specified name, or `null` if no such Ev
 
 Signature:
 
-    function get_notification_command(name);
+```
+function get_notification_command(name);
+```
 
 Returns the NotificationCommand object with the specified name, or `null` if no such NotificationCommand object exists.
 
@@ -638,7 +764,9 @@ Returns the NotificationCommand object with the specified name, or `null` if no
 
 Signature:
 
-    function get_host(host_name);
+```
+function get_host(host_name);
+```
 
 Returns the Host object with the specified name, or `null` if no such Host object exists.
 
@@ -647,8 +775,10 @@ Returns the Host object with the specified name, or `null` if no such Host objec
 
 Signature:
 
-    function get_service(host_name, service_name);
-    function get_service(host, service_name);
+```
+function get_service(host_name, service_name);
+function get_service(host, service_name);
+```
 
 Returns the Service object with the specified host name or object and service name pair,
 or `null` if no such Service object exists.
@@ -658,7 +788,7 @@ which fetches the `disk` service object from the current Icinga 2 node:
 
 ```
 $ ICINGA2_API_PASSWORD=icinga icinga2 console --connect 'https://root@localhost:5665/'
-Icinga 2 (version: v2.7.0)
+Icinga 2 (version: v2.11.0)
 
 <1> => get_service(NodeName, "disk")
 <2> => get_service(NodeName, "disk").__name
@@ -672,8 +802,10 @@ Icinga 2 (version: v2.7.0)
 
 Signature:
 
-    function get_services(host_name);
-    function get_services(host);
+```
+function get_services(host_name);
+function get_services(host);
+```
 
 Returns an [array](17-language-reference.md#array) of service objects for the specified host name or object,
 or `null` if no such host object exists.
@@ -683,7 +815,7 @@ which fetches all service objects from the current Icinga 2 node:
 
 ```
 $ ICINGA2_API_PASSWORD=icinga icinga2 console --connect 'https://root@localhost:5665/'
-Icinga 2 (version: v2.7.0)
+Icinga 2 (version: v2.11.0)
 
 <1> => get_services(NodeName).map(s => s.name)
 [ "disk", "disk /", "http", "icinga", "load", "ping4", "ping6", "procs", "ssh", "users" ]
@@ -704,7 +836,9 @@ in using the [map](18-library-reference.md#array-map) functionality:
 
 Signature:
 
-    function get_user(name);
+```
+function get_user(name);
+```
 
 Returns the User object with the specified name, or `null` if no such User object exists.
 
@@ -712,7 +846,9 @@ Returns the User object with the specified name, or `null` if no such User objec
 
 Signature:
 
-    function get_host_group(name);
+```
+function get_host_group(name);
+```
 
 Returns the HostGroup object with the specified name, or `null` if no such HostGroup object exists.
 
@@ -721,7 +857,9 @@ Returns the HostGroup object with the specified name, or `null` if no such HostG
 
 Signature:
 
-    function get_service_group(name);
+```
+function get_service_group(name);
+```
 
 Returns the ServiceGroup object with the specified name, or `null` if no such ServiceGroup object exists.
 
@@ -729,7 +867,9 @@ Returns the ServiceGroup object with the specified name, or `null` if no such Se
 
 Signature:
 
-    function get_user_group(name);
+```
+function get_user_group(name);
+```
 
 Returns the UserGroup object with the specified name, or `null` if no such UserGroup object exists.
 
@@ -738,7 +878,9 @@ Returns the UserGroup object with the specified name, or `null` if no such UserG
 
 Signature:
 
-    function get_time_period(name);
+```
+function get_time_period(name);
+```
 
 Returns the TimePeriod object with the specified name, or `null` if no such TimePeriod object exists.
 
@@ -747,7 +889,9 @@ Returns the TimePeriod object with the specified name, or `null` if no such Time
 
 Signature:
 
-    function get_object(type, name);
+```
+function get_object(type, name);
+```
 
 Returns the object with the specified type and name, or `null` if no such object exists. `type` must refer
 to a type object.
@@ -757,7 +901,9 @@ to a type object.
 
 Signature:
 
-    function get_objects(type);
+```
+function get_objects(type);
+```
 
 Returns an array of objects whose type matches the specified type. `type` must refer
 to a type object.
@@ -800,7 +946,9 @@ Square root of 2.
 
 Signature:
 
-    function abs(x);
+```
+function abs(x);
+```
 
 Returns the absolute value of `x`.
 
@@ -808,7 +956,9 @@ Returns the absolute value of `x`.
 
 Signature:
 
-    function acos(x);
+```
+function acos(x);
+```
 
 Returns the arccosine of `x`.
 
@@ -816,7 +966,9 @@ Returns the arccosine of `x`.
 
 Signature:
 
-    function asin(x);
+```
+function asin(x);
+```
 
 Returns the arcsine of `x`.
 
@@ -824,7 +976,9 @@ Returns the arcsine of `x`.
 
 Signature:
 
-    function atan(x);
+```
+function atan(x);
+```
 
 Returns the arctangent of `x`.
 
@@ -832,15 +986,18 @@ Returns the arctangent of `x`.
 
 Signature:
 
-    function atan2(y, x);
-
+```
+function atan2(y, x);
+```
 Returns the arctangent of the quotient of `y` and `x`.
 
 ### Math.ceil <a id="math-ceil"></a>
 
 Signature:
 
-    function ceil(x);
+```
+function ceil(x);
+```
 
 Returns the smallest integer value not less than `x`.
 
@@ -848,7 +1005,9 @@ Returns the smallest integer value not less than `x`.
 
 Signature:
 
-    function cos(x);
+```
+function cos(x);
+```
 
 Returns the cosine of `x`.
 
@@ -856,7 +1015,9 @@ Returns the cosine of `x`.
 
 Signature:
 
-    function exp(x);
+```
+function exp(x);
+```
 
 Returns E raised to the `x`th power.
 
@@ -864,7 +1025,9 @@ Returns E raised to the `x`th power.
 
 Signature:
 
-    function floor(x);
+```
+function floor(x);
+```
 
 Returns the largest integer value not greater than `x`.
 
@@ -872,7 +1035,9 @@ Returns the largest integer value not greater than `x`.
 
 Signature:
 
-    function isinf(x);
+```
+function isinf(x);
+```
 
 Returns whether `x` is infinite.
 
@@ -880,7 +1045,9 @@ Returns whether `x` is infinite.
 
 Signature:
 
-    function isnan(x);
+```
+function isnan(x);
+```
 
 Returns whether `x` is NaN (not-a-number).
 
@@ -888,7 +1055,9 @@ Returns whether `x` is NaN (not-a-number).
 
 Signature:
 
-    function log(x);
+```
+function log(x);
+```
 
 Returns the natural logarithm of `x`.
 
@@ -896,7 +1065,9 @@ Returns the natural logarithm of `x`.
 
 Signature:
 
-    function max(...);
+```
+function max(...);
+```
 
 Returns the largest argument. A variable number of arguments can be specified.
 If no arguments are given, -Infinity is returned.
@@ -905,7 +1076,9 @@ If no arguments are given, -Infinity is returned.
 
 Signature:
 
-    function min(...);
+```
+function min(...);
+```
 
 Returns the smallest argument. A variable number of arguments can be specified.
 If no arguments are given, +Infinity is returned.
@@ -914,7 +1087,9 @@ If no arguments are given, +Infinity is returned.
 
 Signature:
 
-    function pow(x, y);
+```
+function pow(x, y);
+```
 
 Returns `x` raised to the `y`th power.
 
@@ -922,7 +1097,9 @@ Returns `x` raised to the `y`th power.
 
 Signature:
 
-    function random();
+```
+function random();
+```
 
 Returns a pseudo-random number between 0 and 1.
 
@@ -930,7 +1107,9 @@ Returns a pseudo-random number between 0 and 1.
 
 Signature:
 
-    function round(x);
+```
+function round(x);
+```
 
 Returns `x` rounded to the nearest integer value.
 
@@ -938,7 +1117,9 @@ Returns `x` rounded to the nearest integer value.
 
 Signature:
 
-    function sign(x);
+```
+function sign(x);
+```
 
 Returns -1 if `x` is negative, 1 if `x` is positive
 and 0 if `x` is 0.
@@ -947,7 +1128,9 @@ and 0 if `x` is 0.
 
 Signature:
 
-    function sin(x);
+```
+function sin(x);
+```
 
 Returns the sine of `x`.
 
@@ -955,7 +1138,9 @@ Returns the sine of `x`.
 
 Signature:
 
-    function sqrt(x);
+```
+function sqrt(x);
+```
 
 Returns the square root of `x`.
 
@@ -963,7 +1148,9 @@ Returns the square root of `x`.
 
 Signature:
 
-    function tan(x);
+```
+function tan(x);
+```
 
 Returns the tangent of `x`.
 
@@ -975,7 +1162,9 @@ The global `Json` object can be used to encode and decode JSON.
 
 Signature:
 
-    function encode(x);
+```
+function encode(x);
+```
 
 Encodes an arbitrary value into JSON.
 
@@ -983,7 +1172,9 @@ Encodes an arbitrary value into JSON.
 
 Signature:
 
-    function decode(x);
+```
+function decode(x);
+```
 
 Decodes a JSON string.
 
@@ -993,14 +1184,18 @@ Decodes a JSON string.
 
 Signature:
 
-    function to_string();
+```
+function to_string();
+```
 
 The `to_string` method returns a string representation of the number.
 
 Example:
 
-    var example = 7
+```
+var example = 7
        example.to_string() /* Returns "7" */
+```
 
 ## Boolean type <a id="boolean-type"></a>
 
@@ -1008,14 +1203,18 @@ Example:
 
 Signature:
 
-    function to_string();
+```
+function to_string();
+```
 
 The `to_string` method returns a string representation of the boolean value.
 
 Example:
 
-    var example = true
+```
+var example = true
        example.to_string() /* Returns "true" */
+```
 
 ## String type <a id="string-type"></a>
 
@@ -1023,7 +1222,9 @@ Example:
 
 Signature:
 
-    function find(str, start);
+```
+function find(str, start);
+```
 
 Returns the zero-based index at which the string `str` was found in the string. If the string
 was not found, -1 is returned. `start` specifies the zero-based index at which `find` should
@@ -1031,13 +1232,17 @@ start looking for the string (defaults to 0 when not specified).
 
 Example:
 
-    "Hello World".find("World") /* Returns 6 */
+```
+"Hello World".find("World") /* Returns 6 */
+```
 
 ### String#contains <a id="string-contains"></a>
 
 Signature:
 
-    function contains(str);
+```
+function contains(str);
+```
 
 Returns `true` if the string `str` was found in the string. If the string
 was not found, `false` is returned. Use [find](18-library-reference.md#string-find)
@@ -1045,50 +1250,66 @@ for getting the index instead.
 
 Example:
 
-    "Hello World".contains("World") /* Returns true */
+```
+"Hello World".contains("World") /* Returns true */
+```
 
 ### String#len <a id="string-len"></a>
 
 Signature
 
-    function len();
+```
+function len();
+```
 
 Returns the length of the string in bytes. Note that depending on the encoding type of the string
 this is not necessarily the number of characters.
 
 Example:
 
-    "Hello World".len() /* Returns 11 */
+```
+"Hello World".len() /* Returns 11 */
+```
 
 ### String#lower <a id="string-lower"></a>
 
 Signature:
 
-    function lower();
+```
+function lower();
+```
 
 Returns a copy of the string with all of its characters converted to lower-case.
 
 Example:
 
-    "Hello World".lower() /* Returns "hello world" */
+```
+"Hello World".lower() /* Returns "hello world" */
+```
 
 ### String#upper <a id="string-upper"></a>
 
 Signature:
 
-    function upper();
+```
+function upper();
+```
 
 Returns a copy of the string with all of its characters converted to upper-case.
 
 Example:
 
-    "Hello World".upper() /* Returns "HELLO WORLD" */
+```
+"Hello World".upper() /* Returns "HELLO WORLD" */
+```
 
 ### String#replace <a id="string-replace"></a>
 
 Signature:
 
-    function replace(search, replacement);
+```
+function replace(search, replacement);
+```
 
 Returns a copy of the string with all occurences of the string specified in `search` replaced
 with the string specified in `replacement`.
@@ -1097,33 +1318,43 @@ with the string specified in `replacement`.
 
 Signature:
 
-    function split(delimiters);
+```
+function split(delimiters);
+```
 
 Splits a string into individual parts and returns them as an array. The `delimiters` argument
 specifies the characters which should be used as delimiters between parts.
 
 Example:
 
-    "x-7,y".split("-,") /* Returns [ "x", "7", "y" ] */
+```
+"x-7,y".split("-,") /* Returns [ "x", "7", "y" ] */
+```
 
 ### String#substr <a id="string-substr"></a>
 
 Signature:
 
-    function substr(start, len);
+```
+function substr(start, len);
+```
 
 Returns a part of a string. The `start` argument specifies the zero-based index at which the part begins.
 The optional `len` argument specifies the length of the part ("until the end of the string" if omitted).
 
 Example:
 
-    "Hello World".substr(6) /* Returns "World" */
+```
+"Hello World".substr(6) /* Returns "World" */
+```
 
 ### String#to_string <a id="string-to_string"></a>
 
 Signature:
 
-    function to_string();
+```
+function to_string();
+```
 
 Returns a copy of the string.
 
@@ -1131,7 +1362,9 @@ Returns a copy of the string.
 
 Signature:
 
-    function reverse();
+```
+function reverse();
+```
 
 Returns a copy of the string in reverse order.
 
@@ -1139,7 +1372,9 @@ Returns a copy of the string in reverse order.
 
 Signature:
 
-    function trim();
+```
+function trim();
+```
 
 Removes trailing whitespaces and returns the string.
 
@@ -1151,7 +1386,9 @@ This is the base type for all types in the Icinga application.
 
 Signature:
 
-     function clone();
+```
+ function clone();
+```
 
 Returns a copy of the object. Note that for object elements which are
 reference values (e.g. objects such as arrays or dictionaries) the entire
@@ -1161,7 +1398,9 @@ object is recursively copied.
 
 Signature:
 
-    function to_string();
+```
+function to_string();
+```
 
 Returns a string representation for the object. Unless overridden this returns a string
 of the format "Object of type '<typename>'" where <typename> is the name of the
@@ -1169,19 +1408,23 @@ object's type.
 
 Example:
 
-    [ 3, true ].to_string() /* Returns "[ 3.000000, true ]" */
+```
+[ 3, true ].to_string() /* Returns "[ 3.000000, true ]" */
+```
 
 ### Object#type <a id="object-type-field"></a>
 
 Signature:
 
-    String type;
+String type;
 
 Returns the object's type name. This attribute is read-only.
 
 Example:
 
-    get_host("localhost").type /* Returns "Host" */
+```
+get_host("localhost").type /* Returns "Host" */
+```
 
 ## Type type <a id="type-type"></a>
 
@@ -1195,19 +1438,25 @@ All types are registered as global variables. For example, in order to obtain a
 
 Signature:
 
-    Type base;
+```
+Type base;
+```
 
 Returns a reference to the type's base type. This attribute is read-only.
 
 Example:
 
-    Dictionary.base == Object /* Returns true, because the Dictionary type inherits directly from the Object type. */
+```
+Dictionary.base == Object /* Returns true, because the Dictionary type inherits directly from the Object type. */
+```
 
 ### Type#name <a id="type-name"></a>
 
 Signature:
 
-    String name;
+```
+String name;
+```
 
 Returns the name of the type.
 
@@ -1215,7 +1464,9 @@ Returns the name of the type.
 
 Signature:
 
-    Object prototype;
+```
+Object prototype;
+```
 
 Returns the prototype object for the type. When an attribute is accessed on an object that doesn't exist the prototype object is checked to see if an attribute with the requested name exists. If it does, the attribute's value is returned.
 
@@ -1223,7 +1474,9 @@ The prototype functionality is used to implement methods.
 
 Example:
 
-    3.to_string() /* Even though '3' does not have a to_string property the Number type's prototype object does. */
+```
+3.to_string() /* Even though '3' does not have a to_string property the Number type's prototype object does. */
+```
 
 ## Array type <a id="array-type"></a>
 
@@ -1233,7 +1486,9 @@ Inherits methods from the [Object type](18-library-reference.md#object-type).
 
 Signature:
 
-    function add(value);
+```
+function add(value);
+```
 
 Adds a new value after the last element in the array.
 
@@ -1241,13 +1496,17 @@ Adds a new value after the last element in the array.
 
 Signature:
 
-    function clear();
+```
+function clear();
+```
 
 Removes all elements from the array.
 
 ### Array#shallow_clone <a id="array-shallow-clone"></a>
 
-    function shallow_clone();
+```
+function shallow_clone();
+```
 
 Returns a copy of the array. Note that for elements which are reference values (e.g. objects such
 as arrays and dictionaries) only the references are copied.
@@ -1256,7 +1515,9 @@ as arrays and dictionaries) only the references are copied.
 
 Signature:
 
-    function contains(value);
+```
+function contains(value);
+```
 
 Returns true if the array contains the specified value, false otherwise.
 
@@ -1264,7 +1525,9 @@ Returns true if the array contains the specified value, false otherwise.
 
 Signature:
 
-    function freeze()
+```
+function freeze()
+```
 
 Disallows further modifications to this array. Trying to modify the array will result in an exception.
 
@@ -1272,7 +1535,9 @@ Disallows further modifications to this array. Trying to modify the array will r
 
 Signature:
 
-    function len();
+```
+function len();
+```
 
 Returns the number of elements contained in the array.
 
@@ -1280,7 +1545,9 @@ Returns the number of elements contained in the array.
 
 Signature:
 
-    function remove(index);
+```
+function remove(index);
+```
 
 Removes the element at the specified zero-based index.
 
@@ -1288,7 +1555,9 @@ Removes the element at the specified zero-based index.
 
 Signature:
 
-    function set(index, value);
+```
+function set(index, value);
+```
 
 Sets the element at the zero-based index to the specified value. The `index` must refer to an element
 which already exists in the array.
@@ -1297,7 +1566,9 @@ which already exists in the array.
 
 Signature:
 
-    function get(index);
+```
+function get(index);
+```
 
 Retrieves the element at the specified zero-based index.
 
@@ -1305,7 +1576,9 @@ Retrieves the element at the specified zero-based index.
 
 Signature:
 
-    function sort(less_cmp);
+```
+function sort(less_cmp);
+```
 
 Returns a copy of the array where all items are sorted. The items are
 compared using the `<` (less-than) operator. A custom comparator function
@@ -1315,7 +1588,9 @@ can be specified with the `less_cmp` argument.
 
 Signature:
 
-    function join(separator);
+```
+function join(separator);
+```
 
 Joins all elements of the array using the specified separator.
 
@@ -1323,7 +1598,9 @@ Joins all elements of the array using the specified separator.
 
 Signature:
 
-    function reverse();
+```
+function reverse();
+```
 
 Returns a new array with all elements of the current array in reverse order.
 
@@ -1331,7 +1608,9 @@ Returns a new array with all elements of the current array in reverse order.
 
 Signature:
 
-    function map(func);
+```
+function map(func);
+```
 
 Calls `func(element)` for each of the elements in the array and returns
 a new array containing the return values of these function calls.
@@ -1340,7 +1619,9 @@ a new array containing the return values of these function calls.
 
 Signature:
 
-    function reduce(func);
+```
+function reduce(func);
+```
 
 Reduces the elements of the array into a single value by calling the provided
 function `func` as `func(a, b)` repeatedly where `a` and `b` are elements of the array
@@ -1350,7 +1631,9 @@ or results from previous function calls.
 
 Signature:
 
-    function filter(func);
+```
+function filter(func);
+```
 
 Returns a copy of the array containing only the elements for which `func(element)`
 is true.
@@ -1359,7 +1642,9 @@ is true.
 
 Signature:
 
-    function any(func);
+```
+function any(func);
+```
 
 Returns true if the array contains at least one element for which `func(element)`
 is true, false otherwise.
@@ -1368,7 +1653,9 @@ is true, false otherwise.
 
 Signature:
 
-    function all(func);
+```
+function all(func);
+```
 
 Returns true if the array contains only elements for which `func(element)`
 is true, false otherwise.
@@ -1377,7 +1664,9 @@ is true, false otherwise.
 
 Signature:
 
-    function unique();
+```
+function unique();
+```
 
 Returns a copy of the array with all duplicate elements removed. The original order
 of the array is not preserved.
@@ -1390,7 +1679,9 @@ Inherits methods from the [Object type](18-library-reference.md#object-type).
 
 Signature:
 
-    function shallow_clone();
+```
+function shallow_clone();
+```
 
 Returns a copy of the dictionary. Note that for elements which are reference values (e.g. objects such
 as arrays and dictionaries) only the references are copied.
@@ -1399,7 +1690,9 @@ as arrays and dictionaries) only the references are copied.
 
 Signature:
 
-    function contains(key);
+```
+function contains(key);
+```
 
 Returns true if a dictionary item with the specified `key` exists, false otherwise.
 
@@ -1407,7 +1700,9 @@ Returns true if a dictionary item with the specified `key` exists, false otherwi
 
 Signature:
 
-    function freeze()
+```
+function freeze()
+```
 
 Disallows further modifications to this dictionary. Trying to modify the dictionary will result in an exception.
 
@@ -1415,7 +1710,9 @@ Disallows further modifications to this dictionary. Trying to modify the diction
 
 Signature:
 
-    function len();
+```
+function len();
+```
 
 Returns the number of items contained in the dictionary.
 
@@ -1423,16 +1720,30 @@ Returns the number of items contained in the dictionary.
 
 Signature:
 
-    function remove(key);
+```
+function remove(key);
+```
 
 Removes the item with the specified `key`. Trying to remove an item which does not exist
 is a no-op.
 
+### Dictionary#clear <a id="dictionary-clear"></a>
+
+Signature:
+
+```
+function clear();
+```
+
+Removes all items from the dictionary.
+
 ### Dictionary#set <a id="dictionary-set"></a>
 
 Signature:
 
-    function set(key, value);
+```
+function set(key, value);
+```
 
 Creates or updates an item with the specified `key` and `value`.
 
@@ -1440,7 +1751,9 @@ Creates or updates an item with the specified `key` and `value`.
 
 Signature:
 
-    function get(key);
+```
+function get(key);
+```
 
 Retrieves the value for the specified `key`. Returns `null` if they `key` does not exist
 in the dictionary.
@@ -1449,7 +1762,9 @@ in the dictionary.
 
 Signature:
 
-    function keys();
+```
+function keys();
+```
 
 Returns a list of keys for all items that are currently in the dictionary.
 
@@ -1457,7 +1772,9 @@ Returns a list of keys for all items that are currently in the dictionary.
 
 Signature:
 
-    function values();
+```
+function values();
+```
 
 Returns a list of values for all items that are currently in the dictionary.
 
@@ -1469,41 +1786,49 @@ Inherits methods from the [Object type](18-library-reference.md#object-type).
 
 Signature:
 
-    function call(thisArg, ...);
+```
+function call(thisArg, ...);
+```
 
 Invokes the function using an alternative `this` scope. The `thisArg` argument specifies the `this`
 scope for the function. All other arguments are passed directly to the function.
 
 Example:
 
-    function set_x(val) {
-         this.x = val
-       }
+```
+function set_x(val) {
+  this.x = val
+}
        
-       dict = {}
+dict = {}
        
-       set_x.call(dict, 7) /* Invokes set_x using `dict` as `this` */
+set_x.call(dict, 7) /* Invokes set_x using `dict` as `this` */
+```
 
 ### Function#callv <a id="scriptfunction-callv"></a>
 
 Signature:
 
-    function callv(thisArg, args);
+```
+function callv(thisArg, args);
+```
 
 Invokes the function using an alternative `this` scope. The `thisArg` argument specifies the `this`
 scope for the function. The items in the `args` array are passed to the function as individual arguments.
 
 Example:
 
-    function set_x(val) {
-         this.x = val
-       }
+```
+function set_x(val) {
+  this.x = val
+}
        
-       var dict = {}
+var dict = {}
 
-       var args = [ 7 ]
+var args = [ 7 ]
 
-       set_x.callv(dict, args) /* Invokes set_x using `dict` as `this` */
+set_x.callv(dict, args) /* Invokes set_x using `dict` as `this` */
+```
 
 ## DateTime type <a id="datetime-type"></a>
 
@@ -1513,18 +1838,22 @@ Inherits methods from the [Object type](18-library-reference.md#object-type).
 
 Signature:
 
-    function DateTime()
-    function DateTime(unixTimestamp)
-    function DateTime(year, month, day)
-    function DateTime(year, month, day, hours, minutes, seconds)
+```
+function DateTime()
+function DateTime(unixTimestamp)
+function DateTime(year, month, day)
+function DateTime(year, month, day, hours, minutes, seconds)
+```
 
 Constructs a new DateTime object. When no arguments are specified for the constructor a new
 DateTime object representing the current time is created.
 
 Example:
 
-    var d1 = DateTime() /* current time */
-    var d2 = DateTime(2016, 5, 21) /* midnight April 21st, 2016 (local time) */
+```
+var d1 = DateTime() /* current time */
+var d2 = DateTime(2016, 5, 21) /* midnight April 21st, 2016 (local time) */
+```
 
 ### DateTime arithmetic <a id="datetime-arithmetic"></a>
 
@@ -1532,41 +1861,55 @@ Subtracting two DateTime objects yields the interval between them, in seconds.
 
 Example:
 
-    var delta = DateTime() - DateTime(2016, 5, 21) /* seconds since midnight April 21st, 2016 */
+```
+var delta = DateTime() - DateTime(2016, 5, 21) /* seconds since midnight April 21st, 2016 */
+```
 
 Subtracting a number from a DateTime object yields a new DateTime object that is further in the past:
 
 Example:
 
-    var dt = DateTime() - 2 * 60 * 60 /* Current time minus 2 hours */
+```
+var dt = DateTime() - 2 * 60 * 60 /* Current time minus 2 hours */
+```
 
 Adding a number to a DateTime object yields a new DateTime object that is in the future:
 
 Example:
 
-    var dt = DateTime() + 24 * 60 60 /* Current time plus 24 hours */
+```
+var dt = DateTime() + 24 * 60 60 /* Current time plus 24 hours */
+```
 
 ### DateTime#format <a id="datetime-format"></a>
 
 Signature:
 
-    function format(fmt)
+```
+function format(fmt)
+```
 
 Returns a string representation for the DateTime object using the specified format string.
 The format string may contain format conversion placeholders as specified in strftime(3).
 
 Example:
 
-    var s = DateTime(2016, 4, 21).format("%A") /* Sets s to "Thursday". */
+```
+var s = DateTime(2016, 4, 21).format("%A") /* Sets s to "Thursday". */
+```
 
 ### DateTime#to_string <a id="datetime-tostring"></a>
 
 Signature:
 
-    function to_string()
+```
+function to_string()
+```
 
 Returns a string representation for the DateTime object. Uses a suitable default format.
 
 Example:
 
-    var s = DateTime(2016, 4, 21).to_string() /* Sets s to "2016-04-21 00:00:00 +0200". */
+```
+var s = DateTime(2016, 4, 21).to_string() /* Sets s to "2016-04-21 00:00:00 +0200". */
+```