Releases: vkbo/novelWriter
Version 0.5
Changes
Version 0.5 [2020-05-09]
This release of novelWriter has a number of feature updates, bringing it one step closer to initial feature completeness for a version 1.0 release.
In the pipeline for 1.0 is a completely new export tool with improved and added options, including printing. Further improvements are also planned for the new Outline View added in this version. When these additions are completed, novelWriter will start moving towards a 1.0 release via release candidates. I'm hoping to wrap up this year and a half long stage of initial development soon so that I can spend more time using it than creating it.
Additional thanks to @countjocular for PRs #173 and #174, and to @johnblommers for all the helpful feedback and issue reports for the new features added in this, and previous releases.
Noteable Changes
- The Timeline View dialog is now gone. Instead, the main window area has been split into two tabs. The first, the "Editor", contains the Document Editor and Viewer panels. The second, the "Outline", contains a new Outline View of the novel part of the project, broken down into a tree view of all the project headings. All meta data associated with each part of the novel can be viewed in further columns, selectable from a drop down menu by right-clicking the header. These columns can also be rearranged.
- Both the Editor and Viewer panels now have a header showing the document label as seen in the Project Tree. Optionally, the full path of the document can be viewed. Clicking this header will select the document in the Project Tree, making it easier to find where the document belongs in the structure.
- A project load dialog has been added when novelWriter is launched. It will show you your recently opened projects, let you browse for those that aren't listed, or create a new project. More features will be added to this dialog later on.
- The Preferences dialog has been completely redesigned to make it easier to find the various settings and understand what they do.
Detailed Changelog
Features
- An Outline View panel has been added to the main GUI window. The Outline View can show all meta data associated with a novel heading in a column-wise manner. The Timeline View feature has been dropped in favour of the new Outline View. PRs #140, #181 and #191.
- A synopsis feature has been added. It allows a comment to be flagged as a synopsis comment to be picked up by the indexer and displayed in the GUI. Currently available in the Outline View. PRs #140 and #191.
- A document title bar has been added to the top of the editor and viewer. These show the document label as seen in the project tree. Optionally, the full document path can be shown. Clicking the title will highlight the document in the project tree. PRs #192 and #194.
User Interface
- A Project Load dialog has been added, which pops up when novelWriter is launched. It allows for opening other recent projects, browse for projects, or start a new project. This replaces the former Open and New Project features, as well as the Recent Projects menu entry. PRs #177 and #183.
- The command line switches for debugging have been changed a bit. Higher level of debugging now includes the lower levels, preventing the need for specifying for instance both debug and verbose debug. PR #182.
- The Preference dialog has been completely redesigned. The options are now displayed vertically, in four tabs instead of two, and with more informative text explaining what they do. Some previously unconnected options have also been added. PR #193.
Bug Fixes
- The
install.py
script has been fixed to reflect changes in storage location of the themes. PR #174. - Fixed a bug with launching Preferences without Enchant spell checking installed. PR #190.
- A minor issue with running backups with no backup path set has been fixed. The backups would be written into the source folder, or wherever novelWriter was launched from, which is a very messy fallback. PR #195.
Documentation
- Some outdated links and a number of typos and spelling errors have been corrected. PR #173.
- Documentation has been brought up to date with the current set of features of novelWriter. PR #202.
Project Structure
- Opening a project now writes a lock file to alert the user if the same project is opened more than once. The warning can be ignored if the user wants to proceed. PR #179.
- Two new meta tags have been added to the project file to store a counter for the number of times the project has been saved or autosaved. The meta information is not currently displayed in the GUI, but could be added to an About Project dialog in the future. The PR also adds checks to ensure XML attributes exist before attempting to load them. PR #180.
- A single line of document meta data is now written to the top of document files. They mainly serve to identify the file content if one opens the file directly in an external editor, but also assist the Orphaned Files tool to identify the files when they are found, but missing from the project tree. PRs #200 and #201.
Code Improvements
- For the Outline View, the
NWIndex
class has been restructure and extensively rewritten. It is more fault tolerant, and will automatically rebuild a corrupt index loaded from cache. PR #140. - The way that dialog options (which options were selected last time a dialog was open) has been rewritten. All data is now stored in a single JSON file in the project meta folder. PR #175.
- Since the config class is instanciated before the GUI, error reporting to the user was tricky. An error cache has now been added to allow non-critical errors to be displayed after the GUI is built. PR #176.
- All source files now have the minimal GPLv3 license note at the top. PR #188.
- Also added license info to the command line output. PR #189.
- Large chunks of the code has been restructured. Mainly the non-GUI parts, which have mostly been merged into a new
core
folder. Several classes which are only used by a single object have been merged into the same file, reducing the total number of source files a bit. PR #199.
Version 0.4.5
Changes
Features
- A project can now be opened from the command line by providing the project path to the launching script. PRs #164 and #166.
User Interface
- Added functionality to split a document into a folder of multiple documents, and also to merge a folder of documents into a single document. PRs #159 and #163.
- It is now possible to permanently delete files from the Trash folder. This can be done file-by-file or by using the Empty Trash option in the menu. PRs #159 and #163.
- When running the spell checker, a wait cursor is displayed. This will alert the user that novelWriter is working on something when, for instance, a very large document is opened and initial spell checking is running. PR #158.
Bug Fixes
- Fixed a few keyboard shortcuts that were not working in distraction free mode. PR #157.
- Added a check to ensure the user does not drag and drop an item into the Orphaned Items folder. Since this folder is not an actual project item, novelWriter would crash when trying to change the dropped item's parent item to the Orphaned Items folder. Now, instead, the drop event is cancelled if the target folder is Orphaned Items. PR #163.
Code Improvements
- The way project files are saved has been altered slightly. When a project file or document file is saved, the data is first streamed to a temp file. Then the old storage file is renamed to .bak, and and the temp file is renamed to the correct storage file name. This ensures that the storage file is only replaced after a complete and successful write. PR #165.
- The cache folder has been removed. It was used to store the 10 most recent versions of the project file. Instead, the previous project file is renamed to .bak, and can be restored if opening from the latest project file fails. Any additional restore capabilities should be ensured by backup solutions, either the internal simple zip backup, or other third party tools. PR #165.
- The dependency on the Python package
appdirs
has been dropped. It was used only for extracting the path to the user's config folder, a feature which is also provided by Qt. PR #169.
Version 0.4.4
Botched release. Replaced with 0.4.5.
Version 0.4.3
Changes
User Interface
- Added keyboard shortcuts and menu entries for formatting headers, comments, and removing block formats. PR #155.
- Disable re-highlighting of open file when resizing window. This is potentially a slow process if the spell checker is on and the file is large. There is no need to do this just for reflowing text, so it is now disabled on resize events. Issue #150, PR #153.
- Improved the speed of the syntax highlighter by about 40% by not using regular expressions for highlighting block formats and by skipping empty lines entirely. PR #154.
Bug Fixes
- Fixed an issue when closing the import file dialog without selecting a file, the import would procede, but fail on file not found. The import is now cancelled when there is no file selected. PR #149.
- Fixed an issue with markdown export where it did not take into account hard line breaks. Issue #151, PR #152.
- Fixed a crash when running file status check when the project contains orphaned files. PR #152.
Version 0.4.2
Changes
User Interface
- Distraction free mode now also hides the menu bar, but all keyboard shortcuts used for editing remain active. The rest are disabled. PR #142.
Bug Fixes
- Fixed various issues with spell checking highlighting. The highlighting and the editor didn't always agree on what words were spelled wrong. PR #141.
- The status bar now shows what spell checking language is actually loaded. Previously, it just showed the language selected in the settings. That was a bit misleading as the available dictionaries can change due to the change in installed dictionary on the system. PR #145.
Version 0.4.1
Changes
Features
- If no external spell check package is available, novelWriter can now fall back to use a simple spell checker based on word similarity comparison provided by the Python standard package
difflib
. That means spell checking is always available, although the difflib-based spell checker is both slow and lacks many features of other packages. This feature comes with a general English dictionary, and a GB and US dictionary. These are just lists of correct words provided by aspell. PR #130. - Language information (spell checker) is now shown on the status bar. In addition, the timer has been converted to monospace font and received an icon. PR #136.
- The new icons exist in both dark and neutral mode, and the mode can be set in the preferences. This makes it easier to see the icons on a dark system theme. PR #135.
- Distraction free mode, key shortcut
F8
, and full screen mode, shortcutF11
, are now available. This PR also fixes some issues with rescaling of text margins when windows or panels are resized. PR #137.
User Interface
- Most text boxes now have a character limit. Before, the only limit was the limit set by Qt itself of ~32k characters. PR #126.
- Key combination
Ctrl+G
is now an alternative toF3
, forward search, and vice versa for backwards search. This makes more sense on macOS. Issue #124, PR #126. - The shortcut for the replace feature is now
Cmd+=
on macOS, and remainsCtrl+H
on Linux and Windows. Issue #124, PR #126. - The sample project in the source code has been improved to better show the features of novelWriter as they currently are. The old text was a bit out of date. The new text also explains the features it demonstrates. PR #132.
Bug Fixes
- Fixed a bug where a long file label would expand the tree pane due to the details panel expanding. The label itself will no longer show more than 100 characters, and is word wrapped. Issue #120, PR #122.
Code Improvements
- The code has been reorganised, import headers been cleaned up, and the code made more or less PEP8 compliant. PRs #118, #119, and #138.
- The dependency on the
pycountry
package has been dropped. The feature based on it now uses an internal list of country codes for describing spell checker languages. PR #129. - The themes manager has been improved, and the loading of icons now supports a number of fallback steps to ensure something is shown in most cases. The final fallback is the system's own icon theme. PR #135.
Version 0.4
Changes
Features
- The export dialog now allows limited support for exports using Pandoc. The Pandoc conversion is run as a stage two of the export process. Pandoc integration is fickly on Windows, but works well on Linux. PRs #82 and #104.
- The editor now supports Markdown standard hard line breaks, and exports these correctly to the various file formats and to the document view pane. Hard line breaks can be inserted by either appending two or more spaces to the end of a line, or by pressing
Shift+Enter
. PR #83. - The editor now supports and preserves non-breaking spaces. Unfortunately, the preservation of these spaces on save and reload is dependent on Qt 5.9 or later. Non-breaking spaces are preserved on export to html and LaTeX. PR #87.
- An option to show tabs/spaces and line endings in the document editor has been added to the Preferences dialog. PR #90.
- The document view pane now has a "Referenced By" panel at the bottom, showing links to all documents referring back to the document being viewed. The panel is collapsible, and has a sticky option that will prevent it from updating if links are followed. PRs #109 and #110.
- The tag and reference system no longer has any restrictions on file class. That is, any file can have tags and references, and they are indexed by the indexer and displayed as links in the document view pane. The timeline view behaves as before, only listing active Novel files. PR #114.
- A new root folder type and keyword for "Entities" has been added. These can be useful for describing plot elements fitting under such a category. PR #115.
User Interface
- Tags and references in the editor are now "clickable" in the sense that pressing
Ctrl+Enter
with the cursor on them will open the reference in the view pane. PR #98. - Warnings triggered when the user tries to use features with missing package dependencies will now provide a link to the package website. PR #86.
- Adding the
~
character in file path boxes is now expanded to the user's home directory. PR #94. - The recent projects submenu no longer has a number prefix, and a "Clear Recent Projects" option has been added. PRs #86 and #94.
- Syntax themes based on Night Owl and Light Owl themes have been added. PR #97.
- Read-only files now have a notification popping up at the top of the edit pane, and the files are actually not editable. PR #106.
- Tabs are now properly exported in formats where this makes sense. For plain text files, a tab is converted to four spaces. For html exports they are converted to a long space, equivalent to four spaces. PR #113.
- A toggle button in the Document menu now allows displaying file comments in the document view panel. PR #115.
Bug Fixes
- Some issues with unicode conversion and LaTeX export have been addressed, but the escaping of unicode characters is prone to errors. The user should be careful with using special symbols if export to LaTeX is intended. The package
latexcodec
should be able to handle Latin based, language specific characters. PRs #73 and #79. - Fixed some long-standing issues with running novelWriter on Windows. The config folder requires a set of two folders to be created on first use, which the config class did not expect. This is now resolved. In addition, Python does not default to utf-8 when writing files on Windows, so all open statements now have encoding defined. Failing to open files also had the risk of truncating them. This has been avoided by distinguishing new files from broken files. PR #81.
- Dark theme was not rendering properly on multiple platforms. This was resolved by forcing the Qt5 style to "Fusion", which allows further formatting by the novelWriter themes code. The user can override the Qt styling option through the
--style=
flag on the command line. PR #96. - The behaviour of files in the Trash folder has been fixed. These are now read only. PR #106.
- Fixed a bug where the last line of a title or partition page would be ignored on export. PR #113.
- Drag and drop onto the root level of the tree has been disabled. This was anyway only allowed for root folder items, but it was tricky to enforce this properly for other files. In order to move root folders around now, the move up and down features need to be used instead. #115.
Installation
Version 0.3.2
Changes
Documentation
- The documentation has been rewritten and added to the Read the Docs website. Pressing
F1
orHelp > Documentation
in the menu opens the novelWriter documentation page. PRs #68 and #69.
User Interface
- Filters have been added to the Timeline View window so unused tags can be hidden, and it's possible to select only certain classes of tags to display. PRs #61 and #62.
- The dialog boxes for Timeline View and Session Log now remember the filter choices from previous instance for the same project. PR #62.
- When having a document open in the editor, text can be imported into it from a plain text file. No formatting conversion of the imported text is performed. That is up to the user. However, this allows for importing novelWriter documents from other projects or from a previous export, partially addressing request in issue #63. PR #65.
- The Export feature now includes exporting to LaTeX, which allows building PDFs with pdflatex or other tools. PR #73.
- Export of a novelWriter flavour markdown file is also supported. This file can be imported back in as-is, and almost completes an export-edit-import cycle. A split document into multiple files feature will be added soon. PR #73.
Version 0.3.1
Changes
Bug Fixes
- The backup request dialog should pop up on any change to the project during the last session, not just on unsaved changes. PR #58.
- The regex that searches for words for the spell check highlighter was not including unicode characters, so it would underline parts of words using unicode characters even if the word was spelled correctly. PR #58.
- When having unsaved changes in an open document, while changing editor configuration options, the document would be reloaded from disk when the changes were applied. This meant the unsaved changes were lost. The document is now saved before the editor is re-initialised. PR #58.
User Interface
- Added a GUI to display the session log. The log has been around for a while, and records when a project is opened, when it's closed, and how many words were added or removed during the session. This information is now available in a small dialog under
Project > Session Log
in the main menu. PR #59. - The export project feature now also exports the project to Markdown and HTML5 format. PR #57.
Version 0.3
Changes
User Interface
- Added project export feature with a new GUI dialog and a number of export setting. The export feature currently only exports to a plain text file. PR #55.