%D \module
%D   [      file=s-figures-names.mkiv,
%D        version=2017.07.17,
%D          title=\CONTEXT\ Style File,
%D       subtitle=Show Figure Names,
%D         author=Hans Hagen,
%D           date=\currentdate,
%D      copyright={PRAGMA ADE \& \CONTEXT\ Development Team}]
%C
%C This module is part of the \CONTEXT\ macro||package and is
%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
%C details.

%D Normally this module will be run someplace at the end of a document in some kind of tracing
%D mode. We could hook it into \type {\stoptext} but better leave it up to the user. Loading
%D this module upfront will not show anything useful. The main reason for making this module
%D was that we wanted to report weird figurenames: spaces, multiple hyphens in a row, mixed
%D hyphens and underscores, inconsistently mixed upper and lowercase, etc.
%D
%D If you only want info in the logfile, you can use:
%D
%D \starttyping
%D \enabletrackers[graphics.lognames]
%D \stoptyping
%D
%D This directive is persistent and can be issued any time before the end of the run.

\startmodule[figures-names]

\startluacode

local context            = context
local ctx_NC             = context.NC
local ctx_NR             = context.NR
local ctx_red            = context.red
local ctx_starttabulate  = context.starttabulate
local ctx_stoptabulate   = context.stoptabulate
local ctx_hyphenatedname = context.hyphenatedfilename

trackers.enable("graphics.lognames")

context.start()

    context.switchtobodyfont { "tt,small" }

    local template = { "|Bl|p|" }

    for _, data in table.sortedhash(figures.found) do
        ctx_starttabulate(template)
            local badname = data.badname
            local found   = data.found
            ctx_NC()
                context("asked name")
            ctx_NC()
                if badname then
                    ctx_red()
                end
                context(data.askedname)
            ctx_NC() ctx_NR()
            if found then
                ctx_NC()
                    context("format")
                ctx_NC()
                    context(data.format)
                ctx_NC() ctx_NR()
                ctx_NC()
                    context("found file")
                ctx_NC()
                    ctx_hyphenatedname(data.foundname)
                 -- context(data.foundname)
                ctx_NC() ctx_NR()
                ctx_NC()
                    context("used file")
                ctx_NC()
                    ctx_hyphenatedname(data.fullname)
                 -- context(data.fullname)
                ctx_NC() ctx_NR()
                if badname then
                    ctx_NC()
                        context("comment")
                    ctx_NC()
                        context("bad name")
                    ctx_NC() ctx_NR()
                end
            else
                ctx_NC()
                    context("comment")
                ctx_NC()
                    context(data.comment or "not found")
                ctx_NC() ctx_NR()
            end
        ctx_stoptabulate()
    end

context.stop()

\stopluacode

\stopmodule
