summaryrefslogtreecommitdiff
path: root/tex/context/base/mkiv/mtx-context-hashed.tex
diff options
context:
space:
mode:
Diffstat (limited to 'tex/context/base/mkiv/mtx-context-hashed.tex')
-rw-r--r--tex/context/base/mkiv/mtx-context-hashed.tex136
1 files changed, 136 insertions, 0 deletions
diff --git a/tex/context/base/mkiv/mtx-context-hashed.tex b/tex/context/base/mkiv/mtx-context-hashed.tex
new file mode 100644
index 000000000..88de10f3f
--- /dev/null
+++ b/tex/context/base/mkiv/mtx-context-hashed.tex
@@ -0,0 +1,136 @@
+%D \module
+%D [ file=mtx-context-hashed,
+%D version=2009.03.21,
+%D title=\CONTEXT\ Extra Trickry,
+%D subtitle=Combine Files,
+%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.
+
+% begin help
+%
+% usage: context --extra=hashed [options] list-of-files
+%
+% --database : database to create or extend
+% --pattern : file pattern
+% --patterns : pattern file
+% --compression : apply compression
+%
+% end help
+
+% \startluacode
+% if not resolvers.finders.helpers.validhashed("hasheddata") then
+% resolvers.finders.helpers.createhashed {
+% database = "hasheddata",
+% pattern = "m4all/**.jpg$",
+% compress = false,
+% }
+% resolvers.finders.helpers.createhashed {
+% database = "hasheddata",
+% pattern = "m4all/**.png$",
+% compress = false,
+% }
+% resolvers.finders.helpers.createhashed {
+% database = "hasheddata",
+% pattern = "m4all/**.xml$",
+% compress = true,
+% }
+% end
+% \stopluacode
+
+% \startluacode
+% if not resolvers.finders.helpers.validhashed("hasheddata") then
+% resolvers.finders.helpers.createhashed {
+% database = "hasheddata",
+% patterns = {
+% { pattern = "m4all/**.jpg$", compress = false },
+% { pattern = "m4all/**.png$", compress = false },
+% { pattern = "m4all/**.xml$", compress = true },
+% },
+% }
+% end
+% \stopluacode
+
+% context --extra=hashed --database=hasheddata --pattern=m4all/**.jpg
+% context --extra=hashed --database=hasheddata --pattern=m4all/**.png
+% context --extra=hashed --database=hasheddata --pattern=m4all/**.xml --compress
+% context --extra=hashed --database=hasheddata --pattern=m4all/**.svg --compress
+
+% -- m4all.lua:
+%
+% return {
+% { pattern = "m4all/**.jpg$", compress = false },
+% { pattern = "m4all/**.png$", compress = false },
+% { pattern = "m4all/**.svg$", compress = true },
+% { pattern = "m4all/**.xml$", compress = true },
+% }
+%
+% context --extra=hashed --database=hasheddata --patterns=m4all.lua
+
+% \registerhashedfiles[hasheddata]
+% \registerfilescheme[hashed]
+%
+% \externalfigure[hashed:///m4all/books/chapters/h3/h3-if1/images/highres/casino.jpg] [height=1cm]
+% \externalfigure[hashed:///m4all/books/chapters/ha/ha-c4/images/highres/ha-c44-ex2-s1.png][height=1cm]
+% \externalfigure[m4all/books/chapters/h3/h3-if1/images/highres/casino.jpg] [height=1cm]
+% \externalfigure[m4all/books/chapters/ha/ha-c4/images/highres/ha-c44-ex2-s1.png] [height=1cm]
+
+\input mtx-context-common.tex
+
+\noheaderandfooterlines \setupbodyfont[tt]
+
+\starttext
+
+\startluacode
+
+ if CONTEXTLMTXMODE > 0 then
+
+ local database = document.arguments.database
+
+ if database then
+ local metadata = false
+ if tex.systemmodes["first"] then
+ metadata = resolvers.finders.helpers.createhashed {
+ database = database,
+ pattern = document.arguments.pattern,
+ compress = document.arguments.compress,
+ patterns = document.arguments.patterns and table.load(document.arguments.patterns),
+ }
+ else
+ metadata = resolvers.finders.helpers.validhashed(database)
+ if metadata then
+ metadata = metadata.metadata
+ end
+ end
+ if metadata then
+ local function show(what)
+ context.NC() context(what)
+ context.EQ() context(metadata[what])
+ context.NC() context.NR()
+ end
+ context.starttitle { title = "database: " .. database }
+ context.starttabulate { "||r|" }
+ show("nofnames")
+ show("nofpaths")
+ show("nofblobs")
+ show("nofcompressed")
+ context.stoptabulate()
+ context.stoptitle()
+ else
+ context("something went wrong, invalid database")
+ end
+ else
+ context("something went wrong, no database specified")
+ end
+ else
+ context("you need lmtx")
+ end
+
+\stopluacode
+
+\stoptext
+