Some files are pre-generated before ikiwiki touches them. This is driven by make.
Dynamic content is generated with CGI scripts (including the ikiwiki.cgi script itself).
- The navigation is generated by plugins and scripts using HTML::LinkList.
- Text-to-HTML conversion is done with a plugin using txt2html.
- PoD-to-HTML conversion is done with a plugin using pod2xhtml.
- Site configuration data is set in a single site configuration file using a plugin which uses the Config::Context perl module.
I wrote a fair few plugins for IkiWiki to make the site do what I want.
- antispambot (conceals email addresses from spambots)
- concon (Config::Context plugin; uses field plugin)
- field (arbitrary meta-data for pages; make pages like records)
- field_subst (substitute fields variables)
- ftemplate (template which is field-aware)
- headfoot (header and footer pages; uses field and concon plugins)
- includepage (simplified version of inline plugin)
- katspace (specialized variables etc for this site)
- linktrail (previous-next links for a group of pages)
- mylink (replace standard IkiWiki link plugin)
- pmap (pretty map; replace for IkiWiki map plugin)
- pmwiki (parse subset of PmWiki format)
- pod (parse PoD format)
- report (report generator; uses field plugin)
- tagger (multivariant tags)
- thumblist (list of images)
- txt2html (parse .txt files with txt2html)
- xhtm (replace IkiWiki html parser)
- xslt (process XML data file with XSLT stylesheet and output the result) used by fandef, sns and stardig pages.
- yml (parse YAML format; uses field plugin)
A number of the pages on this site are pre-generated using other scripts.
The tools pages are pre-processed with make targets to copy over the various tarballs from their respective source directories, and unpack the source files, so that the content of the tool page is exactly the same as the released version (rather than being my working copy). The documentation is then generated from the PoD in those files by the pod plugin.
Graphics were created using GIMP (for uncountable SFX), and Corel Draw 3.0 (for the original Refractions Logo), and ImageMagick (and Gimp) to convert old gifs to png files, and to resize photographs to be smaller.
More information about the title images can be found at Digital Art Notes.
The content is separated from both the layout and the look; the initial HTML files have no layout information; that is added in the IkiWiki processing, and then enacted using CSS; there are separate CSS pages for layout and for "theme" (the colours, fonts, images).
I don't use none newfangled HTML editors, I use a text editor like I was born with. My preferred editor is Vim.
My reference bibles are Cascading Style Sheets : Designing for the Web (by the designers of CSS), HTML: The Definitive Guide, Cascading Style Sheets: The Definitive Guide, XSLT, Programming Perl, CGI Programming with Perl, The Perl Cookbook, Mastering Regular Expressions, (Gotta love O'Reilly!) and various reference web pages.