Hi,

\installcommandhandler nicely provides (among others) \define<name> and
\setup<name> commands. Thus it is easy to provide a key with
\setup...[key=value] and to read the value of such a key with
\<name>parameter{key}.

My question is: How do I read the value of a key defined with
\setup...[key=value] on the lua side? If I use
  context.<name>parameter("key")
then the value of key is printed directly. I want to be able to read that
value and use it in lua with something like
  myvariable = context.?whatfunction?("key")

Here is some example code:

\unprotect

\startluacode
  function myfun(parameters,content)
    context("From lua: Parameters: ")
    context(parameters)
    context.elemparameter("gkey") -- directly prints the parameter
    context.par()
  end
\stopluacode

\installnamespace{elem}
\installcommandhandler \????elem {elem} \????elem
\appendtoks
  \setuevalue{\currentelem}{\elem_cmd{\currentelem}}%
\to \everydefineelem

\unexpanded\def\elem_cmd#environment{%
  \edef\currentelem{#environment}%
  \dosingleempty\elem_cmd_parameters}

\def\elem_cmd_parameters[#parameters]#content{%
  \setupcurrentelem[#parameters]
  From \TeX\: Parameters: key=\elemparameter{key},
gkey=\elemparameter{gkey}\par

\ctxlua{myfun(\!!bs#parameters\!!es,\!!bs\normalunexpanded{#content}\!!es)}
}

\defineelem[base]
\setupelem[gkey=gval]

\protect

\starttext

\base[key=val]{Hello}

\stoptext

Thank you for any feedback,

Christoph Reller
___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the 
Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________

Reply via email to