summaryrefslogtreecommitdiff
path: root/guide/index.rst
diff options
context:
space:
mode:
authorMartin Atkins <matkins@saymedia.com>2018-08-25 16:36:05 -0700
committerMartin Atkins <matkins@saymedia.com>2018-08-25 16:36:05 -0700
commitc6f6feed76e0101fed44c3b98c40170442de7996 (patch)
treeb15a8889a2f7a25feb31b2f448da870c782172cd /guide/index.rst
parentd754d5a269203eb514a6172918ed6e5cce1c8fd5 (diff)
guide: Start of HCL usage guide
This is guide-style documentation to introduce the different parts of HCL, as a complement to the reference documentation provided in godoc.
Diffstat (limited to 'guide/index.rst')
-rw-r--r--guide/index.rst34
1 files changed, 34 insertions, 0 deletions
diff --git a/guide/index.rst b/guide/index.rst
new file mode 100644
index 0000000..763e011
--- /dev/null
+++ b/guide/index.rst
@@ -0,0 +1,34 @@
+HCL Configuration Language
+==========================
+
+HCL is a toolkit for creating structured configuration languages that are both
+human- and machine-friendly, for use with command-line tools, servers, etc.
+
+HCL has both a native syntax, intended to be pleasant to read and write for
+humans, and a JSON-based variant that is easier for machines to generate and
+parse. The native syntax is inspired by libucl_, `nginx configuration`_, and
+others.
+
+It includes an expression syntax that allows basic inline computation and, with
+support from the calling application, use of variables and functions for more
+dynamic configuration languages.
+
+HCL provides a set of constructs that can be used by a calling application to
+construct a configuration language. The application defines which argument
+names and nested block types are expected, and HCL parses the configuration
+file, verifies that it conforms to the expected structure, and returns
+high-level objects that the application can use for further processing.
+
+At present, HCL is primarily intended for use in applications written in Go_,
+via its library API.
+
+.. toctree::
+ :maxdepth: 1
+ :caption: Contents:
+
+ intro
+ go
+
+.. _libucl: https://github.com/vstakhov/libucl
+.. _`nginx configuration`: http://nginx.org/en/docs/beginners_guide.html#conf_structure
+.. _Go: https://golang.org/