summaryrefslogtreecommitdiff
path: root/ikiwiki/website/tech.mdwn
diff options
context:
space:
mode:
Diffstat (limited to 'ikiwiki/website/tech.mdwn')
-rw-r--r--ikiwiki/website/tech.mdwn124
1 files changed, 124 insertions, 0 deletions
diff --git a/ikiwiki/website/tech.mdwn b/ikiwiki/website/tech.mdwn
new file mode 100644
index 0000000..38bd42b
--- /dev/null
+++ b/ikiwiki/website/tech.mdwn
@@ -0,0 +1,124 @@
+# 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=8 width=8 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_static [label="static pages"]
+ webpages_wiki [label="wiki pages"]
+ webpages_searchresult [label="search results", style=dotted]
+ {rank=same; webpages_static webpages_wiki 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"]
+ tmpl [shape=plaintext, label="html templates"]
+// {rank=same; search_query txt_editor txt_designer 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_tmpl_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 (Hyper Estraier)"]
+ vcs_txt [shape=egg, label="VCS repository (Git)"]
+ vcs_tmpl [shape=egg, label="VCS repository (Git)"]
+ fs [shape=egg, label="filesystem"]
+// {rank=same; search_db vcs_txt vcs_tmpl fs}
+
+ /* stored data */
+ txt_stored [shape=plaintext, label="version-controlled Markdown text"]
+ media_stored [shape=plaintext, label="graphics files"]
+ tmpl_stored [shape=plaintext, label="version-controlled html templates"]
+// {rank=same; txt_stored media_stored tmpl_stored}
+
+ /* engines */
+ iki_engine [shape=box, label="html renderer (Ikiwiki)"]
+ search_engine [shape=box, label="search engine (Hyper Estraier)"]
+ {rank=same; iki_engine search_engine}
+
+ /* groupings */
+ subgraph cluster_clitools {
+ label="commandline editing"
+ style=dashed
+ txt_designer
+ tmpl
+ media
+ vcs_tmpl_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_tmpl
+ vcs_txt
+ fs
+ search_db
+ txt_stored
+ tmpl_stored
+ media_stored
+ }
+
+ /* 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_static
+ iki_engine -> webpages_wiki
+
+ designer -> txt_designer -> browser_designer -> txt_form
+ txt_designer -> vcs_txt_local
+
+ vcs_txt_local -> vcs_txt [dir=both]
+
+ designer -> tmpl -> vcs_tmpl_local
+ vcs_tmpl_local -> vcs_tmpl [dir=both]
+ vcs_tmpl -> tmpl_stored -> 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]].