noon
no ordinary object notation
Last updated 4 years ago by monsterkodi .
Unlicense · Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install noon 
SYNC missed versions from official npm registry.

icon

noon

noon

is an object notation with a focus on human readability.

Whitespace is preferred over other control characters:

example files

format

hierarchy

is expressed by indentation with spaces

grandpa
    parent
        child
        sibling
    uncle

dictionaries

two or more spaces mark the end of a dictionary key, therefore ...
keys and list items can have single spaces in them but ...
unescaped dictionary keys can't contain consecutive spaces:

key 1    value 1
key 2    value 2 contains    spaces

one key makes an object

this is
an   object

the above as json: {"this is": null, "an": "object"}
while

this is
not an object

is equivalent to ["this is", "not an object"]

objects inside lists

are expressed like this:

.
    a  1
.
    b  2

the above as json: [{"a": 1}, {"b": 2}]

strings

escaping

if trimming your strings is not an option, you can escape:

a             |  leading spaces
b             trailing spaces  |
c             |  leading and trailing spaces  |
pipe symbol   |||
empty string  ||

keys must be escaped from both ends:

| s  pace |  key keeps spaces
|    |       key consists of spaces
||           key is empty string

multiline strings

key  ...
value is
a text with
line breaks
which stops
now
...  

comments

# comments start with the hash sign
# mixing of data and comments is not allowed
therefore:
    1 # this is not a comment
    | # neither is this one
      # but this one is 

inline

sometimes data needs to be encoded in a single line.

dense notation

key  . a .. b . c

is equivalent to

key
    a
        b
    c

one line notation

:: represents a line break
no spaces in keys allowed, therefore ...
no two-space-seperation necessary:

key . a :: b . c :: d 1 :: e 2

is equivalent to

key
    a
b
    c
d   1
e   2

command line

cli

module

noon = require 'noon'

# usage is similar to JSON 

noon.stringify { hello: 'world' }

# hello    world

noon.parse """
hello         world
what's up?    ☺
"""

# { hello: 'world', 'what\'s up?': '☺' }

stringify_options =   # stringify's second argument, defaults are: 
    ext:      'noon'  # output format: noon or json
    indent:   4       # number of spaces per indent level
    align:    true    # vertically align object values
    maxalign: 32      # maximal number of spaces when aligning
    sort:     false   # sort object keys alphabetically
    circular: false   # check for circular references (expensive!)
    colors:   false   # colorize output with ansi colors
    

# load data from file 

data = noon.load 'file.noon' 
data = noon.load 'file.json'

# write data to file

noon.save 'file.noon', data

noon.save 'file.noon', data, stringify_options
noon.save 'file.json', data  # < write as json
noon.save 'noext', data, ext: 'noon'

caveats

  • keys can't start with the pipe symbol: |
  • escaped keys can't contain the pipe symbol
  • empty objects are not expressible

Don't use it if you can't live with the limitations mentioned above.

npm package Build Status downloads

Current Tags

  • 3.5.0                                ...           latest (4 years ago)

