summaryrefslogtreecommitdiff
path: root/ikiwiki/website/tech.mdwn
blob: 69cb8a8663170b06d19bf2600946c12f8bba0b37 (plain)

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"]
webpages_searchresult [label="search results", style=dotted]
{rank=same; webpages webpages_alt webpages_searchresult}


/* engines */
css_engine [shape=box, label="Sass CSS renderer"]
iki_engine [shape=box, label="Ikiwiki HTML renderer"]
search_engine [shape=box, label="Xapian search engine"]
{rank=same; search_engine css_engine}

/* groupings */
subgraph cluster_clitools {
	label="desktop"
	style=dashed
	txt_designer [shape=plaintext, label="Markdown text"]
	css [shape=plaintext, label="Sass files"]
	media [shape=plaintext, label="graphics files"]
	vcs_css_local [shape=egg, label="Git repository"]
	vcs_txt_local [shape=egg, label="Git repository"]
	fs_local [shape=egg, label="filesystem"]
}
subgraph cluster_webtools {
	label="web"
	style=dashed
	txt_editor [shape=plaintext, label="Markdown text"]
	search_query [shape=plaintext, label="search query"]
	{rank=same
		browser_reader [label="browser"]
		browser_editor [label="browser"]
		browser_designer [label="browser"]
	}
	{rank=same
		search_form [label="search form", style=dotted]
		txt_form [label="content editing form", style=dotted]
	}
}
subgraph cluster_storage {
	label="server"
	style=dashed
	vcs_css [shape=egg, label="Git repository"]
	vcs_txt [shape=egg, label="Git repository"]
	fs [shape=egg, label="filesystem"]
	compass [shape=egg, label="Compass libraries"]
	{rank=same
		search_db [shape=plaintext, label="search index"]
		txt_stored [shape=plaintext, label="Markdown text"]
		media_stored [shape=plaintext, label="graphics files"]
		tmpl_stored [shape=plaintext, label="HTML templates"]
		css_stored [shape=plaintext, label="Sass files"]
	}
}

/* paths */

reader -> search_query -> browser_reader -> search_form -> search_engine -> webpages_searchresult
search_db -> search_engine [dir=both]
search_engine -> 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

// compass -> css_stored [style="invis"]

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]].