# 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"] // {rank=same; search_query txt_editor txt_designer css 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"] tmpl_stored [shape=plaintext, label="html templates"] css_stored [shape=plaintext, label="version-controlled Sass files"] /* 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 search_dummy [style="invis"] txt_stored tmpl_stored css_stored media_stored compass { rank=same search_dummy txt_stored media_stored tmpl_stored css_stored } } /* paths */ reader -> search_query -> browser_reader -> search_form -> search_engine -> webpages_searchresult search_form -> search_db -> search_dummy [style="invis"] 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 compass -> css_engine -> iki_engine designer -> media -> fs_local fs_local -> fs [dir=both] fs -> media_stored -> iki_engine tmpl_stored -> iki_engine } """]] ---- See also the simpler graphs focusing on [[roles|ikiroles]] and on the [[design|ikidesign]].