Skip to content

Releases: vkbo/novelWriter

Version 1.4.2

30 Aug 21:42
30f0e82

Choose a tag to compare

Release Notes

This is a patch release fixing an issue with the auto-replace feature for single and double quotes. The issue appears when using the new indent and text alignment codes followed by a quote symbol, and quotes following a tab or non-breaking space.

Detailed Changelog

Bugfixes

  • Any single or double straight quote following a whitespace other than a regular space, or a left indent or right align set of angle bracket codes without a space following them, would be erroneously replaced by a closing quote instead of an opening quote. Issue #874.

Version 1.5 Beta 2

26 Aug 19:16
a00d082

Choose a tag to compare

Version 1.5 Beta 2 Pre-release
Pre-release

Release Notes

This is a beta release of the next release version, and is intended for testing purposes. Please be careful when using this version on live writing projects, and make sure you make frequent backups.

Detailed Changelog

Features

  • A new dialog has been added to the Help menu for checking for new updates. It will only check for full releases, not pre-releases. The updates are not installed automatically, but a link to the website is provided. PR #863.

Other Changes

  • The grey Typicons themes have been removed. The Typicons colour themes have also been renamed. The user configuration will update the theme setting to replace the grey icon theme for dark or light background automatically. PR #869.

Internationalisation

  • The US English and Nowregian translation files have been updated. PR #870.

Documentation

  • The Windows Setup section of the documentation has been updated and simplified. PR #865.

Code Improvements

  • The novelWriter main package folder has been renamed from nw to novelwriter. This will make it easier to create packages for novelWriter at a later stage. Especially packages which will require adding the main source files to the Python install location. PR #868.

Version 1.5 Beta 1

22 Aug 09:42
80911af

Choose a tag to compare

Version 1.5 Beta 1 Pre-release
Pre-release

Release Notes

This is a beta release of the next release version, and is intended for testing purposes. Please be careful when using this version on live writing projects, and make sure you make frequent backups.

Detailed Changelog

Bugfixes

  • Fix an inconsistency on the minimum required version of Qt and PyQt between the config files and the code. PR #846.
  • Ensure that an item's status setting is parsed after its class when parsing the main project XML. This is just a precaution as the XML writing function always writes the class setting first. PR #852.
  • On Windows, the Python icon is shown on the task bar when novelWriter is run directly from code. This has now been fixed by setting a unique application ID. Issue #860. PR #861.

Open Document Exports

  • The ODT file writer class has been improved, and the code that writes out paragraphs and header section to the XML has been completely rewritten. The new algorithm is more robust and follows the open document standard more closely. It still diverts from the standard in a few cases, but these are the same points where Open Office and Libre Office diverts. Issue #783. PR #843.
  • The previous exporter class would sometimes insert additional line breaks in the generated XML for paragraphs. This does not break with the open document standard, but it was unintentional and trivial to fix. PR #843.
  • Some final clean-up was included in PR #859.

Novel Layouts

  • All novel layouts, that is "TITLE", "PAGE", "BOOK", "PARTITION", "UNNUMBERED", "CHAPTER" and "SCENE" have been merged into a single layout "DOCUMENT". The "NOTE" layout remains unchanged. The special formatting of level one header on the title page and chapter headers for unnumbered chapters is now handled by a modified header formatting code. Issue #835. PR #837.
  • A formatting code for manually inserting page breaks in the text has been added. In the process, similar codes were added to insert vertical spaces in the text. Issue #835. PRs #837 and #848.
  • Dropping the layouts also triggered several changes to how project items are now displayed. The difference between document types is now indicated with a combination of icons and item label emphasis. The last column in the project tree also now only shows the item status or importance, not item class and layout. The Item Details panel below the tree has also been updated to show a usage description instead of layout as the last entry. Issue #835. PRs #847, #849 and #852.

Other Features

  • A warning will pop up when you launch an alpha version of novelWriter. Since the main branch is now also the development branch, people may run novelWriter directly from source without checking out a release version. Alpha versions are not considered stable. PR #844.
  • Two new settings have been added to Preferences. One to control how much information is shown in the last column of the project tree, and one to control whether emphasis is used to indicate which novel documents contain a level one or two header. PRs #847 and #852.
  • The label on the first column of the project and novel trees have been renamed to "Project Tree" and "Novel Outline", respectively. PR #852.
  • The Help > User Manual (Online) menu entry sends you to the online documentation, and the local documentation is handled by Help > User Manual (PDF), replacing the old Qt Assistant implementation. PRs #856, #859 and #862.

Documentation

  • The documentation has been updated and extended to cover the new layout behaviour and to provide information and instruction on how to update the project with the new formats. PRs #850, #851 and #855.
  • The technical section of the documentation has been updated, and information on how to run tests has been added. PR #859.

