Fix bug #6399; designate this 3.02.91 (RC2).
[muse-el.git] / NEWS
bloba29644e397509b3b82b7efcb182ee7f03923a11c
1 Emacs Muse NEWS --- History of user-visible changes    -*- outline -*-
3 * Changes in Muse 3.03 (not yet released)
5 ** Blosxom publishing (lisp/muse-blosxom.el)
7 *** New option: muse-blosxom-use-tags.
8 This specifies whether or not we are using tags.  Tags allow a page to
9 belong to multiple categories, but they do not rely on the directory
10 structure for categorization.
12 ** Core functionality (lisp/muse.el)
14 *** Fix an XEmacs beta byte-compiler issue.
16 *** Make nested list manipulation accessible to both Muse Mode
17 and Muse publishing.
19 ** HTML publishing (lisp/muse-html.el)
21 *** Make sure spaces in URLs get escaped properly.
23 ** LaTeX publishing (lisp/muse-latex.el)
25 *** Improve escaping of specials.
27 *** Use \label{} and \ref{} for anchors and anchor references.
29 *** Emphasize table elements.
31 *** Improve table generation.
33 *** Use \url{} to publish bare URLs.
35 *** Handle case where a Muse page begins with a quote character.
37 *** Display footnotes when we have both a URL and description.
38 This makes the URLs show up on printed documents in a sensible
39 fashion.
41 *** Escape the "@" character in the entire document.
43 ** Muse Manual (muse.texi)
45 *** Implicit Links
47 **** Mention how to customize the WikiName recognition.
49 ** Muse Mode (lisp/muse-mode.el)
51 *** `C-c TAB' now inserts an object, prompting the user for which type.
52 `C-c TAB l' inserts a relative link.
53 `C-c TAB t' inserts a Muse tag.
54 `C-c TAB u' inserts a URL.
56 These keybindings may be modified by editing `muse-insert-map'.  Note
57 that the prompt you get when you hit `C-c TAB' will not change.
59 *** New list-oriented keybindings:
60 `M-RET' inserts a list item.
61 `C->' increases list item indentation.
62 `C-<' decreases list item indentation.
64 *** New option: muse-colors-inline-images.
65 This determines whether or not to inline an image.  The default is to
66 enable this behavior.
68 **** `C-c C-i' toggles whether images are inlined.
70 **** New option: muse-colors-inline-image-method.
71 This determines how to find an image that we want to inline.  The
72 default is to look in the current directory.  If set to
73 'muse-colors-use-publishing-directory, it will look in the directory
74 where the current page will be published.
76 *** Slightly improvement speed of flyspell integration
78 *** Implement searching through Muse files.
80 **** `C-c C-s' performs a search through Muse files.
82 **** New option: muse-grep-command.
83 Customize this to specify the command used for searching.  In
84 particular, "glimpse" is handy.  Check the documentation for this
85 command for details.
87 *** Changed keybindings:
88 `C-c C-b' is now `muse-find-backlinks'
89 `C-c C-v' is now `muse-browse-result'
91 *** Don't require muse-publish.el, since publishing and viewing Muse
92 files are supposed to be completely separable.
94 ** New modules
96 *** lisp/muse-backlink.el -- Provide backlink support for Muse.
98 *** lisp/muse-groff.el --  This introduces the publishing styles
99 "groff" and "groff-pdf".
101 *** lisp/muse-latex2png.el -- Publish embedded LaTeX content to a PNG file.
102 This introduces the <latex> tag.
104 *** lisp/muse-xml-common.el -- Common functionality used by XML-based
105 publishing styles, such as HTML, XML, and DocBook.
107 *** experimental/muse-mathml.el -- This introduces the "mathml"
108 publishing style and the <math> tag.
110 ** Project settings (lisp/muse-project.el)
112 *** Introduce the `with-muse-project' macro, which makes it easier
113 to switch to a given Muse project and execute some code.
115 *** Fix an error with `custom-quote'.
117 *** Ignore buffers that have no associated filename.
118 This fixes an annoyance where Muse prompts to save BBDB and ERC
119 buffers before publishing.
121 ** Publishing (lisp/muse-publish.el)
123 *** Implement escaping of specials throughout the entire document.
124 This makes it much easier to publish documents to multiple kinds of
125 formats, since you no longer have to worry about putting <verbatim>
126 around specials.
128 *** Make escaping of specials context-sensitive.
129 Muse now realizes that URLs, normal document text, <example> regions,
130 and the like have different special characters to escape.
132 *** Distinguish links and footnotes better.
134 *** Simplify markup string for anchors.
136 *** Allow text like "%N%" in markup strings.
137 This makes it much easier to re-use the same text or put strings in
138 a different order.
140 *** Support nested lists.
141 Muse now determines the nested level of a list by its initial
142 whitespace.  Ordered lists, unordered lists, and definition lists can
143 all be nested.  It is even possible to force a line break in a list
144 item by inserting a blank line on the same level between the lines.
145 Blockquotes may also be nested inside of a list.
147 *** Create parent directories when publishing for the first time.
149 *** Allow empty elements in tables.
151 *** Handle case where we are trying to publish a file that has not
152 been saved.
154 *** Handle nested emphasis types better.
155 It should now publish exactly the way it looks in Muse Mode.
157 *** Fix XEmacs issue where text at beginning of buffer is read-only.
159 *** Allow publishing styles to specify a function to use for
160 escaping specials in a particular context.  This is especially handy
161 for HTML URLs, since they have a larger subset of special characters
162 than normal characters.
164 See `muse-xml-decide-specials' in muse-xml-common.el for details.
165 This functionality already exists for escaping specials in strings.
167 *** New tags, see the Tag Summary section in the manual for details
169 **** <comment> -- Designate entire regions as comments.
171 **** <quote> -- Publish the region as a blockquote.
173 ** Texinfo publishing (lisp/muse-texinfo.el)
175 *** Escape commas in URLs.
177 *** Make it so that links to other info or PDF documents use the proper
178 suffix.
180 ** URL protocols (lisp/muse-protocols.el)
182 *** Add support for DOI's.
183 DOI's (digitial object identifiers) are a standard identifier used in
184 the publishing industry.
186 *** Add support for "dict:" URLs.
187 This is used to look up terms on the Wikipedia website.
189 **** New option: muse-wikipedia-country.
190 This specified the country code to use for Wikipedia.
192 ** Wiki (lisp/muse-wiki.el)
194 *** If the document does not have a valid title string, use the
195 empty string.
197 *** Fix some bugs.
199 ** XML publishing (lisp/muse-xml.el)
201 *** Update examples/muse.rnc to handle nested list items.
203 *** Fix table generation when some attributes are not given.
205 * Changes in Muse 3.02.6
207 ** Building Muse
209 *** Autoloads for Muse are now generated in the muse-autoloads.el
210 file at build time.
212 ** HTML publishing (lisp/muse-html.el)
214 *** Don't escape "%" and "+" in URLs.
216 ** Muse Mode (lisp/muse-mode.el)
218 *** <lisp> tags are now evaluated at display time.
219 The actual contents of the buffer will not change, just the displayed
220 text.  To toggle this behavior, set `muse-colors-evaluate-lisp-tags'.
222 ** Publishing (lisp/muse-publish.el)
224 *** When errors happen during publishing, a more explanatory message
225 is displayed.
227 *** It is now possible to specify non-breaking-space with "~~"
228 (two tildes).  This helps prevent proper names from being split up in
229 the output.
231 *** Escape specials in all forms of emphasis.
233 *** Escape "[" and "]" in links that are entered using muse-make-link.
235 *** Errors from invalid lisp code in a <lisp> tag will be published
236 as a comment.  If you have `muse-publish-comments-p' set to nil, the
237 effect is to remove the error message.
239 *** Fix several publishing issues involving comments and numbered lists.
241 ** Wiki (lisp/muse-wiki.el)
243 *** Interwiki links in extended links that have special characters are
244 now handled properly.
246 ** XML publishing (lisp/muse-xml.el)
248 *** The XML publishing style is now considered stable.
249 Its schema is available in `examples/muse.rnc'.
251 * Changes in Muse 3.02.5
253 ** LaTeX publishing (lisp/muse-latex.el)
255 *** Use a better algorithm for determining how many times we need to
256 call pdflatex for publishing.  Anything with a Table of Contents needs
257 2 passes.
259 ** Muse Mode (lisp/muse-mode.el)
261 *** The 3 levels of emphasis now have corresponding muse-emphasis-N faces.
262 This permits the user to customize them, which may be useful if a font
263 does not have italic and/or bold versions.
265 *** Visiting pages with anchors works better.
267 *** Fix fill bug with semicolons in the middle of paragraphs.
269 *** Fix a bug with editing the link at point.
271 *** Fix a display bug with text like =<verbatim><example></verbatim>=.
273 ** Project settings (lisp/muse-project.el)
275 *** Fix an edge case that yielded a stringp: nil error.
277 *** Prevent auto-save files from being recognized as Muse files.
279 ** Wiki (lisp/muse-wiki.el)
281 *** By default, WikiWords can have consecutive capital letters.
283 *** Fix an error that occurs when muse-colors is not loaded.
285 *** It is now possible to specify a suffix for WikiWord links.
286 For example: WikiName''''s.  The WikiName part will be displayed and
287 colored as a link, but the "s" will be left alone.
289 * Changes in Muse 3.02.02
291 ** Configuration
293 *** A bug with customizing `muse-project-alist' has been fixed.
295 *** We use a file extension for Muse files by default.
296 To obtain the old behavior, set `muse-file-extension' to nil and
297 `muse-mode-auto-p' to t.
299 To go along with the new behavior, be sure to rename all of your Muse
300 files to have a ".muse" extension.
302 *** New option: `muse-wiki-ignore-bare-project-names'.
303 This causes Muse to ignore bare project names if specified.  The
304 default is to turn bare project names into links.
306 *** New option: `muse-publish-comments-p'.
307 This causes Muse to publish comments as markup.  The default is to
308 remove comments before publishing rather than trying to mark them up.
310 *** New option: `muse-wiki-allow-nonexistent-wikiword'.
311 Enabling this will cause WikiWords with no corresponding file to be
312 colored as bad links.  The default is not to color them and turn them
313 into links.
315 ** Muse Mode (lisp/muse-mode.el)
317 *** An error with intangible links has been fixed.
319 *** Visiting a page with an anchor works better than before.
321 *** Flyspell behaves better with Emacs21 than before.
323 *** Links to nonexistent files will be colored red by default.
324 This happened previously, but the algorithm was buggy and didn't cover
325 implicit links.
327 ** Project handling (lisp/muse-project.el)
329 *** A convenience macro called `with-muse-project' has been added.
330 This allows a code block to be executed after changing the current
331 Muse project.  It is analogous to emacs-wiki's
332 `with-emacs-wiki-project' function.
334 ** Publishing (lisp/muse-publish.el)
336 *** An issue involving anchors at the end of a line has been
337 addressed.
339 *** Non-word characters are now allowed before an anchor.
341 *** Comments may now be published, if desired.
342 This behavior may be controlled with the `muse-publish-comments-p'
343 option.  The default is to remove comments before publishing rather
344 than trying to mark them up.
346 *** Publishing directives may now include a dash character.
348 ** LaTeX publishing (lisp/muse-latex.el)
350 *** A bug with footnotes has been addressed.
351 An attempt has been made to make generated footnote markup look more
352 "natural" to experienced LaTeX users.
354 *** Table headers are underlined and table footers are overlined.
356 *** PDF publishing will cause pdflatex to be called as needed.
357 The previous behavior was to always call pdflatex twice.  Currently,
358 if pdflatex succeeds, it will not be called again.  Otherwise, call it
359 up to three times.
361 *** Escaping of special characters should be drastically improved.
362 An attempt has been made to get escaping done right in most contexts.
363 The only quirk is that you must surround dollar signs with equal signs
364 to ensure escaping.  This makes publishing PDF documents much more
365 useful.
367 ** Texinfo publishing (lisp/muse-texinfo.el.el)
369 *** An attempt was made to hone some of the markup.
371 * Changes in Muse 3.02.01
373 ** Muse Mode (lisp/muse-mode.el)
375 *** Links should no longer prevent moving the point, and help text for
376 links should no longer cause errors to occur.
378 ** Project handling (lisp/muse-project.el)
380 *** `muse-project-alist' -- This variable should now save customizations
381 to the correct form in the .emacs file.  Before, it was saving an
382 intermediate form of the variable.
384 If you have used the customize interface in the previous release of
385 Muse to set `muse-project-alist', please do the following to import
386 your settings.
388  - Open your .emacs file.
389  - Move the point to where `muse-project-alist' is set.
390  - Type `M-: (setq muse-project-alist-using-customize t) RET'.
391  - Type `C-M-x'.
392  - Type `M-x customize-save-variable RET muse-project-alist RET'.
394 *** `muse-project-alist' -- A bug involving the deleting of items
395 using Emacs21 and XEmacs21 has been fixed.
397 ** Publishing (lisp/muse-publish.el)
399 *** If 2 or more blank lines separate list or table items, each item
400 will be published in a separate list or table.
402 *** The #date directive is now populated by default with the last
403 modified time of each file, rather than the current time of day.  To
404 use this value, add '<lisp>(muse-publishing-directive "date")<lisp>'
405 to your header or footer.
407 ** HTML publishing (lisp/muse-html.el)
409 *** `muse-xhtml-style-sheet' -- New option that indicates the style
410 settings to use for XHTML documents.  This may be either a filename or
411 a string of stylesheet settings.
413 * Changes in Muse 3.02
415 ** New modules
417 *** lisp/muse-wiki.el --- Provide automatic linking for WikiWords and
418 InterWiki links.  These words are clickable and publish as links.
419 Project names from `muse-project-alist' are available for InterWiki
420 linking by default.  The list of InterWiki names and handlers may be
421 customized through `muse-wiki-interwiki-alist'.
423 WikiWords that do not correspond with real files will not be displayed
424 as links nor published as links.  It is expected that this behavior
425 will be made optional in future versions of Muse.
427 **** This module includes a few helper functions that may be added to
428 `muse-publish-desc-transforms' in order to modify link descriptions at
429 publish time.
431 **** The concept of "implicit links" and "explicit links" has been
432 introduced.  Explicit links are surrounded by brackets, i.e.
433 [[http://blah.org][this is a explicit link]].  Implicit links are URLs
434 and email addresses that are not surrounded by brackets: they will not
435 be colorized or published if surrounded by double-quotes.
437 ***** `muse-wiki-publish-pretty-title' causes words to be Title-cased,
438 ignoring words like `the' and `at' which should not be changed.
440 ***** `muse-wiki-publish-pretty-interwiki' changes the delimiter of
441 interwiki links according to the text of the
442 `muse-wiki-interwiki-replacement' option.
444 *** lisp/muse-protocols.el --- URL protocols that Muse recognizes.
445 This automatically-included module provides an easily customizable
446 list of URL protocols, how to browse them, and how to resolve them for
447 publishing.  Customize `muse-url-protocols' to add and remove
448 protocols.
450 ** Compatibility fixes
452 *** Muse has been tested with XEmacs 21.4, both Mule and non-Mule versions.
453 There are no known problems remaining.  To make things work by
454 default, the iso-8859-1 charset is used as a default option in some
455 places.
457 ** Configuration
459 *** `muse-file-extension' -- New option that allows the file extension
460 for Muse files to be specified.  For example, setting this to "muse"
461 assumes that you have renamed your Muse files with a ".muse"
462 extension.  Using this (and setting `muse-mode-auto-p' to nil) will
463 prevent miscellaneous non-Muse files from being accidentally opened in
464 Muse Mode.
466 *** `muse-ignored-extensions' -- New option that determines which file
467 extensions to omit from the ending of a Muse page name.
469 *** `muse-ignored-extensions-regexp' -- This is no longer customizable.
470 It will be automatically generated from `muse-file-extension' and
471 `muse-ignored-extensions'.
473 *** `muse-project-alist' -- The customize interface for this option has
474 been greatly improved, and much effort has been spent in order to make
475 this user-friendly.
477 *** The `:force-publish' tag may be specified in `muse-project-alist'.
478 This causes a particular list of files to be re-created every time the
479 publishing process is invoked, even if they haven't been changed
480 according to their timestamps.  One use for this is to keep an index
481 of available pages by adding the following to a file in this list.
483 <lisp>(muse-index-as-string t t t)</lisp>
485 *** `muse-project-ignore-regexp' -- By default, version control directories
486 are now included in this regexp so that they don't appear when you hit
487 C-c C-f to browse files in a project.
489 *** The `muse-project-alist-styles' and `muse-project-alist-dirs' functions
490 may be used in `muse-project-alist' to recursively add styles and
491 directory listings for a given directory.  The following is an
492 example.  We use a backtick instead of a single quote to begin the
493 list.
495 (setq muse-project-alist
496       `(("Blog"
497          (,@(muse-project-alist-dirs "~/proj/wiki/blog")  ;; base dir
498           :default "guestbook")
500          ,@(muse-project-alist-styles "~/proj/wiki/blog"  ;; base dir
501                                       ;; output dir
502                                       "~/personal-site/site/blog"
503                                       ;; style
504                                       "my-blosxom"))))
506 Note that if you use the customize interface for `muse-project-alist',
507 you will still have to manually add information for any new
508 sub-directories.
510 ** Debian packaging
512 *** Debian packages for Muse have entered Debian unstable, thanks
513 to Romain Francoise, my sponsor.
515 It is possible to roll your own Muse packages if you want to do so.
516 Packages may be built by using `make debrelease', once the proper
517 options in Makefile.defs are set.  Revisions may be built using `make
518 debrevision'.
520 The manual and relevant documentation files have been included with
521 the Debian package for Muse.
523 ** Muse Mode (lisp/muse-mode.el)
525 *** Allow use of Muse with outline-minor-mode.
527 *** Filling text does the right thing with list items and footnotes.
528 List items and footnotes will no longer be concatenated when hitting
529 M-q in the midst of consecutive items.
531 *** Links will never be split in the middle when using Fill.
533 *** Some flyspell crash issues were addressed.
534 Using intangible text can cause strange problems with flyspell mode.
535 Hence, by default, the intangible property will be ignored.  A new
536 option called `muse-mode-intangible-links' indicates whether this
537 should be the case.
539 *** Links will no longer be highlighted by flyspell.
540 If you're using XEmacs or Emacs 22, flyspell will ignore links,
541 including link text.  This keeps flyspell from making the links
542 unclickable.  If you're using Emacs 21, flyspell will continue to
543 interfere with links.  If you know how to fix this, please send a
544 patch!
546 *** A few edge cases for emphasis and underlining have been addressed.
548 *** <example>, <verbatim>, and =surrounded text= are now colored using
549 the new face `muse-verbatim-face'.
551 *** All marked up text properties, like emphasis and underlining,
552 will be removed for the text between <example>, <verbatim>, <code>,
553 <literal>, and <lisp> tags.
555 *** Links to temporary files may be visited.
556 A "temporary file" in this case is a buffer that is not associated
557 with any file.  For some dynamic content import scripts with Planner,
558 this is helpful.
560 *** Typing "#title" should never crash Emacs anymore.
562 ** Muse manual (muse.texi)
564 *** Fix problem with producing a PDF version of the manual.
566 *** Document WikiNames.
568 *** Bring up-to-date with latest features.
570 *** Massively update Common Elements section.
572 *** New Directives section.
573 This describes the use of #title and #author, as well as other
574 directives that may be used.
576 *** New Comments section.
577 Describes the use of "; comment text".
579 ** Publishing (lisp/muse-publish.el)
581 *** The order of rules should be much improved.
582 This means that emphasis characters like `*' and `_' will never be
583 interpreted as such if they are within links.
585 *** The user will be notified when `muse-publish-this-file' fails to
586 publish the current file.  This happens when the timestamp of the
587 current file indicates that it is up-to-date.
589 *** Special characters are escaped in link descriptions and links on a
590 more consistent basis.  What defines a "special character" varies
591 according to the publishing style.
593 *** Errors that occur during publish time will cause a warning to be
594 displayed prominently, rather than being ignored.  It should no longer
595 be possible to mess up a Muse source file by tweaking the Muse
596 publishing process.
598 *** Errors in <lisp> tags cause a warning to be displayed and
599 return "<!--INVALID LISP CODE-->".  Muse will try to continue
600 publishing the page.
602 *** An emdash ("--") can now be used after a list, as long as there is
603 a blank line between the end of the list and the emdash.
605 *** The <code> tag has been introduced.
606 It does the same thing that =equal signs= do: escape specials and
607 publish as teletype text.  Use it for short command snippets and the
608 like.  <example> is a better choice for large blocks of code, since it
609 preserves whitespace.
611 *** An edge case involving links at the beginning of a paragraph
612 has been addressed.
614 *** An edge case involving consecutive directives of the same size
615 has been addressed.
617 *** Every publishing style is now capable of specifying strings to use
618 for sections beyond the third level.
620 *** Every publishing style may specify an end-of-section string.
621 This is used, for example, by the experimental XML style and the
622 DocBook style.
624 *** Every publishing style may specify a method of handling "internal
625 link" markup.  An internal link is a link that refers to an anchor on
626 the current page.
628 *** Every publishing style may specify a link suffix to use.
629 This allows the file extensions in links to other Muse files to be
630 different from their actual extension.  Blosxom makes use of this
631 (since its published files are .txt and the dynamically-generated
632 output is .html), and it could come in handy for PHP stuff.
634 If a link suffix is not specified via :link-suffix, the value of
635 :suffix will be used.
637 ** Blosxom publishing (lisp/muse-blosxom.el)
639 *** muse-blosxom-new-entry: A #category directive is added by default.
640 Nothing is done with this yet, but it could be handy for tag-based
641 (multiple category) blogging, once we figure out a good way to do that
642 in both Muse and Pyblosxom.  Ideas are welcome, and patches even more
645 ** DocBook publishing (lisp/muse-docbook.el)
647 *** The markup has been comprehensively improved.
648 Published documents will now pass validation tests and look better in
649 general.
651 *** It is now possible to specify the encoding of DocBook documents.
652 The default encoding is utf-8.
654 *** Footnotes will be embedded into paragraphs, since this is
655 The DocBook Way.
657 *** Tables will be sorted by section.
658 Headers first, then footers, then the rest of the table.
660 *** Anchors are now handled correctly and publish to the best available
661 form.  Links to anchors are published with the <link> tag.
663 ** HTML publishing (lisp/muse-html.el)
665 *** Fix minor issue with anchors.
667 *** Paragraph publishing will no longer insert <div> tags before images.
668 This was causing too much hassle for some programs that were trying to
669 extend Muse, like the Muse port of Planner.
671 *** The `&', `<', and '>' characters will be escaped using their specific
672 HTML escape codes, rather than with "&#NNN;".  This makes the
673 published output display correctly in more web browsers.
675 *** Use HTML 4.0 Transitional by default for `muse-html-header'.
677 *** Include empty alt element in markup string for images that lack a
678 description.
680 *** Tables will be sorted by section.
681 Headers first, then footers, then the rest of the table.
683 *** `muse-xhtml-extension' -- The default extension for XHTML publishing.
684 This is a new option.
686 ** Journal publishing (lisp/muse-journal.el)
688 *** Use "div class=..." rather than "div id=..." for sections.
690 ** LaTeX publishing (lisp/muse-latex.el)
692 *** A newline will be appended to the default footer for the latex and
693 latexpdf publishing styles.  This keeps the PDF-building process from
694 failing due to lack of a newline at end of file.
696 *** Anchors and links to them now work properly.
698 *** When generating PDF files, call pdflatex twice.
699 This should ensure that the table of contents gets generated, if one
700 is due to be published.
702 *** PDF files with spaces may be published.
703 A bug preventing this has been fixed.
705 *** Teletype text is now published using \\texttt{...}.
707 *** An attempt has been made to escape special characters more
708 consistently.
710 ** Texinfo publishing (lisp/muse-texinfo.el)
712 *** Fix a fatal error that occurs when publishing tables.
714 *** Generate the contents in the header by default rather than the footer.
715 This is the way that most Texinfo manuals do it.
717 *** The info-pdf publishing style currently produces the best PDF output
718 on the maintainer's machine, so it is now used to publish the PDF
719 version of the Muse Manual.
721 *** The characters `{' and `}' will be treated as special characters that
722 need to be escaped at publish-time.
724 *** Improve dots and enddots markup strings.
726 *** Surround underlined text with "_" since Texinfo doesn't seem to have
727 any better options for producing underlined text.
729 *** Anchors and links to them now work properly.