From fb11132d06ede2223990a48e92e0a396a134c63b Mon Sep 17 00:00:00 2001 From: Joe Rayhawk Date: Sun, 12 Dec 2010 18:37:40 -0800 Subject: Notes: add Ikiwiki manual creation --- notes/examplewiki.setup | 163 ++++++++++++++++++++++++++++++++++++++++++++ notes/ikiwiki_creation.mdwn | 29 ++++++++ 2 files changed, 192 insertions(+) create mode 100644 notes/examplewiki.setup create mode 100644 notes/ikiwiki_creation.mdwn diff --git a/notes/examplewiki.setup b/notes/examplewiki.setup new file mode 100644 index 0000000..0153343 --- /dev/null +++ b/notes/examplewiki.setup @@ -0,0 +1,163 @@ +#!/usr/bin/perl +# Configuration file for ikiwiki. +# Passing this to ikiwiki --setup will make ikiwiki generate wrappers and +# build the wiki. +# +# Remember to re-run ikiwiki --setup any time you edit this file. + +use IkiWiki::Setup::Standard { + wikiname => "Example wiki", + #adminuser => ["yourname", ], + adminemail => 'jrayhawk@omgwallhack.org', + + # Be sure to customise these.. + srcdir => "/srv/ikiwiki/examplewiki/doc", + destdir => "/var/www/examplewiki", + + url => "http://www.example.com/examplewiki", + cgiurl => "http://www.example.com/examplewiki/ikiwiki.cgi", + templatedir => "/srv/ikiwiki/share/templates", + underlaydir => "/srv/ikiwiki/share/underlay", + + # Subversion stuff. + #rcs => "svn", + #historyurl => "http://svn.example.org/trunk/[[file]]", + #diffurl => "http://svn.example.org/trunk/[[file]]?root=wiki&r1=[[r1]]&r2=[[r2]]", + #svnrepo => "/svn/wiki", + #svnpath => "trunk", + + # Git stuff. + rcs => "git", + historyurl => "http://www.example.com/cgi-bin/gitweb.cgi?p=examplewiki.git;a=history;f=doc/[[file]];hb=HEAD", + #diffurl => "http://www.example.com/cgi-bin/gitweb.cgi?p=examplewiki.git;a=blobdiff;h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_parent]];f=doc/[[file]]", + diffurl => "http://www.example.com/cgi-bin/gitweb.cgi?p=examplewiki.git;a=blobdiff;f=doc/[[file]];h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_commit]];hpb=[[sha1_parent]]", + gitorigin_branch => "origin", + gitmaster_branch => "master", + + # Tla stuff. + #rcs => "tla" + #historyurl => ??, + #diffurl => ??, + + # Mercurial stuff. + #rcs => "mercurial", + #historyurl => "http://localhost:8000/", # hg serve'd local repository + #diffurl => "http://localhost:8000/?fd=[[changeset]];file=[[file]]", + + wrappers => [ + { + # The cgi wrapper. + cgi => 1, + wrapper => "/var/www/examplewiki/ikiwiki.cgi", + wrappermode => "06755", + }, + #{ + # # The svn post-commit wrapper. + # # Note that this will overwrite any existing + # # post-commit hook script, which may not be + # # what you want. + # wrapper => "/svn/wikirepo/hooks/post-commit", + # wrappermode => "04755", + # # Enable mail notifications of commits. + # notify => 1, + # # Log to syslog since svn post-commit hooks + # # hide output and errors. + # syslog => 1, + #}, + { + # The git post-update wrapper. + # Note that this will overwrite any existing + # post-update hook script, which may not be + # what you want. + wrapper => "/srv/git/examplewiki.git/hooks/post-update", + wrappermode => "06755", + # Enable mail notifications of commits. + notify => 1, + }, + ], + + # Generate rss feeds for blogs? + rss => 1, + # Generate atom feeds for blogs? + atom => 0, + # Urls to ping with XML-RPC when rss feeds are updated + #pingurl => [qw{http://rpc.technorati.com/rpc/ping}], + # Include discussion links on all pages? + discussion => 0, + # To exclude files matching a regexp from processing. This adds to + # the default exclude list. + #exclude => qr/*\.wav/, + # Time format (for strftime) + #timeformat => '%c', + # Locale to use. Must be a UTF-8 locale. + #locale => 'en_US.UTF-8', + # Only send cookies over SSL connections. + #sslcookie => 1, + # Logging settings: + verbose => 0, + syslog => 1, + # To link to user pages in a subdirectory of the wiki. + #userdir => "users", + # To create output files named page.html rather than page/index.html. + #usedirs => 0, + # Use new '!'-prefixed preprocessor directive syntax + prefix_directives => 1, + + # To add plugins, list them here. + #add_plugins => [qw{goodstuff search wikitext camelcase + # htmltidy fortune sidebar map rst anonok}], + #add_plugins => [qw{anonok}], + add_plugins => [qw{ + autoindex + edittemplate + graphviz + httpauth + img + map + meta + search + table + tag + teximg + toc + attachment + rename + remove + version + wmd + ymlfront field report ftemplate getfield + }], + # If you want to disable any of the default plugins, list them here. + #disable_plugins => [qw{inline htmlscrubber passwordauth openid}], + disable_plugins => [qw{openid htmlscrubber}], + + teximg_prefix => '\documentclass{scrartcl} +\usepackage[version=3]{mhchem} +\usepackage{amsmath} +\usepackage{amsfonts} +\usepackage{amssymb} +\pagestyle{empty} +\newcommand{\unit}[1]{\ensuremath{\, \mathrm{#1}}} +\begin{document}', + + teximg_dvipng => 1, + + # For use with the tag plugin, make all tags be located under a + # base page. + tagbase => "tag", + + # For use with the search plugin if your estseek.cgi is located + # somewhere else. + #estseek => "/usr/lib/estraier/estseek.cgi", + + # For use with the openid plugin, to give an url to a page users + # can use to signup for an OpenID. + #openidsignup => "http://myopenid.com/", + + # For use with the mirrorlist plugin, a list of mirrors. + #mirrorlist => { + # mirror1 => "http://hostname1", + # mirror2 => "http://hostname2/mirror", + #}, + wiki_file_chars => "-[:alnum:]+._/", +} diff --git a/notes/ikiwiki_creation.mdwn b/notes/ikiwiki_creation.mdwn new file mode 100644 index 0000000..4c03752 --- /dev/null +++ b/notes/ikiwiki_creation.mdwn @@ -0,0 +1,29 @@ +# Manual Ikiwiki creation + +0. Decide on a name + - `reponame=hello` +1. Make a new git bare repo: + - `cd /srv/git` (or some other place for storing bare repos, just keep in mind you need to change the git wrapper later) + - `GIT_DIR=$reponame.git git init --shared # shared being useful if you want this to be multi-user, harmless otherwise` + - edit `$reponame.git/description` to show an appropriate description in GitWeb/cgit +2. Make a clone for yourself to work with: + - `cd ~/src` (or whatever) + - `mkdir $reponame` + - `cd $reponame` + - `git init` + - Now add some content into it. `cp /usr/share/ikiwiki/basewiki/index.mdwn .` for instance + - `git add .` + - `git commit` + - `git remote add origin /srv/git/$reponame # the '.git' suffix is optional` + - `git push origin master` + - `git config branch.master.remote origin` + - `git config branch.master.merge refs/heads/master` +3. Make a clone for Ikiwiki: + - `cd /srv/ikiwiki` (or some other place, just keep in mind you need to change `srcdir` later) + - `git clone --shared /srv/git/$reponame` + - `curl http://piny.be/jrayhawk/notes/examplewiki.setup | sed 's/\/$reponame/g' > $reponame.setup # feel free to put the setup file anywhere` + - Tweak other settings in `$reponame.setup` (like wikiname, adminemail, and add_plugins) as desired. +4. Make a destination directory for rendered files: + - `sudo mkdir /var/www/$reponame` (or some other place, just keep in mind you need to change destdir now) +5. Render + - `sudo -u ikiwiki ikiwiki --setup $reponame.setup` -- cgit v1.2.3