summaryrefslogtreecommitdiffstats
path: root/emacs.d/elisp/muse/muse-blosxom.el
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2011-03-17 11:36:56 +0100
committerGravatar Tom Willemsen2011-03-17 11:37:07 +0100
commit82b8ca280905ea284730f228ae082c42c348e818 (patch)
tree0c60d42c717905632c32ad80d83397d59c7d5036 /emacs.d/elisp/muse/muse-blosxom.el
parent04b349e8e00c2720fed4b14b7a1e0616db27ad2f (diff)
downloaddotfiles-82b8ca280905ea284730f228ae082c42c348e818.tar.gz
dotfiles-82b8ca280905ea284730f228ae082c42c348e818.zip
Big emacs cleanup, must be lighter
Diffstat (limited to 'emacs.d/elisp/muse/muse-blosxom.el')
-rw-r--r--emacs.d/elisp/muse/muse-blosxom.el306
1 files changed, 0 insertions, 306 deletions
diff --git a/emacs.d/elisp/muse/muse-blosxom.el b/emacs.d/elisp/muse/muse-blosxom.el
deleted file mode 100644
index 78038d7..0000000
--- a/emacs.d/elisp/muse/muse-blosxom.el
+++ /dev/null
@@ -1,306 +0,0 @@
-;;; muse-blosxom.el --- publish a document tree for serving by (py)Blosxom
-
-;; Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010
-;; Free Software Foundation, Inc.
-
-;; Author: Michael Olson <mwolson@gnu.org>
-;; Date: Wed, 23 March 2005
-
-;; This file is part of Emacs Muse. It is not part of GNU Emacs.
-
-;; Emacs Muse is free software; you can redistribute it and/or modify
-;; it under the terms of the GNU General Public License as published
-;; by the Free Software Foundation; either version 3, or (at your
-;; option) any later version.
-
-;; Emacs Muse is distributed in the hope that it will be useful, but
-;; WITHOUT ANY WARRANTY; without even the implied warranty of
-;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-;; General Public License for more details.
-
-;; You should have received a copy of the GNU General Public License
-;; along with Emacs Muse; see the file COPYING. If not, write to the
-;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-;; Boston, MA 02110-1301, USA.
-
-;;; Commentary:
-
-;; The Blosxom publishing style publishes a tree of categorised files
-;; to a mirrored tree of stories to be served by blosxom.cgi or
-;; pyblosxom.cgi.
-;;
-;; Serving entries with (py)blosxom
-;; --------------------------------
-;;
-;; Each Blosxom file must include `#date yyyy-mm-dd', or optionally
-;; the longer `#date yyyy-mm-dd-hh-mm', a title (using the `#title'
-;; directive) plus whatever normal content is desired.
-;;
-;; The date directive is not used directly by (py)blosxom or this
-;; program. You need to find two additional items to make use of this
-;; feature.
-;;
-;; 1. A script to gather date directives from the entire blog tree
-;; into a single file. The file must associate a blog entry with
-;; a date.
-;;
-;; 2. A plugin for (py)blosxom that reads this file.
-;;
-;; These 2 things are provided for pyblosxom in the contrib/pyblosxom
-;; subdirectory. `getstamps.py' provides the 1st service, while
-;; `hardcodedates.py' provides the second service. Eventually it is
-;; hoped that a blosxom plugin and script will be found/written.
-;;
-;; Alternately, the pyblosxom metadate plugin may be used. On the
-;; plus side, there is no need to run a script to gather the date. On
-;; the downside, each entry is read twice rather than once when the
-;; page is rendered. Set the value of muse-blosxom-use-metadate to
-;; non-nil to enable adding a #postdate directive to all published
-;; files. You can do this by:
-;;
-;; M-x customize-variable RET muse-blosxom-use-metadate RET
-;;
-;; With the metadate plugin installed in pyblosxom, the date set in
-;; this directive will be used instead of the file's modification
-;; time. The plugin is included with Muse at
-;; contrib/pyblosxom/metadate.py.
-;;
-;; Generating a Muse project entry
-;; -------------------------------
-;;
-;; Muse-blosxom has some helper functions to make specifying
-;; muse-blosxom projects a lot easier. An example follows.
-;;
-;; (setq muse-project-alist
-;; `(("blog"
-;; (,@(muse-project-alist-dirs "~/path/to/blog-entries")
-;; :default "index")
-;; ,@(muse-project-alist-styles "~/path/to/blog-entries"
-;; "~/public_html/blog"
-;; "blosxom-xhtml")
-;; )))
-;;
-;; Note that we need a backtick instead of a single quote on the
-;; second line of this example.
-;;
-;; Creating new blog entries
-;; -------------------------
-;;
-;; There is a function called `muse-blosxom-new-entry' that will
-;; automate the process of making a new blog entry. To make use of
-;; it, do the following.
-;;
-;; - Customize `muse-blosxom-base-directory' to the location that
-;; your blog entries are stored.
-;;
-;; - Assign the `muse-blosxom-new-entry' function to a key sequence.
-;; I use the following code to assign this function to `C-c p l'.
-;;
-;; (global-set-key "\C-cpl" 'muse-blosxom-new-entry)
-;;
-;; - You should create your directory structure ahead of time under
-;; your base directory. These directories, which correspond with
-;; category names, may be nested.
-;;
-;; - When you enter this key sequence, you will be prompted for the
-;; category of your entry and its title. Upon entering this
-;; information, a new file will be created that corresponds with
-;; the title, but in lowercase letters and having special
-;; characters converted to underscores. The title and date
-;; directives will be inserted automatically.
-;;
-;; Using tags
-;; ----------
-;;
-;; If you wish to keep all of your blog entries in one directory and
-;; use tags to classify your entries, set `muse-blosxom-use-tags' to
-;; non-nil.
-;;
-;; For this to work, you will need to be using the PyBlosxom plugin at
-;; http://pyblosxom.sourceforge.net/blog/registry/meta/Tags.
-
-;;; Contributors:
-
-;; Gary Vaughan (gary AT gnu DOT org) is the original author of
-;; `emacs-wiki-blosxom.el', which is the ancestor of this file.
-
-;; Brad Collins (brad AT chenla DOT org) ported this file to Muse.
-
-;; Björn Lindström (bkhl AT elektrubadur DOT se) made many valuable
-;; suggestions.
-
-;; Sasha Kovar (sasha AT arcocene DOT org) fixed
-;; muse-blosxom-new-entry when using tags and also implemented support
-;; for the #postdate directive.
-
-;;; Code:
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Muse Blosxom Publishing
-;;
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-
-(require 'muse-project)
-(require 'muse-publish)
-(require 'muse-html)
-
-(defgroup muse-blosxom nil
- "Options controlling the behavior of Muse Blosxom publishing.
-See `muse-blosxom' for more information."
- :group 'muse-publish)
-
-(defcustom muse-blosxom-extension ".txt"
- "Default file extension for publishing Blosxom files."
- :type 'string
- :group 'muse-blosxom)
-
-(defcustom muse-blosxom-header
- "<lisp>(concat (muse-publishing-directive \"title\") \"\\n\"
- (when muse-blosxom-use-metadate
- (let ((date (muse-publishing-directive \"date\")))
- (when date (concat \"#postdate \"
- (muse-blosxom-format-date date) \"\\n\"))))
- (when muse-blosxom-use-tags
- (let ((tags (muse-publishing-directive \"tags\")))
- (when tags (concat \"#tags \" tags \"\\n\")))))</lisp>"
- "Header used for publishing Blosxom files. This may be text or a filename."
- :type 'string
- :group 'muse-blosxom)
-
-(defcustom muse-blosxom-footer ""
- "Footer used for publishing Blosxom files. This may be text or a filename."
- :type 'string
- :group 'muse-blosxom)
-
-(defcustom muse-blosxom-base-directory "~/Blog"
- "Base directory of blog entries.
-This is the top-level directory where your Muse blog entries may be found."
- :type 'directory
- :group 'muse-blosxom)
-
-(defcustom muse-blosxom-use-tags nil
- "Determine whether or not to enable use of the #tags directive.
-
-If you wish to keep all of your blog entries in one directory and
-use tags to classify your entries, set `muse-blosxom-use-tags' to
-non-nil.
-
-For this to work, you will need to be using the PyBlosxom plugin
-at http://pyblosxom.sourceforge.net/blog/registry/meta/Tags."
- :type 'boolean
- :group 'muse-blosxom)
-
-(defcustom muse-blosxom-use-metadate nil
- "Determine whether or not to use the #postdate directive.
-
-If non-nil, published entries include the original date (as specified
-in the muse #date line) which can be read by the metadate PyBlosxom
-plugin.
-
-For this to work, you will need to be using the PyBlosxom plugin
-at http://pyblosxom.sourceforge.net/blog/registry/date/metadate."
- :type 'boolean
- :group 'muse-blosxom)
-
-;; Maintain (published-file . date) alist, which will later be written
-;; to a timestamps file; not implemented yet.
-
-(defvar muse-blosxom-page-date-alist nil)
-
-(defun muse-blosxom-update-page-date-alist ()
- "Add a date entry to `muse-blosxom-page-date-alist' for this page."
- (when muse-publishing-current-file
- ;; Make current file be relative to base directory
- (let ((rel-file
- (concat
- (file-name-as-directory
- (or (muse-publishing-directive "category")
- (file-relative-name
- (file-name-directory
- (expand-file-name muse-publishing-current-file))
- (file-truename muse-blosxom-base-directory))))
- (file-name-nondirectory muse-publishing-current-file))))
- ;; Strip the file extension
- (when muse-ignored-extensions-regexp
- (setq rel-file (save-match-data
- (and (string-match muse-ignored-extensions-regexp
- rel-file)
- (replace-match "" t t rel-file)))))
- ;; Add to page-date alist
- (add-to-list
- 'muse-blosxom-page-date-alist
- `(,rel-file . ,(muse-publishing-directive "date"))))))
-
-;; Enter a new blog entry
-
-(defun muse-blosxom-title-to-file (title)
- "Derive a file name from the given TITLE.
-
-Feel free to overwrite this if you have a different concept of what
-should be allowed in a filename."
- (muse-replace-regexp-in-string (concat "[^-." muse-regexp-alnum "]")
- "_" (downcase title)))
-
-(defun muse-blosxom-format-date (date)
- "Convert a date string to PyBlosxom metadate plugin format."
- (apply #'format "%s-%s-%s %s:%s" (split-string date "-")))
-
-;;;###autoload
-(defun muse-blosxom-new-entry (category title)
- "Start a new blog entry with given CATEGORY.
-The filename of the blog entry is derived from TITLE.
-The page will be initialized with the current date and TITLE."
- (interactive
- (list
- (if muse-blosxom-use-tags
- (let ((tag "foo")
- (tags nil))
- (while (progn (setq tag (read-string "Tag (RET to continue): "))
- (not (string= tag "")))
- (add-to-list 'tags tag t))
- tags)
- (funcall muse-completing-read-function
- "Category: "
- (mapcar 'list (muse-project-recurse-directory
- muse-blosxom-base-directory))))
- (read-string "Title: ")))
- (let ((file (muse-blosxom-title-to-file title)))
- (muse-project-find-file
- file "blosxom" nil
- (if muse-blosxom-use-tags
- (directory-file-name muse-blosxom-base-directory)
- (concat (directory-file-name muse-blosxom-base-directory)
- "/" category))))
- (goto-char (point-min))
- (insert "#date " (format-time-string "%Y-%m-%d-%H-%M")
- "\n#title " title)
- (if muse-blosxom-use-tags
- (if (> (length category) 0)
- (insert (concat "\n#tags " (mapconcat #'identity category ","))))
- (unless (string= category "")
- (insert (concat "\n#category " category))))
- (insert "\n\n")
- (forward-line 2))
-
-;;; Register the Muse Blosxom Publisher
-
-(muse-derive-style "blosxom-html" "html"
- :suffix 'muse-blosxom-extension
- :link-suffix 'muse-html-extension
- :header 'muse-blosxom-header
- :footer 'muse-blosxom-footer
- :after 'muse-blosxom-update-page-date-alist
- :browser 'find-file)
-
-(muse-derive-style "blosxom-xhtml" "xhtml"
- :suffix 'muse-blosxom-extension
- :link-suffix 'muse-xhtml-extension
- :header 'muse-blosxom-header
- :footer 'muse-blosxom-footer
- :after 'muse-blosxom-update-page-date-alist
- :browser 'find-file)
-
-(provide 'muse-blosxom)
-
-;;; muse-blosxom.el ends here