Security News
The Unpaid Backbone of Open Source: Solo Maintainers Face Increasing Security Demands
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
is an object notation with a focus on human readability.
Whitespace is preferred over other control characters:
is expressed by indentation with spaces
grandpa
parent
child
sibling
uncle
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
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"]
are expressed like this:
.
a 1
.
b 2
the above as json: [{"a": 1}, {"b": 2}]
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
key ...
value is
a text with
line breaks
which stops
now
...
# 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
sometimes data needs to be encoded in a single line.
key . a .. b . c
is equivalent to
key
a
b
c
:: 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
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'
Don't use it if you can't live with the limitations mentioned above.
FAQs
no ordinary object notation
The npm package noon receives a total of 172 weekly downloads. As such, noon popularity was classified as not popular.
We found that noon demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Solo open source maintainers face burnout and security challenges, with 60% unpaid and 60% considering quitting.
Security News
License exceptions modify the terms of open source licenses, impacting how software can be used, modified, and distributed. Developers should be aware of the legal implications of these exceptions.
Security News
A developer is accusing Tencent of violating the GPL by modifying a Python utility and changing its license to BSD, highlighting the importance of copyleft compliance.