Typed arguments, calculated tables, spans, closed-world fonts, top-level fnt/ and env/
Sync with klammertext-dev through b90b0e09: - Argument types end to end: :python_cast values are applied (Python @eval receives real bools/numbers/lists), argument values are validated against their argtype patterns with the argtype's description as the error message, argtypes can declare :default (overridable per declaration), and parameterized type families are supported: rest(N) casts a rest argument to an N-dimensional list (bar-count = dimension). - Unified indexed_range syntax (selector with parenthesized subsets, composable mnemonic names) for table lines and spans. - Table klammer: caption fonts fixed in both targets, :column_width / :leading / :colsep wired, :colspan and :rowspan render (HTML attributes; \multicolumn / \multirow), calculated cell values (:calc) with prefix operators, display-precision semantics, :calc_format and :decimal period|comma. - Fonts: closed-world resolution on the Klammertext font store (infrastructure in mac/font_store; no Google Fonts links or fetch). Default fonts live in the top-level fnt/; additional fonts install into KLAMMERTEXT_FONTS directories via kdesc --font (list, samples, preview, install — classification by font metadata). CSS font family names are quoted (digit-initial families were silently lost). - Environment files moved from mac/env/ to the top-level env/; shell profiles source env/runtime.env. Dead per-host variants removed. - Container: fnt/ ships in the image; curl removed (no network use).
This commit is contained in:
@@ -17,8 +17,9 @@ public:
|
||||
|
||||
std::string replace_symbols(const std::string& pattern, const Locator& loc);
|
||||
void check_for_existing_definition(const std::string& name, const Locator& loc);
|
||||
void add(const std::string& name, const std::string& desc,
|
||||
const std::string& pattern, const std::string& python_cast, modify_string_f python_format,
|
||||
void add(const std::string& name, const std::string& desc,
|
||||
const std::string& pattern, const std::string& default_value,
|
||||
const std::string& python_cast, modify_string_f python_format,
|
||||
const Locator& loc);
|
||||
void add(std::vector<Katom>::iterator begin, std::vector<Katom>::iterator end, std::vector<Katom>& katoms);
|
||||
|
||||
@@ -63,7 +64,7 @@ std::vector<std::tuple<std::string, std::string, std::string, std::string, modif
|
||||
pyformat_number },
|
||||
|
||||
{ "float", "a floating-point number",
|
||||
R"([-+]?\d+(\.\d*)?)", "float",
|
||||
R"([-+]?(\d+(\.\d*)?|\.\d+))", "float",
|
||||
pyformat_number },
|
||||
|
||||
{ "fraction", "a number in the form 'n/d'",
|
||||
@@ -78,9 +79,11 @@ std::vector<std::tuple<std::string, std::string, std::string, std::string, modif
|
||||
R"((?:.|\n)*)", "",
|
||||
pyformat_dlist },
|
||||
|
||||
{ "rest", "a list of strings delimited by the bar character",
|
||||
R"(.*)", "str",
|
||||
pyformat_string },
|
||||
{ "rest", "the remaining arguments as a list nested to N dimensions "
|
||||
"(rest(N)); the delimiter for dimension n is a run of n bar "
|
||||
"characters, so | separates elements and || lists of elements",
|
||||
R"((?:.|\n)*)", R"((lambda s : __import__("kutil").rest_split(s, N)))",
|
||||
nullptr },
|
||||
|
||||
{ "literal", "literal text passed without interpretation",
|
||||
R"((?:.|\n)*)", "str",
|
||||
|
||||
Reference in New Issue
Block a user