strict digraph luaotfload_files { //looks weird with circo ... compound = true; // label = "Schematic of the files included in Luaotfload."; // labelloc = "b"; fontsize = "14.4"; labelfontname = "Iwona Medium Regular"; fontname = "Iwona Light Regular"; size = "21cm"; rankdir = LR; ranksep = 0.618; nodesep = 1.618; edge [ arrowhead = onormal, fontname = "Iwona Cond Regular", penwidth = 1.0, ]; node [ //penwidth = 0.7, fontname = "Liberation Mono", fontsize = 12, ]; /* ···································································· * file structure * ································································· */ fontdbutil -> font_names [label="--update", style=dashed] luaotfload -> merged_lua_libs [style=solid] luaotfload -> luaotfload_init [label="main()", style=solid] luaotfload -> luaotfload_libs [label="main()", style=solid] fontloader -> merged_luatex_fonts [label="merged", style=dotted, lhead=cluster_merged] fontloader -> merged_context_libs [label="merged", style=dotted, lhead=cluster_merged] luaotfload_init -> luaotfload_log [label="init_early()", style=solid] luaotfload_init -> luaotfload_basics_gen [label="init_early()", style=solid] luaotfload_init -> fontloader [label="init_main()", style=solid] luaotfload_init -> merged_luatex_fonts [label="unmerged", style=solid] luaotfload_init -> merged_context_libs [label="unmerged", style=solid] merged_luatex_fonts -> font_age [label="luatex-fonts-enc.lua", ltail=cluster_merged] fontdbutil -> fontdbutil_diagnostics [label="--diagnose"] fontdbutil -> status [label="version information"] mkimport -> fontloader [label="merges", style=dashed] merged_luatex_fonts -> characters [label="luaotfload-auxiliary.lua", ltail=cluster_merged] luaotfload_libs -> font_names [label="luaotfload-database.lua"] luaotfload_libs -> otfl_blacklist_cnf [label="luaotfload-database.lua"] mkstatus -> status [label="generates from distribution files", style=dashed] mkglyphlist -> font_age [label="generates from glyphlist.txt", style=dashed] mkcharacters -> characters [label="generates from Context’s char-def.lua", style=dashed] fontdbutil_diagnostics -> status [label="hash files"] mkimport -> merged_luatex_fonts [label="pulls", style=dashed, constraint=no]; mkimport -> merged_context_libs [label="pulls", style=dashed, constraint=no]; subgraph { rank = same; fontdbutil; luaotfload } subgraph cluster_scripts { node [style=filled, color=white]; style = "filled,rounded"; color = "#44000011:#CCCCCC77"; //nodesep = "3.0"; rank = same; label = "Standalone scripts"; gradientangle=90; mkcharacters; mkglyphlist; mkimport; mktest; mkstatus; } /* ···································································· * main files * ································································· */ fontdbutil [label = "luaotfload-tool.lua", shape = rect, width = "3.2cm", height = "1.2cm", color = "#01012222", style = "filled,rounded", penwidth=2] fontdbutil_diagnostics [label = "luaotfload-diagnostics.lua", shape = rect, width = "3.2cm", height = "1.2cm", color = "#01012222", style = "filled,rounded", penwidth=2] mktest [label = "mktest", shape = rect, width = "3.2cm", height = "0.618cm", color = "#FFFFFF66", style = "filled,rounded", penwidth=2] mkimport [label = "mkimport", shape = rect, width = "3.2cm", height = "0.618cm", color = "#FFFFFF66", style = "filled,rounded", penwidth=2] mkstatus [label = "mkstatus", shape = rect, width = "3.2cm", height = "0.618cm", color = "#FFFFFF66", style = "filled,rounded", penwidth=2] mkglyphlist [label = "mkglyphlist", shape = rect, width = "3.2cm", height = "0.618cm", color = "#FFFFFF66", style = "filled,rounded", penwidth=2] mkcharacters [label = "mkcharacters", shape = rect, width = "3.2cm", height = "0.618cm", color = "#FFFFFF66", style = "filled,rounded", penwidth=2] luaotfload [label = "luaotfload-main.lua", shape = rect, width = "3.2cm", height = "1.2cm", color = "#01012222", style = "filled,rounded", penwidth=2] /* *otfl_fonts [label = "luaotfload-fonts.lua", * shape = rect, * width = "3.2cm", * height = "1.2cm", * color = "#01012222", * style = "filled,rounded", * penwidth=2] */ luaotfload_init [label = "luaotfload-init.lua", shape = rect, width = "3.2cm", height = "1.2cm", color = "#44440122", style = "filled,rounded", penwidth=2] luaotfload_log [label = "luaotfload-log.lua", shape = rect, width = "3.2cm", height = "1.2cm", color = "#44440122", style = "filled,rounded", penwidth=2] luaotfload_basics_gen [label = "fontloader-basics-gen.lua", shape = rect, width = "3.2cm", height = "1.2cm", color = "#FFFFFF66", style = "filled,rounded", penwidth=2] fontloader [label = "fontloader-YY-MM-DD.lua", shape = rect, width = "3.2cm", height = "1.2cm", color = "#FFFFFF66", style = "filled,rounded", penwidth=2] /* ···································································· * luaotfload files * ································································· */ characters [style = "filled,dashed", shape = rect, width = "3.2cm", fillcolor = "#01012222", color = grey40, style = "filled,dotted,rounded", label = "luaotfload-characters.lua"] font_age [style = "filled,dashed", shape = rect, width = "3.2cm", fillcolor = "#01012222", color = grey40, style = "filled,dotted,rounded", label = "luaotfload-glyphlist.lua"] font_names [style = "filled,dashed", shape = rect, width = "3.2cm", fillcolor = "#01012222", color = grey40, style = "filled,dotted,rounded", label = "luaotfload-names.lua.gz\nluaotfload-names.luc"] status [style = "filled,dashed", shape = rect, width = "3.2cm", fillcolor = "#01012222", color = grey40, style = "filled,dotted,rounded", label = "luaotfload-status.lua"] otfl_blacklist_cnf [style = "filled,dashed", shape = rect, width = "3.2cm", fillcolor = "#01012222", color = grey40, style = "filled,dotted,rounded", label = "luaotfload-blacklist.cnf"] luaotfload_libs [ shape = box, style = "filled,rounded", color = "grey90", fontsize = 10, label = < <table cellborder="0" bgcolor="#FFFFFFAA"> <th> <td colspan="2"> <font point-size="12" face="Iwona Italic">Luaotfload Libraries</font> </td> </th> <tr> <td>luaotfload-auxiliary.lua</td> <td>luaotfload-features.lua</td> </tr> <tr> <td>luaotfload-loaders.lua</td> <td>luaotfload-colors.lua</td> </tr> <tr> <td>luaotfload-resolvers.lua</td> <td>luaotfload-letterspace.lua</td> </tr> <tr> <td>luaotfload-parsers.lua</td> <td>luaotfload-database.lua</td> </tr> <tr> <td>luaotfload-configuration.lua</td><td></td> </tr> </table> >, ] /* ···································································· * merged files * ································································· */ subgraph cluster_merged { node [style=filled, color=white]; style = "filled,rounded"; color = "#912CEE33"; //nodesep = "3.0"; rank = same; label = "Merged Libraries"; gradientangle=0; merged_luatex_fonts; merged_context_libs; } fontloader -> merged_luatex_fonts fontloader -> merged_context_libs subgraph cluster_fontloader { node [style=filled, color=white]; style = "filled,rounded"; color = "bisque"; //nodesep = "3.0"; rank = same; label = "Fontloader"; gradientangle=0; luaotfload_basics_gen; fontloader; } merged_lua_libs [ shape = box, style = "filled,rounded", color = "#CCCC1166", fontsize = 10, fontsize = 10, label = < <table border="0"> <th> <td colspan="3"> <font point-size="12" face="Iwona Italic"> Lualibs – Lua Libraries from Context</font> </td> </th> <tr> <td>l-lua.lua</td> <td>l-lpeg.lua</td> <td>l-function.lua</td> </tr> <tr> <td>l-string.lua</td> <td>l-table.lua</td> <td>l-io.lua</td> </tr> <tr> <td>l-file.lua</td> <td>l-boolean.lua</td> <td>l-math.lua</td> </tr> <tr> <td>util-str.lua</td> <td>util-fil.lua</td> </tr> </table> >, ] merged_luatex_fonts [ shape = box, style = "filled,rounded", color = "#FFFFFFAA", fontsize = 10, label = < <table border="0"> <th> <td colspan="2"> <font point-size="12" face="Iwona Italic">Font Loader (LuaTeX-Fonts)</font> </td> </th> <tr> <td>luatex-basics-nod.lua</td> <td>luatex-basics-chr.lua</td> </tr> <tr> <td>luatex-fonts-enc.lua</td> <td>luatex-fonts-syn.lua</td> </tr> <tr> <td>luatex-fonts-ext.lua</td> </tr> </table> >, ] merged_context_libs [ shape = box, style = "filled,rounded", color = "#FFFFFFAA", fontsize = 10, label = < <table border="0"> <th> <td colspan="3"> <font point-size="12" face="Iwona Italic"> Font and Node Libraries from Context </font> </td> </th> <tr> <td>data-con.lua</td> <td>font-ini.lua</td> <td>font-con.lua</td> </tr> <tr> <td>font-cid.lua</td> <td>font-map.lua</td> <td>font-tfm.lua</td> </tr> <tr> <td>font-afm.lua</td> <td>font-afk.lua</td> <td>font-oti.lua</td> </tr> <tr> <td>font-otr.lua</td> <td>font-cff.lua</td> <td>font-ttf.lua</td> </tr> <tr> <td>font-dsp.lua</td> <td>font-oup.lua</td> <td>font-otl.lua</td> </tr> <tr> <td>font-oto.lua</td> <td>font-otj.lua</td> <td>font-ota.lua</td> </tr> <tr> <td>font-ots.lua</td> <td>font-osd.lua</td> <td>font-lua.lua</td> </tr> <tr> <td>font-def.lua</td> <td>font-xtx.lua</td> <td>font-gbn.lua</td> </tr> </table> >, ] } // vim:ft=dot:sw=4:ts=4:expandtab