114 Versions

  • 3.5.0                                ...           4 years ago
  • 3.4.0                                ...           4 years ago
  • 3.1.0                                ...           5 years ago
  • 3.0.3                                ...           6 years ago
  • 3.0.0                                ...           7 years ago
  • 2.15.0                                ...           7 years ago
  • 2.14.1                                ...           7 years ago
  • 2.14.0                                ...           7 years ago
  • 2.13.0                                ...           7 years ago
  • 2.12.3                                ...           7 years ago
  • 2.12.2                                ...           7 years ago
  • 2.12.1                                ...           7 years ago
  • 2.11.0                                ...           7 years ago
  • 2.10.0                                ...           7 years ago
  • 2.9.0                                ...           7 years ago
  • 2.8.0                                ...           7 years ago
  • 2.7.0                                ...           7 years ago
  • 2.6.0                                ...           7 years ago
  • 2.5.0                                ...           7 years ago
  • 2.4.0                                ...           7 years ago
  • 2.3.0                                ...           7 years ago
  • 2.0.2                                ...           7 years ago
  • 2.0.0                                ...           7 years ago
  • 1.5.0                                ...           8 years ago
  • 1.4.0                                ...           8 years ago
  • 1.3.1                                ...           8 years ago
  • 1.3.0                                ...           8 years ago
  • 1.2.0                                ...           8 years ago
  • 1.1.2                                ...           8 years ago
  • 1.1.1                                ...           8 years ago
  • 1.1.0                                ...           9 years ago
  • 1.0.14                                ...           9 years ago
  • 1.0.13                                ...           10 years ago
  • 1.0.12                                ...           10 years ago
  • 1.0.11                                ...           10 years ago
  • 1.0.9                                ...           10 years ago
  • 1.0.8                                ...           10 years ago
  • 1.0.6                                ...           10 years ago
  • 1.0.5                                ...           10 years ago
  • 1.0.4                                ...           10 years ago
  • 1.0.3                                ...           10 years ago
  • 1.0.2                                ...           10 years ago
  • 1.0.1                                ...           10 years ago
  • 0.9.17                                ...           10 years ago
  • 0.9.16                                ...           10 years ago
  • 0.9.15                                ...           10 years ago
  • 0.9.14                                ...           10 years ago
  • 0.9.13                                ...           10 years ago
  • 0.9.12                                ...           10 years ago
  • 0.9.11                                ...           10 years ago
  • 0.9.10                                ...           10 years ago
  • 0.9.9                                ...           10 years ago
  • 0.9.8                                ...           10 years ago
  • 0.9.7                                ...           10 years ago
  • 0.9.6                                ...           10 years ago
  • 0.9.5                                ...           10 years ago
  • 0.9.4                                ...           10 years ago
  • 0.9.3                                ...           10 years ago
  • 0.9.2                                ...           10 years ago
  • 0.9.1                                ...           10 years ago
  • 0.8.3                                ...           10 years ago
  • 0.8.2                                ...           10 years ago
  • 0.8.1                                ...           10 years ago
  • 0.7.5                                ...           10 years ago
  • 0.7.4                                ...           10 years ago
  • 0.7.3                                ...           10 years ago
  • 0.7.2                                ...           10 years ago
  • 0.7.1                                ...           10 years ago
  • 0.6.17                                ...           10 years ago
  • 0.6.16                                ...           10 years ago
  • 0.6.15                                ...           10 years ago
  • 0.6.14                                ...           10 years ago
  • 0.6.13                                ...           10 years ago
  • 0.6.12                                ...           10 years ago
  • 0.6.11                                ...           10 years ago
  • 0.6.10                                ...           10 years ago
  • 0.6.9                                ...           10 years ago
  • 0.6.8                                ...           10 years ago
  • 0.6.7                                ...           10 years ago
  • 0.6.6                                ...           10 years ago
  • 0.6.5                                ...           10 years ago
  • 0.6.4                                ...           10 years ago
  • 0.6.3                                ...           10 years ago
  • 0.6.2                                ...           10 years ago
  • 0.6.1                                ...           10 years ago
  • 0.5.6                                ...           10 years ago
  • 0.5.5                                ...           10 years ago
  • 0.5.4                                ...           10 years ago
  • 0.5.3                                ...           10 years ago
  • 0.5.2                                ...           10 years ago
  • 0.5.1                                ...           10 years ago
  • 0.4.5                                ...           10 years ago
  • 0.4.4                                ...           10 years ago
  • 0.4.3                                ...           10 years ago
  • 0.4.2                                ...           10 years ago
  • 0.4.1                                ...           10 years ago
  • 0.3.6                                ...           10 years ago
  • 0.3.5                                ...           10 years ago
  • 0.3.4                                ...           10 years ago
  • 0.3.3                                ...           10 years ago
  • 0.3.2                                ...           10 years ago
  • 0.3.1                                ...           10 years ago
  • 0.2.2                                ...           10 years ago
  • 0.2.1                                ...           10 years ago
  • 0.1.6                                ...           10 years ago
  • 0.1.5                                ...           10 years ago
  • 0.1.4                                ...           10 years ago
  • 0.1.3                                ...           10 years ago
  • 0.1.2                                ...           10 years ago
  • 0.1.1                                ...           10 years ago
  • 0.0.4                                ...           10 years ago
  • 0.0.3                                ...           10 years ago
  • 0.0.2                                ...           10 years ago
  • 0.0.1                                ...           10 years ago
Maintainers (1)
Downloads
Today 0
This Week 6
This Month 138
Last Day 2
Last Week 132
Last Month 5
Dependencies (2)
Dev Dependencies (3)
Dependents (5)

Copyright 2013 - present © cnpmjs.org | Home |