From 9dbdb3590c116ee675ae51163c3e1a31a064d6c5 Mon Sep 17 00:00:00 2001 From: Michael Olson Date: Fri, 15 Jun 2007 02:38:57 +0000 Subject: [PATCH] Update RelaxNG schema 2007-06-14 Michael Olson * README: Mention that RelaxNG schema is in etc/ directory. * etc/muse.rnc: Increment version number to 1.0. Fix several nested emphasis and nested lists edge cases. Move here from examples/. * lisp/muse-publish.el (muse-publish-markup-table) (muse-publish-markup-table-el): Include a newline in the return string, so that paragraph detection does not get confused. git-archimport-id: mwolson@gnu.org--2006/muse--main--1.0--patch-355 --- ChangeLog | 10 +++++++ README | 4 +-- etc/emacs-wiki-migration.txt | 64 +++++++++++++++++++++++++++++++++++++++++++- {examples => etc}/muse.rnc | 43 ++++++++++++++++++++++++----- lisp/muse-publish.el | 4 +-- 5 files changed, 113 insertions(+), 12 deletions(-) rename {examples => etc}/muse.rnc (86%) diff --git a/ChangeLog b/ChangeLog index 599a25f..aed337f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,12 +1,22 @@ 2007-06-14 Michael Olson + * README: Mention that RelaxNG schema is in etc/ directory. + * etc/emacs-wiki-migration.txt: New document that explains how to migrate from emacs-wiki to Muse. + * etc/muse.rnc: Increment version number to 1.0. Fix several + nested emphasis and nested lists edge cases. Move here from + examples/. + * lisp/muse-mode.el (muse-mode-map): Permit C-c C-M-t to do the same thing as C-c C-S-t, since the former works better in the console. Thanks to Leo for the suggestion. + * lisp/muse-publish.el (muse-publish-markup-table) + (muse-publish-markup-table-el): Include a newline in the return + string, so that paragraph detection does not get confused. + * lisp/muse.el (muse-with-temp-buffer): Docfix. * texi/muse.texi (Keystroke Summary): Document the C-c C-M-t diff --git a/README b/README index 1f9840f..4e90b29 100644 --- a/README +++ b/README @@ -20,8 +20,8 @@ Directory contents The directory structure is as follows. -etc :: Miscellaneous files like the emacs-wiki migration guide and the - list of ideas for the future. +etc :: Miscellaneous files like the emacs-wiki migration guide, the + list of ideas for the future, and a RelaxNG schema for Muse XML. contrib :: Files that are not a part of Muse proper, but are useful enough to be bundled with Muse. diff --git a/etc/emacs-wiki-migration.txt b/etc/emacs-wiki-migration.txt index 913a8c2..0330fd7 100644 --- a/etc/emacs-wiki-migration.txt +++ b/etc/emacs-wiki-migration.txt @@ -7,13 +7,29 @@ Features Muse only --------- +Features that exist in Muse, but not emacs-wiki: + - Nested lists. - - Publishing to other formats, such as LaTeX and Docbook. + - Publishing to multiple other formats, such as LaTeX and Docbook. - Escaping special characters automatically throughout the entire document, so that you don't have to. + - Ability to use a different header and footer in different projects, + by creating your own publishing style. + + - Ability to surround some Muse markup with the tag, which + causes is to not be treated as markup. This is useful for + publishing the "|" character as-is, without turning the current + line into a table. + + - Improved detection of paragraphs, which results in HTML that meets + various W3C standards. + + - Journalling mode that is capable of publishing to RSS 2.0 or RSS + 1.0 (RDF). + emacs-wiki only --------------- @@ -51,6 +67,52 @@ for them. Specifying Projects =================== +Here is an example emacs-wiki-projects setting. + +(setq emacs-wiki-projects + '(("WebWiki" . + ((emacs-wiki-directories . ("~/WebWiki")) + (emacs-wiki-project-server-prefix . "/web/") + (emacs-wiki-publishing-directory + . "~/public_html/web"))) + ("ProjectsWiki" . + ((emacs-wiki-directories . ("~/ProjectsWiki")) + (emacs-wiki-project-server-prefix . "/projects/") + (emacs-wiki-publishing-directory + . "~/public_html/projects"))))) + +And here is the corresponding muse-project-alist setting. + +(setq muse-project-alist + '(("Website" ("~/WebWiki" + :default "WelcomePage") + (:base "html" + :path "~/public_html/web")) + ("Projects" ("~/ProjectsWiki" + :default "WelcomePage") + (:base "html" + :path "~/public_html/projects")))) + +Note that there is no need to specify a prefix. Muse will +automatically figure out what the relative paths in links to Muse +files should be. + +If you want to be able to link to another project entry that is on a +different domain, then you must use :base-url in every project entry. +An example of this follows. + +(setq muse-project-alist + '(("Website" ("~/WebWiki" + :default "WelcomePage") + (:base "html" + :base-url "http://web.example.org/web" + :path "~/public_html_1/web")) + ("Projects" ("~/ProjectsWiki" + :default "WelcomePage") + (:base "html" + :base-url "http://projects.example.org/projects" + :path "~/public_html_2/projects")))) + Special Topics ============== diff --git a/examples/muse.rnc b/etc/muse.rnc similarity index 86% rename from examples/muse.rnc rename to etc/muse.rnc index 9c976d0..a1e6a4c 100644 --- a/examples/muse.rnc +++ b/etc/muse.rnc @@ -1,8 +1,8 @@ namespace a = "http://relaxng.org/ns/compatibility/annotations/1.0" namespace rng = "http://relaxng.org/ns/structure/1.0" -# Emacs Muse RELAX NG Schema v. 0.3 -# Copyright (C) 2005, 2006 Free Software Foundation, Inc. +# Emacs Muse RELAX NG Schema v. 1.0 +# Copyright (C) 2005, 2006, 2007 Free Software Foundation, Inc. # Author: Brad Collins (brad AT chenla DOT org) # Maintainer: Michael Olson (mwolson AT gnu DOT org) @@ -42,6 +42,14 @@ namespace rng = "http://relaxng.org/ns/structure/1.0" # # Version 0.3: # - Permit lists to be nested. +# +# Version 1.0: +# - Permit paragraph-level markup, such as links, to appear in +# table lines. +# - Support multiple definitions in a definition list. +# - Permit a list to be nested inside of a definition. +# - Permit a link to be inside of a title. +# - Permit emphasis to be inside of other emphasis. # Contributors: @@ -76,7 +84,9 @@ muse.element.pageinfo = element pageinfo { & muse.element.pubdate? }? ## page title element -muse.element.title = element title { text }? +muse.element.title = element title { + muse.element.link* + & text }? ## page author element muse.element.author = element author { text }? @@ -150,7 +160,7 @@ muse.element.list = element list { muse.element.item = element item { muse.element.term? - & muse.element.definition? + & muse.element.definition* & muse.element.code* & muse.element.format* & muse.element.image* @@ -182,6 +192,7 @@ muse.element.definition = element definition { & muse.element.image* & muse.element.link* & muse.element.image* + & muse.element.list* & text }? # ------------------------------------------------ @@ -193,6 +204,8 @@ muse.element.definition = element definition { muse.element.format = element format { muse.attribute.type? & muse.attribute.level? + & muse.element.code* + & muse.element.format* & text }? ## code element @@ -254,10 +267,26 @@ muse.element.tfoot = element tfoot { muse.element.tr* }? ## table row element muse.element.tr = element tr { muse.element.td* - & muse.element.th*}? + & muse.element.th* }? ## td element -muse.element.td = element td { text }? +muse.element.td = element td { + muse.element.code* + & muse.element.format* + & muse.element.image* + & muse.element.link* + & muse.element.image* + & muse.element.anchor* + & muse.element.footnote* + & text }? ## th element -muse.element.th = element th { text }? +muse.element.th = element th { + muse.element.code* + & muse.element.format* + & muse.element.image* + & muse.element.link* + & muse.element.image* + & muse.element.anchor* + & muse.element.footnote* + & text }? diff --git a/lisp/muse-publish.el b/lisp/muse-publish.el index 9c78e6a..10056b9 100644 --- a/lisp/muse-publish.el +++ b/lisp/muse-publish.el @@ -1427,7 +1427,7 @@ The existing region will be removed, except for initial blank lines." (muse-publish-trim-table (cons (1- longest) (nreverse field-list))))))) (defun muse-publish-markup-table () - "Style does not support tables.") + "Style does not support tables.\n") (defun muse-publish-table-el-table (variant) "Publish table.el-style tables in the format given by VARIANT." @@ -1458,7 +1458,7 @@ The existing region will be removed, except for initial blank lines." (muse-publish-table-el-table 'latex)) ((muse-style-derived-p 'docbook) (muse-publish-table-el-table 'cals)) - (t "Style does not support table.el tables."))) + (t "Style does not support table.el tables.\n"))) (defun muse-publish-escape-specials-in-string (string &optional context) "Escape specials in STRING using style-specific :specials. -- 2.11.4.GIT