conl 1.5.0

CONL is a post-modern configuration language
Documentation
# 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

# For multiline scalars, you can specify a tag for syntax highlighting.
init_script = """bash
  #!/bin/bash

  echo "hello world"

# Quoting is not required. Leading and trailing whitespace is ignored.
# but keys and values can contain any characters (*conditions apply)
spaced out key = value with = signs and "quotes"!

# To make it safe to include URLs as values, # is only a comment
# after whitespace.
a = https://example.com#a # jump to section a

# But the space around the = sign is purely for readability
short=16 bits

# 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

# Variable types are not syntactically distinct.
# The app you are configuring already knows what to expect.
enabled = yes
country_code = no

# For more esoteric uses, CONL provides quoted scalars.
# The quotes do not indicate type information, but let you
# express things (like empty strings) that cannot
# otherwise be expressed (and rarely need to be).
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)