aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Andreas Benkard <code@mail.matthias.benkard.de>2017-05-08 12:47:52 +0200
committerMatthias Andreas Benkard <code@mail.matthias.benkard.de>2017-05-08 12:47:52 +0200
commit00aabb4381d1c7564b3341f8a7e94426237ca041 (patch)
tree02760e965a14c5efb4c5b127b93a45d4e1eb6354
parentd036fade731faf57f45acb2fe0129ef0e8207342 (diff)
Add README.
-rw-r--r--README.md71
1 files changed, 71 insertions, 0 deletions
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..454520f
--- /dev/null
+++ b/README.md
@@ -0,0 +1,71 @@
+# JSON Template for Common Lisp
+
+## Summary
+
+An implementation of [JSON Template][] in Common Lisp.
+
+## Implementation Features
+
+ * No dependencies
+ * Portable Common Lisp (tested
+ on [SBCL][], [Clozure CL][], [ECL][], [XCL][], [ABCL][])
+ * HTML and URI escaping through the use of formatters
+ * Apache license
+
+## Missing Things
+
+ * Literals (like `{.space}` and `{.meta-left}`/`{.meta-right}`)
+ * Multiple-argument formatters
+ * Options (like changing the meta character or the default formatter)
+ * Some kind of compilation for efficiency
+
+## Examples
+
+```lisp
+JSON-TEMPLATE> (defparameter *tmpl* (parse-template-string "
+<h1>{title|html}</h1>
+{.section people}
+<ul>
+{.repeated section @}
+ <li>{name} ({age} years)</li>
+{.end}
+</ul>
+{.or}
+<p>No one's registered.</p>
+{.end}"))
+*TMPL*
+```
+
+```lisp
+JSON-TEMPLATE> (expand-template *tmpl*
+ '(:title "<Registered People>"
+ :people ((:name "Nathalie" :age 24)
+ (:name "Heinrich" :age 28)
+ (:name "Hans" :age 25))))
+"
+<h1>&#60;Registered People&#62;</h1>
+<ul>
+ <li>Nathalie (24 years)</li>
+ <li>Heinrich (28 years)</li>
+ <li>Hans (25 years)</li>
+</ul>
+"
+```
+
+```lisp
+JSON-TEMPLATE> (expand-template *tmpl*
+ '(:title "<Registered People>"
+ :people ()))
+"
+<h1>&#60;Registered People&#62;</h1>
+<p>No one's registered.</p>
+"
+```
+
+
+[JSON Template]: http://jsont.squarespace.com
+[SBCL]: http://www.sbcl.org/
+[Clozure CL]: http://ccl.clozure.com/
+[ECL]: http://ecls.sf.net/
+[XCL]: https://github.com/gnooth/xcl
+[ABCL]: http://common-lisp.net/project/armedbear/