Add COPYING file; update headers.
[muse-el.git] / NEWS
blob3bd93cd43894cd441e52f08d552c9524fa322ca6
1 Emacs Muse NEWS --- History of user-visible changes    -*- outline -*-
3 * Changes in Muse 3.02.6
5 ** Building Muse
7 *** Autoloads for Muse are now generated in the muse-autoloads.el
8 file at build time.
10 ** HTML
12 *** Don't escape "%" and "+" in URLs.
14 ** Muse Mode
16 *** <lisp> tags are now evaluated at display time.
17 The actual contents of the buffer will not change, just the displayed
18 text.  To toggle this behavior, set `muse-colors-evaluate-lisp-tags'.
20 ** Publishing
22 *** When errors happen during publishing, a more explanatory message
23 is displayed.
25 *** It is now possible to specify non-breaking-space with "~~"
26 (two tildes).  This helps prevent proper names from being split up in
27 the output.
29 *** Escape specials in all forms of emphasis.
31 *** Escape "[" and "]" in links that are entered using muse-make-link.
33 *** Errors from invalid lisp code in a <lisp> tag will be published
34 as a comment.  If you have `muse-publish-comments-p' set to nil, the
35 effect is to remove the error message.
37 *** Fix several publishing issues involving comments and numbered lists.
39 ** Wiki
41 *** Interwiki links in extended links that have special characters are
42 now handled properly.
44 ** XML
46 *** The XML publishing style is now considered stable.
47 Its schema is available in `examples/muse.rnc'.
49 * Changes in Muse 3.02.5
51 ** LaTeX
53 *** Use a better algorithm for determining how many times we need to
54 call pdflatex for publishing.  Anything with a Table of Contents needs
55 2 passes.
57 ** Muse Mode
59 *** The 3 levels of emphasis now have corresponding muse-emphasis-N faces.
60 This permits the user to customize them, which may be useful if a font
61 does not have italic and/or bold versions.
63 *** Visiting pages with anchors works better.
65 *** Fix fill bug with semicolons in the middle of paragraphs.
67 *** Fix a bug with editing the link at point.
69 *** Fix a display bug with text like =<verbatim><example></verbatim>=.
71 ** Project settings
73 *** Fix an edge case that yielded a stringp: nil error.
75 *** Prevent auto-save files from being recognized as Muse files.
77 ** Wiki
79 *** By default, WikiWords can have consecutive capital letters.
81 *** Fix an error that occurs when muse-colors is not loaded.
83 *** It is now possible to specify a suffix for WikiWord links.
84 For example: WikiName''''s.  The WikiName part will be displayed and
85 colored as a link, but the "s" will be left alone.
87 * Changes in Muse 3.02.02
89 ** Configuration
91 *** A bug with customizing `muse-project-alist' has been fixed.
93 *** We use a file extension for Muse files by default.
94 To obtain the old behavior, set `muse-file-extension' to nil and
95 `muse-mode-auto-p' to t.
97 To go along with the new behavior, be sure to rename all of your Muse
98 files to have a ".muse" extension.
100 *** New option: `muse-wiki-ignore-bare-project-names'.
101 This causes Muse to ignore bare project names if specified.  The
102 default is to turn bare project names into links.
104 *** New option: `muse-publish-comments-p'.
105 This causes Muse to publish comments as markup.  The default is to
106 remove comments before publishing rather than trying to mark them up.
108 *** New option: `muse-wiki-allow-nonexistent-wikiword'.
109 Enabling this will cause WikiWords with no corresponding file to be
110 colored as bad links.  The default is not to color them and turn them
111 into links.
113 ** Muse Mode
115 *** An error with intangible links has been fixed.
117 *** Visiting a page with an anchor works better than before.
119 *** Flyspell behaves better with Emacs21 than before.
121 *** Links to nonexistent files will be colored red by default.
122 This happened previously, but the algorithm was buggy and didn't cover
123 implicit links.
125 ** Programming
127 *** A convenience macro called `with-muse-project' has been added.
128 This allows a code block to be executed after changing the current
129 Muse project.  It is analogous to emacs-wiki's
130 `with-emacs-wiki-project' function.
132 ** Publishing
134 *** An issue involving anchors at the end of a line has been
135 addressed.
137 *** Non-word characters are now allowed before an anchor.
139 *** Comments may now be published, if desired.
140 This behavior may be controlled with the `muse-publish-comments-p'
141 option.  The default is to remove comments before publishing rather
142 than trying to mark them up.
144 *** Publishing directives may now include a dash character.
146 ** LaTeX publishing
148 *** A bug with footnotes has been addressed.
149 An attempt has been made to make generated footnote markup look more
150 "natural" to experienced LaTeX users.
152 *** Table headers are underlined and table footers are overlined.
154 *** PDF publishing will cause pdflatex to be called as needed.
155 The previous behavior was to always call pdflatex twice.  Currently,
156 if pdflatex succeeds, it will not be called again.  Otherwise, call it
157 up to three times.
159 *** Escaping of special characters should be drastically improved.
160 An attempt has been made to get escaping done right in most contexts.
161 The only quirk is that you must surround dollar signs with equal signs
162 to ensure escaping.  This makes publishing PDF documents much more
163 useful.
165 ** TexInfo publishing
167 *** An attempt was made to hone some of the markup.
169 * Changes in Muse 3.02.01
171 ** Configuration
173 *** `muse-project-alist' -- This variable should now save customizations
174 to the correct form in the .emacs file.  Before, it was saving an
175 intermediate form of the variable.
177 If you have used the customize interface in the previous release of
178 Muse to set `muse-project-alist', please do the following to import
179 your settings.
181  - Open your .emacs file.
182  - Move the point to where `muse-project-alist' is set.
183  - Type `M-: (setq muse-project-alist-using-customize t) RET'.
184  - Type `C-M-x'.
185  - Type `M-x customize-save-variable RET muse-project-alist RET'.
187 *** `muse-project-alist' -- A bug involving the deleting of items
188 using Emacs21 and XEmacs21 has been fixed.
190 ** Muse Mode
192 *** Links should no longer prevent moving the point, and help text for
193 links should no longer cause errors to occur.
195 ** Publishing
197 *** If 2 or more blank lines separate list or table items, each item
198 will be published in a separate list or table.
200 *** The #date directive is now populated by default with the last
201 modified time of each file, rather than the current time of day.  To
202 use this value, add '<lisp>(muse-publishing-directive "date")<lisp>'
203 to your header or footer.
205 ** HTML publishing
207 *** `muse-xhtml-style-sheet' -- New option that indicates the style
208 settings to use for XHTML documents.  This may be either a filename or
209 a string of stylesheet settings.
211 * Changes in Muse 3.02
213 ** New modules
215 *** muse-wiki.el --- Provide automatic linking for WikiWords and
216 InterWiki links.  These words are clickable and publish as links.
217 Project names from `muse-project-alist' are available for InterWiki
218 linking by default.  The list of InterWiki names and handlers may be
219 customized through `muse-wiki-interwiki-alist'.
221 WikiWords that do not correspond with real files will not be displayed
222 as links nor published as links.  It is expected that this behavior
223 will be made optional in future versions of Muse.
225 **** This module includes a few helper functions that may be added to
226 `muse-publish-desc-transforms' in order to modify link descriptions at
227 publish time.
229 **** The concept of "implicit links" and "explicit links" has been
230 introduced.  Explicit links are surrounded by brackets, i.e.
231 [[http://blah.org][this is a explicit link]].  Implicit links are URLs
232 and email addresses that are not surrounded by brackets: they will not
233 be colorized or published if surrounded by double-quotes.
235 ***** `muse-wiki-publish-pretty-title' causes words to be Title-cased,
236 ignoring words like `the' and `at' which should not be changed.
238 ***** `muse-wiki-publish-pretty-interwiki' changes the delimiter of
239 interwiki links according to the text of the
240 `muse-wiki-interwiki-replacement' option.
242 *** muse-protocols.el --- URL protocols that Muse recognizes.
243 This automatically-included module provides an easily customizable
244 list of URL protocols, how to browse them, and how to resolve them for
245 publishing.  Customize `muse-url-protocols' to add and remove
246 protocols.
248 ** Compatibility fixes
250 *** Muse has been tested with XEmacs 21.4, both Mule and non-Mule versions.
251 There are no known problems remaining.  To make things work by
252 default, the iso-8859-1 charset is used as a default option in some
253 places.
255 ** Configuration
257 *** `muse-file-extension' -- New option that allows the file extension
258 for Muse files to be specified.  For example, setting this to "muse"
259 assumes that you have renamed your Muse files with a ".muse"
260 extension.  Using this (and setting `muse-mode-auto-p' to nil) will
261 prevent miscellaneous non-Muse files from being accidentally opened in
262 Muse Mode.
264 *** `muse-ignored-extensions' -- New option that determines which file
265 extensions to omit from the ending of a Muse page name.
267 *** `muse-ignored-extensions-regexp' -- This is no longer customizable.
268 It will be automatically generated from `muse-file-extension' and
269 `muse-ignored-extensions'.
271 *** `muse-project-alist' -- The customize interface for this option has
272 been greatly improved, and much effort has been spent in order to make
273 this user-friendly.
275 *** The `:force-publish' tag may be specified in `muse-project-alist'.
276 This causes a particular list of files to be re-created every time the
277 publishing process is invoked, even if they haven't been changed
278 according to their timestamps.  One use for this is to keep an index
279 of available pages by adding the following to a file in this list.
281 <lisp>(muse-index-as-string t t t)</lisp>
283 *** `muse-project-ignore-regexp' -- By default, version control directories
284 are now included in this regexp so that they don't appear when you hit
285 C-c C-f to browse files in a project.
287 *** The `muse-project-alist-styles' and `muse-project-alist-dirs' functions
288 may be used in `muse-project-alist' to recursively add styles and
289 directory listings for a given directory.  The following is an
290 example.  We use a backtick instead of a single quote to begin the
291 list.
293 (setq muse-project-alist
294       `(("Blog"
295          (,@(muse-project-alist-dirs "~/proj/wiki/blog")  ;; base dir
296           :default "guestbook")
298          ,@(muse-project-alist-styles "~/proj/wiki/blog"  ;; base dir
299                                       ;; output dir
300                                       "~/personal-site/site/blog"
301                                       ;; style
302                                       "my-blosxom"))))
304 Note that if you use the customize interface for `muse-project-alist',
305 you will still have to manually add information for any new
306 sub-directories.
308 ** Debian packaging
310 *** Debian packages for Muse have entered Debian unstable, thanks
311 to Romain Francoise, my sponsor.
313 It is possible to roll your own Muse packages if you want to do so.
314 Packages may be built by using `make debrelease', once the proper
315 options in Makefile.defs are set.  Revisions may be built using `make
316 debrevision'.
318 The manual and relevant documentation files have been included with
319 the Debian package for Muse.
321 ** Muse Mode
323 *** Allow use of Muse with outline-minor-mode.
325 *** Filling text does the right thing with list items and footnotes.
326 List items and footnotes will no longer be concatenated when hitting
327 M-q in the midst of consecutive items.
329 *** Links will never be split in the middle when using Fill.
331 *** Some flyspell crash issues were addressed.
332 Using intangible text can cause strange problems with flyspell mode.
333 Hence, by default, the intangible property will be ignored.  A new
334 option called `muse-mode-intangible-links' indicates whether this
335 should be the case.
337 *** Links will no longer be highlighted by flyspell.
338 If you're using XEmacs or Emacs 22, flyspell will ignore links,
339 including link text.  This keeps flyspell from making the links
340 unclickable.  If you're using Emacs 21, flyspell will continue to
341 interfere with links.  If you know how to fix this, please send a
342 patch!
344 *** A few edge cases for emphasis and underlining have been addressed.
346 *** <example>, <verbatim>, and =surrounded text= are now colored using
347 the new face `muse-verbatim-face'.
349 *** All marked up text properties, like emphasis and underlining,
350 will be removed for the text between <example>, <verbatim>, <code>,
351 <literal>, and <lisp> tags.
353 *** Links to temporary files may be visited.
354 A "temporary file" in this case is a buffer that is not associated
355 with any file.  For some dynamic content import scripts with Planner,
356 this is helpful.
358 *** Typing "#title" should never crash Emacs anymore.
360 ** Muse manual
362 *** Fix problem with producing a PDF version of the manual.
364 *** Document WikiNames.
366 *** Bring up-to-date with latest features.
368 *** Massively update Common Elements section.
370 *** New Directives section.
371 This describes the use of #title and #author, as well as other
372 directives that may be used.
374 *** New Comments section.
375 Describes the use of "; comment text".
377 ** Publishing
379 *** The order of rules should be much improved.
380 This means that emphasis characters like `*' and `_' will never be
381 interpreted as such if they are within links.
383 *** The user will be notified when `muse-publish-this-file' fails to
384 publish the current file.  This happens when the timestamp of the
385 current file indicates that it is up-to-date.
387 *** Special characters are escaped in link descriptions and links on a
388 more consistent basis.  What defines a "special character" varies
389 according to the publishing style.
391 *** Errors that occur during publish time will cause a warning to be
392 displayed prominently, rather than being ignored.  It should no longer
393 be possible to mess up a Muse source file by tweaking the Muse
394 publishing process.
396 *** Errors in <lisp> tags cause a warning to be displayed and
397 return "<!--INVALID LISP CODE-->".  Muse will try to continue
398 publishing the page.
400 *** An emdash ("--") can now be used after a list, as long as there is
401 a blank line between the end of the list and the emdash.
403 *** The <code> tag has been introduced.
404 It does the same thing that =equal signs= do: escape specials and
405 publish as teletype text.  Use it for short command snippets and the
406 like.  <example> is a better choice for large blocks of code, since it
407 preserves whitespace.
409 *** An edge case involving links at the beginning of a paragraph
410 has been addressed.
412 *** An edge case involving consecutive directives of the same size
413 has been addressed.
415 *** Every publishing style is now capable of specifying strings to use
416 for sections beyond the third level.
418 *** Every publishing style may specify an end-of-section string.
419 This is used, for example, by the experimental XML style and the
420 DocBook style.
422 *** Every publishing style may specify a method of handling "internal
423 link" markup.  An internal link is a link that refers to an anchor on
424 the current page.
426 *** Every publishing style may specify a link suffix to use.
427 This allows the file extensions in links to other Muse files to be
428 different from their actual extension.  Blosxom makes use of this
429 (since its published files are .txt and the dynamically-generated
430 output is .html), and it could come in handy for PHP stuff.
432 If a link suffix is not specified via :link-suffix, the value of
433 :suffix will be used.
435 ** Blosxom publishing
437 *** muse-blosxom-new-entry: A #category directive is added by default.
438 Nothing is done with this yet, but it could be handy for tag-based
439 (multiple category) blogging, once we figure out a good way to do that
440 in both Muse and Pyblosxom.  Ideas are welcome, and patches even more
443 ** DocBook publishing
445 *** The markup has been comprehensively improved.
446 Published documents will now pass validation tests and look better in
447 general.
449 *** It is now possible to specify the encoding of DocBook documents.
450 The default encoding is utf-8.
452 *** Footnotes will be embedded into paragraphs, since this is
453 The DocBook Way.
455 *** Tables will be sorted by section.
456 Headers first, then footers, then the rest of the table.
458 *** Anchors are now handled correctly and publish to the best available
459 form.  Links to anchors are published with the <link> tag.
461 ** HTML publishing
463 *** Fix minor issue with anchors.
465 *** Paragraph publishing will no longer insert <div> tags before images.
466 This was causing too much hassle for some programs that were trying to
467 extend Muse, like the Muse port of Planner.
469 *** The `&', `<', and '>' characters will be escaped using their specific
470 HTML escape codes, rather than with "&#NNN;".  This makes the
471 published output display correctly in more web browsers.
473 *** Use HTML 4.0 Transitional by default for `muse-html-header'.
475 *** Include empty alt element in markup string for images that lack a
476 description.
478 *** Tables will be sorted by section.
479 Headers first, then footers, then the rest of the table.
481 *** `muse-xhtml-extension' -- The default extension for XHTML publishing.
482 This is a new option.
484 ** Journal publishing
486 *** Use "div class=..." rather than "div id=..." for sections.
488 ** LaTeX publishing
490 *** A newline will be appended to the default footer for the latex and
491 latexpdf publishing styles.  This keeps the PDF-building process from
492 failing due to lack of a newline at end of file.
494 *** Anchors and links to them now work properly.
496 *** When generating PDF files, call pdflatex twice.
497 This should ensure that the table of contents gets generated, if one
498 is due to be published.
500 *** PDF files with spaces may be published.
501 A bug preventing this has been fixed.
503 *** Teletype text is now published using \\texttt{...}.
505 *** An attempt has been made to escape special characters more
506 consistently.
508 ** TexInfo publishing
510 *** Fix a fatal error that occurs when publishing tables.
512 *** Generate the contents in the header by default rather than the footer.
513 This is the way that most TexInfo manuals do it.
515 *** The info-pdf publishing style currently produces the best PDF output
516 on the maintainer's machine, so it is now used to publish the PDF
517 version of the Muse Manual.
519 *** The characters `{' and `}' will be treated as special characters that
520 need to be escaped at publish-time.
522 *** Improve dots and enddots markup strings.
524 *** Surround underlined text with "_" since TexInfo doesn't seem to have
525 any better options for producing underlined text.
527 *** Anchors and links to them now work properly.