From d2e1112ef8921f361ac7cf1b49e30923cce6d5f0 Mon Sep 17 00:00:00 2001 From: Hans Hagen Date: Mon, 2 May 2022 17:02:40 +0200 Subject: 2022-05-02 15:50:00 --- tex/context/modules/mkiv/s-fonts-charts.mkiv | 5 +++- tex/context/modules/mkxl/m-json.mkxl | 40 ++++++++++++++++++++++++++-- 2 files changed, 42 insertions(+), 3 deletions(-) (limited to 'tex/context/modules') diff --git a/tex/context/modules/mkiv/s-fonts-charts.mkiv b/tex/context/modules/mkiv/s-fonts-charts.mkiv index 36fec22f0..b7fcc9f9e 100644 --- a/tex/context/modules/mkiv/s-fonts-charts.mkiv +++ b/tex/context/modules/mkiv/s-fonts-charts.mkiv @@ -172,7 +172,10 @@ \starttext - \showfontchart[filename=texgyredejavu-math.otf,page=yes,option=all] +% \showfontchart[filename=texgyredejavu-math.otf,page=yes,option=all] + + \showfontchart[filename=danlan.otf] % ,page=yes,option=all] + \showfontchart[filename=danlan-bold.otf] % ,page=yes,option=all] % \showfontchart[filename=aegean,page=yes] % \showfontchart[filename=veramono.ttf,page=yes] diff --git a/tex/context/modules/mkxl/m-json.mkxl b/tex/context/modules/mkxl/m-json.mkxl index b08286b08..46c2f79a7 100644 --- a/tex/context/modules/mkxl/m-json.mkxl +++ b/tex/context/modules/mkxl/m-json.mkxl @@ -21,6 +21,7 @@ \startluacode local tablestore = utilities.tablestore + local field = tablestore.field interfaces.implement { name = "loadtable", @@ -32,25 +33,60 @@ interfaces.implement { name = "tablefield", - actions = { tablestore.field, context }, + actions = function(namespace,name) + local data = field(namespace,name) + if data then + context(data) + end + end, arguments = "2 arguments", public = true, +protected = true, } interfaces.implement { name = "tablefielddefault", - actions = { tablestore.field, context }, + actions = function(namespace,name,default) + local data = field(namespace,name,default) + if data then + context(data) + end + end, arguments = "3 arguments", public = true, } + local replace = lpeg.replacer("@","%%") + local lpegmatch = lpeg.match + + interfaces.implement { + name = "tableformatted", + actions = function(namespace,name,fmt) + local data = field(namespace,name) + if data then + context(lpegmatch(replace,fmt),data) + end + end, + arguments = "3 arguments", + public = true, + } + + interfaces.implement { + name = "tablelength", + actions = { tablestore.length, context }, + arguments = "2 arguments", + public = true, + } + utilities.json.field = tablestore.field utilities.json.loaded = tablestore.loaded + utilities.json.length = tablestore.length \stopluacode \let\loadjsonfile \loadtable \let\jsonfield \tablefield \let\jsonfielddefault \tablefielddefault +\let\jsonlength \tablelength \stopmodule -- cgit v1.2.3