Skip to content

Latest commit

 

History

History
29 lines (19 loc) · 1.06 KB

README.md

File metadata and controls

29 lines (19 loc) · 1.06 KB

INISON

JSON is too bureaucratic and restricted, YAML is too freeform and complex -- INISON is just right!

Flexible enough and simple enough.

Brings new life to old good INI files.

INISON is just JSON except:

  • allowing bare identifiers as object keys {a:1,true:2,321:3} (all keys regarded as strings)
  • conventional unix style comments: {a:1} # my "A"
  • allowing trailing commas [1,2,] or no commas at all [1 2 3]
  • additional quote to disable escaping (')
  • python like triple quoting (""" and ''') to enable multiline strings (''' does not parse escapes)
  • tagged values: Point@{x:12,y:321.3}
  • typed values: {b:DATE(2015-01-01),c:PCRE(/^x[0-9]/i)}
  • no NULL and NAN (use types instead, {a:1,b:NaN(),c:3,d:NULL()})
  • toplevel INI like syntax for objects, so {a:1,b:{c:2,d:3}} may be written as a=1 [b] c=2 d=3 which greatly improves readability and reduces {{}} clutter

File extension is *.ison

Side notes

Capitalized tags are type constructors, noncapitalized are converters or checkers.

Grammar

<<insert rendered railroad diagram picture here like at json.org>>