commit b502afe1aa85eebb42acb4421de95c1713ab5e19
parent 6af58d4965ddd73b9cb4ceb9f459236a8b2d68fc
Author: Demonstrandum <moi@knutsen.co>
Date: Sun, 5 Jul 2020 16:16:27 +0100
Update TODO list.
Diffstat:
5 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/Cargo.toml b/Cargo.toml
@@ -2,7 +2,7 @@
name = "seam"
description = "Symbolic Expressions As Markup."
keywords = ["markup", "lisp", "macro", "symbolic-expression", "sexp"]
-version = "0.1.0"
+version = "0.1.1"
authors = ["Demonstrandum <moi@knutsen.co>"]
edition = "2018"
diff --git a/README.md b/README.md
@@ -22,11 +22,15 @@ client.
- CSS
## TODO
- - More supported formats (`JSON`, `JS`, `TOML`, &c.).
- - Add more helpful macros.
- - Add user defined macros.
+ - HTML object `style="..."` object should handle s-expressions well, (e.g. `(p :style (:color red :border none) Hello World)`)
+ - HTML `<style>` tag should allow for *normal* CSS syntax if just given a string.
+ - Allow for, and handle special `@` syntax in CSS, such as `@import` and `@media`.
+ - Add more supported formats (`JSON`, `JS`, `TOML`, &c.).
+ - Add more helpful/generic macros (e.g. `(%include ...)`, which already exists).
+ - Add user defined macros system (e.g. `(%define (red-para txt) (p :style "color: red" %txt))`)
+ - Then add variadic macros.
- Allow for arbitrary embedding of code, that can be run by
- a LISP interpreter, for example. (e.g. `(%chez (+ 1 2))` executes
+ a LISP interpreter (or any other langauge), for example. (e.g. `(%chez (+ 1 2))` executes
`(+ 1 2)` with Chez-Scheme LISP, and places the result in the source
(i.e. `3`).
diff --git a/src/assemble/xml.rs b/src/assemble/xml.rs
@@ -137,7 +137,7 @@ impl MarkupDisplay for XMLFormatter {
}
-// TODO: Convert special characters to HTML compatible ones.
+// TODO: Convert special characters to XML compatible ones.
// e.g.
// < => <
// > => >
diff --git a/src/lib.rs b/src/lib.rs
@@ -6,7 +6,7 @@ use parse::{expander, parser, lexer};
use std::error::Error;
use std::{fs, path::Path};
-pub const VERSION : (u8, u8, u8) = (0, 1, 0);
+pub const VERSION : (u8, u8, u8) = (0, 1, 1);
pub fn parse<P: AsRef<Path>>(string : String, source : Option<P>)
-> Result<parser::ParseTree, Box<dyn Error>> {
diff --git a/src/parse/lexer.rs b/src/parse/lexer.rs
@@ -130,9 +130,10 @@ pub fn lex<P: AsRef<Path>>(string : String, source : Option<P>)
if character == '\\' { // Escapes
if current_kind == Some(tokens::Kind::String) {
- // How escapes work in strings:
+ // How escapes work in strings (TODO)
} else {
// How they work outside strings:
+ // TODO: add more escapes.
if bytes + 1 == eof {
continue;
}