#!/usr/bin/perl # # Setup 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. require IkiWiki::Setup::Standard; my $root = $ENV{ROOT}; my $srcdir; my $destdir; my $cgi_wrapper = ''; my $git_wrapper = ''; my $gitorigin_branch = ''; if (defined $ENV{WEB_SERVER}) { $srcdir = $root.'/public_html.workspace'; $destdir = $root.'/public_html'; $cgi_wrapper = $root.'/public_html.workspace.cgi'; $git_wrapper = $root.'/public_html.workspace.update'; $gitorigin_branch = 'origin'; } else { $srcdir = $root; $destdir = $ENV{DESTDIR} || $srcdir.'.rendered'; } IkiWiki::Setup::Standard->import({ # name of the wiki wikiname => 'GNU Hurd', # contact email for wiki adminemail => 'thomas@schwinge.name', # users who are wiki admins adminuser => [qw{tschwinge}], # users who are banned from the wiki banned_users => [qw{AlbertF bernhart ColetCris flamberian Jack_Dark jasclaine NateNash http://calvinyoung.myopenid.com/ http://heaton.myopenid.com/ http://hilarybunton.myopenid.com/}], # where the source of the wiki is located srcdir => $srcdir, # where to build the wiki destdir => $destdir, # base url to the wiki url => 'http://darnassus.sceen.net/~hurd-web', # url to the ikiwiki.cgi cgiurl => 'http://darnassus.sceen.net/hurd-web.cgi', # filename of cgi wrapper to generate cgi_wrapper => $cgi_wrapper, # mode for cgi_wrapper (can safely be made suid) cgi_wrappermode => '06755', # number of seconds to delay CGI requests when overloaded #cgi_overload_delay => '', # message to display when overloaded (may contain html) #cgi_overload_message => '', # enable optimization of only refreshing committed changes? #only_committed_changes => 0, # rcs backend to use rcs => 'git', # plugins to add to the default configuration add_plugins => [qw{goodstuff cutpaste editdiff edittemplate favicon getsource html rename repolist search sidebar table txt field getfield ymlfront copyright license texinfo}], # plugins to disable disable_plugins => [], # additional directory to search for template files templatedir => $srcdir.'/.templates', # base wiki source location #underlaydir => '/usr/share/ikiwiki/basewiki', # display verbose messages? verbose => 1, # log to syslog? syslog => 0, # create output files named page/index.html? usedirs => 1, # use '!'-prefixed preprocessor directives? prefix_directives => 1, # use page/index.mdwn source files indexpages => 0, # enable Discussion pages? discussion => 1, # name of Discussion pages discussionpage => 'Discussion', # generate HTML5? html5 => 0, # only send cookies over SSL connections? sslcookie => 0, # extension to use for new pages default_pageext => 'mdwn', # extension to use for html files htmlext => 'html', # strftime format string to display date timeformat => '%F %T %Z', # UTF-8 locale to use locale => 'C', # put user pages below specified page userdir => 'user', # how many backlinks to show before hiding excess (0 to show all) numbacklinks => 10, # attempt to hardlink source files? (optimisation for large files) hardlink => 1, # force ikiwiki to use a particular umask (keywords public, group or private, or a number) #umask => 'public', # group for wrappers to run in #wrappergroup => 'ikiwiki', # extra library and plugin directory libdir => $srcdir.'/.library', # environment variables ENV => {}, # time zone name #timezone => 'Europe/Berlin', # regexp of normally excluded files to include #include => '^\\.htaccess$', # regexp of files that should be skipped #exclude => '^(*\\.private|Makefile)$', # specifies the characters that are allowed in source filenames wiki_file_chars => '-[:alnum:]+/.:_', # allow symlinks in the path leading to the srcdir (potentially insecure) #allow_symlinks_before_srcdir => 0, # cookie control #cookiejar => { # file => '' #}, # set custom user agent string for outbound HTTP requests e.g. when fetching aggregated RSS feeds #useragent => 'Wget/1.13.4 (linux-gnu)', ###################################################################### # core plugins # (editpage, git, htmlscrubber, inline, link, meta, parentlinks) ###################################################################### # git plugin # git hook to generate git_wrapper => $git_wrapper, # shell command for git_wrapper to run, in the background #git_wrapper_background_command => 'git push github', # mode for git_wrapper (can safely be made suid) #git_wrappermode => '0700', git_wrappermode => '06755', # git pre-receive hook to generate #git_test_receive_wrapper => '/git/wiki.git/hooks/pre-receive', # unix users whose commits should be checked by the pre-receive hook #untrusted_committers => [], # gitweb url to show file history ([[file]] substituted) historyurl => 'http://darnassus.sceen.net/gitweb/?p=hurd-web.git;a=history;f=[[file]];hb=HEAD', # gitweb url to show a diff ([[file]], [[sha1_to]], [[sha1_from]], [[sha1_commit]], and [[sha1_parent]] substituted) diffurl => 'http://darnassus.sceen.net/gitweb/?p=hurd-web.git;a=blobdiff;f=[[file]];h=[[sha1_to]];hp=[[sha1_from]];hb=[[sha1_commit]];hpb=[[sha1_parent]]', # where to pull and push changes (set to empty string to disable) gitorigin_branch => $gitorigin_branch, # branch that the wiki is stored in gitmaster_branch => 'master', # htmlscrubber plugin # PageSpec specifying pages not to scrub #htmlscrubber_skip => '!*/Discussion', # inline plugin # enable rss feeds by default? rss => 1, # enable atom feeds by default? atom => 1, # allow rss feeds to be used? #allowrss => 0, # allow atom feeds to be used? #allowatom => 0, # urls to ping (using XML-RPC) on feed update pingurl => [], ###################################################################### # auth plugins # (anonok, blogspam, httpauth, lockedit, moderatedcomments, # opendiscussion, openid, passwordauth, signinedit) ###################################################################### # anonok plugin # PageSpec to limit which pages anonymous users can edit #anonok_pagespec => '*/discussion', # blogspam plugin # PageSpec of pages to check for spam #blogspam_pagespec => 'postcomment(*)', # options to send to blogspam server #blogspam_options => 'blacklist=1.2.3.4,blacklist=8.7.6.5,max-links=10', # blogspam server XML-RPC url #blogspam_server => '', # httpauth plugin # url to redirect to when authentication is needed #cgiauthurl => 'http://example.com/wiki/auth/ikiwiki.cgi', # PageSpec of pages where only httpauth will be used for authentication #httpauth_pagespec => '!*/Discussion', # lockedit plugin # PageSpec controlling which pages are locked #locked_pages => '!*/Discussion', # moderatedcomments plugin # PageSpec matching users or comment locations to moderate #moderate_pagespec => '*', # openid plugin # url pattern of openid realm (default is cgiurl) #openid_realm => '', # url to ikiwiki cgi to use for openid authentication (default is cgiurl) # TODO. I don't know why I have to set this -- it's supposed to be the # default -- but if this is not set, the OpenID provider redirects us # to , which doesn't work. openid_cgiurl => 'http://darnassus.sceen.net/hurd-web.cgi', # passwordauth plugin # a password that must be entered when signing up for an account #account_creation_password => 's3cr1t', # cost of generating a password using Authen::Passphrase::BlowfishCrypt #password_cost => 8, ###################################################################### # format plugins # (creole, highlight, hnb, html, mdwn, otl, po, rawhtml, rst, # textile, txt) ###################################################################### # highlight plugin # types of source files to syntax highlight #tohighlight => '.c .h .cpp .pl .py Makefile:make', # location of highlight's filetypes.conf #filetypes_conf => '/etc/highlight/filetypes.conf', # location of highlight's langDefs directory #langdefdir => '/usr/share/highlight/langDefs', # mdwn plugin # enable multimarkdown features? #multimarkdown => 0, # disable use of markdown discount? # Testing on Ubuntu raring with libtext-markdown-discount-perl 0.04-1, # libmarkdown2 2.1.5a-1, using libtext-markdown-discount-perl instead # of libtext-markdown-perl introduces quite some (visible) differences # in how certains things are being rendered, and I'm not interested in # auditing all our *.mdwn files, so keep using libtext-markdown-perl. nodiscount => 1, # po plugin # master language (non-PO files) #po_master_language => 'en|English', # slave languages (translated via PO files) format: ll|Langname #po_slave_languages => [qw{fr|Français es|Español de|Deutsch}], # PageSpec controlling which pages are translatable #po_translatable_pages => '* and !*/Discussion', # internal linking behavior (default/current/negotiated) #po_link_to => 'current', ###################################################################### # special-purpose plugins # (osm, underlay) ###################################################################### # osm plugin # the default zoom when you click on the map link #osm_default_zoom => 15, # the icon shown on links and on the main map #osm_default_icon => 'ikiwiki/images/osm.png', # the alt tag of links, defaults to empty #osm_alt => '', # the output format for waypoints, can be KML, GeoJSON or CSV (one or many, comma-separated) #osm_format => 'KML', # the icon attached to a tag, displayed on the map for tagged pages #osm_tag_default_icon => 'icon.png', # Url for the OpenLayers.js file #osm_openlayers_url => 'http://www.openlayers.org/api/OpenLayers.js', # Layers to use in the map. Can be either the 'OSM' string or a type option for Google maps (GoogleNormal, GoogleSatellite, GoogleHybrid or GooglePhysical). It can also be an arbitrary URL in a syntax acceptable for OpenLayers.Layer.OSM.url parameter. #osm_layers => { # OSM => 'GoogleSatellite' #}, # Google maps API key, Google layer not used if missing, see https://code.google.com/apis/console/ to get an API key #osm_google_apikey => '', # underlay plugin # extra underlay directories to add #add_underlays => [qw{}], ###################################################################### # web plugins # (404, attachment, comments, editdiff, edittemplate, getsource, # google, goto, mirrorlist, remove, rename, repolist, search, # theme, userlist, websetup, wmd) ###################################################################### # attachment plugin # enhanced PageSpec specifying what attachments are allowed #allowed_attachments => 'virusfree() and mimetype(image/*) and maxsize(50kb)', # virus checker program (reads STDIN, returns nonzero if virus found) #virus_checker => 'clamdscan -', # comments plugin # PageSpec of pages where comments are allowed #comments_pagespec => 'blog/* and !*/Discussion', # PageSpec of pages where posting new comments is not allowed #comments_closed_pagespec => 'blog/controversial or blog/flamewar', # Base name for comments, e.g. "comment_" for pages like "sandbox/comment_12" #comments_pagename => '', # Interpret directives in comments? #comments_allowdirectives => 0, # Allow anonymous commenters to set an author name? #comments_allowauthor => 0, # commit comments to the VCS #comments_commit => 1, # Restrict formats for comments to (no restriction if empty) #comments_allowformats => 'mdwn txt', # getsource plugin # Mime type for returned source. #getsource_mimetype => 'text/plain; charset=utf-8', # mirrorlist plugin # list of mirrors #mirrorlist => {}, # generate links that point to the mirrors' ikiwiki CGI #mirrorlist_use_cgi => 1, # repolist plugin # URIs of repositories containing the wiki's source repositories => [qw{git://git.savannah.gnu.org/hurd/web.git http://git.savannah.gnu.org/r/hurd/web.git git://darnassus.sceen.net/~hurd-web/hurd-web.git http://darnassus.sceen.net/gitweb/?p=hurd-web.git}], # search plugin # path to the omega cgi program #omega_cgi => '/usr/lib/cgi-bin/omega/omega', # use google site search rather than internal xapian index? #google_search => 1, # theme plugin # name of theme to enable #theme => 'actiontabs', # websetup plugin # list of plugins that cannot be enabled/disabled via the web interface #websetup_force_plugins => [], # list of additional setup field keys to treat as unsafe #websetup_unsafe => [], # show unsafe settings, read-only, in web interface? #websetup_show_unsafe => 1, ###################################################################### # widget plugins # (calendar, color, conditional, cutpaste, date, format, fortune, # graphviz, haiku, headinganchors, img, linkmap, listdirectives, # map, more, orphans, pagecount, pagestats, poll, polygen, # postsparkline, progress, shortcut, sparkline, table, template, # teximg, toc, toggle, version) ###################################################################### # calendar plugin # base of the archives hierarchy #archivebase => 'archives', # PageSpec of pages to include in the archives; used by ikiwiki-calendar command #archive_pagespec => 'page(posts/*) and !*/Discussion', # listdirectives plugin # directory in srcdir that contains directive descriptions #directive_description_dir => 'ikiwiki/directive', # teximg plugin # Should teximg use dvipng to render, or dvips and convert? #teximg_dvipng => '', # LaTeX prefix for teximg plugin #teximg_prefix => '\\documentclass{article} #\\usepackage[utf8]{inputenc} #\\usepackage{amsmath} #\\usepackage{amsfonts} #\\usepackage{amssymb} #\\pagestyle{empty} #\\begin{document} #', # LaTeX postfix for teximg plugin #teximg_postfix => '\\end{document}', ###################################################################### # other plugins # (aggregate, autoindex, brokenlinks, camelcase, ddate, embed, # favicon, field, filecheck, flattr, getfield, goodstuff, # htmlbalance, localstyle, notifyemail, pagetemplate, pingee, # pinger, prettydate, recentchanges, recentchangesdiff, # relativedate, rsync, sidebar, smiley, sortnaturally, tag, # testpagespec, trail, transient, ymlfront) ###################################################################### # aggregate plugin # enable aggregation to internal pages? #aggregateinternal => 1, # allow aggregation to be triggered via the web? #aggregate_webtrigger => 0, # autoindex plugin # commit autocreated index pages #autoindex_commit => 1, # camelcase plugin # list of words to not turn into links #camelcase_ignore => [], # field plugin # simple registration of fields by plugin #field_register => {meta => 'last'}, # allow config settings to be queried #field_allow_config => 0, # fields flagged as tag-fields #field_tags => {BookAuthor => '/books/authors'}, # flattr plugin # userid or user name to use by default for Flattr buttons #flattr_userid => 'joeyh', # pinger plugin # how many seconds to try pinging before timing out #pinger_timeout => 15, # prettydate plugin # format to use to display date #prettydateformat => '%X, %B %o, %Y', # recentchanges plugin # name of the recentchanges page recentchangespage => 'recent_changes', # number of changes to track recentchangesnum => 100, # rsync plugin # command to run to sync updated pages #rsync_command => 'rsync -qa --delete . user@host:/path/to/docroot/', # sidebar plugin # show sidebar page on all pages? #global_sidebars => 1, # tag plugin # parent page tags are located under tagbase => 'tag', # autocreate new tag pages? #tag_autocreate => 1, # commit autocreated tag pages #tag_autocreate_commit => 1, # ymlfront plugin # delimiters of YAML data ymlfront_delim => [qw{--YAML-START-- --YAML-END--}], })