1
2
3
4
5
6
7\enablemode[tablet]
8
9\setupbodyfont[dejavu]
10
11\doifelsemode {tablet} {
12
13 \setuppapersize
14 [S6,landscape]
15 [S6,landscape]
16
17 \definefont
18 [TitlePageFont]
19 [MonoBold at 14pt]
20
21 \setupbodyfont
22 [tt,8pt]
23
24} {
25
26 \definefont
27 [TitlePageFont]
28 [MonoBold at 17pt]
29
30 \setupbodyfont
31 [tt]
32
33}
34
35\setuplayout
36 [header=0cm,
37 footer=1cm,
38 backspace=.5cm,
39 topspace=.5cm,
40 width=middle,
41 height=middle]
42
43\setuphead
44 [title]
45 [style=\ttc,
46 interaction=reference]
47
48\definehead
49 [xtitle]
50 [title]
51
52\setuphead
53 [xtitle]
54 [color=darkgreen]
55
56\setupfootertexts
57 [\llap{\goto{\hbox to 5cm{\hss previous}}[previouspage]}
58 \quad\pagenumber\quad
59 \rlap{\goto{\hbox to 5cm{next\hss}}[nextpage]}]
60
61\ifcase\contextlmtxmode
62 \setupinteraction
63 [title={ConTeXt MkIV}]
64\else
65 \setupinteraction
66 [title={ConTeXt LMTX}]
67\fi
68
69\setupinteraction
70 [state=start,
71 style=,
72 color=,
73 subtitle={Lua modules and functions},
74 author={Hans Hagen automatically generated},
75 contrastcolor=]
76
77\setupinteractionscreen
78 [option=bookmark]
79
80\placebookmarks
81 [title,xtitle]
82 [force=yes]
83
84\definecolor[darkyellow][r=.5,g=.5,b=0]
85\definecolor[darkgray] [s=.15]
86
87\nonknuthmode
88
89\starttext
90
91\startbuffer
92\startluacode
93local basiclua = libraries.basiclua
94local basictex = libraries.basictex
95local extratex = libraries.extratex
96local extralua = libraries.extralua
97local obsolete = libraries.obsolete
98
99local find = string.find
100local color, gotolocation = context.color, context["goto"]
101
102for k, v in table.sortedpairs(_G) do
103 if obsolete[k] or find(k,"_") or k == "arg" or k == "utf" then
104
105 elseif basiclua[k] then
106 gotolocation(function() color( { "darkred" }, k) end, { k } )
107 elseif extralua[k] then
108 gotolocation(function() color( { "darkgreen" }, k) end, { k } )
109 elseif basictex[k] then
110 gotolocation(function() color( { "darkblue" }, k) end, { k } )
111 elseif extratex[k] then
112 gotolocation(function() color( { "darkyellow" }, k) end, { k } )
113 elseif type(v) == "table" then
114 gotolocation(function() color( { "white" }, k) end, { k } )
115 end
116 context(" ")
117end
118\stopluacode
119\stopbuffer
120
121\setupbackgrounds
122 [page]
123 [background=color,
124 backgroundcolor=darkgray,
125 backgroundoffset=2mm]
126
127\startpagemakeup
128 \vfill
129 \pagereference[global]
130 \startnarrower[10mm]
131 \setupalign[nothyhenated,middle,broad]
132 \TitlePageFont \setupinterlinespace
133 \getbuffer
134 \par
135 \stopnarrower
136 \vfill
137 \vfill
138 \hskip10mm\scale[width=\dimexpr\paperwidth20mm\relax]{\ttbf\white\ConTeXt\ \ifcase\contextlmtxmode MkIV\else LMTX\fi}
139 \par
140
141 \vfill
142\stoppagemakeup
143
144\setupbackgrounds
145 [page]
146 [background=]
147
148\startluacode
149local builtin = libraries.builtin
150local globals = libraries.globals
151local basiclua = libraries.basiclua
152local basictex = libraries.basictex
153local extratex = libraries.extratex
154local extralua = libraries.extralua
155local obsolete = libraries.obsolete
156
157local sortedkeys = table.sortedkeys
158local mark = storage.mark
159local marked = storage.marked
160local gsub = string.gsub
161local sub = string.sub
162local byte = string.byte
163local upper = string.upper
164
165local skipglobal = table.tohash {
166 "_G", "_M", "_ENV", "",
167 "context", "modules", "global", "arg", "utf", 1,
168 "kpse", "commands", "ffi",
169}
170
171local skipkeys = table.tohash {
172
173 "_clmb_", "_clme_", "_clmm_", "_clmn_", "_clma_", "_clmh_",
174 "_G", "_M", "_ENV", "",
175
176 "_VERSION", "_COPYRIGHT", "_DESCRIPTION", "_NAME", "_PACKAGE", "__unload",
177}
178
179local sameglobal = {
180 ["global"] = "_G",
181
182}
183
184
185
186
187
188for k,v in next, modules do
189 mark(v)
190end
191
192mark(document.arguments)
193mark(environment.arguments)
194mark(environment.engineflags)
195mark(characters.data)
196
197
198
199
200local variant = 1
201local variant = 2
202local variant = 3
203
204local done = { }
205
206local function childtables(key,tab,handler,depth)
207 depth = depth or 1
208 local keys = sortedkeys(tab)
209 for i=1,#keys do
210 local k = keys[i]
211
212 if not skipkeys[k] and type(k) == "string" then
213 local v = tab[k]
214 local t = type(v)
215 local s = k
216 if variant ~= 3 then
217 s = key and (key .. "." .. s) or s
218 end
219 if t == "table" then
220 if marked(v) then
221 t = "data"
222 handler(s,t,depth)
223 elseif done[v] then
224
225 else
226 done[v] = true
227 handler(s,t,depth)
228 if variant == 3 then
229 childtables(false,v,handler,depth+1)
230 elseif variant == 2 then
231 childtables(k,v,handler,depth+1)
232 else
233 childtables(s,v,handler,depth+1)
234 end
235 end
236 else
237 handler(s,t,depth)
238 end
239 end
240 end
241end
242
243local NC, NR = context.NC, context.NR
244local overstrike, rlap, bf = context.overstrike, context.rlap, context.bf
245local color, gotolocation = context.color, context["goto"]
246
247local function cleanup(s)
248 return "\\char" ..byte(s) .. " "
249end
250
251local function handler(k,t,depth)
252 k = gsub(k,"([~#$%%^&{}\\|])",cleanup)
253 NC() rlap("\\quad\\tx\\kern" .. (depth or 0).. "em" .. upper(sub(t,1,1)) .. " ".. k) NC() NC() NR()
254end
255
256local function show(title,subtitle,alias,builtin,t,lib,libcolor,glo,glocolor,mark,obsolete)
257
258
259 local keys = sortedkeys(t)
260 if #keys > 0 then
261 local fulltitle = title
262 if subtitle and subtitle ~= "" then
263 fulltitle = fulltitle .. " (" .. subtitle .. ")"
264 end
265 if alias and alias ~= "" then
266 fulltitle = fulltitle .. " (alias: " .. alias .. ")"
267 end
268 if builtin then
269 context.startxtitle { reference = title, title = fulltitle, backreference = "global" }
270 else
271 context.starttitle { reference = title, title = fulltitle, backreference = "global" }
272 end
273 context.startcolumns { n = 2 }
274 context.starttabulate { "|||" }
275 local t_obsolete = rawget(t,"obsolete")
276 if type(t_obsolete) ~= "table" then
277 t_obsolete = nil
278 end
279 for i=1,#keys do
280 local k = keys[i]
281 local v = t[k]
282 if k and k ~= "obsolete" and not skipkeys[k] and (not obsolete or not obsolete[k]) then
283 local inlib = lib and lib[k]
284 local inglo = glo and glo[k]
285 local t = type(v)
286 local kstr, tstr = k, t
287 local obs = t_obsolete and t_obsolete[k]
288 if obs then
289 tstr = function() overstrike(t) end
290 kstr = function() overstrike(k) end
291 end
292 local marked = marked(v)
293 if marked then
294 tstr = "data table"
295 end
296 if t == "table" then
297 local m = getmetatable(v)
298 if m and m.__call then
299 tstr = "function"
300 end
301 end
302 if not mark then
303
304 elseif inlib and tostring(inlib) ~= tostring(v) then
305 tstr = "overloaded ".. tstr
306 elseif inglo and tostring(inglo) ~= tostring(v) then
307 tstr = "overloaded ".. tstr
308 end
309 NC() bf()
310 if inlib then
311 if not mark and t == "table" then
312 gotolocation(function() color( { libcolor }, kstr) end, { k } )
313 else
314 color( { libcolor }, kstr)
315 end
316 elseif inglo then
317 if not mark and t == "table" then
318 gotolocation(function() color( { glocolor }, kstr) end, { k } )
319 else
320 color( { glocolor }, kstr)
321 end
322 else
323 if not mark and t == "table" then
324 gotolocation(k, { kstr } )
325 else
326 context(kstr)
327 end
328 end
329 NC()
330 if inlib then
331 color( { libcolor }, tstr)
332 elseif inglo then
333 color( { glocolor }, tstr)
334 else
335 context(tstr)
336 end
337 NC() NR()
338 if mark and t == "table" and title ~= "libraries" and title ~= "package" and not marked then
339 childtables(false,v,handler)
340 end
341 end
342 end
343 context.stoptabulate()
344 context.stopcolumns()
345 if builtin then
346 context.stopxtitle()
347 else
348 context.stoptitle()
349 end
350 end
351end
352
353show("global","",sameglobal.global,false,_G,builtin,"darkgreen",globals,"darkblue",false,obsolete)
354
355
356
357for k, v in table.sortedpairs(_G) do
358 if not skipglobal[k] and not obsolete[k] and type(v) == "table" and not marked(v) then
359
360
361
362
363 if basiclua[k] then show(k,"basic lua",sameglobal[k],basiclua[k],v,builtin[k],"darkred", false,false,true)
364 elseif extralua[k] then show(k,"extra lua",sameglobal[k],extralua[k],v,builtin[k],"darkred", false,false,true)
365 elseif basictex[k] then show(k,"basic tex",sameglobal[k],basictex[k],v,builtin[k],"darkred", false,false,true)
366 elseif extratex[k] then show(k,"extra tex",sameglobal[k],extratex[k],v,builtin[k],"darkred", false,false,true)
367 else
368 show(k,"context", sameglobal[k],false, v,builtin[k],"darkyellow",false,false,true)
369 end
370 end
371end
372
373\stopluacode
374
375\stoptext
376 |