How well do ConTeXt (lua)module for other users?
Hello ConTeXist. I have done the module (for context), which is entirely written in Lua (ConTeXt definitions are done through Lua too). I wonder how it can be loaded into ConTeXt file. Have I to use the beginning of the file: \startluacode dofile ("my-module.lua") \stopluacode to loading the module? I would like to use \usemodule [my-module.lua], but there is a problem, that code must be inside \startluacode ... \stopluacode environment. But when I put my luacode into \startluacode ... \stopluacode into my-module.mkiv file, then I have a problem with catcodes inside strings defining by [[ ... ]]. Or must be module consists of two separate files (my-module.lua and my-module.mkiv)? Must I to load the Lua module file (my-module.lua) into ConTeXt module file (my-module.mkiv) by command \ctxlua{dofile("my-module.lua ");} and then load module file (my-module.mkiv) into my user file by command \usemodule[my-module]? Is there something like \useluamodule[....] or \usemodule[anyluaswitch][modulefile] ??? How to proceed in these cases? I find it inappropriate to divide the module into two separate files. Thanx Jaroslav
On Tue, Jul 19, 2011 at 2:27 PM, Jaroslav Hajtmar
Hello ConTeXist.
I have done the module (for context), which is entirely written in Lua (ConTeXt definitions are done through Lua too).
I wonder how it can be loaded into ConTeXt file. Have I to use the beginning of the file: \startluacode dofile ("my-module.lua") \stopluacode It's lua , so require("my-module.lua") also works
-- luigi
Am 19.07.2011 um 14:27 schrieb Jaroslav Hajtmar:
Hello ConTeXist.
I have done the module (for context), which is entirely written in Lua (ConTeXt definitions are done through Lua too).
I wonder how it can be loaded into ConTeXt file. Have I to use the beginning of the file: \startluacode dofile ("my-module.lua") \stopluacode
to loading the module? I would like to use \usemodule [my-module.lua], but there is a problem, that code must be inside \startluacode ... \stopluacode environment. But when I put my luacode into \startluacode ... \stopluacode into my-module.mkiv file, then I have a problem with catcodes inside strings defining by [[ ... ]].
Or must be module consists of two separate files (my-module.lua and my-module.mkiv)? Must I to load the Lua module file (my-module.lua) into ConTeXt module file (my-module.mkiv) by command \ctxlua{dofile("my-module.lua ");} and then load module file (my-module.mkiv) into my user file by command \usemodule[my-module]?
Is there something like \useluamodule[....] or \usemodule[anyluaswitch][modulefile] ???
How to proceed in these cases? I find it inappropriate to divide the module into two separate files.
Use \usemodule: <example> \startbuffer[test] function test(argument) context.quotation(argument) end interfaces.definecommand { name = "test", arguments = { { "content", "string" }, }, macro = test, } \stopbuffer \savebuffer[test][p-test.lua] \usemodule[test] \starttext \test{Hello} \stoptext </example> Wolfgang
Great ... that's exactly what I needed ... Thanks very much Wolfgang. It can be somewhere on similar techniques to read more? Just links to some sample files to the dissected ... Thanks a lot Jaroslav Dne 19.7.2011 14:39, Wolfgang Schuster napsal(a):
Am 19.07.2011 um 14:27 schrieb Jaroslav Hajtmar:
Hello ConTeXist.
I have done the module (for context), which is entirely written in Lua (ConTeXt definitions are done through Lua too).
I wonder how it can be loaded into ConTeXt file. Have I to use the beginning of the file: \startluacode dofile ("my-module.lua") \stopluacode
to loading the module? I would like to use \usemodule [my-module.lua], but there is a problem, that code must be inside \startluacode ... \stopluacode environment. But when I put my luacode into \startluacode ... \stopluacode into my-module.mkiv file, then I have a problem with catcodes inside strings defining by [[ ... ]].
Or must be module consists of two separate files (my-module.lua and my-module.mkiv)? Must I to load the Lua module file (my-module.lua) into ConTeXt module file (my-module.mkiv) by command \ctxlua{dofile("my-module.lua ");} and then load module file (my-module.mkiv) into my user file by command \usemodule[my-module]?
Is there something like \useluamodule[....] or \usemodule[anyluaswitch][modulefile] ???
How to proceed in these cases? I find it inappropriate to divide the module into two separate files.
Use \usemodule:
<example> \startbuffer[test] function test(argument) context.quotation(argument) end
interfaces.definecommand { name = "test", arguments = { { "content", "string" }, }, macro = test, } \stopbuffer
\savebuffer[test][p-test.lua]
\usemodule[test]
\starttext \test{Hello} \stoptext </example>
Wolfgang
Am 19.07.2011 um 16:26 schrieb Jaroslav Hajtmar:
Great ... that's exactly what I needed ... Thanks very much Wolfgang. It can be somewhere on similar techniques to read more? Just links to some sample files to the dissected ...
You should always read Hans bet announcements where he often mentions new features and sometimes gives examples. Wolfgang
Thanx Wolfgang. Is there a solid practice of naming modules? I noticed that the names appear modules including introductory letters "p" or "t" ... You also used the name p-test.lua. What does it mean? How to correctly name the module, or what other elements should it include? Best regards Jaroslav Dne 19.7.2011 17:06, Wolfgang Schuster napsal(a):
Am 19.07.2011 um 16:26 schrieb Jaroslav Hajtmar:
Great ... that's exactly what I needed ... Thanks very much Wolfgang. It can be somewhere on similar techniques to read more? Just links to some sample files to the dissected ...
You should always read Hans bet announcements where he often mentions new features and sometimes gives examples.
Wolfgang
On 20-7-2011 9:40, Jaroslav Hajtmar wrote:
Thanx Wolfgang.
Is there a solid practice of naming modules? I noticed that the names appear modules including introductory letters "p" or "t" ... You also used the name p-test.lua. What does it mean? How to correctly name the module, or what other elements should it include?
p is for private i.e. never part of the distribution t is for third party i.e. can be installed on demand ----------------------------------------------------------------- Hans Hagen | PRAGMA ADE Ridderstraat 27 | 8061 GH Hasselt | The Netherlands tel: 038 477 53 69 | voip: 087 875 68 74 | www.pragma-ade.com | www.pragma-pod.nl -----------------------------------------------------------------
participants (4)
-
Hans Hagen
-
Jaroslav Hajtmar
-
luigi scarso
-
Wolfgang Schuster