Ikiwiki for regular websites - technical details
Here's a graph of the interaction between the various parts of ikiwiki itself
and different kinds of users (see also the [[introduction|website]]):
[[!graph height=12 width=12 src="""
{
// rankdir=LR
// rotate=90
center=1
/* roles */
reader [shape=house, label="Reader"]
editor [shape=house, label="Editor"]
designer [shape=house, label="Designer"]
{rank=same; reader editor designer}
/* targets */
webpages [label="static pages"]
webpages_alt [label="alternative static pages", color=grey]
webpages_searchresult [label="search results", style=dotted]
{rank=same; webpages webpages_alt webpages_searchresult}
/* input data */
search_query [shape=plaintext, label="search query"]
txt_editor [shape=plaintext, label="Markdown text"]
txt_designer [shape=plaintext, label="Markdown text"]
media [shape=plaintext, label="graphics files"]
css [shape=plaintext, label="Sass files"]
tmpl [shape=plaintext, label="html templates"]
// {rank=same; search_query txt_editor txt_designer css tmpl media}
/* user tool */
browser_reader [label="web browser"]
browser_editor [label="web browser"]
browser_designer [label="web browser"]
vcs_txt_local [shape=egg, label="Git repository"]
vcs_css_local [shape=egg, label="Git repository"]
fs_local [shape=egg, label="filesystem"]
/* user interface */
txt_form [shape=box, label="web text editor (ikiwiki)"]
search_form [shape=box, label="search form (ikiwiki)"]
{rank=same; search_form txt_form}
/* storage types */
search_db [shape=egg, label="search index (Xapian)"]
vcs_txt [shape=egg, label="VCS repository (Git)"]
vcs_css [shape=egg, label="VCS repository (Git)"]
fs [shape=egg, label="filesystem"]
compass [shape=egg, label="Sass libraries (compass)"]
// {rank=same; search_db vcs_txt vcs_css fs compass}
/* stored data */
txt_stored [shape=plaintext, label="version-controlled Markdown text"]
media_stored [shape=plaintext, label="graphics files"]
css_stored [shape=plaintext, label="version-controlled Sass files"]
// {rank=same; txt_stored media_stored css_stored}
/* engines */
css_engine [shape=box, label="css renderer (Sass)"]
iki_engine [shape=box, label="html renderer (Ikiwiki)"]
search_engine [shape=box, label="search engine (Xapian)"]
{rank=same; iki_engine search_engine}
/* groupings */
subgraph cluster_clitools {
label="commandline editing"
style=dashed
txt_designer
css
media
vcs_css_local
vcs_txt_local
fs_local
}
subgraph cluster_webtools {
label="web editing"
style=dashed
txt_editor
search_query
{
rank=same
browser_reader
browser_editor
browser_designer
}
}
subgraph cluster_storage {
label="server storage"
style=dashed
vcs_css
vcs_txt
fs
search_db
txt_stored
css_stored
media_stored
compass
}
/* paths */
reader -> search_query -> browser_reader -> search_form -> search_engine -> webpages_searchresult
search_db -> search_engine
search_db -> iki_engine [dir=back]
editor -> txt_editor -> browser_editor -> txt_form -> vcs_txt -> txt_stored -> iki_engine -> webpages
iki_engine -> webpages_alt
designer -> txt_designer -> browser_designer -> txt_form
txt_designer -> vcs_txt_local
vcs_txt_local -> vcs_txt [dir=both]
designer -> css -> vcs_css_local
vcs_css_local -> vcs_css [dir=both]
vcs_css -> css_stored -> css_engine -> iki_engine
compass -> css_engine -> iki_engine
designer -> media -> fs_local
fs_local -> fs [dir=both]
fs -> media_stored -> iki_engine
}
"""]]
See also the simpler graphs focusing on [[roles|ikiroles]] and on the [[design|ikidesign]].