summaryrefslogtreecommitdiff
path: root/entangled.dhall
diff options
context:
space:
mode:
Diffstat (limited to 'entangled.dhall')
-rw-r--r--entangled.dhall99
1 files changed, 99 insertions, 0 deletions
diff --git a/entangled.dhall b/entangled.dhall
new file mode 100644
index 0000000..23afb56
--- /dev/null
+++ b/entangled.dhall
@@ -0,0 +1,99 @@
+{- Entangled configuration file
+ ============================
+
+ This configuration uses the Dhall language, see https://dhall-lang.org/.
+
+ This file represents a record, as can be seen from the `let ... in { ... }`
+ structure. Configuration for the Entangled daemon and command-line utility
+ is stored in the `entangled` member of the record. Other fields are open
+ for use by `pandoc` filters or other tools.
+
+ If you want to check the configuration for correctness, run
+
+ dhall <<< ./entangled.dhall
+ -}
+
+{- Schema
+ ------
+
+ The schema is loaded here. It is recommended to use a schema from a
+ released version of Entangled.
+
+ The hash is not strictly needed, but it ensures that you get the version
+you're
+ expecting to, or raise an error. You can generate the correct hash by running
+
+ dhall hash <<< <location to schema>
+ -}
+let entangled = https://raw.githubusercontent.com/entangled/entangled/v1.0.1/data/config-schema.dhall
+ sha256:9fd18824499379eee53b974ca7570b3bc064fda546348d9b31841afab3b053a7
+
+{- Languages
+ ---------
+
+ Entangled has many programming languages configured by default. If your
+ favourite is not in there you can add them here. The most common commenting
+ patterns are included in `entangled.comments`
+
+ | name | comment pattern |
+ | ------------ | --------------- |
+ | hash | `# ...` |
+ | lispStyle | `; ...` |
+ | mlStyle | `(* ... *)` |
+ | cStyle | `/* ... */` |
+ | cppStyle | `// ...` |
+ | haskellStyle | `-- ...` |
+ | texStyle | `% ...` |
+ | xmlStyle | `<!-- ... -->` |
+
+ The language identifiers are the classes that can be used to identify a code
+ block is in a certain language. So,
+
+ ``` {.c++ #hello}
+ std::cout << "Hello, World!\n";
+ ```
+
+ is recognized as a C++ block, because `c++` is in the identifier list of the C++
+ language. In this example we add some esotheric languages.
+ -}
+let intercalComment = entangled.Comment.Line "PLEASE NOTE: "
+
+let languages = entangled.languages #
+ [ { name = "Unlambda", identifiers = ["unlambda"], comment = entangled.comments.hash }
+ , { name = "Intercal", identifiers = ["intercal"], comment = intercalComment }
+ ]
+
+{- Database
+ --------
+
+ Entangled is powered by SQLite3. This specifies where the database is
+ stored. An entry of `None Text`, which is the default, keeps the database
+ in memory, but this way you cannot insert new files on a running daemon.
+ -}
+let database = Some ".entangled/db.sqlite"
+
+{- Watch list
+ ----------
+
+ List of glob patterns that the daemon needs to watch for changes. The order
+ in which files are listed here matters. If code blocks append on previous
+ blocks in different files, the blocks are concatenated in the same order as
+ the files are listed here. In the case of a glob pattern, this is
+ alpha-numerical order (same as `ls`).
+ -}
+let watchList = [ "lit/*.md" ]
+
+in { entangled = entangled.Config :: { database = database
+ , watchList = watchList
+ , languages = languages }
+
+{- Extra options
+ -------------
+
+ If you are using Entangled filters (https://github.com/entangled/filters),
+ you may want to include some extra configuration here. These settings are
+ ignored by the entangled executable.
+ -}
+ , jupyter = { name = "Python", kernel = "python3" }
+ }
+