Compare commits
1154 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
448057edf6 | ||
|
|
9d993b2992 | ||
|
|
8ca13f6e08 | ||
|
|
80fc4c9538 | ||
|
|
9f8867c1b4 | ||
|
|
481ce883ab | ||
|
|
63f184dd60 | ||
|
|
3d4d9ed111 | ||
|
|
b2ba932735 | ||
|
|
8c1070b318 | ||
|
|
6c4d8f3ede | ||
|
|
f2c118776a | ||
|
|
87890dd249 | ||
|
|
15301c9121 | ||
|
|
8dc4b661d8 | ||
|
|
d47ec4157d | ||
|
|
9d64a59b70 | ||
|
|
234fc20048 | ||
|
|
8432dfdd1f | ||
|
|
5fddfd395e | ||
|
|
11d0e4220f | ||
|
|
6d4e066810 | ||
|
|
9f1274f953 | ||
|
|
9ac1692e2a | ||
|
|
6f88357977 | ||
|
|
19bdbf9aca | ||
|
|
5a25d34ba3 | ||
|
|
13e6199af2 | ||
|
|
5be1e2c954 | ||
|
|
306bd245fc | ||
|
|
7e42d04e36 | ||
|
|
53dfdb3a2e | ||
|
|
eb113a8928 | ||
|
|
c369ef450f | ||
|
|
6674cf99a6 | ||
|
|
70cca405f5 | ||
|
|
d7d211baf2 | ||
|
|
d5a35fa86f | ||
|
|
dc265e57f3 | ||
|
|
4b79b2bd57 | ||
|
|
80c9e54a9a | ||
|
|
eba0b607a4 | ||
|
|
04464a2798 | ||
|
|
202b5192ed | ||
|
|
62397225f9 | ||
|
|
b220fffd6f | ||
|
|
e14f7881a3 | ||
|
|
2085fbe107 | ||
|
|
31a75f044e | ||
|
|
5b74125fcd | ||
|
|
1cf3cfcf77 | ||
|
|
defaf6c1ee | ||
|
|
e0f467fa10 | ||
|
|
362da679b6 | ||
|
|
0b35bcfc3b | ||
|
|
fad162c6c1 | ||
|
|
97fc64fcae | ||
|
|
5224234637 | ||
|
|
b4f1d0ec77 | ||
|
|
5911c43b5b | ||
|
|
4f137466c5 | ||
|
|
3836a2a56c | ||
|
|
49e59d74cc | ||
|
|
9461eea03a | ||
|
|
136939d391 | ||
|
|
33aea82e6e | ||
|
|
4a6511b39f | ||
|
|
6448f05557 | ||
|
|
c08eca7c3b | ||
|
|
df6ca2e17b | ||
|
|
c39a5f9708 | ||
|
|
46d69c31d1 | ||
|
|
e924d121bf | ||
|
|
2fa1dcccac | ||
|
|
dc9413fa7e | ||
|
|
1b34bc30c7 | ||
|
|
4d33f087df | ||
|
|
81a4d5fadb | ||
|
|
7682ae0425 | ||
|
|
677274adb3 | ||
|
|
83fca9fd94 | ||
|
|
4150a9740b | ||
|
|
f7021559d0 | ||
|
|
00d4c550f1 | ||
|
|
97903993c8 | ||
|
|
3d858ed9ab | ||
|
|
cc5cd50065 | ||
|
|
0c0d909dcb | ||
|
|
8dafaa13c0 | ||
|
|
05385ba73b | ||
|
|
924a2c3381 | ||
|
|
6502c424e2 | ||
|
|
243124a4ba | ||
|
|
4a2a14bc05 | ||
|
|
976328c9dc | ||
|
|
3b0086e75e | ||
|
|
7c38a748b6 | ||
|
|
4d98689304 | ||
|
|
8307822e20 | ||
|
|
f1548dc8ea | ||
|
|
25b33ab4d3 | ||
|
|
4af98dcab5 | ||
|
|
3cf916c845 | ||
|
|
bcac05ca20 | ||
|
|
07c61450c7 | ||
|
|
43d95462e0 | ||
|
|
c091e0b9bb | ||
|
|
18c70ffe3e | ||
|
|
ff470028be | ||
|
|
8463188336 | ||
|
|
2808c36753 | ||
|
|
05b1fdd7f2 | ||
|
|
00017e8065 | ||
|
|
ff34112532 | ||
|
|
4cadd1597e | ||
|
|
e30d2cbbf1 | ||
|
|
0449cf824d | ||
|
|
32d899dbfb | ||
|
|
9ec9c55c3f | ||
|
|
01b2b53fd5 | ||
|
|
be6888f8c8 | ||
|
|
c1ed0647fe | ||
|
|
1bf42ceb55 | ||
|
|
ca8bd8d271 | ||
|
|
bf23a4920f | ||
|
|
cfb048ec19 | ||
|
|
5284bea0f0 | ||
|
|
1244a4058c | ||
|
|
8c51363651 | ||
|
|
893f18c7ad | ||
|
|
909c97feda | ||
|
|
fea989c1f8 | ||
|
|
a64ed405f3 | ||
|
|
ffe6cd0a65 | ||
|
|
e0b27317f3 | ||
|
|
7ed619cf2e | ||
|
|
d55f53be0a | ||
|
|
55eed706fb | ||
|
|
2f71ec68d8 | ||
|
|
a45ab2f017 | ||
|
|
26b4da9eb4 | ||
|
|
4897f6ad69 | ||
|
|
bbe8683d59 | ||
|
|
072be78991 | ||
|
|
3f41e62e21 | ||
|
|
ec01336c21 | ||
|
|
5dcfe5c874 | ||
|
|
72f1bc2d77 | ||
|
|
54685c8184 | ||
|
|
3532306833 | ||
|
|
442b065834 | ||
|
|
53e70c118c | ||
|
|
a5575992d6 | ||
|
|
df0244095f | ||
|
|
337f05f60e | ||
|
|
4f8e898440 | ||
|
|
7991b9b27c | ||
|
|
ef42e1956c | ||
|
|
27b3dde6f6 | ||
|
|
cbe557507f | ||
|
|
7a9da5f219 | ||
|
|
d944a70063 | ||
|
|
c20f970405 | ||
|
|
49bb7f3a34 | ||
|
|
021827ff2d | ||
|
|
97312aecf5 | ||
|
|
f3c9a77989 | ||
|
|
2c031bc093 | ||
|
|
69147c2480 | ||
|
|
22ca0045bc | ||
|
|
af431a4766 | ||
|
|
5a8045131b | ||
|
|
7c0a6f1d02 | ||
|
|
4fc69ef7c6 | ||
|
|
91e502deb6 | ||
|
|
1ee191220f | ||
|
|
a96ccf8422 | ||
|
|
57641ecd7d | ||
|
|
ed431aa30f | ||
|
|
7a111bb173 | ||
|
|
220be06631 | ||
|
|
d8c14f6712 | ||
|
|
e514b1be4f | ||
|
|
5e7ef1d25a | ||
|
|
c2b3eb4ac2 | ||
|
|
1bd8370864 | ||
|
|
8c952953e3 | ||
|
|
c065c9b30f | ||
|
|
a18eb1158e | ||
|
|
08ef352288 | ||
|
|
25297b8b0b | ||
|
|
ea591fe707 | ||
|
|
b0bcf8605c | ||
|
|
b28921d6c2 | ||
|
|
87ae7585e8 | ||
|
|
b39b37fb2f | ||
|
|
cd9e0de9dd | ||
|
|
5107849909 | ||
|
|
5c988960f5 | ||
|
|
44792778aa | ||
|
|
0a7bd68258 | ||
|
|
30118eceaa | ||
|
|
87512eb13b | ||
|
|
9919e1a49e | ||
|
|
d04a21b70f | ||
|
|
fc6e0a577f | ||
|
|
0c659422b7 | ||
|
|
2018023dc7 | ||
|
|
04645cab71 | ||
|
|
bec082c0ae | ||
|
|
83b244a8a3 | ||
|
|
ae261381aa | ||
|
|
b088b79ee8 | ||
|
|
0b59ee8634 | ||
|
|
f62b755903 | ||
|
|
04036ef35c | ||
|
|
e4a2ca2d19 | ||
|
|
89f452f3fc | ||
|
|
843f8e0d39 | ||
|
|
8618306230 | ||
|
|
34a3e17326 | ||
|
|
5af49dfc6f | ||
|
|
837d3060b8 | ||
|
|
2754f78083 | ||
|
|
1b509ad60b | ||
|
|
82e923b181 | ||
|
|
e92b8400c7 | ||
|
|
1ad6a80682 | ||
|
|
f355b82bba | ||
|
|
66567b6d6f | ||
|
|
d9582436d4 | ||
|
|
31c75ea0b1 | ||
|
|
057fc10565 | ||
|
|
bbb07c9963 | ||
|
|
dd09d3af2f | ||
|
|
ccb5f8418b | ||
|
|
55d2605222 | ||
|
|
7f49979bc9 | ||
|
|
b529d5b125 | ||
|
|
f2e36d9974 | ||
|
|
ca2b509d54 | ||
|
|
0ba0674b9e | ||
|
|
a2b09fdfec | ||
|
|
fa0bef5500 | ||
|
|
92d148b03d | ||
|
|
3d935e29eb | ||
|
|
3749c9f21d | ||
|
|
2a3d3e46c2 | ||
|
|
9bc1561e01 | ||
|
|
d987246062 | ||
|
|
c6a22e2d96 | ||
|
|
42f904f1ea | ||
|
|
f92521c93a | ||
|
|
041183f914 | ||
|
|
857b6ddc55 | ||
|
|
f2d2b4c4f2 | ||
|
|
8725edaf7e | ||
|
|
4eace705e3 | ||
|
|
b2d71acd93 | ||
|
|
e424fcfe53 | ||
|
|
eefb40cb1f | ||
|
|
785cd3aea9 | ||
|
|
07c700f666 | ||
|
|
8db0928724 | ||
|
|
b25ba9de27 | ||
|
|
bf478a6706 | ||
|
|
a1a58f51b1 | ||
|
|
8850161641 | ||
|
|
f931148594 | ||
|
|
c31b0bcf17 | ||
|
|
ba260ac608 | ||
|
|
f2fc19b168 | ||
|
|
ceabc666c3 | ||
|
|
6c217c2450 | ||
|
|
7ff8921420 | ||
|
|
fe56c88309 | ||
|
|
b13b91c8e8 | ||
|
|
d71435df53 | ||
|
|
058758122c | ||
|
|
759cfd77e9 | ||
|
|
37268b873a | ||
|
|
439a04c603 | ||
|
|
9f642d501a | ||
|
|
7f8e2c66a6 | ||
|
|
9962fd4a55 | ||
|
|
c27343534f | ||
|
|
46ecb2cf70 | ||
|
|
88aa3f38c2 | ||
|
|
9214da3756 | ||
|
|
41e5152771 | ||
|
|
6b01bd7ffe | ||
|
|
76a9f8e3df | ||
|
|
e15941520f | ||
|
|
ff7404d01d | ||
|
|
560540618c | ||
|
|
bfa82f6bb3 | ||
|
|
f77cd1c752 | ||
|
|
8461b0c15d | ||
|
|
2938a0f122 | ||
|
|
beccd1a7d1 | ||
|
|
c6883908f1 | ||
|
|
36d8547f78 | ||
|
|
b01c91c0a3 | ||
|
|
3712b2e93f | ||
|
|
0ddc1131dc | ||
|
|
f4a941cd93 | ||
|
|
db72f2a722 | ||
|
|
16023676ea | ||
|
|
52e85835df | ||
|
|
fe63770d21 | ||
|
|
bd5442c9e5 | ||
|
|
c7554f2b8d | ||
|
|
63f9cd0bac | ||
|
|
c537d0f396 | ||
|
|
e759aa8d1b | ||
|
|
2d8664b3ce | ||
|
|
16076ebfb6 | ||
|
|
38ca447c8a | ||
|
|
f91006631d | ||
|
|
3cc5e4cc7a | ||
|
|
75178b7874 | ||
|
|
ce3f6dae20 | ||
|
|
bd82392d71 | ||
|
|
836a3d353a | ||
|
|
a4d2a9ea6f | ||
|
|
b0fc8d63a6 | ||
|
|
ec7781fb9f | ||
|
|
787e1a46d1 | ||
|
|
148d46fcbc | ||
|
|
7e1a676e0a | ||
|
|
e9220c5e77 | ||
|
|
72d41d4883 | ||
|
|
de6c3e9b45 | ||
|
|
a0ab507ed1 | ||
|
|
3c76d0e7e3 | ||
|
|
34127d78bf | ||
|
|
ca33f488f1 | ||
|
|
717aac9dc8 | ||
|
|
4b07dbadb2 | ||
|
|
9bbebd2085 | ||
|
|
d60b29e0a2 | ||
|
|
80d2dfd9a4 | ||
|
|
464454e7a6 | ||
|
|
d145b65237 | ||
|
|
912198cc40 | ||
|
|
bffab79ba7 | ||
|
|
c82f7fd9ca | ||
|
|
53afe528e8 | ||
|
|
225befe57e | ||
|
|
40817e73b4 | ||
|
|
17c93c2172 | ||
|
|
c8d7ccadb7 | ||
|
|
7bb292404a | ||
|
|
d2ac0ed53f | ||
|
|
c633a56bfb | ||
|
|
34696ba3a8 | ||
|
|
93c105fe86 | ||
|
|
29eac0b4e5 | ||
|
|
fc27078954 | ||
|
|
759a8e84f0 | ||
|
|
b2c7da319e | ||
|
|
b56095224a | ||
|
|
2f12a8cc93 | ||
|
|
140f85f214 | ||
|
|
7405c7e20f | ||
|
|
f29b13679a | ||
|
|
9b9ed53cf9 | ||
|
|
2447ae5cff | ||
|
|
7379b8b521 | ||
|
|
22473823c9 | ||
|
|
d8bb9950d3 | ||
|
|
279fe2ae18 | ||
|
|
1e812f3f06 | ||
|
|
0f1401eb71 | ||
|
|
57e739c3ef | ||
|
|
1b457585d9 | ||
|
|
c9eab0b01e | ||
|
|
3da5074d14 | ||
|
|
e97a476c7f | ||
|
|
a716f31b17 | ||
|
|
b2e760a284 | ||
|
|
7cc48aeb7f | ||
|
|
a6494b4226 | ||
|
|
5ed03e29f3 | ||
|
|
5c07148eb2 | ||
|
|
17b4a7be4d | ||
|
|
9b08ebbbd5 | ||
|
|
37c469dbc7 | ||
|
|
c08033d153 | ||
|
|
9c63f621a8 | ||
|
|
c3cb12e5e2 | ||
|
|
d3799bc30a | ||
|
|
cb8933b493 | ||
|
|
1aa58c047f | ||
|
|
52b3084bee | ||
|
|
70b05c9e07 | ||
|
|
cafa440aee | ||
|
|
681cb7226a | ||
|
|
b36e49e43f | ||
|
|
90a6c2d98d | ||
|
|
21d21846ca | ||
|
|
cc8d7d9912 | ||
|
|
10527afbda | ||
|
|
d16ece2a81 | ||
|
|
e7f7dc8d60 | ||
|
|
2f2943452f | ||
|
|
08ae2b5351 | ||
|
|
eda1a1c4dd | ||
|
|
238abdb567 | ||
|
|
c3f9ceb03a | ||
|
|
b95e9fcda3 | ||
|
|
b3f8a2c18c | ||
|
|
18bbf7d86f | ||
|
|
8e3ad6d874 | ||
|
|
7a63ac83d2 | ||
|
|
8dc28ddbee | ||
|
|
15803cf0a3 | ||
|
|
5ac001781c | ||
|
|
66986b88f8 | ||
|
|
f4e12a63a5 | ||
|
|
09b0f34199 | ||
|
|
095c005c3f | ||
|
|
e414b6458d | ||
|
|
ece73784c2 | ||
|
|
8dd9644c13 | ||
|
|
556e8db104 | ||
|
|
ce979b6c84 | ||
|
|
d2f422a441 | ||
|
|
e4daff8956 | ||
|
|
c146c311c1 | ||
|
|
2e1b17dcdf | ||
|
|
2ef11f56e5 | ||
|
|
fdaeca78a7 | ||
|
|
93e7343fe9 | ||
|
|
5167608f7a | ||
|
|
7fe3a8520d | ||
|
|
d4a0881e77 | ||
|
|
7f42210f2f | ||
|
|
33497bc92d | ||
|
|
06aa2e6c07 | ||
|
|
3bffaa01dc | ||
|
|
66237c35ea | ||
|
|
f532857345 | ||
|
|
5936e1a68b | ||
|
|
17b3b2b770 | ||
|
|
826e805b06 | ||
|
|
5419d76606 | ||
|
|
0d84653f7d | ||
|
|
b7da56ac42 | ||
|
|
7140788b48 | ||
|
|
a43bd5a50e | ||
|
|
81dd98e83b | ||
|
|
742f84576e | ||
|
|
ba81662d6a | ||
|
|
f669ac1265 | ||
|
|
b8a97b1afc | ||
|
|
4eb0ed386c | ||
|
|
ece225c355 | ||
|
|
69d97a3f3e | ||
|
|
dcecaae3af | ||
|
|
1c261ef371 | ||
|
|
ea89e66a46 | ||
|
|
dd03c19be2 | ||
|
|
08e6d320df | ||
|
|
446163c6de | ||
|
|
abd503b5a2 | ||
|
|
2e1c08cbfa | ||
|
|
7bdadadea1 | ||
|
|
bc33a4d0d4 | ||
|
|
188bc5d16f | ||
|
|
3fd0385160 | ||
|
|
5f3f55133e | ||
|
|
47b8e12bc7 | ||
|
|
cc97129e64 | ||
|
|
e40e282837 | ||
|
|
eba0fa58bf | ||
|
|
1c0fdd6a17 | ||
|
|
43eb62576c | ||
|
|
d43a799389 | ||
|
|
4d716555af | ||
|
|
7c65d22452 | ||
|
|
1b8867537e | ||
|
|
b91a11980b | ||
|
|
e80a9824f6 | ||
|
|
140b22dc63 | ||
|
|
60169b914a | ||
|
|
fbe381638a | ||
|
|
6dcb44c391 | ||
|
|
54c7c5a463 | ||
|
|
d5bcee14f5 | ||
|
|
0064b742d3 | ||
|
|
9f88f3b79e | ||
|
|
b95d030032 | ||
|
|
f4f3f82954 | ||
|
|
5e8892ee7c | ||
|
|
42b1e6a559 | ||
|
|
e1bcfcfc05 | ||
|
|
069e35565f | ||
|
|
880b560a39 | ||
|
|
8becc83c05 | ||
|
|
b5ef62194d | ||
|
|
a87c287fa6 | ||
|
|
18f5deee82 | ||
|
|
53545a0015 | ||
|
|
f662eaeccc | ||
|
|
1e6377abaa | ||
|
|
516db26c05 | ||
|
|
2df55cf6ee | ||
|
|
251475197d | ||
|
|
802069b4e5 | ||
|
|
d07543926f | ||
|
|
5665efd9d7 | ||
|
|
ea7f3fe51c | ||
|
|
c6569b63e5 | ||
|
|
930c60ae4a | ||
|
|
869cdd2fb0 | ||
|
|
f7d0adad1b | ||
|
|
d25e2adfb6 | ||
|
|
cb3a24bcd2 | ||
|
|
6540c56672 | ||
|
|
efc94a7fd5 | ||
|
|
683e81c57b | ||
|
|
f548927b74 | ||
|
|
53522908c8 | ||
|
|
43cdc8420c | ||
|
|
45ad0f8c20 | ||
|
|
59c9783393 | ||
|
|
611a6bb80a | ||
|
|
ee46fdb5b1 | ||
|
|
7c33c949cb | ||
|
|
e9e7fae40e | ||
|
|
ac05b07f10 | ||
|
|
aff027b735 | ||
|
|
14f1697428 | ||
|
|
a3381f1f79 | ||
|
|
1b7d331e41 | ||
|
|
df34293e74 | ||
|
|
fe27acc3ef | ||
|
|
35632abea3 | ||
|
|
ea247c5814 | ||
|
|
928a116666 | ||
|
|
2a99cafbf2 | ||
|
|
2196486454 | ||
|
|
f99bd79ce8 | ||
|
|
ddaced1b78 | ||
|
|
3e8845ab58 | ||
|
|
d5be1e0479 | ||
|
|
babc39c6a2 | ||
|
|
5c35ebeffa | ||
|
|
5fbc608c90 | ||
|
|
0c7808a24b | ||
|
|
4aadbdaed2 | ||
|
|
195a7e354b | ||
|
|
c03e832c7b | ||
|
|
73515c96d8 | ||
|
|
e7c0d59809 | ||
|
|
556caea308 | ||
|
|
6d54902a08 | ||
|
|
fb32cea5b5 | ||
|
|
69cd443999 | ||
|
|
cc61c5321e | ||
|
|
7821f099bf | ||
|
|
4b0ad6ec48 | ||
|
|
416c580a45 | ||
|
|
0b3488c265 | ||
|
|
f0f5ae6dc9 | ||
|
|
f61ce3919b | ||
|
|
67c6497e2a | ||
|
|
9bcb2479ac | ||
|
|
8a9b038d56 | ||
|
|
eed4721ef0 | ||
|
|
b76c866c9d | ||
|
|
255a4a327e | ||
|
|
811db81a86 | ||
|
|
29b61c07b0 | ||
|
|
f8c1ee90ce | ||
|
|
d9c86d56bb | ||
|
|
cddf63f111 | ||
|
|
ca91e6a677 | ||
|
|
a48fde95a3 | ||
|
|
aed4ba4310 | ||
|
|
57ee88059d | ||
|
|
c8dccbe438 | ||
|
|
8a071090e0 | ||
|
|
cbf76e6575 | ||
|
|
83d2cb4f82 | ||
|
|
497d4dd7f9 | ||
|
|
d48f1fa292 | ||
|
|
7744ae5912 | ||
|
|
92b7168363 | ||
|
|
8fc97c263b | ||
|
|
d190315909 | ||
|
|
987740f7e9 | ||
|
|
2e143071d9 | ||
|
|
388141aae6 | ||
|
|
80811ebf44 | ||
|
|
208c4fb8ba | ||
|
|
38a5fddb9d | ||
|
|
f844a5080a | ||
|
|
a11a013d16 | ||
|
|
f34cb567e4 | ||
|
|
6cb330b06c | ||
|
|
04cf375725 | ||
|
|
b66686a869 | ||
|
|
31776a51a7 | ||
|
|
f1b7257e73 | ||
|
|
be7078aa7e | ||
|
|
931aed6d78 | ||
|
|
dc6fe77612 | ||
|
|
b387150d4f | ||
|
|
9b09b13bf9 | ||
|
|
d8693c7afa | ||
|
|
019dd3e478 | ||
|
|
b01a2f5abd | ||
|
|
087a9cdd2e | ||
|
|
b33bf954bb | ||
|
|
f7cdc7da0c | ||
|
|
cf14f84652 | ||
|
|
6289840a74 | ||
|
|
770cccda49 | ||
|
|
aa02c0f15d | ||
|
|
ee137b6ffd | ||
|
|
206ca6040e | ||
|
|
16f5670c83 | ||
|
|
0fc1af7180 | ||
|
|
55714bbcad | ||
|
|
6f144c20cd | ||
|
|
f23bd3818f | ||
|
|
d3ea763d6b | ||
|
|
91222f631f | ||
|
|
aceb344856 | ||
|
|
f11ea8d07e | ||
|
|
a4e3bf848b | ||
|
|
e74c1057a4 | ||
|
|
6cc046c65c | ||
|
|
c97a070e98 | ||
|
|
b4c0bf3322 | ||
|
|
e998cb634e | ||
|
|
c8017a1f42 | ||
|
|
6d84942746 | ||
|
|
818f145b62 | ||
|
|
f92c22ce7e | ||
|
|
69b362b9d2 | ||
|
|
1fe7ca3db8 | ||
|
|
cc32674b0f | ||
|
|
cf16b57f66 | ||
|
|
411163f750 | ||
|
|
7f3da655c0 | ||
|
|
76e786d961 | ||
|
|
7e1f1a725c | ||
|
|
c63a0c2f58 | ||
|
|
04a7e092a9 | ||
|
|
309065bcbf | ||
|
|
20ae3febef | ||
|
|
e95d33031c | ||
|
|
3fd62d0b02 | ||
|
|
dc0ddcfa9f | ||
|
|
7a13b14c15 | ||
|
|
adf0550571 | ||
|
|
ba6259f08a | ||
|
|
d8bb2ad3ae | ||
|
|
afe4a29fd1 | ||
|
|
1203dd639b | ||
|
|
aadad6aa8c | ||
|
|
8ac0440bb3 | ||
|
|
d2fca3b980 | ||
|
|
d6b4019614 | ||
|
|
a6eb951361 | ||
|
|
dce5bdd31d | ||
|
|
0b999bd726 | ||
|
|
774437f7bb | ||
|
|
c0673b8128 | ||
|
|
0bc8a63ccf | ||
|
|
192f4507e3 | ||
|
|
2d22adcd2a | ||
|
|
4c4b92fdd4 | ||
|
|
2a727d1c39 | ||
|
|
35693f5433 | ||
|
|
bf459b4090 | ||
|
|
728f1ce1e3 | ||
|
|
7b8021de02 | ||
|
|
60593cde21 | ||
|
|
f9292d61da | ||
|
|
9388ce6a46 | ||
|
|
cb19475409 | ||
|
|
09b51badd4 | ||
|
|
fddd5fda47 | ||
|
|
5b0a6f05ed | ||
|
|
51f91a27e2 | ||
|
|
09018d1214 | ||
|
|
de12b22c97 | ||
|
|
d1ae7f5fe2 | ||
|
|
201d32f6ae | ||
|
|
6a441b1c6b | ||
|
|
0afa15f2db | ||
|
|
85eb44da02 | ||
|
|
4856c7a61b | ||
|
|
1b4cc933e7 | ||
|
|
d64acb038b | ||
|
|
b5def640ed | ||
|
|
7e35b4c675 | ||
|
|
e5e3066b3d | ||
|
|
e1af21bf88 | ||
|
|
8c9d08e46b | ||
|
|
e4acfb4831 | ||
|
|
a8101c2231 | ||
|
|
a3ce426613 | ||
|
|
161d02cd98 | ||
|
|
101400bea3 | ||
|
|
1ff9fea378 | ||
|
|
3f4538a60e | ||
|
|
142d7c4f3a | ||
|
|
2afe0ebbe9 | ||
|
|
bc71a62199 | ||
|
|
1e85ce4a84 | ||
|
|
39951a5099 | ||
|
|
9cbb6f3125 | ||
|
|
2dbd3e2534 | ||
|
|
f871a51e5b | ||
|
|
6ab3c68ebb | ||
|
|
7243ccd44c | ||
|
|
2a96fa1a2d | ||
|
|
c05620dddb | ||
|
|
917977ae13 | ||
|
|
2b8338f537 | ||
|
|
e75b5e012c | ||
|
|
78e194d8c1 | ||
|
|
c594e07c8c | ||
|
|
a3ed079828 | ||
|
|
976ce16ac2 | ||
|
|
5faeb12a74 | ||
|
|
acc463eb76 | ||
|
|
3b7459ffbc | ||
|
|
cfb19a697a | ||
|
|
ceec43db67 | ||
|
|
229fa39436 | ||
|
|
2496eb22cb | ||
|
|
d0a45bceca | ||
|
|
7180fae453 | ||
|
|
e1a1b5980e | ||
|
|
53d410a6ee | ||
|
|
a56b38694c | ||
|
|
600b60b441 | ||
|
|
aa7208b602 | ||
|
|
0092b3ece6 | ||
|
|
d01c1e867d | ||
|
|
dd3c8dfac8 | ||
|
|
7c9c5a9a76 | ||
|
|
8f9a55c5ca | ||
|
|
ea0b61aa6d | ||
|
|
b94e7159b8 | ||
|
|
2eabca8267 | ||
|
|
afbe434b59 | ||
|
|
2a50799873 | ||
|
|
77727ad500 | ||
|
|
e89f1fe5a8 | ||
|
|
503e7eceb5 | ||
|
|
c15eba8f62 | ||
|
|
e2f83d5106 | ||
|
|
937b5cca12 | ||
|
|
1d438d5d76 | ||
|
|
22a34be21a | ||
|
|
17a492444e | ||
|
|
9a714a903d | ||
|
|
69a99fc97f | ||
|
|
8beb74689c | ||
|
|
6be7da0305 | ||
|
|
8a08fe213c | ||
|
|
205b17aea0 | ||
|
|
864172ea50 | ||
|
|
e01e14075c | ||
|
|
e9596e1bbc | ||
|
|
db9305c230 | ||
|
|
4572d101cf | ||
|
|
41506911c1 | ||
|
|
b722224863 | ||
|
|
b585b8ecd1 | ||
|
|
52e8ae9cb6 | ||
|
|
6d6d0c2d12 | ||
|
|
383640cb7e | ||
|
|
e5ef27dfbf | ||
|
|
96741fc08b | ||
|
|
dc41f495be | ||
|
|
b278d64d0c | ||
|
|
b5e32844f5 | ||
|
|
4179d2e515 | ||
|
|
815ba9d553 | ||
|
|
0d294f49f9 | ||
|
|
a195cfc792 | ||
|
|
d3c9168ebf | ||
|
|
4d153b8d99 | ||
|
|
bf8d224064 | ||
|
|
b7ad2c969a | ||
|
|
d78643160c | ||
|
|
221b38c766 | ||
|
|
e8bd9b21b5 | ||
|
|
c2f0d04a35 | ||
|
|
54ebcd91cb | ||
|
|
07411327b6 | ||
|
|
094ad1a17b | ||
|
|
c362848b86 | ||
|
|
47a8dfbd93 | ||
|
|
73b8443d7b | ||
|
|
48a7929254 | ||
|
|
2c1abf1519 | ||
|
|
e27e066ccc | ||
|
|
621e933f63 | ||
|
|
885974a84e | ||
|
|
b1d1af2153 | ||
|
|
cb94be5b3c | ||
|
|
5a202e96fd | ||
|
|
b80edee225 | ||
|
|
af3e2fc6ce | ||
|
|
795007f3f8 | ||
|
|
ea3c5fa758 | ||
|
|
30acf11055 | ||
|
|
48e653a546 | ||
|
|
a2d8aefb21 | ||
|
|
ae893be79b | ||
|
|
d846811fb9 | ||
|
|
791080107f | ||
|
|
7d22ed1249 | ||
|
|
8150edbc43 | ||
|
|
5acbfeffa5 | ||
|
|
3b763e3460 | ||
|
|
6dd5f4295d | ||
|
|
ac7b0bc9a2 | ||
|
|
1733938eb4 | ||
|
|
e5c9ed4b80 | ||
|
|
175b6747ea | ||
|
|
f45170850c | ||
|
|
466eb65a44 | ||
|
|
bdce0e12c7 | ||
|
|
57f9a0a844 | ||
|
|
988d969de7 | ||
|
|
17960d286f | ||
|
|
26ac68e98e | ||
|
|
0729dd798b | ||
|
|
c65dee1df9 | ||
|
|
92888338f4 | ||
|
|
44192c88f5 | ||
|
|
8d24243d4f | ||
|
|
7c4d4dec5c | ||
|
|
9823677983 | ||
|
|
ec6a5712e5 | ||
|
|
ef85b2109f | ||
|
|
8cfeb2ce7d | ||
|
|
35563373a6 | ||
|
|
f23164a17b | ||
|
|
70033cb0f3 | ||
|
|
da102d3d5a | ||
|
|
5568b43b22 | ||
|
|
52b27b6e56 | ||
|
|
99ec268dd9 | ||
|
|
d304c0919f | ||
|
|
6f3a11ade3 | ||
|
|
52ffa0b675 | ||
|
|
03ee8edda1 | ||
|
|
5da30e6608 | ||
|
|
0fb0af5b32 | ||
|
|
f5fcc57a06 | ||
|
|
6dc3e29535 | ||
|
|
d35db6e925 | ||
|
|
fbf0839c73 | ||
|
|
6f885efb7f | ||
|
|
df5b391f27 | ||
|
|
4a1a3013f4 | ||
|
|
524b965665 | ||
|
|
a3ebe24eb7 | ||
|
|
cae0977a01 | ||
|
|
ecf94d812d | ||
|
|
807a50dae4 | ||
|
|
cf57a3ead0 | ||
|
|
39b2ff4a72 | ||
|
|
eced026aeb | ||
|
|
d574b2796f | ||
|
|
730d09a76c | ||
|
|
b521b39498 | ||
|
|
1cae0503e7 | ||
|
|
e4d3e609f8 | ||
|
|
4c86c1a75a | ||
|
|
2f55055c75 | ||
|
|
3e711ebe7f | ||
|
|
61e634a86c | ||
|
|
afd4aa5d1f | ||
|
|
4b5383f1c7 | ||
|
|
95d91562ec | ||
|
|
a43c351e25 | ||
|
|
77a90256ed | ||
|
|
6393ae7621 | ||
|
|
6b3742fa56 | ||
|
|
492bc044fc | ||
|
|
84ff2f8371 | ||
|
|
54f26ea06e | ||
|
|
e10f3a19d3 | ||
|
|
21a5dbbb52 | ||
|
|
f67d2c5a4c | ||
|
|
6cf83bb381 | ||
|
|
6b9c81e8c4 | ||
|
|
f4decae77f | ||
|
|
e47f0c5166 | ||
|
|
778b65b48c | ||
|
|
d1dbb0b378 | ||
|
|
adfd003532 | ||
|
|
f17302439e | ||
|
|
63d2f5c57d | ||
|
|
478db63b30 | ||
|
|
127588699e | ||
|
|
29c10542b1 | ||
|
|
ab33312872 | ||
|
|
5c9fd471a7 | ||
|
|
dd15c93f51 | ||
|
|
4003ececb2 | ||
|
|
ff3cae9db4 | ||
|
|
af44646a77 | ||
|
|
1345bc8fe6 | ||
|
|
5d3a5a335f | ||
|
|
4d877d411b | ||
|
|
c1154682b5 | ||
|
|
99c4b0acd0 | ||
|
|
80520c075d | ||
|
|
17cf9f006a | ||
|
|
a8034b2fb5 | ||
|
|
7999251353 | ||
|
|
2111af8c0c | ||
|
|
6f7745c46a | ||
|
|
ba42285172 | ||
|
|
dff2d5996b | ||
|
|
08b17daec9 | ||
|
|
a7cf236ba5 | ||
|
|
f22197d494 | ||
|
|
af8af45f39 | ||
|
|
4b112cf9c0 | ||
|
|
733bc89a47 | ||
|
|
17baceb807 | ||
|
|
86487ace10 | ||
|
|
a7422e5bb3 | ||
|
|
b64418c2e9 | ||
|
|
8e895bd797 | ||
|
|
6562f645fe | ||
|
|
80ebf60ec5 | ||
|
|
d569001f32 | ||
|
|
12318b5c31 | ||
|
|
de55106961 | ||
|
|
edca735f2a | ||
|
|
b076de6f81 | ||
|
|
6ddc59bc5b | ||
|
|
ba4a3c16f3 | ||
|
|
de0fb2eba8 | ||
|
|
e40a0ff4aa | ||
|
|
5b126716f7 | ||
|
|
df3f4e2ef7 | ||
|
|
a081a63ba1 | ||
|
|
3a631449ed | ||
|
|
c01c8b2023 | ||
|
|
f7736b87bb | ||
|
|
5b8212f2fa | ||
|
|
dd539be64e | ||
|
|
53e5756745 | ||
|
|
d0d6da3436 | ||
|
|
c6423ffc21 | ||
|
|
cf9a141dc7 | ||
|
|
2480c7ae9f | ||
|
|
8fff376076 | ||
|
|
20c5993e2d | ||
|
|
46c5f1c10d | ||
|
|
f95bbb8760 | ||
|
|
c8fe5e6620 | ||
|
|
2744fb2fd4 | ||
|
|
7fb771eba4 | ||
|
|
760b2dbf0c | ||
|
|
751d0ed857 | ||
|
|
55e1233ca5 | ||
|
|
b83042e456 | ||
|
|
c0fd1f1466 | ||
|
|
03cb6ccb2b | ||
|
|
3fb5d12487 | ||
|
|
b44072a9fa | ||
|
|
24e45fb661 | ||
|
|
c3467d89c2 | ||
|
|
468a0e7416 | ||
|
|
1eafa1c8b6 | ||
|
|
c000307f14 | ||
|
|
cfde84f851 | ||
|
|
d261aee1d0 | ||
|
|
c05463f0ae | ||
|
|
247cd65bb6 | ||
|
|
7149e363b1 | ||
|
|
536e828cc6 | ||
|
|
821e3c4be5 | ||
|
|
a06144730f | ||
|
|
d162b77234 | ||
|
|
ec5352c13c | ||
|
|
4e5a08d3dd | ||
|
|
2d9b57b534 | ||
|
|
3e66968387 | ||
|
|
1771dd2130 | ||
|
|
b0a4ac055a | ||
|
|
8bb0588b2b | ||
|
|
147d6b95d7 | ||
|
|
6a7262b817 | ||
|
|
738f022212 | ||
|
|
9081380255 | ||
|
|
e64fb28d89 | ||
|
|
eb0fac8a43 | ||
|
|
bdc1f0a5d4 | ||
|
|
8a12b03a1f | ||
|
|
01a4ec8d76 | ||
|
|
16954c3bba | ||
|
|
c6944876f1 | ||
|
|
33e0895cdf | ||
|
|
a4d8c22cd0 | ||
|
|
becb404203 | ||
|
|
026aeb3d82 | ||
|
|
9153707075 | ||
|
|
0feac3163f | ||
|
|
7ddb1819f2 | ||
|
|
9ddbe2f789 | ||
|
|
102885da6e | ||
|
|
ded03e10c5 | ||
|
|
991e4fd3e2 | ||
|
|
c0b1d0ad3d | ||
|
|
5befd244e6 | ||
|
|
144ba66d9d | ||
|
|
46c8bedd66 | ||
|
|
d42074f8ea | ||
|
|
bcadc40998 | ||
|
|
ace1df7336 | ||
|
|
3a2e2ff478 | ||
|
|
cd1f19355a | ||
|
|
05174cd84c | ||
|
|
7247d4dc76 | ||
|
|
239ca55ba9 | ||
|
|
523aef38cc | ||
|
|
294bf51f8a | ||
|
|
8133e374d1 | ||
|
|
6bb9ec0dc1 | ||
|
|
c26cfd5372 | ||
|
|
8afe3ed039 | ||
|
|
b156eee209 | ||
|
|
add499af89 | ||
|
|
ca3337914c | ||
|
|
5453d2ada1 | ||
|
|
c3aa8fec56 | ||
|
|
cfcf05fdad | ||
|
|
423bde0c03 | ||
|
|
c254581a3f | ||
|
|
ca27dc65b7 | ||
|
|
cdb84851b2 | ||
|
|
227c30cce3 | ||
|
|
b1c6021545 | ||
|
|
aed843a4f2 | ||
|
|
101c595a48 | ||
|
|
cdaae3fb46 | ||
|
|
0ae7694954 | ||
|
|
f79c0b93ab | ||
|
|
439938ba58 | ||
|
|
85cb93b396 | ||
|
|
8ef5eea825 | ||
|
|
b8af6d3990 | ||
|
|
f78f59dc2a | ||
|
|
4defc1d4a3 | ||
|
|
fb7bf6fb98 | ||
|
|
c0f48b91e6 | ||
|
|
9da99e3183 | ||
|
|
beaa583bc8 | ||
|
|
c7e953fc24 | ||
|
|
44a0d21b35 | ||
|
|
70f748efac | ||
|
|
6e2c5be14e | ||
|
|
7d9040005e | ||
|
|
dc2c6d2a0d | ||
|
|
370116718a | ||
|
|
9a9b2c6d2f | ||
|
|
37c935d027 | ||
|
|
1279834849 | ||
|
|
ea50ae3279 | ||
|
|
f51720dbd8 | ||
|
|
d090230b67 | ||
|
|
6a3f6048c2 | ||
|
|
1bd82954c2 | ||
|
|
44721fc797 | ||
|
|
66cf7cce78 | ||
|
|
c5c9726794 | ||
|
|
8f25be8cb2 | ||
|
|
78958ed5cf | ||
|
|
bdff3b4ee2 | ||
|
|
459a8e5cde | ||
|
|
0869f209ab | ||
|
|
d15e4ebb17 | ||
|
|
d6fae17b3b | ||
|
|
dd82c935e5 | ||
|
|
bc414246d2 | ||
|
|
27ea697b90 | ||
|
|
f38f25f65a | ||
|
|
3edb76abbf | ||
|
|
91c6e13cbc | ||
|
|
c6aa6d575d | ||
|
|
569cb68cca | ||
|
|
fcd94326ef | ||
|
|
ee97dce900 | ||
|
|
72ba4ae74d | ||
|
|
58a7dc0a5a | ||
|
|
7799e9f253 | ||
|
|
d97ce592f8 | ||
|
|
8859fc7b6b | ||
|
|
57b3aa2032 | ||
|
|
79513bcbe5 | ||
|
|
ef9e84f2ce | ||
|
|
9270550364 | ||
|
|
2af1d60480 | ||
|
|
5b5134148b | ||
|
|
210c1079cd | ||
|
|
20c996e87e | ||
|
|
37f56a34f4 | ||
|
|
24ea5f2f2b | ||
|
|
53a4725d62 | ||
|
|
d932beb37d | ||
|
|
868526e806 | ||
|
|
bce4a164b8 | ||
|
|
aea4192213 | ||
|
|
415d46d659 | ||
|
|
c6cbe4cc0d | ||
|
|
82349d39b7 | ||
|
|
3e3335be39 | ||
|
|
44adc42fa6 | ||
|
|
ef1fc0943d | ||
|
|
bb2c2bb7fe | ||
|
|
fa8a954bc0 | ||
|
|
45ab705175 | ||
|
|
acf8170f29 | ||
|
|
6e57bc0fc0 | ||
|
|
b3fb1db07c | ||
|
|
cca309d7d7 | ||
|
|
dccc442852 | ||
|
|
9f7fc90f2d | ||
|
|
c3415ade1b | ||
|
|
30bedb29d6 | ||
|
|
29e83da077 | ||
|
|
2a2b12f0a5 | ||
|
|
3bd67b4f1d | ||
|
|
3c4673724e | ||
|
|
a87a94ffeb | ||
|
|
f1ac1f7c21 | ||
|
|
eda054ae11 | ||
|
|
5fa6c2ad99 | ||
|
|
a6647a0f4f | ||
|
|
fc75bdbebb | ||
|
|
ac549f75b0 | ||
|
|
a2b2f70671 | ||
|
|
23bd5dfc41 | ||
|
|
0566fc38af | ||
|
|
69bf6a64aa | ||
|
|
3ca2c6de66 |
99
.github/workflows/build.yml
vendored
@@ -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
@@ -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
|
||||
46
.github/workflows/build_linux.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
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
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
python pkgutils.py build-appimage --linux-tag $LINUX_TAG --python-version $PYTHON_VERSION
|
||||
|
||||
- name: Upload Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Linux-AppImage
|
||||
path: dist_appimage/*.AppImage*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
69
.github/workflows/build_mac.yml
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
name: BuildMacOS
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
uses: ./.github/workflows/build_assets.yml
|
||||
|
||||
buildMac-AMD64:
|
||||
needs: buildAssets
|
||||
runs-on: macos-latest
|
||||
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
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
|
||||
|
||||
- name: Upload DMG
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-AMD64-DMG
|
||||
path: dist_macos/*.dmg*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
buildMac-M1:
|
||||
needs: buildAssets
|
||||
runs-on: macos-latest
|
||||
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
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
|
||||
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
|
||||
|
||||
- name: Upload DMG
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-M1-DMG
|
||||
path: dist_macos/*.dmg*
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
62
.github/workflows/build_win.yml
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
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
|
||||
id: build
|
||||
run: |
|
||||
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $Env:GITHUB_OUTPUT
|
||||
python pkgutils.py build-win-exe
|
||||
|
||||
- name: Upload Unsigned Artifacts
|
||||
id: upload-unsigned-artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup
|
||||
path: dist/*.exe
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
|
||||
- name: Submit Signing Request
|
||||
uses: signpath/github-action-submit-signing-request@v1
|
||||
with:
|
||||
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
|
||||
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
|
||||
project-slug: "novelWriter"
|
||||
signing-policy-slug: "release-signing "
|
||||
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
|
||||
wait-for-completion: true
|
||||
output-artifact-directory: "dist/"
|
||||
parameters: |
|
||||
version: "${{ steps.build.outputs.BUILD_VERSION }}"
|
||||
|
||||
- name: Upload Signed Artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup-Signed
|
||||
path: dist/*.exe
|
||||
if-no-files-found: error
|
||||
retention-days: 14
|
||||
32
.github/workflows/i18n.yml
vendored
Normal 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
|
||||
8
.github/workflows/syntax.yml
vendored
@@ -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
|
||||
|
||||
17
.github/workflows/test_linux.yml
vendored
@@ -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", "3.13"]
|
||||
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@v5
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
14
.github/workflows/test_mac.yml
vendored
@@ -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@v5
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
12
.github/workflows/test_win.yml
vendored
@@ -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@v5
|
||||
env:
|
||||
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
|
||||
|
||||
3
.gitignore
vendored
@@ -50,3 +50,6 @@ ToC.txt
|
||||
# Coverage
|
||||
/.coverage
|
||||
/coverage.*
|
||||
|
||||
# Other
|
||||
/test.py
|
||||
|
||||
804
CHANGELOG.md
@@ -1,5 +1,809 @@
|
||||
# novelWriter Changelog
|
||||
|
||||
## Version 2.6 [2025-01-26]
|
||||
|
||||
### Release Notes
|
||||
|
||||
The 2.6 release fixes a few minor issues from the RC 1 pre-release, and updates most translations.
|
||||
|
||||
See the website for complete [Release Notes](https://novelwriter.io/releases/release_2_6.html).
|
||||
|
||||
### Detailed Changelog
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fixed a bug in the novel selector dropdown used a few places that would clear the selection if
|
||||
the novel list was refreshed. PR #2179.
|
||||
* Fixed a bug that would crash the app if the project tree was clicked without any project having
|
||||
been loaded. The selection model does not exist prior to a project load. Issue #2173. PR #2181.
|
||||
* Replaced a broken link on the dictionary install tool available on Windows. PR #2189.
|
||||
* Backported a few code fixes from 2.7 related to freeing memory from closed dialogs and one
|
||||
instance of a potentially uninitialised variable. PR #2202.
|
||||
* Fixed word wrapping in the item details panel for status and importance labels with very long
|
||||
names. PR #2202.
|
||||
* Fixed the project tree context menu so that it is not opened when right-clicking on an empty area
|
||||
of the tree widget. PR #2202.
|
||||
|
||||
**Improvements**
|
||||
|
||||
* Chapter headings are now level 1 headings in all manuscript output formats, not just HTML like
|
||||
before. Most applications that post-processes output will assume chapters are level 1.
|
||||
Correspondingly, scenes are now level 2 and sections are level 3. Notes headings remain
|
||||
unchanged. Issue #2205. PR #2206.
|
||||
|
||||
**Internationalisation**
|
||||
|
||||
* German, US English, Italian, Japanese, Norwegian and Polish have been updated in full. Brazilian
|
||||
Portuguese and Chinese have been partially updated. PR #2207.
|
||||
|
||||
**Documentation**
|
||||
|
||||
* Documentation has been updated with 2.6 features. PR #2210.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.6 RC 1 [2025-01-09]
|
||||
|
||||
### 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
|
||||
|
||||
**New Features**
|
||||
|
||||
* The session timer in the status bar can now be hidden by clicking on it. Issue #1029. PR #2149.
|
||||
* Status and importance labels can now be exported and imported. Issue #1847. PRs #2152 and #2153.
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fix a beta release bug where it was not possible to change the status or importance flag on
|
||||
folders in the project tree. Issue #2145. PR #2147.
|
||||
* Fix an issue where the word counter would override the selection counter in the editor. This was
|
||||
caused by the selection counter being on a much shorter timer than the word counter, so in some
|
||||
cases the latter result came in after the former even if the user actions where the other way
|
||||
around. The selection counter now takes precedence, always. Issue #2155. PRs #2156 and #2157.
|
||||
* Fix a minor issue where the search panel header background would not update colour when the theme
|
||||
was changed. Issue #2162. PR #2167.
|
||||
|
||||
**Improvements**
|
||||
|
||||
* It is no longer necessary to click the "Apply" button when making changes to status and
|
||||
importance labels, or auto-replace settings, in Project Settings. The changes are applied
|
||||
directly to the listed items. They are not applied to the project until the Project Settings are
|
||||
accepted. This is a more intuitive approach. Issue #2150. PR #2151.
|
||||
|
||||
**Packaging and Installation**
|
||||
|
||||
* MacOS packages are now built on the latest MacOS image available on GitHub. The x86_64 build was
|
||||
previously locked to MacOS 12, which is no loner available. PR #2141.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.6 Beta 2 [2024-12-23]
|
||||
|
||||
### 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
|
||||
|
||||
**New Features**
|
||||
|
||||
* The project tree has been completely rewritten under the hood. The main difference in the GUI is
|
||||
a lifting of restrictions on drag and drop. You can now select multiple items in multiple places
|
||||
in the tree, and drag them to a new location. It is still not allowed to drag root level items,
|
||||
or drop items on the root level. PR #2119.
|
||||
* You can now drag and drop items from the project tree onto the editor and viewer to load the
|
||||
documents there. PR #2119.
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Make line height in DocX scale correctly. Issue #2099. PR #2102.
|
||||
* Make margins scale with font size in ODT and HTML output. PR #2102.
|
||||
* Fix DocX page count to work with Office 365. PR #2102.
|
||||
* Fix font scaling issues for PDF output. Issue #2100. PR #2104.
|
||||
* Fix an issue that cleared the editor when the return key was used on a folder item. PR #2113.
|
||||
* Fix an issue where the viewer and preview would not reset text emphasis when selecting a default
|
||||
font style with emphasis features. Issue #2121. PR #2122.
|
||||
* Change how custom fonts are loaded to ensure that the Qt framework don't take shortcuts by using
|
||||
a similar font instead of the chosen font. This is a side effect of the Qt font matching feature.
|
||||
Issue #2118. PR #2122.
|
||||
|
||||
**Improvements**
|
||||
|
||||
* Move processing of alternative apostrophe and dash to a later point in the tokenization process.
|
||||
It needs to happen after dialogue is processed to work as intended. PR #2095.
|
||||
* Use icons for text margin settings in Build Settings. Issue #2098. PR #2102.
|
||||
* Replace the toolbar icon in the editor. PR #2103.
|
||||
* Turn off auto-default button on the Build dialog. Issue #2101. PR #2105.
|
||||
* Add ANSI colours to log output for easier debugging. PRs #2114 and #2117.
|
||||
* Document header is now aligned to the bottom of the top page margin in the same way for ODT and
|
||||
DocX output. Issue #2120. PR #2128.
|
||||
* Dialogue detection for quoted dialogue has been improved to better support Chinese, and other
|
||||
languages that don't use whitespaces to separate words. Some improvements have also been made to
|
||||
how single quoted dialogues are processed when apostrophes are present. Issue #2131. PR #2138.
|
||||
|
||||
**Code Improvements**
|
||||
|
||||
* Completely rewrite the project tree into a model/view set with one single definition if the
|
||||
project structure. PR #2109.
|
||||
* The auto-replace feature in the editor has been refactored. It is now better separated from the
|
||||
editor code, and may have some minor performance improvements. Issue #2129. PR #2132.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.6 Beta 1 [2024-11-12]
|
||||
|
||||
### 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
|
||||
|
||||
**New Features**
|
||||
|
||||
* Added PDF build format. Issue #2046. PR #2048.
|
||||
* Added DocX (MS Word) format. Issue #1537. PR #2056.
|
||||
* The Build settings tool has the following changes: Ability to control page break and centring of
|
||||
main titles, an option to disable styling for headings altogether, and the ODT section has been
|
||||
generalised to apply to all document formats. Issue #2023. PR #2045.
|
||||
* Text and heading margin can now be control in the Manuscript Build tool. Issue #2023. PR #2051.
|
||||
* Word counts and other such statistics can now be inserted into the manuscript. This is done
|
||||
through new insert actions in the Insert menu, and processed at build time. Issue #2024.
|
||||
PR #2073.
|
||||
* Forced line breaks can now be inserted as a shortcode. This is useful when line breaks in
|
||||
paragraphs are ignored when building the manuscript. Issue #1991. PR #2063.
|
||||
* A new `@mentions` keyword has been added that can list any tag in the project as being mentioned
|
||||
in the current section. These are listed separately from tags present in the story section.
|
||||
Issue #1822. PR #2064.
|
||||
* Tags in novel documents can now be referenced with the `@story` keyword. Issue #1990. PR #2072.
|
||||
* URLs starting with http/https are now recognised and clickable in the editor, viewer, and
|
||||
manuscript preview. Issue #1426. PR #2067.
|
||||
* Added dialogue highlighting for Portuguese and Polish dialogue styles. Issues #2066 and #2070.
|
||||
Related to #1773. PRs #2068, #2079, #2081 and #2082.
|
||||
* Four dashes in the editor are now replaced by a horizontal bar. This is useful as a replacement
|
||||
symbol for em dash when using dialogue highlighting to avoid triggering it. The horizontal bar is
|
||||
replaced with an em dash in the manuscript. Issue #2070. PR #2079.
|
||||
* Manuscript Build settings can now be duplicated. Issue #1931. PR #2084.
|
||||
* Page breaks can optionally be made visible in the Manuscript preview. PR #2086.
|
||||
* The document status label can now be selected in the Outline View. Issue #1909. PR #2088.
|
||||
* The document viewer now has an edit button to open the document in the editor. Issue #1963.
|
||||
PR #2089.
|
||||
|
||||
**User Interface**
|
||||
|
||||
* The Manuscript Build settings have now been moved into a single scrollable page, using the same
|
||||
layout as in Preferences. The heading and filtering pages are still separate forms, as they are
|
||||
of a more complex nature. PR #2031.
|
||||
* The currently open document in the editor is now highlighted in the project tree, just like it is
|
||||
in the novel view. Issue #1981. PR #2077.
|
||||
* The details panel in the Outline view is now resizable. PR #2078.
|
||||
|
||||
**Improvements**
|
||||
|
||||
* Add an option to ignore a word in the spell checker. An ignored word is ignored only for the
|
||||
current writing session. PR #2030.
|
||||
* Word counts and other such statistics is now exported as custom variables to ODT files, and can
|
||||
be inserted in the text in LibreOffice, and similar. Issue #2033. PR #2035.
|
||||
|
||||
**Code Improvements**
|
||||
|
||||
* Added Python 3.13 coverage to ensure the new Python release is supported. Issue #2040. PR #2044.
|
||||
* Preparation for Qt6: Clean up Qt enums. PR #2025.
|
||||
* Preparation for Qt6: Replace Qt regular expression tools with the internal Python re module for
|
||||
markup processing and syntax highlighting. It is both slightly faster, and there are issues with
|
||||
text encoding in at least some versions of Qt6 or PyQt6. PRs #2028 and #2043.
|
||||
* Preparation for Qt6: Added a wrapper function for connecting signals to slots that has a
|
||||
different function signature. Python lambdas generate warnings inn Qt6. PR #2075.
|
||||
* Refactored manuscript formats and moved most of the processing to the Tokenizer class to simplify
|
||||
the format classes and also make them more consistent. PRs #2060, #2061 and #2062.
|
||||
* The document builder has been refactored to support more generalised format classes. PR #2047.
|
||||
* Action parent assignment has been rafactored in the main menu. #2075.
|
||||
* Raw text format output has been refactored and reduced to just appending documents. PR #2087.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.5.3 [2024-11-26]
|
||||
|
||||
### Release Notes
|
||||
|
||||
This is a patch release that fixes a few minor bugs in the user interface, and with the HTML
|
||||
manuscript format. This patch also adds a Russian translation, and updated the German and
|
||||
Portuguese translations.
|
||||
|
||||
### Detailed Changelog
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fixed the red/green LEDs on the statusbar for the Default Light theme. The colours were swapped.
|
||||
Issue #2057. PR #2059.
|
||||
* Moved the styles tag into the head tag for HTML manuscript output, which is the correct placement
|
||||
for them. Issue #2080. PR #2085.
|
||||
* Fixed a bug in the project tree where it was possible to drag content to root level on some Qt
|
||||
versions where the disallow flag is not obeyed. The illegal action is now additionally blocked by
|
||||
code. Issue #2108. PR #2109.
|
||||
|
||||
**Documentation**
|
||||
|
||||
* Updated a dead link to the spell check library with the new one. Issue #2042. PR #2059.
|
||||
|
||||
**Internationalisation**
|
||||
|
||||
* Russian translation added by Konstantin Tan (@k1kimosha). PR #2126
|
||||
* Updated German and Portuguese translations. PR #2126
|
||||
|
||||
----
|
||||
|
||||
## Version 2.5.2 [2024-09-17]
|
||||
|
||||
### Release Notes
|
||||
|
||||
This is a patch release that fixes a series of issues mostly affecting dialogue highlighting in the
|
||||
document viewer. The way the text is formatted in the viewer changed a lot in 2.5, and there were a
|
||||
few issues with the new implementation. The tab stop distance setting was also ignored, but has now
|
||||
been fixed as well.
|
||||
|
||||
### Detailed Changelog
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fixed an issue where the tab stop distance setting was being ignored in the document viewer. It
|
||||
must be set again every time a document is loaded. Issue #1996. PR #2014.
|
||||
* Fixed an issue with overlapping formatting markers when processing text into new formats. This
|
||||
issues was introduced when dialogue highlighting was added to the document viewer and manuscript
|
||||
build. It arises because start and end of dialogue can occur on the same character as other
|
||||
formatting, and then the order these markers are processed matters. This was not properly handled
|
||||
in the code. Issue #2012. PR #2014.
|
||||
* Dialogue highlighting is now only applied to plain text paragraphs, not comments, headings, and
|
||||
other places where there should be no dialogue. Issue #2013. PR #2014.
|
||||
* Note documents no longer get dialogue highlighting. Issue #2011. PR #2014.
|
||||
|
||||
**Documentation**
|
||||
|
||||
* Added a section about spell checking in the documentation. PR #2015.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.5.1 [2024-07-28]
|
||||
|
||||
### Release Notes
|
||||
|
||||
This is a patch release that fixes an issue with the lock file being left in the project when the
|
||||
project open is cancelled, a few issues with custom input boxes in Preferences, and a usability
|
||||
issue when selecting to edit a tag or reference from the Tags and References panel as well as fixed
|
||||
an issue with the Importance labels not being updated in the tabs for tags.
|
||||
|
||||
### Detailed Changelog
|
||||
|
||||
**Bugfixes**
|
||||
|
||||
* Fixes an issue where the project lock file was created before certain checks where the user could
|
||||
cancel the project open process, leaving a lock file in the project folder behind. Issue #1977.
|
||||
PR #1978.
|
||||
* Fixes an issue where the user could add spaces to the pad before and after Preference settings,
|
||||
which would pad every space entered into the text. The Preferences settings no longer accept any
|
||||
white spaces in these boxes (they are removed on save) and also strips duplicate character
|
||||
entries. Issue #1985. PR #1986.
|
||||
* The narrator break and dialog symbol Preference text boxes will now be cleared if the settings is
|
||||
a white space. PR #1986.
|
||||
* Fixed an issue where Importance labels were not updated in the viewer panel's tags tabs when they
|
||||
where changed in Project Settings. Issue #1992. PR #1993.
|
||||
|
||||
**Usability**
|
||||
|
||||
* When selecting to edit a tag or reference from the panel below the Document Viewer, the editor
|
||||
now scrolls to the relevant heading as it does in the viewer. Issue #1983. PR #1987.
|
||||
|
||||
**Internationalisation**
|
||||
|
||||
* Latin American Spanish translation updated by Tommy Marplatt (@tmarplatt). PR #1989.
|
||||
|
||||
----
|
||||
|
||||
## 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
|
||||
|
||||
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
|
||||
|
||||
**Major Features**
|
||||
|
||||
* A global search feature has been added to the main sidebar. The search panel replaces the project
|
||||
and novel tree when activated. PR #1775. Issue #894.
|
||||
* A new shortcode to highlight text has been added. PR #1715. Issue #705.
|
||||
* A new heading format for hard scene breaks has been added. It uses `###!` heading markup. The
|
||||
only affect this has in the GUI is that these headings can be independently formatted in the
|
||||
Manuscript tool. PR #1753. Issue #1050.
|
||||
* The document editor and viewer now have a dropdown menu in the header listing all headings of the
|
||||
current document for quick navigation. The list is capped at 30 entries. PR #1764. issue #1059.
|
||||
|
||||
**Build Tool Improvements**
|
||||
|
||||
* The Manuscript Build Tool now has a word stats section below the preview that shows a number of
|
||||
word and character counts for the previewed text. PR #1717. Issues #1114 and #1116.
|
||||
* The Manuscript Build Tool now shows an outline of the previewed document as a tab next to the
|
||||
build settings list. PR #1768. Issue #1765.
|
||||
* Tabs handling in HTML output now has a separate setting from the other format. PR #1723.
|
||||
* Hard line breaks can now be excluded from Markdown builds. PR #1723. Issue #944.
|
||||
* It is now possible to control the centring and page breaks of partition, chapter and scene
|
||||
headings. PR #1723. Issues #1117 and #1661.
|
||||
* Special titles (`#!`) can now be used in notes as well. PR #1723.
|
||||
* Meta data categories can be filtered out from the manuscript. PR #1723. issue #1132.
|
||||
* Any heading in a novel document can now be hidden in the manuscript. PR #1759. Issue #1756.
|
||||
* First line of a paragraph can now be indented in the manuscript. PR #1761. Issue #906.
|
||||
* Each meta data entry in HTML builds have a new class assigned to it that matches the tag used in
|
||||
the text. PR #1767. Issue #1134.
|
||||
|
||||
**Other Improvements**
|
||||
|
||||
* The percentage progress counter in the editor document footer now counts progress per character
|
||||
instead of per line. This is only noticeable on short documents. PR #1725.
|
||||
* Some improvements have been made to terms on the GUI and some strings have been simplified in
|
||||
order to be easier to understand and to translate. PR #1727. Issue #1726.
|
||||
* Dates are now formatted according to the selected locale, if such a locale is available. If not,
|
||||
it falls back to the local system locale. PR #1755. Issue #1739.
|
||||
|
||||
**Code Improvements**
|
||||
|
||||
* The tokenization of the novelWriter markup format has been refactored and improved. PR #1724.
|
||||
* A way to read project documents fast has been added. It is useful many places in the code where
|
||||
only the text is needed, not the meta data. PR #1777.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.3.1 [2024-03-17]
|
||||
|
||||
### Release Notes
|
||||
|
||||
This is a patch release that fixes several issues with translations into other languages than the
|
||||
default English, and adds completed translations for French.
|
||||
|
||||
### Detailed Changelog
|
||||
|
||||
**Internationalisation**
|
||||
|
||||
* Fix untranslated text on the "Project Word List" dialog. PR #1744. Issue #1746.
|
||||
* Fix untranslated text on the dialog that pops up after an upgrade, PR #1754. Issue #1749.
|
||||
* Fix error in Norwegian translation. PR #1744.
|
||||
* Allow the translated text for adding chapter and scenes on the Welcome dialog to flow around the
|
||||
number selector since the number is inserted into the sentence, and not all languages will split
|
||||
the sentence around the number like is done in English. PR #1754. Issue #1750.
|
||||
* French translation updated by Albert Aribaud (@aaribaud). PR #1760.
|
||||
* Minor updates to other translations for the 2.3.1 fixes by other contributors. PR #1760.
|
||||
|
||||
**Other Changes**
|
||||
|
||||
* Bump the revision of the project file format to 1.5 Revision 3 from Revision 2. This should have
|
||||
been done in the 2.3 release due to the addition of the Templates root folder type. PR #1748.
|
||||
|
||||
----
|
||||
|
||||
## Version 2.3 [2024-03-10]
|
||||
|
||||
### Release Notes
|
||||
|
||||
@@ -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 `-`.
|
||||
|
||||
62
CREDITS.md
@@ -2,67 +2,75 @@
|
||||
|
||||
## 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)
|
||||
* **Russian:** Konstantin Tan (k1kimosha)
|
||||
* **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:
|
||||
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)
|
||||
* **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.
|
||||
|
||||
19
README.md
@@ -29,11 +29,20 @@ documentation.
|
||||
* PyPi Project: [pypi.org/project/novelWriter](https://pypi.org/project/novelWriter)
|
||||
* Social Media: [fosstodon.org/@novelwriter](https://fosstodon.org/@novelwriter)
|
||||
|
||||
## Sponsors
|
||||
|
||||
<table style="border: none;">
|
||||
<tr>
|
||||
<td><img align="left" style="height: 25px;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/signpath_logo.png"></td>
|
||||
<td>Free code signing on Windows provided by <a href="https://about.signpath.io/">SignPath.io</a>, certificate by <a href="https://signpath.org/">SignPath Foundation</a>.</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
## 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 +58,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
|
||||
|
||||
|
Before Width: | Height: | Size: 54 KiB After Width: | Height: | Size: 90 KiB |
|
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 101 KiB |
|
Before Width: | Height: | Size: 154 KiB After Width: | Height: | Size: 152 KiB |
|
Before Width: | Height: | Size: 128 KiB After Width: | Height: | Size: 94 KiB |
BIN
docs/source/images/fig_manuscript_build_outline.png
Normal file
|
After Width: | Height: | Size: 121 KiB |
|
Before Width: | Height: | Size: 241 KiB After Width: | Height: | Size: 243 KiB |
|
Before Width: | Height: | Size: 137 KiB After Width: | Height: | Size: 135 KiB |
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 147 KiB After Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 273 KiB After Width: | Height: | Size: 280 KiB |
|
Before Width: | Height: | Size: 124 KiB After Width: | Height: | Size: 123 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 542 KiB After Width: | Height: | Size: 516 KiB |
|
Before Width: | Height: | Size: 562 KiB |
BIN
docs/source/images/screenshot_light.png
Normal file
|
After Width: | Height: | Size: 535 KiB |
@@ -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
|
||||
|
||||
|
||||
@@ -13,7 +13,7 @@ Glossary
|
||||
see :ref:`a_proj_roots`.
|
||||
|
||||
Novel Documents
|
||||
These are documents that are created under a "Novel" :term:`root folder`. They behave
|
||||
These are documents that are created under a "Novel" :term:`Root Folder`. They behave
|
||||
differently than :term:`Project Notes`, and have some more restrictions. For instance, they
|
||||
can not exist in folders intended only for project notes. See the :ref:`a_struct` chapter for
|
||||
more details.
|
||||
|
||||
@@ -16,27 +16,42 @@ This is a list of hopefully helpful little tips on how to get the most out of no
|
||||
Managing the Project
|
||||
====================
|
||||
|
||||
.. dropdown:: Merge Multiple Documents Into One
|
||||
.. dropdown:: How do I create a project from a template?
|
||||
: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`.
|
||||
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:: How do I merge multiple documents into one?
|
||||
:animate: fade-in-slide-down
|
||||
|
||||
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.
|
||||
|
||||
.. dropdown:: How do I share status or importance labels between projects?
|
||||
:animate: fade-in-slide-down
|
||||
|
||||
The status or importance labels you have defined in a project can be exported from **Project
|
||||
Settings** from the respective configuration tabs. You can then import these labels in another
|
||||
project.
|
||||
|
||||
|
||||
Layout Tricks
|
||||
=============
|
||||
|
||||
.. dropdown:: Create a Simple Table
|
||||
.. dropdown:: How do I create a 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,11 +59,30 @@ 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:: How do I force a line break when line breaks are ignored in my manuscript?
|
||||
:animate: fade-in-slide-down
|
||||
|
||||
In the **Manuscript Build Settings** you can choose to ignore line breaks within paragraphs in
|
||||
your text. However, some times you still need those breaks. Like for instance on the cover page
|
||||
where you may need to add your name and address. In such cases, you can add ``[br]`` where you
|
||||
want line breaks. These breaks cannot be ignored by any settings and will always be respected.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
|
||||
.. dropdown:: How do I turn off first line indent for a specific 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 adding text alignment. For instance by
|
||||
adding ``<<`` to the end to left-align it. Aligned paragraphs are not indented.
|
||||
|
||||
See :ref:`a_fmt_align` for more details.
|
||||
|
||||
|
||||
Organising Your Text
|
||||
====================
|
||||
|
||||
.. dropdown:: Add Introductory Text to Chapters
|
||||
.. dropdown:: How do I add introductory text to chapters?
|
||||
:animate: fade-in-slide-down
|
||||
|
||||
Sometimes chapters have a short preface, like a brief piece of text or a quote to set the stage
|
||||
@@ -58,28 +92,25 @@ 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
|
||||
.. dropdown:: How do I distinguishing between 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.
|
||||
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 hide soft scene 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.
|
||||
.. versionadded:: 2.4
|
||||
|
||||
|
||||
Other Tools
|
||||
===========
|
||||
|
||||
.. dropdown:: Convert Project to/from yWriter Format
|
||||
.. dropdown:: How do I convert my project to/from the yWriter format?
|
||||
:animate: fade-in-slide-down
|
||||
|
||||
There is a tool available that lets you convert a `yWriter <http://spacejock.com/yWriter7.html>`_
|
||||
|
||||
@@ -1,51 +1,68 @@
|
||||
.. _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 individual chapter or
|
||||
scene documents.
|
||||
|
||||
|
||||
.. _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 need them.
|
||||
|
||||
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 +75,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 separately.
|
||||
|
||||
**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 documents 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 or
|
||||
scenes in the same document.
|
||||
|
||||
**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 within 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 generate an Open Document or
|
||||
Word 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 +118,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
|
||||
|
||||
@@ -1,35 +1,29 @@
|
||||
.. _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 to know 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
|
||||
=================
|
||||
|
||||
In order to use novelWriter effectively, you need to know the basics of how it works. The following
|
||||
chapters will explain the main principles. It starts with the basics, and gets more detailed as you
|
||||
chapters will explain the main principles. They start with the basics, and get more detailed as you
|
||||
read on.
|
||||
|
||||
:ref:`a_breakdown` – Essential Information
|
||||
@@ -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
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
.. _a_started:
|
||||
|
||||
***************
|
||||
Getting Started
|
||||
***************
|
||||
**********************
|
||||
Setup and Installation
|
||||
**********************
|
||||
|
||||
.. _Enchant: https://abiword.github.io/enchant/
|
||||
.. _Enchant: http://rrthomas.github.io/enchant/
|
||||
.. _GitHub: https://github.com/vkbo/novelWriter
|
||||
.. _Downloads page: https://download.novelwriter.io
|
||||
.. _PPA: https://launchpad.net/~vkbo/+archive/ubuntu/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 additional install 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,
|
||||
@@ -40,12 +40,6 @@ If you have any issues, try uninstalling the previous version and making a fresh
|
||||
already had a version installed via a different method, you should uninstall that first as having
|
||||
multiple installations has been known to cause problems.
|
||||
|
||||
.. note::
|
||||
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.
|
||||
|
||||
|
||||
.. _a_started_linux:
|
||||
|
||||
@@ -56,6 +50,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
|
||||
@@ -92,10 +87,6 @@ Then run the update and install commands as for Ubuntu:
|
||||
sudo apt update
|
||||
sudo apt install novelwriter
|
||||
|
||||
.. note::
|
||||
You may need to use the Ubuntu 20.04 (focal) packages for Debian 11 or earlier. The newer Ubuntu
|
||||
packages use a different compression algorithm that may not be supported.
|
||||
|
||||
.. tip::
|
||||
If you get an error message like ``gpg: failed to create temporary file`` when importing the key
|
||||
from the Ubuntu keyserver, try creating the folder it fails on, and import the key again:
|
||||
@@ -141,7 +132,7 @@ done by holding down the option key on your keyboard and clicking on the applica
|
||||
.. note::
|
||||
The novelWriter DMG is not signed because Apple 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.
|
||||
funding to pay for a commercial software signing certificate.
|
||||
|
||||
|
||||
.. _a_started_pip:
|
||||
|
||||
@@ -5,8 +5,11 @@ Word and Text Counts
|
||||
********************
|
||||
|
||||
This is an overview of how words and other counts of your text are performed. The counting rules
|
||||
should be relatively standard, and are compared to LibreOffice Writer rules. The counts provided in
|
||||
the app on the raw text are only meant to be approximate.
|
||||
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 **Manuscript Tool** and check the counts on the
|
||||
generated preview.
|
||||
|
||||
|
||||
Text Word Counts and Stats
|
||||
@@ -28,12 +31,68 @@ 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
|
||||
consisting only of white spaces is considered empty.
|
||||
|
||||
|
||||
Manuscript Counts
|
||||
=================
|
||||
|
||||
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:
|
||||
|
||||
#. Short (–) and long (—) dashes are considered word separators.
|
||||
#. Leading and trailing white spaces are generally included, but paragraph breaks are not.
|
||||
#. Hard line breaks within paragraph are considered white space characters.
|
||||
#. All formatting codes are ignored, including shortcodes, commands and Markdown.
|
||||
#. Scene and section separators are counted.
|
||||
#. Comments and meta data lines are counted after they are formatted.
|
||||
#. Headers are counted after they are formatted with custom formats.
|
||||
|
||||
The following counts are available:
|
||||
|
||||
**Headings**
|
||||
The number of headings in the manuscript.
|
||||
|
||||
**Paragraphs**
|
||||
The number of body text paragraphs in the manuscript.
|
||||
|
||||
**Words**
|
||||
The number of words in the manuscript, including any comments and meta data text.
|
||||
|
||||
**Words in Text**
|
||||
The number of words in body text paragraphs, excluding all other text.
|
||||
|
||||
**Words in Headings**
|
||||
The number of words in headings, including inserted formatting like chapter numbers, etc.
|
||||
|
||||
**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.
|
||||
|
||||
**Character in Text**
|
||||
The number of characters in body text paragraphs. Paragraph breaks are not counted, but
|
||||
in-paragraph hard line breaks are.
|
||||
|
||||
**Characters in Headings**
|
||||
The number of characters in headings.
|
||||
|
||||
**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.
|
||||
|
||||
**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.
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
Customisations
|
||||
**************
|
||||
|
||||
.. _Enchant: https://abiword.github.io/enchant
|
||||
.. _Enchant: https://rrthomas.github.io/enchant/
|
||||
.. _Free Desktop: https://cgit.freedesktop.org/libreoffice/dictionaries/tree/
|
||||
|
||||
There are a few ways you can customise novelWriter yourself. Currently, you can add new GUI themes,
|
||||
@@ -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,27 +175,37 @@ 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
|
||||
errorline = 0, 0, 0
|
||||
replacetag = 0, 0, 0
|
||||
modifier = 0, 0, 0
|
||||
texthighlight = 255, 255, 255, 128
|
||||
|
||||
In the Main section, you must define at least the ``name`` setting. The Syntax colour values are
|
||||
RGB(A) numbers of the format ``r, g, b, a`` where each is an integer ``0`` from to ``255``. The
|
||||
fourth value is the alpha channel (transparency), which can be omitted.
|
||||
RGB(A) numbers of the format ``r, g, b, a`` where each is an integer from ``0`` to ``255``. The
|
||||
fourth value is the alpha channel, which can be omitted.
|
||||
|
||||
Omitted syntax colours default to black, except ``background`` which defaults to white.
|
||||
Omitted syntax colours default to black, except ``background`` which defaults to white, and
|
||||
``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.
|
||||
|
||||
.. versionadded:: 2.5
|
||||
The ``dialog``, ``altdialog``, ``note`` and ``tag`` syntax colour entries were added.
|
||||
``straightquotes``, ``doublequotes`` and ``singlequotes`` were removed.
|
||||
@@ -4,11 +4,14 @@
|
||||
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
|
||||
only allows you to define a single set of options for the build, but otherwise had much the same
|
||||
functionality.
|
||||
@@ -20,40 +23,61 @@ 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
|
||||
@@ -63,17 +87,20 @@ In the figure, the green arrow icon and the blue pin icon indicates which docume
|
||||
and the red forbidden icon indicates that a document is explicitly excluded.
|
||||
|
||||
|
||||
.. _a_manuscript_settings_head:
|
||||
|
||||
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
|
||||
@@ -84,7 +111,8 @@ 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
|
||||
^^^^^^^^^^^^^^^^
|
||||
@@ -99,13 +127,24 @@ the desired separator text as the format. If the format is any piece of static t
|
||||
be treated as a separator.
|
||||
|
||||
|
||||
.. _a_manuscript_settings_head_hard:
|
||||
|
||||
Hard and Soft Scenes
|
||||
^^^^^^^^^^^^^^^^^^^^
|
||||
|
||||
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.
|
||||
|
||||
|
||||
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:
|
||||
@@ -114,12 +153,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
|
||||
@@ -139,21 +179,34 @@ Open Document Format
|
||||
flat version of the document format as a single XML file. Most rich text editors support the
|
||||
former, and only a few the latter.
|
||||
|
||||
Microsoft Word Document Format
|
||||
The Microsoft Word Document format writes a single ``.docx`` file. It uses a fairly basic format
|
||||
that should be compatible with most rich text editors.
|
||||
|
||||
Portable Document Format (PDF)
|
||||
The PDF is generated from a copy of the preview document, and should have the same formatting
|
||||
capabilities as the preview. It's identical to what is produced if you select the print option
|
||||
and print to PDF.
|
||||
|
||||
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.
|
||||
|
||||
Standard/Extended Markdown
|
||||
The Markdown format comes in both Standard and Extended flavour. The *only* difference in terms
|
||||
of novelWriter functionality is the support for strike through text, which is not supported by
|
||||
the Standard flavour.
|
||||
|
||||
novelWriter Markup
|
||||
This is simply a concatenation of the project documents selected by the filters into a ``.txt``
|
||||
file. The documents are stacked together in the order they appear in the project tree, with
|
||||
comments, tags, etc. included if they are selected. This is a useful format for exporting the
|
||||
project for later import back into novelWriter.
|
||||
|
||||
Standard/Extended Markdown
|
||||
The Markdown format comes in both Standard and Extended flavour. The *only* difference in terms
|
||||
of novelWriter functionality is the support for strike through text, which is not supported by
|
||||
the Standard flavour.
|
||||
.. versionadded:: 2.6
|
||||
|
||||
Microsoft Word and PDF output options were added.
|
||||
|
||||
|
||||
Additional Formats
|
||||
@@ -173,13 +226,14 @@ file can be imported directly into a Python dict object or a PHP array, to menti
|
||||
|
||||
.. _a_manuscript_print:
|
||||
|
||||
Print and PDF
|
||||
=============
|
||||
Printing
|
||||
========
|
||||
|
||||
The :guilabel:`Print` button allows you to print the content in the preview window. You can either
|
||||
print to one of your system's printers, or select PDF as your output format from the printer icon
|
||||
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.
|
||||
|
||||
@@ -1,116 +1,142 @@
|
||||
.. _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
|
||||
categories of tags that can be used to reference them. For more information about the tags listed,
|
||||
see :ref:`a_references_references`.
|
||||
|
||||
There is also a ``@mention`` keyword that can be used to reference any tag.
|
||||
See :ref:`a_references_references` for more details.
|
||||
|
||||
.. note::
|
||||
|
||||
You can rename root folders to whatever you want. However, this doesn't change the reference
|
||||
keyword or what they do.
|
||||
|
||||
.. versionadded:: 2.0
|
||||
As of version 2.0, you can make multiple root folders of each kind to split up your project.
|
||||
|
||||
|
||||
.. _a_proj_roots_del:
|
||||
|
||||
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 +145,33 @@ 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.
|
||||
|
||||
In addition to using folders. it is also 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:
|
||||
@@ -136,15 +182,15 @@ Recovered Documents
|
||||
If novelWriter crashes or otherwise exits without saving the project state, or if you're using a
|
||||
file synchronisation tool that runs out of sync, there may be files in the project storage folder
|
||||
that aren't tracked in the core project file. These files, when discovered, are recovered and added
|
||||
back into the project.
|
||||
back into the project when a project is opened.
|
||||
|
||||
The discovered files are scanned for metadata that give clues as to where the document may
|
||||
previously have been located in the project. The project loading routine will try to put them back
|
||||
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
|
||||
@@ -156,18 +202,21 @@ be named after its internal key, which is a string of characters and numbers.
|
||||
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.
|
||||
To prevent data loss caused by file conflicts when novelWriter projects are synchronised via 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
|
||||
the project are in fact open, you are likely to cause inconsistencies and create diverging
|
||||
project files, potentially resulting in loss of data and orphaned files. You are not likely to
|
||||
@@ -175,52 +224,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 +261,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 +270,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 +280,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
|
||||
@@ -286,9 +317,14 @@ use these to indicate at what stage of completion each novel document is, or how
|
||||
content of a note is to the story. You don't have to use them this way, that's just what they were
|
||||
intended for, but you can make them whatever you want.
|
||||
|
||||
Both status and importance labels can be exported and imported so you can share them between
|
||||
projects, or define a standard set for all your writing projects. When you import labels to a
|
||||
project, they are always added as *new* labels.
|
||||
|
||||
See also :ref:`a_ui_tree_status`.
|
||||
|
||||
.. note::
|
||||
|
||||
The status or importance level currently in use by one or more documents cannot be deleted, but
|
||||
they can be edited.
|
||||
|
||||
@@ -316,22 +352,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,16 +380,30 @@ 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
|
||||
application like for instance Libre Office Calc or Excel.
|
||||
|
||||
.. versionadded:: 1.2
|
||||
|
||||
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**.
|
||||
|
||||
|
||||
Session Timer
|
||||
-------------
|
||||
|
||||
A session timer is by default visible in the status bar. The icon will show you a clock icon when
|
||||
you are active, and a pause icon when you are considered "idle" per the criteria mentioned above.
|
||||
|
||||
If you do not wish to see the timer, you can click on it once to hide it. The icon will still be
|
||||
visible. Click the icon once more to display the timer again.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
|
||||
As of version 2.6, clicking the timer text or icon in the status bar will toggle its visibility.
|
||||
|
||||
@@ -15,10 +15,11 @@ applications. It is therefore not always obvious to new users how this is suppos
|
||||
this chapter hopes to explain in more detail how to use this tags and references system.
|
||||
|
||||
.. 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:
|
||||
@@ -39,7 +40,8 @@ documents up using the document split feature. See :ref:`a_ui_tree_split_merge`
|
||||
You can do the same with your notes. You can treat each heading as an independent element of your
|
||||
notes that can be referenced somewhere else. That way you can collect all your minor or background
|
||||
characters in a single note file, and still be able to reference them individually by separating
|
||||
them with headings and assigning each a tag.
|
||||
them with headings and assigning each a tag. Or, you can lay out your plot in a single document and
|
||||
have a tag for each plot stage under separate headings.
|
||||
|
||||
|
||||
.. _a_references_tags:
|
||||
@@ -68,7 +70,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,16 +81,23 @@ 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
|
||||
use when defining the tag, but you don't have to use the same capitalisation when referencing
|
||||
it later.
|
||||
|
||||
.. versionadded:: 2.3
|
||||
|
||||
Tags can have an optional display name for manuscript builds.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
|
||||
You can now add tags also to Novel Documents. These can be used for cross-referencing between
|
||||
chapters and scenes, and also from notes if desired.
|
||||
|
||||
Example of a heading with a tag for a character of the story:
|
||||
|
||||
.. code-block:: md
|
||||
@@ -117,8 +126,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 +135,82 @@ 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.
|
||||
|
||||
``@mention``
|
||||
Anything mentioned, but not present in the current section. It is intended for those cases where
|
||||
you reveal details about a character or place in a scene without it being otherwise a part of
|
||||
it. This can be useful when checking for consistency later. Any tag in any root note folder can
|
||||
be listed under mentions.
|
||||
|
||||
``@story``
|
||||
This is used when referencing a Novel Document, like a scene or chapter, from somewhere else in
|
||||
your project.
|
||||
|
||||
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 +238,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
|
||||
|
||||
@@ -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. Emphasis can be enabled in
|
||||
**Preferences**.
|
||||
|
||||
|
||||
.. _a_struct_heads:
|
||||
@@ -28,64 +27,88 @@ Four levels of headings are supported, signified by the number of hashes (``#``)
|
||||
title. See also the :ref:`a_fmt` section for more details about the markup syntax.
|
||||
|
||||
.. 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 syntax for the four basic heading types, and the two special types, is listed in section
|
||||
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 **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 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 titles, 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
|
||||
instance, chapter numbers can be applied automatically, and so can scene numbers if you want
|
||||
them in a draft manuscript. You can also insert point-of-view character names in chapter titles.
|
||||
See the :ref:`a_manuscript` page for more details.
|
||||
|
||||
.. note::
|
||||
|
||||
As of 2.6, the heading levels internally in novelWriter do not map directly to heading levels in
|
||||
manuscript documents. In manuscript documents, chapters are considered the top level heading,
|
||||
and partitions become plain text paragraphs with a larger font.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
|
||||
|
||||
.. _a_struct_heads_title:
|
||||
|
||||
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
|
||||
manuscript build document, like so:
|
||||
It is recommended that you add a document at the very top of each **Novel** root folder with the
|
||||
novel title in it. 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.
|
||||
|
||||
You can also add the author name and address above this if this is required by the manuscript
|
||||
format you use, and additional space added before the title.
|
||||
|
||||
This is the title page novelWriter generates automatically for a new project as of version 2.6:
|
||||
|
||||
.. code-block:: md
|
||||
|
||||
Jane Doe[br]
|
||||
Address 1[br]
|
||||
Address 2 <<
|
||||
|
||||
[vspace:5]
|
||||
|
||||
#! My Novel
|
||||
|
||||
>> _by Jane Doe_ <<
|
||||
>> **By Jane Doe** <<
|
||||
|
||||
>> Word Count: [field:textWords] <<
|
||||
|
||||
The title is by default centred on the page. You can add more text to the page as you wish, like
|
||||
for instance the author's name and details.
|
||||
@@ -102,7 +125,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 +133,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
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -7,6 +7,8 @@ How it Works
|
||||
.. _Fusion: https://doc.qt.io/qt-6/gallery.html
|
||||
.. _Pandoc: https://pandoc.org/
|
||||
.. _Open Document: https://en.wikipedia.org/wiki/OpenDocument
|
||||
.. _Office Open XML: https://en.wikipedia.org/wiki/Office_Open_XML
|
||||
.. _version control: https://en.wikipedia.org/wiki/Version_control
|
||||
|
||||
The main features of novelWriter are listed in the :ref:`a_intro` chapter. In this chapter, we go
|
||||
into some more details on how they are implemented. This is intended as an overview. Later on in
|
||||
@@ -21,14 +23,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 +40,14 @@ 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--left corner of the editor header.
|
||||
|
||||
|
||||
Project Tree and Editor View
|
||||
@@ -53,19 +57,27 @@ 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 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.
|
||||
|
||||
The project tree will highlight with a different background colour the document that is currently
|
||||
open in the editor.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
|
||||
You can now drag and drop documents from the project tree onto the editor or viewer panels to
|
||||
open them.
|
||||
|
||||
|
||||
Novel View and Editor View
|
||||
@@ -73,31 +85,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,38 +121,64 @@ 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
|
||||
When the application is in **Novel Outline View** mode, the tree, editor and viewer are 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.
|
||||
The app will remember your column order and size between sessions, and for each individual project.
|
||||
The app remembers your column order and sizes between sessions, and for each individual project.
|
||||
|
||||
|
||||
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.
|
||||
By default, novelWriter uses a light colour theme. You can also choose between a standard dark
|
||||
theme that have neutral colours, or a series of other included themes, 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` will 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 make it possible to jump between all these GUI elements without having to reach
|
||||
for the mouse or touchpad.
|
||||
|
||||
|
||||
.. _a_breakdown_project:
|
||||
|
||||
Project Layout
|
||||
==============
|
||||
|
||||
This is a brief introduction to how you structure your writing projects. All of this will be
|
||||
This is a brief introduction to how you should structure your writing projects. All of this will be
|
||||
covered in more detail later.
|
||||
|
||||
The main point of novelWriter is that you are free to organise your project documents as you wish
|
||||
@@ -152,12 +191,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.
|
||||
|
||||
@@ -165,12 +204,19 @@ This heading level structure is only taken into account for :term:`novel documen
|
||||
:term:`project notes`, the heading levels have no structural meaning, and you are free to use them
|
||||
however you want. See :ref:`a_struct` and :ref:`a_references` for more details.
|
||||
|
||||
.. versionadded:: 2.0
|
||||
.. tip::
|
||||
|
||||
You can add documents as child items of other documents. This is often more useful than adding
|
||||
folders, since you anyway may want to have the chapter heading in a separate document from your
|
||||
individual scene documents so that you can rearrange scene documents freely without affecting
|
||||
chapter placement.
|
||||
|
||||
.. versionadded:: 2.6
|
||||
|
||||
The heading levels for partitions, chapters and scenes only apply within novelWriter. When you
|
||||
generate your manuscript, chapters are considered as the topmost heading level, with scenes
|
||||
below it. Partitions are inserted as text elements in most formats.
|
||||
|
||||
|
||||
.. _a_breakdown_export:
|
||||
|
||||
@@ -178,25 +224,27 @@ 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
|
||||
various flavours of Markdown.
|
||||
**Build Manuscript** tool. Natively, novelWriter supports `Open Document`_, Microsoft Word Document
|
||||
(known as `Office Open XML`_), HTML5, and various flavours of Markdown. You can also generate a PDF
|
||||
document.
|
||||
|
||||
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 available from the print dialog.
|
||||
importing into word processors if the Open Document or Word Document format isn't suitable. The
|
||||
Open Document format is supported by most office type applications, so is the Word Document format.
|
||||
In addition, printing is also possible.
|
||||
|
||||
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 it 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:
|
||||
@@ -206,8 +254,8 @@ Project Storage
|
||||
|
||||
The files of a novelWriter project are stored in a dedicated project folder. The project structure
|
||||
is kept in a file at the root of this folder called ``nwProject.nwx``. All the document files and
|
||||
associated meta data is stored in other folders below the project folder. For more technical
|
||||
details about what all the files mean and how they're organised, see the :ref:`a_storage` section.
|
||||
associated meta data are stored in other folders below the project folder. For a more technical
|
||||
description of what all the files mean and how they're organised, see the :ref:`a_storage` section.
|
||||
|
||||
This way of storing data was chosen for several reasons.
|
||||
|
||||
@@ -219,17 +267,19 @@ crashes.
|
||||
Secondly, having multiple small files means it is very easy to synchronise them between computers
|
||||
with standard file synchronisation tools.
|
||||
|
||||
Thirdly, if you use version control software to track the changes to your project, the file formats
|
||||
used for the files are well suited. All the JSON documents have line breaks and indents as well,
|
||||
which makes it easier to track them with version control software.
|
||||
Thirdly, if you use `version control`_ software to track the changes to your project, the file
|
||||
formats used for the files are well suited. All the JSON documents have line breaks and indents as
|
||||
well, which makes it easier to track them with version control software.
|
||||
|
||||
.. note::
|
||||
|
||||
Since novelWriter has to keep track of a bunch of files and folders when a project is open, it
|
||||
may not run well on some virtual file systems. A file or folder must be accessible with exactly
|
||||
the path it was saved or created with. An example where this is not the case is the way Google
|
||||
Drive is mapped on Linux Gnome desktops using gvfs/gio.
|
||||
|
||||
.. caution::
|
||||
|
||||
You should not add additional files to the project folder yourself. Nor should you, as a rule,
|
||||
manually edit files within it. If you really must manually edit the text files, e.g. with some
|
||||
automated task you want to perform, you need to rebuild the :term:`Project Index` when you open
|
||||
|
||||
@@ -10,10 +10,14 @@ 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.
|
||||
|
||||
URLs should also be highlighted and become clickable. However, only URLs starting with "http" or
|
||||
"https" are recognised. In the editor, you must hold down the :kbd:`Ctrl` key when clicking a URL
|
||||
to follow it.
|
||||
|
||||
|
||||
.. _a_fmt_hlight:
|
||||
|
||||
@@ -35,7 +39,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 +58,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,26 +69,33 @@ 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 and two, 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
|
||||
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.
|
||||
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 the novel title on the cover page. When building
|
||||
the manuscript, this will use a different styling.
|
||||
|
||||
``##! Title Text``
|
||||
This tells the build tool to not assign a chapter number to this chapter title if automatic
|
||||
chapter numbers are being used. Such titles are useful for a prologue for instance. See
|
||||
:ref:`a_struct_heads_unnum` for more details.
|
||||
chapter numbers are being used. Such titles are useful for prologues and epilogues for instance.
|
||||
See :ref:`a_struct_heads_unnum` for more details.
|
||||
|
||||
``###! Title Text``
|
||||
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
|
||||
colour and font size when the heading is correctly formatted.
|
||||
|
||||
@@ -101,22 +115,30 @@ 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.
|
||||
|
||||
.. tip::
|
||||
|
||||
Non-breaking spaces are for instance the correct type of space to separate a number from its
|
||||
unit. Generally, non-breaking spaces are used to prevent line wrapping algorithms from adding
|
||||
line breaks where they shouldn't.
|
||||
|
||||
.. note::
|
||||
|
||||
You should not manually apply text indentation in your paragraphs in the editor. These can be
|
||||
added automatically in the **Manuscript Build** tool if you want to have them in the manuscript.
|
||||
Each new paragraph should be separated from the previous content by an empty line and with no
|
||||
indentation.
|
||||
|
||||
|
||||
.. _a_fmt_emph:
|
||||
|
||||
Text Emphasis
|
||||
=============
|
||||
Text Emphasis with Markdown
|
||||
===========================
|
||||
|
||||
A minimal set of Markdown text emphasis styles are supported for text paragraphs.
|
||||
|
||||
@@ -124,12 +146,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
|
||||
@@ -146,10 +168,11 @@ 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::
|
||||
|
||||
novelWriter supports standard escape syntax for the emphasis markup characters in case the
|
||||
editor misunderstands your intended usage of them. That is, ``\*``, ``\_`` and ``\~`` will
|
||||
generate a plain ``*``, ``_`` and ``~``, respectively, without interpreting them as part of the
|
||||
@@ -158,8 +181,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
|
||||
@@ -177,14 +200,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
|
||||
|
||||
@@ -194,60 +225,127 @@ 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 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
|
||||
comments are flagged as synopsis or short comments, the last one will be used and the rest
|
||||
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:
|
||||
@@ -255,8 +353,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
|
||||
@@ -281,16 +379,52 @@ Examples:
|
||||
"``> Left/right indented text <``", "The text has both margins increased."
|
||||
|
||||
.. note::
|
||||
|
||||
The text editor will not show the alignment and indentation live. But the viewer will show them
|
||||
when you open the document there. It will of course also be reflected in the document generated
|
||||
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, the markers for all the lines are combined and used for
|
||||
the entire paragraph. For the following text, all lines will be centred:
|
||||
|
||||
.. 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.
|
||||
@@ -298,15 +432,11 @@ 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
|
||||
to the text when exporting to HTML or Open Document. This means that a ``[new page]`` which has
|
||||
no text following it, it will not result in a page break.
|
||||
@@ -320,8 +450,21 @@ 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.
|
||||
|
||||
|
||||
.. _a_fmt_stats:
|
||||
|
||||
Inserting Word Counts in the Text
|
||||
=================================
|
||||
|
||||
The cover page of a manuscript normally has the word count stated on it. Any statistics value
|
||||
collected by novelWriter can be inserted into any document. You can generate the code for this from
|
||||
the **Insert** menu under **Word/Character Count**.
|
||||
|
||||
The value inserted is the actual count for your entire manuscript, so it is not populated until you
|
||||
run the **Manuscript Build** tool. Until then they will show up as "0" in the viewer panel.
|
||||
|
||||
@@ -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
|
||||
@@ -63,6 +63,7 @@ currently selected item. This panel also includes the latest paragraph and chara
|
||||
addition to the word count.
|
||||
|
||||
.. tip::
|
||||
|
||||
If you want to set the label of a document to be the same as a header within it, you can
|
||||
right-click a header in the document when it is open in the editor and select
|
||||
:guilabel:`Set as Document Name` from the context menu.
|
||||
@@ -73,10 +74,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 +85,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 +104,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 +125,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.
|
||||
|
||||
|
||||
@@ -140,29 +141,30 @@ lives in. If it's in a Novel type folder, it uses the "Status" flag, otherwise i
|
||||
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.
|
||||
The project tree allows drag & drop 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 **Manuscript Build** tool.
|
||||
|
||||
.. versionadded:: 2.2
|
||||
|
||||
You can now select multiple items in the project tree by holding down the :kbd:`Ctrl` or
|
||||
:kbd:`Shift` key while selecting items.
|
||||
|
||||
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.
|
||||
|
||||
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 replaced by 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
|
||||
project tree, or by pressing :kbd:`Ctrl+Up` or :kbd:`Ctrl+Down` when they are selected.
|
||||
|
||||
.. tip::
|
||||
|
||||
You can drag and drop documents onto the editor or viewer panel to open them.
|
||||
|
||||
|
||||
.. _a_ui_tree_novel:
|
||||
|
||||
@@ -175,10 +177,11 @@ 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
|
||||
imply restructuring the content of the document files themselves. Any such editing must be done
|
||||
in the project tree. However, you can add new headings to existing documents, or change
|
||||
@@ -194,19 +197,20 @@ 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.
|
||||
|
||||
.. note::
|
||||
|
||||
Since the internal structure of the novel does not depend directly on the folder and document
|
||||
structure of the project tree, this view will not necessarily look the same, depending on how
|
||||
you choose to organise your documents. See the :ref:`a_struct` page for more details.
|
||||
@@ -217,7 +221,8 @@ 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 +231,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`.
|
||||
|
||||
@@ -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
|
||||
@@ -164,6 +165,7 @@ a key or key combination for the inserted content.
|
||||
":kbd:`Ctrl+K`, :kbd:`G`", "Insert a ``@tag`` keyword"
|
||||
":kbd:`Ctrl+K`, :kbd:`H`", "Insert a short description comment"
|
||||
":kbd:`Ctrl+K`, :kbd:`L`", "Insert a ``@location`` keyword"
|
||||
":kbd:`Ctrl+K`, :kbd:`M`", "Insert a ``@mention`` keyword"
|
||||
":kbd:`Ctrl+K`, :kbd:`O`", "Insert an ``@object`` keyword"
|
||||
":kbd:`Ctrl+K`, :kbd:`P`", "Insert a ``@plot`` keyword"
|
||||
":kbd:`Ctrl+K`, :kbd:`S`", "Insert a synopsis comment"
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
||||
@@ -18,20 +18,22 @@ Editing a Document
|
||||
|
||||
A screenshot of the Document Editor panel.
|
||||
|
||||
To edit a document, double-click it in the project tree, or press the :kbd:`Return` key while
|
||||
having it selected. This will open the document in the document editor. The editor uses a
|
||||
Markdown-like syntax for some features, and a novelWriter-specific syntax for others. The syntax
|
||||
format is described in the :ref:`a_fmt` chapter.
|
||||
To edit a document, double-click it in the project tree, press the :kbd:`Return` key while having
|
||||
it selected, or drag and drop it onto the editor panel. This will open the document in the document
|
||||
editor. The editor uses a 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
|
||||
its location there, making it easier to find in a large project.
|
||||
|
||||
@@ -39,13 +41,31 @@ Any :term:`references<reference>` in the editor can be opened in the viewer by m
|
||||
the label and pressing :kbd:`Ctrl+Return`. You can also control-click them with your mouse.
|
||||
|
||||
|
||||
Spell Checking
|
||||
--------------
|
||||
|
||||
A third party library called Enchant is used for spell checking in the editor. The controls for
|
||||
spell checking can be found in the **Tools** menu. You can also set spell checking language in
|
||||
**Project Settings**.
|
||||
|
||||
This spell checking library comes with support for custom words that you can add by selecting
|
||||
"Add Word to Dictionary" from the context menu when a word is highlighted by the spell checker as
|
||||
misspelled. The custom words are managed on a per-project basis, and can the list of words can be
|
||||
edited from the **Project Word List** tool available from the **Tools** menu.
|
||||
|
||||
.. note::
|
||||
|
||||
Generally, spell checking dictionaries are collected from your operating system, but on Windows
|
||||
they are not. See :ref:`a_custom_dict` for how to add spell checking dictionaries on Windows.
|
||||
|
||||
|
||||
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,14 +80,14 @@ 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`, select **View Document** in the menu or context
|
||||
menu, or drag and drop the document onto the viewer panel. 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
|
||||
document with your latest changes. You can also press the reload button in the top--right corner of
|
||||
the viewer panel, next to the close button, to achieve the same thing.
|
||||
However, If you *are* viewing the same document, pressing :kbd:`Ctrl+R` from the editor will update
|
||||
the document with your latest changes. You can also press the reload button in the top--right
|
||||
corner of the viewer panel, next to the close button, to achieve the same thing.
|
||||
|
||||
In the viewer :term:`references<reference>` become clickable links. Clicking them will replace the
|
||||
content of the viewer with the content of the document the reference points to.
|
||||
@@ -75,21 +95,24 @@ 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. The edit button on the right will open the viewed document in the editor.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
@@ -116,10 +139,8 @@ document when reaching the end. There is also a switch that will try to match th
|
||||
when the replacement is made. That is, it will try to keep the word upper, lower, or capitalised to
|
||||
match the word being replaced.
|
||||
|
||||
The regular expression search is somewhat dependant on which version of Qt your system has. If you
|
||||
have Qt 5.13 or higher, there is better support for Unicode symbols in the search.
|
||||
|
||||
.. seealso::
|
||||
|
||||
For more information on the capabilities of the Regular Expression option, see the Qt
|
||||
documentation for the `QRegularExpression <https://doc.qt.io/qt-5/qregularexpression.html>`_
|
||||
class.
|
||||
@@ -131,10 +152,10 @@ 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
|
||||
the :guilabel:`Insert` menu, and via :ref:`a_kb_ins`. You may also be using a `Compose Key`_
|
||||
setup, which means you may not need the auto-replace feature at all.
|
||||
@@ -146,6 +167,22 @@ always accurate. Especially distinguishing between closing single quote and apos
|
||||
tricky for languages that use the same symbol for these, like English does.
|
||||
|
||||
.. tip::
|
||||
|
||||
If the auto-replace feature changes a symbol when you did not want it to change, pressing
|
||||
:kbd:`Ctrl+Z` once after the auto-replacement will undo it without undoing the character
|
||||
you typed before it.
|
||||
|
||||
|
||||
.. _a_ui_edit_dialogue:
|
||||
|
||||
Dialogue Highlighting
|
||||
=====================
|
||||
|
||||
The editor and viewer can optionally highlight character dialogue in your novel documents. By
|
||||
default, this feature is set to display text in double quotes as dialogue. In **Preferences**, you
|
||||
can change this to support various other dialogue markers that instead uses dashes to indicate
|
||||
dialogue, like those used in Spanish, Portuguese, Polish, etc.
|
||||
|
||||
Various styles are supported by changing the settings under "Text Highlighting" in **Preferences**.
|
||||
|
||||
It is also possible to include the dialogue highlighting in your manuscripts.
|
||||
|
||||
3385
i18n/nw_base.ts
3117
i18n/nw_de_DE.ts
3089
i18n/nw_en_US.ts
3054
i18n/nw_es_419.ts
4792
i18n/nw_fr_FR.ts
3083
i18n/nw_it_IT.ts
3159
i18n/nw_ja_JP.ts
3089
i18n/nw_nb_NO.ts
3050
i18n/nw_nl_NL.ts
5102
i18n/nw_pl_PL.ts
Normal file
5793
i18n/nw_pt_BR.ts
5067
i18n/nw_ru_RU.ts
Normal file
4857
i18n/nw_zh_CN.ts
@@ -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")
|
||||
|
||||
@@ -3,10 +3,10 @@ novelWriter – Init File
|
||||
=======================
|
||||
|
||||
File History:
|
||||
Created: 2018-09-22 [0.0.1]
|
||||
Created: 2018-09-22 [0.0.1] main
|
||||
|
||||
This file is a part of novelWriter
|
||||
Copyright 2018–2024, Veronica Berglyd Olsen
|
||||
Copyright (C) 2018 Veronica Berglyd Olsen and novelWriter contributors
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
@@ -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.3"
|
||||
__hexversion__ = "0x020300f0"
|
||||
__date__ = "2024-03-10"
|
||||
__version__ = "2.6"
|
||||
__hexversion__ = "0x020600f0"
|
||||
__date__ = "2025-01-26"
|
||||
__status__ = "Stable"
|
||||
__domain__ = "novelwriter.io"
|
||||
|
||||
@@ -55,12 +60,28 @@ logger = logging.getLogger(__name__)
|
||||
# Main Program
|
||||
##
|
||||
|
||||
# Global config and data singletons
|
||||
# Globals Singletons
|
||||
CONFIG = Config()
|
||||
SHARED = SharedData()
|
||||
|
||||
# ANSI Colours
|
||||
C_RED = "\033[91m"
|
||||
C_GREEN = "\033[92m"
|
||||
C_YELLOW = "\033[93m"
|
||||
C_BLUE = "\033[94m"
|
||||
C_WHITE = "\033[97m"
|
||||
C_END = "\033[0m"
|
||||
|
||||
def main(sysArgs: list | None = None):
|
||||
# Log Formats
|
||||
L_TIME = "[{asctime:}]"
|
||||
L_FILE = "{filename:>18}"
|
||||
L_LINE = "{lineno:<4d}"
|
||||
L_LVLP = "{levelname:8}"
|
||||
L_LVLC = "{levelname:17}"
|
||||
L_TEXT = "{message:}"
|
||||
|
||||
|
||||
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:]
|
||||
@@ -72,6 +93,7 @@ def main(sysArgs: list | None = None):
|
||||
"version",
|
||||
"info",
|
||||
"debug",
|
||||
"color",
|
||||
"style=",
|
||||
"config=",
|
||||
"data=",
|
||||
@@ -93,6 +115,7 @@ def main(sysArgs: list | None = None):
|
||||
" -v, --version Print program version and exit.\n"
|
||||
" --info Print additional runtime information.\n"
|
||||
" --debug Print debug output. Includes --info.\n"
|
||||
" --color Add ANSI colors to log output.\n"
|
||||
" --meminfo Show memory usage information in the status bar.\n"
|
||||
" --style= Sets Qt5 style flag. Defaults to 'Fusion'.\n"
|
||||
" --config= Alternative config file.\n"
|
||||
@@ -101,12 +124,12 @@ def main(sysArgs: list | None = None):
|
||||
|
||||
# Defaults
|
||||
logLevel = logging.WARN
|
||||
logFormat = "{levelname:8} {message:}"
|
||||
fmtFlags = 0b00
|
||||
confPath = None
|
||||
dataPath = None
|
||||
testMode = False
|
||||
qtStyle = "Fusion"
|
||||
cmdOpen = None
|
||||
qtStyle = "Fusion"
|
||||
cmdOpen = None
|
||||
|
||||
# Parse Options
|
||||
try:
|
||||
@@ -130,8 +153,10 @@ def main(sysArgs: list | None = None):
|
||||
logLevel = logging.INFO
|
||||
elif inOpt == "--debug":
|
||||
CONFIG.isDebug = True
|
||||
fmtFlags = fmtFlags | 0b10
|
||||
logLevel = logging.DEBUG
|
||||
logFormat = "[{asctime:}] {filename:>18}:{lineno:<4d} {levelname:8} {message:}"
|
||||
elif inOpt == "--color":
|
||||
fmtFlags = fmtFlags | 0b01
|
||||
elif inOpt == "--style":
|
||||
qtStyle = inArg
|
||||
elif inOpt == "--config":
|
||||
@@ -143,13 +168,32 @@ def main(sysArgs: list | None = None):
|
||||
elif inOpt == "--meminfo":
|
||||
CONFIG.memInfo = True
|
||||
|
||||
if fmtFlags & 0b01:
|
||||
# This will overwrite the default level names, and also ensure that
|
||||
# they can be converted back to integer levels
|
||||
logging.addLevelName(logging.DEBUG, f"{C_BLUE}DEBUG{C_END}")
|
||||
logging.addLevelName(logging.INFO, f"{C_GREEN}INFO{C_END}")
|
||||
logging.addLevelName(logging.WARNING, f"{C_YELLOW}WARNING{C_END}")
|
||||
logging.addLevelName(logging.ERROR, f"{C_RED}ERROR{C_END}")
|
||||
logging.addLevelName(logging.CRITICAL, f"{C_RED}CRITICAL{C_END}")
|
||||
|
||||
# Determine Log Format
|
||||
if fmtFlags == 0b00:
|
||||
logFmt = f"{L_LVLP} {L_TEXT}"
|
||||
elif fmtFlags == 0b01:
|
||||
logFmt = f"{L_LVLC} {L_TEXT}"
|
||||
elif fmtFlags == 0b10:
|
||||
logFmt = f"{L_TIME} {L_FILE}:{L_LINE} {L_LVLP} {L_TEXT}"
|
||||
elif fmtFlags == 0b11:
|
||||
logFmt = f"{L_TIME} {C_BLUE}{L_FILE}{C_END}:{C_WHITE}{L_LINE}{C_END} {L_LVLC} {L_TEXT}"
|
||||
|
||||
# Setup Logging
|
||||
pkgLogger = logging.getLogger(__package__)
|
||||
pkgLogger.setLevel(logLevel)
|
||||
if len(pkgLogger.handlers) == 0:
|
||||
# Make sure we only create one logger (mostly an issue with tests)
|
||||
cHandle = logging.StreamHandler()
|
||||
cHandle.setFormatter(logging.Formatter(fmt=logFormat, style="{"))
|
||||
cHandle.setFormatter(logging.Formatter(fmt=logFmt, style="{"))
|
||||
pkgLogger.addHandler(cHandle)
|
||||
|
||||
logger.info("Starting novelWriter %s (%s) %s", __version__, __hexversion__, __date__)
|
||||
@@ -157,19 +201,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 +231,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
|
||||
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)
|
||||
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())
|
||||
|
||||
@@ -1,18 +1,20 @@
|
||||
{
|
||||
"Synopsis": "Synopsis",
|
||||
"Short Description": "Kurzbeschreibung",
|
||||
"Footnotes": "Fußnoten",
|
||||
"Comment": "Kommentar",
|
||||
"Notes": "Notizen",
|
||||
"Tag": "Schlagwort",
|
||||
"Point of View": "Perspektive",
|
||||
"Focus": "Mittelpunkt",
|
||||
"Focus": "Fokus",
|
||||
"Characters": "Charaktere",
|
||||
"Plot": "Handlungen",
|
||||
"Plot": "Handlung",
|
||||
"Timeline": "Zeitleiste",
|
||||
"Locations": "Schauplätze",
|
||||
"Objects": "Objekte",
|
||||
"Entities": "Organisationen",
|
||||
"Custom": "Benutzerdefiniert",
|
||||
"New Page": "Neue Seite",
|
||||
"0": "Null",
|
||||
"1": "Eins",
|
||||
"2": "Zwei",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"Synopsis": "Synopsis",
|
||||
"Short Description": "Short Description",
|
||||
"Footnotes": "Footnotes",
|
||||
"Comment": "Comment",
|
||||
"Notes": "Notes",
|
||||
"Tag": "Tag",
|
||||
@@ -13,6 +14,7 @@
|
||||
"Objects": "Objects",
|
||||
"Entities": "Entities",
|
||||
"Custom": "Custom",
|
||||
"New Page": "New Page",
|
||||
"0": "Zero",
|
||||
"1": "One",
|
||||
"2": "Two",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"Synopsis": "Synopsis",
|
||||
"Short Description": "Short Description",
|
||||
"Footnotes": "Footnotes",
|
||||
"Comment": "Comment",
|
||||
"Notes": "Notes",
|
||||
"Tag": "Tag",
|
||||
@@ -13,6 +14,7 @@
|
||||
"Objects": "Objects",
|
||||
"Entities": "Entities",
|
||||
"Custom": "Custom",
|
||||
"New Page": "New Page",
|
||||
"0": "Zero",
|
||||
"1": "One",
|
||||
"2": "Two",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"Synopsis": "Sinossi",
|
||||
"Short Description": "Breve descrizione",
|
||||
"Footnotes": "Note a piè pagina",
|
||||
"Comment": "Commento",
|
||||
"Notes": "Note",
|
||||
"Tag": "Etichetta",
|
||||
@@ -13,6 +14,7 @@
|
||||
"Objects": "Oggetti",
|
||||
"Entities": "Enti",
|
||||
"Custom": "Personalizzato",
|
||||
"New Page": "Nuova pagina",
|
||||
"0": "Zero",
|
||||
"1": "Uno",
|
||||
"2": "Due",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"Synopsis": "あらすじ",
|
||||
"Short Description": "短い説明",
|
||||
"Footnotes": "脚注",
|
||||
"Comment": "コメント ",
|
||||
"Notes": "ノート",
|
||||
"Tag": "タグ",
|
||||
@@ -13,6 +14,7 @@
|
||||
"Objects": "オブジェクト",
|
||||
"Entities": "エンティティ",
|
||||
"Custom": "カスタム",
|
||||
"New Page": "新規ページ",
|
||||
"0": "零",
|
||||
"1": "一",
|
||||
"2": "二",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"Synopsis": "Sammendrag",
|
||||
"Short Description": "Kort beskrivelse",
|
||||
"Footnotes": "Fotnoter",
|
||||
"Comment": "Kommentar",
|
||||
"Notes": "Notat",
|
||||
"Tag": "Knagg",
|
||||
@@ -13,6 +14,7 @@
|
||||
"Objects": "Objekter",
|
||||
"Entities": "Enheter",
|
||||
"Custom": "Annet",
|
||||
"New Page": "Ny side",
|
||||
"0": "null",
|
||||
"1": "én",
|
||||
"2": "to",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"Synopsis": "Synopsis",
|
||||
"Short Description": "Korte beschrijving",
|
||||
"Footnotes": "Voetnoten",
|
||||
"Comment": "Opmerking",
|
||||
"Notes": "Notities",
|
||||
"Tag": "Label",
|
||||
@@ -13,6 +14,7 @@
|
||||
"Objects": "Objecten",
|
||||
"Entities": "Entiteiten",
|
||||
"Custom": "Aangepast",
|
||||
"New Page": "Nieuwe pagina",
|
||||
"0": "nul",
|
||||
"1": "één",
|
||||
"2": "twee",
|
||||
|
||||
118
novelwriter/assets/i18n/project_pl_PL.json
Normal file
@@ -0,0 +1,118 @@
|
||||
{
|
||||
"Synopsis": "Streszczenie",
|
||||
"Short Description": "Krótki opis",
|
||||
"Footnotes": "Przypisy",
|
||||
"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",
|
||||
"New Page": "Nowa strona",
|
||||
"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"
|
||||
}
|
||||
@@ -1,7 +1,8 @@
|
||||
{
|
||||
"Synopsis": "Sinopse",
|
||||
"Short Description": "Descrição breve",
|
||||
"Comment": "Comentários",
|
||||
"Footnotes": "Notas de rodapé",
|
||||
"Comment": "Comentário",
|
||||
"Notes": "Notas",
|
||||
"Tag": "Etiqueta",
|
||||
"Point of View": "Ponto de vista",
|
||||
@@ -13,6 +14,7 @@
|
||||
"Objects": "Objetos",
|
||||
"Entities": "Entidades",
|
||||
"Custom": "Outros",
|
||||
"New Page": "Nova página",
|
||||
"0": "Zero",
|
||||
"1": "Um",
|
||||
"2": "Dois",
|
||||
@@ -30,87 +32,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"
|
||||
}
|
||||
|
||||
@@ -1,7 +1,18 @@
|
||||
{
|
||||
"Synopsis": "Сводка",
|
||||
"Short Description": "Краткое описание",
|
||||
"Comment": "Комментарий",
|
||||
"Notes": "Заметки",
|
||||
"Tag": "Тэг",
|
||||
"Point of View": "Точка зрения",
|
||||
"Focus": "Фокус",
|
||||
"Characters": "Персонажей",
|
||||
"Plot": "Сюжет",
|
||||
"Timeline": "Хронология",
|
||||
"Locations": "Локации",
|
||||
"Objects": "Объекты",
|
||||
"Entities": "Сущности",
|
||||
"Custom": "Другое",
|
||||
"0": "Ноль",
|
||||
"1": "Один",
|
||||
"2": "Два",
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
{
|
||||
"Synopsis": "概要",
|
||||
"Short Description": "简短描述",
|
||||
"Footnotes": "注释",
|
||||
"Comment": "注释",
|
||||
"Notes": "笔记",
|
||||
"Tag": "标签",
|
||||
@@ -13,6 +14,7 @@
|
||||
"Objects": "物品",
|
||||
"Entities": "条目",
|
||||
"Custom": "自定义",
|
||||
"New Page": "新建页面",
|
||||
"0": "零",
|
||||
"1": "一",
|
||||
"2": "二",
|
||||
|
||||
4
novelwriter/assets/icons/none.svg
Normal 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 |
@@ -44,6 +44,7 @@ cls_template = mixed_document-new.svg
|
||||
cls_timeline = typ_calendar.svg
|
||||
cls_trash = typ_trash.svg
|
||||
cls_world = typ_location.svg
|
||||
copy = mixed_copy.svg
|
||||
cross = typ_times.svg
|
||||
document = typ_document.svg
|
||||
down = typ_chevron-down.svg
|
||||
@@ -53,14 +54,20 @@ fmt_bold = nw_tb-bold.svg
|
||||
fmt_bold-md = nw_tb-bold-md.svg
|
||||
fmt_italic = nw_tb-italic.svg
|
||||
fmt_italic-md = nw_tb-italic-md.svg
|
||||
fmt_mark = nw_tb-mark.svg
|
||||
fmt_strike = nw_tb-strike.svg
|
||||
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
|
||||
margin_bottom = mixed_margin-bottom.svg
|
||||
margin_left = mixed_margin-left.svg
|
||||
margin_right = mixed_margin-right.svg
|
||||
margin_top = mixed_margin-top.svg
|
||||
maximise = typ_arrow-maximise.svg
|
||||
menu = typ_th-dot-menu.svg
|
||||
minimise = typ_arrow-minimise.svg
|
||||
@@ -77,6 +84,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
|
||||
@@ -90,6 +98,8 @@ search_regex = nw_search-regex.svg
|
||||
search_replace = mixed_search-replace.svg
|
||||
search_word = nw_search-word.svg
|
||||
settings = typ_cog.svg
|
||||
size_height = mixed_size-height.svg
|
||||
size_width = mixed_size-width.svg
|
||||
star = typ_star.svg
|
||||
status_idle = typ_media-pause-grey.svg
|
||||
status_lang = typ_globe-grey.svg
|
||||
@@ -98,13 +108,17 @@ status_stats = typ_chart-bar-grey.svg
|
||||
status_time = typ_stopwatch-grey.svg
|
||||
sticky-off = typ_pin-outline.svg
|
||||
sticky-on = typ_pin.svg
|
||||
toolbar = nw_toolbar.svg
|
||||
unchecked = mixed_input-unchecked.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_editor = mixed_edit.svg
|
||||
view_novel = typ_book-grey.svg
|
||||
view_outline = typ_puzzle-outline.svg
|
||||
view_search = typ_search-grey.svg
|
||||
|
||||
deco_doc_h0 = nw_deco-h0.svg
|
||||
deco_doc_h0_n = nw_deco-h0.svg
|
||||
|
||||
4
novelwriter/assets/icons/typicons_dark/mixed_copy.svg
Normal 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="m7.8824 2c-1.2988 0-2.3529 1.0541-2.3529 2.3529v2.3529h-1.1765c-1.2988 0-2.3529 1.0541-2.3529 2.3529v10.588c0 1.2988 1.0541 2.3529 2.3529 2.3529h10.588c1.2988 0 2.3529-1.0541 2.3529-2.3529v-1.1765h2.3529c1.2988 0 2.3529-1.0541 2.3529-2.3529v-11.765c0-1.2988-1.0541-2.3529-2.3529-2.3529zm0 2.3529h11.765v11.765h-2.3529v-7.0588c0-1.2988-1.0541-2.3529-2.3529-2.3529h-7.0588zm-3.5294 4.7059h10.588c0.32353 0 0-0.32353 0 0v10.588h-10.588v-9.8943z" fill="#69c" stroke-width="1.1765"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 633 B |
@@ -0,0 +1,6 @@
|
||||
<?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">
|
||||
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
||||
<rect x="2" y="18" width="20" height="4" rx="1" ry="1" fill="#848484" stroke-linecap="round" stroke-width="2"/>
|
||||
<path d="m18.414 8.5959c0.78104 0.79361 0.78104 2.0837 0 2.8773l-6.4141 6.5268-6.4141-6.5268c-0.391-0.3968-0.58601-0.91769-0.58601-1.4386 0-0.52092 0.195-1.0418 0.58601-1.4386 0.78104-0.79464 2.047-0.79464 2.8281 0l3.5861 3.6475 3.5861-3.6475c0.78104-0.79464 2.047-0.79464 2.8281 0z" fill="#69c" stroke-width="1.0087"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 713 B |
@@ -0,0 +1,6 @@
|
||||
<?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">
|
||||
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
||||
<rect x="2" y="2" width="4" height="20" rx="1" ry="1" fill="#848484" stroke-linecap="round" stroke-width="2"/>
|
||||
<path d="m15.404 18.5c-0.79361 0.78104-2.0837 0.78104-2.8773 0l-6.5268-6.4141 6.5268-6.4141c0.3968-0.391 0.91769-0.58601 1.4386-0.58601 0.52092 0 1.0418 0.195 1.4386 0.58601 0.79464 0.78104 0.79464 2.047 0 2.8281l-3.6475 3.5861 3.6475 3.5861c0.79464 0.78104 0.79464 2.047 0 2.8281z" fill="#69c" stroke-width="1.0087"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 711 B |
@@ -0,0 +1,6 @@
|
||||
<?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">
|
||||
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
||||
<rect x="18" y="2" width="4" height="20" rx="1" ry="1" fill="#848484" stroke-linecap="round" stroke-width="2"/>
|
||||
<path d="m8.5959 18.5c0.79361 0.78104 2.0837 0.78104 2.8773 0l6.5268-6.4141-6.5268-6.4141c-0.3968-0.391-0.91769-0.58601-1.4386-0.58601-0.52092 0-1.0418 0.195-1.4386 0.58601-0.79464 0.78104-0.79464 2.047 0 2.8281l3.6475 3.5861-3.6475 3.5861c-0.79464 0.78104-0.79464 2.047 0 2.8281z" fill="#69c" stroke-width="1.0087"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 711 B |
@@ -0,0 +1,6 @@
|
||||
<?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">
|
||||
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
||||
<rect x="2" y="2" width="20" height="4" rx="1" ry="1" fill="#848484" stroke-linecap="round" stroke-width="2"/>
|
||||
<path d="m18.414 15.404c0.78104-0.79361 0.78104-2.0837 0-2.8773l-6.4141-6.5268-6.4141 6.5268c-0.391 0.3968-0.58601 0.91769-0.58601 1.4386 0 0.52092 0.195 1.0418 0.58601 1.4386 0.78104 0.79464 2.047 0.79464 2.8281 0l3.5861-3.6475 3.5861 3.6475c0.78104 0.79464 2.047 0.79464 2.8281 0z" fill="#69c" stroke-width="1.0087"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 712 B |
@@ -0,0 +1,6 @@
|
||||
<?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">
|
||||
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".14902" stroke-linecap="round" stroke-width="2"/>
|
||||
<path d="m18.414 10.404c0.78104-0.79361 0.78104-2.0837 0-2.8773l-6.4141-6.5268-6.4141 6.5268c-0.391 0.3968-0.58601 0.91769-0.58601 1.4386 0 0.52092 0.195 1.0418 0.58601 1.4386 0.78104 0.79464 2.047 0.79464 2.8281 0l3.5861-3.6475 3.5861 3.6475c0.78104 0.79464 2.047 0.79464 2.8281 0z" fill="#69c" stroke-width="1.0087"/>
|
||||
<path d="m18.414 13.596c0.78104 0.79361 0.78104 2.0837 0 2.8773l-6.4141 6.5268-6.4141-6.5268c-0.391-0.3968-0.58601-0.91769-0.58601-1.4386 0-0.52092 0.195-1.0418 0.58601-1.4386 0.78104-0.79464 2.047-0.79464 2.8281 0l3.5861 3.6475 3.5861-3.6475c0.78104-0.79464 2.047-0.79464 2.8281 0z" fill="#69c" stroke-width="1.0087"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 921 B |
@@ -0,0 +1,6 @@
|
||||
<?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">
|
||||
<rect x="2" y="2" width="20" height="20" rx="1" ry="1" fill="#e6e6e6" fill-opacity=".15" stroke-linecap="round" stroke-width="2"/>
|
||||
<path d="m13.596 18.414c0.79361 0.78104 2.0837 0.78104 2.8773 0l6.5268-6.4141-6.5268-6.4141c-0.3968-0.391-0.91769-0.58601-1.4386-0.58601-0.52092 0-1.0418 0.195-1.4386 0.58601-0.79464 0.78104-0.79464 2.047 0 2.8281l3.6475 3.5861-3.6475 3.5861c-0.79464 0.78104-0.79464 2.047 0 2.8281z" fill="#69c" stroke-width="1.0087"/>
|
||||
<path d="m10.404 18.414c-0.79361 0.78104-2.0837 0.78104-2.8773 0l-6.5268-6.4141 6.5268-6.4141c0.3968-0.391 0.91769-0.58601 1.4386-0.58601 0.52092 0 1.0418 0.195 1.4386 0.58601 0.79464 0.78104 0.79464 2.047 0 2.8281l-3.6475 3.5861 3.6475 3.5861c0.79464 0.78104 0.79464 2.047 0 2.8281z" fill="#69c" stroke-width="1.0087"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 919 B |
4
novelwriter/assets/icons/typicons_dark/nw_font.svg
Normal 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 |
4
novelwriter/assets/icons/typicons_dark/nw_quote.svg
Normal 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 |
7
novelwriter/assets/icons/typicons_dark/nw_tb-mark.svg
Normal file
@@ -0,0 +1,7 @@
|
||||
<?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">
|
||||
<rect x=".26458" y=".79375" width="5.8208" height="4.7625" fill="#ffff84" fill-opacity=".8" stroke-linecap="round" stroke-width=".1354"/>
|
||||
<path d="m1.3229 5.2917v-4.2333h0.98087l0.6397 1.8829q0.060924 0.18829 0.11576 0.38957 0.054831 0.19479 0.11576 0.38957h0.024369q0.060924-0.19479 0.10966-0.38957 0.054831-0.20128 0.11576-0.38957l0.62752-1.8829h0.97478v4.2333h-0.81638v-1.5518q0-0.15583 0.012185-0.34412 0.012185-0.18829 0.030462-0.37658 0.018277-0.19479 0.036554-0.37658 0.018277-0.18829 0.036554-0.34412h-0.02437l-0.3229 1.0064-0.56659 1.6167h-0.49348l-0.56659-1.6167-0.3168-1.0064h-0.024369q0.018277 0.15583 0.036554 0.34412 0.018277 0.1818 0.036554 0.37658 0.018277 0.18829 0.030462 0.37658 0.012185 0.18829 0.012185 0.34412v1.5518z" fill="#808080" stroke-linecap="round" stroke-width=".11793"/>
|
||||
<path d="m4.9555 5.5562v-0.43195h0.54619v-3.8986h-0.54619v-0.43195h1.1299v4.7624z" fill="#69c" stroke-width="1.1186"/>
|
||||
<path d="m0.26458 5.5562v-4.7624h1.1299v0.43195h-0.54083v3.8986h0.54083v0.43195z" fill="#69c" stroke-width="1.1186"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
5
novelwriter/assets/icons/typicons_dark/nw_toolbar.svg
Normal file
@@ -0,0 +1,5 @@
|
||||
<?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">
|
||||
<rect x="8" y="2" width="8" height="8" rx="1" ry="1" fill="none" stroke="#69c" stroke-linecap="round" stroke-width="2"/>
|
||||
<rect x="8" y="14" width="8" height="8" rx="1" ry="1" fill="none" stroke="#69c" stroke-linecap="round" stroke-width="2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 389 B |
@@ -1,4 +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="m10.837 12.256h-6.8373v-6.8347c0.010667-1.5131 0.89467-1.877 1.964-0.80652l1.5387 1.5437c1.3533-1.0598 3.0093-1.6397 4.7547-1.6397 2.0667 0 4.012 0.80518 5.472 2.2676 1.4653 1.4557 2.2707 3.4034 2.2707 5.4696 0 2.0703-0.80533 4.0153-2.268 5.475-1.4627 1.4624-3.4067 2.2689-5.4747 2.2689-2.0667 0-4.012-0.80652-5.4747-2.2702-0.39467-0.39593-0.744-0.82784-1.04-1.2864-0.46267-0.7212-0.25333-1.6797 0.46667-2.1396 0.71867-0.46125 1.6773-0.25195 2.1387 0.46658 0.17733 0.27595 0.38933 0.53323 0.624 0.77319 0.87867 0.87717 2.0453 1.3597 3.2853 1.3597s2.4067-0.48124 3.2853-1.3597c0.876-0.87717 1.36-2.0436 1.36-3.2861 0-1.2398-0.48267-2.4062-1.36-3.2807-0.87867-0.87717-2.0453-1.3611-3.2853-1.3611-0.91733 0-1.7947 0.26795-2.5453 0.76252l1.9307 1.9343c1.0707 1.0691 0.70667 1.9436-0.80533 1.9436z" fill="#9c9" stroke-width="1.3332"/>
|
||||
<path d="m10.692 12.288h-7.692v-7.689c0.012-1.7022 1.0065-2.1116 2.2095-0.90734l1.731 1.7367c1.5225-1.1923 3.3855-1.8447 5.349-1.8447 2.325 0 4.5135 0.90583 6.156 2.5511 1.6485 1.6377 2.5545 3.8288 2.5545 6.1533 0 2.3291-0.906 4.5172-2.5515 6.1594-1.6455 1.6452-3.8325 2.5525-6.159 2.5525-2.325 0-4.5135-0.90734-6.159-2.554-0.444-0.44542-0.837-0.93132-1.17-1.4472-0.5205-0.81135-0.285-1.8897 0.525-2.4071 0.8085-0.51891 1.887-0.28344 2.406 0.5249 0.1995 0.31044 0.438 0.59988 0.702 0.86984 0.9885 0.98682 2.301 1.5297 3.696 1.5297 1.395 0 2.7075-0.5414 3.696-1.5297 0.9855-0.98682 1.53-2.2991 1.53-3.6969 0-1.3948-0.543-2.707-1.53-3.6908-0.9885-0.98682-2.301-1.5312-3.696-1.5312-1.032 0-2.019 0.30144-2.8635 0.85784l2.172 2.1761c1.2045 1.2027 0.795 2.1866-0.906 2.1866z" fill="#9c9" stroke-width="1.3332"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 984 B After Width: | Height: | Size: 952 B |
@@ -1,4 +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="m13.163 12.256h6.8373v-6.8347c-0.010667-1.5131-0.89467-1.877-1.964-0.80652l-1.5387 1.5437c-1.3533-1.0598-3.0093-1.6397-4.7547-1.6397-2.0667 0-4.012 0.80518-5.472 2.2676-1.4653 1.4557-2.2707 3.4034-2.2707 5.4696 0 2.0703 0.80533 4.0153 2.268 5.475 1.4627 1.4624 3.4067 2.2689 5.4747 2.2689 2.0667 0 4.012-0.80652 5.4747-2.2702 0.39467-0.39593 0.744-0.82784 1.04-1.2864 0.46267-0.7212 0.25333-1.6797-0.46667-2.1396-0.71867-0.46125-1.6773-0.25195-2.1387 0.46658-0.17733 0.27595-0.38933 0.53323-0.624 0.77319-0.87867 0.87717-2.0453 1.3597-3.2853 1.3597s-2.4067-0.48124-3.2853-1.3597c-0.876-0.87717-1.36-2.0436-1.36-3.2861 0-1.2398 0.48267-2.4062 1.36-3.2807 0.87867-0.87717 2.0453-1.3611 3.2853-1.3611 0.91733 0 1.7947 0.26795 2.5453 0.76252l-1.9307 1.9343c-1.0707 1.0691-0.70667 1.9436 0.80533 1.9436z" fill="#9c9" stroke-width="1.3332"/>
|
||||
<path d="m13.308 12.288h7.692v-7.689c-0.012-1.7022-1.0065-2.1116-2.2095-0.90734l-1.731 1.7367c-1.5225-1.1923-3.3855-1.8447-5.349-1.8447-2.325 0-4.5135 0.90583-6.156 2.5511-1.6485 1.6377-2.5545 3.8288-2.5545 6.1533 0 2.3291 0.906 4.5172 2.5515 6.1594 1.6455 1.6452 3.8325 2.5525 6.159 2.5525 2.325 0 4.5135-0.90734 6.159-2.554 0.444-0.44542 0.837-0.93132 1.17-1.4472 0.5205-0.81135 0.285-1.8897-0.525-2.4071-0.8085-0.51891-1.887-0.28344-2.406 0.5249-0.1995 0.31044-0.438 0.59988-0.702 0.86984-0.9885 0.98682-2.301 1.5297-3.696 1.5297-1.395 0-2.7075-0.5414-3.696-1.5297-0.9855-0.98682-1.53-2.2991-1.53-3.6969 0-1.3948 0.543-2.707 1.53-3.6908 0.9885-0.98682 2.301-1.5312 3.696-1.5312 1.032 0 2.019 0.30144 2.8635 0.85784l-2.172 2.1761c-1.2045 1.2027-0.795 2.1866 0.906 2.1866z" fill="#9c9" stroke-width="1.3332"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 990 B After Width: | Height: | Size: 956 B |
@@ -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="m20.547 14.707-0.7017-0.703-0.98054-0.98185c0.29717-0.90068 0.46343-1.859 0.46343-2.8578 0-5.0519-4.112-9.1639-9.1639-9.1639s-9.1639 4.112-9.1639 9.1639c0 5.0519 4.112 9.1639 9.1639 9.1639 0.99887 0 1.9585-0.16626 2.8591-0.46343l0.98185 0.98054 1.9794 1.9768 0.07986 0.07986 0.08378 0.072c0.78679 0.66242 1.7647 1.0264 2.7544 1.0264 2.2596 0 4.0976-1.838 4.0976-4.0989 0-1.0997-0.4294-2.1313-1.2096-2.9037zm-16.93-4.5427c0-3.6093 2.9364-6.5457 6.5457-6.5457s6.5457 2.9364 6.5457 6.5457-2.9364 6.5457-6.5457 6.5457-6.5457-2.9364-6.5457-6.5457z" fill="#aeaeae" stroke-width="1.3091"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 737 B |
@@ -1,4 +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="m19.041 4.9586c-1.0144-1.0157-2.6635-1.0157-3.678 0l-3.3632 3.3632-3.3632-3.3632c-1.0144-1.0157-2.6635-1.0157-3.678 0-1.0157 1.0157-1.0157 2.6622 0 3.678l3.3619 3.3632-3.3619 3.3632c-1.0157 1.0157-1.0157 2.6622 0 3.678 0.50722 0.50852 1.1731 0.76212 1.839 0.76212 0.66588 0 1.3318-0.25361 1.839-0.76212l3.3632-3.3632 3.3632 3.3632c0.50722 0.50852 1.1731 0.76212 1.839 0.76212 0.66588 0 1.3318-0.25361 1.839-0.76212 1.0157-1.0157 1.0157-2.6622 0-3.678l-3.3619-3.3632 3.3619-3.3632c1.0157-1.0157 1.0157-2.6622 0-3.678z" fill="#d64848" stroke-width="1.3006"/>
|
||||
<path d="m20.121 3.8786c-1.17-1.1715-3.072-1.1715-4.2421 0l-3.879 3.8791-3.879-3.8791c-1.17-1.1715-3.072-1.1715-4.2421 0-1.1715 1.1715-1.1715 3.0705 0 4.2421l3.8776 3.879-3.8776 3.879c-1.1715 1.1715-1.1715 3.0705 0 4.2421 0.58502 0.58652 1.353 0.87902 2.1211 0.87902 0.76801 0 1.5361-0.29251 2.1211-0.87902l3.879-3.879 3.879 3.879c0.58502 0.58652 1.353 0.87902 2.1211 0.87902 0.76801 0 1.5361-0.29251 2.1211-0.87902 1.1715-1.1715 1.1715-3.0705 0-4.2421l-3.8776-3.879 3.8776-3.879c1.1715-1.1715 1.1715-3.0705 0-4.2421z" fill="#d64848" stroke-width="1.5001"/>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 711 B After Width: | Height: | Size: 703 B |
@@ -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 |
@@ -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 |
@@ -44,6 +44,7 @@ cls_template = mixed_document-new.svg
|
||||
cls_timeline = typ_calendar.svg
|
||||
cls_trash = typ_trash.svg
|
||||
cls_world = typ_location.svg
|
||||
copy = mixed_copy.svg
|
||||
cross = typ_times.svg
|
||||
document = typ_document.svg
|
||||
down = typ_chevron-down.svg
|
||||
@@ -53,14 +54,20 @@ fmt_bold = nw_tb-bold.svg
|
||||
fmt_bold-md = nw_tb-bold-md.svg
|
||||
fmt_italic = nw_tb-italic.svg
|
||||
fmt_italic-md = nw_tb-italic-md.svg
|
||||
fmt_mark = nw_tb-mark.svg
|
||||
fmt_strike = nw_tb-strike.svg
|
||||
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
|
||||
margin_bottom = mixed_margin-bottom.svg
|
||||
margin_left = mixed_margin-left.svg
|
||||
margin_right = mixed_margin-right.svg
|
||||
margin_top = mixed_margin-top.svg
|
||||
maximise = typ_arrow-maximise.svg
|
||||
menu = typ_th-dot-menu.svg
|
||||
minimise = typ_arrow-minimise.svg
|
||||
@@ -77,6 +84,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
|
||||
@@ -90,6 +98,8 @@ search_regex = nw_search-regex.svg
|
||||
search_replace = mixed_search-replace.svg
|
||||
search_word = nw_search-word.svg
|
||||
settings = typ_cog.svg
|
||||
size_height = mixed_size-height.svg
|
||||
size_width = mixed_size-width.svg
|
||||
star = typ_star.svg
|
||||
status_idle = typ_media-pause-grey.svg
|
||||
status_lang = typ_globe-grey.svg
|
||||
@@ -98,13 +108,17 @@ status_stats = typ_chart-bar-grey.svg
|
||||
status_time = typ_stopwatch-grey.svg
|
||||
sticky-off = typ_pin-outline.svg
|
||||
sticky-on = typ_pin.svg
|
||||
toolbar = nw_toolbar.svg
|
||||
unchecked = mixed_input-unchecked.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_editor = mixed_edit.svg
|
||||
view_novel = typ_book-grey.svg
|
||||
view_outline = typ_puzzle-outline.svg
|
||||
view_search = typ_search-grey.svg
|
||||
|
||||
deco_doc_h0 = nw_deco-h0.svg
|
||||
deco_doc_h0_n = nw_deco-h0.svg
|
||||
|
||||
4
novelwriter/assets/icons/typicons_light/mixed_copy.svg
Normal 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="m7.8824 2c-1.2988 0-2.3529 1.0541-2.3529 2.3529v2.3529h-1.1765c-1.2988 0-2.3529 1.0541-2.3529 2.3529v10.588c0 1.2988 1.0541 2.3529 2.3529 2.3529h10.588c1.2988 0 2.3529-1.0541 2.3529-2.3529v-1.1765h2.3529c1.2988 0 2.3529-1.0541 2.3529-2.3529v-11.765c0-1.2988-1.0541-2.3529-2.3529-2.3529zm0 2.3529h11.765v11.765h-2.3529v-7.0588c0-1.2988-1.0541-2.3529-2.3529-2.3529h-7.0588zm-3.5294 4.7059h10.588c0.32353 0 0-0.32353 0 0v10.588h-10.588v-9.8943z" fill="#4271ae" stroke-width="1.1765"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 636 B |