summaryrefslogtreecommitdiff
path: root/ikisystem.mdwn
blob: 52f23ce1eadf8d03de177511d09d830216ae54d9 (plain)

Ikiwiki system configuration

This website is powered by Ikiwiki. But instead of the normal Ikiwiki setup, each edit results in 2 parallel websites being built - one served purely static and one password-protected serving the static pages + CGI to edit them.

Here's a graph of the interaction between the various parts of ikiwiki itself and different kinds of users:

[[graph src=""" { // rankdir=LR // rotate=90 center=1

subgraph cluster_user {
	label="Any user"
	style=dashed
	browser_user
}
subgraph cluster_author {
	label="Author"
	style=dashed
	browser_author
}
subgraph cluster_designer {
	label="Web designer"
	style=dashed
	browser_designer
	vcs_tmpl_local
	vcs_txt_local
	fs_local
}
subgraph cluster_website {
	label="Public website"
	style=dashed
	webpages
	webpages_searchresult
}
subgraph cluster_website_admin {
	label="Admin website"
	style=dashed
	webpages_admin
	webpages_searchresult
}

search_query [shape=plaintext, label="Search query"]
txt [shape=plaintext, label="Markdown text"]
media [shape=plaintext, label="Images and rich media files"]
tmpl [shape=plaintext, label="Html templates"]

browser_user [label="Web browser"]
browser_author [label="Web browser"]
browser_designer [label="Web browser"]
vcs_txt_local [shape=egg, label="Local revision control"]
vcs_tmpl_local [shape=egg, label="Local revision control"]
fs_local [shape=egg, label="Local filesystem"]

iki_form [shape=box, label="Web-based text editor"]
search_form [shape=box, label="Search form"]
search_db [shape=egg, label="Search index"]
vcs_txt [shape=egg, label="Revision control"]
vcs_tmpl [shape=egg, label="Revision control"]
fs [shape=egg, label="Filesystem"]
iki_engine [shape=box, label="Automated web builder"]
search_engine [shape=box, label="Search engine"]
webpages [label="Public web pages"]
webpages_admin [label="Editable web pages"]
webpages_searchresult [label="Search results", style=dotted]

/* browser_user -> webpages [dir=back]; browser_author -> webpages [dir=back]; browser_designer -> webpages [dir=back]; browser_author -> webpages_admin [dir=back]; browser_designer -> webpages_admin [dir=back]; */

browser_user -> search_form -> search_query -> search_engine -> webpages_searchresult
search_db -> search_engine [weight=0]
search_db -> iki_engine [dir=back]

browser_author -> iki_form -> vcs_txt -> txt -> iki_engine -> webpages
iki_engine -> webpages_admin

browser_designer -> iki_form

vcs_txt_local -> vcs_txt [dir=both]

vcs_tmpl_local -> vcs_tmpl [dir=both]
vcs_tmpl -> tmpl -> iki_engine

fs_local -> fs [dir=both]
fs -> media -> iki_engine

{rank=same; search_db vcs_txt vcs_tmpl fs}
{rank=same; search_query txt media tmpl}
{rank=same; iki_form search_form}

// {rank=same; webpages webpages_admin webpages_searchresult} } """]]