Code Improvements

  • The loading and saving of user preferences in the config class has been improved a bit and the code modernised to the current recommended practice for the ConfigParser module. PR #826.
  • The index class has been improved. Some data fields that were not being used have been dropped. In addition, a new function has been added that provides a custom indentation scheme for JSON files. The default indentation inserts far too many line breaks. The new function only indents up to a certain level. Indenting the JSON files is useful for people who use version control software on their projects. The limited indentation scheme reduces the number of diff lines as well as reduces the overall file size. PR #840.

Version 1.4.1

27 Jul 21:48
6234437

Choose a tag to compare

Release Notes

This release fixes a couple of minor issue with some of the dialog boxes. The fix was accidentally left out of release 1.4.

Please see the 1.4 Release Notes for the full list of changes.

Detailed Changelog

Bugfixes

  • The way margins are determined in the paged dialogs used many places, including Preferences, has been improved. These margins would sometimes be set to zero when they shouldn't. PR #834.
  • Dialogs that are non-modal are no longer duplicated when opened multiple times. Instead, the existing dialog is moved to the front. PR #834.

Version 1.4

27 Jul 21:19
83e9299

Choose a tag to compare

Release Notes

This release contains some new features and a lot of code refactoring. Among the main new features is paragraph alignment and indentation. Regular line breaks within paragraphs are now also supported. The changes are described in more detail below.

Internationalisation

Translation files have been added for Simplified Chinese by Qianzhi Long.

Line Breaks

The way line breaks inside paragraphs work has been changed. A single line break is now treated as a proper line break and will show up in the document viewer and exported documents. A single line break does not start a new paragraph, but forces a break inside the paragraph like a Shift + Enter does in most rich text editors. Two line breaks is still needed to start a new paragraph.

The old syntax of adding two spaces at the end of a line to force a line break within a paragraph will still work as before, so there is no need to change your existing text if you've used this feature. However, there is a new highlighting feature that will show you where in the text you have redundant spaces. If you are used to having double spaces between sentences, you may want to switch off this highlighting feature in Preferences as it will also detect those.

A helper function has been added to the Format menu that can look through a paragraph and remove line breaks in case you've been using line breaks inside your existing text under the assumption that the exporter and viewer will ignore them.

I hope this change will not be too inconvenient. I believe the new behaviour will make more sense for most people. Especially considering some of the feedback I've gotten on how line breaks work. The original implementation was following the Markdown standard, but since novelWriter is not a proper Markdown editor and instead just borrows from Markdown, this behaviour always seemed a bit unnecessary.

Text Alignment and Indentation

The default text alignment is left or justified based on your preferences. For documents with the layout set to Title Page or Partitions, the default is centred. However, sometimes you may want to override this default. A new set of codes have therefore been added to allow specifying alignment as well as additional text margins on individual paragraphs.

The logic of the syntax is as follows:

A single angle bracket will push the text away from the edge it points away from. Therefore, a single > before the paragraph, or a single < after the paragraph, will add indentation on the respective side. It's perfectly valid to do this on both sides at the same time.

A double set of angle brackets will push the text all the way towards the opposite side. Therefore, a double set of >> before the paragraph will indicate right alignment, and a double set of << after the paragraph will force left alignment. Also here both can be used at the same time, which results in the paragraph being centred.

Format menu entries and keyboard shortcuts have been added so that you don't have to memorise these codes.

These Release Notes also include the changes from 1.4 Beta 1 and RC 1.

Detailed Changelog

Internationalisation

  • US English and Norwegian translations have been updated by @vkbo. PR #825.
  • French translations have been updated by @jyhelle. PR #829.

Version 1.4 RC 1

12 Jul 18:57
6890b27

Choose a tag to compare

Version 1.4 RC 1 Pre-release
Pre-release

Release Notes

This is a preview release of novelWriter 1.4. It contains some new features and a lot of code refactoring. This release is a testing release, and may contain bugs. Please be careful when using this version to work on your projects.

Below are the main feature changes of this release.

Internationalisation

Translation files have been added for Simplified Chinese by Qianzhi Long.

Line Breaks

The way line breaks inside paragraphs work has been changed. A single line break is now treated as a proper line break and will show up in the document viewer and exported documents. A single line break does not start a new paragraph, but forces a break inside the paragraph like a Shift + Enter does in most rich text editors. Two line breaks is still needed to start a new paragraph.

The old syntax of adding two spaces to force a line break within a paragraph will still work as before, so there is no need to change your existing text if you've used this feature. However, there is a new highlighting feature that will show you where in the text you have redundant spaces. If you are used to having double spaces between sentences, you may want to switch off this highlighting feature in Preferences as it will also detect those.

