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