Am Mittwoch, 13. Dezember 2023, 21:57:35 CET schrieb Bruce Horrocks:
On 13 Dec 2023, at 17:13, Gerion Entrup
wrote: Is there a simple way to define a new command/environment and handle the keyword arguments in Lua? For example defining a frontend command like this:
I don't have the answer to your other questions but I do have an example for this one. It's not mine - I'm fairly sure it came from this list but I can't find who that was any more.
\startluacode userdata = userdata or { }
function userdata.mycommand(keywords, keyvals, str) keyword_options = utilities.parsers.settings_to_array(keywords) named_values = utilities.parsers.settings_to_hash(keyvals)
context('First option = ' .. keyword_options[1]) context('\\par') context('Color chosen = ' .. named_values['color']) context('\\par') context('Curly braces = ' .. str) context('\\par') end \stopluacode
\def\mycommand[#1][#2]#3{\ctxlua{ userdata.mycommand('#1', '#2', [==[#3]==])}}
\starttext \mycommand[top, inmargin, now][color=green, roof=gabled]{Anne of Green Gables?} \stoptext
Thank you. That helps a lot already! Gerion