A helper function has been added to the Format menu that can look through a paragraph and remove line breaks in case you've been using line breaks inside your existing text under the assumption that the exporter and viewer will ignore them.

I hope this change will not be too inconvenient. I believe the new behaviour will make more sense for most people. Especially considering some of the feedback I've gotten on how line breaks work. The original implementation was following the Markdown standard, but since novelWriter is not a proper Markdown editor and instead just borrows from Markdown, this behaviour always seemed a bit unnecessary.

Text Alignment and Indentation

The default text alignment is left or justified based on your preferences. For documents with the layout set to Title Page or Partitions, the default is centred. However, sometimes you may want to override this default. A new set of codes have therefore been added to allow specifying alignment as well as additional text margins on individual paragraphs.

The logic of the syntax is as follows:

A single angle bracket will push the text away from the edge it points away from. Therefore, a single > before the paragraph, or a single < after the paragraph, will add indentation on the respective side. It's perfectly valid to do this on both sides at the same time.

A double set of angle brackets will push the text all the way towards the opposite aide. Therefore, a double set of >> before the paragraph will indicate right alignment, and a double set of << after the paragraph will force left alignment. Also here both can be used at the same time, which results in the paragraph being centred.

Format menu entries and keyboard shortcuts have been added so that you don't have to memorise these codes.

These Release Notes also include the changes from 1.4 Beta 1.

Detailed Changelog

Internationalisation

  • Translation files have been added for Simplified Chinese. The translation has been provided by Qianzhi Long (@longqzh). PR #817.

Code Improvements

  • Improve PEP8 compliance for the source code. PRs #816 and #820.
  • The way messages are written to the logging tool has been improved. PR #818.
  • Some improvements to parsing and encoding of HTML has been added. PR #821.
  • Test coverage of the document editor has been improved. PR #787.

Version 1.3.3

13 Jun 15:16
f39cda7

Choose a tag to compare

Release Notes

This patch release fixes a potential file encoding issue when running setup on Windows, and a minor issue with the project word count not being updated immediately when a file is deleted. In addition, the keyboard shortcuts to change focus between the project tree, the editor, the viewer, and the outline panel, have been changed for Windows users. They keyboard shortcuts were interfering with the Alt codes used for special characters. The shortcuts are unchanged for Linux and macOS.

Detailed Changelog

Bugfixes

  • Fix an issue with file encoding when extracting version information from the source code during setup on Windows. This seems to be a limited issue, but the changes make the relevant function more fault tolerant. Issue #805. PR #807.
  • The project word count on the status bar was not always updated when a file was permanently deleted from the project. This has now been resolved. Issue #799. PR #810.
  • The keyboard shortcuts to change focus will on Windows interfere with the alt key codes as the focus shortcuts used Alt+ to Alt+4. On Windows, these are now instead Ctrl+Alt+1 to Ctrl+Alt+4. Part of issue #740. PR #808.

Source Code

  • Remove a redundant line in the source code. PR #802.
  • Make the XML parse for project items a little less panicky when encountering unexpected XML tags. Generally, this shouldn't be a problem, but the XML parser should silently ignore unexpected tags when parsing the project file. This may occur if a project is opened in an earlier version of novelWriter. If so, a warning is issued anyway, so it is safe to disregard unrecognised tags as the user has already actively selected to proceed and been sufficiently warned. PR #809.

Version 1.4 Beta 1

13 Jun 18:08
ad62faa

Choose a tag to compare

Version 1.4 Beta 1 Pre-release
Pre-release

Release Notes

This is a preview release of novelWriter 1.4. It contains some new features and a lot of code refactoring. This release is a testing release, and may contain bugs. Please be careful when using this version to work on your projects.

Below are the main feature changes of this release.

Line Breaks

The way line breaks inside paragraphs work has been changed. A single line break is now treated as a proper line break and will show up in the document viewer and exported documents. A single line break does not start a new paragraph, but forces a break inside the paragraph like a Shift + Enter does in most rich text editors. Two line breaks is still needed to start a new paragraph.

The old syntax of adding two spaces to force a line break within a paragraph will still work as before, so there is no need to change your existing text if you've used this feature. However, there is a new highlighting feature that will show you where in the text you have redundant spaces. If you are used to having double spaces between sentences, you may want to switch off this highlighting feature in Preferences as it will also detect those.

A helper function has been added to the Format menu that can look through a paragraph and remove line breaks in case you've been using line breaks inside your existing text under the assumption that the exporter and viewer will ignore them.

