Skip to content
Version 2.4.0

This is a large release with over 270 commits.

New Features

- The biggest user-facing change is probably the addition of
  fountain-dwim on the TAB key:

  - If point is at a scene heading or section heading, or if prefixed
    with ARG (C-u TAB) call fountain-outline-cycle.

  - If point is at an directive to an included file, call
    fountain-include-find-file. This opens the included file in a new
    buffer for editing.

  - Otherwise, upcase the current line and active auto-upcasing. This
    highlights the current line with face fountain-auto-upcase-highlight
    and will continue to upcase inserted characters until the command is
    called again (TAB) or point moves to a different line (either by
    inserting a new line or point motion). This allows a flexible style
    of entering character names. You may press TAB before, during or
    after typing the name to get the same result.

- Another big feature is that Fountain Mode can now give an approximate
  page count:

  - fountain-count-pages on C-c C-x p will print the current page of
    total pages in the echo area, e.g. “Page 16 of 78”

  - Option fountain-pages-show-in-mode-line (nil by default) can be set
    to show the current page of total (e.g. “[16/78]”) either with
    automatic or manual update. Automatic update uses an idle timer that
    can be set with fountain-pages-count-delay.

- Export to plain text, creating an output like that of scripts on
  www.imsdb.com
- Added [Mountain][1] style include workflow: files can be included with
  {{ include: FILENAME.fountain }} where FILENAME is relative to the
  current file
- Display scene numbers in the right margin. (Requires a margin width
  greater than 0, e.g. with [Olivetti][2].
- Added teleplay format with its own aligning and exporting settings.
- A customisable title template for each export format.
- Command fountain-insert-page-break (C-c C-x RET) will calculate
  appropriate position before point to break page (e.g. never separating
  character names from dialogue, or breaking sentences).
- Section and scene headings in HTML output are now anchored and
  hyperlinked allowing easy bookmarking.
- New faces inherited from more appropriate font-lock faces.

Improvements

- Menu organisation has been greatly improved.
- When fountain-auto-upcase-scene-headings is non-nil, editing a scene
  heading will overlay the line with a highlight.
- Custom options that change buffer display somehow (e.g. alter Font
  Lock keywords) now have set functions to automatically apply their
  updates, without having to call fountain-mode again.
- fountain-goto-scene and fountain-goto-page now call push-mark before
  relocating point, so that pop-mark will return you to where you were.
- Toggling including a title page works for all export formats.
- fountain-continued-dialog-refresh is now fast enough to work on the
  whole buffer, and if you’ve changed fountain-continued-dialog-string
  it will attempt to remove previous string first.
- Exporting to Final Draft will now recognise when an element starts a
  new page (i.e. page breaks).
- Emphasis delimiters are not fontified on minimum decoration level.
- Keymap now remaps existing bindings to analogous functions (e.g.
  forward-list to fountain-forward-scene) to suit users who have already
  have their own bindings for these.
- Incredible parsing speed improvements by using comment-use-syntax.
- A rewritten parsing and export model.
- Appropriately naming private variables (e.g. fountain--outline-cycle).

Bug Fixes

- Removed some Font Lock multiline calculations that may have slowed
  things down.
- Fixed some scene heading font issues.
- Always check for CR as well as LF.
- “Go to” is two words.
- Many other small fixes.

[1]: https://github.com/mjrusso/mountain
[2]: https://github.com/rnkn/olivetti