Compare commits

...

544 Commits
v2.4b1 ... v2.5

Author SHA1 Message Date
Veronica Berglyd Olsen
742f84576e Release 2.5 (#1972) 2024-07-10 16:45:13 +02:00
Veronica Berglyd Olsen
ba81662d6a Bump version to 2.5 and update changelog 2024-07-10 16:41:49 +02:00
Veronica Berglyd Olsen
f669ac1265 Update documentation for 2.5 (#1928) 2024-07-10 16:21:54 +02:00
Veronica Berglyd Olsen
b8a97b1afc Update docs 2024-07-10 16:18:29 +02:00
Veronica Berglyd Olsen
4eb0ed386c Merge branch 'main' into update_docs 2024-07-09 19:58:44 +02:00
Veronica Berglyd Olsen
ece225c355 Fix first line indent between pages (#1971) 2024-07-08 14:07:58 +02:00
Veronica Berglyd Olsen
69d97a3f3e Add additional test coverage 2024-07-08 14:02:05 +02:00
Veronica Berglyd Olsen
dcecaae3af Fix indent info not passed between pages (#1965) 2024-07-08 14:01:42 +02:00
Veronica Berglyd Olsen
1c261ef371 Add focus switch on welcome dialog (#1968) 2024-07-07 20:04:58 +02:00
Veronica Berglyd Olsen
ea89e66a46 Focus project name field when entering new project form on welcome dialog (#1967) 2024-07-07 19:59:35 +02:00
Veronica Berglyd Olsen
dd03c19be2 Fix preview indent and status bar LEDs (#1962) 2024-07-05 15:20:30 +02:00
Veronica Berglyd Olsen
08e6d320df Use text colour for LED border 2024-07-05 15:16:58 +02:00
Veronica Berglyd Olsen
446163c6de Add DPI scaling to status LEDs 2024-07-05 15:14:30 +02:00
Veronica Berglyd Olsen
abd503b5a2 Rename the em variable for clarity 2024-07-05 14:51:12 +02:00
Veronica Berglyd Olsen
2e1c08cbfa Fix em unit calculation in document preview (#1961) 2024-07-05 13:21:39 +02:00
Veronica Berglyd Olsen
7bdadadea1 Minor changes to pkgutils (#1959) 2024-07-04 22:28:13 +02:00
Veronica Berglyd Olsen
bc33a4d0d4 Move build-clean to after the build commands in pkgutils 2024-07-04 22:24:33 +02:00
Veronica Berglyd Olsen
188bc5d16f Restore usage of wrapper functions for read and write in pkgutils 2024-07-04 22:22:41 +02:00
Veronica Berglyd Olsen
3fd0385160 Rewrite build tools (#1958) 2024-07-04 22:11:10 +02:00
Veronica Berglyd Olsen
5f3f55133e Remove manual build from linux tests 2024-07-04 22:08:28 +02:00
Veronica Berglyd Olsen
47b8e12bc7 Fix a few workflow issues 2024-07-04 22:07:33 +02:00
Veronica Berglyd Olsen
cc97129e64 Add description to pkgutils help 2024-07-04 22:01:52 +02:00
Veronica Berglyd Olsen
e40e282837 Fix bug in Windows build script 2024-07-04 21:44:28 +02:00
Veronica Berglyd Olsen
eba0fa58bf Update Windows build job 2024-07-04 21:40:48 +02:00
Veronica Berglyd Olsen
1c0fdd6a17 Update XDG tools, clean up and fix a deb build issue 2024-07-04 21:38:31 +02:00
Veronica Berglyd Olsen
43eb62576c Fix Windows installer and update MacOS PList generator 2024-07-04 21:16:49 +02:00
Veronica Berglyd Olsen
d43a799389 Updated Windows packaging code 2024-07-04 21:00:15 +02:00
Veronica Berglyd Olsen
4d716555af Updated AppImage packaging code 2024-07-04 20:31:53 +02:00
Veronica Berglyd Olsen
7c65d22452 Updated debian packaging code 2024-07-04 19:45:54 +02:00
Veronica Berglyd Olsen
1b8867537e Update all assets commands to pkgutils 2024-07-04 18:34:10 +02:00
Veronica Berglyd Olsen
b91a11980b Split build workflows (#1957) 2024-07-04 16:51:59 +02:00
Veronica Berglyd Olsen
e80a9824f6 Add placeholder Windows build job 2024-07-04 16:47:39 +02:00
Veronica Berglyd Olsen
140b22dc63 Split GitHub build workflows 2024-07-04 16:42:46 +02:00
Veronica Berglyd Olsen
60169b914a Revert main to 2.5 RC1 2024-07-04 16:32:01 +02:00
Veronica Berglyd Olsen
fbe381638a Merge branch 'release' 2024-07-04 16:30:26 +02:00
Veronica Berglyd Olsen
6dcb44c391 Improve open project error message (#1956) 2024-07-04 16:24:16 +02:00
Veronica Berglyd Olsen
54c7c5a463 Add path info to open project error dialogs (#1944) 2024-07-04 16:19:04 +02:00
Veronica Berglyd Olsen
d5bcee14f5 Update translations for 2.5 (#1955) 2024-07-04 16:08:04 +02:00
Veronica Berglyd Olsen
0064b742d3 Update credits and reduce the number of links 2024-07-04 16:05:01 +02:00
Veronica Berglyd Olsen
9f88f3b79e Update translations for 2.5 and add Polish 2024-07-04 15:16:15 +02:00
Veronica Berglyd Olsen
b95d030032 Fix various minor issues (#1954) 2024-07-03 21:13:28 +02:00
Veronica Berglyd Olsen
f4f3f82954 Add a wait statement to check paintEvent in Preferences 2024-07-03 20:29:00 +02:00
Veronica Berglyd Olsen
5e8892ee7c Rewrite the tree view focus switch (#1949) 2024-07-03 19:39:29 +02:00
Veronica Berglyd Olsen
42b1e6a559 Only switch focus between editor and viewer when viewer is visible (#1950) 2024-07-03 18:38:32 +02:00
Veronica Berglyd Olsen
e1bcfcfc05 Convert Preferences dialog to save/cancel like Project Settings 2024-07-03 18:29:38 +02:00
Veronica Berglyd Olsen
069e35565f Refresh coloured labels when theme change (#1951) 2024-07-03 18:18:41 +02:00
Veronica Berglyd Olsen
880b560a39 Bump main branch to 2.6 alpha 0 2024-06-24 16:38:25 +02:00
Veronica Berglyd Olsen
8becc83c05 Update i18n source files (#1943) 2024-06-22 16:13:20 +02:00
Veronica Berglyd Olsen
b5ef62194d Update i18n files 2024-06-22 15:02:29 +02:00
Veronica Berglyd Olsen
a87c287fa6 Release 2.5 RC 1 (#1939) 2024-06-22 14:21:45 +02:00
Veronica Berglyd Olsen
18f5deee82 Change release date and extend changelog 2024-06-22 14:17:44 +02:00
Veronica Berglyd Olsen
53545a0015 Merge branch 'main' into release_2.5rc1 2024-06-21 00:41:03 +02:00
Veronica Berglyd Olsen
f662eaeccc Revert font setting in custom class (#1941) 2024-06-21 00:40:45 +02:00
Veronica Berglyd Olsen
1e6377abaa Revert font setting from SHARED instance in colour label, which caused some weird issues 2024-06-21 00:35:28 +02:00
Veronica Berglyd Olsen
516db26c05 Add latest change to the changelog 2024-06-21 00:33:22 +02:00
Veronica Berglyd Olsen
2df55cf6ee Merge branch 'main' into release_2.5rc1 2024-06-21 00:26:40 +02:00
Veronica Berglyd Olsen
251475197d Add focus widget hinting (#1940) 2024-06-21 00:26:20 +02:00
Veronica Berglyd Olsen
802069b4e5 Try adding deleteLater to i18n test 2024-06-21 00:21:45 +02:00
Veronica Berglyd Olsen
d07543926f Disable failing fast in Linux test matrix 2024-06-21 00:18:10 +02:00
Veronica Berglyd Olsen
5665efd9d7 Update docs and test coverage 2024-06-20 23:32:02 +02:00
Veronica Berglyd Olsen
ea7f3fe51c Add editor/viewer toggle feature 2024-06-19 20:42:23 +02:00
Veronica Berglyd Olsen
c6569b63e5 Add focus indication to editor and viewer header 2024-06-18 22:42:52 +02:00
Veronica Berglyd Olsen
930c60ae4a Add faded colour to theme 2024-06-18 22:42:19 +02:00
Veronica Berglyd Olsen
869cdd2fb0 Extend colour label widget to accept two colour states 2024-06-18 22:41:29 +02:00
Veronica Berglyd Olsen
f7d0adad1b Shuffle around private slots in main GUI 2024-06-18 22:39:33 +02:00
Veronica Berglyd Olsen
d25e2adfb6 Bump version to 2.5rc1 and update changelog 2024-06-18 08:39:28 +02:00
Veronica Berglyd Olsen
cb3a24bcd2 Rehighlight tags on note creation (#1938) 2024-06-16 21:22:44 +02:00
Veronica Berglyd Olsen
6540c56672 Remove no longer needed rehighlighting code 2024-06-16 21:19:42 +02:00
Veronica Berglyd Olsen
efc94a7fd5 Sort signals in main GUI 2024-06-16 21:18:41 +02:00
Veronica Berglyd Olsen
683e81c57b Connect rehighlight tags in editor to index signal on tags change (#1916) 2024-06-16 21:13:50 +02:00
Veronica Berglyd Olsen
f548927b74 Refactor custom widgets (#1937) 2024-06-16 17:37:36 +02:00
Veronica Berglyd Olsen
53522908c8 Improve test coverage 2024-06-16 17:29:29 +02:00
Veronica Berglyd Olsen
43cdc8420c Merge progress bars into single source file 2024-06-16 16:14:11 +02:00
Veronica Berglyd Olsen
45ad0f8c20 Update global search (#1936) 2024-06-16 16:12:51 +02:00
Veronica Berglyd Olsen
59c9783393 Remove commented out line 2024-06-16 16:03:35 +02:00
Veronica Berglyd Olsen
611a6bb80a Include the whole word when displaying search results 2024-06-16 15:58:30 +02:00
Veronica Berglyd Olsen
ee46fdb5b1 Refresh global search when toggling settings, if there is a search 2024-06-16 15:27:46 +02:00
Veronica Berglyd Olsen
7c33c949cb Merge the two methods in the shared class to save editor content 2024-06-16 15:23:22 +02:00
Veronica Berglyd Olsen
e9e7fae40e Support line height in build tool (#1935) 2024-06-16 15:10:39 +02:00
Veronica Berglyd Olsen
ac05b07f10 Add line height formatting to build preview (#1920) 2024-06-16 15:05:45 +02:00
Veronica Berglyd Olsen
aff027b735 Remember last used path for each tool individually (#1934) 2024-06-16 12:05:32 +02:00
Veronica Berglyd Olsen
14f1697428 Rename lastPath in build settings 2024-06-16 11:23:59 +02:00
Veronica Berglyd Olsen
a3381f1f79 Remove fallback parameter for lastPath and remove commented out code 2024-06-16 11:23:42 +02:00
Veronica Berglyd Olsen
1b7d331e41 Update more docstring 2024-06-16 00:55:33 +02:00
Veronica Berglyd Olsen
df34293e74 Update docstring 2024-06-16 00:54:48 +02:00
Veronica Berglyd Olsen
fe27acc3ef Add full test coverage 2024-06-16 00:49:24 +02:00
Veronica Berglyd Olsen
35632abea3 Update current tests 2024-06-16 00:37:21 +02:00
Veronica Berglyd Olsen
ea247c5814 Remember new project folder last used path (#1930) 2024-06-16 00:31:02 +02:00
Veronica Berglyd Olsen
928a116666 Update current usage of last path 2024-06-16 00:22:38 +02:00
Veronica Berglyd Olsen
2a99cafbf2 Add a class to store last used paths 2024-06-16 00:21:54 +02:00
Veronica Berglyd Olsen
2196486454 Update Windows packaging (#1932) 2024-06-14 22:53:16 +02:00
Veronica Berglyd Olsen
f99bd79ce8 Merge branch 'main' into win_installer 2024-06-14 21:37:08 +02:00
Veronica Berglyd Olsen
ddaced1b78 Update the Inno Setup installer script to change compression method and fix some warnings and issues 2024-06-14 16:09:52 +02:00
Veronica Berglyd Olsen
3e8845ab58 Ensure HTML tags are properly closed in output documents (#1926) 2024-06-13 15:56:23 +02:00
Veronica Berglyd Olsen
d5be1e0479 Update text formatting documentation 2024-06-13 15:55:45 +02:00
Veronica Berglyd Olsen
babc39c6a2 Add test coverage 2024-06-13 15:48:09 +02:00
Veronica Berglyd Olsen
5c35ebeffa Rewrite HTML tag insertion to check for correct open and close of tags (#1919) 2024-06-13 01:00:01 +02:00
Veronica Berglyd Olsen
5fbc608c90 Merge Release 2.4.4 into main 2024-06-12 21:40:37 +02:00
Veronica Berglyd Olsen
0c7808a24b Release 2.4.4 (#1924) 2024-06-12 21:19:24 +02:00
Veronica Berglyd Olsen
4aadbdaed2 Bump version to 2.4.4 and update changelog 2024-06-11 22:36:31 +02:00
Veronica Berglyd Olsen
195a7e354b Ensure editor content is saved before using it (#1923) 2024-06-11 22:12:03 +02:00
Veronica Berglyd Olsen
c03e832c7b Make sure editor document is saved before using first title to set item label (#1914) 2024-06-11 22:00:59 +02:00
Veronica Berglyd Olsen
73515c96d8 Add a method in the shared object to ensure document editor is saved 2024-06-11 21:59:58 +02:00
Veronica Berglyd Olsen
e7c0d59809 Allow more characters to be used in file names (#1922) 2024-06-11 21:45:08 +02:00
Veronica Berglyd Olsen
556caea308 Make the file name safe function less restrictive 2024-06-11 21:38:50 +02:00
Veronica Berglyd Olsen
6d54902a08 Fix multiple tools dialog issue (#1921) 2024-06-11 01:02:39 +02:00
Veronica Berglyd Olsen
fb32cea5b5 Update writing stats tests 2024-06-11 00:54:05 +02:00
Veronica Berglyd Olsen
69cd443999 Fix duplicate tool dialogs issue 2024-06-11 00:53:50 +02:00
Veronica Berglyd Olsen
cc61c5321e Extend dialogue highlighting (#1908) 2024-06-11 00:16:32 +02:00
Veronica Berglyd Olsen
7821f099bf Use consistent dialogue colours in preview, ODT and HTML 2024-06-11 00:11:44 +02:00
Veronica Berglyd Olsen
4b0ad6ec48 Add test coverage of ODT dialogue 2024-06-11 00:03:54 +02:00
Veronica Berglyd Olsen
416c580a45 Fix highlighting of multiple dialogue sections 2024-06-10 23:50:59 +02:00
Veronica Berglyd Olsen
0b3488c265 Add processing of dialogue highlight for ODT files 2024-06-10 23:12:54 +02:00
Veronica Berglyd Olsen
f0f5ae6dc9 Add support for dialogue highlighting in HTML output 2024-06-10 17:18:03 +02:00
Veronica Berglyd Olsen
f61ce3919b Add highlight option to build settings and preview 2024-06-10 17:01:40 +02:00
Veronica Berglyd Olsen
67c6497e2a Merge branch 'main' into dialogue_highlight 2024-06-10 13:48:40 +02:00
Veronica Berglyd Olsen
9bcb2479ac Refactor dialog closing (#1918) 2024-06-10 13:48:14 +02:00
Veronica Berglyd Olsen
8a9b038d56 Use the direct insert call 2024-06-10 13:44:47 +02:00
Veronica Berglyd Olsen
eed4721ef0 Make lipusm test more robust 2024-06-10 13:25:20 +02:00
Veronica Berglyd Olsen
b76c866c9d Fix typo in docstring 2024-06-10 01:10:59 +02:00
Veronica Berglyd Olsen
255a4a327e Update tests 2024-06-10 01:05:13 +02:00
Veronica Berglyd Olsen
811db81a86 Use the reject slot for dialogs since close is not actually a slot 2024-06-10 01:04:10 +02:00
Veronica Berglyd Olsen
29b61c07b0 Restore the keyPressEvent overload for Preferences 2024-06-10 01:03:20 +02:00
Veronica Berglyd Olsen
f8c1ee90ce Reimplement the reject slot for the parent dialog class 2024-06-10 01:02:48 +02:00
Veronica Berglyd Olsen
d9c86d56bb Merge branch 'main' into dialogue_highlight 2024-06-09 00:10:14 +02:00
Veronica Berglyd Olsen
cddf63f111 Improve memory handling and fix a few variables (#1913) 2024-06-09 00:08:52 +02:00
Veronica Berglyd Olsen
ca91e6a677 Improve meminfo debug formatting 2024-06-09 00:05:45 +02:00
Veronica Berglyd Olsen
a48fde95a3 Update tests 2024-06-08 23:35:29 +02:00
Veronica Berglyd Olsen
aed4ba4310 Rename the modifier apostrophe constants 2024-06-08 23:35:20 +02:00
Veronica Berglyd Olsen
57ee88059d Remove lambda slots in preferences dialog that blocked freeing memory 2024-06-08 23:34:31 +02:00
Veronica Berglyd Olsen
c8dccbe438 Fix typo in predefined type 2024-06-08 23:34:12 +02:00
Veronica Berglyd Olsen
8a071090e0 Merge branch 'main' into dialogue_highlight 2024-06-04 18:26:12 +02:00
Veronica Berglyd Olsen
cbf76e6575 Move project name first in window title (#1911) 2024-06-04 18:25:27 +02:00
Veronica Berglyd Olsen
83d2cb4f82 Swap project name and app name in window title (#1910) 2024-06-04 18:19:21 +02:00
Veronica Berglyd Olsen
497d4dd7f9 Add stubs file to dev requirements 2024-06-04 17:56:30 +02:00
Veronica Berglyd Olsen
d48f1fa292 Update QTextDocument test 2024-06-02 23:48:42 +02:00
Veronica Berglyd Olsen
7744ae5912 Fix footnote navigation in viewer 2024-06-02 23:36:28 +02:00
Veronica Berglyd Olsen
92b7168363 Add tests for patterns 2024-06-01 23:03:30 +02:00
Veronica Berglyd Olsen
8fc97c263b Try to fix 3.10 test seg fault 2024-06-01 18:18:21 +02:00
Veronica Berglyd Olsen
d190315909 Make a few improvements to regex and remove debug output 2024-06-01 14:16:05 +02:00
Veronica Berglyd Olsen
987740f7e9 Add dialogue highlighting to the viewer 2024-06-01 13:35:22 +02:00
Veronica Berglyd Olsen
2e143071d9 Add dialogue processing to the tokenizer 2024-06-01 13:34:59 +02:00
Veronica Berglyd Olsen
388141aae6 Move text regex patterns to a separate class 2024-06-01 13:06:46 +02:00
Veronica Berglyd Olsen
80811ebf44 Don't highlight dialogue in notes 2024-06-01 12:41:42 +02:00
Veronica Berglyd Olsen
208c4fb8ba Refresh StatusLEDs when theme changes (#1906) 2024-05-30 20:54:01 +02:00
Veronica Berglyd Olsen
38a5fddb9d Update tests 2024-05-30 20:49:55 +02:00
Veronica Berglyd Olsen
f844a5080a Update StatusLED to be theme refreshable and use trinary enum for values (#1893) 2024-05-30 20:49:46 +02:00
Veronica Berglyd Olsen
a11a013d16 Remove deleteLater calls from Manuscript tools (#1905) 2024-05-30 16:48:17 +02:00
Veronica Berglyd Olsen
f34cb567e4 Backport deleteLater fix for Manuscript tools from 2.5 release 2024-05-30 16:43:47 +02:00
Veronica Berglyd Olsen
6cb330b06c Update Portuguese translation (#1904) 2024-05-30 16:37:08 +02:00
Veronica Berglyd Olsen
04cf375725 Update translation sources, and completed Portuguese translation 2024-05-30 16:31:17 +02:00
Veronica Berglyd Olsen
b66686a869 Make some improvements to the viewer and test coverage (#1902) 2024-05-29 21:42:40 +02:00
Veronica Berglyd Olsen
31776a51a7 Add some more easy coverage 2024-05-29 21:37:02 +02:00
Veronica Berglyd Olsen
f1b7257e73 Improve test coverage 2024-05-29 21:27:05 +02:00
Veronica Berglyd Olsen
be7078aa7e Save editor doc before opening same in viewer (#1884) 2024-05-29 21:26:29 +02:00
Veronica Berglyd Olsen
931aed6d78 Update first line indentation (#1898) 2024-05-28 23:25:18 +02:00
Veronica Berglyd Olsen
dc6fe77612 Merge branch 'main' into feature/build_preview 2024-05-28 23:20:51 +02:00
Veronica Berglyd Olsen
b387150d4f Improve dialog memory handling (#1899) 2024-05-28 23:19:39 +02:00
Veronica Berglyd Olsen
9b09b13bf9 Improve Manuscript dialog progress bar position 2024-05-28 21:43:09 +02:00
Veronica Berglyd Olsen
d8693c7afa Remove deleteLater form message boxes, and some redundant ones in tests 2024-05-28 21:23:57 +02:00
Veronica Berglyd Olsen
019dd3e478 Change how dialogs are deleted 2024-05-28 21:16:40 +02:00
Veronica Berglyd Olsen
b01a2f5abd Simplify the About dialog 2024-05-28 21:15:32 +02:00
Veronica Berglyd Olsen
087a9cdd2e Update tests 2024-05-27 23:36:53 +02:00
Veronica Berglyd Olsen
b33bf954bb Convert split and merge dialogs into class method dialogs 2024-05-27 23:36:17 +02:00
Veronica Berglyd Olsen
f7cdc7da0c Add a dialog parent class that handles escape key presses 2024-05-27 22:53:30 +02:00
Veronica Berglyd Olsen
cf14f84652 Fix test coverage 2024-05-27 21:45:31 +02:00
Veronica Berglyd Olsen
6289840a74 Update tests 2024-05-27 21:08:28 +02:00
Veronica Berglyd Olsen
770cccda49 Add some comments and add text indent to HTML 2024-05-27 21:08:09 +02:00
Veronica Berglyd Olsen
aa02c0f15d Add first line indentation to previews 2024-05-27 00:27:08 +02:00
Veronica Berglyd Olsen
ee137b6ffd Parse text indentation in the tokenizer instead 2024-05-27 00:26:53 +02:00
Veronica Berglyd Olsen
206ca6040e Post-release fixes (#1897) 2024-05-26 18:23:29 +02:00
Veronica Berglyd Olsen
16f5670c83 Remove tilde from GitHub package name 2024-05-26 18:19:39 +02:00
Veronica Berglyd Olsen
0fc1af7180 Fix some typos in new section of Preferences 2024-05-26 18:05:11 +02:00
Veronica Berglyd Olsen
55714bbcad Release 2.5 Beta 1 (#1895) 2024-05-26 16:49:07 +02:00
Veronica Berglyd Olsen
6f144c20cd Bump to 2.5 beta 1 and update changelog 2024-05-26 16:42:49 +02:00
Veronica Berglyd Olsen
f23bd3818f Add a QTextDocument format class for previews (#1892) 2024-05-26 00:57:15 +02:00
Veronica Berglyd Olsen
d3ea763d6b Add test coverage of new ToQTextDocument class 2024-05-26 00:51:27 +02:00
Veronica Berglyd Olsen
91222f631f Update manuscript tests 2024-05-25 23:02:34 +02:00
Veronica Berglyd Olsen
aceb344856 Fix a potential segfault issue in main gui and add auto-build on open manuscript tool 2024-05-25 22:43:09 +02:00
Veronica Berglyd Olsen
f11ea8d07e Make various fixes and tweaks, and update tests 2024-05-24 21:39:16 +02:00
Veronica Berglyd Olsen
a4e3bf848b Clean up no longer needed code, and fix text justify setting 2024-05-24 20:38:34 +02:00
Veronica Berglyd Olsen
e74c1057a4 Remove HTML preview mode and manuscript cache 2024-05-24 20:12:13 +02:00
Veronica Berglyd Olsen
6cc046c65c Use preview document class for manuscript preview 2024-05-24 18:52:18 +02:00
Veronica Berglyd Olsen
c97a070e98 Fix module header info 2024-05-23 22:04:19 +02:00
Veronica Berglyd Olsen
b4c0bf3322 Complete all current document viewer features in the qdoc class 2024-05-23 21:29:47 +02:00
Veronica Berglyd Olsen
e998cb634e Add working meta data blocks 2024-05-23 20:48:42 +02:00
Veronica Berglyd Olsen
c8017a1f42 Add text paragraph formatting 2024-05-23 19:43:32 +02:00
Veronica Berglyd Olsen
6d84942746 Update qdocument class to work with merged code from main 2024-05-23 19:02:27 +02:00
Veronica Berglyd Olsen
818f145b62 Merge branch 'main' into feature/preview_generator 2024-05-23 18:50:38 +02:00
Veronica Berglyd Olsen
f92c22ce7e Fix build formatting and font handling (#1891) 2024-05-23 18:49:32 +02:00
Veronica Berglyd Olsen
69b362b9d2 Add native font dialog option and fix tests 2024-05-23 18:44:45 +02:00
Veronica Berglyd Olsen
1fe7ca3db8 Update font description and add native font dialog setting to config 2024-05-22 23:31:28 +02:00
Veronica Berglyd Olsen
cc32674b0f Update tests 2024-05-22 23:13:50 +02:00
Veronica Berglyd Olsen
cf16b57f66 Clean up font handling in HTML and ODT 2024-05-22 23:13:16 +02:00
Veronica Berglyd Olsen
411163f750 Update tests 2024-05-22 17:28:57 +02:00
Veronica Berglyd Olsen
7f3da655c0 Update ODT handling of font 2024-05-22 17:28:29 +02:00
Veronica Berglyd Olsen
76e786d961 Update HTML handling of font 2024-05-22 16:59:44 +02:00
Veronica Berglyd Olsen
7e1f1a725c Switch Tokenizer to use QFont instead of font family and size 2024-05-22 16:57:50 +02:00
Veronica Berglyd Olsen
c63a0c2f58 Add new font and quote button icons 2024-05-22 16:55:36 +02:00
Veronica Berglyd Olsen
04a7e092a9 Clean up Markdown build code 2024-05-22 16:55:05 +02:00
Veronica Berglyd Olsen
309065bcbf Add general keep line breaks setting to build 2024-05-22 09:14:34 +02:00
Veronica Berglyd Olsen
20ae3febef Merge branch 'main' into feature/preview_generator 2024-05-21 23:16:27 +02:00
Veronica Berglyd Olsen
e95d33031c Improve the text tokenizer (#1885) 2024-05-21 23:11:44 +02:00
Veronica Berglyd Olsen
3fd62d0b02 Remove context menu test from main menu tests 2024-05-21 23:06:25 +02:00
Veronica Berglyd Olsen
dc0ddcfa9f Move text blocks first also in stats counter as an optimisation 2024-05-21 22:59:02 +02:00
Veronica Berglyd Olsen
7a13b14c15 Drop empty tokens from the tokenizer data 2024-05-21 22:45:01 +02:00
Veronica Berglyd Olsen
adf0550571 Update tests 2024-05-21 22:32:20 +02:00
Veronica Berglyd Olsen
ba6259f08a Update converter classes to handle only single paragraphs 2024-05-21 22:32:07 +02:00
Veronica Berglyd Olsen
d8bb2ad3ae Merge lines of the same paragraph already in the tokenizer 2024-05-21 21:58:34 +02:00
Veronica Berglyd Olsen
afe4a29fd1 Strip consecutive empty paragraphs when tokenizing 2024-05-21 20:53:45 +02:00
Veronica Berglyd Olsen
1203dd639b Add a QTextDocument generator class 2024-05-21 18:12:08 +02:00
Veronica Berglyd Olsen
aadad6aa8c Define header sizes as constants 2024-05-21 18:02:01 +02:00
Veronica Berglyd Olsen
8ac0440bb3 Rename a few files 2024-05-21 16:33:53 +02:00
Veronica Berglyd Olsen
d2fca3b980 Allow full font style settings for GUI and editor (#1881) 2024-05-20 18:37:42 +02:00
Veronica Berglyd Olsen
d6b4019614 Clean up app construction in main entry point 2024-05-20 18:33:00 +02:00
Veronica Berglyd Olsen
a6eb951361 Add font initialisation, and update tests 2024-05-20 17:36:40 +02:00
Veronica Berglyd Olsen
dce5bdd31d Update tests 2024-05-20 17:14:03 +02:00
Veronica Berglyd Olsen
0b999bd726 Fix font handling in manuscript tool 2024-05-20 17:13:10 +02:00
Veronica Berglyd Olsen
774437f7bb Save all font info for text font 2024-05-20 16:32:10 +02:00
Veronica Berglyd Olsen
c0673b8128 Save all font info for GUI font 2024-05-20 16:12:27 +02:00
Veronica Berglyd Olsen
0bc8a63ccf Add error text colour setting to theme (#1880) 2024-05-20 13:36:37 +02:00
Veronica Berglyd Olsen
192f4507e3 Update documentation 2024-05-20 13:32:13 +02:00
Veronica Berglyd Olsen
2d22adcd2a Update the dictionaries tool to use the new error colour 2024-05-20 13:32:06 +02:00
Veronica Berglyd Olsen
4c4b92fdd4 Add error text colour to theme definition 2024-05-20 13:31:38 +02:00
Veronica Berglyd Olsen
2a727d1c39 Merge branch 'main' into fix/dict_tool_error_colour 2024-05-20 13:09:44 +02:00
Veronica Berglyd Olsen
35693f5433 Fix remaining merge conflict in sample project 2024-05-20 13:09:26 +02:00
Veronica Berglyd Olsen
bf459b4090 Add error text value in themes 2024-05-20 13:08:59 +02:00
Veronica Berglyd Olsen
728f1ce1e3 Merge release 2.4.3 into main 2024-05-20 13:07:14 +02:00
Veronica Berglyd Olsen
7b8021de02 Release 2.4.3 (#1878) 2024-05-20 12:32:32 +02:00
Veronica Berglyd Olsen
60593cde21 Bump version to 2.4.3 and update changelog 2024-05-20 12:29:03 +02:00
Veronica Berglyd Olsen
f9292d61da Fix how document font is set (#1877) 2024-05-20 12:16:41 +02:00
Veronica Berglyd Olsen
9388ce6a46 Fix support for 90% font 2024-05-20 12:00:19 +02:00
Veronica Berglyd Olsen
cb19475409 Add font init to viewer, and update manuscript tool preview 2024-05-20 11:36:30 +02:00
Veronica Berglyd Olsen
09b51badd4 Add an explicit font setting function for text editor that covers all font settings 2024-05-20 11:17:23 +02:00
Veronica Berglyd Olsen
fddd5fda47 Fix crash in dictionaries install tool (#1876) 2024-05-19 21:52:54 +02:00
Veronica Berglyd Olsen
5b0a6f05ed Fix enchant folder missing bug for dictionaries tool (#1874) 2024-05-19 21:47:53 +02:00
Veronica Berglyd Olsen
51f91a27e2 Merge release 2.4.2 into main 2024-05-18 15:57:49 +02:00
Veronica Berglyd Olsen
09018d1214 Release 2.4.2 (#1872) 2024-05-18 15:22:19 +02:00
Veronica Berglyd Olsen
de12b22c97 Bump version and update changelog 2024-05-18 15:19:30 +02:00
Veronica Berglyd Olsen
d1ae7f5fe2 Update Dutch and Chinese translations 2024-05-18 15:08:39 +02:00
Veronica Berglyd Olsen
201d32f6ae Merge branch 'release' 2024-05-14 09:37:59 +02:00
Veronica Berglyd Olsen
6a441b1c6b Fix syntax highlighter init (#1866) 2024-05-14 09:37:00 +02:00
Veronica Berglyd Olsen
0afa15f2db Call highlighter init on editor init (#1865) 2024-05-14 09:29:21 +02:00
Veronica Berglyd Olsen
85eb44da02 Bump main branch to 2.5 alpha 4 2024-05-13 18:48:38 +02:00
Veronica Berglyd Olsen
4856c7a61b Improve dialogue highlighting (#1864) 2024-05-13 18:41:13 +02:00
Veronica Berglyd Olsen
1b4cc933e7 Add test coverage 2024-05-13 18:31:31 +02:00
Veronica Berglyd Olsen
d64acb038b Allow multiple widgets in config form 2024-05-13 18:31:14 +02:00
Veronica Berglyd Olsen
b5def640ed Add alternative dialog style 2024-05-13 18:11:44 +02:00
Veronica Berglyd Olsen
7e35b4c675 Update syntax themes and add alternative dialog colour 2024-05-13 17:57:19 +02:00
Veronica Berglyd Olsen
e5e3066b3d Update preferences 2024-05-13 17:51:16 +02:00
Veronica Berglyd Olsen
e1af21bf88 Add new dialogue highlighting settings 2024-05-13 17:50:18 +02:00
Veronica Berglyd Olsen
8c9d08e46b Merge branch 'release' 2024-05-13 12:33:53 +02:00
Veronica Berglyd Olsen
e4acfb4831 Fix manuscript tool font issue (#1863) 2024-05-13 12:33:22 +02:00
Veronica Berglyd Olsen
a8101c2231 Fix text font for header on build tool 2024-05-13 12:29:18 +02:00
Veronica Berglyd Olsen
a3ce426613 Clean up code style (#1859) 2024-05-10 16:39:26 +02:00
Veronica Berglyd Olsen
161d02cd98 Use python -m to run pytest 2024-05-10 16:36:14 +02:00
Veronica Berglyd Olsen
101400bea3 Clean up some linting errors 2024-05-10 16:22:55 +02:00
Veronica Berglyd Olsen
1ff9fea378 Remove banner comments 2024-05-10 16:14:47 +02:00
Veronica Berglyd Olsen
3f4538a60e Remove all END Test comments 2024-05-10 16:06:23 +02:00
Veronica Berglyd Olsen
142d7c4f3a Remove all END Enum comments 2024-05-10 16:01:44 +02:00
Veronica Berglyd Olsen
2afe0ebbe9 Remove all END Class comments 2024-05-10 16:00:56 +02:00
Veronica Berglyd Olsen
bc71a62199 Improve first line indent (#1857) 2024-05-10 15:49:59 +02:00
Veronica Berglyd Olsen
1e85ce4a84 Update tests 2024-05-10 15:26:46 +02:00
Veronica Berglyd Olsen
39951a5099 Add more settings to first line indent and move to Format section 2024-05-10 15:14:09 +02:00
Veronica Berglyd Olsen
9cbb6f3125 Merge release 2.4.1 into main 2024-05-06 22:27:29 +02:00
Veronica Berglyd Olsen
2dbd3e2534 Release 2.4.1 (#1853) 2024-05-06 21:44:15 +02:00
Veronica Berglyd Olsen
f871a51e5b Bump version number to 2.4.1 and update changelog 2024-05-06 21:40:50 +02:00
Veronica Berglyd Olsen
6ab3c68ebb Update translation files for 2.4.1 (#1850) 2024-05-06 21:29:35 +02:00
Veronica Berglyd Olsen
7243ccd44c Update translation files 2024-05-04 21:00:51 +02:00
Veronica Berglyd Olsen
2a96fa1a2d Update the docs for 2.4.1 2024-05-04 20:54:56 +02:00
Veronica Berglyd Olsen
c05620dddb Refactor Main GUI inheritance (#1849) 2024-05-02 22:36:44 +02:00
Veronica Berglyd Olsen
917977ae13 Force document save when manually calling save document 2024-05-02 22:30:58 +02:00
Veronica Berglyd Olsen
2b8338f537 Clean up Main GUI inheritance 2024-05-02 22:13:35 +02:00
Veronica Berglyd Olsen
e75b5e012c Refactor how editor document is saved, and always save cursor position 2024-05-02 21:45:50 +02:00
Veronica Berglyd Olsen
78e194d8c1 Improve handling of tool dialogs on project close 2024-05-02 21:29:07 +02:00
Veronica Berglyd Olsen
c594e07c8c Merge branch 'release' 2024-05-02 21:16:42 +02:00
Veronica Berglyd Olsen
a3ed079828 Make sure dialogs close when project closes (#1848) 2024-05-02 21:08:46 +02:00
Veronica Berglyd Olsen
976ce16ac2 Update imports 2024-05-02 21:04:39 +02:00
Veronica Berglyd Olsen
5faeb12a74 Close non-modal dialogs when project closes 2024-05-02 21:02:23 +02:00
Veronica Berglyd Olsen
acc463eb76 Prune some unneeded translation strings 2024-05-02 19:38:13 +02:00
Veronica Berglyd Olsen
3b7459ffbc Add usability updates to the build tool (#1846) 2024-05-01 22:18:15 +02:00
Veronica Berglyd Olsen
cfb19a697a Restore build preview scroll bar after update (#1837) 2024-05-01 22:10:54 +02:00
Veronica Berglyd Olsen
ceec43db67 Make sure open document is saved before we update preview or build manuscript (#1835) 2024-05-01 22:09:43 +02:00
Veronica Berglyd Olsen
229fa39436 Fix build settings bug (#1845) 2024-05-01 20:33:22 +02:00
Veronica Berglyd Olsen
2496eb22cb Make sure build map is cleared when list is updated 2024-05-01 20:32:50 +02:00
Veronica Berglyd Olsen
d0a45bceca Make sure build map is cleared when list is updated 2024-05-01 20:30:32 +02:00
Veronica Berglyd Olsen
7180fae453 Improve dialog handling (#1844) 2024-05-01 20:24:31 +02:00
Veronica Berglyd Olsen
e1a1b5980e Make sure build settings are closed before deletion 2024-05-01 20:23:59 +02:00
Veronica Berglyd Olsen
53d410a6ee Make sure build settings are closed before deletion 2024-05-01 20:18:08 +02:00
Veronica Berglyd Olsen
a56b38694c Create subclasses for non-blocking dialogs 2024-05-01 20:08:35 +02:00
Veronica Berglyd Olsen
600b60b441 Remove main gui inheritance in manuscript tools 2024-05-01 19:43:51 +02:00
Veronica Berglyd Olsen
aa7208b602 Merge branch 'release' 2024-05-01 19:38:38 +02:00
Veronica Berglyd Olsen
0092b3ece6 Fix two minor issues (#1843) 2024-05-01 19:30:13 +02:00
Veronica Berglyd Olsen
d01c1e867d Pin MacOS tests to macos-13 image 2024-05-01 19:26:59 +02:00
Veronica Berglyd Olsen
dd3c8dfac8 Use GUI font for the header and footer in the editor and viewer (#1842) 2024-05-01 19:22:22 +02:00
Veronica Berglyd Olsen
7c9c5a9a76 Fix garbage collection blocker in build settings 2024-05-01 19:12:45 +02:00
Veronica Berglyd Olsen
8f9a55c5ca Add tools settings to pyproject 2024-05-01 19:12:27 +02:00
Veronica Berglyd Olsen
ea0b61aa6d Update assets credits 2024-04-29 22:48:25 +02:00
Veronica Berglyd Olsen
b94e7159b8 Add more themes (#1840) 2024-04-29 21:37:35 +02:00
Veronica Berglyd Olsen
2eabca8267 Fix theme test 2024-04-29 21:34:28 +02:00
Veronica Berglyd Olsen
afbe434b59 Add Snazzy Light syntax theme 2024-04-29 21:26:37 +02:00
Veronica Berglyd Olsen
2a50799873 Add dracula syntax and GUI theme 2024-04-29 21:08:25 +02:00
Veronica Berglyd Olsen
77727ad500 Update tango theme 2024-04-29 21:08:11 +02:00
Veronica Berglyd Olsen
e89f1fe5a8 Fix some minor issues on other themes 2024-04-29 21:07:58 +02:00
Veronica Berglyd Olsen
503e7eceb5 Make default syntax themes consistent 2024-04-29 21:07:10 +02:00
Veronica Berglyd Olsen
c15eba8f62 Bump main branch to 2.5 Alpha 3 2024-04-28 23:19:36 +02:00
Veronica Berglyd Olsen
e2f83d5106 Update syntax themes (#1836) 2024-04-28 23:10:32 +02:00
Veronica Berglyd Olsen
937b5cca12 Rename old value colour to tag and add new value colour to all syntax themes 2024-04-28 23:07:20 +02:00
Veronica Berglyd Olsen
1d438d5d76 Separate tags and value colours 2024-04-28 22:43:46 +02:00
Veronica Berglyd Olsen
22a34be21a Fix note colour in viewer and fix tests 2024-04-28 20:08:35 +02:00
Veronica Berglyd Olsen
17a492444e Redesign the default dark colour theme 2024-04-28 19:54:08 +02:00
Veronica Berglyd Olsen
9a714a903d Add a note colour to syntax themes 2024-04-28 19:53:58 +02:00
Veronica Berglyd Olsen
69a99fc97f Add a syntax colour for special notes 2024-04-28 19:53:09 +02:00
Veronica Berglyd Olsen
8beb74689c Add footnotes (#1832) 2024-04-28 19:40:38 +02:00
Veronica Berglyd Olsen
6be7da0305 Clean up a few minor bits in the index tests 2024-04-28 18:43:22 +02:00
Veronica Berglyd Olsen
8a08fe213c Fix more deprecation warnings in xml module 2024-04-28 18:29:15 +02:00
Veronica Berglyd Olsen
205b17aea0 Fix deprecation warning in xml module 2024-04-28 18:26:38 +02:00
Veronica Berglyd Olsen
864172ea50 Add an elide function for shortening text 2024-04-28 18:22:31 +02:00
Veronica Berglyd Olsen
e01e14075c Update editor and highlight, and update tests 2024-04-28 18:05:53 +02:00
Veronica Berglyd Olsen
e9596e1bbc Fix footnote formatting for ODT and update document builder tests 2024-04-27 19:05:13 +02:00
Veronica Berglyd Olsen
db9305c230 Add a footnote to the Lorem Ipsum test project 2024-04-27 16:50:37 +02:00
Veronica Berglyd Olsen
4572d101cf Change to run MacOS test on 13 2024-04-26 22:29:26 +02:00
Veronica Berglyd Olsen
41506911c1 Fix regex flag in highlighter 2024-04-26 22:25:58 +02:00
Veronica Berglyd Olsen
b722224863 Improve comment processing 2024-04-26 22:25:08 +02:00
Veronica Berglyd Olsen
b585b8ecd1 Make the footnote registry per-file 2024-04-26 20:12:57 +02:00
Veronica Berglyd Olsen
52e8ae9cb6 Merge branch 'main' into features/footnotes 2024-04-25 23:35:40 +02:00
Veronica Berglyd Olsen
6d6d0c2d12 Require minimum Python 3.9 (#1833) 2024-04-25 23:35:26 +02:00
Veronica Berglyd Olsen
383640cb7e Drop Python 3.8 support 2024-04-25 23:30:26 +02:00
Veronica Berglyd Olsen
e5ef27dfbf Revert change in test 2024-04-25 23:25:23 +02:00
Veronica Berglyd Olsen
96741fc08b Fix remaining broken tests 2024-04-25 22:58:00 +02:00
Veronica Berglyd Olsen
dc41f495be Fix ODT tests 2024-04-24 18:39:06 +02:00
Veronica Berglyd Olsen
b278d64d0c Fix uninitialised shared class in tests 2024-04-24 18:38:50 +02:00
Veronica Berglyd Olsen
b5e32844f5 Merge branch 'main' into features/footnotes 2024-04-24 18:09:26 +02:00
Veronica Berglyd Olsen
4179d2e515 Add isort and clean up flake8 (#1831) 2024-04-24 18:08:42 +02:00
Veronica Berglyd Olsen
815ba9d553 Update linting and formatting tools 2024-04-24 17:46:00 +02:00
Veronica Berglyd Olsen
0d294f49f9 Merge branch 'main' into features/footnotes 2024-04-21 23:34:56 +02:00
Veronica Berglyd Olsen
a195cfc792 Merge branch 'release' 2024-04-21 13:56:08 +02:00
Veronica Berglyd Olsen
d3c9168ebf Make MacOS build script executable 2024-04-21 13:17:55 +02:00
Veronica Berglyd Olsen
4d153b8d99 Backport ARM build for MacOS from 2.5 branch 2024-04-21 13:14:38 +02:00
Veronica Berglyd Olsen
bf8d224064 Update build scripts (#1829) 2024-04-21 12:59:42 +02:00
Veronica Berglyd Olsen
b7ad2c969a Fix test 2024-04-20 21:49:22 +02:00
Veronica Berglyd Olsen
d78643160c Update MacOS package names and fic another launch script bug 2024-04-20 21:43:31 +02:00
Veronica Berglyd Olsen
221b38c766 Fix escapes in MacOS launch script 2024-04-20 21:36:09 +02:00
Veronica Berglyd Olsen
e8bd9b21b5 Explicitly set python exec and ignore errors from run from source blocks in main 2024-04-20 21:31:04 +02:00
Veronica Berglyd Olsen
c2f0d04a35 Merge branch 'main' into builds/macos_m1 2024-04-20 21:04:09 +02:00
Veronica Berglyd Olsen
54ebcd91cb Fix wrong hex version 2024-04-20 20:13:06 +02:00
Veronica Berglyd Olsen
07411327b6 Add some debug output 2024-04-20 19:50:45 +02:00
Veronica Berglyd Olsen
094ad1a17b Require input arguments 2024-04-20 19:44:50 +02:00
Veronica Berglyd Olsen
c362848b86 Fix bash script bug 2024-04-20 19:41:33 +02:00
Veronica Berglyd Olsen
47a8dfbd93 Go back to macos-12 runner 2024-04-20 19:35:39 +02:00
Veronica Berglyd Olsen
73b8443d7b Let's try this one more time ... 2024-04-20 18:35:31 +02:00
Veronica Berglyd Olsen
48a7929254 Escape forwarding of arguments in MacoS build script 2024-04-20 18:28:57 +02:00
Veronica Berglyd Olsen
2c1abf1519 Change package name 2024-04-20 18:18:11 +02:00
Veronica Berglyd Olsen
e27e066ccc Drop support for deprecated Linux AppImage 2024-04-20 18:12:51 +02:00
Veronica Berglyd Olsen
621e933f63 Make some tweaks to build scripts 2024-04-20 18:02:10 +02:00
Veronica Berglyd Olsen
885974a84e Keep artifacts for 14 days 2024-04-20 17:41:36 +02:00
Veronica Berglyd Olsen
b1d1af2153 Add M1 build for MacOS 2024-04-20 17:41:10 +02:00
Veronica Berglyd Olsen
cb94be5b3c Post-release updates 2024-04-20 17:30:35 +02:00
Veronica Berglyd Olsen
5a202e96fd Post-release updates 2024-04-20 17:27:12 +02:00
Veronica Berglyd Olsen
b80edee225 Merge Release 2.4 into Main 2024-04-20 17:26:12 +02:00
Veronica Berglyd Olsen
af3e2fc6ce Release 2.4 (#1827) 2024-04-20 15:29:38 +02:00
Veronica Berglyd Olsen
795007f3f8 Bump version to 2.4 and update changelog 2024-04-20 15:25:59 +02:00
Veronica Berglyd Olsen
ea3c5fa758 Update translations (#1821) 2024-04-20 15:01:22 +02:00
Veronica Berglyd Olsen
30acf11055 Update German translation and refresh other files 2024-04-20 14:58:42 +02:00
Veronica Berglyd Olsen
48e653a546 Clean up footnote key generation 2024-04-18 18:23:25 +02:00
Veronica Berglyd Olsen
a2d8aefb21 Reduce footnote index storage to keys only 2024-04-18 18:07:17 +02:00
Veronica Berglyd Olsen
ae893be79b Merge branch 'main' into features/footnotes 2024-04-18 00:01:48 +02:00
Veronica Berglyd Olsen
d846811fb9 Merge branch 'release' into i18n/update_translations 2024-04-17 00:24:27 +02:00
Veronica Berglyd Olsen
791080107f Update readme 2024-04-17 00:23:41 +02:00
Veronica Berglyd Olsen
7d22ed1249 Update packaging (#1826) 2024-04-17 00:21:42 +02:00
Veronica Berglyd Olsen
8150edbc43 Clean up and refactor package script 2024-04-17 00:12:06 +02:00
Veronica Berglyd Olsen
5acbfeffa5 Reduce zip build job to Windows only 2024-04-17 00:00:28 +02:00
Veronica Berglyd Olsen
3b763e3460 Remove windows install scripts 2024-04-16 23:54:54 +02:00
Veronica Berglyd Olsen
6dd5f4295d Drop build support for Ubuntu 20.04 2024-04-16 23:46:10 +02:00
Veronica Berglyd Olsen
ac7b0bc9a2 Drop code for pre Qt 5.15 versions 2024-04-16 23:45:59 +02:00
Veronica Berglyd Olsen
1733938eb4 Bump Qt version requirement to 5.15 2024-04-16 23:40:48 +02:00
Veronica Berglyd Olsen
e5c9ed4b80 Fix build errors for old Ubuntu LTSes 2024-04-16 23:34:25 +02:00
Veronica Berglyd Olsen
175b6747ea Fix build errors 2024-04-16 23:33:13 +02:00
Veronica Berglyd Olsen
f45170850c Fix Ubuntu builds for 20.04 and 22.04, and bump to 2.5 alpha 2 2024-04-16 23:25:30 +02:00
Veronica Berglyd Olsen
466eb65a44 Add setup.cfg back for old Ubuntu LTSes 2024-04-16 23:15:39 +02:00
Veronica Berglyd Olsen
bdce0e12c7 Simplify footnote handling in writer classes 2024-04-16 21:54:31 +02:00
Veronica Berglyd Olsen
57f9a0a844 Refactor and improve highlighter class 2024-04-16 21:52:37 +02:00
Veronica Berglyd Olsen
988d969de7 Drop the non-compliant print-orientation attribute from the ODT class 2024-04-16 21:51:54 +02:00
Veronica Berglyd Olsen
17960d286f Add a working ODT footnotes implementation 2024-04-16 00:39:48 +02:00
Veronica Berglyd Olsen
26ac68e98e Block footnotes in footnotes, and only output referenced footnotes 2024-04-16 00:37:26 +02:00
Veronica Berglyd Olsen
0729dd798b Add formatted comments for ODT 2024-04-15 18:49:49 +02:00
Veronica Berglyd Olsen
c65dee1df9 Skip footnote section if there are none 2024-04-15 18:30:07 +02:00
Veronica Berglyd Olsen
92888338f4 Add footnotes to output translation file 2024-04-15 18:25:13 +02:00
Veronica Berglyd Olsen
44192c88f5 Add footnote handling in html and markdown output 2024-04-15 18:22:55 +02:00
Veronica Berglyd Olsen
8d24243d4f Complete footnotes processing in tokenizer 2024-04-15 18:22:29 +02:00
Veronica Berglyd Olsen
7c4d4dec5c Use format list also for marker keys 2024-04-15 01:11:32 +02:00
Veronica Berglyd Olsen
9823677983 Add text marker processing in tokenizer class 2024-04-15 00:42:01 +02:00
Veronica Berglyd Olsen
ec6a5712e5 Update tests 2024-04-14 23:59:57 +02:00
Veronica Berglyd Olsen
ef85b2109f Fix shortcode spellcheck (#1823) 2024-04-14 23:52:47 +02:00
Veronica Berglyd Olsen
8cfeb2ce7d Add test coverage of shortcode spell checking 2024-04-14 23:47:46 +02:00
Veronica Berglyd Olsen
35563373a6 Annotated regex rules in highlighting and add to slots 2024-04-14 23:40:19 +02:00
Veronica Berglyd Olsen
f23164a17b Disable spell checking for shortcodes 2024-04-14 23:39:52 +02:00
Veronica Berglyd Olsen
70033cb0f3 Add insert footnote feature in editor 2024-04-14 23:33:35 +02:00
Veronica Berglyd Olsen
da102d3d5a Merge branch 'main' into features/footnotes 2024-04-14 22:17:23 +02:00
Veronica Berglyd Olsen
5568b43b22 Add key generator to text index 2024-04-14 22:17:00 +02:00
Veronica Berglyd Olsen
52b27b6e56 Increase toolbar label font size in outline 2024-04-14 16:42:46 +02:00
Veronica Berglyd Olsen
99ec268dd9 Increase the icon size of outline toolbar 2024-04-14 16:36:21 +02:00
Veronica Berglyd Olsen
d304c0919f Change job name 2024-04-13 19:59:28 +02:00
Veronica Berglyd Olsen
6f3a11ade3 Change job condition 2024-04-13 19:57:51 +02:00
Veronica Berglyd Olsen
52ffa0b675 Add a job to build i18n file 2024-04-13 19:54:50 +02:00
Veronica Berglyd Olsen
03ee8edda1 Update translation sources, and completed French 2024-04-13 19:47:49 +02:00
Veronica Berglyd Olsen
5da30e6608 Update the status shape feature (#1819) 2024-04-13 19:26:32 +02:00
Veronica Berglyd Olsen
0fb0af5b32 Merge branch 'main' into updates/shapes 2024-04-13 19:22:05 +02:00
Veronica Berglyd Olsen
f5fcc57a06 Merge branch 'release' 2024-04-13 19:19:53 +02:00
Veronica Berglyd Olsen
6dc3e29535 Update default theme (#1820) 2024-04-13 19:15:19 +02:00
Veronica Berglyd Olsen
d35db6e925 Merge branch 'release' into udpates/default_theme 2024-04-13 19:08:32 +02:00
Veronica Berglyd Olsen
fbf0839c73 Update documentation for 2.4 (#1818) 2024-04-13 19:07:39 +02:00
Veronica Berglyd Olsen
6f885efb7f Change how default theme colours are handled 2024-04-13 19:07:15 +02:00
Veronica Berglyd Olsen
df5b391f27 Revert the default theme setting 2024-04-13 19:00:59 +02:00
Veronica Berglyd Olsen
4a1a3013f4 Add missing i18n wrapper to shape labels 2024-04-13 18:34:09 +02:00
Veronica Berglyd Olsen
524b965665 Update the remaining docs 2024-04-13 18:32:29 +02:00
Veronica Berglyd Olsen
a3ebe24eb7 Update project documentation 2024-04-13 18:18:06 +02:00
Veronica Berglyd Olsen
cae0977a01 Update usage documentation 2024-04-13 17:11:34 +02:00
Veronica Berglyd Olsen
ecf94d812d Change default theme to match docs 2024-04-13 16:41:46 +02:00
Veronica Berglyd Olsen
807a50dae4 Update the introduction section 2024-04-13 15:25:06 +02:00
Veronica Berglyd Olsen
cf57a3ead0 Update file format spec 2024-04-13 01:34:12 +02:00
Veronica Berglyd Olsen
39b2ff4a72 Bump main branch to version 2.5a1 (correctly this time) 2024-04-13 01:10:39 +02:00
Veronica Berglyd Olsen
eced026aeb Add shape setting to status and importance icons (#1810) 2024-04-13 01:07:43 +02:00
Veronica Berglyd Olsen
d574b2796f Update translations (#1814) 2024-04-13 01:05:36 +02:00
Veronica Berglyd Olsen
730d09a76c Merge branch 'main' into feature/status_shapes 2024-04-13 01:04:24 +02:00
Veronica Berglyd Olsen
b521b39498 Bump main branch to version 2.5a1 2024-04-13 01:03:58 +02:00
Veronica Berglyd Olsen
1cae0503e7 Merge branch 'main' into uppdate_i18n 2024-04-13 00:59:59 +02:00
Veronica Berglyd Olsen
e4d3e609f8 Fix index error in word counter (#1817) 2024-04-13 00:47:16 +02:00
Veronica Berglyd Olsen
4c86c1a75a Improve test coverage 2024-04-13 00:42:26 +02:00
Veronica Berglyd Olsen
2f55055c75 Fix comment 2024-04-13 00:38:29 +02:00
Veronica Berglyd Olsen
3e711ebe7f Fix word counter bug (#1816) 2024-04-13 00:37:21 +02:00
Veronica Berglyd Olsen
61e634a86c Update minor issues (#1815) 2024-04-13 00:30:57 +02:00
Veronica Berglyd Olsen
afd4aa5d1f Update home path and fix wrong setting fix for scene and chapter count on welcome dialog 2024-04-13 00:13:20 +02:00
Veronica Berglyd Olsen
4b5383f1c7 Add home path getter to config 2024-04-13 00:12:43 +02:00
Veronica Berglyd Olsen
95d91562ec Revert last changes, but keep code improvements 2024-04-13 00:03:08 +02:00
Veronica Berglyd Olsen
a43c351e25 Add a project language setting to manuscript build (#1812) 2024-04-12 23:46:09 +02:00
Veronica Berglyd Olsen
77a90256ed Simplify project language setting in project settings 2024-04-12 23:45:15 +02:00
Veronica Berglyd Olsen
6393ae7621 Default to 0 chapters and scenes for new projects (#1811) 2024-04-12 22:57:49 +02:00
Veronica Berglyd Olsen
6b3742fa56 Update US English. Spanish, Italian, Japanese and Norwegian 2024-04-11 22:46:51 +02:00
Veronica Berglyd Olsen
492bc044fc Make project setting lists behave the same way 2024-04-11 21:53:37 +02:00
Veronica Berglyd Olsen
84ff2f8371 Merge branch 'main' into feature/status_shapes 2024-04-11 21:46:48 +02:00
Veronica Berglyd Olsen
54f26ea06e Update test 2024-04-11 21:42:33 +02:00
Veronica Berglyd Olsen
e10f3a19d3 Add size policy types 2024-04-11 21:36:48 +02:00
Veronica Berglyd Olsen
21a5dbbb52 Redesign status item controls, and clean up auto-replace methods 2024-04-11 21:35:25 +02:00
Veronica Berglyd Olsen
f67d2c5a4c Add pre-calculation of status icons 2024-04-11 19:52:54 +02:00
Veronica Berglyd Olsen
6cf83bb381 Add more status icon shapes 2024-04-11 11:17:03 +02:00
Veronica Berglyd Olsen
6b9c81e8c4 Trigger search update on document save 2024-04-11 00:23:38 +02:00
Veronica Berglyd Olsen
f4decae77f Simplify status class counter reset 2024-04-10 23:44:43 +02:00
Veronica Berglyd Olsen
e47f0c5166 Update GUI test 2024-04-10 23:35:14 +02:00
Veronica Berglyd Olsen
778b65b48c Add shape selector to project settings 2024-04-10 23:24:00 +02:00
Veronica Berglyd Olsen
d1dbb0b378 Add test coverage of status class 2024-04-10 22:19:15 +02:00
Veronica Berglyd Olsen
adfd003532 Update core tests 2024-04-10 21:39:23 +02:00
Veronica Berglyd Olsen
f17302439e Simplify further how status labels are added and updated 2024-04-10 21:38:43 +02:00
Veronica Berglyd Olsen
63d2f5c57d Simplify the status class 2024-04-10 17:57:39 +02:00
Veronica Berglyd Olsen
478db63b30 Update tests 2024-04-10 01:09:11 +02:00
Veronica Berglyd Olsen
127588699e Switch status entries from dict to dataclass 2024-04-10 01:08:57 +02:00
Veronica Berglyd Olsen
29c10542b1 Merge branch 'main' into feature/status_shapes 2024-04-09 23:22:45 +02:00
Veronica Berglyd Olsen
ab33312872 Update codecov action 2024-04-09 23:18:21 +02:00
Veronica Berglyd Olsen
5c9fd471a7 Update codecov token 2024-04-09 23:00:17 +02:00
Veronica Berglyd Olsen
dd15c93f51 Comment out debug print 2024-04-09 22:41:37 +02:00
Veronica Berglyd Olsen
4003ececb2 Update tests 2024-04-09 22:40:14 +02:00
Veronica Berglyd Olsen
ff3cae9db4 Add status icon shape to project XML 2024-04-09 22:39:46 +02:00
Veronica Berglyd Olsen
af44646a77 Add a shape generator to the status class 2024-04-09 21:42:59 +02:00
Veronica Berglyd Olsen
1345bc8fe6 Fix markdown error 2024-04-09 18:25:22 +02:00
Veronica Berglyd Olsen
5d3a5a335f Reduce to only one release branch 2024-04-09 18:23:43 +02:00
Veronica Berglyd Olsen
4d877d411b Add linting of type annotations (#1809) 2024-04-09 17:05:45 +02:00
Veronica Berglyd Olsen
c1154682b5 Fix annotation errors 2024-04-09 17:01:05 +02:00
Veronica Berglyd Olsen
99c4b0acd0 Add flake8-annotations to linting checks 2024-04-09 16:52:26 +02:00
Veronica Berglyd Olsen
80520c075d Fix format toggle issue (#1808) 2024-04-09 16:50:54 +02:00
Veronica Berglyd Olsen
17cf9f006a Update tests 2024-04-09 16:41:12 +02:00
Veronica Berglyd Olsen
a8034b2fb5 Fix toggle and select issue for markdown formatting (#1807) 2024-04-09 16:40:38 +02:00
Veronica Berglyd Olsen
7999251353 Change "hard scene" to "alternative scene" format (#1803) 2024-04-08 21:07:28 +02:00
Veronica Berglyd Olsen
2111af8c0c Update translation file 2024-04-08 20:43:30 +02:00
Veronica Berglyd Olsen
6f7745c46a Update alternative scene label 2024-04-08 20:43:19 +02:00
Veronica Berglyd Olsen
ba42285172 Remove summaries from text index 2024-04-08 00:56:36 +02:00
Veronica Berglyd Olsen
dff2d5996b Add new index classes to store special text comments 2024-04-07 23:56:40 +02:00
Veronica Berglyd Olsen
08b17daec9 Add parsing for terms in comments 2024-04-07 18:06:21 +02:00
Veronica Berglyd Olsen
a7cf236ba5 Fix stylesheet bug (#1800) 2024-04-06 20:43:04 +02:00
Veronica Berglyd Olsen
f22197d494 Fix tooltip colours for the search panel 2024-04-06 20:05:46 +02:00
Veronica Berglyd Olsen
af8af45f39 Update translations (#1799) 2024-04-06 19:17:56 +02:00
Veronica Berglyd Olsen
4b112cf9c0 Update Norwegian and US English translations 2024-04-06 19:10:47 +02:00
Veronica Berglyd Olsen
733bc89a47 Update all translation files 2024-04-06 19:09:35 +02:00
Veronica Berglyd Olsen
17baceb807 Improve a few GUI labels 2024-04-06 19:08:49 +02:00
Veronica Berglyd Olsen
86487ace10 Make some minor fixes to the guide 2024-04-06 17:53:48 +02:00
Veronica Berglyd Olsen
a7422e5bb3 Merge branch 'releases/v2.3' 2024-04-06 17:44:18 +02:00
Veronica Berglyd Olsen
b64418c2e9 Merge branch 'releases/v2.2' 2024-04-06 17:44:15 +02:00
Veronica Berglyd Olsen
8e895bd797 Merge branch 'releases/v2.1' 2024-04-06 17:44:11 +02:00
Veronica Berglyd Olsen
6562f645fe Merge branch 'releases/v2.0' 2024-04-06 17:44:08 +02:00
Veronica Berglyd Olsen
80ebf60ec5 Update readme and contributing guide 2024-04-06 17:42:42 +02:00
Veronica Berglyd Olsen
d569001f32 Move mac and windows tests to python 3.12 2024-04-06 17:16:08 +02:00
Veronica Berglyd Olsen
12318b5c31 Keep windows and mac on Python 3.11 2024-04-06 17:15:20 +02:00
Veronica Berglyd Olsen
de55106961 Add release branch rules 2024-04-06 17:13:19 +02:00
Veronica Berglyd Olsen
edca735f2a Add release branch rules 2024-04-06 17:11:38 +02:00
Veronica Berglyd Olsen
b076de6f81 Add release branch rules 2024-04-06 17:11:07 +02:00
Veronica Berglyd Olsen
6ddc59bc5b Add release branch rules 2024-04-06 17:10:21 +02:00
Veronica Berglyd Olsen
ba4a3c16f3 Change to release branches 2024-04-06 17:07:43 +02:00
Veronica Berglyd Olsen
de0fb2eba8 Update actions for new patch branch 2024-04-06 16:50:51 +02:00
Veronica Berglyd Olsen
e40a0ff4aa Release 2.4 RC 1 (#1797) 2024-04-06 15:58:00 +02:00
Veronica Berglyd Olsen
5b126716f7 Update translation file 2024-04-06 15:54:59 +02:00
Veronica Berglyd Olsen
df3f4e2ef7 Bump version to 2.4 RC 1 and update changelog 2024-04-06 15:52:44 +02:00
Veronica Berglyd Olsen
a081a63ba1 Refactor ODT writer class (#1796) 2024-04-05 18:22:55 +02:00
Veronica Berglyd Olsen
3a631449ed Make a few more simplifications 2024-04-05 18:18:30 +02:00
Veronica Berglyd Olsen
c01c8b2023 Use iterable for checking difference between Odt paragraph styles 2024-04-05 18:10:07 +02:00
Veronica Berglyd Olsen
f7736b87bb Refactor Odt paragraph class further 2024-04-05 17:49:16 +02:00
Veronica Berglyd Olsen
5b8212f2fa Refactor Odt text style class 2024-04-05 17:23:39 +02:00
Veronica Berglyd Olsen
dd539be64e Refactor Odt paragraph style class 2024-04-05 17:23:07 +02:00
Veronica Berglyd Olsen
53e5756745 Refactor the Odt writer code 2024-04-05 17:12:01 +02:00
Veronica Berglyd Olsen
d0d6da3436 Improve persistence of document search button state (#1795) 2024-04-04 23:33:24 +02:00
Veronica Berglyd Olsen
c6423ffc21 Simplify the document search widget 2024-04-04 23:25:04 +02:00
Veronica Berglyd Olsen
cf9a141dc7 Remove caching of doc search options state in the search widget 2024-04-04 23:05:42 +02:00
Veronica Berglyd Olsen
2480c7ae9f Clean up code in preparation for Qt6 (#1792) 2024-04-03 21:20:58 +02:00
Veronica Berglyd Olsen
8fff376076 Clean up flags in all GUI classes 2024-04-03 21:09:49 +02:00
Veronica Berglyd Olsen
20c5993e2d Clean up a lot more namespace flags 2024-04-03 20:25:54 +02:00
Veronica Berglyd Olsen
46c5f1c10d Update Qt namespace flags 2024-04-03 19:28:39 +02:00
Veronica Berglyd Olsen
f95bbb8760 Replace exec_ with exec 2024-04-03 18:41:39 +02:00
Veronica Berglyd Olsen
c8fe5e6620 Drop the qApp macro 2024-04-03 18:36:37 +02:00
Veronica Berglyd Olsen
2744fb2fd4 Move to pyproject.toml (#1791) 2024-04-03 00:45:45 +02:00
Veronica Berglyd Olsen
7fb771eba4 Put dependencies directly in project config 2024-04-03 00:14:46 +02:00
Veronica Berglyd Olsen
760b2dbf0c Remove references to setup.cfg 2024-04-03 00:01:53 +02:00
Veronica Berglyd Olsen
751d0ed857 Drop empty init files 2024-04-02 23:53:19 +02:00
Veronica Berglyd Olsen
55e1233ca5 Move package config to pyproject.toml 2024-04-02 23:53:01 +02:00
Veronica Berglyd Olsen
b83042e456 Use selected text for project search (#1790) 2024-04-02 22:59:43 +02:00
Veronica Berglyd Olsen
c0fd1f1466 Update tests 2024-04-02 22:53:21 +02:00
Veronica Berglyd Olsen
03cb6ccb2b Let project search start with selected text (#1789) 2024-04-02 22:51:04 +02:00
Veronica Berglyd Olsen
3fb5d12487 Improve GUI scaling (#1788) 2024-04-01 20:46:45 +02:00
Veronica Berglyd Olsen
b44072a9fa Use the simplified theme icon setter where possible 2024-04-01 20:38:16 +02:00
Veronica Berglyd Olsen
24e45fb661 Improve how tool buttons are generated 2024-04-01 20:21:34 +02:00
Veronica Berglyd Olsen
c3467d89c2 Collect all alignment flags into a new types module 2024-04-01 18:27:18 +02:00
Veronica Berglyd Olsen
468a0e7416 Clean up item details panel 2024-04-01 18:03:35 +02:00
Veronica Berglyd Olsen
1eafa1c8b6 Make sure all tool buttons scale to base icon size 2024-04-01 17:48:12 +02:00
Veronica Berglyd Olsen
c000307f14 Add a base button size, and make it default for switches and tool buttons 2024-04-01 15:39:54 +02:00
Veronica Berglyd Olsen
cfde84f851 Fix typo in doc viewer stylesheet 2024-03-30 23:52:46 +01:00
Veronica Berglyd Olsen
d261aee1d0 Add search refresh when document changes (#1782) 2024-03-28 14:14:37 +01:00
Veronica Berglyd Olsen
c05463f0ae Update test coverage 2024-03-28 14:10:01 +01:00
Veronica Berglyd Olsen
247cd65bb6 Only update search for documents in current results 2024-03-28 13:54:35 +01:00
Veronica Berglyd Olsen
7149e363b1 Update search result on document change 2024-03-28 13:40:52 +01:00
Veronica Berglyd Olsen
536e828cc6 Refactor doc search class to allow single document search 2024-03-28 13:40:15 +01:00
Veronica Berglyd Olsen
821e3c4be5 Fix tooltip inconsistency 2024-03-27 16:38:16 +01:00
Veronica Berglyd Olsen
a06144730f Remove redundant variable 2024-03-27 14:05:43 +01:00
Veronica Berglyd Olsen
d162b77234 Add a new placeholder icon and clean up project search styling (#1781) 2024-03-27 13:46:31 +01:00
Veronica Berglyd Olsen
ec5352c13c Tweak search toolbar a little more 2024-03-27 13:40:26 +01:00
Veronica Berglyd Olsen
4e5a08d3dd Clean up search layout a little 2024-03-27 13:29:54 +01:00
Veronica Berglyd Olsen
2d9b57b534 Add a function to convert QColor to CSS rgba format 2024-03-27 13:11:37 +01:00
Veronica Berglyd Olsen
3e66968387 Add a more obvious placeholder icon (#1780) 2024-03-27 12:32:55 +01:00
286 changed files with 36228 additions and 24757 deletions

View File

@@ -1,99 +0,0 @@
name: Build
on: workflow_dispatch
jobs:
buildAssets:
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.11"
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install qttools5-dev-tools latexmk texlive texlive-latex-extra
- name: Checkout Source
uses: actions/checkout@v4
- name: Install Packages (pip)
run: pip install -r docs/source/requirements.txt
- name: Build Assets
run: python pkgutils.py qtlrelease sample manual
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: nw-assets
path: |
novelwriter/assets/sample.zip
novelwriter/assets/manual.pdf
novelwriter/assets/i18n/*.qm
if-no-files-found: error
retention-days: 1
buildLinux:
needs: buildAssets
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.11"]
linux-tag: ["manylinux_2_24_x86_64", "manylinux_2_28_x86_64"]
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.11"
architecture: x64
- name: Install Packages (pip)
run: pip install python-appimage
- name: Checkout Source
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build AppImage
run: python pkgutils.py build-appimage --linux-tag ${{ matrix.linux-tag }} --python-version ${{ matrix.python-version }}
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: AppImage-${{ matrix.python-version }}-${{ matrix.linux-tag }}
path: dist_appimage
if-no-files-found: error
retention-days: 1
buildMac:
needs: buildAssets
runs-on: macos-12
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build App Bundle
run: ./setup/macos/build.sh
- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: MacOS-DMG
path: dist_macos
if-no-files-found: error
retention-days: 1

39
.github/workflows/build_assets.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: BuildAssets
on: workflow_call
jobs:
buildAssets:
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.12"
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install qttools5-dev-tools latexmk texlive texlive-latex-extra
- name: Checkout Source
uses: actions/checkout@v4
- name: Install Packages (pip)
run: pip install -r docs/source/requirements.txt
- name: Build Assets
run: |
python pkgutils.py build-assets
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: nw-assets
path: |
novelwriter/assets/manual.pdf
novelwriter/assets/sample.zip
novelwriter/assets/i18n/*.qm
if-no-files-found: error
retention-days: 14

43
.github/workflows/build_linux.yml vendored Normal file
View File

@@ -0,0 +1,43 @@
name: BuildLinux
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
buildLinux-AppImage:
needs: buildAssets
runs-on: ubuntu-latest
env:
PYTHON_VERSION: "3.12"
LINUX_TAG: "manylinux_2_28_x86_64"
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.11"
architecture: x64
- name: Install Packages (pip)
run: pip install python-appimage
- name: Checkout Source
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build AppImage
run: python pkgutils.py build-appimage --linux-tag $LINUX_TAG --python-version $PYTHON_VERSION
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: Linux-AppImage
path: dist_appimage
if-no-files-found: error
retention-days: 14

64
.github/workflows/build_mac.yml vendored Normal file
View File

@@ -0,0 +1,64 @@
name: BuildMacOS
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
buildMac-AMD64:
needs: buildAssets
# Stay on macos-12 due to https://github.com/create-dmg/create-dmg/issues/143
runs-on: macos-12
env:
PYTHON_VERSION: "3.12"
PACKAGE_ARCH: x86_64
MINICONDA_ARCH: x86_64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build App Bundle
run: ./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: MacOS-AMD64-DMG
path: dist_macos
if-no-files-found: error
retention-days: 14
buildMac-M1:
needs: buildAssets
runs-on: macos-14
env:
PYTHON_VERSION: "3.12"
PACKAGE_ARCH: aarch64
MINICONDA_ARCH: arm64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build App Bundle
run: ./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: MacOS-M1-DMG
path: dist_macos
if-no-files-found: error
retention-days: 14

37
.github/workflows/build_win.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: BuildWindows
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
buildWin64:
needs: buildAssets
runs-on: windows-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.12"
architecture: x64
- name: Checkout Source
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build Setup Installer
run: python pkgutils.py build-win-exe
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: Win-Setup
path: dist/*.exe
if-no-files-found: error
retention-days: 14

32
.github/workflows/i18n.yml vendored Normal file
View File

@@ -0,0 +1,32 @@
name: i18n
on:
push:
branches:
- i18n/*
jobs:
buildI18n:
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.11"
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install qttools5-dev-tools
- name: Checkout Source
uses: actions/checkout@v4
- name: Build Assets
run: python pkgutils.py qtlrelease
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: nw-i18n
path: |
novelwriter/assets/i18n/*.qm
if-no-files-found: error
retention-days: 7

View File

@@ -4,11 +4,11 @@ on:
push:
branches:
- main
- dev
- release
pull_request:
branches:
- main
- dev
- release
jobs:
checkSyntax:
@@ -22,9 +22,9 @@ jobs:
- name: Checkout Source
uses: actions/checkout@v4
- name: Install flake8
run: pip install flake8 flake8-pep585
run: pip install -r requirements-dev.txt
- name: Syntax Check
run: |
flake8 --version
flake8 novelwriter --count --show-source --statistics
flake8 tests --count --show-source --statistics
flake8 tests --count --show-source --statistics --extend-ignore ANN

View File

@@ -4,17 +4,18 @@ on:
push:
branches:
- main
- dev
- release
pull_request:
branches:
- main
- dev
- release
jobs:
testLinux:
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
python-version: ["3.9", "3.10", "3.11", "3.12"]
fail-fast: false
runs-on: ubuntu-latest
steps:
- name: Python Setup
@@ -32,10 +33,14 @@ jobs:
run: |
pip install -U -r requirements.txt -r tests/requirements.txt
- name: Run Build Commands
run: python pkgutils.py qtlrelease sample
run: |
python pkgutils.py qtlrelease
python pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
pytest -v --cov=novelwriter --timeout=60
python -m pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -4,20 +4,20 @@ on:
push:
branches:
- main
- dev
- release
pull_request:
branches:
- main
- dev
- release
jobs:
testMac:
runs-on: macos-latest
runs-on: macos-13
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.11"
python-version: "3.12"
architecture: x64
- name: Install Packages (brew)
run: |
@@ -30,6 +30,8 @@ jobs:
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
pytest -v --cov=novelwriter --timeout=60
python -m pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -4,11 +4,11 @@ on:
push:
branches:
- main
- dev
- release
pull_request:
branches:
- main
- dev
- release
jobs:
testWin:
@@ -17,7 +17,7 @@ jobs:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.11"
python-version: "3.12"
architecture: x64
- name: Checkout Source
uses: actions/checkout@v4
@@ -26,6 +26,8 @@ jobs:
pip install -U -r requirements.txt -r tests/requirements.txt
- name: Run Tests
run: |
pytest -v --cov=novelwriter --timeout=60
python -m pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v3
uses: codecov/codecov-action@v4
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -1,5 +1,423 @@
# novelWriter Changelog
## Version 2.5 [2024-07-10]
### Release Notes
The 2.5 release fixes a number of minor issues from the RC 1 pre-release, and updates most
translation files. Polish has also been added.
See the website for complete [Release Notes](https://novelwriter.io/releases/release_2_5.html).
### Detailed Changelog
**Bugfixes**
* Fix an issue with unresponsiveness when switching from Outline View to Tree View with a keyboard
shortcut. Issue #1949. PR #1954.
* Fix an issue with switching focus between editor and viewer when the viewer is hidden.
Issue #1950. PR #1954.
* Fix an issue with first line indentation where it would sometimes indent first paragraph when it
should not. Issue #1965. PR #1971.
**Usability**
* Remove the "Apply" button from Preferences as changing theme does not updated the Preferences
dialog, which is unexpected behaviour. The Preferences dialog is now also consistent with other
settings dialogs. Issue #1951. PR #1954.
* Improved the error messages when opening a project fails. Issue #1944. PR #1956.
* Make sure the Project Name is selected and in focus when switching to the New Project Form on the
Welcome dialog. Issue #1967. PR #1968.
**Improvements**
* Add first line indentation to Manuscript previews. Issue #1961. PR #1962.
**Internationalisation**
* Norwegian and US English translations updated by @vkbo. PR #1955.
* German translation updated by Myian (@HeyMyian). PR #1955.
* Italian translation updated by Lou Cyper (loucyper1). PR #1955.
* Dutch translation updated by Martijn van der Kleijn (mvdkleijn). PR #1955.
* Chinese translation updated by @longqzh. PR #1955.
* Portuguese translation updated by Oli Maia. PR #1955.
* Japanese translation updated by @hebekeg. PR #1955.
* French translation updated by Albert Aribaud (@aaribaud). PR #1955.
* Polish translation added by Anna Maria Polak (@Nauthiz). PR #1955.
**Packaging**
* Rewrote the packaging utilities script. Windows builds are now created in GitHub actions, which
is needed for signed packages when this is enabled. PRs #1958 and #1959.
**Documentation**
* Updated the documentation for 2.5. PR #1928.
----
## Version 2.5 RC 1 [2024-06-22]
### Release Notes
This is a release candidate 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 take frequent
backups.
### Detailed Changelog
**Bugfixes**
* The Status bar LEDs are now properly updated when the theme changes. Issue #1893. PR #1906.
* All HTML tags are now properly closed at the end of each paragraph in HTML output. After
shortcodes were introduced, it was possible to leave formatting tags open. Issue #1919. PR #1926.
**Improvements**
* Move the first line indent setting from being an Open Document feature to a general build
settings feature that also applies to HTML, and make it visible in the Manuscript build tool
preview. Issue #1839 and #1858. PR #1898.
* Make sure the document in the editor is saved before the same document is opened in the viewer.
Issue #1884. PR #1902.
* The project name now appears before "novelWriter" in the main window title, which improves the
task bar label on at least Linux Mint Cinnamon, and Windows. Issue #1910. PR #1911.
* Dialogue highlighting now only applies to novel documents, not notes. It is also possible to
apply it to HTML and ODT manuscripts, and it also shows up in the preview and in the document
viewer. Issue #1774. PR #1908.
* The Welcome dialog and other tools that use the project name to generate files of folder names
are now less restrictive on what characters it allows in the file or folder names. Issue #1917.
PR #1922.
* Last used folder paths are now remembered individually for each tool or feature that requires
path input from the user. Issues #1930 and #1933. PR #1934.
* The Manuscript preview will now show line height as set in build settings. Issue #1920. PR #1935.
* Global search now refreshes if any of the search option buttons are toggled, and the search
result will show the complete word if the search term only matches part of a word. Issue #1830.
PR #1936.
* When a new note is created from a reference tag in the editor, the syntax highlighting is
properly updated to indicate the tag is now valid. Issue #1916. PR #1938.
* The `Ctrl+E` shortcut now toggles focus between editor and viewer instead of just going to the
editor. The header text colour changes to indicate which panel has focus. This should make it
easier to scroll the content of the viewer without having to click it with the mouse first.
Issue #1387. PRs #1940 and #1941.
**Code Improvements**
* Change how dialogs are handled in memory, and drop the calls to deleteLater for the underlying Qt
object as it caused problems in some cases. Instead, the dialog is disconnected from the parent
object, which seems to let the Python and Qt garbage collectors to kick in.
PRs #1899. #1913 and #1921.
* Overload the reject call for dialogs rather to call close, which the default implementation does
not. This simplifies the logic when closing dialogs, as reject() is also a slot, which close() is
not. Issue #1915. PR #1918.
* Processing of dialogue highlighting has been added to the Tokenizer class, and the RegEx handling
moved to a separate factory class. PR #1908.
* The progress bar widgets have been moved to a single module, and test coverage added. PR #1937.
**Packaging**
* The Windows installer is now built with Inno Setup 6.3, and uses zip compression rather than
lzma. It also properly sets the undelete icon, and the undelete process is better at cleaning up
files. PR #1932.
----
## Version 2.5 Beta 1 [2024-05-26]
### 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 take frequent backups.
### Detailed Changelog
**General Changes**
* novelWriter now requires Python 3.9 and Qt 5.15 as a minimum. That means Ubuntu 20.04 and older
are no longer supported for the Debian packages. Users on Ubuntu 20.04 and equivalent Linux
distros must use the AppImage. PRs #1826 and #1833.
**Major Features**
* Status and Importance icons can now be assigned a shape in addition to a colour. Issue #1786.
PRs #1810 and #1819.
* Footnotes have been added. They use a modified comment format for specifying the footnote text,
and a shortcode for inserting the footnote into the text. They are linked via a key. If the
footnote is inserted via the **Insert** menu, a unique key is generated. Issue #342. PR #1832.
* Comments in general now support formatting, so format tags work just like in regular text. This
was needed for footnotes, but has been expanded to include all comments. PR #1832.
* Two new themes have been added. Dracula is available as a set for both the GUI and the editor.
Snazzy Light is available for syntax only, but works well with the default light GUI theme.
PR #1840.
* Character dialogue highlighting has been completely redesigned. The highlighting rule now
specifically relates to dialogue, and not just quoted text in general. To that effect, more rules
for detecting what is and isn't dialogue has been added. This is designed to support difference
between dialogue conventions in different languages. Issues #1770 and #1771. PR #1864.
* The font settings in Preferences now considers the full range of font options, in particular font
style and weight. The changes include the font size in these settings, so the additional setting
for font size has been removed. Use the font dialog to pick size as well. Due to this removal,
the font size has been reset to default and must be set again by the user. Issue #1733. PR #1881.
* The document viewer and the manuscript preview now uses a completely new class to generate the
formatted text. The old method used an outdated HTML format as the go-between, which restricted
what formatting could be applied. The main noticeable change to users at the moment should be the
size of headings, that now match the size in the editor. Issue #1882. PR #1892.
**Improvements**
* The default dark theme has been redesigned to match the GUI theme a little better, and is now
also consistent with the default light themes. PRs #1836 and #1840.
* Special comments now have a different text colour than plain comments. PR #1836.
* The various Tomorrow themes are now a little more consistent in what colours are used for which
components. More variation has also been added. PR #1840.
* The Tango theme has been updated. PR #1840.
* The last cursor position is now always saved when a document is closed in the editor, even if the
content has not been changed. PR #1849.
* The settings for first line indent have now been extended to allow setting how deep the indents
are and whether or not to indent the first paragraph after a heading or break. The settings have
also moved from being Open Document specific to the general formatting tab for manuscripts.
PR #1857.
* Preserving in-paragraph line breaks is now a general Manuscript setting that applies to all
output formats. PR #1891.
* The Manuscript builds now also uses the full font settings of the selected output font, not just
the font family and size option. Since the size option has been merged into the general font
choice, the separate font size setting has been dropped and users must set it again. PR #1891.
* It is now possible to disable the usage of the font selection dialog from your operating system.
At least on Linux Gnome desktops, the system's font dialog lacks a lot of the selection options
available in the font dialog provided with Qt. PR #1891.
**Bugfixes**
* Fixed an issue where Manuscript dialogs would be left open if the project was closed. PR #1844.
* First line indents are no longer reset after a comment. Issue #1852. PR #1857.
**Packaging**
* Minimal zip file release packages can no longer be built from the package utility script. The zip
file needed for building the Windows installer is still available. PR #1826.
* Added build packages for AARCH64 on MacOS. It seems some dependencies still prevents it from
being installed cleanly without requiring some virtualisation feature, but it works. PR #1829.
* AppImages are now released with Python 3.12. PR #1829.
**Other Changes**
* A new GUI theme setting for error text has been added. It is used when error messages need to be
displayed on the GUI. PR #1880.
**Code Improvements**
* The behaviour of dialogs across various platforms has been unified and improved a little to
ensure more consistent behaviour. It is mostly related to modality and z-order. There are still
limitations due to platform restrictions, like non-modal dialogs being stuck on top on Linux
Wayland. PR #1844.
* Some GUI components have been improved and refactored to rely more on signals and slots rather
than reaching into each other's classes and calling methods. This is a little more robust.
PR #1849.
* The text tokenizer used to parse the formatting codes in novelWriter has been refactored and
improved. In particular, multi-line paragraphs are now processed during the second pass of
tokenization rather than when the final format is applied. This allows a much more compact format
of the token data, and avoid potential inconsistencies between the various output formats.
PR #1885.
----
## Version 2.4.4 [2024-06-12]
### Release Notes
This is a patch release that fixes a usage issue when setting document label from an unsaved
document, fixes a rare chance of a crash when closing the Manuscript tool, and updates the
Portuguese translation.
### Detailed Changelog
**Bugfixes**
* Backported some memory improvements from the upcoming 2.5 release. This also fixes a potential,
but low probability crash in the Manuscript tool. If the tool is closed during the milliseconds
long window when the clock on the yellow label is updated, the app can crash with a segmentation
fault. PRs #1903 and #1905.
* Fixed an issue where changing a document's label to match the document heading would suggest the
wrong title if the document was open in the editor, but in an unsaved state. An easy condition to
encounter when creating a new document and setting the heading first. Issue #1914. PR #1923.
**Internationalisation**
* Portuguese translation updated by Oli Maia. PR #1904.
----
## Version 2.4.3 [2024-05-20]
### Release Notes
This is a patch release that fixes issues with the document font in the editor, viewer and
manuscript preview on some Linux distros, and also fixes a potential crash on Windows when using
the spell check dictionary install tool.
### Detailed Changelog
**Bugfixes**
* Fixed a crash in the dictionaries install tool on Windows if the config folder reported by the
third party Enchant spell checker tool didn't already exist prior to adding new dictionaries.
The folder is now created when the tool is opened if it doesn't exist. Issue #1874. PR #1876.
* Fixed issues when setting a different text font for the editor and viewer, and related issues
with the preview in the Manuscript Build tool, on certain platforms. Changing the font and
setting non-standard font sizes produced unexpected results when reloading. The issue seems to be
related to Qt 5.15.3, but that is not fully confirmed. However, the only place so far where the
issue is observed is on Mint 21.3. Issues #1862 and #1875. PR #1877.
----
## Version 2.4.2 [2024-05-18]
### Release Notes
This is a patch release that fixes two minor font issues and updates the Dutch and Chinese
translations.
### Detailed Changelog
**Bugfixes**
* Change the preview widget in the Manuscript Build tool to use the document font only for the
document itself, not the yellow heading stating the age of the previewed text. PR #1863.
* Fixes the syntax highlighter so that it is re-initialised when the document editor is
re-initialised, so that changes to document font size regenerates the heading font sizes as well.
Issue #1865. PR #1866.
**Internationalisation**
* Dutch translation updated by Martijn van der Kleijn (@mvdkleijn). PR #1872.
* Chinese translation updated by @longqzh. PR #1872.
----
## Version 2.4.1 [2024-05-06]
### Release Notes
This is a patch release that fixes a number of minor issues with the Manuscript Build tool. The
only critical fix is related to a potential crash when deleting a build entry when its settings
dialog is still open.
### Detailed Changelog
**Bugfixes**
* Fixed an issue that could crash novelWriter if a build settings entry was deleted from the
Manuscript tool while its settings window was open. PR #1845.
**Improvements**
* Changed the font used for the document editor and viewer header and footer from the one used for
the document text to the one used for the user interface. Issue #1842. PR #1843.
* Added a save document step in the editor before running a manuscript build or a preview job. This
ensures that the text in the editor is included in the manuscript. Issue #1835. PR #1846.
* Restore preview panel scroll bar position after updating the preview on the Manuscript tool.
Issue #1837. PR #1846.
* Close all non-modal dialogs when a project is closed. PR #1848.
**Code Improvements**
* Fixed an issue with the Build Settings dialog that blocks the garbage collector from deleting the
dialog after it's been closed. PR #1843.
* Remove some deprecated translation entries from the translation files. PR #1850.
----
## Version 2.4 [2024-04-20]
### Release Notes
This release adds a new global search feature. The tool is still relatively basic, and will likely
be extended in later releases.
Among new text editing features is the ability to highlight text using `[m]text[/m]` shortcodes.
The code `[m]` is for "mark", which is the equivalent code in HTML.
A second feature added for text editing is the ability to add an alternatively formatted scene
heading by adding a `!` to the markup, like for chapters and main titles. This allows to
distinguish between two scene formatting styles, `### Title` and `###! Title`, which can for
instance be used for soft and hard scene breaks.
The **Manuscript Build** tool has also been extended with multiple new formatting options.
See the website for complete [Release Notes](https://novelwriter.io/releases/release_2_4.html).
### Detailed Changelog
**Bugfixes**
* Fixed background colour on some widgets on the new Project Search tool. PR #1800.
* Fixed a bug when using bold/italic/strike through toggle on an existing text selection in the
editor. Issue #1807. PR #1808.
* An index out of bounds error in the word counter has been fixed. It could only be triggered by a
single line only containing a ">" character. Issues #1816 and #1825. PR #1817.
* Fixed an issue where not all theme colours were completely reset before changing theme. PR #1820.
* Shortcodes are no longer passed to the spell checker. PR #1823.
**Improvements**
* Made placeholder text for search read as "Search for" and "Replace with". PR #1799.
* The initial count for adding chapter and scenes to new project in the Welcome dialog has been
changed to 0. The user must now select to add chapters and scenes. Issue #1811. PR #1815.
**Documentation**
* Updated the documentation for 2.4 features. PR #1818.
**Internationalisation**
* Norwegian and US English translations updated by Veronica Berglyd Olsen (@vkbo).
PRs #1799 and #1814.
* Latin American Spanish translation updated by Tommy Marplatt (@tmarplatt). PR #1814.
* Italian translation updated by Lou Cyper (loucyper1). PR #1814.
* Japanese translation updated by @hebekeg. PR #1814.
* French translation updated by Albert Aribaud (@aaribaud). PR #1821.
* German translation updated by Myian (@HeyMyian). PR #1821.
----
## Version 2.4 RC 1 [2024-04-06]
### Release Notes
This is a release candidate of the next release version, and is intended for testing purposes.
Please be careful when using this version on writing projects, and make frequent backups.
### Detailed Changelog
**Bugfixes**
* A number of issues GUI icon scaling has been fixed. Icons and buttons are supposed to scale
relative to the GUI font size, but several of them were not. Issue #1787. PR #1788.
* The persistence of button state for the editor search box has been improved. The present state
was only saved when the search box was actively closed, and there were several scenarios where
this didn't happen. The button states are now tracked in the central config, and will always be
preserved. Issue #1794. PR #1795.
**Other Improvements**
* A placeholder icon has been added for cases where users have their own icon theme, and icons are
missing. Issue #1780. PR #1781.
* The project search now refreshes the search results for the currently open document when it's
being edited. PR #1782.
* When activating project search from the editor while text is selected, the search box is
populated with this text. Issue #1789. PR #1790.
**Packaging**
* The project has moved from using a `setup.cfg` to only using the `pyproject.toml` meta data file
for packaging. This is the preferred file format now. PR #1791.
**Code Improvements**
* The part of the code related to Qt widgets and flags has been updated and refactored in
preparation for the eventual move to the Qt6 framework. Part of issue #1142. PR #1792.
* The Open Document writer class has been refactored and improved. PR #1796.
----
## Version 2.4 Beta 1 [2024-03-26]
### Release Notes
@@ -7,9 +425,6 @@
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 take frequent backups.
Please check the changelog for an overview of changes. The full release notes will be added to the
final release.
### Detailed Changelog
**Major Features**

View File

@@ -1,45 +1,44 @@
# Contributing Guide
When contributing to this repository, please first discuss the change you wish to make via the
issue tracker or the discussions page with the owner of this repository. Especially if it is
regarding new features. If you just want to make a minor correction, like fix a typo or similar,
feel free to just make a pull request directly.
When contributing to this repository, please first discuss the change you wish to make with the
owner. Either via the issue tracker or on the discussions page. Especially if it is regarding new
features. If you just want to make a minor correction, like fix a typo or similar, feel free to
just make a pull request directly.
The following contributions are welcome:
**The following contributions are welcome:**
* Bugfixes for new or existing bugs. Please also report new bugs in the issue tracker even if you
also provide a fix. It makes it easier to keep track of what has been fixed and when.
* Translations via the [crowdin project page](https://crowdin.com/project/novelwriter).
* Translations made via the [Crowdin project page](https://crowdin.com/project/novelwriter).
* Improvements to the documentation. Particularly if the documentation is unclear. Please don't
make any larger changes to the documentation without discussing if with the maintainer first.
* Adaptations, installation or packaging features targeting specific operating systems.
Please do not:
**Please do not:**
* Make a pull request that restructures or reformats existing code. If you think some parts of the
* Make a pull request that restructures or reformats existing code. If you think some part of the
code could be improved, please make an issue thread or start a discussion. The same applies to
any text document in the repository.
## Pull Requests
## Picking the Correct Branch for a Pull Request
This project follows the [OneFlow](https://www.endoflineblog.com/oneflow-a-git-branching-model-and-workflow)
model. The `main` branch is the default branch. For general changes, please make a new branch in
your own fork from the current `main` branch. Do not make pull requests from your own `main`
branch.
The `main` branch is the default branch. For general changes, please make a new branch in your own
fork from the current `main` branch. Do not make pull requests from your copy of the `main` branch.
**Note:** If your contribution is a bugfix for a specific version, please make a bugfix branch from
the tag you want the fix to be applied to, not directly from the `main` branch. This is important.
As of April 2024, releases are made from the `release` branch. If you are submitting a fix to a
current release you must do so from the `release` branch. If you make such a fix on the `main`
branch, **it cannot be included in a patch release**. This also applies to the documentation for
the latest release published on the main website.
Also check the following:
**Also check the following:**
* Make sure your code passes all tests and conforms to the style guide. You can check that the
code generally conforms by running the Python linting tool `flake8` from the root of the project
folder, although it doesn't check everything. The same check is also run on pull requests by the
maintainer.
folder, although it doesn't check everything. The same check is also run on pull requests.
* Please provide a description of the changes in the pull request under the summary section of the
pull request template, and reference any related issues by providing the issue number.
* Do not change the version number.
* Do not submit files that were not actively changed but have otherwise been modifed. This is
* Do not submit files that were not actively changed but have otherwise been modified. This is
mostly an issue with translation files. The language tool may update all files in the `i18n`
folder.
@@ -68,14 +67,14 @@ style guide, but with a few exceptions. Some key points are listed below.
is the recommended line length in PEP8, but this is often too restrictive. 99 characters are
acceptable when that is more practical. Readability has priority. Generally, if a code statement
requires multiple lines, the lines should wrap at 79 characters if possible. If wrapping can be
avoided by going to 99, then that is generally preferrable.
avoided by going to 99, then that is generally preferable.
* For text files, the text should be wrapped at 99 character. The exception is markdown image tags
and urls which can run past that limit.
**Variable and Function Names**
* PEP8 allows for camelCase for consistency with existing code. The Qt library uses camelCase, so
the Python source code does too.
the novelWriter source code does too.
* The exception to the above is for constants. They should always be in upper snake case, like PEP8
states.
@@ -83,19 +82,29 @@ style guide, but with a few exceptions. Some key points are listed below.
* Only indentation by multiples of 4 spaces is allowed.
* No trailing spaces should occur on any line in the source code, including empty lines.
* Ideally, a function should end on the same indention level as it started. Exceptions are allowed
if it makes the code easier to follow.
* All common line wrapping methods are allowed in the code, but avoid deep indentations.
* Aligning operators and attributes in columns with multiple spaces is not allowed by PEP8. The
rule is relaxed a bit here. Alignment is allowed when populating large dictionaries or setting
many class attributes. It does improve readability in such cases, but should not be overused.
**Type Annotation**
* All functions must be properly type annotated, and a return type stated in all cases.
* Do not use `List`, `Dict`, `Tuple`, etc, annotations that were deprecated in Python 3.9. You can
install the `flake8-pep585` extension to make sure you don't forget. This is also checked by the
syntax action run on pull requests.
* If annotations require a more recent Python version than the minimum version stated in the
project's `pyproject.toml`, hide it under an `if TYPE_CHECKING` condition so that the code can
still run on older versions. It's OK to require a more recent version for development.
### Linting with `flake8`
A good tool for checking Python code for errors and code style is `flake8`. The documentation is
available [here](https://flake8.pycqa.org/en/latest/).
The `setup.cfg` file in the root of this project has the following settings for `flake8` that
matches the above code style:
The `.flake8` file in the root of this project has the following settings for that matches the
required code style:
```conf
[flake8]
ignore = E133,E221,E226,E228,E241,W503
@@ -115,7 +124,7 @@ command will give you a detailed description of the code lines that do not confo
Two of the ignored errors are due to the relaxed restriction on column alignment, these are the
E221 and E241 error codes.
The code E226 is ignored becuse it doesn't actually follow the
The code E226 is ignored because it doesn't actually follow the
[PEP8 recommendation](https://www.python.org/dev/peps/pep-0008/#other-recommendations)
of grouping longer equations by operator precedence like `2*a + 3*b` instead of `a * a + 3 * b`.
Generally, don't use spaces around `*`, `/` and `**`, but _do_ use spaces around `+` and `-`.

View File

@@ -2,69 +2,74 @@
## Main Developer
* Veronica Berglyd Olsen (@vkbo)
* Veronica Berglyd Olsen
## Contributors
* Concept: Marian Lückhof (@Number042)
* Internationalisation: Bruno Meneguello (@bkmeneguello)
* Setup and Packaging: Rachel Powers (@Ryex)
* Early Concept: Marian Lückhof
* Internationalisation: Bruno Meneguello
* Setup and Packaging: Rachel Powers
For other contributions, see the project's [Contributors](https://github.com/vkbo/novelWriter/graphs/contributors) page.
## Artwork
The artwork on the Welcome dialog was created by [Louis Durrant](https://louisdurrant.art).
The artwork on the Welcome dialog was created by Louis Durrant.
## Translations
The default language is English (UK) with English (US) as an option. These are the original
translators for the languages currently available:
* Dutch: Martijn van der Kleijn (@mvdkleijn)
* French: Jan Lüdke (@jyhelle)
* German: Myian (@heymyian)
* Italian: Riccardo Mangili
* Japanese: hebekeg (@hebekeg)
* Latin American Spanish: Tommy Marplatt (@tmarplatt)
* Norwegian: Veronica Berglyd Olsen (@vkbo)
* Portuguese: Bruno Meneguello (@bkmeneguello)
* Simplified Chinese: Qianzhi Long (@longqzh)
* **Dutch:** Martijn van der Kleijn (mvdkleijn)
* **French:** Jan Lüdke (jyhelle)
* **German:** Myian (HeyMyian)
* **Italian:** Riccardo Mangili
* **Japanese:** hebekeg
* **Latin American Spanish:** Tommy Marplatt (tmarplatt)
* **Norwegian:** Veronica Berglyd Olsen (vkbo)
* **Polish:** Anna Maria Polak (Nauthiz)
* **Portuguese:** Bruno Meneguello (bkmeneguello)
* **Simplified Chinese:** Qianzhi Long (longqzh)
Additional larger translation contributions:
* French: Albert Aribaud (@aaribaud)
* **French:** Albert Aribaud (aaribaud)
* **Portuguese:** Oli Maia (olimaia)
Translations are managed on [Crowdin](https://crowdin.com/project/novelwriter), and more
contributions are listed on the project's [Members](https://crowdin.com/project/novelwriter/members) page.
contributions are listed on the project's Members page.
## Libraries
The following libraries are dependencies of novelWriter:
* [Qt5](https://www.qt.io) by Qt Company
* [PyQt5](https://www.riverbankcomputing.com/software/pyqt) by Riverbank Computing
* [Enchant](https://abiword.github.io/enchant) by Dom Lachowicz
* [PyEnchant](https://pyenchant.github.io/pyenchant) by Dimitri Merejkowsky
* **Qt5** by Qt Company
* **PyQt5** by Riverbank Computing
* **Enchant** by Dom Lachowicz
* **PyEnchant** by Dimitri Merejkowsky
## Assets
Some of the assets bundled with novelWriter were adapted from the following sources:
* [Typicons](https://github.com/stephenhutchings/typicons.font) icons by Stephen Hutchings (CC BY-SA 4.0)
* [Tomorrow](https://github.com/chriskempson/base16) syntax themes by Chris Kempson (MIT License)
* [Owl](https://github.com/sdras/night-owl-vscode-theme) syntax themes by Sarah Drasner (MIT License)
* [Solarized](https://github.com/altercation/solarized) themes by Ethan Schoonover (MIT License)
* **Typicons** icons by Stephen Hutchings (CC BY-SA 4.0)
* **Tomorrow** syntax themes by Chris Kempson (MIT License)
* **Owl** syntax themes by Sarah Drasner (MIT License)
* **Solarized** themes by Ethan Schoonover (MIT License)
* **Cyberpunk Night** theme by Anders Lemvigh (CC BY-SA 4.0)
* **Dracula** theme by Zeno Rocha (MIT License)
* **Snazzy Light** theme by Florian Reuschel (MIT License)
## Fonts
The font used for the main novelWriter logo, mimetype and text banners is Pridi. Other fonts are
used on buttons and icons.
* Pridi by Cadson Demak (Open Font License, Version 1.1)
* Source Sans Pro by Paul D. Hunt (SIL Open Font License)
* **Pridi** by Cadson Demak (Open Font License, Version 1.1)
* **Source Sans Pro** by Paul D. Hunt (SIL Open Font License)
## Special Mentions
Additional thanks to @johnblommers who was an early user and who has provided a lot of very useful
Additional thanks to John Blommers who was an early user and who has provided a lot of very useful
feedback over the years.

View File

@@ -31,9 +31,9 @@ documentation.
## Implementation
novelWriter is written with Python 3 (3.8+) using Qt5 and PyQt5 (5.10+), and is released on Linux,
Windows and macOS. It can in principle run on any Operating System that also supports Qt, PyQt and
Python.
novelWriter is written with Python 3 (3.9+) using Qt5 and PyQt5 (5.15 only), and is released on
Linux, Windows and macOS. It can in principle run on any Operating System that also supports Qt,
PyQt and Python.
## Project Contributions
@@ -49,6 +49,10 @@ code, please also read the full
Project credits are available in [CREDITS.md](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md).
**Note:** As of April 2024 only pre-releases are made from the `main` branch. Full releases are
made from the `release` branch. So if you're submitting a fix to a current release, **including
changes to documentation**, they must be made to the `release` branch.
### Translations
New translations are always welcome. This project uses Crowdin to maintain translations, and you

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 154 KiB

After

Width:  |  Height:  |  Size: 152 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 128 KiB

After

Width:  |  Height:  |  Size: 103 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 241 KiB

After

Width:  |  Height:  |  Size: 243 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 137 KiB

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 147 KiB

After

Width:  |  Height:  |  Size: 185 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 273 KiB

After

Width:  |  Height:  |  Size: 280 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 123 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 542 KiB

After

Width:  |  Height:  |  Size: 530 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 562 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 540 KiB

View File

@@ -17,14 +17,12 @@ storage for robustness.
:width: 500
The project storage is suitable for version control software, and also well suited for file
synchronisation tools. All text is saved as plain text files with a meta data header. The core
project structure is stored in a single project XML file. Other meta data is saved as JSON files.
See the :ref:`a_breakdown_storage` section for more details.
synchronisation tools. All text is saved as plain text files, and your project data as standard
data formats in XML and JSON. See :ref:`a_storage` for more details.
Any operating system that can run Python 3 and has the Qt 5 libraries should be able to run
novelWriter. It runs fine on Linux, Windows and MacOS, and users have tested it on other platforms
as well. novelWriter can be run directly from the Python source, or installed from packages or with
pip. See :ref:`a_started` for more details.
Any operating system that has Python 3 and the Qt 5 libraries should be able to run novelWriter.
It runs fine on Linux, Windows and MacOS, and users have tested it on other platforms as well.
See :ref:`a_started` for more details.
**Useful Links**
@@ -53,7 +51,6 @@ pip. See :ref:`a_started` for more details.
int_overview
int_started
int_howto
int_customise
int_glossary
.. toctree::
@@ -83,6 +80,7 @@ pip. See :ref:`a_started` for more details.
:caption: Additional Details
:hidden:
more_customise
more_projectformat
more_counting

View File

@@ -16,13 +16,21 @@ This is a list of hopefully helpful little tips on how to get the most out of no
Managing the Project
====================
.. dropdown:: Create a Project from a Template
:animate: fade-in-slide-down
On the Welcome dialog's **Create New Project** form, you can select to "Prefill Project" from
the content of a different project. This feature is most useful if you copy a project you have
dedicated to be a template project. If you have a structure and settings you want to use for
every new project, this is the best solution.
.. dropdown:: Merge Multiple Documents Into One
:animate: fade-in-slide-down
If you need to merge a set of documents in your project into a single document, you can achieve
this by first making a new folder for just that purpose, and drag all the files you want merged
into this folder. Then you can right click the folder, select :guilabel:`Transform` and
:guilabel:`Merge Documents in Folder`.
If you need to merge a selection of documents in your project into a single document, you can
achieve this by first making a new folder for just that purpose, and drag all the documents you
want merged into this folder. Then you can right click the folder, select :guilabel:`Transform`
and :guilabel:`Merge Documents in Folder`.
In the dialog that pops up, the documents will be in the same order as in the folder, but you
can rearrange them here of you wish. See :ref:`a_ui_tree_split_merge` for more details.
@@ -31,12 +39,29 @@ Managing the Project
Layout Tricks
=============
.. dropdown:: Align Paragraphs with Line Breaks
:animate: fade-in-slide-down
If you have line breaks in you paragraphs, and also want to apply additional text alignment or
indentation, you must apply the alignment tags to the first line.
For example, this will centre the two lines.
.. code-block:: md
>> Line one is centred. <<
Line two is also centred.
This text is not centred, because it is a new paragraph.
See :ref:`a_fmt_align` for more details.
.. dropdown:: Create a Simple Table
:animate: fade-in-slide-down
The formatting tools available in novelWriter don't allow for complex structures like tables.
However, the editor does render tabs in a similar way that regular word processors do. You can
set the width of a tab in :guilabel:`Preferences`.
set the width of a tab in **Preferences**.
The tab key should have the same distance in the editor as in the viewer, so you can align text
in columns using the tab key, and it should look the same when viewed next to the editor.
@@ -44,6 +69,15 @@ Layout Tricks
This is most suitable for your notes, as the result in exported documents cannot be guaranteed
to match. Especially if you don't use the same font in your manuscript as in the editor.
.. dropdown:: Turn Off First Line Indent for a Paragraph
:animate: fade-in-slide-down
If you have first line indent enabled, but have a specific paragraph that you don't want
indented, you can disable the indentation by explicitly add text alignment. Aligned paragraphs
are not indented. For instance by adding ``<<`` to the end to left-align it,
See :ref:`a_fmt_align` for more details.
Organising Your Text
====================
@@ -58,26 +92,19 @@ Organising Your Text
such text. Separating chapter and scene files also allows you to make scene files child
documents of the chapter.
.. versionadded:: 2.0
.. dropdown:: Distinguishing Soft and Hard Scene Breaks
:animate: fade-in-slide-down
Depending on your writing style, you may need to separate between soft and hard scene breaks
within chapters. Like for instance if you switch point-of-view character often.
In such cases you may want to use a scene heading for hard scene breaks and a section heading
for soft scene breaks. The :guilabel:`Build Manuscript` tool will let you add separate
formatting for the two when you generate your manuscript. You can for instance add the common
"``* * *``" for hard breaks and select to hide section breaks, which will just insert an empty
paragraph in their place. See :ref:`a_manuscript_settings` for more details.
Keep in mind that this is not what the section heading is intended for, so the app will not
understand the section heading as a scene, but it will be formatted correctly in the manuscript.
In such cases you may want to use different scene headings for hard and soft scene breaks. The
**Build Manuscript** tool will let you define a different format for scenes using the ``###``
and ``###!`` heading codes when you generate your manuscript. You can for instance add the
common "``* * *``" for hard breaks and select to soft scene breaks, which will just insert an
empty paragraph in their place. See :ref:`a_manuscript_settings` for more details.
.. versionadded:: 2.4
You can now distinguish between soft and hard scene breaks with a modified scene header. See
:ref:`a_manuscript_settings_head_hard` for more details.
Other Tools

View File

@@ -1,51 +1,67 @@
.. _a_intro:
************
Key Features
************
********
Overview
********
.. _Snowflake: https://www.advancedfictionwriting.com/articles/snowflake-method/
.. _Markdown: https://en.wikipedia.org/wiki/Markdown
At its core, novelWriter is a multi-document plain text editor. It uses a markup syntax inspired by
Markdown_ to apply simple formatting to the text. It also allows for some extended formatting codes
using a shortcode format. See :ref:`a_fmt_shortcodes` for more details.
At its core, novelWriter is a multi-document plain text editor. The idea is to let you edit your
text without having to deal with formatting until you generate a draft document or manuscript.
Instead, you can focus on the writing right from the start.
Of course, you probably need *some* formatting for your text. At the very least you need emphasis.
Most people are familiar with adding emphasis using ``_underscores_`` and ``**asterisks**``. This
formatting standard comes from Markdown_ and is supported by novelWriter. It also uses Markdown
formatting for defining document headings. If you need more specialised formatting, additional
formatting options are available using a shortcode format. See :ref:`a_fmt_shortcodes` for more
details.
.. admonition:: Limitations
novelWriter is designed for writing fiction, so the formatting features available are limited to
those relevant for this purpose. It is **not** suitable for technical writing, and it is **not**
a full-featured Markdown editor.
those relevant for this purpose. It is *not* suitable for technical writing, and it is *not* a
full-featured Markdown editor.
It is also not intended as a tool to organise research for writing, and therefore lacks
It is also not intended as a tool for organising research for writing, and therefore lacks
formatting features you may need for this purpose. The notes feature in novelWriter is mainly
intended for character profiles and plot outlines.
Your novel project is organised as a collection of separate plain text documents instead of a
single, large document. The idea is to make it easier to reorganise your project structure without
having to cut and paste text between chapters.
Your novel project in novelWriter is organised as a collection of separate plain text documents
instead of a single, large document. The idea is to make it easier to reorganise your project
structure without having to cut and paste text between chapters and scenes.
There are two kinds of documents in your project: :term:`Novel Documents` are documents that are
part of your story. The other kind of documents are :term:`Project Notes`. These are intended for
part of your story. The other kind of documents are :term:`Project Notes`, which are intended for
your notes about your characters, your world building, and so on.
You can at any point split the individual documents by their headings up into multiple documents,
or merge multiple documents into single documents. This makes it easier to use variations of the
or merge multiple documents into a single document. This makes it easier to use variations of the
Snowflake_ method for writing. You can start by writing larger structure-focused documents, like
one per act for instance, and later effortlessly split these up into chapters or scenes.
for instance one document per act, and later effortlessly split these up into chapters or scenes.
.. _a_intro_features:
Key Features
============
Below are some key features of novelWriter.
**Focus on writing**
The aim of the user interface is to let you focus on writing instead of spending time formatting
text. Formatting is therefore limited to a small set of formatting tags for simple things like
text emphasis and paragraph alignment. When you really want to focus on just writing, you can
switch the editor into :guilabel:`Focus Mode` where only the text editor panel itself is
visible, and the project structure view is hidden away.
text emphasis and paragraph alignment. Additional shortcodes are available for special
formatting cases.
When you really want to focus on just writing, you can switch the editor into **Focus Mode**
where only the text editor panel itself is visible, and the project structure view is hidden
away.
**Keep an eye on your notes**
The main window can optionally show a document viewer to the right of the editor. This view
panel is intended for displaying another scene document, your character notes, plot notes, or any
The main window can optionally show a document viewer to the right of the editor. The viewer
is intended for displaying another scene document, your character notes, plot notes, or any
other document you may need to reference while writing. It is not intended as a preview panel
for the document you're editing, but if you wish, you can also use it for this purpose.
@@ -58,36 +74,42 @@ Below are some key features of novelWriter.
later split them into multiple documents based on chapter and scene headings.
**Multi-novel project support**
You can have multiple Novel type root folders in a project. This allows you to keep a series of
individual novels with the same characters and world building in the same project, and create
manuscripts for them individually.
The main parts of your project is split up into top level special folders called "Root" folders.
Your main story text lives in the "Novel" root folder. You can have multiple such folders in a
project, and rename them to whatever you want. This allows you to keep a series of individual
novels with the same characters and world building in the same project, and create manuscripts
for them individually.
**Keep track of your story elements**
All notes in your project can be assigned a :term:`tag` that you can :term:`reference` from any
other document or note. In fact, you can add a new tag under each heading of a note if you need
to be able to reference specific sections of it.
All notes in your project can be assigned a :term:`tag` that you can then :term:`reference` from
any other document or note. In fact, you can add a new tag under each heading of a note if you
need to be able to reference specific sections of it, or you want to keep several topics in the
same note.
**Get an overview of your story**
In the :guilabel:`Outline View` on the main window you can see an outline of all the chapters,
scenes, and sections of your project. If they have any references in them, these are listed in
additional columns. You can also add a synopsis to each chapter or scene, which can be listed
here as well. You have the option to add or remove columns of information from this outline. A
subset of the outline information is also available in the :guilabel:`Novel View` as an
alternative view to the project tree.
It is not the documents themselves that define the chapters and scenes of your story, but the
headings that separate them. In the **Outline View** on the main window you can see an outline
of all the chapter and scene headings of each novel root folder in your project. If they have
any references in them, like which character is in what chapter and scene, these are listed in
additional columns.
You can also add a synopsis to each chapter or scene, which can be listed here as well. You have
the option to add or remove columns of information from this outline. A subset of the outline
information is also available in the **Novel View** as an alternative view to the project tree.
**Get an overview of your story elements**
Under the document viewer panel you will find a series of tabs that shows the different story
elements you have created tags for. The tabs are sorted into Characters, Plots, etc, depending
on which categories you are using in your story. This panel can be hidden to free up space when
you don't need it.
Under the document viewer panel you will find a series of tabs that show the different story
elements you have created tags for. The tabs are sorted into **Characters**, **Plots**, etc,
depending on which categories you are using in your story. This panel can be hidden to free up
space when you don't need it.
**Assembling your manuscript**
Whether you want to assemble a manuscript, or export all your notes, or generate an outline of
your chapters and scenes with a synopsis, you can use the :guilabel:`Build Manuscript` tool to
your chapters and scenes with a synopsis included, you can use the **Build Manuscript** tool to
do so. The tool lets you select what information you want to include in the generated document,
and how it is formatted. You can send the result to a printer, a PDF, or to an Open Document
file that can be opened by most office type word processors. You can also generate the result
as HTML, or Markdown, both suitable for further conversion to other formats.
and how it is formatted. You can send the result to a printer or PDF, or generate an Open
Document file that can be opened by most office type word processors. You can also generate the
result as HTML, or Markdown, both suitable for further conversion to other formats.
.. _a_intro_screenshots:
@@ -95,7 +117,7 @@ Below are some key features of novelWriter.
Screenshots
===========
.. figure:: images/screenshot_default.png
.. figure:: images/screenshot_light.png
:class: dark-light
novelWriter with light colour theme

View File

@@ -1,28 +1,22 @@
.. _a_overview:
.. _a_reading:
********
Overview
********
******************
What to Read First
******************
.. only:: html
The documentation of novelWriter is quite extensive. There are a lot of features to get used to,
but you don't need all of them to get started.
.. image:: images/python_powered.png
:align: right
:width: 220
The chapters below labelled "Essential Information" are the ones you need to know to use the
application correctly. By "correctly", it is meant: in a way so novelWriter understands the basic
structure of your text. It collects a lot of information from your text and uses it to display the
structure of it in various ways to help you get an overview of your writing.
novelWriter is built as a cross-platform application using `Python 3 <https://www.python.org/>`_ as
the programming language, and `Qt 5 <https://www.qt.io/>`_ framework for the user interface.
The chapters labelled "Recommended Reading" includes additional information on how the different
parts if the application work and what the features do.
novelWriter is built for Linux first, so this is where it works best. However, it also runs fine
on Windows and MacOS due to the cross-platform framework it's built on. The author of the
application doesn't own a Mac, so on-going Mac support is dependent on user feedback and user
contributions.
Spell checking in novelWriter is provided by a third party library called
`Enchant <https://abiword.github.io/enchant/>`_. Please see the section on :ref:`a_custom_dict` for
how to install spell checking languages.
For install instructions for novelWriter, see :ref:`a_started`.
The "Optional" and "Lookup" chapters contain additional information or lookup tables that are not
essential for using the application.
Using novelWriter
@@ -82,8 +76,8 @@ meta data for it to extract.
the application interface.
:ref:`a_manuscript` - Recommended Reading
This chapter explains how the :guilabel:`Manuscript Build` tool works, how you can control the
way chapter titles are formatted, and how scene and section breaks are handled.
This chapter explains how the **Manuscript Build** tool works, how you can control the way
chapter titles are formatted, and how scene and section breaks are handled.
Additional Details & Technical Topics

View File

@@ -1,8 +1,8 @@
.. _a_started:
***************
Getting Started
***************
**********************
Setup and Installation
**********************
.. _Enchant: https://abiword.github.io/enchant/
.. _GitHub: https://github.com/vkbo/novelWriter
@@ -15,8 +15,8 @@ Getting Started
.. _AppImage: https://appimage.org/
Ready-made packages and installers for novelWriter are available for all major platforms, including
Linux, Windows and MacOS, from the `Downloads page`_. See below for install instructions for each
platform.
Linux, Windows and MacOS, from the `Downloads page`_. See below for install additional instructions
for each platform.
You can also install novelWriter from the Python Package Index (PyPi_). See :ref:`a_started_pip`.
Installing from PyPi does not set up icon launchers, so you will either have to do this yourself,
@@ -44,7 +44,7 @@ multiple installations has been known to cause problems.
The novelWriter installer is not signed because Microsoft doesn't currently provide a way for
non-profit open source projects to properly sign their installers. The novelWriter project
doesn't have the funding to pay for commercial software signing certificates. You will therefore
see an additional warning about this when you download the installer.
see an additional warning about this when you download and run the installer.
.. _a_started_linux:
@@ -56,6 +56,7 @@ A Debian package can be downloaded from the `Downloads page`_, or from the Relea
GitHub_. This package should work on both Debian, Ubuntu and Linux Mint, at least.
If you prefer, you can also add the novelWriter repository on Launchpad to your package manager.
The Launchpad packages `are signed by the author <https://launchpad.net/~vkbo>`__.
Ubuntu

View File

@@ -8,8 +8,8 @@ This is an overview of how words and other counts of your text are performed. Th
should be relatively standard, and are compared to Libre Office Writer rules.
The counts provided in the app on the raw text is meant to be approximate. For more accurate
counts, you need to build your manuscript in the :guilabel:`Manuscript Tool` and check the counts
on the generated preview.
counts, you need to build your manuscript in the **Manuscript Tool** and check the counts on the
generated preview.
Text Word Counts and Stats
@@ -31,11 +31,11 @@ After the above preparation of the text, the following counts are available.
**Character Count**
The character count is the sum of characters per line, including leading and in-text white space
characters, but excluding trailing white space characters. Shortcodes in the text are not
included, but Markdown codes are. Only headers and text are counted.
included, but Markdown codes are. Only headings and text are counted.
**Word Count**
The words count is the sum of blocks of continuous character per line separated by any number of
white space characters or dashes. Only headers and text are counted.
white space characters or dashes. Only headings and text are counted.
**Paragraph Count**
The paragraph count is the number of text blocks separated by one or more empty line. A line
@@ -45,10 +45,10 @@ After the above preparation of the text, the following counts are available.
Manuscript Counts
=================
These are the rules for the counts available for a manuscript in the :guilabel:`Manuscript Tool`.
The rules have been tuned to agree with LibreOffice Writer, but will vary slightly depending on the
content of your text. LibreOffice Writer also counts the text in the page header, which the
Manuscript Tool does not.
These are the rules for the counts available for a manuscript in the **Manuscript Tool**. The rules
have been tuned to agree with LibreOffice Writer, but will vary slightly depending on the content
of your text. LibreOffice Writer also counts the text in the page header, which the **Manuscript
Tool** does not.
The content of each line is counted after all formatting has been processed, so the result will be
more accurate than the counts for text documents elsewhere in the app. The following rules apply:
@@ -63,36 +63,36 @@ more accurate than the counts for text documents elsewhere in the app. The follo
The following counts are available:
**Header Count**
The number of headers in the manuscript.
**Headings**
The number of headings in the manuscript.
**Paragraph Count**
**Paragraphs**
The number of body text paragraphs in the manuscript.
**Total Word Count**
**Words**
The number of words in the manuscript, including any comments and meta data text.
**Text Word Count**
**Words in Text**
The number of words in body text paragraphs, excluding all other text.
**Header Word Count**
The number of words in headers, including inserted formatting like chapter numbers, etc.
**Words in Headings**
The number of words in headings, including inserted formatting like chapter numbers, etc.
**Total Character Count**
The number of characters on all lines, including any comments and meta data text. Paragraph
**Characters**
The number of characters in all lines, including any comments and meta data text. Paragraph
breaks are not counted, but in-paragraph hard line breaks are.
**Text Character Count**
**Character in Text**
The number of characters in body text paragraphs. Paragraph breaks are not counted, but
in-paragraph hard line breaks are.
**Header Character Count**
**Characters in Headings**
The number of characters in headings.
**Text Words Character Count**
**Character in Text, No Spaces**
The number of characters in body text paragraphs considered part of a word or punctuation. That
is, white space characters are not counted.
**Header Words Character Count**
The number of characters in headers considered part of a word or punctuation. That is, white
**Character in Headings, No Spaces**
The number of characters in headings considered part of a word or punctuation. That is, white
space characters are not counted.

View File

@@ -34,10 +34,10 @@ and add dictionaries yourself.
**Install Tool**
A small tool to assist with this can be found under :guilabel:`Tools > Add Dictionaries`. It will
import spell checking dictionaries from Free Office or Libre Office extensions. The dictionaries
are then installed in the install location for the Enchant library and should thus work for any
application that uses Enchant for spell checking.
A small tool to assist with this can be found under **Tools > Add Dictionaries**. It will import
spell checking dictionaries from Free Office or Libre Office extensions. The dictionaries are then
installed in the install location for the Enchant library and should thus work for any application
that uses Enchant for spell checking.
**Manual Install**
@@ -81,14 +81,14 @@ modify it as you like.
`novelwriter/assets/icons <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/icons>`_.
Remember to also change the name of your theme by modifying the ``name`` setting at the top of the
file, otherwise you may not be able to distinguish them in :guilabel:`Preferences`.
file, otherwise you may not be able to distinguish them in **Preferences**.
For novelWriter to be able to locate the custom theme files, you must copy them to the
:ref:`a_locations_data` location in your home or user area. There should be a folder there named
``syntax`` for syntax themes, just ``themes`` for GUI themes, and ``icons`` for icon themes. These
folders are created the first time you start novelWriter.
Once the files are copied there, they should show up in :guilabel:`Preferences` with the label you
Once the files are copied there, they should show up in **Preferences** with the label you
set as ``name`` inside the file.
.. versionadded:: 2.0
@@ -131,9 +131,12 @@ A GUI theme ``.conf`` file consists of the following settings:
linkvisited = 100, 100, 100
[GUI]
statusnone = 100, 100, 100
statussaved = 100, 100, 100
statusunsaved = 100, 100, 100
helptext = 0, 0, 0
fadedtext = 128, 128, 128
errortext = 255, 0, 0
statusnone = 120, 120, 120
statussaved = 2, 133, 37
statusunsaved = 200, 15, 39
In the Main section you must at least define the ``name`` and ``icontheme`` settings. The
``icontheme`` settings should correspond to one of the internal icon themes, either
@@ -143,7 +146,11 @@ setting must match the icon theme's folder name.
The Palette values correspond to the Qt enum values for ``QPalette::ColorRole``, see the
`Qt documentation <https://doc.qt.io/qt-5.15/qpalette.html#ColorRole-enum>`_ for more details. The
colour values are RGB numbers on the format ``r, g, b`` where each is an integer from ``0`` to
``255``. Omitted values are not loaded and will use default values.
``255``. Omitted values are not loaded and will use default values. If the ``helptext`` colour is
not defined, it is computed as a colour between the ``window`` and ``windowtext`` colour.
.. versionadded:: 2.5
The ``fadedtext`` and ``errortext`` theme colour entries were added.
Custom Syntax Theme
@@ -168,12 +175,13 @@ A syntax theme ``.conf`` file consists of the following settings:
headertext = 0, 0, 0
headertag = 0, 0, 0
emphasis = 0, 0, 0
straightquotes = 0, 0, 0
doublequotes = 0, 0, 0
singlequotes = 0, 0, 0
dialog = 0, 0, 0
altdialog = 0, 0, 0
note = 0, 0, 0
hidden = 0, 0, 0
shortcode = 0, 0, 0
keyword = 0, 0, 0
tag = 0, 0, 0
value = 0, 0, 0
optional = 0, 0, 0
spellcheckline = 0, 0, 0
@@ -190,10 +198,14 @@ Omitted syntax colours default to black, except ``background`` which defaults to
``texthighlight`` which defaults to white with half transparency.
.. versionadded:: 2.2
The `shortcode` syntax colour entry was added.
The ``shortcode`` syntax colour entry was added.
.. versionadded:: 2.3
The `optional` syntax colour entry was added.
The ``optional`` syntax colour entry was added.
.. versionadded:: 2.4
The `texthighlight` syntax colour entry was added.
The ``texthighlight`` syntax colour entry was added.
.. versionadded:: 2.5
The ``dialog``, ``altdialog``, ``note`` and ``tag`` syntax colour entries were added.
``straightquotes``, ``doublequotes`` and ``singlequotes`` were removed.

View File

@@ -4,9 +4,11 @@
Building the Manuscript
***********************
.. _Pandoc: https://pandoc.org/
You can at any time build a manuscript, an outline of your notes, or any other type of document
from the text in your project. All of this is handled by the :guilabel:`Manuscript Build` tool.
You can activate it from the sidebar, the :guilabel:`Tools` menu, or by pressing :kbd:`F5`.
from the text in your project. All of this is handled by the **Manuscript Build** tool. You can
activate it from the sidebar, the **Tools** menu, or by pressing :kbd:`F5`.
.. versionadded:: 2.1
This tool is new for version 2.1. A simpler tool was used for earlier versions. The simpler tool
@@ -20,40 +22,60 @@ The Manuscript Build Tool
=========================
.. figure:: images/fig_manuscript_build.png
:width: 80%
The :guilabel:`Manuscript Build` tool main window.
The **Manuscript Build** tool main window.
The main window of the :guilabel:`Manuscript Build` tool contains a list of all the builds you have
The main window of the **Manuscript Build** tool contains a list of all the builds you have
defined, a selection of settings, and a few buttons to generate preview, open the print dialog, or
run the build to create a manuscript document.
Outline and Word Counts
-----------------------
.. figure:: images/fig_manuscript_build_outline.png
:width: 80%
The **Manuscript Build** tool main window with the **Outline** visible.
The **Outline** tab on the left lets you navigate the headings in the preview document. It will
show up to scene level headings for novel documents, and level 2 headings for notes.
A collapsible panel of word and character counts are also available below the preview document.
These are calculated from the text you have included in the document, and are more accurate counts
than what's available in the project tree since they are counted *after formatting*.
For a detailed description on how they are counted, see :ref:`a_counting`.
.. _a_manuscript_settings:
Build Settings
==============
Each build definition can be edited by opening it in the :guilabel:`Manuscript Build Settings`
dialog, either by double-clicking or by selecting it and pressing the edit button in the toolbar.
Each build definition can be edited by opening it in the **Manuscript Build Settings** dialog,
either by double-clicking or by selecting it and pressing the edit button in the toolbar.
.. tip::
You can keep the :guilabel:`Manuscript Build Settings` dialog open while testing the different
options, and just hit the :guilabel:`Apply` button. You can test the result of your settings
by pressing the :guilabel:`Preview` button in the main :guilabel:`Manuscript Build` window.
When you're happy with the result, you can close the settings.
You can keep the **Manuscript Build Settings** dialog open while testing the different options,
and just hit the :guilabel:`Apply` button. You can test the result of your settings by pressing
the :guilabel:`Preview` button in the main **Manuscript Build** window. When you're happy with
the result, you can close the settings.
Document Selection
------------------
.. figure:: images/fig_build_settings_selections.png
:width: 80%
The :guilabel:`Selections` page of the :guilabel:`Manuscript Build Settings` dialog.
The **Selections** page of the **Manuscript Build Settings** dialog.
The :guilabel:`Selections` page of the :guilabel:`Manuscript Build Settings` dialog allows you to
fine tune which documents are included in the build. They are indicated by a green arrow icon in
the last column. On the right you have some filter options for selecting content of a specific
type, and a set of switches for which root folders to include.
The **Selections** page of the **Manuscript Build Settings** dialog allows you to fine tune which
documents are included in the build. They are indicated by a green arrow icon in the last column.
On the right you have some filter options for selecting content of a specific type, and a set of
switches for which root folders to include.
You can override the result of these filters by marking one or more documents and selecting to
explicitly include or exclude them by using the buttons below the tree view. The last button can be
@@ -69,13 +91,14 @@ Formatting Headings
-------------------
.. figure:: images/fig_build_settings_headings.png
:width: 80%
The :guilabel:`Headings` page of the :guilabel:`Manuscript Build Settings` dialog.
The **Headings** page of the **Manuscript Build Settings** dialog.
The :guilabel:`Headings` page of the :guilabel:`Manuscript Build Settings` dialog allows you to set
how the headings in your :term:`Novel Documents` are formatted. By default, the title is just
copied as-is, indicated by the ``{Title}`` format. You can change this to for instance add chapter
numbers and scene numbers, or insert character names, like shown in the figure above.
The **Headings** page of the **Manuscript Build Settings** dialog allows you to set how the
headings in your :term:`Novel Documents` are formatted. By default, the title is just copied as-is,
indicated by the ``{Title}`` format. You can change this to for instance add chapter numbers and
scene numbers, or insert character names, like shown in the figure above.
Clicking the edit button next to a format will copy the formatting string into the edit box where
it can be modified, and where a syntax highlighter will help indicate which parts are automatically
@@ -86,7 +109,7 @@ Any text you add that isn't highlighted in colours will remain in your formatted
``{Title}`` will always be replaced by the text in the heading from your documents.
You can preview the result of these format strings by clicking :guilabel:`Apply`, and then clicking
:guilabel:`Preview` in the :guilabel:`Manuscript Build` tool main window.
:guilabel:`Preview` in the **Manuscript Build** tool main window.
Scene Separators
@@ -107,10 +130,9 @@ be treated as a separator.
Hard and Soft Scenes
^^^^^^^^^^^^^^^^^^^^
If you wish to distinguish between so-called soft and hard scene breaks, where a hard scene break
is understood as a scene break that changes point-of-view character, you can use the modified scene
heading format in your text. You can then give these headings a different formatting in the
:guilabel:`Headings` settings.
If you wish to distinguish between so-called soft and hard scene breaks, you can use the
alternative scene heading format in your text. You can then give these headings a different
formatting in the **Headings** settings.
See :ref:`a_fmt_head` for more info on how to format headings in your text.
@@ -118,10 +140,9 @@ See :ref:`a_fmt_head` for more info on how to format headings in your text.
Output Settings
---------------
The :guilabel:`Content`, :guilabel:`Format` and :guilabel:`Output` pages of the
:guilabel:`Manuscript Build Settings` dialog control a number of other settings for the output.
Some of these only apply to specific output formats, which is indicated by the section headings on
the settings pages.
The **Content**, **Format** and **Output** pages of the **Manuscript Build Settings** dialog
control a number of other settings for the output. Some of these only apply to specific output
formats, which is indicated by the section headings on the settings pages.
.. _a_manuscript_build:
@@ -130,12 +151,13 @@ Building Manuscript Documents
=============================
.. figure:: images/fig_build_build.png
:width: 80%
The :guilabel:`Manuscript Build` dialog used for writing the actual manuscript documents.
The **Manuscript Build** dialog used for writing the actual manuscript documents.
When you press the :guilabel:`Build` button on the :guilabel:`Build Manuscript` tool main window, a
special file dialog opens up. This is where you pick your desired output format and where to write
the file.
When you press the :guilabel:`Build` button on the **Build Manuscript** tool main window, a special
file dialog opens up. This is where you pick your desired output format and where to write the
file.
On the left side of the dialog is a list of all the available file formats, and on the right, a
list of the documents which are included based on the build definition you selected. You can choose
@@ -157,7 +179,7 @@ Open Document Format
novelWriter HTML
The HTML format writes a single ``.htm`` file with minimal style formatting. The HTML document
is suitable for further processing by document conversion tools like Pandoc, for importing in
is suitable for further processing by document conversion tools like Pandoc_, for importing in
word processors, or for printing from browser.
novelWriter Markup
@@ -198,4 +220,4 @@ on the print dialog.
.. note::
The paper format should in all cases default to whatever your system default is. If you want to
change it, you have to select it from the :guilabel:`Print Preview` dialog.
change it, you have to select it from the **Print Preview** dialog.

View File

@@ -1,96 +1,122 @@
.. _a_proj:
**************
Novel Projects
**************
*****************
Managing Projects
*****************
New projects can be created from the :guilabel:`Project` menu by selecting
:guilabel:`Create or Open Project`. This will open the :guilabel:`Welcome` dialog, where you can
select the :guilabel:`New` button that will assist you in creating a new project.
Your text in novelWriter is organised into projects. Each project is meant to contain one novel
and associated notes. If you have multiple novels in a series, with the same characters and shared
notes, it is also possible to keep all of them in the same project.
.. _a_proj_new:
Creating Project
================
New projects can be created from the **Project** menu by selecting **Create or Open Project**. This
will open the **Welcome** dialog, where you can select the :guilabel:`New` button that will assist
you in creating a new project. This dialog is also displayed when you start novelWriter.
A novelWriter project requires a dedicated folder for storing its files on the local file system.
If you're interested in the details, you can have a look at the chapter :ref:`a_storage`.
A list of recently opened projects is maintained, and displayed in the :guilabel:`Welcome`
dialog. A project can be removed from this list by selecting it and pressing the :kbd:`Del` key or
by right-clicking it and selecting the :guilabel:`Remove Project` option.
A list of recently opened projects is maintained, and displayed in the **Welcome** dialog. A
project can be removed from this list by selecting it and pressing the :kbd:`Del` key or by
right-clicking it and selecting the **Remove Project** option.
.. figure:: images/fig_welcome.jpg
The project list (left) and new project form (right) of the :guilabel:`Welcome` dialog.
Project-specific settings are available in :guilabel:`Project Settings` in the :guilabel:`Project`
menu. See further details below in the :ref:`a_proj_settings` section. Details about the project's
novel text, including word counts, and a table of contents with word and page counts, is available
through the :guilabel:`Novel Details` dialog.
Project-specific settings are available in **Project Settings** in the **Project** menu. See
further details below in the :ref:`a_proj_settings` section.
Details about the project's novel text, including word counts, and a table of contents with word
and page counts, is available through the **Novel Details** dialog. Statistics about the project
is also available in the **Manuscript Build** tool.
Template Projects
-----------------
From the Welcome dialog you can also create a new from another existing project. If you have a
specific structure you want to use for all your new projects, you can create a dedicated project to
be used as a template, and select to copy an existing project from the :guilabel:"Prefill Project"
option from the **New Project** form.
.. _a_proj_roots:
Project Roots
=============
Project Structure
=================
Projects are structured into a set of top level folders called "Root Folders". They are visible in
the project tree at the left side of the main window.
The :term:`novel documents` go into a root folder of type :guilabel:`Novel`. :term:`Project notes`
go into the other root folders. These other root folder types are intended for your notes on the
various elements of your story. Using them is of course entirely optional.
The :term:`novel documents` go into a root folder of type **Novel**. :term:`Project notes` go into
the other root folders. These other root folder types are intended for your notes on the various
elements of your story. Using them is of course entirely optional.
A new project may not have all of the root folders present, but you can add the ones you want from
the project tree tool bar.
Each root folder has one or more :term:`reference` :term:`keyword` associated with it that is used
to reference them from other documents and notes. The intended usage of each type of root folder is
listed below. However, aside from the :guilabel:`Novel` folder, no restrictions are applied by the
listed below. However, aside from the **Novel** folder, no restrictions are applied by the
application on what you put in them. You can use them however you want.
The root folder system is closely connected to how the Tags and References system works. For more
details, see the :ref:`a_references` chapter.
:guilabel:`Novel`
Root Folder Types
-----------------
**Novel**
This is the root folder type for text that goes into the final novel or novels. This class of
documents have other rules and features than the project notes. See :ref:`a_struct` for more
details.
:guilabel:`Plot`
**Plot**
This is the root folder type where main plots can be outlined. It is optional, but adding at
least brief notes can be useful in order to tag plot elements for the :guilabel:`Outline View`.
Tags in this folder can be references using the ``@plot`` keyword.
least brief notes can be useful in order to tag plot elements for the **Outline View**. Tags in
this folder can be references using the ``@plot`` keyword.
:guilabel:`Characters`
**Characters**
Character notes go in this root folder type. These are especially important if you want to use
the :guilabel:`Outline View` to see which character appears where, which part of the story is
told from a specific character's point-of-view, or focusing on a particular character's
storyline. The character names can also be inserted into for instance chapter titles when you
create your manuscript. Tags in this type of folder can be referenced using the ``@pov`` keyword
for point-of-view characters, ``@focus`` for a focus character, or the ``@char`` keyword for any
the **Outline View** to see which character appears where, which part of the story is told from
a specific character's point-of-view, or focusing on a particular character's storyline.
The character names can also be inserted into for instance chapter titles when you create your
manuscript. Tags in this type of folder can be referenced using the ``@pov`` keyword for
point-of-view characters, ``@focus`` for a focus character, or the ``@char`` keyword for any
other character present.
:guilabel:`Locations`
**Locations**
The locations folder type is for various scene locations that you want to track. Tags in this
folder can be references using the ``@location`` keyword.
:guilabel:`Timeline`
**Timeline**
If the story has multiple plot timelines or jumps in time within the same plot, this folder type
can be used to track this. Tags in this type of folder can be references using the ``@time``
keyword.
:guilabel:`Objects`
Important objects in the story, for instance objects that change hands often, can be tracked
here. Tags in this type of folder can be references using the ``@object`` keyword.
**Objects**
Important objects in the story, for instance physical objects that change hands often, can be
tracked here. Tags in this type of folder can be references using the ``@object`` keyword.
:guilabel:`Entities`
**Entities**
Does your plot have many powerful organisations or companies? Or other entities that are part of
the plot? They can be organised here. Tags in this type of folder can be references using the
``@entity`` keyword.
:guilabel:`Custom`
**Custom**
The custom root folder type can be used for tracking anything else not covered by the above
options. Tags in this folder type can be references using the ``@custom`` keyword.
The root folders correspond to the categories of tags that can be used to reference them. For more
information about the tags listed, see :ref:`a_references_references`.
The root folders are closely tied to the tags and reference system. Each folder type corresponds to
the categories of tags that can be used to reference them. For more information about the tags
listed, see :ref:`a_references_references`.
.. note::
You can rename root folders to whatever you want. However, this doesn't change the reference
@@ -105,12 +131,11 @@ information about the tags listed, see :ref:`a_references_references`.
Deleted Documents
-----------------
Deleted documents will be moved into a special :guilabel:`Trash` root folder. Documents in the
trash folder can then be deleted permanently, either individually, or by emptying the trash from
the menu. Documents in the trash folder are removed from the :term:`project index` and cannot be
referenced.
Deleted documents are moved into a special **Trash** root folder. Documents in the trash folder can
then be deleted permanently, either individually, or by emptying the trash from the menu. Documents
in the trash folder are removed from the :term:`project index` and cannot be referenced.
A document or a folder can be moved to trash from the :guilabel:`Project` menu, or by pressing
A document or a folder can be moved to trash from the **Project** menu, or by pressing
:kbd:`Ctrl+Shift+Del`. Root folders can only be removed when they are empty.
@@ -119,13 +144,34 @@ A document or a folder can be moved to trash from the :guilabel:`Project` menu,
Archived Documents
------------------
If you don't want to delete a document, or put it in the :guilabel:`Trash` folder where it may be
deleted accidentally, but still want it out of your main project tree, you can create an
:guilabel:`Archive` root folder and move it there.
If you don't want to delete a document, or put it in the **Trash** folder where it may be deleted
accidentally, but still want it out of your main project tree, you can create an **Archive** root
folder instead and move it there. It has the same effect as moving it to **Trash**, but it is safe
from deletion.
You can drag any document to this folder and preserve its settings. The document will always be
excluded from the :guilabel:`Build Manuscript` tool. It is also removed from the
:term:`project index`, so the tags and references defined in it will not show up anywhere else.
excluded from the **Build Manuscript** tool. It is also removed from the :term:`project index`, so
the tags and references defined in it will not show up anywhere else.
.. _a_proj_roots_dirs:
Using Folders in the Project Tree
---------------------------------
Regular folders, those that are not root folders, have no structural significance to the project.
When novelWriter is processing the documents in a project, like for instance when you create a
manuscript from it, these folders are ignored. Only the order of the documents themselves matter.
The folders are there purely as a way for you to organise the documents in meaningful sections and
to be able to collapse and hide them in the project tree when you're not working on those
documents.
.. versionadded:: 2.0
As of version 2.0 it is possible to add child documents to other documents. This is particularly
useful when you create chapters and scenes. If you add separate scene documents, you should also
add separate chapter documents, even if they only contain a chapter heading. You can then add
scene documents as child items to the chapters.
.. _a_proj_roots_orphaned:
@@ -143,8 +189,8 @@ previously have been located in the project. The project loading routine will tr
as close as possible to this location, if it still exists. Generally, it will be appended to the
end of the folder where it previously was located. If that folder doesn't exist, it will try to add
it to the correct root folder type. If it cannot figure out which root folder is correct, the
document will be added to the :guilabel:`Novel` root folder. Finally, if the :guilabel:`Novel`
folder is missing, one will be created.
document will be added to the **Novel** root folder. Finally, if a **Novel** does not exist, one
will be created.
If the title of the document can be recovered, the word "Recovered:" will be added as a prefix to
indicate that it may need further attention. If the title cannot be determined, the document will
@@ -157,15 +203,16 @@ Project Lockfile
----------------
To prevent lost documents caused by file conflicts when novelWriter projects are synchronised via
file synchronisation tools, a project lockfile is written to the project storage folder. If you try
to open a project which has such a file present, you will be presented with a warning, and some
information about where else novelWriter thinks the project is also open. You will be given the
option to ignore this warning, and continue opening the project at your own risk.
file synchronisation tools, a project lockfile is written to the project storage folder when a
project is open. If you try to open a project which already has such a file present, you will be
presented with a warning, and some information about where else novelWriter thinks the project is
also open. You will be given the option to ignore this warning, and continue opening the project at
your own risk.
.. note::
If, for some reason, novelWriter crashes, the lock file may remain even if there are no other
instances keeping the project open. In such a case it is safe to ignore the lock file warning
when re-opening the project.
If, for some reason, novelWriter or your computer crashes, the lock file may remain even if
there are no other instances keeping the project open. In such a case it is safe to ignore the
lock file warning when re-opening the project.
.. warning::
If you choose to ignore the warning and continue opening the project, and multiple instances of
@@ -175,52 +222,31 @@ option to ignore this warning, and continue opening the project at your own risk
novelWriter will try to resolve project inconsistencies the next time you open the project.
.. _a_proj_roots_dirs:
Using Folders in the Project Tree
---------------------------------
Folders, aside from root folders, have no structural significance to the project. When novelWriter
is processing the documents in a project, like for instance when you create a manuscript from it,
these folders are ignored. Only the order of the documents themselves matter.
The folders are there purely as a way for you to organise the documents in meaningful sections and
to be able to collapse and hide them in the project tree when you're not working on those
documents.
.. versionadded:: 2.0
As of version 2.0 it is possible to add child documents to other documents. This is particularly
useful when you create chapters and scenes. If you add separate scene documents, you should also
add separate chapter documents, even if they only contain a chapter heading. You can then add
scene documents as child items to the chapters.
.. _a_proj_files:
Project Documents
=================
New documents can be created from the toolbar in the :guilabel:`Project Tree`, or by pressing
:kbd:`Ctrl+N`. This will open the create new item menu and let you choose between a number of
pre-defined documents and folders. You will be prompted for a label for the new item.
New documents can be created from the toolbar in the project tree, or by pressing :kbd:`Ctrl+N`.
This will open the create new item menu and let you choose between a number of pre-defined
documents and folders. You will be prompted for a label for the new item.
You can always rename an item by selecting :guilabel:`Rename Item` from the :guilabel:`Project`
menu, or by pressing :kbd:`F2`.
You can always rename an item by selecting **Rename Item** from the **Project** menu, or by
pressing :kbd:`F2` when a document or folder is selected.
Other settings for project items are available from the context menu that you can activate by
right-clicking on an item in the tree. The :guilabel:`Transform` submenu includes options for
converting, splitting, or merging items. See :ref:`a_ui_tree_split_merge` for more details on the
latter two.
Other settings for project documents and folders are available from the context menu that you can
activate by right-clicking on an it in the tree. The **Transform** submenu includes options for
converting, splitting, or merging documents. See :ref:`a_ui_tree_split_merge` for more details on
the latter two.
Document Templates
------------------
If you wish to create template documents to be used when creating new project documents, like for
instance a character note template, you can add a :guilabel:`Templates` root folder to your
project. Any document added to this root folder will show up in the :guilabel:`Add Item` menu in
the project tree toolbar. When selected, a new document is created with its content copied from the
chosen template.
instance a character note template, you can add a **Templates** root folder to your project. Any
document added to this root folder will show up in the **Add Item** menu in the project tree
toolbar. When selected, a new document is created with its content copied from the chosen template.
.. versionadded:: 2.3
@@ -233,8 +259,8 @@ Word Counts
A character, word and paragraph count is maintained for each document, as well as for each section
of a document following a :term:`heading<headings>`. The word count and change of words in the
current session is displayed in the footer of any document open in the editor, and all stats are
shown in the details panel below the :guilabel:`Project Tree` for any document selected in the
project or novel trees.
shown in the details panel below the project tree for any document selected in the project or novel
trees.
The word counts are not updated in real time, but run in the background every few seconds for as
long as the document is being actively edited.
@@ -242,7 +268,7 @@ long as the document is being actively edited.
A total project word count is displayed in the status bar. The total count depends on the sum of
the values in the project tree, which again depend on an up to date :term:`project index`. If the
counts seem wrong, a full project word recount can be initiated by rebuilding the project's index.
Either from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
Either from the **Tools** menu, or by pressing :kbd:`F9`.
The rules for how the counts are made is covered in more detail in :ref:`a_counting`.
@@ -252,33 +278,36 @@ The rules for how the counts are made is covered in more detail in :ref:`a_count
Project Settings
================
The :guilabel:`Project Settings` can be accessed from the :guilabel:`Project` menu, or by pressing
The **Project Settings** can be accessed from the **Project** menu, or by pressing
:kbd:`Ctrl+Shift+,`. This will open a dialog box, with a set of tabs.
Settings Tab
------------
The :guilabel:`Settings` tab holds the project name, title, and author settings.
The **Settings** tab holds the project name, author, and language settings.
The :guilabel:`Project Name` can be edited here. It is used for the GUI (main window title) and for
generating backup files. So keep in mind that if you do change this setting, the backup file names
will change too.
The **Project Name** can be edited here. It is used for the main window title and for generating
backup files. So keep in mind that if you do change this setting, the backup file names will change
too.
You can also change the :guilabel:`Authors` and :guilabel:`Project Language` setting. These are
only used when building the manuscript, for some formats.
You can also change the **Authors** and **Project Language** setting. These are only used when
building the manuscript, for some formats. The language setting is also used when inserting text
into documents in the viewer, like for instance labels for keywords and special comments.
If your project is in a different language than your main spell checking language is set to, you
can override the default setting here. The project language can also be changed from the
:guilabel:`Tools` menu. You can also override the automatic backup setting if you wish.
can override the default setting here. The project language can also be changed from the **Tools**
menu.
You can also override the automatic backup setting for the project if you wish.
Status and Importance Tabs
--------------------------
Each document or folder of type :guilabel:`Novel` can be given a "Status" label accompanied by a
coloured icon, and each document or folder of the remaining types can be given an "Importance"
label.
Each document or folder of type **Novel** can be given a "Status" label accompanied by a coloured
icon with an optional shape selected from a list of pre-defined shapes. Each document or folder of
the remaining types can be given an "Importance" label with the same customisation options.
These labels are there purely for your convenience, and you are not required to use them for any
other features to work. No other part of novelWriter accesses this information. The intention is to
@@ -316,22 +345,22 @@ Backup
======
An automatic backup system is built into novelWriter. In order to use it, a backup path to where
the backup files are to be stored must be provided in :guilabel:`Preferences`.
the backup files are to be stored must be provided in **Preferences**. The path defaults to a
folder named "Backups" in your home directory.
Backups can be run automatically when a project is closed, which also implies it is run when the
application itself is closed. Backups are date stamped zip files of the project files in the
project folder (files not strictly a part of the project are ignored). The zip archives are stored
in a subfolder of the backup path. The subfolder will have the same name as the
:guilabel:`Project Name` as defined in :ref:`a_proj_settings`.
in a subfolder of the backup path. The subfolder will have the same name as the **Project Name** as
defined in :ref:`a_proj_settings`.
The backup feature, when configured, can also be run manually from the :guilabel:`Tools` menu.
It is also possible to disable automated backups for a given project in
:guilabel:`Project Settings`.
The backup feature, when configured, can also be run manually from the **Tools** menu. It is also
possible to disable automated backups for a given project in **Project Settings**.
.. note::
For the backup to be able to run, the :guilabel:`Project Name` must be set in
:guilabel:`Project Settings`. This value is used to generate the name and path of the backups.
Without it, the backup will not run at all, but it will produce a warning message.
For the backup to be able to run, the **Project Name** must be set in **Project Settings**. This
value is used to generate the name and path of the backups. Without it, the backup will not run
at all, but it will produce a warning message.
.. _a_proj_stats:
@@ -344,9 +373,8 @@ total word counts of your novel documents and notes at the end of the session, p
session lasted either more than 5 minutes, or that the total word count changed. For more details
about the log file, see :ref:`a_storage`.
A tool to view the content of the log file is available in the :guilabel:`Tools` menu under
:guilabel:`Writing Statistics`. You can also launch it by pressing :kbd:`F6`, or find it on the
sidebar.
A tool to view the content of the log file is available in the **Tools** menu under **Writing
Statistics**. You can also launch it by pressing :kbd:`F6`, or find it on the sidebar.
The tool will show a list of all your sessions, and a set of filters to apply to the data. You can
also export the filtered data to a JSON file or to a CSV file that can be opened by a spreadsheet
@@ -356,4 +384,4 @@ application like for instance Libre Office Calc or Excel.
As of version 1.2, the log file also stores how much of the session time was spent idle. The
definition of idle here is that the novelWriter main window loses focus, or the user hasn't made
any changes to the currently open document in five minutes. The number of minutes can be altered
in :guilabel:`Preferences`.
in **Preferences**.

View File

@@ -16,9 +16,9 @@ this chapter hopes to explain in more detail how to use this tags and references
.. tip::
If you find the Tags and Reference system difficult to follow just from reading this chapter,
you can create a new project in the :guilabel:`Welcome` dialog's New project form and select
"Create an example project" from the "Pre-fill project" option. The example project contains
several examples of tags and references.
you can create a new project in the **Welcome** dialog's New project form and select "Create an
example project" from the "Pre-fill project" option. The example project contains several
examples of tags and references.
.. _a_references_metadata:
@@ -68,7 +68,7 @@ You can only set **one** tag per heading, and the tag has to be unique across **
the project.
After a tag has been defined, it can be referenced in novel documents, or cross-referenced in other
notes. Tags will also show up in the :guilabel:`Outline View` and in the references panel under the
notes. Tags will also show up in the **Outline View** and in the references panel under the
document viewer when a document is open in the viewer.
The syntax highlighter will indicate to you that the keyword is correctly used and that the tag is
@@ -79,7 +79,7 @@ that valid tags do.
The tag is the only part of these notes that novelWriter uses. The rest of the document content is
there for you to use in whatever way you wish. Of course, the content of the documents can be added
to the manuscript, or an outline document. If you want to compile a single document of all your
notes, you can do this from the :guilabel:`Manuscript Build` tool.
notes, you can do this from the **Manuscript Build** tool.
.. versionadded:: 2.2
Tags are no longer case sensitive. The tags are by default displayed with the capitalisation you
@@ -117,8 +117,8 @@ How to Use References
=====================
Each heading of any level in your project can contain references to tags set in project notes. The
references are gathered by the indexer and used to generate the :guilabel:`Outline View`, among
other things.
references are gathered by the indexer and used to generate the **Outline View**, among other
things.
References are set as a :term:`keyword` and a list of corresponding tags. The valid keywords are
listed below. The format of a reference line is ``@keyword: value1, [value2] ... [valueN]``. All
@@ -126,70 +126,69 @@ reference keywords allow multiple values.
``@pov``
The point-of-view character for the current section. The target must be a note tag in a
:guilabel:`Character` type root folder.
**Character** type root folder.
``@focus``
The character that has the focus for the current section. This can be used in cases where the
focus is not a point-of-view character. The target must be a note tag in a :guilabel:`Character`
type root folder.
focus is not a point-of-view character. The target must be a note tag in a **Character** type
root folder.
``@char``
Other characters in the current section. The target must be a note tag in a
:guilabel:`Character` type root folder. This should not include the point-of-view or focus
character if those references are used.
Other characters in the current section. The target must be a note tag in a **Character** type
root folder. This should not include the point-of-view or focus character if those references
are used.
``@plot``
The plot or subplot advanced in the current section. The target must be a note tag in a
:guilabel:`Plot` type root folder.
The plot or subplot advanced in the current section. The target must be a note tag in a **Plot**
type root folder.
``@time``
The timelines touched by the current section. The target must be a note tag in a
:guilabel:`Timeline` type root folder.
The timelines touched by the current section. The target must be a note tag in a **Timeline**
type root folder.
``@location``
The location the current section takes place in. The target must be a note tag in a
:guilabel:`Locations` type root folder.
**Locations** type root folder.
``@object``
Objects present in the current section. The target must be a note tag in a :guilabel:`Object`
type root folder.
Objects present in the current section. The target must be a note tag in a **Object** type root
folder.
``@entity``
Entities present in the current section. The target must be a note tag in a
:guilabel:`Entities` type root folder.
Entities present in the current section. The target must be a note tag in an **Entities** type
root folder.
``@custom``
Custom references in the current section. The target must be a note tag in a :guilabel:`Custom`
type root folder. The custom folder are for any other category of notes you may want to use.
Custom references in the current section. The target must be a note tag in a **Custom** type
root folder. The custom folder are for any other category of notes you may want to use.
The syntax highlighter will alert the user that the tags and references are used correctly, and
that the tags referenced exist.
.. note::
The highlighter may be mistaken if the index of defined tags is out of date. If so, press
:kbd:`F9` to regenerate it, or select :guilabel:`Rebuild Index` from the :guilabel:`Tools` menu.
In general, the index for a document is regenerated when it is saved, so this shouldn't normally
be necessary.
:kbd:`F9` to regenerate it, or select **Rebuild Index** from the **Tools** menu. In general, the
index for a document is regenerated when it is saved, so this shouldn't normally be necessary.
.. tip::
If you add a reference in the editor to a tag that doesn't yet exist, you can right-click it and
select :guilabel:`Create Note for Tag`. This will generate a new project note automatically with
the new tag defined. In order for this to be possible, a root folder for that category of
references must already exist.
select **Create Note for Tag**. This will generate a new project note automatically with the new
tag defined. In order for this to be possible, a root folder for that category of references
must already exist.
One note can also reference another note in the same way novel documents do. When the note is
opened in the document viewer, the references become clickable links, making it easier to follow
connections in the plot. You can follow links in the document editor by clicking them with the
mouse while holding down the :kbd:`Ctrl` key. Clicked links are always opened in the view panel.
Project notes don't show up in the :guilabel:`Outline View`, so referencing between notes is only
Project notes don't show up in the **Outline View**, so referencing between notes is only
meaningful if you want to be able to click-navigate between them, or of course if you just want to
highlight that two notes are related.
.. tip::
If you cross-reference between notes and export your project as an HTML document using the
:guilabel:`Manuscript Build` tool, the cross-references become clickable links in the exported
HTML document as well.
**Manuscript Build** tool, the cross-references become clickable links in the exported HTML
document as well.
Example of a novel document with references to characters and plots:
@@ -217,7 +216,7 @@ character ``@`` on a new line. It will first suggest tag or reference keywords f
after the ``:`` has been added, suggest references from the list of tags you have already defined.
You can use the auto-completer to add multiple references with a ``,`` between them, and even type
new ones. New references can be created by right-clicking on them and selecting
:guilabel:`Create Note for Tag` from the menu.
new ones. New references can be created by right-clicking on them and selecting **Create Note for
Tag** from the menu.
.. versionadded:: 2.2

View File

@@ -6,14 +6,13 @@ Novel Structure
This chapter covers the structure of a novel project.
There are two different types of documents in a project, :guilabel:`Novel Documents` and
:guilabel:`Project Notes`. Active novel documents can only live in a :guilabel:`Novel` type root
folder. You can also move them to :guilabel:`Archive` and :guilabel:`Trash` of course, where they
become inactive.
There are two different types of documents in a project, **Novel Documents** and **Project Notes**.
Active novel documents can only live in a **Novel** type root folder. You can also move them to
**Archive** and **Trash** of course, where they become inactive.
The :guilabel:`Project Tree` can distinguish between the different heading levels of the novel
documents using coloured icons, and optionally add emphasis on the label, set in
:guilabel:`Preferences`.
The project tree can distinguish between the different heading levels of the novel documents using
coloured icons, and optionally add emphasis on the label, set in **Preferences** for easier
identification.
.. _a_struct_heads:
@@ -29,40 +28,41 @@ title. See also the :ref:`a_fmt` section for more details about the markup synta
.. note::
The heading levels are not only important when generating the manuscript, they are also used by
the indexer when building the outline tree in the :guilabel:`Outline View` as well as in the
:guilabel:`Novel Tree`. Each heading also starts a new region where new Tags and References
can be defined. See :ref:`a_references` for more details.
the indexer when building the outline tree in the **Outline View** as well as in the **Novel
Tree**. Each heading also starts a new region where new Tags and References can be defined. See
:ref:`a_references` for more details.
The syntax for the four basic heading types, and the two special types, is listed in section
The syntax for the four basic heading types, and the three special types, is listed in section
:ref:`a_fmt_head`. The meaning of the four levels for the structure of your novel is as follows:
**Heading Level 1: Partition**
This heading level signifies that the text refers to a top level partition. This is useful when
This heading level signifies that the text refers to a top level heading. This is useful when
you want to split the manuscript up into books, parts, or acts. These headings are not required.
The novel title itself should use the special heading level ``#!`` covered in :ref:`a_fmt_head`.
**Heading Level 2: Chapter**
This heading level signifies a chapter level partition. Each time you want to start a new
chapter, you must add such a heading. If you choose to split your manuscript up into one
document per scene, you need a single chapter document with just the heading. You can of course
also add a synopsis and reference keywords to the chapter document. If you want to open the
chapter with a quote or other introductory text that isn't part of a scene, this is also where
you'd put that text.
This heading level signifies a chapter. Each time you want to start a new chapter, you must add
such a heading. If you choose to split your manuscript up into one document per scene, you need
a single chapter document with just the heading. You can of course also add a synopsis and
reference keywords to the chapter document. If you want to open the chapter with a quote or
other introductory text that isn't part of a scene, this is also where you'd put that text.
**Heading Level 3: Scene**
This heading level signifies a scene level partition. You must provide a title text, but the
title text can be replaced with a scene separator or just skipped entirely when you build your
manuscript.
This heading level signifies a scene. You must provide a title text, but the title text can be
replaced with a scene separator or just skipped entirely when you build your manuscript. If you
need to distinguish between hard and soft scene breaks, there is an alternative format for
scenes you can use for this distinction. The formatting is covered in :ref:`a_fmt_head`. See
also :ref:`a_struct_heads_scenes`.
**Heading Level 4: Section**
This heading level signifies a sub-scene level partition, usually called a "section" in the
This heading level can be used to split up a scene, usually called a "section" in the
documentation and the user interface. These can be useful if you want to change references
mid-scene, like if you change the point-of-view character. You are free to use sections as you
wish, and you can filter them out of the final manuscript just like with scene titles.
wish, and you can filter them out of the final manuscript.
Page breaks are automatically added before partition and chapter headings when you build your
project to a format that supports page breaks. If you want page breaks in other places, you have to
specify them manually. See :ref:`a_fmt_break`.
Page breaks can be automatically added before partition, chapter and scene headings from the
**Manuscript Build** tool when you build your project to a format that supports page breaks. If you
want page breaks in other places, you have to specify them manually. See :ref:`a_fmt_break`.
.. tip::
There are multiple options of how to process novel headings when building the manuscript. For
@@ -76,9 +76,9 @@ specify them manually. See :ref:`a_fmt_break`.
Novel Title and Front Matter
----------------------------
It is recommended that you add a document at the very top of each Novel root folder with the novel
title as the first line. You should modify the level 1 heading format code with an ``!`` in order
to render it as a document title that is excluded from any automatic Table of Content in a
It is recommended that you add a document at the very top of each **Novel** root folder with the
novel title as the first line. You should modify the level 1 heading format code with an ``!`` in
order to render it as a document title that is excluded from any automatic Table of Content in a
manuscript build document, like so:
.. code-block:: md
@@ -102,7 +102,7 @@ Unnumbered Chapter Headings
If you use the automatic numbering feature for your chapters, but you want to keep some special
chapters separate from this, you can add an ``!`` to the level 2 heading formatting code to tell
the build tool to skip these chapters.
the build tool to skip these chapters when adding numbers.
.. code-block:: md
@@ -110,13 +110,31 @@ the build tool to skip these chapters.
Chapter Text
There is a separate formatting feature for such chapter titles in the :guilabel:`Manuscript Build`
tool as well. See the :ref:`a_manuscript` page for more details. When building a document of a
format that supports page breaks, also unnumbered chapters will have a page break added just like
for normal chapters.
There is a separate formatting feature for such chapter titles in the **Manuscript Build** tool as
well. See the :ref:`a_manuscript` page for more details. When building a document of a format that
supports page breaks, also unnumbered chapters can have a page break added just like for normal
chapters.
.. Note::
Previously, you could also disable the automatic numbering of a chapter by adding an ``*`` as
the first character of the chapter title itself. This feature has been dropped in favour of the
current format in order to keep level 1 and 2 headers consistent. Please update your chapter
headings if you've used this syntax.
.. _a_struct_heads_scenes:
Hard and Soft Scene Breaks
--------------------------
If you need two different ways to style scenes in your manuscript, like if you want to insert
different scene separators for soft and hard scene breaks, there is an alternative scene format
available for scene headings with a ``!`` added to the formatting code.
.. code-block:: md
### Soft Scene Transition
A soft scene break.
###! Hard Scene Transition
A hard scene break.
There is a separate formatting feature for these titles in the **Manuscript Build** tool.
.. versionadded:: 2.4

View File

@@ -15,10 +15,9 @@ file locations are described in this chapter.
Configuration
=============
The general configuration of novelWriter, including everything that is in :guilabel:`Preferences`,
is saved in one central configuration file. The location of this file depends on your operating
system. The system paths are provided by the Qt QStandardPaths_ class and its ``ConfigLocation``
value.
The general configuration of novelWriter, including everything that is in **Preferences**, is saved
in one central configuration file. The location of this file depends on your operating system. The
system paths are provided by the Qt QStandardPaths_ class and its ``ConfigLocation`` value.
The standard paths are:
@@ -40,9 +39,8 @@ Application Data
================
novelWriter also stores a bit of data that is generated by the user's actions. This includes the
list of recent projects form the :guilabel:`Open Project` dialog. Custom themes should also be
saved here. The system paths are provided by the Qt QStandardPaths_ class and its
``AppDataLocation`` value.
list of recent projects form the **Welcome** dialog. Custom themes should also be saved here. The
system paths are provided by the Qt QStandardPaths_ class and its ``AppDataLocation`` value.
The standard paths are:
@@ -56,3 +54,12 @@ user's username on Windows.
.. note::
These are the standard operating system defined locations. If your system has been set up in a
different way, these locations may also be different.
The Application Data location also holds several folders:
``cache``
This folder is used to save the preview data for the **Manuscript Build** tool.
``icons``, ``syntax`` and ``themes``
These folders are empty by default, but this is where the user can store custom theme files.
See :ref:`a_custom` for more details.

View File

@@ -39,11 +39,9 @@ The following Python packages are needed to run all features of novelWriter:
* ``PyQt5`` – needed for connecting with the Qt5 libraries.
* ``PyEnchant`` – needed for spell checking (optional).
PyQt/Qt should be at least 5.10, but ideally 5.13 or higher for all features to work. For instance,
searching using regular expressions with full Unicode support requires 5.13.
If you want spell checking, you must install the ``PyEnchant`` package. The spell check library
must be at least 3.0 to work with Windows. On Linux, 2.0 also works fine.
PyQt/Qt must be at least 5.15.0. If you want spell checking, you must install the ``PyEnchant``
package. The spell check library must be at least 3.0 to work with Windows. On Linux, 2.0 also
works fine.
If you install from PyPi, these dependencies should be installed automatically. If you install from
source, dependencies can still be installed from PyPi with:
@@ -55,7 +53,7 @@ source, dependencies can still be installed from PyPi with:
.. note::
On Linux distros, the Qt library is usually split up into multiple packages. In some cases,
secondary dependencies may not be installed automatically. For novelWriter, the library files
for renderring the SVG icons may be left out and needs to be installed manually. This is the
for rendering the SVG icons may be left out and needs to be installed manually. This is the
case on for instance Arch Linux.
@@ -159,6 +157,5 @@ You can also build a PDF manual from the documentation using the ``pkgutils.py``
python pkgutils.py manual
This will build the documentation as a PDF using LaTeX. The file will then be copied into the
assets folder and made available in the :guilabel:`Help` menu in novelWriter. The Sphinx build
system has a few extra dependencies when building the PDF. Please check the `Sphinx Docs`_ for more
details.
assets folder and made available in the **Help** menu in novelWriter. The Sphinx build system has a
few extra dependencies when building the PDF. Please check the `Sphinx Docs`_ for more details.

View File

@@ -55,10 +55,10 @@ string. The documents are saved with a filename assembled from this handle and t
``.nwd``.
If you wish to find the file system location of a document in the project, you can either look it
up in the project XML file, select :guilabel:`Show File Details` from the :guilabel:`Document` menu
when having the document open in the editor, or look in the ``ToC.txt`` file in the root of the
project folder. The ``ToC.txt`` file has a list of all documents in the project, referenced by
their label, and where they are saved.
up in the project XML file, select **Show File Details** from the **Document** menu when having the
document open in the editor, or look in the ``ToC.txt`` file in the root of the project folder. The
``ToC.txt`` file has a list of all documents in the project, referenced by their label, and where
they are saved.
The reason for this cryptic file naming is to avoid issues with file naming conventions and
restrictions on different operating systems, and also to have a file name that does not depend on
@@ -109,7 +109,7 @@ The Project Index
Between writing sessions, the project index is saved in a JSON file in ``meta/index.json``.
This file is not critical. If it is lost, it can be completely rebuilt from within novelWriter from
the :guilabel:`Tools` menu.
the **Tools** menu.
The index is maintained and updated whenever a document or note is saved in the editor. It contains
all references and tags in documents and notes, as well as the location of all headers in the
@@ -125,8 +125,8 @@ the index. If this too fails, you have likely encountered a bug.
Build Definitions
-----------------
The build definitions from the :guilabel:`Manuscript Build` tool are kept in the
``meta/builds.json`` file. If this file is lost, all custom build definitions are lost too.
The build definitions from the **Manuscript Build** tool are kept in the ``meta/builds.json`` file.
If this file is lost, all custom build definitions are lost too.
Cached GUI Options
@@ -144,17 +144,17 @@ Custom Word List
----------------
A file named ``meta/userdict.json`` contains all the custom words you've added to the project for
spell checking purposes. The content of the file can be edited from the :guilabel:`Tools` menu. If
you lose this file, all your custom spell check words will be lost too.
spell checking purposes. The content of the file can be edited from the **Tools** menu. If you lose
this file, all your custom spell check words will be lost too.
Session Stats
-------------
The writing progress is saved in the ``meta/sessions.jsonl`` file. This file records the length
and word counts of each writing session on the given project. The file is used by the
:guilabel:`Writing Statistics` tool. If this file is lost, the history it contains is also lost,
but it has otherwise no impact on the project.
and word counts of each writing session on the given project. The file is used by the **Writing
Statistics** tool. If this file is lost, the history it contains is also lost, but it has otherwise
no impact on the project.
Each session is recorded as a JSON object on a single line of the file. Each session record is
appended tot he file.

View File

@@ -21,14 +21,15 @@ GUI Layout and Design
The user interface of novelWriter is intended to be as minimalistic as practically possible, while
at the same time provide useful features needed for writing a novel.
The main window does not have an editor toolbar like many other applications do. This reduces
clutter, and since the documents are formatted with style tags, it is more or less redundant.
Still, a small formatting toolbar can be popped out by clicking the three dots in the header of the
document editor to give quick access to standard formatting codes.
The main window does not by default have an editor toolbar like many other applications do. This
reduces clutter, and since the documents are formatted with style tags, it is not needed most of
the time. Still, a small formatting toolbar can be popped out by clicking the left-most button in
the header of the document editor. It gives quick access to standard formatting codes.
Most formatting features supported are available through convenient keyboard shortcuts. They are
also available in the main menu, so you don't have to look up formatting codes every time you need
them. For reference, a list of all shortcuts can be found in the :ref:`a_kb` chapter.
also available in the main menu under **Format**, so you don't have to look up formatting codes
every time you need them. For reference, a list of all shortcuts can be found in the :ref:`a_kb`
chapter.
.. note::
novelWriter is not intended to be a full office type word processor. It doesn't support images,
@@ -37,13 +38,13 @@ them. For reference, a list of all shortcuts can be found in the :ref:`a_kb` cha
simple features.
On the left side of the main window, you will find a sidebar. This bar has buttons for the standard
views you can switch between, a quick link to the :guilabel:`Build Manuscript` tool, and a set of
views you can switch between, a quick link to the **Build Manuscript** tool, and a set of
project-related tools and quick access to settings at the bottom.
.. versionadded:: 2.2
A number of new formatting options were added in 2.2 to allow for some special formatting cases.
At the same time, a small formatting toolbar was added in the editor. It is hidden by default,
but can be opened by pressing the three dots icon in the top right corner.
At the same time, a small formatting toolbar was added to the editor. It is hidden by default,
but can be opened by pressing the button in the top right corner of the editor header.
Project Tree and Editor View
@@ -53,19 +54,19 @@ Project Tree and Editor View
A screenshot of the Project Tree and Editor View.
When in :guilabel:`Project Tree View` mode, the main work area of the main window is split in two,
or optionally three, panels. The left-most panel contains the project tree and all the documents in
your project. The second panel is the document editor.
When the application is in **Project Tree View** mode, the main work area of the main window is
split in two, or optionally three, panels. The left-most panel contains the project tree and all
the documents in your project. The second panel is the document editor.
An optional third panel on the right side contains a document viewer which can view any document in
your project independently of what is open in the document editor. This panel is not intended as a
preview window, although you can use it for this purpose if you wish if you need to check that the
formatting tags behave as you expected. The main purpose of the viewer is for viewing your notes
next to your editor while you're writing.
preview window, although you can use it for this purpose if you wish. For instance if you need to
check that the formatting tags behave as you expect. However, the main purpose of the viewer is for
viewing your notes next to your editor while you're writing.
The editor also has a :guilabel:`Focus Mode` you can toggle either from the menu, from the icon in
the editor's header, or by pressing :kbd:`F8`. When :guilabel:`Focus Mode` is enabled, all the user
interface elements other than the document editor itself are hidden away.
The editor also has a **Focus Mode** you can toggle either from the menu, from the icon in the
editor's header, or by pressing :kbd:`F8`. When **Focus Mode** is enabled, all the user interface
elements other than the document editor itself are hidden away.
Novel View and Editor View
@@ -73,31 +74,32 @@ Novel View and Editor View
.. figure:: images/fig_novel_tree_view.png
A screenshot of the Novel Tree View.
A screenshot of the Novel Tree and Editor View.
When in :guilabel:`Novel Tree View` mode, the project tree is replaced by an overview of your novel
structure for a specific Novel :term:`root folder`. Instead of showing individual documents, the
tree now shows all headings of your novel text. This includes multiple headings within the same
document.
When the application is in **Novel Tree View** mode, the project tree is replaced by an overview of
your novel structure for a specific Novel :term:`root folder`. Instead of showing individual
documents, the tree now shows all headings of your novel text. This includes multiple headings
within the same document.
Each heading is indented according to the heading level. You can open and edit your novel documents
from this view as well. All headings contained in the currently open document should be highlighted
in the view to indicate which ones belong together in the same document.
Each heading is indented according to the heading level, not its parent/child relationship to other
elements of your project. You can open and edit your novel documents from this view as well. All
headings contained in the currently open document should be highlighted in the view to indicate
which ones belong together in the same document.
If you have multiple "Novel" type root folders, the header of the novel view becomes a dropdown
If you have multiple **Novel** type root folders, the header of the novel view becomes a dropdown
box. You can then switch between them by clicking the :guilabel:`Outline of ...` text. You can also
click the novel icon button next to it.
Generally, the novel view should update when you make changes to the novel structure, including
edits of the current document in the editor. The information is only updated when the automatic
save of the document is triggered, or you manually press :kbd:`Ctrl+S` to save changes. (You can
adjust the auto-save interval in :guilabel:`Preferences`.) You can also regenerate the whole novel
view by pressing the refresh button in the novel view header.
adjust the auto-save interval in **Preferences**.) You can also regenerate the whole novel view by
pressing the refresh button in the novel view header.
It is possible to show an optional third column in the novel view. The settings are available from
the menu button in the toolbar.
If you click the arrow icon to the right of each item, a tooltip will pop out showing you all the
If you click the triangular icon to the right of each item, a tooltip will pop out showing all the
meta data collected for that heading.
@@ -108,9 +110,9 @@ Novel Outline View
A screenshot of the Novel Outline View.
When in :guilabel:`Novel Outline View` mode, the tree, editor and viewer will be replaced by a
large table that shows the entire novel structure with all the tags and references listed. Pretty
much all collected meta data is available here in different columns.
When the application is in **Novel Outline View** mode, the tree, editor and viewer will be
replaced by a large table that shows the entire novel structure with all the tags and references
listed. Pretty much all collected meta data is available here in different columns.
You can select which novel root folder to display from the dropdown box, and you can select which
columns to show or hide from the menu button. You can also rearrange the columns by drag and drop.
@@ -122,18 +124,44 @@ Colour Themes
By default, novelWriter will use the colour theme provided by the Qt library, which is determined
by the Fusion_ style setting. You can also choose between a standard dark and light theme that have
neutral colours from :guilabel:`Preferences`. Other colour themes are also available. More themes
can be contributed to novelWriter on GitHub.
neutral colours from **Preferences**.
If you wish, you *can* create your own colour themes, and even have them added to the application.
See :ref:`a_custom_theme` for more details.
Switching the GUI colour theme does not affect the colours of the editor and viewer. They have
separate colour selectable from the "Document colour theme" setting in :guilabel:`Preferences`.
They are separated because there are a lot more options to choose from for the editor and viewer.
separate colour selectable from the "Document colour theme" setting in **Preferences**. They are
separated because there are a lot more options to choose from for the editor and viewer.
.. note::
If you switch between light and dark mode on the GUI, you should also switch editor theme to
match, otherwise icons may be hard to see in the editor and viewer.
Project Search
--------------
A global search tool is available from the side bar. It allows you to search through your entire
project. The tool does not provide a replace feature. There is a search and replace tool available
in the document editor that acts on the open document.
.. versionadded:: 2.4
Switching Focus
---------------
If the project or novel view does not have focus, pressing :kbd:`Ctrl+T` switches focus to
whichever of the two is visible. If one of them already has focus, the key press will switch
between them instead.
Likewise, pressing :kbd:`Ctrl+E` with switch focus to the document editor or viewer, or if any of
them already have focus, it will switch focus between them,
These two shortcuts makes it possible to jump between all these GUI elements without having to
reach for the mouse or touchpad.
.. _a_breakdown_project:
Project Layout
@@ -152,12 +180,12 @@ within those documents.
An illustration of how heading levels correspond to the novel structure.
The four heading levels (**H1** to **H4**) are treated as follows:
The four heading levels, **Level 1** to **Level 4**, are treated as follows:
* **H1** is used for the novel title, and for partitions.
* **H2** is used for chapter tiles.
* **H3** is used for scene titles -- optionally replaced by separators.
* **H4** is for section titles within scenes, if such granularity is needed.
* **Level 1** is used for the novel title, and for partitions.
* **Level 2** is used for chapter tiles.
* **Level 3** is used for scene titles -- optionally replaced by separators.
* **Level 4** is for section titles within scenes, if such granularity is needed.
The project tree will select an icon for the document based on the first heading in it.
@@ -178,25 +206,25 @@ Building a Manuscript
=====================
The project can at any time be assembled into a range of different formats through the
:guilabel:`Build Manuscript` tool. Natively, novelWriter supports `Open Document`_, HTML5, and
**Build Manuscript** tool. Natively, novelWriter supports `Open Document`_, HTML5, and
various flavours of Markdown.
The HTML5 format is suitable for conversion by a number of other tools like Pandoc_, or for
importing into word processors if the Open Document format isn't suitable. The Open Document format
is supported by most Office type applications. In addition, printing is also possible. Print to PDF
is supported by most office type applications. In addition, printing is also possible. Print to PDF
is available from the print dialog.
In addition, you can export the content of the project to a JSON file. This is useful if you want
to write your own custom processing script in for instance Python, as the entire novel can be read
into a Python dictionary with a couple of lines of code. The JSON file can be populated with either
HTML formatted text, or with the raw text as typed into the novel documents.
For advanced processing, you can export the content of the project to a JSON file. This is useful
if you want to write your own custom processing script in for instance Python, as the entire novel
can be read into a Python dictionary with a couple of lines of code. The JSON file can be populated
with either HTML formatted text, or with the raw text as typed into the novel documents.
See :ref:`a_manuscript` for more details.
.. versionadded:: 2.1
You can now define multiple build definitions in the :guilabel:`Build Manuscript` tool. This
allows you to define specific settings for various types of draft documents, outline documents,
and manuscript formats. See :ref:`a_manuscript` for more details.
You can now define multiple build definitions in the **Build Manuscript** tool. This allows you
to define specific settings for various types of draft documents, outline documents, and
manuscript formats. See :ref:`a_manuscript` for more details.
.. _a_breakdown_storage:

View File

@@ -10,7 +10,7 @@ values and allowing for some text formatting. The syntax is based on Markdown, b
(bold) and strike through text, as well as four levels of headings. For some further complex
formatting needs, a set of shortcodes can be used.
In addition to formatting codes, novelWriter allows for comments, a synopsis tag, and a set of
In addition to formatting codes, novelWriter allows for comments, a synopsis tag, and a number of
keyword and value sets used for :term:`tags<tag>` and :term:`references<reference>`. There are also
some codes that apply to whole paragraphs. See :ref:`a_fmt_text` for more details.
@@ -35,7 +35,7 @@ have a distinct colour, and the references themselves will get a colour if they
references will get a squiggly error line underneath. The same applies to duplicate tags.
There are a number of syntax highlighter colour themes available, both for light and dark GUIs. You
can select them from :guilabel:`Preferences`.
can select them from **Preferences**.
.. _a_fmt_head:
@@ -54,6 +54,9 @@ correctly to produce the intended result. See :ref:`a_struct_heads` for more det
``# Title Text``
Heading level one. For novel documents, the level indicates the start of a new partition.
Partitions are for when you want to split your story into "Part 1", "Part 2", etc. You can also
choose to use them for splitting the text up into acts, and then hide these headings in your
manuscript.
``## Title Text``
Heading level two. For novel documents, the level indicates the start of a new chapter. Chapter
@@ -62,16 +65,17 @@ correctly to produce the intended result. See :ref:`a_struct_heads` for more det
``### Title Text``
Heading level three. For novel documents, the level indicates the start of a new scene. Scene
numbers or scene separators can be inserted automatically when building the manuscript, so you
can use the title field as a working title for your scenes if you wish.
can use the title field as a working title for your scenes if you wish, but you must provide a
minimal title.
``#### Title Text``
Heading level four. For novel documents, the level indicates the start of a new section. Section
titles can be replaced by separators or ignored completely when building the manuscript.
For headings level one through three, adding a ``!`` modifies its meaning:
For headings level one through three, adding a ``!`` modifies the meaning of the heading:
``#! Title Text``
This tells the build tool that the level one heading is intended to be used for the novel's or
This tells the build tool that the level one heading is intended to be used for the novel or
notes folder's main title, like for instance on the front page. When building the manuscript,
this will use a different styling and will exclude the title from, for instance, a Table of
Contents in Libre Office.
@@ -82,9 +86,10 @@ For headings level one through three, adding a ``!`` modifies its meaning:
:ref:`a_struct_heads_unnum` for more details.
``###! Title Text``
This is an alternative scene heading that can be formatted differently in the
:guilabel:`Manuscript Build` tool. It is intended for separating "soft" and "hard" scene breaks.
Otherwise, it behaves identically to a regular scene heading.
This is an alternative scene heading that can be formatted differently in the **Manuscript
Build** tool. It is intended for separating "soft" and "hard" scene breaks. Aside from this, it
behaves identically to a regular scene heading. See :ref:`a_struct_heads_scenes` for more
details.
.. note::
The space after the ``#`` or ``!`` character is mandatory. The syntax highlighter will change
@@ -106,8 +111,8 @@ In addition, the editor supports a few additional types of white spaces:
* Thin spaces are also supported, and can be inserted with :kbd:`Ctrl+K`, :kbd:`Shift+Space`.
* Non-breaking thin space can be inserted with :kbd:`Ctrl+K`, :kbd:`Ctrl+Space`.
These are all insert features, and the :guilabel:`Insert` menu has more. The keyboard shortcuts for
them are also listed in :ref:`a_kb_ins`.
These are all insert features, and the **Insert** menu has more. The keyboard shortcuts for them
are also listed in :ref:`a_kb_ins`.
Non-breaking spaces are highlighted by the syntax highlighter with an alternate coloured
background, depending on the selected theme.
@@ -120,8 +125,8 @@ background, depending on the selected theme.
.. _a_fmt_emph:
Text Emphasis
=============
Text Emphasis with Markdown
===========================
A minimal set of Markdown text emphasis styles are supported for text paragraphs.
@@ -129,12 +134,12 @@ A minimal set of Markdown text emphasis styles are supported for text paragraphs
The text is rendered as emphasised text (italicised).
``**text**``
The text is rendered as strongly important text (bold).
The text is rendered as strongly emphasised text (bold).
``~~text~~``
Strike through text.
In Markdown guides it is often recommended to differentiate between strong importance and emphasis
In Markdown guides it is often recommended to differentiate between strong emphasis and emphasis
by using ``**`` for strong and ``_`` for emphasis, although Markdown generally also supports ``__``
for strong and ``*`` for emphasis. However, since the differentiation makes the highlighting and
conversion significantly simpler and faster, in novelWriter this is a rule, not just a
@@ -151,7 +156,7 @@ In addition, the following rules apply:
outside, they violate rule 2.
4. Text emphasis does not span past line breaks. If you need to add emphasis to multiple lines or
paragraphs, you must apply it to each of them in turn.
5. Text emphasis can only be used in plain paragraphs. Comments, titles, and meta data tags don't
5. Text emphasis can only be used in comments and paragraphs. Headings and meta data tags don't
allow for formatting, and any formatting markup will be rendered as-is.
.. tip::
@@ -163,8 +168,8 @@ In addition, the following rules apply:
.. _a_fmt_shortcodes:
Extended Formatting with Shortcodes
===================================
Formatting with Shortcodes
==========================
For additional formatting options, you can use shortcodes. Shortcodes is a form of in-line codes
that can be used to change the format of the text that follows and opening code, and last until
@@ -182,14 +187,22 @@ solved with simple Markdown-like formatting codes. Available shortcodes are list
"``[i]text[/i]``", "Text is rendered as italicised text."
"``[s]text[/s]``", "Text is rendered as strike through text."
"``[u]text[/u]``", "Text is rendered as underlined text."
"``[m]text[/m]``", "Text is rendered as highlighted text."
"``[sup]text[/sup]``", "Text is rendered as superscript text."
"``[sub]text[/sub]``", "Text is rendered as subscript text."
Unlike Markdown style codes, these can be used anywhere within a paragraph. Even in the middle of a
word if you need to. You can also freely combine them to form more complex formatting.
The shortcodes are available from the :guilabel:`Format` menu and in the editor toolbar, which can
be activated by clicking the three dots in the editor header.
The shortcodes are available from the **Format** menu and in the editor toolbar, which can be
activated by clicking the left-most icon button in the editor header.
.. note::
Shortcodes are not processed until you generate a preview or generate a manuscript document. So
there is no highlighting of the text between the formatting markers. There is also no check that
your markers make sense. You must ensure that you have both the opening and closing formatting
markers where you want them.
.. versionadded:: 2.2
@@ -199,30 +212,38 @@ be activated by clicking the three dots in the editor header.
Comments and Synopsis
=====================
In addition to these standard Markdown features, novelWriter also allows for comments in documents.
The text of a comment is ignored by the word counter. The text can also be filtered out when
building the manuscript or viewing the document.
In addition to the above formatting features, novelWriter also allows for comments in documents.
The text of a comment is always ignored by the word counter. The text can also be filtered out
when building the manuscript or viewing the document.
If the first word of a comment is ``Synopsis:`` (with the colon included), the comment is treated
in a special manner and will show up in the :ref:`a_ui_outline` in a dedicated column. The word
``synopsis`` is not case sensitive. If it is correctly formatted, the syntax highlighter will
indicate this by altering the colour of the word.
The first word of a comment, followed by a colon, can be one of a small set of modifiers that
indicates the comment is intended for a specific purpose. For instance, if the comment starts with
``Synopsis:``, the comment is treated in a special manner and will show up in the
:ref:`a_ui_outline` in a dedicated column. The word ``synopsis`` is not case sensitive. If it is
correctly formatted, the syntax highlighter will indicate this by altering the colour of the word.
``% text ...``
The different styles of comments are as follows:
``% Your comment text ...``
This is a comment. The text is not rendered by default (this can be overridden), seen in the
document viewer, or counted towards word counts.
document viewer, or counted towards word counts. It is intended for you to make notes in your
text for your own sake, whatever that may be, that isn't part of the story text. This is the
general format of a comment.
``%Synopsis: text ...``
``%Synopsis: Your synopsis text ...``
This is a synopsis comment. It is generally treated in the same way as a regular comment, except
that it is also captured by the indexing algorithm and displayed in the :ref:`a_ui_outline`. It
can also be filtered separately when building the project to for instance generate an outline
document of the whole project.
``%Short: text ...``
``%Short: Your short description ...``
This is a short description comment. It is identical to the synopsis comment (they are
interchangeable), but is intended to be used for project notes. The text shows up in the
Reference panel below the document viewer in the last column labelled
:guilabel:`Short Description`.
Reference panel below the document viewer in the last column labelled **Short Description**.
``%Footnote.<key>: Your footnote text ...``
This is a special comment assigned to a footnote marker. See :ref:`a_fmt_footnote` for how to
use them in your text.
.. note::
Only one comment can be flagged as a synopsis or short comment for each heading. If multiple
@@ -230,29 +251,87 @@ indicate this by altering the colour of the word.
ignored.
.. _a_fmt_footnote:
Footnotes
=========
Footnotes are added with a shortcode, paired with a matching comment for the actual footnote text.
The matching is done with a key that links the two. If you insert a footnote from the **Insert**
menu, a unique key is generated for you.
The insert feature will add the footnote shortcode marker at the position of your cursor in the
text, and create the associated footnote comment right after the paragraph, and move the cursor
there so you can immediately start typing the footnote text.
The footnote comment can be anywhere in the document, so if you wish to move them to, say, the
bottom of the text, you are free to do so.
Footnote keys are only required to be unique within a document, so if you copy, move or merge text,
you must make sure the keys are not duplicated. If you use the automatically generated keys from
the **Insert** menu, they are unique among all indexed documents. They are not guaranteed to be
unique against footnotes in the Archive or Trash folder though, but the chance of accidentally
generating the same key twice in a project is relatively small in the first place (1 in 810 000).
This is what a footnote inserted into a paragraph may look like when completed:
.. code-block:: md
This is a text paragraph with a footnote[footnote:fn1] in the middle.
%Footnote.fn1: This is the text of the footnote.
.. versionadded:: 2.5
.. _a_fmt_ignore:
Ignored Text
============
If you want to completely ignore some of the text in your documents, but are not ready to delete
it, you can add ``%~`` before the text paragraph or line. This will cause novelWriter to skip the
text entirely when generating previews or building manuscripts.
This is a better way of removing text than converting them to regular comments, as you may want to
include regular comments in your previews or draft manuscript.
You can toggle the ignored text feature on and off for a paragraph by pressing :kbd:`Ctrl+Shift+D`
on your keyboard with your cursor somewhere in the paragraph.
Example:
.. code-block:: md
%~ This text is ignored.
This text is a regular paragraph.
.. _a_fmt_tags:
Tags and References
===================
The document editor supports a set of keywords used for setting tags, and making references between
documents.
documents based on those tags.
Tags use the keyword ``@tag:`` to define a tag. The tag can be set once per section defined by a
heading. Setting it multiple times under the same heading will just override the previous setting.
You must use the keyword ``@tag:`` to define a tag. The tag can be set once per section defined by
a heading. Setting it multiple times under the same heading will just override the previous
setting.
``@tag: value``
A tag keyword followed by the tag value, like for instance the name of a character.
References can be set anywhere within a section, and are collected according to their category.
References are in the form:
References are on the form:
``@keyword: value``
``@keyword: value1, value2, ..., valueN``
A reference keyword followed by a value, or a comma separated list of values.
Tags and references are covered in detail in the :ref:`a_references` chapter. The keywords can be
inserted at the cursor position in the editor via the :guilabel:`Insert` menu. If you start typing
an ``@`` on a new line, and auto-complete menu will also pop up suggesting keywords.
inserted at the cursor position in the editor via the **Insert** menu. If you start typing an ``@``
on a new line, and auto-complete menu will also pop up suggesting keywords.
.. _a_fmt_align:
@@ -260,8 +339,8 @@ an ``@`` on a new line, and auto-complete menu will also pop up suggesting keywo
Paragraph Alignment and Indentation
===================================
All documents have the text by default aligned to the left or justified, depending on your
settings in :guilabel:`Preferences`.
All documents have the text by default aligned to the left or justified, depending on your setting
in **Preferences**.
You can override the default text alignment on individual paragraphs by specifying alignment tags.
These tags are double angle brackets. Either ``>>`` or ``<<``. You put them either before or after
@@ -291,11 +370,49 @@ Examples:
from the manuscript build tool as long as the format supports paragraph alignment.
Alignment with Line Breaks
--------------------------
If you have line breaks in the paragraph, like for instance when you are writing verses, the
alignment markers must be applied to the first line. Markers on the other lines are ignored. The
markers for the first line are used for all the other lines.
For the following text, all lines will be centred, not just the first:
.. code-block:: md
>> I am the very model of a modern Major-General <<
I've information vegetable, animal, and mineral
I know the kings of England, and I quote the fights historical
From Marathon to Waterloo, in order categorical
Alignment with First Line Indent
--------------------------------
If you have first line indent enabled in your Manuscript build settings, you probably want to
disable it for text in verses. Adding any alignment tags will cause the first line indent to be
switched off for that paragraph.
The following text will always be aligned against the left margin:
.. code-block:: md
I am the very model of a modern Major-General <<
I've information vegetable, animal, and mineral
I know the kings of England, and I quote the fights historical
From Marathon to Waterloo, in order categorical
.. _a_fmt_break:
Vertical Space and Page Breaks
==============================
You can apply page breaks to partition, chapter and scene headings for novel documents from the
**Manuscript Build** tool. If you need to add a page break or additional vertical spacing in other
places, there are special codes available for this purpose.
Adding more than one line break between paragraphs will **not** increase the space between those
paragraphs when building the project. To add additional space between paragraphs, add the text
``[vspace]`` on a line of its own, and the build tool will insert a blank paragraph in its place.
@@ -303,13 +420,8 @@ paragraphs when building the project. To add additional space between paragraphs
If you need multiple blank paragraphs just add a colon and a number to the above code. For
instance, writing ``[vspace:3]`` will insert three blank paragraphs.
Normally, the manuscript build tool will insert a page break before all headings of level one and
for all headings of level two for novel documents, i.e. chapters, but not for project notes.
If you need to add a page break somewhere else, put the text ``[new page]`` on a line by itself
before the text you wish to start on a new page.
If you want page breaks for scenes and sections, you must add them manually.
If you need to add a page break somewhere, put the text ``[new page]`` on a line by itself before
the text you wish to start on a new page.
.. note::
The page break code is applied to the text that follows it. It adds a "page break before" mark
@@ -325,8 +437,8 @@ If you want page breaks for scenes and sections, you must add them manually.
[vspace:2]
This is another text paragraph, but there will be two empty paragraphs
in-between them.
between them.
[new page]
This text will always start on a new page if the build format has pages.
This text will start on a new page if the build format has pages.

View File

@@ -8,7 +8,7 @@ This chapter covers in more detail the different project views available in nove
.. figure:: images/fig_project_tree_detailed.png
The Project Tree as it appears when loading a sample project.
The **Project Content** tree as it appears when loading a sample project.
.. _a_ui_tree:
@@ -21,33 +21,32 @@ the project, and has four columns.
**Column 1**
The first column shows the icon and label of each folder, document, or note in your project. The
label is not the same as the title you set inside the document. However, the document's label
will appear in the header above the document text itself so you know where in the project an
open document belongs. The icon is selected based on the type of item, and for novel documents,
the level of the first header in the document text.
label is not the same as the heading title you set inside the document. However, the document's
label will appear in the header above the document text itself so you know where in the project
an open document belongs. The icon is selected based on the type of item, and for novel
documents, the level of the first heading in the document text.
**Column 2**
The second column shows the word count of the document, or the sum of words of the child items
for folders and documents with sub-documents. If the counts seem incorrect, they can be updated
by rebuilding the :term:`project index` from the :guilabel:`Tools` menu, or by pressing
:kbd:`F9`.
by rebuilding the :term:`project index` from the **Tools** menu, or by pressing :kbd:`F9`.
**Column 3**
The third column indicates whether the document is considered active or inactive in the project.
You can use this flag to indicate that a document is still in the project, but should not be
considered an active part of it. When you run the :guilabel:`Build Manuscript` tool, you can
include or exclude documents based on this flag. You can change this value from the
considered an active part of it. When you run the **Build Manuscript** tool, you can include or
exclude documents based on this flag. You can change this value from the right-click
:term:`context menu`.
**Column 4**
The fourth column shows the user-defined status or importance labels you've assigned to each
project item. See :ref:`a_ui_tree_status` for more details on how to uses these labels. You can
change these labels from the :term:`context menu`.
select these labels from the :term:`context menu`, and define them in **Project Settings**.
Right-clicking an item in the project tree will open a context menu under the cursor, displaying
a selection of actions that can be performed on the selected item.
At the top of the tree, you will find a set of buttons.
At the top of the project tree, you will find a set of buttons.
* The first button is a quick links button that will show you a dropdown menu of all the
:term:`root folders<root folder>` in your project. Selecting one will move to that position in
@@ -55,7 +54,8 @@ At the top of the tree, you will find a set of buttons.
* The next two buttons can be used to move items up and down in the project tree. This is the only
way to move root folders.
* The next button opens a dropdown menu for adding new items to the tree. This includes root
folders. You can also activate this dropdown menu by pressing :kbd:`Ctrl+N`.
folders and template documents. You can also activate this dropdown menu by pressing
:kbd:`Ctrl+N`.
* The last button is a menu of further actions you can apply to the project tree.
Below the project tree you will find a small details panel showing the full information of the
@@ -73,10 +73,10 @@ addition to the word count.
Splitting and Merging Documents
-------------------------------
Under the :guilabel:`Transform` submenu in the context menu of an item in the project tree, you
will find several options on how to change a document or folder. This includes changing between
document and note, but also splitting them into multiple documents, or merging child items into a
single document.
Under the **Transform** submenu in the context menu of an item in the project tree, you will find
several options on how to change a document or folder. This includes changing between document and
note, but also splitting them into multiple documents, or merging child items into a single
document.
Splitting Documents
@@ -84,12 +84,12 @@ Splitting Documents
.. figure:: images/fig_project_split_tool.png
The :guilabel:`Split Document` dialog.
The **Split Document** dialog.
The :guilabel:`Split Document by Heading` option will open a dialog that allows you to split the
selected document into multiple new documents based on the headings it contains. You can select at
which heading level the split is to be performed from the dropdown box. The list box will preview
which headings will be split into new documents.
The **Split Document by Headings** option will open a dialog that allows you to split the selected
document into multiple new documents based on the headings it contains. You can select at which
heading level the split is to be performed from the dropdown box. The list box will preview which
headings will be split into new documents.
You are given the option to create a folder for these new documents, and whether or not to create a
hierarchy of documents. That is, put sections under scenes, and scenes under chapters.
@@ -103,18 +103,18 @@ Merging Documents
.. figure:: images/fig_project_merge_tool.png
The :guilabel:`Merge Documents` dialog.
The **Merge Documents** dialog.
You have two options for merging documents that are child elements of another document. You can
either :guilabel:`Merge Child Items into Self` and :guilabel:`Merge Child Items into New`. The
first option will pull all content of child items and merge them into the parent document, while
the second option will create a new document in the process.
either **Merge Child Items into Self** and **Merge Child Items into New**. The first option will
pull all content of child items and merge them into the parent document, while the second option
will create a new document in the process.
When merging documents in a folder, you only have the latter process is possible, so only the
choice :guilabel:`Merge Documents in Folder` is available.
choice **Merge Documents in Folder** is available.
In either case, the :guilabel:`Merge Documents` dialog will let you exclude documents you don't
want to include, and it also lets you reorder them if you wish.
In either case, the **Merge Documents** dialog will let you exclude documents you don't want to
include, and it also lets you reorder them if you wish.
.. _a_ui_tree_status:
@@ -124,14 +124,14 @@ Document Importance and Status
Each document or folder in your project can have either a "Status" or "Importance" flag set. These
are flags that you control and define yourself, and novelWriter doesn't use them for anything. To
modify the labels, go to their respective tabs in :guilabel:`Project Settings`.
modify the labels, go to their respective tabs in **Project Settings**.
The "Status" flag is intended to tag a :term:`novel document<novel documents>` as for instance a
draft or as completed, and the "Importance" flag is intended to tag character notes, or other
:term:`project notes`, as for instance a main, major, or minor character or story element.
Whether a document uses a "Status" or "Importance" flag depends on which :term:`root folder` it
lives in. If it's in a Novel type folder, it uses the "Status" flag, otherwise it uses an
lives in. If it's in a **Novel** type folder, it uses the "Status" flag, otherwise it uses an
"Importance" flag.
@@ -142,7 +142,7 @@ Project Tree Drag & Drop
The project tree allows drag & drop to a certain extent to allow you to reorder your documents and
folders. Moving a document in the project tree will affect the text's position when you assemble
your manuscript in the :guilabel:`Manuscript Build` tool.
your manuscript in the **Manuscript Build** tool.
.. versionadded:: 2.2
You can now select multiple items in the project tree by holding down the :kbd:`Ctrl` or
@@ -150,14 +150,15 @@ your manuscript in the :guilabel:`Manuscript Build` tool.
You can drag and drop documents and regular folders, but not root folders. If you select multiple
items, they can only be dragged and dropped if they are siblings. That is, they have the same
parent item in the project. This is due to the way drag and drop is implemented in the user
interface framework novelWriter is built upon.
parent item in the project. This limitation is due to the way drag and drop is implemented in the
user interface framework novelWriter is built upon.
Documents and their folders can be rearranged freely within their root folders. If you move a Novel
document out of a Novel folder, it will be converted to a project note. Notes can be moved freely
between all root folders, but keep in mind that if you move a note into a Novel type root folder,
its "Importance" setting will be switched with a "Status" setting. See :ref:`a_ui_tree_status`. The
old value will not be overwritten though, and should be restored if you move it back at some point.
Documents and their folders can be rearranged freely within their root folders. If you move a
**Novel Document** out of a **Novel** folder, it will be converted to a **Project Note**. Notes can
be moved freely between all root folders, but keep in mind that if you move a note into a **Novel**
type root folder, its "Importance" setting will be switched with a "Status" setting. See
:ref:`a_ui_tree_status`. The old value will not be overwritten though, and should be restored if
you move it back at some point.
Root folders in the project tree cannot be dragged and dropped at all. If you want to reorder them,
you can move them up or down with respect to each other from the arrow buttons at the top of the
@@ -175,8 +176,8 @@ The Novel Tree View
An alternative way to view the project structure is the novel view. You can switch to this view by
selecting the :guilabel:`Novel View` button in the sidebar. This view is a simplified version of
the view in the :guilabel:`Outline View`. It is convenient when you want to browse the structure
of the story itself rather than the document files.
the view in the **Outline View**. It is convenient when you want to browse the structure of the
story itself rather than the document files.
.. note::
You cannot reorganise the entries in the novel view, or add any new documents, as that would
@@ -194,14 +195,14 @@ The Novel Outline View
A screenshot of the Novel Outline View.
The project's :guilabel:`Novel Outline View` is available as another view option from the sidebar.
The outline provides an overview of the novel structure, displaying a tree hierarchy of the
elements of the novel, that is, the level 1 to 4 headings representing partitions, chapters, scenes
and sections.
The project's **Novel Outline View** is available as another view option from the sidebar. The
outline provides an overview of the novel structure, displaying a tree hierarchy of the elements of
the novel, that is, the level 1 to 4 headings representing partitions, chapters, scenes and
sections.
The document containing the heading can also be displayed as a separate column, as well as the line
number where the heading is defined. Double-clicking an entry will open the corresponding document
in the editor and switch to :guilabel:`Project Tree View` mode.
in the editor and switch to **Project Tree View** mode.
You can select which novel folder to display from the dropdown menu. You can optionally also choose
to show a combination of all novel folders.
@@ -217,7 +218,7 @@ the menu button in the toolbar. The order of the columns can also be rearranged
a different position. You column settings are saved between sessions on a per-project basis.
.. note::
The :guilabel:`Title` column cannot be disabled or moved.
The **Title** column cannot be disabled or moved.
The information viewed in the outline is based on the :term:`project index`. While novelWriter does
its best to keep the index up to date when contents change, you can always rebuild it manually by
@@ -226,5 +227,5 @@ pressing :kbd:`F9` if something isn't right.
The outline view itself can be regenerated by pressing the refresh button. By default, the content
is refreshed each time you switch to this view.
The :guilabel:`Synopsis` column of the outline view takes its information from a specially
formatted comment. See :ref:`a_fmt_comm`.
The **Synopsis** column of the outline view takes its information from a specially formatted
comment. See :ref:`a_fmt_comm`.

View File

@@ -20,22 +20,22 @@ Main Window Shortcuts
:header: "Shortcut", "Description"
":kbd:`F1`", "Open the online user manual"
":kbd:`F5`", "Open the :guilabel:`Build Manuscript` tool"
":kbd:`F6`", "Open the :guilabel:`Writing Statistics` tool"
":kbd:`F8`", "Toggle :guilabel:`Focus Mode`"
":kbd:`F5`", "Open the **Build Manuscript** tool"
":kbd:`F6`", "Open the **Writing Statistics** tool"
":kbd:`F8`", "Toggle **Focus Mode**"
":kbd:`F9`", "Re-build the project's index"
":kbd:`F11`", "Toggle full screen mode"
":kbd:`Ctrl+,`", "Open the :guilabel:`Preferences` dialog"
":kbd:`Ctrl+E`", "Switch focus to the document editor"
":kbd:`Ctrl+,`", "Open the **Preferences** dialog"
":kbd:`Ctrl+E`", "Switch or toggle focus for the editor or viewer"
":kbd:`Ctrl+T`", "Switch or toggle focus for the project tree or novel view"
":kbd:`Ctrl+Q`", "Exit novelWriter"
":kbd:`Ctrl+Shift+,`", "Open the :guilabel:`Project Settings` dialog"
":kbd:`Ctrl+Shift+,`", "Open the **Project Settings** dialog"
":kbd:`Ctrl+Shift+O`", "Open the Welcome dialog to open or create a project"
":kbd:`Ctrl+Shift+S`", "Save the current project"
":kbd:`Ctrl+Shift+T`", "Switch focus to the outline view"
":kbd:`Ctrl+Shift+W`", "Close the current project"
":kbd:`Shift+F1`", "Open the local user manual (PDF) if it is available"
":kbd:`Shift+F6`", "Open the :guilabel:`Project Details` dialog"
":kbd:`Shift+F6`", "Open the **Project Details** dialog"
.. _a_kb_tree:
@@ -53,8 +53,8 @@ Project Tree Shortcuts
":kbd:`Alt+Left`", "Jump to the parent item in the tree"
":kbd:`Alt+Right`", "Jump to the first child item in the project tree"
":kbd:`Ctrl+.`", "Open the context menu on the selected item"
":kbd:`Ctrl+L`", "Open the :guilabel:`Quick Links` menu"
":kbd:`Ctrl+N`", "Open the :guilabel:`Create New Item` menu"
":kbd:`Ctrl+L`", "Open the **Quick Links** menu"
":kbd:`Ctrl+N`", "Open the **Create New Item** menu"
":kbd:`Ctrl+O`", "Open the selected document in the editor"
":kbd:`Ctrl+R`", "Open the selected document in the viewer"
":kbd:`Ctrl+Up`", "Move selected item one step up in the tree"
@@ -75,11 +75,12 @@ Text Search Shortcuts
:header: "Shortcut", "Description"
":kbd:`F3`", "Find the next occurrence of the search word"
":kbd:`Ctrl+F`", "Open the search bar and search for the selected word, if any is selected"
":kbd:`Ctrl+F`", "Open search and look for the selected word"
":kbd:`Ctrl+G`", "Find the next occurrence of the search word"
":kbd:`Ctrl+H`", "Open the search tool and populate with the selected word (Mac :kbd:`Cmd+=`)"
":kbd:`Ctrl+Shift+1`", "Replace selected occurrence of the search word, and move to the next"
":kbd:`Ctrl+H`", "Open replace and look for the selected word (Mac :kbd:`Cmd+=`)"
":kbd:`Ctrl+Shift+1`", "Replace selected occurrence, and move to the next"
":kbd:`Ctrl+Shift+G`", "Find the previous occurrence of the search word"
":kbd:`Ctrl+Shift+F`", "Open project search and look for the selected word"
":kbd:`Shift+F3`", "Find the previous occurrence of the search word"
@@ -91,8 +92,8 @@ Text Formatting Shortcuts
":kbd:`Ctrl+'`", "Wrap selected text, or word under cursor, in single quotes"
":kbd:`Ctrl+""`", "Wrap selected text, or word under cursor, in double quotes"
":kbd:`Ctrl+/`", "Toggle block format as comment for block under cursor, or selected text"
":kbd:`Ctrl+0`", "Remove block formatting for block under cursor, or selected text"
":kbd:`Ctrl+/`", "Toggle comment format for block or selected text"
":kbd:`Ctrl+0`", "Remove format for block or selected text"
":kbd:`Ctrl+1`", "Change block format to heading level 1"
":kbd:`Ctrl+2`", "Change block format to heading level 2"
":kbd:`Ctrl+3`", "Change block format to heading level 3"
@@ -102,11 +103,11 @@ Text Formatting Shortcuts
":kbd:`Ctrl+7`", "Change block alignment to right-aligned"
":kbd:`Ctrl+8`", "Add a left margin to the block"
":kbd:`Ctrl+9`", "Add a right margin to the block"
":kbd:`Ctrl+B`", "Format selected text, or word under cursor, with strong emphasis (bold)"
":kbd:`Ctrl+B`", "Format selected text, or word under cursor, with bold"
":kbd:`Ctrl+D`", "Format selected text, or word under cursor, with strike through"
":kbd:`Ctrl+I`", "Format selected text, or word under cursor, with emphasis (italic)"
":kbd:`Ctrl+Shift+/`", "Remove block formatting for block under cursor, or selected text"
":kbd:`Ctrl+Shift+D`", "Toggle block format as ignored text for block under cursor, or selected text"
":kbd:`Ctrl+I`", "Format selected text, or word under cursor, with italic"
":kbd:`Ctrl+Shift+/`", "Remove format for block or selected text"
":kbd:`Ctrl+Shift+D`", "Toggle ignored text format for block or selected text"
Other Editor Shortcuts

View File

@@ -11,7 +11,7 @@ Typographical Notes
novelWriter has some support for typographical symbols that are not usually easily available in
many text editors. This includes for instance the proper unicode quotation marks, dashes, ellipsis,
thin spaces, etc. All these symbols are available from the :guilabel:`Insert` menu, and via
thin spaces, etc. All these symbols are available from the **Insert** menu, and via
keyboard shortcuts. See :ref:`a_kb_ins`.
This chapter provides some additional information on how novelWriter handles these symbols.
@@ -43,22 +43,22 @@ Single and Double Quotes
All the different quotation marks listed on the `Quotation Mark`_ Wikipedia page are available, and
can be selected as auto-replaced symbols for straight single and double quote key strokes. The
settings can be found in :guilabel:`Preferences`.
settings can be found in **Preferences**.
Ordinarily, text wrapped in quotes are highlighted by the editor. This is meant as a convenience
for highlighting dialogue between characters. This feature can be disabled in
:guilabel:`Preferences` if this feature isn't wanted.
**Preferences** if this feature isn't wanted.
The editor distinguishes between text wrapped in regular straight double quotes and the
user-selected double quote symbols. This is to help the writer recognise which parts of the text
are not using the chosen quote symbols. Two convenience functions in the :guilabel:`Format` menu
are not using the chosen quote symbols. Two convenience functions in the **Format** menu
can be used to re-format a selected section of text with the correct quote symbols.
Single and Double Prime
------------------------
Both single and double prime symbols are available in the :guilabel:`Insert` menu. These symbols
Both single and double prime symbols are available in the **Insert** menu. These symbols
are the correct symbols to use for unit symbols for feet, inches, minutes, and seconds. The usage
of these is described in more detail on the Wikipedia Prime_ page. They look very similar to single
and double straight quotes, and may be rendered similarly by the font, but they have different
@@ -79,7 +79,7 @@ right single quotation marks, depending on the font. There is a Wikipedia articl
`Modifier letter apostrophe`_ with more details.
.. note::
On export with the :guilabel:`Build Manuscript` tool, these apostrophes will be replaced
On export with the **Build Manuscript** tool, these apostrophes will be replaced
automatically with the corresponding right hand single quote symbol as is generally recommended.
Therefore it doesn't really matter if you only use them to correct syntax highlighting.

View File

@@ -23,13 +23,14 @@ having it selected. This will open the document in the document editor. The edit
Markdown-like syntax for some features, and a novelWriter-specific syntax for others. The syntax
format is described in the :ref:`a_fmt` chapter.
The editor has a maximise button (toggles the :guilabel:`Focus Mode`) and a close button in the
The editor has a maximise button, which toggles the **Focus Mode**, and a close button in the
top--right corner. On the top--left side you will find a tools button that opens a toolbar with a
few buttons for applying text formatting, and a search button to open the search dialog.
few buttons for applying text formatting, a drop down menu for navigating between headings, and a
search button to open the search dialog.
Both the document editor and viewer will show the label of the currently open document in the
header at the top of the edit or view panel. Optionally, the full project path to the document can
be shown. This can be set in :guilabel:`Preferences`.
be shown. This can be set in **Preferences**.
.. tip::
Clicking on the document title bar will select the document in the project tree and thus reveal
@@ -42,10 +43,10 @@ the label and pressing :kbd:`Ctrl+Return`. You can also control-click them with
Editor Auto-Completer
---------------------
If you type the character ``@`` on a new line, a menu will appear showing the different available
keywords. The list will shorten as you type. Once a keyword command has been selected or typed, the
editor may suggest further content based on your project content. See :ref:`a_references_completer`
for more details.
If you type the character ``@`` on a new line, a pop-up menu will appear showing the different
available keywords. The list will shorten as you type. Once a keyword command has been selected or
typed, the editor may suggest further options based on your project content. See
:ref:`a_references_completer` for more details.
.. versionadded:: 2.2
@@ -60,9 +61,9 @@ Viewing a Document
A screenshot of the Document Viewer panel.
Any document in the project tree can also be viewed in parallel in a right hand side document
viewer. To view a document, press :kbd:`Ctrl+R`, or select :guilabel:`View Document` in the menu or
context menu. If you have a middle mouse button, middle-clicking on the document will also open it
in the viewer.
viewer. To view a document, press :kbd:`Ctrl+R`, or select **View Document** in the menu or context
menu. If you have a middle mouse button, middle-clicking on the document will also open it in the
viewer.
The document viewed does not have to be the same document as the one currently being edited.
However, If you *are* viewing the same document, pressing :kbd:`Ctrl+R` again will update the
@@ -75,19 +76,20 @@ content of the viewer with the content of the document the reference points to.
The document viewer keeps a history of viewed documents, which you can navigate with the arrow
buttons in the top--left corner of the viewer. If your mouse has backward and forward navigation
buttons, these can be used as well. They work just like the backward and forward features in a
browser.
browser. The left-most button is a dropdown menu for quickly navigation between headings in the
document.
At the bottom of the view panel there is a :guilabel:`References` panel. (If it is hidden, click
the button on the left side of the footer area to reveal it.) This panel contains a References tab
with links to all documents referring back to the one you're currently viewing, if any has been
defined. If you have created root folders and tags for various story elements like characters and
plot points, these will appear as additional tabs in this panel.
At the bottom of the view panel there is a **References** panel. (If it is hidden, click the button
on the left side of the footer area to reveal it.) This panel contains a References tab with links
to all documents referring back to the one you're currently viewing, if any has been defined. If
you have created root folders and tags for various story elements like characters and plot points,
these will appear as additional tabs in this panel.
.. note::
The :guilabel:`References` panel relies on an up-to-date :term:`index<project index>` of the
project. The index is maintained automatically. However, if anything is missing, or seems wrong,
the index can always be rebuilt by selecting :guilabel:`Rebuild Index` from the
:guilabel:`Tools` menu, or by pressing :kbd:`F9`.
The **References** panel relies on an up-to-date :term:`index<project index>` of the project.
The index is maintained automatically. However, if anything is missing, or seems wrong, the
index can always be rebuilt by selecting **Rebuild Index** from the **Tools** menu, or by
pressing :kbd:`F9`.
.. versionadded:: 2.2
The reference panel was redesigned and the additional tabs added.
@@ -131,8 +133,7 @@ Auto-Replace as You Type
========================
A few auto-replace features are supported by the editor. You can control every aspect of the
auto-replace feature from :guilabel:`Preferences`. You can also disable this feature entirely if
you wish.
auto-replace feature from **Preferences**. You can also disable this feature entirely if you wish.
.. tip::
If you don't like auto-replacement, all symbols inserted by this feature are also available in

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

4988
i18n/nw_pl_PL.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -47,19 +47,3 @@ QT_TRANSLATE_NOOP("QPlatformTheme", "Help")
QT_TRANSLATE_NOOP("QPlatformTheme", "Apply")
QT_TRANSLATE_NOOP("QPlatformTheme", "Reset")
QT_TRANSLATE_NOOP("QPlatformTheme", "Restore Defaults")
# QWizard
# =======
QT_TRANSLATE_NOOP("QWizard", "Go Back")
QT_TRANSLATE_NOOP("QWizard", "< &Back")
QT_TRANSLATE_NOOP("QWizard", "Continue")
QT_TRANSLATE_NOOP("QWizard", "&Next")
QT_TRANSLATE_NOOP("QWizard", "&Next >")
QT_TRANSLATE_NOOP("QWizard", "Commit")
QT_TRANSLATE_NOOP("QWizard", "Done")
QT_TRANSLATE_NOOP("QWizard", "&Finish")
QT_TRANSLATE_NOOP("QWizard", "Cancel")
QT_TRANSLATE_NOOP("QWizard", "Cancel")
QT_TRANSLATE_NOOP("QWizard", "Help")
QT_TRANSLATE_NOOP("QWizard", "&Help")

View File

@@ -23,16 +23,21 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
from __future__ import annotations
import sys
import getopt
import logging
import sys
from typing import TYPE_CHECKING
from PyQt5.QtWidgets import QApplication, QErrorMessage
from novelwriter.error import exceptionHandler, logException
from novelwriter.config import Config
from novelwriter.error import exceptionHandler
from novelwriter.shared import SharedData
if TYPE_CHECKING: # pragma: no cover
from novelwriter.guimain import GuiMain
# Package Meta
# ============
@@ -42,9 +47,9 @@ __license__ = "GPLv3"
__author__ = "Veronica Berglyd Olsen"
__maintainer__ = "Veronica Berglyd Olsen"
__email__ = "code@vkbo.net"
__version__ = "2.4b1"
__hexversion__ = "0x020400b1"
__date__ = "2024-03-26"
__version__ = "2.5"
__hexversion__ = "0x020500f0"
__date__ = "2024-07-10"
__status__ = "Stable"
__domain__ = "novelwriter.io"
@@ -60,7 +65,7 @@ CONFIG = Config()
SHARED = SharedData()
def main(sysArgs: list | None = None):
def main(sysArgs: list | None = None) -> GuiMain | None:
"""Parse command line, set up logging, and launch main GUI."""
if sysArgs is None:
sysArgs = sys.argv[1:]
@@ -157,19 +162,19 @@ def main(sysArgs: list | None = None):
# Check Packages and Versions
errorData = []
errorCode = 0
if sys.hexversion < 0x030800f0:
if sys.hexversion < 0x030900f0:
errorData.append(
"At least Python 3.8 is required, found %s" % CONFIG.verPyString
"At least Python 3.9 is required, found %s" % CONFIG.verPyString
)
errorCode |= 0x04
if CONFIG.verQtValue < 0x050a00:
if CONFIG.verQtValue < 0x050f00:
errorData.append(
"At least Qt5 version 5.10 is required, found %s" % CONFIG.verQtString
"At least Qt5 version 5.15.0 is required, found %s" % CONFIG.verQtString
)
errorCode |= 0x08
if CONFIG.verPyQtValue < 0x050a00:
if CONFIG.verPyQtValue < 0x050f00:
errorData.append(
"At least PyQt5 version 5.10 is required, found %s" % CONFIG.verPyQtString
"At least PyQt5 version 5.15.0 is required, found %s" % CONFIG.verPyQtString
)
errorCode |= 0x10
@@ -187,56 +192,52 @@ def main(sysArgs: list | None = None):
))
for errLine in errorData:
logger.critical(errLine)
errApp.exec_()
errApp.exec()
sys.exit(errorCode)
# Finish initialising config
CONFIG.initConfig(confPath, dataPath)
if CONFIG.osDarwin:
if sys.platform == "darwin":
try:
from Foundation import NSBundle # type: ignore
bundle = NSBundle.mainBundle()
info = bundle.localizedInfoDictionary() or bundle.infoDictionary()
info["CFBundleName"] = "novelWriter"
except Exception:
logger.error("Failed to set application name")
logException()
elif CONFIG.osWindows:
pass # Quietly ignore error
elif sys.platform == "win32":
try:
import ctypes
appID = f"io.novelwriter.{__version__}"
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(appID) # type: ignore
except Exception:
logger.error("Failed to set application name")
logException()
pass # Quietly ignore error
# Import GUI (after dependency checks), and launch
from novelwriter.guimain import GuiMain
if testMode:
nwGUI = GuiMain()
return nwGUI
# Only used for testing where the test framework creates the app
CONFIG.loadConfig()
return GuiMain()
else:
nwApp = QApplication([CONFIG.appName, (f"-style={qtStyle}")])
nwApp.setApplicationName(CONFIG.appName)
nwApp.setApplicationVersion(__version__)
nwApp.setOrganizationDomain(__domain__)
nwApp.setOrganizationName(__domain__)
nwApp.setDesktopFileName(CONFIG.appName)
app = QApplication([CONFIG.appName, (f"-style={qtStyle}")])
app.setApplicationName(CONFIG.appName)
app.setApplicationVersion(__version__)
app.setOrganizationDomain(__domain__)
app.setOrganizationName(__domain__)
app.setDesktopFileName(CONFIG.appName)
# Connect the exception handler before making the main GUI
sys.excepthook = exceptionHandler
# Connect the exception handler before making the main GUI
sys.excepthook = exceptionHandler
# Run Config steps that require the QApplication
CONFIG.initLocalisation(nwApp)
CONFIG.setTextFont(CONFIG.textFont, CONFIG.textSize) # Makes sure these are valid
# Run Config steps that require the QApplication
CONFIG.loadConfig()
CONFIG.initLocalisation(app)
# Launch main GUI
nwGUI = GuiMain()
nwGUI.postLaunchTasks(cmdOpen)
# Launch main GUI
nwGUI = GuiMain()
nwGUI.postLaunchTasks(cmdOpen)
sys.exit(nwApp.exec_())
# END Function main
sys.exit(app.exec())

View File

@@ -1,6 +1,7 @@
{
"Synopsis": "Synopsis",
"Short Description": "Short Description",
"Footnotes": "Footnotes",
"Comment": "Comment",
"Notes": "Notes",
"Tag": "Tag",

View File

@@ -0,0 +1,116 @@
{
"Synopsis": "Streszczenie",
"Short Description": "Krótki opis",
"Comment": "Komentarz",
"Notes": "Notatki",
"Tag": "Znacznik",
"Point of View": "Punkt widzenia",
"Focus": "Skupienie",
"Characters": "Postacie",
"Plot": "Fabuła",
"Timeline": "Oś czasu",
"Locations": "Miejsca",
"Objects": "Obiekty",
"Entities": "Podmioty",
"Custom": "Różne",
"0": "zero",
"1": "pierwszy",
"2": "drugi",
"3": "trzeci",
"4": "czwarty",
"5": "piąty",
"6": "szósty",
"7": "siódmy",
"8": "ósmy",
"9": "dziewiąty",
"10": "dziesiąty",
"11": "jedenasty",
"12": "dwunasty",
"13": "trzynasty",
"14": "czternasty",
"15": "piętnasty",
"16": "szesnasty",
"17": "siedemnasty",
"18": "osiemnasty",
"19": "dziewiętnasty",
"20": "dwudziesty",
"21": "dwudziesty pierwszy",
"22": "dwudziesty drugi",
"23": "dwudziesty Trzeci",
"24": "dwudziesty czwarty",
"25": "dwudziesty piąty",
"26": "dwudziesty szósty",
"27": "dwudziesty siódmy",
"28": "dwudziesty ósmy",
"29": "dwudziesty dziewiąty",
"30": "trzydziesty",
"31": "trzydziesty pierwszy",
"32": "trzydziesty drugi",
"33": "trzydziesty trzeci",
"34": "trzydziesty czwarty",
"35": "trzydziesty piąty",
"36": "trzydziesty szósty",
"37": "trzydziesty siódmy",
"38": "trzydziesty ósmy",
"39": "trzydziesty dziewiaty",
"40": "czterdziesty",
"41": "czterdziesty pierwszy",
"42": "czterdziesty drugi",
"43": "czterdziesty Trzeci",
"44": "czterdziesty czwarty",
"45": "czterdziesty piąty",
"46": "czterdziesty szósty",
"47": "czterdziesty siódmy",
"48": "czterdziesty ósmy",
"49": "czterdziesty dziewiąty",
"50": "pięćdziesiąty",
"51": "pięćdziesiąty pierwszy",
"52": "pięćdziesiąty drugi",
"53": "pięćdziesiąty trzeci",
"54": "pięćdziesiąty czwarty",
"55": "pięćdziesiąty piąty",
"56": "pięćdziesiąty szósty",
"57": "pięćdziesiąty siódmy",
"58": "pięćdziesiąty ósmy",
"59": "pięćdziesiąty dziewiąty",
"60": "sześćdziesiąty",
"61": "sześćdziesiąty pierwszy",
"62": "sześćdziesiąty drugi",
"63": "sześćdziesiąty trzeci",
"64": "sześćdziesiąty czwarty",
"65": "sześćdziesiąty piąty",
"66": "sześćdziesiąty szósty",
"67": "sześćdziesiąty siódmy",
"68": "sześćdziesiąty ósmy",
"69": "sześćdziesiąty dziewiąty",
"70": "siedemdziesiąty",
"71": "siedemdziesiąty pierwszy",
"72": "siedemdziesiąty drugi",
"73": "siedemdziesiąty trzeci",
"74": "siedemdziesiąty czwarty",
"75": "siedemdziesiąty piąty",
"76": "siedemdziesiąty szósty",
"77": "siedemdziesiąty siódmy",
"78": "siedemdziesiąty ósmy",
"79": "siedemdziesiąty dziewiąty",
"80": "osiemdziesiąty",
"81": "osiemdziesiąty pierwszy",
"82": "osiemdziesiąty drugi",
"83": "osiemdziesiąty trzeci",
"84": "osiemdziesiąty czwarty",
"85": "osiemdziesiąty piąty",
"86": "osiemdziesiąty szósty",
"87": "osiemdziesiąty siódmy",
"88": "osiemdziesiąty ósmy",
"89": "osiemdziesiąty dziewiąty",
"90": "dziewięćdziesiąty",
"91": "dziewięćdziesiąty pierwszy",
"92": "dziewięćdziesiąty drugi",
"93": "dziewięćdziesiąty trzeci",
"94": "dziewięćdziesiąty czwarty",
"95": "dziewięćdziesiąty piąty",
"96": "dziewięćdziesiąty szósty",
"97": "dziewięćdziesiąty siódmy",
"98": "dziewięćdziesiąty ósmy",
"99": "dziewięćdziesiąty dziewiąty"
}

View File

@@ -1,7 +1,7 @@
{
"Synopsis": "Sinopse",
"Short Description": "Descrição breve",
"Comment": "Comentários",
"Comment": "Comentário",
"Notes": "Notas",
"Tag": "Etiqueta",
"Point of View": "Ponto de vista",
@@ -30,87 +30,87 @@
"14": "Quatorze",
"15": "Quinze",
"16": "Dezesseis",
"17": "Dezesete",
"17": "Dezessete",
"18": "Dezoito",
"19": "Dezenove",
"20": "Vinte",
"21": "Vinte e Um",
"22": "Vinte e Dois",
"23": "Vinte e Três",
"24": "Vinte e Quatro",
"25": "Vinte e Cinco",
"26": "Vinte e Seis",
"27": "Vinte e Sete",
"28": "Vinte e Oito",
"29": "Vinte e Nove",
"21": "Vinte e um",
"22": "Vinte e dois",
"23": "Vinte e três",
"24": "Vinte e quatro",
"25": "Vinte e cinco",
"26": "Vinte e seis",
"27": "Vinte e sete",
"28": "Vinte e oito",
"29": "Vinte e nove",
"30": "Trinta",
"31": "Trinta e Um",
"32": "Trinta e Dois",
"33": "Trinta e Três",
"34": "Trinta e Quatro",
"35": "Trinta e Cinco",
"36": "Trinta e Seis",
"37": "Trinta e Sete",
"38": "Trinta e Oito",
"39": "Trinta e Nove",
"31": "Trinta e um",
"32": "Trinta e dois",
"33": "Trinta e três",
"34": "Trinta e quatro",
"35": "Trinta e cinco",
"36": "Trinta e seis",
"37": "Trinta e sete",
"38": "Trinta e oito",
"39": "Trinta e nove",
"40": "Quarenta",
"41": "Quarenta e Um",
"42": "Quarenta e Dois",
"43": "Quarenta e Três",
"44": "Quarenta e Quatro",
"45": "Quarenta e Cinco",
"46": "Quarenta e Seis",
"47": "Quarenta e Sete",
"48": "Quarenta e Oito",
"49": "Quarenta e Nove",
"41": "Quarenta e um",
"42": "Quarenta e dois",
"43": "Quarenta e três",
"44": "Quarenta e quatro",
"45": "Quarenta e cinco",
"46": "Quarenta e seis",
"47": "Quarenta e sete",
"48": "Quarenta e oito",
"49": "Quarenta e nove",
"50": "Cinquenta",
"51": "Cinquenta e Um",
"52": "Cinquenta e Dois",
"53": "Cinquenta e Três",
"54": "Cinquenta e Quatro",
"55": "Cinquenta e Cinco",
"56": "Cinquenta e Seis",
"57": "Cinquenta e Sete",
"58": "Cinquenta e Oito",
"59": "Cinquenta e Nove",
"51": "Cinquenta e um",
"52": "Cinquenta e dois",
"53": "Cinquenta e três",
"54": "Cinquenta e quatro",
"55": "Cinquenta e cinco",
"56": "Cinquenta e seis",
"57": "Cinquenta e sete",
"58": "Cinquenta e oito",
"59": "Cinquenta e nove",
"60": "Sessenta",
"61": "Sessenta e Um",
"62": "Sessenta e Dois",
"63": "Sessenta e Três",
"64": "Sessenta e Quatro",
"65": "Sessenta e Cinco",
"66": "Sessenta e Seis",
"67": "Sessenta e Sete",
"68": "Sessenta e Oito",
"69": "Sessenta e Nove",
"61": "Sessenta e um",
"62": "Sessenta e dois",
"63": "Sessenta e três",
"64": "Sessenta e quatro",
"65": "Sessenta e cinco",
"66": "Sessenta e seis",
"67": "Sessenta e sete",
"68": "Sessenta e oito",
"69": "Sessenta e nove",
"70": "Setenta",
"71": "Setenta e Um",
"72": "Setenta e Dois",
"73": "Setenta e Três",
"74": "Setenta e Quatro",
"75": "Setenta e Cinco",
"76": "Setenta e Seis",
"77": "Setenta e Sete",
"78": "Setenta e Oito",
"79": "Setenta e Nove",
"71": "Setenta e um",
"72": "Setenta e dois",
"73": "Setenta e três",
"74": "Setenta e quatro",
"75": "Setenta e cinco",
"76": "Setenta e seis",
"77": "Setenta e sete",
"78": "Setenta e oito",
"79": "Setenta e nove",
"80": "Oitenta",
"81": "Oitenta e Um",
"82": "Oitenta e Dois",
"83": "Oitenta e Três",
"84": "Oitenta e Quatro",
"85": "Oitenta e Cinco",
"86": "Oitenta e Seis",
"87": "Oitenta e Sete",
"88": "Oitenta e Oito",
"89": "Oitenta e Nove",
"81": "Oitenta e um",
"82": "Oitenta e dois",
"83": "Oitenta e três",
"84": "Oitenta e quatro",
"85": "Oitenta e cinco",
"86": "Oitenta e seis",
"87": "Oitenta e sete",
"88": "Oitenta e oito",
"89": "Oitenta e nove",
"90": "Noventa",
"91": "Noventa e Um",
"92": "Noventa e Dois",
"93": "Noventa e Três",
"94": "Noventa e Quatro",
"95": "Noventa e Cinco",
"96": "Noventa e Seis",
"97": "Noventa e Sete",
"98": "Noventa e Oito",
"99": "Noventa e Nove"
"91": "Noventa e um",
"92": "Noventa e dois",
"93": "Noventa e três",
"94": "Noventa e quatro",
"95": "Noventa e cinco",
"96": "Noventa e seis",
"97": "Noventa e sete",
"98": "Noventa e oito",
"99": "Noventa e nove"
}

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m0 0v4l8 8-8 8v4h4l8-8 8 8h4v-4l-8-8 8-8v-4h-4l-8 8-8-8h-4z" fill="#f00" stroke-width=".70711"/>
</svg>

After

Width:  |  Height:  |  Size: 251 B

View File

@@ -59,6 +59,7 @@ fmt_strike-md = nw_tb-strike-md.svg
fmt_subscript = nw_tb-subscript.svg
fmt_superscript = nw_tb-superscript.svg
fmt_underline = nw_tb-underline.svg
font = nw_font.svg
forward = typ_chevron-right.svg
import = mixed_import.svg
list = typ_th-list.svg
@@ -78,6 +79,7 @@ proj_scene = mixed_document-scene.svg
proj_section = mixed_document-section.svg
proj_stats = typ_chart-bar-grey.svg
proj_title = mixed_document-title.svg
quote = nw_quote.svg
refresh = typ_refresh.svg
remove = typ_minus.svg
revert = typ_refresh-flipped.svg
@@ -100,8 +102,8 @@ status_time = typ_stopwatch-grey.svg
sticky-off = typ_pin-outline.svg
sticky-on = typ_pin.svg
unchecked = mixed_input-unchecked.svg
unfold-hide = typ_arrow-right.svg
unfold-show = typ_arrow-down.svg
unfold-hide = typ_unfold-hidden.svg
unfold-show = typ_unfold-visible.svg
up = typ_chevron-up.svg
view = typ_eye.svg
view_build = typ_export-grey.svg

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<path d="m2.5744 5.8208v-4.2853h-1.4527v-1.0064h4.1067v1.0064h-1.4527v4.2853z" fill="#aeaeae" stroke-width="1.1503"/>
</svg>

After

Width:  |  Height:  |  Size: 267 B

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<path d="m1.3715 3.0659q-0.32092-0.25674-0.44928-0.44928-0.12836-0.19255-0.12837-0.44928 0-0.42361 0.28241-0.69319 0.28241-0.28241 0.68035-0.28241 0.25674 0 0.44928 0.10269 0.19255 0.089858 0.3466 0.23106 0.24391 0.4878 0.24391 1.0141 0 0.42361-0.14121 0.82157-0.12837 0.38511-0.37227 0.71886-0.23106 0.33377-0.55199 0.61618-0.30808 0.26958-0.65467 0.46213l-0.25674-0.41078q0.29525-0.21822 0.57766-0.53914 0.28241-0.33375 0.46213-0.73171zm2.7598 0q-0.32092-0.25674-0.44928-0.44928-0.12837-0.19255-0.12837-0.44928 0-0.42361 0.28241-0.69319 0.28241-0.28241 0.68035-0.28241 0.25674 0 0.44928 0.10269 0.19255 0.089858 0.3466 0.23106 0.24391 0.4878 0.24391 1.0141 0 0.42361-0.14121 0.82157-0.12837 0.38511-0.37227 0.71886-0.23106 0.33377-0.55199 0.61618-0.30808 0.26958-0.65467 0.46213l-0.25674-0.41078q0.29525-0.21822 0.57766-0.53914 0.28241-0.33375 0.46213-0.73171z" fill="#aeaeae" fill-opacity=".78039" stroke-width="1.8194"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m1.5077 8.1077 10.492 10.662 10.492-10.662c0.33846-0.33846 0.50769-0.84615 0.50769-1.1846 0-0.33846-0.16923-0.84615-0.50769-1.1846-0.33846-0.33846-0.67692-0.50769-1.1846-0.50769h-18.615c-0.50769 0-0.84615 0.16923-1.1846 0.50769-0.33846 0.33846-0.50769 0.84615-0.50769 1.1846 0 0.33846 0.16923 0.84615 0.50769 1.1846z" fill="#aeaeae" stroke-width="1.6923"/>
</svg>

Before

Width:  |  Height:  |  Size: 511 B

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m8.1077 22.492 10.662-10.492-10.662-10.492c-0.33846-0.33846-0.84615-0.50769-1.1846-0.50769-0.33846 0-0.84615 0.16923-1.1846 0.50769-0.33846 0.33846-0.50769 0.67692-0.50769 1.1846v18.615c0 0.50769 0.16923 0.84615 0.50769 1.1846 0.33846 0.33846 0.84615 0.50769 1.1846 0.50769 0.33846 0 0.84615-0.16923 1.1846-0.50769z" fill="#aeaeae" stroke-width="1.6923"/>
</svg>

Before

Width:  |  Height:  |  Size: 510 B

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9.8767 17.723 5.8157-5.723-5.8157-5.723c-0.18462-0.18462-0.46155-0.27693-0.64616-0.27693-0.18462 0-0.46155 0.092309-0.64616 0.27693-0.18462 0.18462-0.27693 0.36924-0.27693 0.64616v10.154c0 0.27693 0.092309 0.46154 0.27693 0.64616 0.18462 0.18462 0.46155 0.27693 0.64616 0.27693 0.18462 0 0.46155-0.09231 0.64616-0.27693z" fill="#aeaeae" stroke-width=".92309"/>
</svg>

After

Width:  |  Height:  |  Size: 516 B

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m6.277 9.8767 5.723 5.8157 5.723-5.8157c0.18462-0.18462 0.27693-0.46155 0.27693-0.64616 0-0.18462-0.092309-0.46155-0.27693-0.64616-0.18462-0.18462-0.36924-0.27693-0.64616-0.27693h-10.154c-0.27693 0-0.46155 0.092309-0.64616 0.27693-0.18462 0.18462-0.27693 0.46155-0.27693 0.64616 0 0.18462 0.092309 0.46155 0.27693 0.64616z" fill="#aeaeae" stroke-width=".92309"/>
</svg>

After

Width:  |  Height:  |  Size: 517 B

View File

@@ -59,6 +59,7 @@ fmt_strike-md = nw_tb-strike-md.svg
fmt_subscript = nw_tb-subscript.svg
fmt_superscript = nw_tb-superscript.svg
fmt_underline = nw_tb-underline.svg
font = nw_font.svg
forward = typ_chevron-right.svg
import = mixed_import.svg
list = typ_th-list.svg
@@ -78,6 +79,7 @@ proj_scene = mixed_document-scene.svg
proj_section = mixed_document-section.svg
proj_stats = typ_chart-bar-grey.svg
proj_title = mixed_document-title.svg
quote = nw_quote.svg
refresh = typ_refresh.svg
remove = typ_minus.svg
revert = typ_refresh-flipped.svg
@@ -100,8 +102,8 @@ status_time = typ_stopwatch-grey.svg
sticky-off = typ_pin-outline.svg
sticky-on = typ_pin.svg
unchecked = mixed_input-unchecked.svg
unfold-hide = typ_arrow-right.svg
unfold-show = typ_arrow-down.svg
unfold-hide = typ_unfold-hidden.svg
unfold-show = typ_unfold-visible.svg
up = typ_chevron-up.svg
view = typ_eye.svg
view_build = typ_export-grey.svg

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<path d="m2.5744 5.8208v-4.2853h-1.4527v-1.0064h4.1067v1.0064h-1.4527v4.2853z" fill-opacity=".78039" stroke-width="1.1503"/>
</svg>

After

Width:  |  Height:  |  Size: 274 B

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.1" viewBox="0 0 6.35 6.35" xmlns="http://www.w3.org/2000/svg">
<path d="m1.3715 3.0659q-0.32092-0.25674-0.44928-0.44928-0.12836-0.19255-0.12837-0.44928 0-0.42361 0.28241-0.69319 0.28241-0.28241 0.68035-0.28241 0.25674 0 0.44928 0.10269 0.19255 0.089858 0.3466 0.23106 0.24391 0.4878 0.24391 1.0141 0 0.42361-0.14121 0.82157-0.12837 0.38511-0.37227 0.71886-0.23106 0.33377-0.55199 0.61618-0.30808 0.26958-0.65467 0.46213l-0.25674-0.41078q0.29525-0.21822 0.57766-0.53914 0.28241-0.33375 0.46213-0.73171zm2.7598 0q-0.32092-0.25674-0.44928-0.44928-0.12837-0.19255-0.12837-0.44928 0-0.42361 0.28241-0.69319 0.28241-0.28241 0.68035-0.28241 0.25674 0 0.44928 0.10269 0.19255 0.089858 0.3466 0.23106 0.24391 0.4878 0.24391 1.0141 0 0.42361-0.14121 0.82157-0.12837 0.38511-0.37227 0.71886-0.23106 0.33377-0.55199 0.61618-0.30808 0.26958-0.65467 0.46213l-0.25674-0.41078q0.29525-0.21822 0.57766-0.53914 0.28241-0.33375 0.46213-0.73171z" fill-opacity=".78039" stroke-width="1.8194"/>
</svg>

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m1.5077 8.1077 10.492 10.662 10.492-10.662c0.33846-0.33846 0.50769-0.84615 0.50769-1.1846 0-0.33846-0.16923-0.84615-0.50769-1.1846-0.33846-0.33846-0.67692-0.50769-1.1846-0.50769h-18.615c-0.50769 0-0.84615 0.16923-1.1846 0.50769-0.33846 0.33846-0.50769 0.84615-0.50769 1.1846 0 0.33846 0.16923 0.84615 0.50769 1.1846z" fill-opacity=".78039" stroke-width="1.6923"/>
</svg>

Before

Width:  |  Height:  |  Size: 518 B

View File

@@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m8.1077 22.492 10.662-10.492-10.662-10.492c-0.33846-0.33846-0.84615-0.50769-1.1846-0.50769-0.33846 0-0.84615 0.16923-1.1846 0.50769-0.33846 0.33846-0.50769 0.67692-0.50769 1.1846v18.615c0 0.50769 0.16923 0.84615 0.50769 1.1846 0.33846 0.33846 0.84615 0.50769 1.1846 0.50769 0.33846 0 0.84615-0.16923 1.1846-0.50769z" fill-opacity=".78039" stroke-width="1.6923"/>
</svg>

Before

Width:  |  Height:  |  Size: 517 B

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m9.8767 17.723 5.8157-5.723-5.8157-5.723c-0.18462-0.18462-0.46155-0.27693-0.64616-0.27693-0.18462 0-0.46155 0.092309-0.64616 0.27693-0.18462 0.18462-0.27693 0.36924-0.27693 0.64616v10.154c0 0.27693 0.092309 0.46154 0.27693 0.64616 0.18462 0.18462 0.46155 0.27693 0.64616 0.27693 0.18462 0 0.46155-0.09231 0.64616-0.27693z" fill-opacity=".78039" stroke-width="1.6923"/>
</svg>

After

Width:  |  Height:  |  Size: 523 B

View File

@@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="24" height="24" version="1.2" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<path d="m6.277 9.8767 5.723 5.8157 5.723-5.8157c0.18462-0.18462 0.27693-0.46155 0.27693-0.64616 0-0.18462-0.09231-0.46155-0.27693-0.64616-0.18462-0.18462-0.36924-0.27693-0.64616-0.27693h-10.154c-0.27693 0-0.46155 0.092309-0.64616 0.27693-0.18462 0.18462-0.27693 0.46155-0.27693 0.64616 0 0.18462 0.092309 0.46155 0.27693 0.64616z" fill-opacity=".78039" stroke-width="1.6923"/>
</svg>

After

Width:  |  Height:  |  Size: 523 B

View File

@@ -12,15 +12,17 @@ link = 77, 077, 255
headertext = 255, 255, 255
headertag = 50, 0, 180
emphasis = 0, 255, 255
straightquotes = 7, 27, 219
doublequotes = 0, 255, 0
singlequotes = 0, 140, 255
dialog = 0, 255, 0
altdialog = 0, 140, 255
note = 150, 150, 150
hidden = 77, 77, 100
shortcode = 255, 255, 0
keyword = 255, 100, 255
tag = 255, 150, 10
value = 255, 150, 10
spellcheckline = 242, 72, 23
errorline = 186, 218, 4
replacetag = 0, 0, 180
modifier = 144, 142, 176
optional = 180, 180, 180
texthighlight = 255, 255, 132, 96

View File

@@ -6,23 +6,37 @@ url = https://github.com/vkbo/novelWriter
license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
##
# Colours:
# Background = 2a2a2a : 42, 42, 42
# Foreground = cccccc : 204, 204, 204
# Comment = 969696 : 150, 150, 150
# Red = e64250 : 230, 66, 80
# Orange = f99157 : 249, 145, 87
# Yellow = ffff84 : 255, 255, 132
# Green = 99cc99 : 153, 204, 153
# Blue = 288ed7 : 102, 153, 204
# Purple = 8c56d7 : 140, 86, 215
##
[Syntax]
background = 54, 54, 54
text = 199, 207, 208
link = 184, 200, 0
headertext = 0, 155, 200
headertag = 0, 105, 135
emphasis = 200, 120, 0
straightquotes = 200, 46, 0
doublequotes = 184, 200, 0
singlequotes = 136, 200, 0
background = 42, 42, 42
text = 204, 204, 204
link = 102, 153, 204
headertext = 153, 204, 153
headertag = 153, 204, 153, 160
emphasis = 249, 145, 87
dialog = 102, 153, 204
altdialog = 102, 153, 204
note = 255, 255, 216
hidden = 150, 150, 150
shortcode = 0, 155, 200
keyword = 200, 46, 0
value = 184, 200, 0
optional = 0, 155, 200
spellcheckline = 200, 46, 0
errorline = 46, 200, 0
replacetag = 0, 184, 46
modifier = 200, 120, 0
texthighlight = 136, 200, 0, 96
shortcode = 153, 204, 153
keyword = 230, 66, 80
tag = 153, 204, 153
value = 102, 153, 204
optional = 153, 204, 153
spellcheckline = 230, 66, 80
errorline = 153, 204, 153
replacetag = 153, 204, 153
modifier = 153, 204, 153
texthighlight = 255, 255, 132, 96

View File

@@ -6,23 +6,37 @@ url = https://github.com/vkbo/novelWriter
license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
##
# Colours:
# Background = ffffff : 255, 255, 255
# Foreground = 000000 : 0, 0, 0
# Comment = 646464 : 100, 100, 100
# Red = c83232 : 200, 50, 50
# Orange = ae6e1e : 174, 110, 30
# Yellow = 969600 : 150, 150, 0
# Green = 006400 : 0, 100, 0
# Blue = 0000c8 : 0, 0, 200
# Purple = 6400ae : 100, 0, 174
##
[Syntax]
background = 255, 255, 255
text = 0, 0, 0
link = 0, 0, 200
headertext = 0, 100, 0
headertag = 50, 100, 50
emphasis = 150, 110, 30
straightquotes = 200, 0, 0
doublequotes = 0, 0, 200
singlequotes = 0, 0, 200
headertag = 0, 100, 0, 160
emphasis = 174, 110, 30
dialog = 0, 0, 200
altdialog = 0, 0, 200
note = 100, 100, 0
hidden = 100, 100, 100
shortcode = 0, 100, 0
keyword = 200, 50, 50
value = 50, 150, 50
tag = 0, 100, 0
value = 0, 0, 200
optional = 0, 100, 0
spellcheckline = 200, 0, 0
errorline = 0, 150, 0
replacetag = 0, 150, 0
modifier = 150, 110, 30
spellcheckline = 200, 50, 50
errorline = 0, 100, 0
replacetag = 0, 100, 0
modifier = 0, 100, 0
texthighlight = 150, 150, 0, 96

View File

@@ -0,0 +1,44 @@
[Main]
name = Dracula
author = Veronica Berglyd Olsen (adaptation)
credit = Zeno Rocha
url = https://draculatheme.com
license = MIT
licenseurl = https://github.com/dracula/dracula-theme/blob/main/LICENSE
##
# Colours:
# Background = 282a36 : 40, 42, 54
# Foreground = f8f8f2 : 248, 248, 242
# Comment = 6272a4 : 98, 114, 164
# Cyan = 8be9fd : 139, 233, 253
# Green = 50fa7b : 80, 250, 123
# Orange = ffb86c : 255, 184, 108
# Pink = ff79c6 : 255, 121, 198
# Purple = bd93f9 : 189, 147, 249
# Red = ff5555 : 255, 85, 85
# Yellow = f1fa8c : 241, 250, 140
##
[Syntax]
# See: https://spec.draculatheme.com/
background = 40, 42, 54
text = 248, 248, 242
link = 255, 121, 198
headertext = 189, 147, 249
headertag = 189, 147, 249, 160
emphasis = 255, 184, 108
dialog = 80, 250, 123
altdialog = 241, 250, 140
note = 255, 204, 233
hidden = 98, 114, 164
shortcode = 139, 233, 253
keyword = 255, 121, 198
tag = 255, 184, 108
value = 255, 184, 108
optional = 80, 250, 123
spellcheckline = 255, 85, 85
errorline = 80, 250, 123
replacetag = 241, 250, 140
modifier = 139, 233, 253
texthighlight = 241, 250, 140, 96

View File

@@ -11,14 +11,15 @@ background = 54, 54, 54
text = 200, 200, 200
link = 200, 200, 200
headertext = 225, 225, 225
headertag = 225, 225, 225
headertag = 225, 225, 225, 160
emphasis = 200, 200, 200
straightquotes = 200, 200, 200
doublequotes = 200, 200, 200
singlequotes = 200, 200, 200
dialog = 200, 200, 200
altdialog = 200, 200, 200
note = 200, 200, 200
hidden = 150, 150, 150
shortcode = 225, 225, 225
keyword = 225, 225, 225
tag = 200, 200, 200
value = 200, 200, 200
optional = 225, 225, 225
spellcheckline = 200, 46, 0

View File

@@ -11,14 +11,15 @@ background = 255, 255, 255
text = 20, 20, 20
link = 20, 20, 20
headertext = 0, 0, 0
headertag = 0, 0, 0
headertag = 0, 0, 0, 160
emphasis = 20, 20, 20
straightquotes = 20, 20, 20
doublequotes = 20, 20, 20
singlequotes = 20, 20, 20
dialog = 20, 20, 20
altdialog = 20, 20, 20
note = 20, 20, 20
hidden = 100, 100, 100
shortcode = 0, 0, 0
keyword = 0, 0, 0
tag = 20, 20, 20
value = 20, 20, 20
optional = 0, 0, 0
spellcheckline = 200, 0, 0

View File

@@ -31,18 +31,19 @@ background = 251, 251, 251
text = 64, 63, 82
link = 40, 142, 215
headertext = 40, 142, 215
headertag = 40, 142, 215
headertag = 40, 142, 215, 160
emphasis = 224, 175, 5
straightquotes = 222, 61, 58
doublequotes = 8, 145, 106
singlequotes = 255, 235, 149
dialog = 8, 145, 106
altdialog = 218, 170, 1
note = 128, 118, 75
hidden = 152, 159, 177
shortcode = 40, 142, 215
keyword = 222, 61, 58
value = 150, 74, 193
tag = 150, 74, 193
value = 224, 175, 5
optional = 40, 142, 215
spellcheckline = 222, 61, 58
errorline = 8, 145, 106
replacetag = 42, 162, 152
modifier = 224, 175, 5
modifier = 8, 145, 106
texthighlight = 218, 170, 1, 96

View File

@@ -31,18 +31,19 @@ background = 1, 22, 39
text = 214, 222, 235
link = 130, 170, 255
headertext = 130, 170, 255
headertag = 130, 170, 255
headertag = 130, 170, 255, 160
emphasis = 236, 196, 141
straightquotes = 247, 140, 108
doublequotes = 173, 219, 103
singlequotes = 255, 235, 149
dialog = 173, 219, 103
altdialog = 255, 235, 149
note = 255, 249, 202
hidden = 99, 119, 119
shortcode = 130, 170, 255
keyword = 247, 140, 108
value = 199, 146, 234
tag = 199, 146, 234
value = 255, 235, 149
optional = 130, 170, 255
spellcheckline = 247, 140, 108
errorline = 173, 219, 103
replacetag = 127, 219, 202
modifier = 236, 196, 141
modifier = 173, 219, 103
texthighlight = 255, 235, 149, 96

View File

@@ -0,0 +1,42 @@
[Main]
name = Snazzy Light
author = Veronica Berglyd Olsen (adaptation)
credit = Florian Reuschel (color theme)
url = https://github.com/loilo/vscode-snazzy-light
license = MIT License
licenseurl = https://github.com/loilo/vscode-snazzy-light/blob/master/LICENSE
##
# Colours:
# Background = fafbfc : 250, 251, 252
# Foreground = 565869 : 86, 88, 105
# Comment = 9194a2 : 145, 148, 162
# Yellow = cf9c00 : 207, 156, 0
# Red = ff5c57 : 255, 92, 87
# Pink = f767bb : 247, 103, 187
# Blue = 09a1ed : 9, 161, 237
# Cyan = 13bbb7 : 19, 187, 183
# Green = 2dae58 : 45, 174, 88
##
[Syntax]
background = 250, 251, 252
text = 86, 88, 105
link = 9, 161, 237
headertext = 45, 174, 88
headertag = 45, 174, 88, 160
emphasis = 19, 187, 183
dialog = 207, 156, 0
altdialog = 207, 156, 0
note = 120, 187, 185
hidden = 145, 148, 162
shortcode = 247, 103, 187
keyword = 9, 161, 237
tag = 45, 174, 88
value = 9, 161, 237
optional = 207, 156, 0
spellcheckline = 255, 92, 87
errorline = 45, 174, 88
replacetag = 19, 187, 183
modifier = 247, 103, 187
texthighlight = 207, 156, 0, 96

View File

@@ -13,12 +13,13 @@ link = 38, 139, 210
headertext = 147, 161, 161
headertag = 42, 161, 152
emphasis = 38, 139, 210
straightquotes = 211, 54, 130
doublequotes = 42, 161, 152
singlequotes = 42, 161, 152
dialog = 42, 161, 152
altdialog = 42, 161, 152
note = 101, 161, 156
hidden = 147, 161, 161
shortcode = 147, 161, 161
keyword = 133, 153, 0
tag = 203, 75, 22
value = 203, 75, 22
optional = 147, 161, 161
spellcheckline = 203, 75, 22

View File

@@ -13,12 +13,13 @@ link = 38, 139, 210
headertext = 88, 110, 117
headertag = 42, 161, 152
emphasis = 38, 139, 210
straightquotes = 211, 54, 130
doublequotes = 42, 161, 152
singlequotes = 42, 161, 152
dialog = 42, 161, 152
altdialog = 42, 161, 152
note = 27, 102, 96
hidden = 88, 110, 117
shortcode = 88, 110, 117
keyword = 133, 153, 0
tag = 203, 75, 22
value = 203, 75, 22
optional = 88, 110, 117
spellcheckline = 203, 75, 22

View File

@@ -2,22 +2,38 @@
name = Tango
author = Veronica Berglyd Olsen (adaptation)
##
# Colours:
# Background = 30302f : 48, 48, 47
# Foreground = eeeeec : 238, 238, 236
# Comment = 8f8f8d : 143, 143, 141
# Red = ef2929 : 239, 41, 41
# Orange = c4a000 : 196, 160, 0
# Yellow = fce94f : 252, 233, 79
# Green = 8ae234 : 138, 226, 52
# Cyan = 34e2e2 : 52, 226, 226
# Blue = 3465a4 : 114, 159, 207
# Purple = ad7fa8 : 173, 127, 168
##
[Syntax]
background = 48, 48, 47
text = 238, 238, 236
link = 115, 159, 207
headertext = 115, 159, 207
headertag = 52, 101, 164
link = 114, 159, 207
headertext = 114, 159, 207
headertag = 114, 159, 207, 160
emphasis = 196, 160, 0
straightquotes = 239, 41, 41
doublequotes = 138, 226, 52
singlequotes = 252, 233, 79
dialog = 138, 226, 52
altdialog = 252, 233, 79
note = 252, 242, 164
hidden = 143, 143, 141
shortcode = 115, 159, 207
shortcode = 114, 159, 207
keyword = 239, 41, 41
value = 173, 127, 168
optional = 115, 159, 207
tag = 173, 127, 168
value = 239, 41, 41
optional = 114, 159, 207
spellcheckline = 239, 41, 41
errorline = 138, 226, 52
replacetag = 51, 226, 226
modifier = 196, 160, 0
replacetag = 52, 226, 226
modifier = 114, 159, 207
texthighlight = 252, 233, 79, 96

View File

@@ -31,15 +31,16 @@ background = 255, 255, 255
text = 77, 77, 76
link = 66, 113, 174
headertext = 66, 113, 174
headertag = 66, 113, 174
headertag = 66, 113, 174, 160
emphasis = 245, 135, 31
straightquotes = 240, 40, 41
doublequotes = 113, 140, 0
singlequotes = 234, 183, 0
dialog = 113, 140, 0
altdialog = 234, 183, 0
note = 115, 90, 0
hidden = 142, 144, 140
shortcode = 66, 113, 174
keyword = 240, 40, 41
value = 137, 89, 168
tag = 137, 89, 168
value = 234, 183, 0
optional = 66, 113, 174
spellcheckline = 240, 40, 41
errorline = 113, 140, 0

View File

@@ -29,17 +29,18 @@ licenseurl = https://github.com/chriskempson/tomorrow-theme/blob/master/LICENSE.
[Syntax]
background = 29, 31, 33
text = 197, 200, 198
link = 129, 162, 190
link = 197, 200, 198, 160
headertext = 129, 162, 190
headertag = 129, 162, 190
headertag = 94, 119, 139
emphasis = 222, 147, 95
straightquotes = 204, 102, 102
doublequotes = 181, 189, 104
singlequotes = 240, 198, 116
dialog = 181, 189, 104
altdialog = 240, 198, 116
note = 240, 219, 178
hidden = 150, 152, 150
shortcode = 129, 162, 190
keyword = 204, 102, 102
value = 178, 148, 187
tag = 178, 148, 187
value = 240, 198, 116
optional = 129, 162, 190
spellcheckline = 204, 102, 102
errorline = 181, 189, 104

View File

@@ -31,15 +31,16 @@ background = 0, 36, 81
text = 255, 255, 255
link = 187, 218, 255
headertext = 187, 218, 255
headertag = 187, 218, 255
headertag = 187, 218, 255, 160
emphasis = 255, 197, 143
straightquotes = 255, 157, 164
doublequotes = 209, 241, 169
singlequotes = 255, 238, 173
dialog = 209, 241, 169
altdialog = 255, 238, 173
note = 255, 247, 214
hidden = 114, 133, 183
shortcode = 187, 218, 255
keyword = 255, 157, 164
value = 235, 187, 255
tag = 235, 187, 255
value = 255, 238, 173
optional = 187, 218, 255
spellcheckline = 255, 157, 164
errorline = 209, 241, 169

View File

@@ -31,15 +31,16 @@ background = 0, 0, 0
text = 234, 234, 234
link = 122, 166, 218
headertext = 122, 166, 218
headertag = 122, 166, 218
headertag = 122, 166, 218, 160
emphasis = 231, 140, 69
straightquotes = 213, 78, 83
doublequotes = 185, 202, 74
singlequotes = 231, 197, 71
dialog = 185, 202, 74
altdialog = 231, 197, 71
note = 231, 214, 150
hidden = 150, 152, 150
shortcode = 122, 166, 218
keyword = 213, 78, 83
value = 195, 151, 216
tag = 195, 151, 216
value = 231, 197, 71
optional = 122, 166, 218
spellcheckline = 213, 78, 83
errorline = 185, 202, 74

View File

@@ -31,15 +31,16 @@ background = 45, 45, 45
text = 204, 204, 204
link = 102, 153, 204
headertext = 102, 153, 204
headertag = 102, 153, 204
headertag = 102, 153, 204, 160
emphasis = 249, 145, 57
straightquotes = 242, 119, 122
doublequotes = 153, 204, 153
singlequotes = 255, 204, 102
dialog = 153, 204, 153
altdialog = 255, 204, 102
note = 255, 230, 179
hidden = 153, 153, 153
shortcode = 102, 153, 204
keyword = 242, 119, 122
value = 204, 153, 204
tag = 204, 153, 204
value = 255, 204, 102
optional = 102, 153, 204
spellcheckline = 242, 119, 122
errorline = 153, 204, 153

View File

@@ -1,81 +1,92 @@
<!DOCTYPE html public "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<body>
<h3>Main Developer</h3>
<p>Veronica Berglyd Olsen (<a href="https://github.com/vkbo">@vkbo</a>)</p>
<p>Veronica Berglyd Olsen</p>
<h3>Contributors</h3>
<p>
&nbsp;&bull;&nbsp;<b>Concept:</b> Marian Lückhof (<a href="https://github.com/Number042">@Number042</a>)<br>
&nbsp;&bull;&nbsp;<b>Internationalisation:</b> Bruno Meneguello (<a href="https://github.com/bkmeneguello">@bkmeneguello</a>)<br>
&nbsp;&bull;&nbsp;<b>Setup and Packaging:</b> Rachel Powers (<a href="https://github.com/Ryex">@Ryex</a>)
</p>
<ul>
<li><b>Early Concept:</b> Marian Lückhof</li>
<li><b>Internationalisation:</b> Bruno Meneguello</li>
<li><b>Setup and Packaging:</b> Rachel Powers</li>
</ul>
<p>For other contributions, see the project's
<a href="https://github.com/vkbo/novelWriter/graphs/contributors">Contributors</a> page.</p>
<h3>Artwork</h3>
<p>The artwork on the Welcome dialog was created by <a href="https://louisdurrant.art">Louis Durrant</a>.</p>
<p>The artwork on the Welcome dialog was created by Louis Durrant.</p>
<h3>Translations</h3>
<p>The default language is English (UK) with English (US) as an option. These are the original
translators for the languages currently available:</p>
<p>
&nbsp;&bull;&nbsp;<b>Dutch:</b> Martijn van der Kleijn (<a href="https://github.com/mvdkleijn">@mvdkleijn</a>)<br>
&nbsp;&bull;&nbsp;<b>French:</b> Jan Lüdke (<a href="https://github.com/jyhelle">@jyhelle</a>)<br>
&nbsp;&bull;&nbsp;<b>German:</b> Myian (<a href="https://github.com/heymyian">@heymyian</a>)<br>
&nbsp;&bull;&nbsp;<b>Italian:</b> Riccardo Mangili<br>
&nbsp;&bull;&nbsp;<b>Japanese:</b> hebekeg (<a href="https://github.com/hebekeg">@hebekeg</a>)<br>
&nbsp;&bull;&nbsp;<b>Latin American Spanish:</b> Tommy Marplatt (<a href="https://github.com/tmarplatt">@tmarplatt</a>)<br>
&nbsp;&bull;&nbsp;<b>Norwegian:</b> Veronica Berglyd Olsen (<a href="https://github.com/vkbo">@vkbo</a>)<br>
&nbsp;&bull;&nbsp;<b>Portuguese:</b> Bruno Meneguello (<a href="https://github.com/bkmeneguello">@bkmeneguello</a>)<br>
&nbsp;&bull;&nbsp;<b>Simplified Chinese:</b> Qianzhi Long (<a href="https://github.com/longqzh">@longqzh</a>)
</p>
<ul>
<li><b>Dutch:</b> Martijn van der Kleijn (mvdkleijn)</li>
<li><b>French:</b> Jan Lüdke (jyhelle)</li>
<li><b>German:</b> Myian (HeyMyian)</li>
<li><b>Italian:</b> Riccardo Mangili</li>
<li><b>Japanese:</b> hebekeg</li>
<li><b>Latin American Spanish:</b> Tommy Marplatt (tmarplatt)</li>
<li><b>Norwegian:</b> Veronica Berglyd Olsen (vkbo)</li>
<li><b>Polish:</b> Anna Maria Polak (Nauthiz)</li>
<li><b>Portuguese:</b> Bruno Meneguello (bkmeneguello)</li>
<li><b>Simplified Chinese:</b> Qianzhi Long (longqzh)</li>
</ul>
<p>Additional larger translation contributions:</p>
<p>
&nbsp;&bull;&nbsp;<b>French:</b> Albert Aribaud (<a href="https://github.com/aaribaud">@aaribaud</a>)
</p>
<ul>
<li><b>French:</b> Albert Aribaud (aaribaud)</li>
<li><b>Portuguese:</b> Oli Maia (olimaia)</li>
</ul>
<p>Translations are managed on <a href="https://crowdin.com/project/novelwriter">Crowdin</a>, and
more contributions are listed on the project's <a href="https://crowdin.com/project/novelwriter/members">Members</a> page.</p>
more contributions are listed on the project's Members page.</p>
<h3>Libraries</h3>
<p>The following libraries are dependencies of novelWriter:</p>
<p>
&nbsp;&bull;&nbsp;<a href="https://www.qt.io">Qt5</a> by Qt Company<br>
&nbsp;&bull;&nbsp;<a href="https://www.riverbankcomputing.com/software/pyqt">PyQt5</a> by Riverbank Computing<br>
&nbsp;&bull;&nbsp;<a href="https://abiword.github.io/enchant">Enchant</a> by Dom Lachowicz<br>
&nbsp;&bull;&nbsp;<a href="https://pyenchant.github.io/pyenchant">PyEnchant</a> by Dimitri Merejkowsky
</p>
<ul>
<li><b>Qt5</b> by Qt Company</li>
<li><b>PyQt5</b> by Riverbank Computing</li>
<li><b>Enchant</b> by Dom Lachowicz</li>
<li><b>PyEnchant</b> by Dimitri Merejkowsky</li>
</ul>
<h3>Assets</h3>
<p>Some of the assets bundled with novelWriter were adapted from the following sources:</p>
<p>
&nbsp;&bull;&nbsp;<a href="https://github.com/stephenhutchings/typicons.font">Typicons</a> icons by Stephen Hutchings (CC BY-SA 4.0)<br>
&nbsp;&bull;&nbsp;<a href="https://github.com/chriskempson/base16">Tomorrow</a> syntax themes by Chris Kempson (MIT License)<br>
&nbsp;&bull;&nbsp;<a href="https://github.com/sdras/night-owl-vscode-theme">Owl</a> syntax themes by Sarah Drasner (MIT License)<br>
&nbsp;&bull;&nbsp;<a href="https://github.com/altercation/solarized">Solarized</a> themes by Ethan Schoonover (MIT License)
</p>
<ul>
<li><b>Typicons</b> icons by Stephen Hutchings (CC BY-SA 4.0)</li>
<li><b>Tomorrow</b> syntax themes by Chris Kempson (MIT License)</li>
<li><b>Owl</b> syntax themes by Sarah Drasner (MIT License)</li>
<li><b>Solarized</b> themes by Ethan Schoonover (MIT License)</li>
<li><b>Cyberpunk Night</b> theme by Anders Lemvigh (CC BY-SA 4.0)</li>
<li><b>Dracula</b> theme by Zeno Rocha (MIT License)</li>
<li><b>Snazzy Light</b> theme by Florian Reuschel (MIT License)</li>
</ul>
<h3>Fonts</h3>
<p>The font used for the main novelWriter logo, mimetype and text banners is Pridi. Other fonts are
used on buttons and icons.</p>
<p>
&nbsp;&bull;&nbsp;Pridi by Cadson Demak (Open Font License, Version 1.1)<br>
&nbsp;&bull;&nbsp;Source Sans Pro by Paul D. Hunt (SIL Open Font License)
</p>
<ul>
<li><b>Pridi</b> by Cadson Demak (Open Font License, Version 1.1)</li>
<li><b>Source Sans Pro</b> by Paul D. Hunt (SIL Open Font License)</li>
</ul>
<h3>Special Mentions</h3>
<p>Additional thanks to <a href="https://github.com/johnblommers">@johnblommers</a> who was an early user and who has provided a lot
of very useful feedback over the years.</p>
<p>Additional thanks to John Blommers who was an early user and who has provided a lot of very
useful feedback over the years.</p>
</body>
</html>

Some files were not shown because too many files have changed in this diff Show More