From c314f66a3738cab3f71ceda0da8f3abf93360e24 Mon Sep 17 00:00:00 2001 From: Michael Olson Date: Sun, 20 Jul 2008 17:30:10 -0700 Subject: [PATCH] Initial check-in of ikiwiki publishing example. --- examples/ikiwiki/muse-init.el | 106 +++++++++++++++++++++++++++++++++++++++ examples/ikiwiki/service/log/run | 3 ++ examples/ikiwiki/service/run | 7 +++ 3 files changed, 116 insertions(+) create mode 100644 examples/ikiwiki/muse-init.el create mode 100755 examples/ikiwiki/service/log/run create mode 100755 examples/ikiwiki/service/run diff --git a/examples/ikiwiki/muse-init.el b/examples/ikiwiki/muse-init.el new file mode 100644 index 0000000..8e058d1 --- /dev/null +++ b/examples/ikiwiki/muse-init.el @@ -0,0 +1,106 @@ +;;; muse-init.el --- Use Emacs Muse to publish ikiwiki documents + +;; The code in this file may be used, distributed, and modified +;; without restriction. + +;;; Setup + +(add-to-list 'load-path (expand-file-name "~ikiwiki/elisp/muse/lisp")) + +;; Initialize +(require 'muse) ; load generic module +(require 'muse-html) ; load (X)HTML publishing style +(require 'muse-project) ; load support for projects +(require 'muse-wiki) ; load Wiki support + +;;; Settings + +;; Styles +(muse-derive-style "ikiwiki" "xhtml" + :header "" + :footer "") + +;; New variables +(defvar muse-ikiwiki-project "HCoopWiki" + "Name of the project to publish using ikiwiki.") +(defvar muse-ikiwiki-source "/afs/hcoop.net/common/ikiwiki/repo" + "Source directory for Muse files.") +(defvar muse-ikiwiki-dest "/afs/hcoop.net/common/ikiwiki/dest" + "Destination directory for published files.") + +;; Project listing +(setq muse-project-alist + `((,muse-ikiwiki-project + (,@(muse-project-alist-dirs muse-ikiwiki-source)) + ;; Publish this directory and its subdirectories. Arguments + ;; are as follows. The above `muse-project-alist-dirs' part + ;; is also needed. + ;; 1. Source directory + ;; 2. Output directory + ;; 3. Publishing style + ;; remainder: Other things to put in every generated style + ,@(muse-project-alist-styles muse-ikiwiki-source + muse-ikiwiki-dest + "ikiwiki")))) + +;; Wiki settings +(setq muse-wiki-allow-nonexistent-wikiword t + muse-wiki-match-all-project-files t + muse-wiki-interwiki-delimiter "::") +(add-to-list 'muse-publish-desc-transforms 'muse-wiki-publish-pretty-interwiki) +(add-to-list 'muse-publish-desc-transforms 'muse-wiki-publish-pretty-title) +(setq muse-wiki-interwiki-alist + '(("EmacsWiki" . "http://www.emacswiki.org/cgi-bin/wiki/") + ("UbuntuLinux" . "http://ubuntulinux.org/"))) + +;; Permitted modes for to colorize +(setq muse-html-src-allowed-modes + '("ada" "apache" "asm" "awk" "c++" "c" "cc" "change-log" "context" + "css" "diary" "diff" "dns" "domtool" "emacs-lisp" "f90" "fortran" + "fundamental" "html" "java" "jython" "latex" "lisp" "lua" "m4" + "makefile" "markdown" "matlab" "maxima" "message" "modula-2" "muse" + "nroff" "octave" "org" "outline" "pascal" "perl" "ps" "python" "rst" + "ruby" "scheme" "sgml" "sh" "slang" "sml" "sml-cm" "sml-lex" "sml-yacc" + "sql" "tcl" "tex" "texinfo" "xml" "zone")) +;; In case someone does +(setq muse-colors-evaluate-lisp-tags nil + muse-colors-inline-images nil) +;; In case someone does +(require 'org) +(setq org-inhibit-startup t + org-table-formula-evaluate-inline nil) + +;; Don't allow dangerous tags to be published +(setq muse-publish-enable-dangerous-tags nil) + +;;; Functions + +(defun muse-ikiwiki-publish (file &optional force) + "Publish a single file for ikiwiki." + (if (not (stringp file)) + (message "Error: No file given to publish") + (let* ((project (muse-project muse-ikiwiki-project)) + (styles (and project (cddr project))) + (muse-current-project project) + (muse-batch-publishing-p t)) + (if (not project) + (message "Error: project `%s' does not exist" muse-ikiwiki-project) + (muse-project-publish-file file styles force))))) + +;;; Custom variables + +(custom-set-variables + '(muse-html-charset-default "utf-8") + '(muse-html-encoding-default (quote utf-8)) + '(muse-html-meta-content-encoding (quote utf-8)) + '(muse-publish-comments-p t) + '(muse-publish-date-format "%b. %e, %Y")) +(custom-set-faces + '(muse-bad-link ((t (:foreground "DeepPink" :underline "DeepPink" :weight bold))))) + +;;; Start server + +(require 'server) +(server-start) + +;;; muse-init.el ends here diff --git a/examples/ikiwiki/service/log/run b/examples/ikiwiki/service/log/run new file mode 100755 index 0000000..4f6e308 --- /dev/null +++ b/examples/ikiwiki/service/log/run @@ -0,0 +1,3 @@ +#!/bin/sh + +exec /usr/bin/svlogd -tt /var/log/ikiwiki/muse diff --git a/examples/ikiwiki/service/run b/examples/ikiwiki/service/run new file mode 100755 index 0000000..7b83380 --- /dev/null +++ b/examples/ikiwiki/service/run @@ -0,0 +1,7 @@ +#!/bin/bash + +exec 2>&1 +exec sudo -u ikiwiki /usr/bin/k5start -U -K 540 -t \ + -f /etc/keytabs/user.daemon/ikiwiki -- \ + screen -c ~ikiwiki/.screenrc -D -m \ + emacs -nw -q -l ~ikiwiki/elisp/muse-init.el -- 2.11.4.GIT