doc/tutorial/basics: add per-page chapter headings
Change-Id: I9e0a6b5d1a1c820081b3f87c3871068ea042f889
diff --git a/doc/tutorial/basics/Readme.md b/doc/tutorial/basics/Readme.md
index 0a75cc7..fa0deb7 100644
--- a/doc/tutorial/basics/Readme.md
+++ b/doc/tutorial/basics/Readme.md
@@ -24,7 +24,7 @@
- [Number Literals](numberlit.md)
- [String Literals](stringlit.md)
- [Bytes](bytes.md)
-- Scoping
+- References and Visibility
- [References and Scopes](scopes.md)
- [Accessing Fields](selectors.md)
- [Aliases](aliases.md)
@@ -34,8 +34,9 @@
- [Duplicate Fields](duplicates.md)
- [Bottom / Error](bottom.md)
- [Basic Types](types.md)
- - [Unification](unification.md)
+ - [Order is Irrelevant](unification.md)
- [Disjunctions](disjunctions.md)
+ - [Default Values](defaults.md)
- [Disjunctions of Structs](disjstruct.md)
- [Numbers](numbers.md)
- [Ranges](ranges.md)
diff --git a/doc/tutorial/basics/aliases.md b/doc/tutorial/basics/aliases.md
index 854d5db..def895e 100644
--- a/doc/tutorial/basics/aliases.md
+++ b/doc/tutorial/basics/aliases.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](selectors.md) [Next](emit.md)
+_References and Visibility_
+
# Aliases
An alias defines a local macro.
diff --git a/doc/tutorial/basics/bottom.md b/doc/tutorial/basics/bottom.md
index c3cde6a..6a6ac5d 100644
--- a/doc/tutorial/basics/bottom.md
+++ b/doc/tutorial/basics/bottom.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](duplicates.md) [Next](types.md)
+_Types and Values_
+
# Bottom
Specifying duplicate fields with conflicting values results in an error,
diff --git a/doc/tutorial/basics/bytes.md b/doc/tutorial/basics/bytes.md
index bf8d050..77341a2 100644
--- a/doc/tutorial/basics/bytes.md
+++ b/doc/tutorial/basics/bytes.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](stringlit.md) [Next](scopes.md)
+_JSON Sugar and other Goodness_
+
# Bytes
CUE distinguishes between a `string` and a `bytes` type.
diff --git a/doc/tutorial/basics/coalesce.md b/doc/tutorial/basics/coalesce.md
index 312fa14..41fbfce 100644
--- a/doc/tutorial/basics/coalesce.md
+++ b/doc/tutorial/basics/coalesce.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](conditional.md) _Next_
+_Expressions_
+
# Null Coalescing
With null coalescing we really mean error, or bottom, coalescing.
diff --git a/doc/tutorial/basics/commas.md b/doc/tutorial/basics/commas.md
index c92ec4e..66c31fc 100644
--- a/doc/tutorial/basics/commas.md
+++ b/doc/tutorial/basics/commas.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](fieldname.md) [Next](commaslists.md)
+_JSON Sugar and other Goodness_
+
# Commas are Optional after Fields
Commas are optional at the end of fields.
diff --git a/doc/tutorial/basics/commaslists.md b/doc/tutorial/basics/commaslists.md
index 977c4bc..710a7ff 100644
--- a/doc/tutorial/basics/commaslists.md
+++ b/doc/tutorial/basics/commaslists.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](commas.md) [Next](curly.md)
+_JSON Sugar and other Goodness_
+
# Commas are Still Required in Lists
diff --git a/doc/tutorial/basics/comments.md b/doc/tutorial/basics/comments.md
index 76d6ace..256e5b1 100644
--- a/doc/tutorial/basics/comments.md
+++ b/doc/tutorial/basics/comments.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](foldany.md) [Next](numberlit.md)
+_JSON Sugar and other Goodness_
+
# Comments
CUE supports C-style block and line comments.
diff --git a/doc/tutorial/basics/conditional.md b/doc/tutorial/basics/conditional.md
index 5fc6a4f..100ff7c 100644
--- a/doc/tutorial/basics/conditional.md
+++ b/doc/tutorial/basics/conditional.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](fieldcomp.md) [Next](coalesce.md)
+_Expressions_
+
# Conditional Fields
Field comprehensions can also be used to
diff --git a/doc/tutorial/basics/curly.md b/doc/tutorial/basics/curly.md
index c847ee1..0c7839e 100644
--- a/doc/tutorial/basics/curly.md
+++ b/doc/tutorial/basics/curly.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](commaslists.md) [Next](fold.md)
+_JSON Sugar and other Goodness_
+
# Curly Braces
The outer curly braces may be omitted for the top-level struct.
diff --git a/doc/tutorial/basics/defaults.md b/doc/tutorial/basics/defaults.md
index 145057e..642e621 100644
--- a/doc/tutorial/basics/defaults.md
+++ b/doc/tutorial/basics/defaults.md
@@ -1,3 +1,7 @@
+[TOC](Readme.md) [Prev](disjunctions.md) [Next](disjstruct.md)
+
+_Types and Values_
+
# Default Values
If at the time of evaluation a sum type still has more than one possible
@@ -15,7 +19,7 @@
<!-- CUE editor -->
```
// any positive number, 1 is the default
-replicas: 1 | uint
+replicas: 1 | uint
// the default value is ambiguous
protocol: "tcp" | "udp"
@@ -25,6 +29,5 @@
<!-- result -->
```
replicas: 1
-
protocol: _|_
```
\ No newline at end of file
diff --git a/doc/tutorial/basics/disjstruct.md b/doc/tutorial/basics/disjstruct.md
index f1566e8..e60b63b 100644
--- a/doc/tutorial/basics/disjstruct.md
+++ b/doc/tutorial/basics/disjstruct.md
@@ -1,4 +1,6 @@
-[TOC](Readme.md) [Prev](disjunctions.md) [Next](numbers.md)
+[TOC](Readme.md) [Prev](defaults.md) [Next](numbers.md)
+
+_Types and Values_
# Disjunctions of Structs
diff --git a/doc/tutorial/basics/disjunctions.md b/doc/tutorial/basics/disjunctions.md
index 11fd875..6831dba 100644
--- a/doc/tutorial/basics/disjunctions.md
+++ b/doc/tutorial/basics/disjunctions.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](unification.md) [Next](disjstruct.md)
+_Types and Values_
+
# Disjunctions
Disjunctions, or sum types, define a new type that is one of several things.
diff --git a/doc/tutorial/basics/duplicates.md b/doc/tutorial/basics/duplicates.md
index 2b12d45..63509d9 100644
--- a/doc/tutorial/basics/duplicates.md
+++ b/doc/tutorial/basics/duplicates.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](hidden.md) [Next](bottom.md)
+_Types and Values_
+
# Duplicate Fields
CUE allows duplicated field definitions as long as they don't conflict.
diff --git a/doc/tutorial/basics/emit.md b/doc/tutorial/basics/emit.md
index 9268db3..7c8dd6e 100644
--- a/doc/tutorial/basics/emit.md
+++ b/doc/tutorial/basics/emit.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](aliases.md) [Next](hidden.md)
+_References and Visibility_
+
# Emit Values
By default all top-level fields are emitted when evaluating a configuration.
diff --git a/doc/tutorial/basics/fieldcomp.md b/doc/tutorial/basics/fieldcomp.md
index 1c39f05..dfb37d8 100644
--- a/doc/tutorial/basics/fieldcomp.md
+++ b/doc/tutorial/basics/fieldcomp.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](listcomp.md) [Next](conditional.md)
+_Expressions_
+
# Field Comprehensions
CUE also supports comprehensions for fields.
diff --git a/doc/tutorial/basics/fieldname.md b/doc/tutorial/basics/fieldname.md
index 42c8e9b..66da5a3 100644
--- a/doc/tutorial/basics/fieldname.md
+++ b/doc/tutorial/basics/fieldname.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](json.md) [Next](commas.md)
+_JSON Sugar and other Goodness_
+
# Quotes are Optional for Field Names
JSON objects are called structs in CUE.
diff --git a/doc/tutorial/basics/fold.md b/doc/tutorial/basics/fold.md
index eabdc9b..4e8fa8e 100644
--- a/doc/tutorial/basics/fold.md
+++ b/doc/tutorial/basics/fold.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](curly.md) [Next](foldany.md)
+_JSON Sugar and other Goodness_
+
# Folding of Single-Field Structs
CUE allows a shorthand for structs with single members.
diff --git a/doc/tutorial/basics/foldany.md b/doc/tutorial/basics/foldany.md
index f24097e..dd77606 100644
--- a/doc/tutorial/basics/foldany.md
+++ b/doc/tutorial/basics/foldany.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](fold.md) [Next](comments.md)
+_JSON Sugar and other Goodness_
+
# Folding all Fields
This also works if a struct has more than one member.
diff --git a/doc/tutorial/basics/hidden.md b/doc/tutorial/basics/hidden.md
index 37537eb..e57f3b7 100644
--- a/doc/tutorial/basics/hidden.md
+++ b/doc/tutorial/basics/hidden.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](emit.md) [Next](duplicates.md)
+_References and Visibility_
+
# Hidden Fields
A non-quoted field name that starts with an underscore (`_`) is not
diff --git a/doc/tutorial/basics/imports.md b/doc/tutorial/basics/imports.md
index c6fdf59..025b47b 100644
--- a/doc/tutorial/basics/imports.md
+++ b/doc/tutorial/basics/imports.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](packages.md) [Next](operators.md)
+_Modules, Packages, and Instances_
+
# Imports
A CUE file may import definitions from builtin or user-defined packages.
diff --git a/doc/tutorial/basics/interpolation.md b/doc/tutorial/basics/interpolation.md
index 43aa635..ba58af1 100644
--- a/doc/tutorial/basics/interpolation.md
+++ b/doc/tutorial/basics/interpolation.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](operators.md) [Next](interpolfield.md)
+_Expressions_
+
# Interpolation
String and bytes literals support interpolation.
diff --git a/doc/tutorial/basics/interpolfield.md b/doc/tutorial/basics/interpolfield.md
index c93ef77..a4140e5 100644
--- a/doc/tutorial/basics/interpolfield.md
+++ b/doc/tutorial/basics/interpolfield.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](interpolation.md) [Next](listcomp.md)
+_Expressions_
+
# Interpolation of Field Names
String interpolations may also be used in field names.
diff --git a/doc/tutorial/basics/listcomp.md b/doc/tutorial/basics/listcomp.md
index 1329751..835f704 100644
--- a/doc/tutorial/basics/listcomp.md
+++ b/doc/tutorial/basics/listcomp.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](interpolfield.md) [Next](fieldcomp.md)
+_Expressions_
+
# List Comprehensions
Lists can be created with list comprehensions.
diff --git a/doc/tutorial/basics/lists.md b/doc/tutorial/basics/lists.md
index f70dc1c..d077a06 100644
--- a/doc/tutorial/basics/lists.md
+++ b/doc/tutorial/basics/lists.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](ranges.md) [Next](instances.md)
+_Types and Values_
+
# Lists
Lists define arbitrary sequences of CUE values.
diff --git a/doc/tutorial/basics/numberlit.md b/doc/tutorial/basics/numberlit.md
index 2e336c0..6bad370 100644
--- a/doc/tutorial/basics/numberlit.md
+++ b/doc/tutorial/basics/numberlit.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](comments.md) [Next](stringlit.md)
+_JSON Sugar and other Goodness_
+
# Number Literals
diff --git a/doc/tutorial/basics/numbers.md b/doc/tutorial/basics/numbers.md
index f1d458e..32f07a4 100644
--- a/doc/tutorial/basics/numbers.md
+++ b/doc/tutorial/basics/numbers.md
@@ -1,4 +1,6 @@
-[TOC](Readme.md) [Prev](disjunctions.md) [Next](ranges.md)
+[TOC](Readme.md) [Prev](defaults.md) [Next](ranges.md)
+
+_Types and Values_
# Numbers
diff --git a/doc/tutorial/basics/operators.md b/doc/tutorial/basics/operators.md
index f8ff10e..12f7e6d 100644
--- a/doc/tutorial/basics/operators.md
+++ b/doc/tutorial/basics/operators.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](imports.md) [Next](interpolation.md)
+_Expressions_
+
# Operators
CUE supports many common arithmetic and boolean operators.
diff --git a/doc/tutorial/basics/packages.md b/doc/tutorial/basics/packages.md
index f3a935e..73b346f 100644
--- a/doc/tutorial/basics/packages.md
+++ b/doc/tutorial/basics/packages.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](instances.md) [Next](imports.md)
+_Modules, Packages, and Instances_
+
# Packages
A CUE file is a standalone file by default.
diff --git a/doc/tutorial/basics/rangedef.md b/doc/tutorial/basics/rangedef.md
index 31f7ce8..a854b6b 100644
--- a/doc/tutorial/basics/rangedef.md
+++ b/doc/tutorial/basics/rangedef.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](ranges.md) [Next](lists.md)
+_Types and Values_
+
# Predefined Ranges
CUE numbers have arbitrary precision.
diff --git a/doc/tutorial/basics/ranges.md b/doc/tutorial/basics/ranges.md
index 7817d04..6ef0efb 100644
--- a/doc/tutorial/basics/ranges.md
+++ b/doc/tutorial/basics/ranges.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](numbers.md) [Next](rangedef.md)
+_Types and Values_
+
# Ranges
Ranges define an inclusive range of valid values.
diff --git a/doc/tutorial/basics/scopes.md b/doc/tutorial/basics/scopes.md
index df45986..9945d08 100644
--- a/doc/tutorial/basics/scopes.md
+++ b/doc/tutorial/basics/scopes.md
@@ -1,4 +1,6 @@
-[TOC](Readme.md) [Prev](json.md) [Next](selectors.md)
+[TOC](Readme.md) [Prev](bytes.md) [Next](selectors.md)
+
+_References and Visibility_
# References and Scopes
diff --git a/doc/tutorial/basics/selectors.md b/doc/tutorial/basics/selectors.md
index f64fadb..369e536 100644
--- a/doc/tutorial/basics/selectors.md
+++ b/doc/tutorial/basics/selectors.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](scopes.md) [Next](aliases.md)
+_References and Visibility_
+
# Accessing Fields
Selectors access fields within a struct using the `.` notation.
diff --git a/doc/tutorial/basics/stringlit.md b/doc/tutorial/basics/stringlit.md
index f5411e0..efea169 100644
--- a/doc/tutorial/basics/stringlit.md
+++ b/doc/tutorial/basics/stringlit.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](numberlit.md) [Next](bytes.md)
+_JSON Sugar and other Goodness_
+
# String Literals
CUE strings allow a richer set of escape sequences than JSON.
diff --git a/doc/tutorial/basics/types.md b/doc/tutorial/basics/types.md
index bd8d06c..5e64faa 100644
--- a/doc/tutorial/basics/types.md
+++ b/doc/tutorial/basics/types.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](bottom.md) [Next](unification.md)
+_Types and Values_
+
# Basic Types
CUE defines the following basic types
diff --git a/doc/tutorial/basics/unification.md b/doc/tutorial/basics/unification.md
index 07cc11d..0d11bbf 100644
--- a/doc/tutorial/basics/unification.md
+++ b/doc/tutorial/basics/unification.md
@@ -1,5 +1,7 @@
[TOC](Readme.md) [Prev](types.md) [Next](disjunctions.md)
+_Types and Values_
+
# Order is Irrelevant
As mentioned before, values of duplicates fields are combined.