I hope this change will not be too inconvenient. I believe the new behaviour will make more sense for most people. Especially considering some of the feedback I've gotten on how line breaks work. The original implementation was following the Markdown standard, but since novelWriter is not a proper Markdown editor and instead just borrows from Markdown, this behaviour always seemed a bit unnecessary.

Text Alignment and Indentation

The default text alignment is left or justified based on your preferences. For documents with the layout set to Title Page or Partitions, the default is centred. However, sometimes you may want to override this default. A new set of codes have therefore been added to allow specifying alignment as well as additional text margins on individual paragraphs.

The logic of the syntax is as follows:

A single angle bracket will push the text away from the edge it points away from. Therefore, a single > before the paragraph, or a single < after the paragraph, will add indentation on the respective side. It's perfectly valid to do this on both sides at the same time.

A double set of angle brackets will push the text all the way towards the opposite aide. Therefore, a double set of >> before the paragraph will indicate right alignment, and a double set of << after the paragraph will force left alignment. Also here both can be used at the same time, which results in the paragraph being centred.

Format menu entries and keyboard shortcuts have been added so that you don't have to memorise these codes.

Detailed Changelog

Bugfixes

  • A number of calls for the pop-up alert box were missing translation wrappers. That means they could not be translated into other languages. The alerts have been fixed, but the PR does not add the missing translations. PR #806.
  • A duplicate error message from the index class has been removed. PR #758.

Features

  • Single line breaks are now treated as proper line breaks within paragraphs. Paragraphs are still separated by two line breaks like before. This means that it is no longer necessary to leave two spaces at the end of the line to force a line break. This is a rather obscure and little known feature taken from Markdown, and it isn't very intuitive. Issue #785. PR #786.
  • It is now possible to specify text alignment and additional indentation on individual paragraphs in the text. Both features use a similar syntax that I hope is fairly intuitive. Menu entries and keyboard shortcuts have also been added to make it easier to use these features. Issues #595 and #803. PR #804.

Code Improvements

  • Class initialisation has been made consistent. All GUI classes now inherit the main window as its parent class, and all other classes inherit the main project class as its parent. Since the project class and the main window class have pointers to each other, all needed pointers are available from their respective classes. PR #758.
  • The document class has been changed from a reusable class to a class that is intended to wrap a single document via its handle. The class was originally written for the document editor where the reusable approach made more sense. But it is much simple to create and destroy them in other parts of the code when they are not reusable. PRs #758 and #760.
  • The document class no longer generates any pop-up alerts. Errors are recorded and retrieved and displayed by the parent or caller class. PR #758.
  • Refactored the code of the editor class to make it more isolated by making most class variables private. PR #779.
  • Made similar changes to the viewer class and item details class. PR #780.

Version 1.3.2

30 May 10:21
616fe35

Choose a tag to compare

Release Notes

This is a patch release that fixes some minor issues. One issue was with the split tool, which would drop the last line from the source document during a split if it was missing a final line break. A minor issue with the display of word counts on the details panel under the project tree has also been fixed. In addition, the setup script commands for Linux have been improved a bit.

Detailed Changelog

Bugfixes

  • The details panel under the tree would sometimes show character, word and paragraph counts even when there was no document selected. This has now been fixed. Issue #781. PR #782.
  • The split document tool would drop the last line of the source document. This is generally not a problem if the last line has a line break after it, but if it doesn't, it is lost in the split. This was caused by an offset error when calculating the split positions in the file and has been resolved. Issue #795. PR #796.

Installation

  • Due to an error in the setup script in the past, a desktop icon was created for novelWriter when running the xdg-install command. This is no longer the case, but the old icon was still left on some user's desktops. The setup script will now remove that icon if it exists when the xdg-install or xdg-uninstall commands are run. PR #784.

Version 1.3.1

06 May 20:29
486676b

Choose a tag to compare

Release Notes

This is a patch release primarily to fix a problem with the Qt translation library used to make novelWriter available in multiple languages. One of the function calls made to the library was added recently, in Qt 5.15, which many users on Linux will not have installed on their system. The issue could be resolved by updating the library, but it's an unnecessary and inconvenient restriction.

Detailed Changelog

Bugfixes

  • The code to load translation files for the main GUI was using a function in the QTranslate class that was added in version 5.15, which means novelWriter could not start on a lower version of the Qt library if translation files were present. We don't want to force users to use Qt 5.15, so the call has been removed. Issue #773. PR #774.

Other Fixes

  • When generating a new project on Windows, the code that generates the new documents in the project would create duplicate handles, causing a warning to be printed. The warning is harmless as the collisions are handled. They are caused by the resolution of the clock available to Python on Windows being in the tens of millisecond range, much slower than the code generates the new project files. The solution was to append a counter to the timestamp from the clock, ensuring that the seed is always unique. Issue #769. PR #776.