From 82b8ca280905ea284730f228ae082c42c348e818 Mon Sep 17 00:00:00 2001 From: Tom Willemsen Date: Thu, 17 Mar 2011 11:36:56 +0100 Subject: Big emacs cleanup, must be lighter --- emacs.d/elisp/muse/muse-blosxom.el | 306 ------------------------------------- 1 file changed, 306 deletions(-) delete mode 100644 emacs.d/elisp/muse/muse-blosxom.el (limited to 'emacs.d/elisp/muse/muse-blosxom.el') 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 -;; 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 - "(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\")))))" - "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 -- cgit v1.2.3-54-g00ecf