; CONL is a post-minimalist, human-centric configuration language.
;
; There are four ways to define a value:
scalar = value
list
= value1
= value2
map
key1 = value1
key2 = value2
multiline_scalar = """
value
; Multiline scalars support an optional hint for syntax highlighting.
init_script = """bash
#!/bin/bash
echo "hello world"
; It is possible to nest lists and maps as needed.
; (and as in JSON, types can be mixed however you want)
json_like
sub_map
key = value
sub_list
= value
=
map = no problem
=
= a list in a list ; in a map in a map
sub_value = 5
; Scalar types are not syntactically distinguished..
; The app you are configuring knows what to expect.
enabled = "yes"
country_code = no
; Quoting is rarely required. Leading and trailing whitespace is ignored.
; but keys and values can contain pretty much any character except ;
; (and = for keys).
spaced out key = value with = signs and "quotes"!
; But, if you need an empty string, or other esoteric scalars,
; you can use quotes.
empty_string = ""
quoted_scalar = "\twow\ttabs!\t"
; Quoted scalars support the following escape sequencess:
escape_sequences
= "\\" ; '\'
= "\"" ; '"'
= "\t" ; tab
= "\n" ; newline
= "\r" ; carriage return
= "\{1F321}" ; 🐱 (or any Unicode codepoint valid in UTF-8)