From 47852e5715e7c0374bb6bc173c1728908549e1ed Mon Sep 17 00:00:00 2001
From: Hans Hagen <pragma@wxs.nl>
Date: Wed, 24 Jul 2019 13:08:53 +0200
Subject: 2019-07-24 11:24:00

---
 .../manuals/luametatex/luametatex-style.tex        | 82 ++++++++++++++--------
 1 file changed, 52 insertions(+), 30 deletions(-)

(limited to 'doc/context/sources/general/manuals/luametatex/luametatex-style.tex')

diff --git a/doc/context/sources/general/manuals/luametatex/luametatex-style.tex b/doc/context/sources/general/manuals/luametatex/luametatex-style.tex
index ceb3f1a39..96a28a0dc 100644
--- a/doc/context/sources/general/manuals/luametatex/luametatex-style.tex
+++ b/doc/context/sources/general/manuals/luametatex/luametatex-style.tex
@@ -63,52 +63,63 @@
   [headcolor=darkblue]
 
 \startluacode
-    local skipped = table.tohash { 'id', 'subtype', 'next', 'prev' }
-
-    function document.functions.showfields(s)
-        local t = string.split(s,',')
-        local f = node.fields(t[1],t[2])
-        if f then
-            local d = false
-            for i=1,#f do
-                local fi = f[i]
-                if skipped[fi] then
-                    -- okay
-                elseif d then
-                    context(', {\tttf %s}', fi)
-                else
-                    context('{\tttf %s}', fi)
-                    d = true
+    local skipped = { 'id', 'subtype', 'next', 'prev' }
+
+    local function showlist(l,skipped)
+        if l then
+            l = table.tohash(l)
+            if skipped then
+                for i=1,#skipped do
+                    l[skipped[i]] = nil
                 end
             end
+            l = table.sortedkeys(l)
+            local n = #l
+            for i=1,n do
+                context("%s{\\tttf %s}", (i == 1 and "") or (i == n and " and ") or ", ", l[i])
+            end
         end
     end
 
+    function document.functions.showvalues(l)
+        if l then
+            local n = table.count(l)
+            local i = 0
+            for k, v in table.sortedhash(l) do
+                i = i + 1
+                context("%s{\\tttf %s} (%i)", (i == 1 and "") or (i == n and " and ") or ", ", v,k)
+            end
+        end
+    end
+
+    function document.functions.showfields(s)
+        local t = string.split(s,',')
+        showlist(node.fields(t[1],t[2]),skipped)
+    end
+
     function document.functions.showid(s)
         local t = string.split(s,',')
-        context('{tttf %s}',node.id(t[1]))
-        if t[2] then
-            context(', {tttf %s}',node.subtype(t[2]))
+        local i = t[1] and node.id(t[1])
+        local s = t[2] and node.subtype(t[2])
+        if s then
+            context('{\\tttf %s}, {\\tttf %s}',i,s)
+        else
+            context('{\\tttf %s}',i)
         end
     end
 
     function document.functions.showsubtypes(s)
-        local s = node.subtypes(s)
-        local d = false
-        for k, v in table.sortedhash(s) do
-            if d then
-                context(', %s = {\\tttf %s}',k,v)
-            else
-                context('%s = {\\tttf %s}',k,v)
-                d = true
-            end
-        end
+        showlist(node.subtypes(s))
     end
+
 \stopluacode
 
 \unexpanded\def\showfields  #1{\ctxlua{document.functions.showfields("#1")}}
 \unexpanded\def\showid      #1{\ctxlua{document.functions.showid("#1")}}
 \unexpanded\def\showsubtypes#1{\ctxlua{document.functions.showsubtypes("#1")}}
+\unexpanded\def\showvalues  #1{\ctxlua{document.functions.showvalues(node.values("#1"))}}
+\unexpanded\def\showtypes     {\ctxlua{document.functions.showvalues(node.types())}}
+
 
 \definecolor[blue]      [b=.5]
 \definecolor[red]       [r=.5]
@@ -441,11 +452,22 @@
   [2]
   [textstyle=\tttf]
 
-\unexpanded\def\lib     #1{\doifmode{*bodypart}{\expanded{\libraryindex{\currentlibraryindex+#1}}\type{\currentlibraryindex.#1}}}
+\unexpanded\def\lib     #1{\doifmode{*bodypart}{\expanded{\libraryindex{\currentlibraryindex+#1}}}\type{\currentlibraryindex.#1}}
 \unexpanded\def\libindex#1{\doifmode{*bodypart}{\expanded{\libraryindex{\currentlibraryindex+#1}}}}
 \unexpanded\def\libidx#1#2{\doifmode{*bodypart}{\expanded{\libraryindex{#1+#2}}\type{#1.#2}}}
 \unexpanded\def\lix   #1#2{\doifmode{*bodypart}{\expanded{\libraryindex{#1+#2}}}}
 
 % \setstructurepageregister[][keys:1=,entries:1=]
 
+\unexpanded\def\inlineluavalue#1%
+  {{\maincolor \ctxlua {
+       local t = #1
+       if type(t) == "table" then
+           t = string.gsub(table.serialize(t,false),"="," = ")
+       else
+           t = tostring(t)
+       end
+       context.typ(t)
+  }}}
+
 \stopenvironment
-- 
cgit v1.2.3

