|
- ################################################################################
- ## Comment
-
- # Speak your mind with the hash symbol. They go from the symbol to the end of
- # the line.
-
-
- ################################################################################
- ## Table
-
- # Tables (also known as hash tables or dictionaries) are collections of
- # key/value pairs. They appear in square brackets on a line by themselves.
-
- [table]
-
- key = "value" # Yeah, you can do this.
-
- # Nested tables are denoted by table names with dots in them. Name your tables
- # whatever crap you please, just don't use #, ., [ or ].
-
- [table.subtable]
-
- key = "another value"
-
- # You don't need to specify all the super-tables if you don't want to. TOML
- # knows how to do it for you.
-
- # [x] you
- # [x.y] don't
- # [x.y.z] need these
- [x.y.z.w] # for this to work
-
-
- ################################################################################
- ## Inline Table
-
- # Inline tables provide a more compact syntax for expressing tables. They are
- # especially useful for grouped data that can otherwise quickly become verbose.
- # Inline tables are enclosed in curly braces `{` and `}`. No newlines are
- # allowed between the curly braces unless they are valid within a value.
-
- [table.inline]
-
- name = { first = "Tom", last = "Preston-Werner" }
- point = { x = 1, y = 2 }
-
-
- ################################################################################
- ## String
-
- # There are four ways to express strings: basic, multi-line basic, literal, and
- # multi-line literal. All strings must contain only valid UTF-8 characters.
-
- [string.basic]
-
- basic = "I'm a string. \"You can quote me\". Name\tJos\u00E9\nLocation\tSF."
-
- [string.multiline]
-
- # The following strings are byte-for-byte equivalent:
- key1 = "One\nTwo"
- key2 = """One\nTwo"""
- key3 = """
- One
- Two"""
-
- [string.multiline.continued]
-
- # The following strings are byte-for-byte equivalent:
- key1 = "The quick brown fox jumps over the lazy dog."
-
- key2 = """
- The quick brown \
-
-
- fox jumps over \
- the lazy dog."""
-
- key3 = """\
- The quick brown \
- fox jumps over \
- the lazy dog.\
- """
-
- [string.literal]
-
- # What you see is what you get.
- winpath = 'C:\Users\nodejs\templates'
- winpath2 = '\\ServerX\admin$\system32\'
- quoted = 'Tom "Dubs" Preston-Werner'
- regex = '<\i\c*\s*>'
-
-
- [string.literal.multiline]
-
- regex2 = '''I [dw]on't need \d{2} apples'''
- lines = '''
- The first newline is
- trimmed in raw strings.
- All other whitespace
- is preserved.
- '''
-
-
- ################################################################################
- ## Integer
-
- # Integers are whole numbers. Positive numbers may be prefixed with a plus sign.
- # Negative numbers are prefixed with a minus sign.
-
- [integer]
-
- key1 = +99
- key2 = 42
- key3 = 0
- key4 = -17
-
- [integer.underscores]
-
- # For large numbers, you may use underscores to enhance readability. Each
- # underscore must be surrounded by at least one digit.
- key1 = 1_000
- key2 = 5_349_221
- key3 = 1_2_3_4_5 # valid but inadvisable
-
-
- ################################################################################
- ## Float
-
- # A float consists of an integer part (which may be prefixed with a plus or
- # minus sign) followed by a fractional part and/or an exponent part.
-
- [float.fractional]
-
- key1 = +1.0
- key2 = 3.1415
- key3 = -0.01
-
- [float.exponent]
-
- key1 = 5e+22
- key2 = 1e6
- key3 = -2E-2
-
- [float.both]
-
- key = 6.626e-34
-
- [float.underscores]
-
- key1 = 9_224_617.445_991_228_313
- key2 = 1e1_00
-
-
- ################################################################################
- ## Boolean
-
- # Booleans are just the tokens you're used to. Always lowercase.
-
- [boolean]
-
- True = true
- False = false
-
-
- ################################################################################
- ## Datetime
-
- # Datetimes are RFC 3339 dates.
-
- [datetime]
-
- key1 = 1979-05-27T07:32:00Z
- key2 = 1979-05-27T00:32:00-07:00
- key3 = 1979-05-27T00:32:00.999999-07:00
-
-
- ################################################################################
- ## Array
-
- # Arrays are square brackets with other primitives inside. Whitespace is
- # ignored. Elements are separated by commas. Data types may not be mixed.
-
- [array]
-
- key1 = [ 1, 2, 3 ]
- key2 = [ "red", "yellow", "green" ]
- key3 = [ [ 1, 2 ], [3, 4, 5] ]
- #key4 = [ [ 1, 2 ], ["a", "b", "c"] ] # this is ok
-
- # Arrays can also be multiline. So in addition to ignoring whitespace, arrays
- # also ignore newlines between the brackets. Terminating commas are ok before
- # the closing bracket.
-
- key5 = [
- 1, 2, 3
- ]
- key6 = [
- 1,
- 2, # this is ok
- ]
-
-
- ################################################################################
- ## Array of Tables
-
- # These can be expressed by using a table name in double brackets. Each table
- # with the same double bracketed name will be an element in the array. The
- # tables are inserted in the order encountered.
-
- [[products]]
-
- name = "Hammer"
- sku = 738594937
-
- [[products]]
-
- [[products]]
-
- name = "Nail"
- sku = 284758393
- color = "gray"
-
-
- # You can create nested arrays of tables as well.
-
- [[fruit]]
- name = "apple"
-
- [fruit.physical]
- color = "red"
- shape = "round"
-
- [[fruit.variety]]
- name = "red delicious"
-
- [[fruit.variety]]
- name = "granny smith"
-
- [[fruit]]
- name = "banana"
-
- [[fruit.variety]]
- name = "plantain"
|