Compare commits
2952 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
6c9c1ec088 | ||
|
|
88ba3b3dfe | ||
|
|
9e4ac8f9d4 | ||
|
|
656a5ada61 | ||
|
|
96ac87d5ed | ||
|
|
5597c0e172 | ||
|
|
25c4cf695f | ||
|
|
8db71c432d | ||
|
|
e1b92d14c3 | ||
|
|
1c4fd4ea5a | ||
|
|
b04386b183 | ||
|
|
4b2c01dbf1 | ||
|
|
134cf45199 | ||
|
|
a0ca78b4fd | ||
|
|
062b336105 | ||
|
|
2c5947eeaa | ||
|
|
f9fd3512b7 | ||
|
|
98c62f0912 | ||
|
|
a3f63530d7 | ||
|
|
788f46bd7f | ||
|
|
2097eaeeaa | ||
|
|
693f3fb656 | ||
|
|
25697b0957 | ||
|
|
76d67dd0aa | ||
|
|
e3997b53aa | ||
|
|
c7bfb1b21e | ||
|
|
2cde1b845e | ||
|
|
27f3b8e0f2 | ||
|
|
3f0024a6a3 | ||
|
|
234b189e3c | ||
|
|
21dd254831 | ||
|
|
2ed3666b9f | ||
|
|
ebe1998b0b | ||
|
|
3f0de93438 | ||
|
|
6d411e17a6 | ||
|
|
003615c3be | ||
|
|
9a1947c0f5 | ||
|
|
5fbcca35a5 | ||
|
|
c88fbf629d | ||
|
|
711766cf52 | ||
|
|
1a6072be2c | ||
|
|
9282b39f2a | ||
|
|
b3ae1774a8 | ||
|
|
f3b6be3100 | ||
|
|
394cdd5dad | ||
|
|
e236fb30dc | ||
|
|
a07177c153 | ||
|
|
d2a0ff88a6 | ||
|
|
08e67b0190 | ||
|
|
eb5a98f482 | ||
|
|
ccd3122633 | ||
|
|
f17e1f38de | ||
|
|
1ab35b5b63 | ||
|
|
fd1eaa8c47 | ||
|
|
ce53971836 | ||
|
|
d827b5204b | ||
|
|
09e0d28115 | ||
|
|
2a40913105 | ||
|
|
b03603cc9b | ||
|
|
5e41dd9a92 | ||
|
|
c1272974ed | ||
|
|
72e740ccdf | ||
|
|
a5a2b2c68e | ||
|
|
654ff3e81d | ||
|
|
a2a1e2e6d0 | ||
|
|
786c1f7d54 | ||
|
|
38c279b98f | ||
|
|
b126b8cf0a | ||
|
|
a3b60dad0a | ||
|
|
ee5f340fe2 | ||
|
|
dd61897d11 | ||
|
|
a50e79b155 | ||
|
|
8abcada86e | ||
|
|
ef29571bd9 | ||
|
|
6f8109609c | ||
|
|
05ddca043a | ||
|
|
da3747c5f5 | ||
|
|
2322923c4a | ||
|
|
c5baa8d359 | ||
|
|
a7e2b51225 | ||
|
|
0413684150 | ||
|
|
b047695501 | ||
|
|
52197149a7 | ||
|
|
4582ef8b83 | ||
|
|
0077326274 | ||
|
|
36fd64e1a3 | ||
|
|
552249d145 | ||
|
|
7080703481 | ||
|
|
4c7fbdb77a | ||
|
|
0c249d2010 | ||
|
|
3896d0fbf4 | ||
|
|
b3018bb392 | ||
|
|
d67cef2611 | ||
|
|
f9df78a8d4 | ||
|
|
12d7512441 | ||
|
|
08a012ef8d | ||
|
|
6df591c803 | ||
|
|
2d78312206 | ||
|
|
bce6f9543a | ||
|
|
ddd5e841bf | ||
|
|
69af58227a | ||
|
|
c02e7a52a1 | ||
|
|
ba2250be47 | ||
|
|
d51bfec090 | ||
|
|
dc50f4bb3b | ||
|
|
b9df625914 | ||
|
|
e669560462 | ||
|
|
1558a11646 | ||
|
|
2214b7472b | ||
|
|
ae1ed10f25 | ||
|
|
0115f1e343 | ||
|
|
ef4277437b | ||
|
|
bd6e666fdc | ||
|
|
181809d34a | ||
|
|
bc1b5f24a0 | ||
|
|
658953df15 | ||
|
|
b0e3cf1a3a | ||
|
|
90ca8f481d | ||
|
|
b11a3c4bc7 | ||
|
|
9dd8f65795 | ||
|
|
f8bff62754 | ||
|
|
77108784d9 | ||
|
|
60b977f8ec | ||
|
|
a03bd140db | ||
|
|
1566fd3ec9 | ||
|
|
d6e0517209 | ||
|
|
f090ffa649 | ||
|
|
2e5cb85410 | ||
|
|
6a4fa295f2 | ||
|
|
dc516bab8b | ||
|
|
ac36ce07ba | ||
|
|
ccffa91c49 | ||
|
|
cceb31aac7 | ||
|
|
b16f4477b8 | ||
|
|
56b4cd3036 | ||
|
|
d68d215420 | ||
|
|
8e72432db8 | ||
|
|
ed8d4a4c26 | ||
|
|
328216d9e5 | ||
|
|
a3fdb3cfc4 | ||
|
|
699bf2292c | ||
|
|
14a75a421d | ||
|
|
fd76f5a2c4 | ||
|
|
0700dd59bb | ||
|
|
6d7453885b | ||
|
|
609366076a | ||
|
|
16f57e4c48 | ||
|
|
976f73c41c | ||
|
|
b891e9ada6 | ||
|
|
2e0204d577 | ||
|
|
29518a33f2 | ||
|
|
bf592fa706 | ||
|
|
cba1a2c062 | ||
|
|
cb522c7d50 | ||
|
|
c3a4b840fb | ||
|
|
309c7de5de | ||
|
|
45a4503fa3 | ||
|
|
dea5c54ef0 | ||
|
|
f1e28e21f8 | ||
|
|
3f91f5c506 | ||
|
|
e210bca319 | ||
|
|
16e2e0cc83 | ||
|
|
e08790e889 | ||
|
|
915b9da5d0 | ||
|
|
0ef46ef0ea | ||
|
|
0bfa3cb592 | ||
|
|
8c3e906fc5 | ||
|
|
2b98e0d4d2 | ||
|
|
8275963811 | ||
|
|
4cc402679f | ||
|
|
b1095481ef | ||
|
|
f754c80352 | ||
|
|
ca3a493932 | ||
|
|
e8b2f3a8f9 | ||
|
|
72b89a6768 | ||
|
|
be3d642868 | ||
|
|
a358a0007a | ||
|
|
a2254512f7 | ||
|
|
b450fa1818 | ||
|
|
c03c1c2bbf | ||
|
|
3eb49d32fa | ||
|
|
856e504c26 | ||
|
|
206265b6d3 | ||
|
|
dee1e9d71b | ||
|
|
9c7663996c | ||
|
|
03c4b91682 | ||
|
|
ecebd69cda | ||
|
|
746bd4bf2c | ||
|
|
93ffc11f2a | ||
|
|
e36eebf09a | ||
|
|
baf7bc5866 | ||
|
|
e766fa7dcc | ||
|
|
ee84c635c5 | ||
|
|
eccb4040b6 | ||
|
|
eca97bb6ff | ||
|
|
7c3505cf2a | ||
|
|
fbcb8e121c | ||
|
|
ca95a17a63 | ||
|
|
73a5dc4693 | ||
|
|
6805be0d26 | ||
|
|
440256c3f0 | ||
|
|
d7c8f97d47 | ||
|
|
94329b334a | ||
|
|
190848ad2e | ||
|
|
9bf43aa40f | ||
|
|
f41e71199c | ||
|
|
10c7934ae2 | ||
|
|
fa7e9b7f33 | ||
|
|
4dfc27f727 | ||
|
|
125d501aaf | ||
|
|
0d262c0ae8 | ||
|
|
b3fcea29da | ||
|
|
1b98bdf28f | ||
|
|
cf2d30895c | ||
|
|
56fc5ec40c | ||
|
|
a72c824d8b | ||
|
|
b54f81355a | ||
|
|
f7ed133b2e | ||
|
|
4507489f0b | ||
|
|
f339ec2471 | ||
|
|
e1ba66fb87 | ||
|
|
af50b219a6 | ||
|
|
8090832f3b | ||
|
|
55423174ed | ||
|
|
ed3e4bca6c | ||
|
|
0b4cfd0037 | ||
|
|
777b1a15fd | ||
|
|
a17e73b5a2 | ||
|
|
3441ff38de | ||
|
|
a3976ab4fb | ||
|
|
156a6fac98 | ||
|
|
c4140d753c | ||
|
|
150f6603cd | ||
|
|
8154293d92 | ||
|
|
fd181b18a6 | ||
|
|
863dcf8b37 | ||
|
|
a2f183f147 | ||
|
|
a0921d2541 | ||
|
|
ddacfc743e | ||
|
|
71e961ba38 | ||
|
|
6e5d991cfe | ||
|
|
5d817ae51f | ||
|
|
eeadfc95e3 | ||
|
|
d658a993c0 | ||
|
|
348e62cd3e | ||
|
|
c40d910b69 | ||
|
|
12897ff2e1 | ||
|
|
94c95d6f67 | ||
|
|
c50c8ee73a | ||
|
|
431bc8d401 | ||
|
|
de66f1e21b | ||
|
|
abfe7ee7ff | ||
|
|
7cb77e8524 | ||
|
|
470017cdea | ||
|
|
7756368113 | ||
|
|
3911bc10c6 | ||
|
|
90f9fa4451 | ||
|
|
ec010bf18e | ||
|
|
8959af1f30 | ||
|
|
c3b3120bc1 | ||
|
|
28263dcbac | ||
|
|
4951e4f8fe | ||
|
|
61836c8c04 | ||
|
|
effe7abdec | ||
|
|
5bc391c6c2 | ||
|
|
3f951fa61f | ||
|
|
72de32b126 | ||
|
|
2780e722d0 | ||
|
|
18d0265515 | ||
|
|
6168b45c75 | ||
|
|
7a74165221 | ||
|
|
c480db898c | ||
|
|
762f7c62cd | ||
|
|
97dccd9d68 | ||
|
|
8778466d42 | ||
|
|
6f1aa5b812 | ||
|
|
352b70d060 | ||
|
|
4ce18611bd | ||
|
|
f09851b889 | ||
|
|
993205701c | ||
|
|
71b3694399 | ||
|
|
9d8d25fbb5 | ||
|
|
c41a104eca | ||
|
|
1d19a900b1 | ||
|
|
25f9f0519f | ||
|
|
b93bc0a295 | ||
|
|
7d0e7d7dce | ||
|
|
4b2b4117a5 | ||
|
|
2bd519aa5b | ||
|
|
34c5b4fec7 | ||
|
|
fd1f4a5dbe | ||
|
|
59a31f1c20 | ||
|
|
a79ff09e3b | ||
|
|
ea13f4f9b8 | ||
|
|
26d97bd234 | ||
|
|
c52a37c276 | ||
|
|
1dadd1ddb7 | ||
|
|
aa64fdbfc3 | ||
|
|
db892f633a | ||
|
|
08648e0a33 | ||
|
|
addacd368d | ||
|
|
925ead775c | ||
|
|
46cac5cc94 | ||
|
|
0c04b0ba86 | ||
|
|
ace037808f | ||
|
|
d81a90add3 | ||
|
|
b837becc58 | ||
|
|
d88d07e0b3 | ||
|
|
2966a709b8 | ||
|
|
7c138d33fc | ||
|
|
42d8d56636 | ||
|
|
02312054fb | ||
|
|
a6c0152a68 | ||
|
|
39ef662807 | ||
|
|
1752d5c5cb | ||
|
|
7965e3365b | ||
|
|
c8d588d6d2 | ||
|
|
d382775d1d | ||
|
|
3753f5b829 | ||
|
|
f0e372b2ba | ||
|
|
9a1a2d9ab2 | ||
|
|
4dfa51855e | ||
|
|
e773884c29 | ||
|
|
4e448134fc | ||
|
|
def846ce4b | ||
|
|
75a840b10b | ||
|
|
188536d0f6 | ||
|
|
b3c744d22e | ||
|
|
7a72634448 | ||
|
|
1559e3299a | ||
|
|
567045e4ff | ||
|
|
1c5466a799 | ||
|
|
fe7e44a3a6 | ||
|
|
bba46ba042 | ||
|
|
f2bba55bca | ||
|
|
57d6b6ac1d | ||
|
|
664d314d3a | ||
|
|
32a52b2bf1 | ||
|
|
dedb86b11d | ||
|
|
e1ea285201 | ||
|
|
3c535ab0ef | ||
|
|
ac92e5b126 | ||
|
|
bebf487776 | ||
|
|
c123ef9258 | ||
|
|
7d065659e8 | ||
|
|
3af60b4b6f | ||
|
|
354d299dce | ||
|
|
2670f46941 | ||
|
|
d289b41546 | ||
|
|
2c5799679c | ||
|
|
795782320c | ||
|
|
734899a543 | ||
|
|
8e3a258fd2 | ||
|
|
36c0349c0a | ||
|
|
9721c25613 | ||
|
|
1997872f71 | ||
|
|
d9e0730ad2 | ||
|
|
839bc778aa | ||
|
|
f502411079 | ||
|
|
151e4b2770 | ||
|
|
4b194752eb | ||
|
|
73451faa31 | ||
|
|
a3f0d5b865 | ||
|
|
6193e3191b | ||
|
|
0689e977ea | ||
|
|
028abc0ce9 | ||
|
|
ca2964c037 | ||
|
|
2a1324e6cc | ||
|
|
61535b6ab6 | ||
|
|
90012aff17 | ||
|
|
b2bfaad73d | ||
|
|
26e6845439 | ||
|
|
b7bb2988e8 | ||
|
|
f33ba03a2f | ||
|
|
8d38f27eee | ||
|
|
0003f8c24d | ||
|
|
9ac61105f3 | ||
|
|
1b85f782a6 | ||
|
|
eba6783816 | ||
|
|
aea41032ef | ||
|
|
f572eed5be | ||
|
|
9cd3e78043 | ||
|
|
f9a4d7ec1f | ||
|
|
98692eb2fe | ||
|
|
8e6bb0b3d6 | ||
|
|
6f02f3f74d | ||
|
|
00350140d3 | ||
|
|
a87cc64766 | ||
|
|
0eb39d2e0a | ||
|
|
112aa8468c | ||
|
|
c344cf441e | ||
|
|
5f4b6009ce | ||
|
|
8b7aab36a2 | ||
|
|
8ef1a12201 | ||
|
|
4ee452d186 | ||
|
|
3bcb4a5091 | ||
|
|
b09068ab99 | ||
|
|
6b6c517b1f | ||
|
|
850ee73ed4 | ||
|
|
67f1dd6677 | ||
|
|
9bc66128a7 | ||
|
|
b0201c58e9 | ||
|
|
18df119332 | ||
|
|
bc38ea19ba | ||
|
|
a730e8747f | ||
|
|
62b0e7f9ca | ||
|
|
ee9da2bdf1 | ||
|
|
2f0ac4fe17 | ||
|
|
033b9f2a59 | ||
|
|
3996ff8798 | ||
|
|
5f6335d8f9 | ||
|
|
135ba3f290 | ||
|
|
8ef3b3e09a | ||
|
|
0704812376 | ||
|
|
db8140418e | ||
|
|
d915b1b02c | ||
|
|
4c439910dc | ||
|
|
9514578554 | ||
|
|
3a2733eee5 | ||
|
|
7ff5ffaebd | ||
|
|
dbb8f4fa5a | ||
|
|
8631ea3d5a | ||
|
|
58dee60297 | ||
|
|
0a70adeceb | ||
|
|
31e76e429b | ||
|
|
277bd783b1 | ||
|
|
3e34721b66 | ||
|
|
8fdec71f4b | ||
|
|
510b6ff6d2 | ||
|
|
704fffada3 | ||
|
|
74f46f4633 | ||
|
|
c49e743f4d | ||
|
|
b7eb4d3567 | ||
|
|
ebc3b1f745 | ||
|
|
af923d6050 | ||
|
|
1d90d6d385 | ||
|
|
a40275c431 | ||
|
|
2a82fd628c | ||
|
|
a7ffbb0965 | ||
|
|
22e0f82654 | ||
|
|
47a6ae5031 | ||
|
|
652013b622 | ||
|
|
af67f5081e | ||
|
|
59931c804c | ||
|
|
7c9bff71f0 | ||
|
|
ad6b517c1d | ||
|
|
a1837d8153 | ||
|
|
cd81ea5fbb | ||
|
|
e3744d31aa | ||
|
|
fda647da54 | ||
|
|
6ab734b9e7 | ||
|
|
c302162d1f | ||
|
|
06b46bb0d3 | ||
|
|
2592423637 | ||
|
|
854cc77220 | ||
|
|
0a2355488e | ||
|
|
a212900554 | ||
|
|
79a28b9e43 | ||
|
|
90a6cecd52 | ||
|
|
03a19a882b | ||
|
|
4371d123ac | ||
|
|
70ea5e0bae | ||
|
|
db70394af3 | ||
|
|
324b204eaa | ||
|
|
7f8ffb228e | ||
|
|
cdb501ae26 | ||
|
|
e8c6e50e92 | ||
|
|
35731ca4f7 | ||
|
|
5685963b59 | ||
|
|
26430e642c | ||
|
|
ff0a4b03ae | ||
|
|
a4e5a88686 | ||
|
|
50f653fefb | ||
|
|
a9d5974346 | ||
|
|
4c4139078a | ||
|
|
46b4e39bf5 | ||
|
|
e7a148d20d | ||
|
|
76daa3f463 | ||
|
|
9f22c51c8a | ||
|
|
023c0da879 | ||
|
|
18cc8b91dc | ||
|
|
7a855a3520 | ||
|
|
36352d4a17 | ||
|
|
b9351dba11 | ||
|
|
8d4e555374 | ||
|
|
934ebcfc7e | ||
|
|
128092e537 | ||
|
|
ff22722662 | ||
|
|
7159a07f91 | ||
|
|
0ae42ef876 | ||
|
|
d66953d3ac | ||
|
|
d1c62e4bbc | ||
|
|
f1b764761c | ||
|
|
b0c5fe6509 | ||
|
|
9daf1f1ca0 | ||
|
|
96bed5b3d5 | ||
|
|
59f0beeba6 | ||
|
|
c7ba7b5d3a | ||
|
|
29386e8595 | ||
|
|
b6dceacaf0 | ||
|
|
58702a8956 | ||
|
|
8cdb7c245c | ||
|
|
1a716d858b | ||
|
|
c45f786066 | ||
|
|
574ed1b2f0 | ||
|
|
38f31d6a64 | ||
|
|
6d0455bf28 | ||
|
|
b9d149a56a | ||
|
|
4e64d522a1 | ||
|
|
5460536bbc | ||
|
|
239bc886a5 | ||
|
|
0ffb6eee37 | ||
|
|
cf770ff77f | ||
|
|
8c9f84d251 | ||
|
|
5bb78f3f0d | ||
|
|
5e985af37b | ||
|
|
f18b8ed7f3 | ||
|
|
304d659c9f | ||
|
|
3a9d8dea27 | ||
|
|
95713f8e09 | ||
|
|
660c15bfe9 | ||
|
|
54806ba753 | ||
|
|
42dd7ce0d7 | ||
|
|
33b80244ea | ||
|
|
860125e19a | ||
|
|
835165f012 | ||
|
|
3c7775aaa2 | ||
|
|
97bf638b6f | ||
|
|
3873be2927 | ||
|
|
48453bb46b | ||
|
|
6a0a22b164 | ||
|
|
590c03c17d | ||
|
|
db1cda65c3 | ||
|
|
bc1861887e | ||
|
|
7cd5d2740f | ||
|
|
740e3be74b | ||
|
|
00abb02ac1 | ||
|
|
489fa20f18 | ||
|
|
3a569e0268 | ||
|
|
8bada3c468 | ||
|
|
357d1fa83b | ||
|
|
0a68ad1b07 | ||
|
|
8f8498ca6d | ||
|
|
ab4cb93aaa | ||
|
|
51b45de19e | ||
|
|
5639df7efd | ||
|
|
9af273bf8f | ||
|
|
cfd1b950d3 | ||
|
|
8a4785d9a3 | ||
|
|
ba5b4ece30 | ||
|
|
0a8ed86b7c | ||
|
|
d166697622 | ||
|
|
9fdfe7616c | ||
|
|
21db406cf3 | ||
|
|
eb39f5eeba | ||
|
|
3125df95d3 | ||
|
|
dfcf23cd26 | ||
|
|
9d11d479a4 | ||
|
|
86d324a113 | ||
|
|
026f0b921c | ||
|
|
afa9675644 | ||
|
|
a7ba0ec575 | ||
|
|
bba605ee5a | ||
|
|
09083ac4f5 | ||
|
|
916f782df9 | ||
|
|
2f3a8f505f | ||
|
|
4ff8c6a26f | ||
|
|
1952906829 | ||
|
|
acd4d44a9e | ||
|
|
f14098d87b | ||
|
|
a1c3ab688a | ||
|
|
1648ad2d02 | ||
|
|
cc6636fe3c | ||
|
|
e50bb72dc7 | ||
|
|
fd390c2cba | ||
|
|
2365bcbcaf | ||
|
|
d934f2bb6b | ||
|
|
8b2566b9fe | ||
|
|
a507e64163 | ||
|
|
9d61432641 | ||
|
|
981111d380 | ||
|
|
0f0c9eacb1 | ||
|
|
7a60d8d867 | ||
|
|
06407a44d3 | ||
|
|
1c17bcc981 | ||
|
|
e92f2a9141 | ||
|
|
c8182c0293 | ||
|
|
d78f13839e | ||
|
|
ed892f3f15 | ||
|
|
902dcc6ba7 | ||
|
|
43fd9db038 | ||
|
|
c6da74b21c | ||
|
|
5362205605 | ||
|
|
30d5be44eb | ||
|
|
9a50303068 | ||
|
|
9ec8fea5f1 | ||
|
|
1aecf19a03 | ||
|
|
0ab86913a7 | ||
|
|
8448ec7b61 | ||
|
|
d672ec05e9 | ||
|
|
d71a277af7 | ||
|
|
8488a85288 | ||
|
|
81e23f6a2a | ||
|
|
955d8c8fe2 | ||
|
|
d9057b8581 | ||
|
|
79f39c1bc3 | ||
|
|
0b9ba78fac | ||
|
|
c42f2e755c | ||
|
|
2f0018ddfe | ||
|
|
c4fd25ba56 | ||
|
|
f6a9fdd7ca | ||
|
|
dcadaddedf | ||
|
|
b0952a38be | ||
|
|
7638db21ec | ||
|
|
c39e37c799 | ||
|
|
5796d55531 | ||
|
|
cce1ef54d8 | ||
|
|
4b7a4e0789 | ||
|
|
c2dd579eb4 | ||
|
|
ee550c2213 | ||
|
|
6ed7c6f5a7 | ||
|
|
cd4bae976f | ||
|
|
917a4375db | ||
|
|
7fe85ddfde | ||
|
|
c1f1013cfd | ||
|
|
cf742a89c0 | ||
|
|
fd14c682a9 | ||
|
|
032ab630c1 | ||
|
|
aa3fe96158 | ||
|
|
5b20061607 | ||
|
|
e9876b4d42 | ||
|
|
faa644b274 | ||
|
|
709ea059cb | ||
|
|
723b44b6db | ||
|
|
72574dd8a6 | ||
|
|
6aafbbae3e | ||
|
|
0b93e4a61a | ||
|
|
5c30e1ae33 | ||
|
|
25ab8ccbce | ||
|
|
492d94ee6e | ||
|
|
6d45194253 | ||
|
|
cdbfcafc38 | ||
|
|
437fe010b0 | ||
|
|
5f6f853336 | ||
|
|
75b20889f4 | ||
|
|
6b1183392f | ||
|
|
652ce3848b | ||
|
|
1d90ab9fc1 | ||
|
|
cc48f8f8aa | ||
|
|
44f624faf4 | ||
|
|
b4813f904a | ||
|
|
8a5ff3ab85 | ||
|
|
76e1d47d14 | ||
|
|
0e529fd72f | ||
|
|
74ead29433 | ||
|
|
08bc2938df | ||
|
|
a6d9ed0c8c | ||
|
|
c9d768e138 | ||
|
|
4ba3297d17 | ||
|
|
a5d05ab777 | ||
|
|
4e815a5f86 | ||
|
|
b1bc80a0cd | ||
|
|
b0f38c3e2f | ||
|
|
af1233925e | ||
|
|
71a8e72180 | ||
|
|
8273fcca1e | ||
|
|
9d46dde1c5 | ||
|
|
0702154716 | ||
|
|
0ad7dac3d3 | ||
|
|
f56f990085 | ||
|
|
4f11990b93 | ||
|
|
e4cc9ef5b5 | ||
|
|
fe6d4de025 | ||
|
|
c9fe0cad05 | ||
|
|
1437659a4e | ||
|
|
0c75a53e57 | ||
|
|
f04f4a3e04 | ||
|
|
e2f7e77ec2 | ||
|
|
004828f76c | ||
|
|
3d4dbd0bb0 | ||
|
|
3a0bae92be | ||
|
|
f569c66348 | ||
|
|
88cde331df | ||
|
|
72e11601a0 | ||
|
|
87256ee62f | ||
|
|
beb95c49fa | ||
|
|
f912d55177 | ||
|
|
b7e7a087f8 | ||
|
|
82dd1c46cf | ||
|
|
a228c4b32a | ||
|
|
682986d9b9 | ||
|
|
b29b6d6eef | ||
|
|
8a9a52da57 | ||
|
|
faf302c6d8 | ||
|
|
f71afb5732 | ||
|
|
0eb7185d40 | ||
|
|
286dbff47b | ||
|
|
a671878e26 | ||
|
|
5f65819f40 | ||
|
|
ef268dc386 | ||
|
|
41a0788b4c | ||
|
|
073a945b8e | ||
|
|
90721e244b | ||
|
|
65bfd20ced | ||
|
|
22d761dea3 | ||
|
|
5daf4ed6bc | ||
|
|
be1894ab97 | ||
|
|
9529a79707 | ||
|
|
f6e5293d8e | ||
|
|
31403b4299 | ||
|
|
3b9e3762d3 | ||
|
|
748d76dca6 | ||
|
|
7e0e18787f | ||
|
|
3b95b2838c | ||
|
|
8749321614 | ||
|
|
12c09b1f6c | ||
|
|
1664f92cc8 | ||
|
|
6c76e31e0b | ||
|
|
b7744bbda2 | ||
|
|
187a75c99a | ||
|
|
670aab5224 | ||
|
|
1c4256ff4c | ||
|
|
55e91f08dd | ||
|
|
c581c774e9 | ||
|
|
bce5025a66 | ||
|
|
66cc3777dc | ||
|
|
b1def7b568 | ||
|
|
1b177ff5b5 | ||
|
|
594ccd45c7 | ||
|
|
2b0216a398 | ||
|
|
3fa9c29d7a | ||
|
|
25f6234cf0 | ||
|
|
347266a9bd | ||
|
|
e7bce03be4 | ||
|
|
9d08d83c2c | ||
|
|
e0f7e50b64 | ||
|
|
b57d53adcd | ||
|
|
875bde2253 | ||
|
|
e77426f364 | ||
|
|
9af6fa062c | ||
|
|
6bc59eb7de | ||
|
|
49cab9ec29 | ||
|
|
32d75567e3 | ||
|
|
a51f0db6fa | ||
|
|
09eeb28257 | ||
|
|
956172af0c | ||
|
|
35ec8e0f12 | ||
|
|
8390615489 | ||
|
|
df499a9776 | ||
|
|
e027c4fd4c | ||
|
|
0dd9f49856 | ||
|
|
8853c73749 | ||
|
|
9cb97f6a15 | ||
|
|
f69641c0f8 | ||
|
|
1ac6e48c23 | ||
|
|
a3ad90f419 | ||
|
|
e5f04e5234 | ||
|
|
9d97e26fc1 | ||
|
|
e84b8d4d1d | ||
|
|
d0e4c9f822 | ||
|
|
378a805b02 | ||
|
|
6f465e28e2 | ||
|
|
1678cd5e96 | ||
|
|
44c6c136a2 | ||
|
|
5538b04d55 | ||
|
|
febf67179a | ||
|
|
0a5fa0d190 | ||
|
|
4fa6329eb6 | ||
|
|
3a77228aaa | ||
|
|
f26a745d0e | ||
|
|
55f7a91eaf | ||
|
|
b7373688e7 | ||
|
|
1b7814e891 | ||
|
|
039b2095f0 | ||
|
|
5c7c820fef | ||
|
|
11b6ed87d4 | ||
|
|
250a41a84a | ||
|
|
8c5ab9d626 | ||
|
|
281f878a79 | ||
|
|
77489d22cd | ||
|
|
fa880f5e2a | ||
|
|
f014d690ea | ||
|
|
7ece1123a7 | ||
|
|
ecff40dade | ||
|
|
d13e2531e8 | ||
|
|
47d2c20bfd | ||
|
|
18c3e9851e | ||
|
|
308a1649a5 | ||
|
|
09c414c991 | ||
|
|
af7b46f714 | ||
|
|
9a20eab1b2 | ||
|
|
444c168da5 | ||
|
|
61ab597499 | ||
|
|
62cf9b6184 | ||
|
|
9f4b9a4dde | ||
|
|
af991eb31b | ||
|
|
e6267f32b2 | ||
|
|
c83b36acfa | ||
|
|
b7f99ec95f | ||
|
|
1e2920641d | ||
|
|
a15d25370e | ||
|
|
7ce2fd29a6 | ||
|
|
e0ca2e7fb5 | ||
|
|
a2ea7b40e2 | ||
|
|
6560594c49 | ||
|
|
c095cc4bf0 | ||
|
|
8dbaa6bbd9 | ||
|
|
ebc6654069 | ||
|
|
992ed4f36c | ||
|
|
b0a0ca089f | ||
|
|
e52d8d9ff7 | ||
|
|
827ae921a4 | ||
|
|
e9b603d5a5 | ||
|
|
d93b3aa79f | ||
|
|
9b6ba891a4 | ||
|
|
8a9b79abd0 | ||
|
|
d4d23a140f | ||
|
|
e7ce13f647 | ||
|
|
74d71f24ca | ||
|
|
a1213f1e84 | ||
|
|
36cf5c1d76 | ||
|
|
fd85770d4d | ||
|
|
116ebd8243 | ||
|
|
612034f6be | ||
|
|
b05028e3c9 | ||
|
|
495209cd1a | ||
|
|
402cb09bb6 | ||
|
|
dbfda1e680 | ||
|
|
b03b723d25 | ||
|
|
5a8e8b2221 | ||
|
|
6a664037cf | ||
|
|
f556fde848 | ||
|
|
bbc5be0075 | ||
|
|
b587ab638c | ||
|
|
a1ddc6ce1d | ||
|
|
b46ad86c31 | ||
|
|
15fec91358 | ||
|
|
e2f3a44d96 | ||
|
|
eac7d9b9ee | ||
|
|
0c7fdc7013 | ||
|
|
03e173634f | ||
|
|
cb755ba820 | ||
|
|
8721d53ab2 | ||
|
|
47b57172eb | ||
|
|
9d3291aba6 | ||
|
|
6792c11a71 | ||
|
|
6f5539de90 | ||
|
|
9500c3bdb2 | ||
|
|
5999e72592 | ||
|
|
0b44cf9c0a | ||
|
|
f5a3280565 | ||
|
|
ee79d3d6d6 | ||
|
|
b024c0996d | ||
|
|
262a6c36b7 | ||
|
|
26f7bb4b32 | ||
|
|
42f2bf3628 | ||
|
|
6f6fe876e2 | ||
|
|
615ee2958a | ||
|
|
a75424e44b | ||
|
|
76a1421fde | ||
|
|
972ed25a8c | ||
|
|
21ab4e58f9 | ||
|
|
82b34d9d2c | ||
|
|
9cdf840d12 | ||
|
|
72cc0cf0aa | ||
|
|
c6d3f680cc | ||
|
|
8b4dac4e13 | ||
|
|
783a849e09 | ||
|
|
407e7fa69e | ||
|
|
2b8d51035d | ||
|
|
2e590b742f | ||
|
|
bd81ea0880 | ||
|
|
dfd9e15951 | ||
|
|
96b011cf70 | ||
|
|
3eee8442a7 | ||
|
|
da4f4b0801 | ||
|
|
717d516f6a | ||
|
|
e85bd56f60 | ||
|
|
a2f92c1223 | ||
|
|
9dd1a60629 | ||
|
|
5abc9784f1 | ||
|
|
f1100d4475 | ||
|
|
494b94430c | ||
|
|
5b7f2b2b55 | ||
|
|
f41db97860 | ||
|
|
0cfaf4f021 | ||
|
|
6fd7107675 | ||
|
|
a88a2f5b40 | ||
|
|
13b9e5a434 | ||
|
|
a760aff826 | ||
|
|
3a161e90f9 | ||
|
|
522acc479b | ||
|
|
cc2ef85afd | ||
|
|
9d283d2eae | ||
|
|
aeef8734b8 | ||
|
|
192806a46d | ||
|
|
e887ec6991 | ||
|
|
ea80fd3c71 | ||
|
|
6d1734b655 | ||
|
|
72f06620e9 | ||
|
|
aa963dea3d | ||
|
|
16e7df0526 | ||
|
|
4d5c1b2455 | ||
|
|
c1988bcc17 | ||
|
|
1784d9ce28 | ||
|
|
15fd4c51df | ||
|
|
fd92f1c588 | ||
|
|
80496ab1ed | ||
|
|
dbade05e46 | ||
|
|
e80536405e | ||
|
|
ea59379479 | ||
|
|
18878dd19b | ||
|
|
309a58cb18 | ||
|
|
64fbc2f4e9 | ||
|
|
dcb473137b | ||
|
|
3a90ee2b0d | ||
|
|
dc401278fb | ||
|
|
33eb3efb11 | ||
|
|
6d15bc5f14 | ||
|
|
04c4b9eda5 | ||
|
|
4a9ea459fa | ||
|
|
9b1c3fece2 | ||
|
|
f76fc95494 | ||
|
|
42f5ea205f | ||
|
|
28916afcce | ||
|
|
34193021e8 | ||
|
|
c7999831c9 | ||
|
|
8d7ebefa65 | ||
|
|
88183cdc39 | ||
|
|
52ede26f3d | ||
|
|
e1ecd3cd27 | ||
|
|
25c4330fd0 | ||
|
|
80ae810e1b | ||
|
|
719c2aada2 | ||
|
|
f2e3d95e98 | ||
|
|
c22354fe4d | ||
|
|
4862ac3857 | ||
|
|
e93e125a46 | ||
|
|
dc0f9abdbc | ||
|
|
455a065285 | ||
|
|
8b3ec4376d | ||
|
|
b69e4e91ac | ||
|
|
a5cbaa7f8c | ||
|
|
b0095b266d | ||
|
|
7b04d57605 | ||
|
|
2ee6adcf35 | ||
|
|
e89f004532 | ||
|
|
624787994a | ||
|
|
550896e795 | ||
|
|
2f926301e6 | ||
|
|
34dbf3557c | ||
|
|
ae856dda6a | ||
|
|
871cef8af9 | ||
|
|
6b16b7c3b7 | ||
|
|
93a79f3605 | ||
|
|
5ae96e4d44 | ||
|
|
85e48eb56a | ||
|
|
58f8f98c6f | ||
|
|
1da92e997c | ||
|
|
734f3d57bf | ||
|
|
6a6742275f | ||
|
|
815c0f1125 | ||
|
|
cfe11f7b54 | ||
|
|
efb7d12e1d | ||
|
|
caf8a75bbc | ||
|
|
e52f0a9e16 | ||
|
|
8775b360d8 | ||
|
|
54fea1d28e | ||
|
|
c40ace1290 | ||
|
|
f34d95edaa | ||
|
|
ac05dbc55b | ||
|
|
0f72c45fbc | ||
|
|
da820871fd | ||
|
|
1aec49f852 | ||
|
|
33b95b60e3 | ||
|
|
d232b22501 | ||
|
|
6c06845ed5 | ||
|
|
5f4a171dff | ||
|
|
38df693987 | ||
|
|
e24573f644 | ||
|
|
8fe25d4b43 | ||
|
|
5a4b7b7264 | ||
|
|
9b5b00fd2d | ||
|
|
d59c408e44 | ||
|
|
95b6949da8 | ||
|
|
b0e2dbf06e | ||
|
|
0aadb29ac7 | ||
|
|
559a1791e1 | ||
|
|
f5dcad8725 | ||
|
|
97724054ec | ||
|
|
30661130ca | ||
|
|
9c16b58325 | ||
|
|
aadc576d0a | ||
|
|
84db544704 | ||
|
|
49bce76c0d | ||
|
|
20945cfc0d | ||
|
|
05ad483f06 | ||
|
|
98e014f834 | ||
|
|
e316270b57 | ||
|
|
4fe34640f5 | ||
|
|
ca613e83e8 | ||
|
|
72e1180c84 | ||
|
|
a582d231e8 | ||
|
|
11ff9567c0 | ||
|
|
64c07e8910 | ||
|
|
6f257d9b27 | ||
|
|
928c25e742 | ||
|
|
3c49ccff53 | ||
|
|
5aa5640baa | ||
|
|
91961111d8 | ||
|
|
5fcfbf1c75 | ||
|
|
77ec0a9eed | ||
|
|
bbbad2b170 | ||
|
|
505385b060 | ||
|
|
07a5def0a9 | ||
|
|
91e6b0671e | ||
|
|
234a527f25 | ||
|
|
845a15229d | ||
|
|
ab482c4ede | ||
|
|
d619f4a012 | ||
|
|
84af87b155 | ||
|
|
3f4d85dcad | ||
|
|
02976c5f12 | ||
|
|
049190739f | ||
|
|
e11137a90f | ||
|
|
28ae292703 | ||
|
|
0e94b1ca88 | ||
|
|
dbf672224f | ||
|
|
1001140eec | ||
|
|
038c66258b | ||
|
|
bb8b0555ae | ||
|
|
1421ed3bf4 | ||
|
|
31a5761ba0 | ||
|
|
baafd5f83c | ||
|
|
4f44374f48 | ||
|
|
7403736ae1 | ||
|
|
9a0bda9884 | ||
|
|
84104f2267 | ||
|
|
5d6778be57 | ||
|
|
1f05e90266 | ||
|
|
3a7c3cec3f | ||
|
|
e8f7df9cb4 | ||
|
|
9b5d2b2c2b | ||
|
|
87f20622f9 | ||
|
|
417758a29a | ||
|
|
07c93bcb7d | ||
|
|
b96c1e9f09 | ||
|
|
747a1a212c | ||
|
|
428dce3e6e | ||
|
|
02dc7f5fe0 | ||
|
|
d9a59bccda | ||
|
|
23b73dd936 | ||
|
|
0859c14581 | ||
|
|
2bda53e971 | ||
|
|
0f3d598f8d | ||
|
|
e1c3a12d07 | ||
|
|
43bb5aab5c | ||
|
|
b80f5ba057 | ||
|
|
9c381c40a5 | ||
|
|
47c39e68b7 | ||
|
|
a24d37ffa4 | ||
|
|
03db815723 | ||
|
|
1aeb66d9af | ||
|
|
3efbc14d97 | ||
|
|
534614d037 | ||
|
|
479478490e | ||
|
|
f4eed2bf2c | ||
|
|
ba51fb4c46 | ||
|
|
bdc7e4dc10 | ||
|
|
25dec2ace8 | ||
|
|
7d99d6c40b | ||
|
|
ba88160deb | ||
|
|
08289d0675 | ||
|
|
a64c36221c | ||
|
|
bf2229538e | ||
|
|
922d66ff53 | ||
|
|
cfb6059027 | ||
|
|
c04715c9ef | ||
|
|
d82c739f01 | ||
|
|
7267490645 | ||
|
|
5adf21e87a | ||
|
|
e6b2732281 | ||
|
|
9c4b3dbc08 | ||
|
|
3d3ac0d05d | ||
|
|
9434fe2cd7 | ||
|
|
af55e57ba3 | ||
|
|
90fbfc30ad | ||
|
|
c48d415a9d | ||
|
|
874f4f7198 | ||
|
|
19c583f615 | ||
|
|
76e9c822c9 | ||
|
|
73b8e3e0fb | ||
|
|
5cba10151a | ||
|
|
01b66bc62e | ||
|
|
f14398392a | ||
|
|
3a7ed1f2f3 | ||
|
|
802d1b0132 | ||
|
|
d4878525ac | ||
|
|
e98e758b5f | ||
|
|
672e3680b7 | ||
|
|
53c1d1b7ee | ||
|
|
721d67ac0a | ||
|
|
2407b61830 | ||
|
|
f08345b15e | ||
|
|
20da33348c | ||
|
|
7e82461aba | ||
|
|
fcfe7507d6 | ||
|
|
90b50fe180 | ||
|
|
3ddbfb061b | ||
|
|
93194626c7 | ||
|
|
c23a1d224d | ||
|
|
2178391bcd | ||
|
|
c917fc9c9c | ||
|
|
15c54224e0 | ||
|
|
cc7ae316ad | ||
|
|
bf49b1ee50 | ||
|
|
bb2c78c0f6 | ||
|
|
069e3baf67 | ||
|
|
b30a4d26ae | ||
|
|
338d158bae | ||
|
|
895beb6aa1 | ||
|
|
67aff2550b | ||
|
|
82a5da391f | ||
|
|
3dc4d1443f | ||
|
|
073a9acfb3 | ||
|
|
b363259a72 | ||
|
|
211ab290d0 | ||
|
|
f9df358c4f | ||
|
|
0d01e108f1 | ||
|
|
8c4ecaeee2 | ||
|
|
4fa814a2fa | ||
|
|
bb85232ea7 | ||
|
|
469275eea5 | ||
|
|
ba0ce33cfc | ||
|
|
50f299171a | ||
|
|
5c04e79486 | ||
|
|
fb14e978cd | ||
|
|
3a455fa1a7 | ||
|
|
ad50ad9b0d | ||
|
|
7d7c2dba26 | ||
|
|
0b95804535 | ||
|
|
6ccbb358b9 | ||
|
|
cff464392a | ||
|
|
3a061eec3f | ||
|
|
538b722bdf | ||
|
|
ea61db9591 | ||
|
|
49ace054bd | ||
|
|
8040441757 | ||
|
|
88b2d61cec | ||
|
|
52683d5a21 | ||
|
|
b3eb276437 | ||
|
|
ed5c52859d | ||
|
|
c58868ed39 | ||
|
|
5a5a64e3a2 | ||
|
|
2cc8be5776 | ||
|
|
8d427f40c6 | ||
|
|
946656f8c5 | ||
|
|
37c3bb8cd2 | ||
|
|
6058423970 | ||
|
|
d162be3543 | ||
|
|
985179bbb9 | ||
|
|
db01d85f2e | ||
|
|
94068e777a | ||
|
|
0181bebd70 | ||
|
|
b8d557646a | ||
|
|
025463a28e | ||
|
|
f0bef18b63 | ||
|
|
77746f712f | ||
|
|
ad438e128a | ||
|
|
af39fb98a1 | ||
|
|
ef270bc069 | ||
|
|
0909bf7c36 | ||
|
|
5a6ef5efd3 | ||
|
|
272e7f6e24 | ||
|
|
46bb8e5bcc | ||
|
|
12a7ec7fe3 | ||
|
|
d07f5dc520 | ||
|
|
b88cdb7677 | ||
|
|
669eabc7e8 | ||
|
|
24112f6d8d | ||
|
|
3ff5dfce33 | ||
|
|
2f81aef0a3 | ||
|
|
29739ab210 | ||
|
|
4d9b94cfe6 | ||
|
|
85f63721e0 | ||
|
|
92924b3288 | ||
|
|
88976d6800 | ||
|
|
2873336dce | ||
|
|
de07546e3f | ||
|
|
ac14888e2a | ||
|
|
c28ac37df1 | ||
|
|
63068f1018 | ||
|
|
22099c1b56 | ||
|
|
eed59a96be | ||
|
|
865acfd7e9 | ||
|
|
d1b32f1ba1 | ||
|
|
77e50a6cee | ||
|
|
347d34bf83 | ||
|
|
94ba7a2f94 | ||
|
|
01be8be44f | ||
|
|
d584f57a3b | ||
|
|
b5b0074411 | ||
|
|
44926a4e9a | ||
|
|
8bdd09400a | ||
|
|
8ac30b036a | ||
|
|
ecc0585c87 | ||
|
|
007f2fbff4 | ||
|
|
1f66ed3e3b | ||
|
|
eb66b2c175 | ||
|
|
5d86cfb092 | ||
|
|
b9fcc43ca6 | ||
|
|
3cfc5d9a1a | ||
|
|
25427e8521 | ||
|
|
2425af4bfe | ||
|
|
4a4ed32fe6 | ||
|
|
f7e31bd452 | ||
|
|
adf7357155 | ||
|
|
a541c90690 | ||
|
|
217e184153 | ||
|
|
e14348a05b | ||
|
|
78b97ce8fb | ||
|
|
aeaaaaf3af | ||
|
|
63a3e56cdb | ||
|
|
cea22b6147 | ||
|
|
06d39ea352 | ||
|
|
b4ea5bc8d0 | ||
|
|
ad42a71427 | ||
|
|
46dce17dfe | ||
|
|
7a8c97225b | ||
|
|
5574d8d6c0 | ||
|
|
a166d9a4dd | ||
|
|
b863077bfe | ||
|
|
ae2b5d4403 | ||
|
|
301d81f987 | ||
|
|
15f59c1a4e | ||
|
|
9eaf240674 | ||
|
|
a71fa02b0c | ||
|
|
9add2aaa87 | ||
|
|
a5b2a06f84 | ||
|
|
ca48e37163 | ||
|
|
304d122342 | ||
|
|
7c7e4c2297 | ||
|
|
e2c10f52d2 | ||
|
|
c91f19f9f7 | ||
|
|
1d5c8566d1 | ||
|
|
badb768529 | ||
|
|
d965320b57 | ||
|
|
096c2dbc83 | ||
|
|
88cc4bd5a4 | ||
|
|
e8a0a6d5f9 | ||
|
|
864b06a0e7 | ||
|
|
ea09a53496 | ||
|
|
d6ca87868b | ||
|
|
14458c7184 | ||
|
|
12cfce758c | ||
|
|
9e9beea83c | ||
|
|
0a5c51ad4b | ||
|
|
9ee4d1b2cd | ||
|
|
d833692e27 | ||
|
|
b68280655f | ||
|
|
1e7d329962 | ||
|
|
b35c85e831 | ||
|
|
bb53b2530c | ||
|
|
9bc7250532 | ||
|
|
160c3d80f9 | ||
|
|
5538c3f995 | ||
|
|
c7e560ffc5 | ||
|
|
d9e3fd7a01 | ||
|
|
732f20a0f1 | ||
|
|
a8a34a4a37 | ||
|
|
821833df8e | ||
|
|
bd5a14b18e | ||
|
|
d96c8ddf85 | ||
|
|
5cdcda66a5 | ||
|
|
1a47bbaf8c | ||
|
|
64da2793ac | ||
|
|
31fac7bf45 | ||
|
|
147b9a4501 | ||
|
|
b588fdfe1a | ||
|
|
607f9409d2 | ||
|
|
e32eb21fbf | ||
|
|
8320aab1bf | ||
|
|
ca76cb2af3 | ||
|
|
e938ea8967 | ||
|
|
15ede5e14c | ||
|
|
4eec2926cb | ||
|
|
3f4356467e | ||
|
|
50db7fcddb | ||
|
|
d158de5d82 | ||
|
|
4cfbbf4c68 | ||
|
|
ebee9ff791 | ||
|
|
61f5425662 | ||
|
|
da13fbff08 | ||
|
|
b785128f4c | ||
|
|
3ed74f0b02 | ||
|
|
6aa13e318b | ||
|
|
fd2248de17 | ||
|
|
17c56440f2 | ||
|
|
b642e4437e | ||
|
|
2f547033cd | ||
|
|
72c5a9ee92 | ||
|
|
048e5faa1f | ||
|
|
c9f7fba7dd | ||
|
|
c5f92edaa8 | ||
|
|
d7a8cb1537 | ||
|
|
fedb064b1f | ||
|
|
cf7e1da96a | ||
|
|
e98e942f19 | ||
|
|
ac904ee9fc | ||
|
|
ddd8b60816 | ||
|
|
40e7055f16 | ||
|
|
7298e1f438 | ||
|
|
383364b165 | ||
|
|
8e0c42afa9 | ||
|
|
9c9408d78a | ||
|
|
d1a4fbf3ce | ||
|
|
d28e0743f0 | ||
|
|
bf3d89e550 | ||
|
|
34b5181f34 | ||
|
|
23fd6b815f | ||
|
|
bdde6a2080 | ||
|
|
37970bd446 | ||
|
|
f9ddcd2f8a | ||
|
|
8ddda4783d | ||
|
|
a04b44d890 | ||
|
|
89558481de | ||
|
|
99cc3635f7 | ||
|
|
6e3262f78e | ||
|
|
fbff421de8 | ||
|
|
cebe20964f | ||
|
|
203e353e92 | ||
|
|
8c4e5b99fe | ||
|
|
16ce55ba60 | ||
|
|
a2d33e9672 | ||
|
|
6317202626 | ||
|
|
4cbbae6d2f | ||
|
|
9e76498f65 | ||
|
|
1c7708babd | ||
|
|
ce4d3c0b5c | ||
|
|
7f43584ed5 | ||
|
|
7532fdb1fc | ||
|
|
3cdba90bb0 | ||
|
|
011291f225 | ||
|
|
045a595537 | ||
|
|
be703c1f46 | ||
|
|
45c4f3cb97 | ||
|
|
3fdea6e57a | ||
|
|
05aa656e75 | ||
|
|
f8ddff9bc3 | ||
|
|
7f2d51bd15 | ||
|
|
45def4b3b7 | ||
|
|
67c94314ed | ||
|
|
7f320d23ca | ||
|
|
6d097f0bcb | ||
|
|
d7f2fec8ad | ||
|
|
5ee857f6f4 | ||
|
|
07c92b4bc3 | ||
|
|
a0cdf44deb | ||
|
|
71419eeda3 | ||
|
|
85ea9f5b19 | ||
|
|
1a9efa4e1e | ||
|
|
ec07cebb51 | ||
|
|
8b603d15a5 | ||
|
|
074718aedc | ||
|
|
25038e6cbb | ||
|
|
537bf921d2 | ||
|
|
f06048384d | ||
|
|
56e96ec3aa | ||
|
|
95c9e9d695 | ||
|
|
cb587112da | ||
|
|
306edec32d | ||
|
|
c1c6a370a5 | ||
|
|
00b3c3e9d2 | ||
|
|
52efbcc89f | ||
|
|
9be2519406 | ||
|
|
59e10fbf0a | ||
|
|
79657a9d53 | ||
|
|
0401b8556d | ||
|
|
b0f939af32 | ||
|
|
7024254960 | ||
|
|
6ac9e1aec4 | ||
|
|
af3d0d2eb0 | ||
|
|
5afd402c8b | ||
|
|
5e2ab4f612 | ||
|
|
2f75d88694 | ||
|
|
00eea24e3f | ||
|
|
67d2e266fd | ||
|
|
32d6583ae3 | ||
|
|
e8bb130245 | ||
|
|
e71121f738 | ||
|
|
c17cec0574 | ||
|
|
f562937e81 | ||
|
|
508d92c3e8 | ||
|
|
299cde9cdf | ||
|
|
da2685131d | ||
|
|
9a484193eb | ||
|
|
1c45331b0a | ||
|
|
2a06db0a2b | ||
|
|
180deb106b | ||
|
|
662aab973c | ||
|
|
3f972250d0 | ||
|
|
15ec1496c5 | ||
|
|
be3376272e | ||
|
|
c852a5bda3 | ||
|
|
d65c5e93b6 | ||
|
|
07ac88bfd6 | ||
|
|
1386be23f4 | ||
|
|
18cadf8db5 | ||
|
|
cf83b6572e | ||
|
|
22662fd5eb | ||
|
|
3263ce5669 | ||
|
|
cbb527c464 | ||
|
|
9cd2bb232b | ||
|
|
dcfb353537 | ||
|
|
8313de692e | ||
|
|
3c8cb34b0a | ||
|
|
b9311e84ce | ||
|
|
50d0c1eb29 | ||
|
|
a9cd0b29d4 | ||
|
|
2037ef3eac | ||
|
|
0582b9718b | ||
|
|
bbed05b273 | ||
|
|
30f0e82fba | ||
|
|
bdef9a3955 | ||
|
|
f6845a9820 | ||
|
|
4b52f343c1 | ||
|
|
a00d0820cc | ||
|
|
cdc9ab4ad6 | ||
|
|
1fb9648c6c | ||
|
|
3403d98c72 | ||
|
|
2cf2eb9f55 | ||
|
|
b5e52b80a3 | ||
|
|
80911af4d2 | ||
|
|
7a80e6a55c | ||
|
|
7958cb530f | ||
|
|
95c79e1c23 | ||
|
|
eee0f5e4c9 | ||
|
|
a9368904e5 | ||
|
|
f7c768bb91 | ||
|
|
f2b93f90f7 | ||
|
|
7d5661443f | ||
|
|
460b350d85 | ||
|
|
669f013c96 | ||
|
|
1bf584f9bf | ||
|
|
97aebc5b84 | ||
|
|
cf7cd5502c | ||
|
|
cf08ba1d39 | ||
|
|
c41e0efc73 | ||
|
|
bb1a778277 | ||
|
|
c6973043e6 | ||
|
|
e5c715695e | ||
|
|
e92506dc07 | ||
|
|
62344376d7 | ||
|
|
8cf96c3102 | ||
|
|
16fa8679d0 | ||
|
|
b517276156 | ||
|
|
732450e163 | ||
|
|
df8e3dd82b | ||
|
|
75ddafd31d | ||
|
|
4f38a8d16c | ||
|
|
35746103c7 | ||
|
|
fb5347b8e4 | ||
|
|
6890b278ea | ||
|
|
9f667a0b35 | ||
|
|
36be7b0b33 | ||
|
|
1d16cc2a03 | ||
|
|
72fd2990e7 | ||
|
|
6d7ca2bb86 | ||
|
|
f10a8f9589 | ||
|
|
1881b3d32c | ||
|
|
1b89d0a4f0 | ||
|
|
671888b6ea | ||
|
|
50498a7462 | ||
|
|
ecd190987e | ||
|
|
2c000f6808 | ||
|
|
c472e40b2b | ||
|
|
0575f89ae9 | ||
|
|
e1dcfaa1e3 | ||
|
|
486af84107 | ||
|
|
8acbd8b978 | ||
|
|
7f9180e356 | ||
|
|
26912f226f | ||
|
|
0c286231cc | ||
|
|
991a61f2f6 | ||
|
|
edfd7c9770 | ||
|
|
ad62faaeea | ||
|
|
468903bbeb | ||
|
|
0723f44dc3 | ||
|
|
831bdabfc6 | ||
|
|
93a3eed530 | ||
|
|
307a52e7f4 | ||
|
|
3246f4bfcc | ||
|
|
fa4f4a8db4 | ||
|
|
cb797fe903 | ||
|
|
618461b1ff | ||
|
|
e2f08d3c76 | ||
|
|
f39cda729d | ||
|
|
b28d826d76 | ||
|
|
57ae559723 | ||
|
|
1d1be18689 | ||
|
|
141b5eb776 | ||
|
|
3f941bf9fd | ||
|
|
a48f302531 | ||
|
|
12d8872973 | ||
|
|
40ff865989 | ||
|
|
32e9c10702 | ||
|
|
804dd3bb7c | ||
|
|
9f2e3a66cd | ||
|
|
960d1967a3 | ||
|
|
ad025c3fe4 | ||
|
|
81212a108e | ||
|
|
8637a4eb12 | ||
|
|
0e4489d627 | ||
|
|
0bfb9d0700 | ||
|
|
efe759b94e | ||
|
|
9f89c1f7a4 | ||
|
|
530d92cc3f | ||
|
|
b0225515d2 | ||
|
|
d511c69ee7 | ||
|
|
6e1e40f13e | ||
|
|
70d3ee07bf | ||
|
|
e5477f314e | ||
|
|
80c4826253 | ||
|
|
e0de3ff191 | ||
|
|
239cff3dee | ||
|
|
6f9e3168b0 | ||
|
|
7d067f807d | ||
|
|
a7b43699ed | ||
|
|
7d11917d1c | ||
|
|
904ba9b1ca | ||
|
|
616fe35ed5 | ||
|
|
577a3c6c6a | ||
|
|
e937267eb0 | ||
|
|
2c1e1b94e7 | ||
|
|
60736ce04c | ||
|
|
03daa350f8 | ||
|
|
095cc38122 | ||
|
|
142d659b70 | ||
|
|
0826a2f8a3 | ||
|
|
a3819a7785 | ||
|
|
2314777b4b | ||
|
|
729e97a95d | ||
|
|
5ab60ca4a3 | ||
|
|
f1adff82a8 | ||
|
|
96b2d139c9 | ||
|
|
e1bc1222c4 | ||
|
|
0bff4a3d21 | ||
|
|
dfc775c925 | ||
|
|
dea304d1eb | ||
|
|
cfd80645e2 | ||
|
|
4b7f7887c8 | ||
|
|
9fc640aa59 | ||
|
|
d812aab173 | ||
|
|
39b58711c7 | ||
|
|
c6120fcf7c | ||
|
|
45b9215c87 | ||
|
|
394f6adf82 | ||
|
|
1a5076438d | ||
|
|
872b8e7902 | ||
|
|
0cad96fdca | ||
|
|
e9ef4fd091 | ||
|
|
4ce8b38acd | ||
|
|
24ab6f2d3b | ||
|
|
ba5e5f4bb5 | ||
|
|
6ef8611a0a | ||
|
|
486676baa5 | ||
|
|
542cbf13ff | ||
|
|
62630eb519 | ||
|
|
b1d597e63f | ||
|
|
887eee01fc | ||
|
|
f605f1fc75 | ||
|
|
cc8fc38734 | ||
|
|
5797b8655d | ||
|
|
fd4d663a1c | ||
|
|
88263d55f2 | ||
|
|
5c4398f948 | ||
|
|
9ff397dfbc | ||
|
|
1c9ebfd11c | ||
|
|
22e8d7ee71 | ||
|
|
35458a7e37 | ||
|
|
c1544ab374 | ||
|
|
d795eb6f5f | ||
|
|
ce8264b8f2 | ||
|
|
c6cbc8a8b1 | ||
|
|
6c79a1daba | ||
|
|
7867965989 | ||
|
|
348513a248 | ||
|
|
eb62253137 | ||
|
|
c4e87435dd | ||
|
|
9980d225f5 | ||
|
|
9c0f596c0d | ||
|
|
ff8cca6d8b | ||
|
|
0e5e263dea | ||
|
|
166732946e | ||
|
|
cccdab45dc | ||
|
|
190ca7cf2d | ||
|
|
009160b6bf | ||
|
|
851f67d86f | ||
|
|
b8be2277c4 | ||
|
|
14e266b938 | ||
|
|
94f070f096 | ||
|
|
0c28664ced | ||
|
|
754863e42c | ||
|
|
fb5e4a5f17 | ||
|
|
03e9fb93c7 | ||
|
|
3e77e24b1f | ||
|
|
d97809e4b0 | ||
|
|
551fd0aaf9 | ||
|
|
2fc36f8355 | ||
|
|
13cc2feb3f | ||
|
|
e2b62fc9f6 | ||
|
|
6b119cf4b8 | ||
|
|
88d198403e | ||
|
|
5ee39d7ecc | ||
|
|
e7102725bd | ||
|
|
bd28867804 | ||
|
|
0eb09a2136 | ||
|
|
470daf0036 | ||
|
|
fd28cbca4e | ||
|
|
6ecf0ecd88 | ||
|
|
c940d9d8a4 | ||
|
|
efef172658 | ||
|
|
e865b2c054 | ||
|
|
f8243f6934 | ||
|
|
746268c3ef | ||
|
|
48695651e1 | ||
|
|
45f726669e | ||
|
|
d473615ccf | ||
|
|
70425c77ea | ||
|
|
8520409459 | ||
|
|
1e48c6dcfe | ||
|
|
67a81400ff | ||
|
|
51431169dd | ||
|
|
2a0183c838 | ||
|
|
e222915a37 | ||
|
|
b698ccbc1d | ||
|
|
03a80beebe | ||
|
|
1c072e9f32 | ||
|
|
01576f941f | ||
|
|
4af80286d5 | ||
|
|
c9785bc57b | ||
|
|
81e72826ce | ||
|
|
71f9f3d230 | ||
|
|
500a01b46d | ||
|
|
8190c189e5 | ||
|
|
dea2ac22e1 | ||
|
|
1cae46a936 | ||
|
|
ac22838ded | ||
|
|
93875d667c | ||
|
|
41043e4dc1 | ||
|
|
2e8425d4b1 | ||
|
|
fcac28c69f | ||
|
|
a14b319ada | ||
|
|
6763ebdd66 | ||
|
|
421f2dd688 | ||
|
|
19b21a3e8a | ||
|
|
06dcaff806 | ||
|
|
f02bba5630 | ||
|
|
12fa295506 | ||
|
|
1054bbdf8b | ||
|
|
b47436ec59 | ||
|
|
856534cb81 | ||
|
|
3ee07c7da7 | ||
|
|
96fb892465 | ||
|
|
3a48a124e2 | ||
|
|
b391d47a40 | ||
|
|
a3c4d7c7b6 | ||
|
|
4ee5890d90 | ||
|
|
2ce1134b8b | ||
|
|
641ff441b5 | ||
|
|
7687259381 | ||
|
|
bd888451ec | ||
|
|
7484542af2 | ||
|
|
1e64a3f94c | ||
|
|
fd7319b295 | ||
|
|
923e00ad19 | ||
|
|
518be4e630 | ||
|
|
06a13557e3 | ||
|
|
72aa82c8ed | ||
|
|
b8a136e0ad | ||
|
|
38ba214327 | ||
|
|
c23ec06ce6 | ||
|
|
c495098582 | ||
|
|
499d095f81 | ||
|
|
2ed9367dc8 | ||
|
|
820e6fcfa3 | ||
|
|
f92ef05ee2 | ||
|
|
4b3795671d | ||
|
|
bff5ff79bd | ||
|
|
21056c5cb8 | ||
|
|
a4567939d6 | ||
|
|
e92ac2b30d | ||
|
|
90871d5859 | ||
|
|
cb299d145b | ||
|
|
6afc34e47e | ||
|
|
f6bcbbd962 | ||
|
|
55f1129a24 | ||
|
|
a2c48492ee | ||
|
|
cb0591fe5f | ||
|
|
2f269c3e17 | ||
|
|
d1a15f07d5 | ||
|
|
3cb0c95278 | ||
|
|
74910a6b56 | ||
|
|
5ab32326c1 | ||
|
|
7dc184f05f | ||
|
|
dbdb3931f4 | ||
|
|
56a5559024 | ||
|
|
8798afc41c | ||
|
|
e67c911c97 | ||
|
|
88d69f6fd4 | ||
|
|
99555f7dd0 | ||
|
|
b3ec77c631 | ||
|
|
d4c61e7ec9 | ||
|
|
48bbe288b7 | ||
|
|
3664266eed | ||
|
|
a1f7ab1562 | ||
|
|
5f95c745e2 | ||
|
|
1f735d8739 | ||
|
|
551fa28b27 | ||
|
|
909114e318 | ||
|
|
a4e55a0664 | ||
|
|
86e196808e | ||
|
|
0a4e15de31 | ||
|
|
cd1f52c6b5 | ||
|
|
b63449bffd | ||
|
|
93965138da | ||
|
|
fae1bd791f | ||
|
|
35855d2d71 | ||
|
|
c374534d9e | ||
|
|
f6c92dab24 | ||
|
|
03beae30ca | ||
|
|
4ee81501a9 | ||
|
|
3b92c3d75c | ||
|
|
814876f8df | ||
|
|
567d1ae104 | ||
|
|
7b7f028d74 | ||
|
|
0e53524f2e | ||
|
|
0f0e0951ec | ||
|
|
a172c4b725 | ||
|
|
9f979c02f8 | ||
|
|
1d59a67d6e | ||
|
|
5837a4602a | ||
|
|
e07a7ac496 | ||
|
|
de57d0b027 | ||
|
|
32bcb52f14 | ||
|
|
612ec06262 | ||
|
|
93dea90970 | ||
|
|
47ece1f285 | ||
|
|
64378419d0 | ||
|
|
00a201181d | ||
|
|
b3f9a14c85 | ||
|
|
065e3828b1 | ||
|
|
63e91f0ee5 | ||
|
|
182ef5c8f7 | ||
|
|
2f790140e0 | ||
|
|
a8bf247d01 | ||
|
|
e2b3e06077 | ||
|
|
43332d8752 | ||
|
|
b410ef5d08 | ||
|
|
1e97a9a872 | ||
|
|
26c49e7c22 | ||
|
|
b0f000acfd | ||
|
|
89269b848d | ||
|
|
7a55af405b | ||
|
|
a3343bc738 | ||
|
|
dd10486f27 | ||
|
|
a324ad2dd8 | ||
|
|
38b4653cb3 | ||
|
|
fdd9186ae9 | ||
|
|
81302e3ca5 | ||
|
|
cf99b4f8b9 | ||
|
|
12d39550a8 | ||
|
|
9c3e063635 | ||
|
|
bc0f3e343b | ||
|
|
d3eabd8d8f | ||
|
|
bfa8f97e7e | ||
|
|
4136328a36 | ||
|
|
2fd2c18dfc | ||
|
|
0a32f9405a | ||
|
|
7125e9ecd5 | ||
|
|
869e4a0b9d | ||
|
|
dc0e5c218f | ||
|
|
7fe3238339 | ||
|
|
f491f5bf49 | ||
|
|
17070b88d3 | ||
|
|
36fd23b264 | ||
|
|
fcd1d400f8 | ||
|
|
dbbec86a13 | ||
|
|
67bd23a027 | ||
|
|
f22a350938 | ||
|
|
2f0388d692 | ||
|
|
d7922c6330 | ||
|
|
b383142c14 | ||
|
|
c42b0caf0f | ||
|
|
6ba286087d | ||
|
|
c2e3fef7fc | ||
|
|
b9d344c7d9 | ||
|
|
320643d2da | ||
|
|
fe04c1af25 | ||
|
|
21d3ed61ef | ||
|
|
b7f27a2af0 | ||
|
|
2560b4d336 | ||
|
|
66282d4ed0 | ||
|
|
2152f54066 | ||
|
|
c89cb32871 | ||
|
|
59eaf9177e | ||
|
|
36aa58b38e | ||
|
|
2f4fccfb2c | ||
|
|
d251ebb995 | ||
|
|
0cc1573503 | ||
|
|
2ad3f2c1ab | ||
|
|
6cca26b914 | ||
|
|
0c946516e8 | ||
|
|
7b417929e6 | ||
|
|
c77ef4e4ce | ||
|
|
a9d90da5c8 | ||
|
|
4071c2ca43 | ||
|
|
58eaddf753 | ||
|
|
0a571502ce | ||
|
|
a850e5b74e | ||
|
|
71aa1fa113 | ||
|
|
24eef2dc0b | ||
|
|
5977c8c8e2 | ||
|
|
dcd4c19b21 | ||
|
|
464c7dae0a | ||
|
|
ad92e2e5eb | ||
|
|
254845d71f | ||
|
|
89ab97076c | ||
|
|
dd444ccc8a | ||
|
|
c9cab47ce0 | ||
|
|
b868477406 | ||
|
|
71ad3fc51d | ||
|
|
837ad7e39c | ||
|
|
898c589e2b | ||
|
|
49c90a4455 | ||
|
|
d315f37c88 | ||
|
|
799c1dc804 | ||
|
|
3d457e757d | ||
|
|
f74d575d6a | ||
|
|
d4e0bacde9 | ||
|
|
844c3ab26f | ||
|
|
97c884de42 | ||
|
|
6cc974a8e9 | ||
|
|
5f3822ac1a | ||
|
|
e9763f4ec6 | ||
|
|
e4d03f9581 | ||
|
|
8b0ac6e81e | ||
|
|
a73eba8916 | ||
|
|
c74d761a4b | ||
|
|
e60cc7b544 | ||
|
|
515e53b220 | ||
|
|
8948c3f435 | ||
|
|
3a1367a1d8 | ||
|
|
e114873e4c | ||
|
|
be8f98f6c7 | ||
|
|
5a685474ff | ||
|
|
185974a3ea | ||
|
|
6c87711595 | ||
|
|
35b8e389a3 | ||
|
|
51564d1adc | ||
|
|
88df06ee47 | ||
|
|
770c746444 | ||
|
|
47215ddb13 | ||
|
|
fb09066679 | ||
|
|
7591095f2a | ||
|
|
48575c09ca | ||
|
|
5fc01fe685 | ||
|
|
df94dd2cf5 | ||
|
|
ae53ce5544 | ||
|
|
1f0e6c0426 | ||
|
|
7f84c3c71c | ||
|
|
8a050810c1 | ||
|
|
4033f7a47d | ||
|
|
62cc64d912 | ||
|
|
290ca2178d | ||
|
|
b935f8a3f3 | ||
|
|
65e31115a1 | ||
|
|
19d536ea8b | ||
|
|
8aa2401134 | ||
|
|
4699d9404b | ||
|
|
b50132e255 | ||
|
|
8f1c4af9fa | ||
|
|
d5bd816676 | ||
|
|
8093528694 | ||
|
|
7b7bf5d390 | ||
|
|
8db140fe89 | ||
|
|
2e4148a9eb | ||
|
|
ed356ba85d | ||
|
|
cf79fef0bc | ||
|
|
d4b4451a48 | ||
|
|
2f57a4f86f | ||
|
|
31b665d344 | ||
|
|
6d56bc7c0c | ||
|
|
89cf28fade | ||
|
|
8087e8ad75 | ||
|
|
df19ced50c | ||
|
|
dba8865d75 | ||
|
|
d506cf2d2a | ||
|
|
5e30e1a2ee | ||
|
|
af6d96843d | ||
|
|
c0acc1d087 | ||
|
|
98e3343808 | ||
|
|
3c72f195ba | ||
|
|
f3f46858c9 | ||
|
|
861a847692 | ||
|
|
d4631229af | ||
|
|
a78f7d5789 | ||
|
|
fca5c77089 | ||
|
|
fe828a1c49 | ||
|
|
11e3573ebd | ||
|
|
ff1d625dc8 | ||
|
|
bd9691532f | ||
|
|
133b597093 | ||
|
|
d4d540bc33 | ||
|
|
d08322c1a3 | ||
|
|
ec1c664ed6 | ||
|
|
a3b46581b0 | ||
|
|
b115d4f02d | ||
|
|
6e64ede90b | ||
|
|
1917c2ce38 | ||
|
|
c06c2422a9 | ||
|
|
14d205f845 | ||
|
|
a57ce557e8 | ||
|
|
23c200f333 | ||
|
|
bf6a3adc06 | ||
|
|
60a8c8212c | ||
|
|
525c9c8fd8 | ||
|
|
08651685d4 | ||
|
|
3a60abaeee | ||
|
|
1e5d980b85 | ||
|
|
f9e97735e6 | ||
|
|
df36aceddb | ||
|
|
600e1cdbfb | ||
|
|
d0f11db700 | ||
|
|
27de8138f5 | ||
|
|
bc0cd2332c | ||
|
|
c1b5287ba0 | ||
|
|
a2a43b3996 | ||
|
|
6c07ecb700 | ||
|
|
2d3f848ab3 | ||
|
|
fdd188516b | ||
|
|
4c95b1d7ad | ||
|
|
19b7b51eea | ||
|
|
3c355e2d75 | ||
|
|
290c2f7b62 | ||
|
|
be7bcd03e1 | ||
|
|
0965f4213e | ||
|
|
bb9ca6e40f | ||
|
|
672ea6d6f2 | ||
|
|
ec189a4867 | ||
|
|
f67a50c064 | ||
|
|
a0fba34ff6 | ||
|
|
7ea45ac3d2 | ||
|
|
78a58617c1 | ||
|
|
f098aeb622 | ||
|
|
6904afc5e7 | ||
|
|
b079b30694 | ||
|
|
3e8a425684 | ||
|
|
b47c4c8f71 | ||
|
|
6d3097ae76 | ||
|
|
09e521c2c2 | ||
|
|
2439cf4633 | ||
|
|
f1b31f26d0 | ||
|
|
b1eca89a05 | ||
|
|
09bf2a0fe0 | ||
|
|
2d754641b5 | ||
|
|
871a0dfc6c | ||
|
|
3521d4a4f7 | ||
|
|
407f12760c | ||
|
|
479975fdff | ||
|
|
98fae8a6de | ||
|
|
2e94104ff8 | ||
|
|
039c13fc0a | ||
|
|
de266e8c88 | ||
|
|
ada99077a4 | ||
|
|
f5588f94db | ||
|
|
2a325ae4cc | ||
|
|
ac9345419e | ||
|
|
b3fb020dfa | ||
|
|
4b885a6e30 | ||
|
|
fa814d64de | ||
|
|
8aa376de25 | ||
|
|
14e7f2d986 | ||
|
|
f816f3d29b | ||
|
|
3db9987966 | ||
|
|
5e40bd5deb | ||
|
|
74a9ddbe47 | ||
|
|
188c2ae7ea | ||
|
|
e645c19761 | ||
|
|
baf9cab66c | ||
|
|
2fd940bcde | ||
|
|
f4988c5d86 | ||
|
|
b59b3a3a74 | ||
|
|
c677db70b4 | ||
|
|
9861f294b7 | ||
|
|
c7a42a1641 | ||
|
|
e2a721b209 | ||
|
|
66090e3926 | ||
|
|
60395fb16d | ||
|
|
54881facf8 | ||
|
|
9f2f131df9 | ||
|
|
70ab4122a3 | ||
|
|
7302fb951e | ||
|
|
dee8ccd8b3 | ||
|
|
40b2efb339 | ||
|
|
190e74b4d2 | ||
|
|
8bec08799e | ||
|
|
003b056301 | ||
|
|
97fd58f793 | ||
|
|
aa70d410f8 | ||
|
|
ab21a9238d | ||
|
|
be080b1463 | ||
|
|
f8ef3e6754 | ||
|
|
e4e8b939e2 | ||
|
|
020f122647 | ||
|
|
ab0626720a | ||
|
|
637c05466a | ||
|
|
08b98739f7 | ||
|
|
920a835344 | ||
|
|
88e27e315f | ||
|
|
7d3427474d | ||
|
|
d77183fd48 | ||
|
|
caa601c9aa | ||
|
|
b9a0152000 | ||
|
|
5c5e4e3464 | ||
|
|
044f987ecd | ||
|
|
295351d3e9 | ||
|
|
ab7ca411a4 | ||
|
|
c0dee497cd | ||
|
|
247e51478b | ||
|
|
a0540e0452 | ||
|
|
515d421dc0 | ||
|
|
6032f52798 | ||
|
|
05989fdc58 | ||
|
|
b62fafe520 | ||
|
|
4562a0130a | ||
|
|
6949481198 | ||
|
|
5654170278 | ||
|
|
735a324f5a | ||
|
|
2cb51f5b58 | ||
|
|
3baeef4f44 | ||
|
|
cada78ca4d | ||
|
|
a2929ef441 | ||
|
|
6c7c8b43b9 | ||
|
|
d0940708b0 | ||
|
|
af21f3c5d8 | ||
|
|
dd18040232 | ||
|
|
c72e3a1585 | ||
|
|
888a47e7a9 | ||
|
|
0df51d2d7c | ||
|
|
022945b0d1 | ||
|
|
0e62284671 | ||
|
|
704103f9f1 | ||
|
|
1f2ffe7e76 | ||
|
|
b763abdc76 | ||
|
|
af2fcbc059 | ||
|
|
0c4d278de2 | ||
|
|
9596d24cca | ||
|
|
a52b71ef43 | ||
|
|
216289455e | ||
|
|
019d8cf756 | ||
|
|
3a1c09f89c | ||
|
|
e9ed4a3f93 | ||
|
|
164d6b1b6c | ||
|
|
2307dfaaac | ||
|
|
3cecc1229f | ||
|
|
cca895e418 | ||
|
|
ddda934eed | ||
|
|
1d8c9ecfc4 | ||
|
|
1f20574520 | ||
|
|
da81bc3ba5 | ||
|
|
013fb58267 | ||
|
|
f4f2feae3c | ||
|
|
ffad6e47ec | ||
|
|
2b8f884c12 | ||
|
|
2df0d81d29 | ||
|
|
b02c4904a9 | ||
|
|
f73cdac9e2 | ||
|
|
de848511af | ||
|
|
9e294529cf | ||
|
|
96d6accbde | ||
|
|
86e276ea94 | ||
|
|
8566d62aee | ||
|
|
0ccc78e90a | ||
|
|
3c86207d63 | ||
|
|
c2a37c814d | ||
|
|
4727866b15 | ||
|
|
7a3c33fde3 | ||
|
|
087735a08f | ||
|
|
a3077d91ec | ||
|
|
649763f2b1 | ||
|
|
f9b988a232 | ||
|
|
ab45bcb121 | ||
|
|
e9190d01dc | ||
|
|
ba0e98fd4b | ||
|
|
40cc5b379b | ||
|
|
b1cb48aa9b | ||
|
|
82d9165d92 | ||
|
|
39d4ee9ad8 | ||
|
|
2cdd444e29 | ||
|
|
d492f0f41f | ||
|
|
943e085d37 | ||
|
|
0624f9103f | ||
|
|
cab1530afc | ||
|
|
90e63f1898 | ||
|
|
b2fdd92f9c | ||
|
|
91701b484a | ||
|
|
9fdae1ac45 | ||
|
|
b7766946d8 | ||
|
|
9486749345 | ||
|
|
a3bec4d5fc | ||
|
|
d8cc091f94 | ||
|
|
89ba4aeeaf | ||
|
|
a2f223a992 | ||
|
|
286efade59 | ||
|
|
4e7888259f | ||
|
|
8e3fa892e1 | ||
|
|
8de0c55b68 | ||
|
|
4c27d2600a | ||
|
|
59cfb14a19 | ||
|
|
6f7cf4f186 | ||
|
|
52454c50b7 | ||
|
|
c56219f5b4 | ||
|
|
99b6e1f93c | ||
|
|
6ff1549d2e | ||
|
|
1b05e8ddc9 | ||
|
|
4745877a63 | ||
|
|
c81c7f5a33 | ||
|
|
a23beddc66 | ||
|
|
045929681d | ||
|
|
cf0cf52298 | ||
|
|
1ff7c8bdd5 | ||
|
|
7254f766d5 | ||
|
|
83e07ec76c | ||
|
|
c3a1f25894 | ||
|
|
750d8b0a25 | ||
|
|
2e4558a5d3 | ||
|
|
3e5813323b | ||
|
|
ecd858251f | ||
|
|
ac0847ffe3 | ||
|
|
d1bf49790e | ||
|
|
815f24fbf5 | ||
|
|
d83352e16f | ||
|
|
8715ab9322 | ||
|
|
4df294f0a2 | ||
|
|
cbbe1b4f47 | ||
|
|
8ccd6a8ed3 | ||
|
|
cbd222fe30 | ||
|
|
1683567dda | ||
|
|
da2e40db4d | ||
|
|
e3c37f003b | ||
|
|
c9eebafb2d | ||
|
|
751da877ee | ||
|
|
14d19b5117 | ||
|
|
41d4c883a3 | ||
|
|
09504508d9 | ||
|
|
94c755a0e6 | ||
|
|
f21cff335b | ||
|
|
6947996c9a | ||
|
|
0756090081 | ||
|
|
95e03d2684 | ||
|
|
fab5833cdf | ||
|
|
a011c10d4d | ||
|
|
14584bef55 | ||
|
|
907a371bd4 | ||
|
|
a420c1749a | ||
|
|
c29e9bb68d | ||
|
|
fd965e6022 | ||
|
|
2e8d7a20d0 | ||
|
|
8084ed191e | ||
|
|
0b51e50c19 | ||
|
|
659e056eeb | ||
|
|
c70023c066 | ||
|
|
ba2bdf8ea4 | ||
|
|
57330bb2cd | ||
|
|
16fdef2d55 | ||
|
|
31928d5ebb | ||
|
|
8370b99302 | ||
|
|
13f98e1675 | ||
|
|
615804333e | ||
|
|
e1b9e113b1 | ||
|
|
dfbde3e41c | ||
|
|
034b4feff4 | ||
|
|
949439361e | ||
|
|
163b6b3725 | ||
|
|
bdc6addf81 | ||
|
|
fd7c1e24a3 | ||
|
|
a16ecbcebd | ||
|
|
0a1f6be4a5 | ||
|
|
98bf462e02 | ||
|
|
86fa59e5e1 | ||
|
|
1ddadeba5d | ||
|
|
2e1d5d4d13 | ||
|
|
31b29abf5f | ||
|
|
16c428dbd5 | ||
|
|
54bc6550ee | ||
|
|
a698cb6ef7 | ||
|
|
5f86ab27bb | ||
|
|
f0b2c08a9e | ||
|
|
3f8c705989 | ||
|
|
6f84574511 | ||
|
|
6a131977d3 | ||
|
|
4df0075b42 | ||
|
|
e3972c6205 | ||
|
|
4e949f542c | ||
|
|
af38fd3ba3 | ||
|
|
d00ac278c6 | ||
|
|
0e01303921 | ||
|
|
39eeaf06e5 | ||
|
|
7c2c4b26b3 | ||
|
|
2ea0703701 | ||
|
|
d425cdc27d | ||
|
|
799c833a66 | ||
|
|
96bc88d045 | ||
|
|
da7bbc2b20 | ||
|
|
7b4f6c3222 | ||
|
|
e3bc528647 | ||
|
|
29665203c0 | ||
|
|
7beb9afc36 | ||
|
|
2fcb3a0131 | ||
|
|
0a9749726f | ||
|
|
c1e6d9c633 | ||
|
|
4767d49e4d | ||
|
|
2bf7e8506c | ||
|
|
447966e3b8 | ||
|
|
adc17272dc | ||
|
|
6e54f34419 | ||
|
|
4b4051a823 | ||
|
|
5c4e230f69 | ||
|
|
2c191a9bd3 | ||
|
|
ed9313759b | ||
|
|
70a7a72baa | ||
|
|
4d69025250 | ||
|
|
9f9028b7ce | ||
|
|
e9be3242b2 | ||
|
|
6868b683d8 | ||
|
|
4934ec2ea1 | ||
|
|
211a06e9bc | ||
|
|
debca0a82d | ||
|
|
92da954229 | ||
|
|
91d96b162e | ||
|
|
0907bf195e | ||
|
|
f30b14a3da | ||
|
|
2030793a02 | ||
|
|
d09f561ef6 | ||
|
|
2d1bede57e | ||
|
|
a947ec10e4 | ||
|
|
fd04f94b76 | ||
|
|
6881446e67 | ||
|
|
bd0a9952ff | ||
|
|
c35255b82b | ||
|
|
5e71e7d04d | ||
|
|
cdf3c62d17 | ||
|
|
e7e2176e64 | ||
|
|
ecb9e92c48 | ||
|
|
053c2eb379 | ||
|
|
bde2810c08 | ||
|
|
692159219e | ||
|
|
71b194cbcb | ||
|
|
fb81c7e8e0 | ||
|
|
84878315d5 | ||
|
|
1bd675cce9 | ||
|
|
e77a0a9385 | ||
|
|
d63da05e87 | ||
|
|
dece58faf6 | ||
|
|
0bfc166899 | ||
|
|
3bc8006028 | ||
|
|
f6b7a35c81 | ||
|
|
5f17b28e05 | ||
|
|
138099f11d | ||
|
|
beb425bbd0 | ||
|
|
b5631aa1df | ||
|
|
2958881343 | ||
|
|
981e26e1b6 | ||
|
|
b5e11f2303 | ||
|
|
6a159aa631 | ||
|
|
4b14a4bc50 | ||
|
|
2ca4b15154 | ||
|
|
e02d602341 | ||
|
|
8d218db35f | ||
|
|
f96d78e9b8 | ||
|
|
28dd7e4ca7 | ||
|
|
14a0e6bd6e | ||
|
|
f2b2952909 | ||
|
|
adc82bea85 | ||
|
|
778adc2f39 | ||
|
|
a92895d09d | ||
|
|
dfb66cc41f | ||
|
|
065180e86c | ||
|
|
73cd7f7513 | ||
|
|
e2d5534959 | ||
|
|
a6cbdfc559 | ||
|
|
7c643ea698 | ||
|
|
39be3d0958 | ||
|
|
e693141f50 | ||
|
|
927dad4ff5 | ||
|
|
885caa52db | ||
|
|
88776b4e00 | ||
|
|
8b963f3fe4 | ||
|
|
4a4ac1d6c8 | ||
|
|
b5eef748b4 | ||
|
|
6ebe235dc3 | ||
|
|
bbde3159bb | ||
|
|
7e65aea6d9 | ||
|
|
e377675897 | ||
|
|
c3d40c9fb9 | ||
|
|
5efc61b155 | ||
|
|
323ab5498b | ||
|
|
b6e18e70bc | ||
|
|
1496d9d931 | ||
|
|
e0e35f5abf | ||
|
|
e6a4a6c882 | ||
|
|
24f0f99c84 | ||
|
|
418d45cd8d | ||
|
|
9253872b5b | ||
|
|
9615098d76 | ||
|
|
89b6b26d5a | ||
|
|
9d9b64fc3d | ||
|
|
0b7e4d594e | ||
|
|
1bdf0b5500 | ||
|
|
acb6f1fc87 | ||
|
|
a57e8f3a5d | ||
|
|
4cb86b76e8 | ||
|
|
24f9511726 | ||
|
|
e4d160ee0b | ||
|
|
21d91193a2 | ||
|
|
4d7f925c5a | ||
|
|
ad5f3f2450 | ||
|
|
a84fc734ff | ||
|
|
b9e28a5f09 | ||
|
|
57636a31ce | ||
|
|
9a4b357bcd | ||
|
|
a9b5d96d65 | ||
|
|
8ad2da30ca | ||
|
|
92f44f0aaa | ||
|
|
b2d3b2cf72 | ||
|
|
2fdc840fa6 | ||
|
|
3d5a5e4d86 | ||
|
|
176c25004c | ||
|
|
962409a9b3 | ||
|
|
2d14a74ec2 | ||
|
|
942a604b5b | ||
|
|
11c75c9905 | ||
|
|
a881fb8bd7 | ||
|
|
fa319391c0 | ||
|
|
d008113eec | ||
|
|
6ad132e12d | ||
|
|
4509545214 | ||
|
|
dc16077205 | ||
|
|
414f4d3a6e | ||
|
|
6a188a5906 | ||
|
|
1ea12fedb9 | ||
|
|
cf3350c6b6 | ||
|
|
e5ea8074d2 | ||
|
|
2779c8e69f | ||
|
|
1d12014399 | ||
|
|
d4b26025ed | ||
|
|
597f177d5b | ||
|
|
8435d866ca | ||
|
|
d16f7e0941 | ||
|
|
fa6b7d0d42 | ||
|
|
a5715e76c4 | ||
|
|
299998e8ff | ||
|
|
4e90f82af3 | ||
|
|
8d71ee30d4 | ||
|
|
5b746af4bd | ||
|
|
885c62990a | ||
|
|
d9cccc8752 | ||
|
|
1d9c4430f7 | ||
|
|
0e8cb1059f | ||
|
|
b5caba6ecf | ||
|
|
f78b491849 | ||
|
|
81347d370d | ||
|
|
9a5f87073f | ||
|
|
939cc80851 | ||
|
|
5067d75fa0 | ||
|
|
0c15fffd9c | ||
|
|
3aa68907e4 | ||
|
|
30c2d3a3dc | ||
|
|
27696d65e4 | ||
|
|
585287b487 | ||
|
|
325c8dc68d | ||
|
|
c37d4013f8 | ||
|
|
9eb8158c36 | ||
|
|
e258ff60d0 | ||
|
|
70eadd11cb | ||
|
|
a270de6e4e | ||
|
|
64154286e0 | ||
|
|
22cb1669e1 | ||
|
|
0fdee99227 | ||
|
|
56cf3418ff | ||
|
|
15c5ffcb76 | ||
|
|
c2321c502f | ||
|
|
e129319faa | ||
|
|
5108c03fec | ||
|
|
d5a6683c26 | ||
|
|
e12c41d7e7 | ||
|
|
8ea153da54 | ||
|
|
dc0be12084 | ||
|
|
cd675b23d1 | ||
|
|
9ffb5e6a16 | ||
|
|
5cc6e4c543 | ||
|
|
1572778761 | ||
|
|
1469953b5e | ||
|
|
330ee77e58 | ||
|
|
9772c85ece | ||
|
|
a4ee1e112c | ||
|
|
ee7a5e1681 | ||
|
|
cdeee65505 | ||
|
|
33c2dda471 | ||
|
|
730b572d4f | ||
|
|
7c95e6dffa | ||
|
|
d70ee34429 | ||
|
|
d0979d693b | ||
|
|
bd9ed0d5d3 | ||
|
|
51cb9814d2 | ||
|
|
d274c418d1 | ||
|
|
c353e9ffb1 | ||
|
|
c17d4de0a5 | ||
|
|
57397fa2bc | ||
|
|
91ece2b7f2 | ||
|
|
b687ffe696 | ||
|
|
0cb36c02f3 | ||
|
|
c7c70a35a0 | ||
|
|
c13bd18271 | ||
|
|
fba4d5d04d | ||
|
|
7ec43e42fd | ||
|
|
8cc6fa6030 | ||
|
|
2018d44ba8 | ||
|
|
afea7b66bd | ||
|
|
deededb0d9 | ||
|
|
2c0eaeb557 | ||
|
|
b4b359475d | ||
|
|
2a642ea405 | ||
|
|
dd943116af | ||
|
|
6a1dc8b5ae | ||
|
|
78c738c5ab | ||
|
|
f943b956f0 | ||
|
|
eb35e4d642 | ||
|
|
d3fa849dee | ||
|
|
df29c71ecb | ||
|
|
6c78594e82 | ||
|
|
1b0e64dacb | ||
|
|
e398e233d1 | ||
|
|
36db4b5d59 | ||
|
|
b28556cd40 | ||
|
|
434a0c6056 | ||
|
|
1510a5af74 | ||
|
|
00f6277eb7 | ||
|
|
12c2d93968 | ||
|
|
41bbd7b259 | ||
|
|
6921070ed6 | ||
|
|
73eb2e474d | ||
|
|
5715247de9 | ||
|
|
75ef523bc5 | ||
|
|
22d268c6e1 | ||
|
|
108b99f99b | ||
|
|
6087506cf0 | ||
|
|
67063e089c | ||
|
|
6d630d3a1b | ||
|
|
a70d14b589 | ||
|
|
f7bd793d93 | ||
|
|
0b065ea76b | ||
|
|
ba0658ed48 | ||
|
|
562ca919e0 | ||
|
|
e7ffff12b3 | ||
|
|
c3696f5425 | ||
|
|
b4d6626b2d | ||
|
|
95c25dec40 | ||
|
|
18bc4fb520 | ||
|
|
1910463e8f | ||
|
|
bc87337b35 | ||
|
|
aed0af8772 | ||
|
|
82a5fdb796 | ||
|
|
b79f485af0 | ||
|
|
342d6a07c0 | ||
|
|
ccc119ed8b | ||
|
|
2a0be718d7 | ||
|
|
98be2bd5b4 | ||
|
|
f35b1c0ad6 | ||
|
|
ea5bab31e6 | ||
|
|
42e55b8e49 | ||
|
|
4102f5cc97 | ||
|
|
967037ff89 | ||
|
|
6650333143 | ||
|
|
90ed47b836 | ||
|
|
805161ff71 | ||
|
|
e2ab9ed6cf | ||
|
|
8e95728e20 | ||
|
|
91e2092674 | ||
|
|
6e029f56a4 | ||
|
|
42700a2325 | ||
|
|
02b79248ec | ||
|
|
cde0d6dff5 | ||
|
|
5aaafa45c8 | ||
|
|
1ab57e4bc2 | ||
|
|
d5ec44a2b8 | ||
|
|
a07bfec433 | ||
|
|
5edee1be0b | ||
|
|
dbab60d064 | ||
|
|
f23294c898 | ||
|
|
6bebe673fe | ||
|
|
f504287aef | ||
|
|
0545bc6557 | ||
|
|
9d5b542603 | ||
|
|
39a502cadd | ||
|
|
f083ada3b3 | ||
|
|
de8ee126cf | ||
|
|
79d345e0f8 | ||
|
|
538009eff6 | ||
|
|
a9b264227a | ||
|
|
90f885b5ac | ||
|
|
f13bd87702 | ||
|
|
0c4bbc4a82 | ||
|
|
8d31428a9d | ||
|
|
3b14aacc0f | ||
|
|
c0ad631039 | ||
|
|
8db7c17798 | ||
|
|
170c2dc19c | ||
|
|
78a0a595b9 | ||
|
|
bfcbf66044 | ||
|
|
299b8cde1b | ||
|
|
56cbf86df4 | ||
|
|
92610ca88a | ||
|
|
eca2869894 | ||
|
|
dfbbdf10f6 | ||
|
|
20e44ad7ae | ||
|
|
37c5ecc755 | ||
|
|
f69c37fe91 | ||
|
|
8a8644804b | ||
|
|
eed349ab85 | ||
|
|
dc4257bbf4 | ||
|
|
8e222c1e67 | ||
|
|
7473c4272a | ||
|
|
947f5b79de | ||
|
|
b54527e9a5 | ||
|
|
89a2d8db74 | ||
|
|
50cc135dde | ||
|
|
4584a4b8b4 | ||
|
|
3045275ab5 | ||
|
|
95db7faf8a | ||
|
|
b63891a7c5 | ||
|
|
2ffca7db48 | ||
|
|
139293b21c | ||
|
|
3378b387cf | ||
|
|
614572ca80 | ||
|
|
db2eb98c27 | ||
|
|
a20296cded | ||
|
|
f0adc59d4c | ||
|
|
3b63dd49dc | ||
|
|
a5201d79cb | ||
|
|
ede9d034c7 | ||
|
|
0665b9b032 | ||
|
|
115cef3ffb | ||
|
|
70086f5ca6 | ||
|
|
403066a83f | ||
|
|
7a25186634 | ||
|
|
0888bd70e1 | ||
|
|
062ec44890 | ||
|
|
db13c96d04 | ||
|
|
487a116795 | ||
|
|
7deee064d0 | ||
|
|
e0d15a882e | ||
|
|
bf7429f028 | ||
|
|
1923a55443 | ||
|
|
d973f28755 | ||
|
|
8e9fb58677 | ||
|
|
bd9463fe58 | ||
|
|
5f8e4b5316 | ||
|
|
4fdc0ba9db | ||
|
|
1ce2165717 | ||
|
|
bf1f22e7dd | ||
|
|
55125491e4 | ||
|
|
0dc07de77d | ||
|
|
1a0f37fa45 | ||
|
|
366d601983 | ||
|
|
1c27a8e0da | ||
|
|
8d64a6672f | ||
|
|
1f957a2817 | ||
|
|
25b77c91db | ||
|
|
3fbe5e218c | ||
|
|
10e97a567b | ||
|
|
7d1e85c0d4 | ||
|
|
3e26c926fa | ||
|
|
2861f4be36 | ||
|
|
9667a0a5de | ||
|
|
7c5a098cab | ||
|
|
e5b24e39ee | ||
|
|
d2325c57a3 | ||
|
|
f3949dea40 | ||
|
|
d0bda15b0a | ||
|
|
322be33ac4 | ||
|
|
c76c2df925 | ||
|
|
77ec41a820 | ||
|
|
9c75ed5b06 | ||
|
|
2990616a5c | ||
|
|
870c5d8343 | ||
|
|
6ee326e716 | ||
|
|
92c87872ad | ||
|
|
5ff9cf43df | ||
|
|
710ad598d9 | ||
|
|
2382118dad | ||
|
|
ae8ec555fd | ||
|
|
fa55983f3a | ||
|
|
0c0ef6916b | ||
|
|
1234c9feb6 | ||
|
|
fe71353198 | ||
|
|
80e8788baa | ||
|
|
4a47be89de | ||
|
|
ea4c5a8e49 | ||
|
|
dee3972e3b | ||
|
|
3aaeffee5f | ||
|
|
549995cc2b | ||
|
|
e9868744f4 | ||
|
|
7105cd637f | ||
|
|
788bec4567 | ||
|
|
1f3d33c60a | ||
|
|
b20dada9af | ||
|
|
321b980c81 | ||
|
|
b40e4635d9 | ||
|
|
214323fa6e | ||
|
|
d9b1363788 | ||
|
|
22909b3390 | ||
|
|
014b970982 | ||
|
|
8bbdbde7ca | ||
|
|
dc5da378ed | ||
|
|
585be8fb57 | ||
|
|
8e5664c9ae | ||
|
|
e22f99cffb | ||
|
|
48742ceb0e | ||
|
|
87baabeaa5 | ||
|
|
357a407116 | ||
|
|
0c1aaecd78 | ||
|
|
b6a4568254 | ||
|
|
049392db8f | ||
|
|
0d9f2f2ae9 | ||
|
|
a77b30b93f | ||
|
|
68d84ae2c8 | ||
|
|
bd33b28d2d | ||
|
|
8d66875ebc | ||
|
|
23d5e33864 | ||
|
|
3893892927 | ||
|
|
b3b3c581f0 | ||
|
|
dceb5e62c6 | ||
|
|
93851d84bf | ||
|
|
003d28f9db | ||
|
|
efdf88be66 | ||
|
|
96a5b9e4ae | ||
|
|
ac96636f8a | ||
|
|
e8383d1850 | ||
|
|
eb67582313 | ||
|
|
ee0b6ad2f5 | ||
|
|
4f0d368f4f | ||
|
|
61359f746c | ||
|
|
bb66541c81 | ||
|
|
557c0a2c7f | ||
|
|
c7cf4c0704 | ||
|
|
2cc12490d8 | ||
|
|
eaf8e83d40 | ||
|
|
381370079b | ||
|
|
5e57f02fb6 | ||
|
|
2682314c6a | ||
|
|
69648098f6 | ||
|
|
1bf5c2de91 | ||
|
|
a460c3d682 | ||
|
|
79620ebc19 | ||
|
|
401b9df57f | ||
|
|
4b1c45ddb4 | ||
|
|
d63c741cfe | ||
|
|
f1d8265a02 | ||
|
|
26ebcd496d | ||
|
|
0179965a8d | ||
|
|
ff0ee1f020 | ||
|
|
0bd76c10bd | ||
|
|
dfb09802d5 | ||
|
|
3010b65a3f | ||
|
|
54f43b911b | ||
|
|
61ff6a88a2 | ||
|
|
5a913a8b74 | ||
|
|
39f34769fd | ||
|
|
238b3c254e | ||
|
|
1a70a4ec1c | ||
|
|
86d5a6f6b2 | ||
|
|
9bf50cae34 | ||
|
|
6fc5dad938 | ||
|
|
d382e70d72 | ||
|
|
1dc2a49581 | ||
|
|
e721fbbdb7 | ||
|
|
e251ddacd2 | ||
|
|
0b7cd71b92 | ||
|
|
0c9849b906 | ||
|
|
9f8dd4abf3 | ||
|
|
5152d80ac4 | ||
|
|
28ef1d12b0 | ||
|
|
678a31855f | ||
|
|
fc096ddb0b | ||
|
|
bd5c011cd9 | ||
|
|
efd34ded63 | ||
|
|
f013662e20 | ||
|
|
fa72b9b0d0 | ||
|
|
31c642b8bc | ||
|
|
8697604f2b | ||
|
|
711e27f048 | ||
|
|
ee14dd6e2d | ||
|
|
3c21a39cee | ||
|
|
be9253e388 | ||
|
|
635a52fd31 | ||
|
|
eb66b879c5 | ||
|
|
e36892ed38 | ||
|
|
008117fece | ||
|
|
ad50ef6e8c | ||
|
|
a9fd68a249 | ||
|
|
16a7d47f58 | ||
|
|
19aa3c0739 | ||
|
|
3c4c60da45 | ||
|
|
0e3aba3b0d | ||
|
|
67f8a36272 | ||
|
|
3f30923d12 | ||
|
|
9a9cfe1ce5 | ||
|
|
7a9124ca58 | ||
|
|
24e336cd77 | ||
|
|
de3b35fa6d | ||
|
|
191895507b | ||
|
|
4f11e0bf32 | ||
|
|
3310dfb0ab | ||
|
|
476a5bedb6 | ||
|
|
8dc6c6d045 | ||
|
|
6634210063 | ||
|
|
4c82a195af | ||
|
|
3b1c03329a | ||
|
|
b9f983a348 | ||
|
|
5bb8ac0ef8 | ||
|
|
0fe4d0bf18 | ||
|
|
a73c5b3776 | ||
|
|
9203c32412 | ||
|
|
67083ca148 | ||
|
|
5810ba68b5 | ||
|
|
4338580d2c | ||
|
|
149fc1a9c5 | ||
|
|
bebb2f8e9d | ||
|
|
c311271f30 | ||
|
|
17173f65d3 | ||
|
|
ffab0b35a8 | ||
|
|
43bf3a1f77 | ||
|
|
f2e6c86c79 | ||
|
|
2ae6646885 | ||
|
|
43fc829c4f | ||
|
|
adbbe3fc83 | ||
|
|
2136e85ac7 | ||
|
|
a87f5bab7f | ||
|
|
d978900590 | ||
|
|
365e2676fb | ||
|
|
e9fd293689 | ||
|
|
c4fc31e735 | ||
|
|
de72d93b9c | ||
|
|
4e03fdca31 | ||
|
|
bb59891310 | ||
|
|
86bb1fc9a4 | ||
|
|
d7feece887 | ||
|
|
904bdd9001 | ||
|
|
27ee82aad0 | ||
|
|
9bca006a45 | ||
|
|
33e77fd840 | ||
|
|
3681d4ed5f | ||
|
|
890a13a936 | ||
|
|
00c4404f9d | ||
|
|
b79e63c9d3 | ||
|
|
61b9567e3a | ||
|
|
8603c59815 | ||
|
|
99bf4ea58c | ||
|
|
68bf363010 | ||
|
|
6e50d4cc0a | ||
|
|
734706a567 | ||
|
|
35af9772bf | ||
|
|
90811d67fb | ||
|
|
28bdf82bfb | ||
|
|
8c72bf8ba8 | ||
|
|
af0937cbcc | ||
|
|
88d924f784 | ||
|
|
e2e82dba03 | ||
|
|
6451e3b986 | ||
|
|
f1ffb4fc22 | ||
|
|
1ff0e831aa | ||
|
|
a9f592ddec | ||
|
|
ceef077811 | ||
|
|
6067c9af0e | ||
|
|
ab1b3aaaff | ||
|
|
ad8d384537 | ||
|
|
b67a518b98 | ||
|
|
d8aa29f656 | ||
|
|
a7a345f05c | ||
|
|
7bd1907261 | ||
|
|
e30064ba0b | ||
|
|
2a3df92b20 | ||
|
|
6ebc4ca268 | ||
|
|
7d9172c377 | ||
|
|
f32ec659bf | ||
|
|
82b064fe37 | ||
|
|
4d603aecf3 | ||
|
|
2c2fe125ea | ||
|
|
70d96f3fdb | ||
|
|
af34bb4f38 | ||
|
|
a6a65fb7d2 | ||
|
|
d4f7d8eb67 | ||
|
|
3457037908 | ||
|
|
9a7f514f4a | ||
|
|
58264bb65c | ||
|
|
ba4bc54c9f | ||
|
|
6e949b975f | ||
|
|
f2bb0fcea6 | ||
|
|
af0d578555 | ||
|
|
123b986a07 | ||
|
|
9aa0e259fe | ||
|
|
f4ba9e8304 | ||
|
|
aefb4e782c | ||
|
|
bcd8f94b2c | ||
|
|
abd777026e | ||
|
|
4fec7136af | ||
|
|
e6830f10bb | ||
|
|
68f1d996c6 | ||
|
|
4a5c760215 | ||
|
|
7e830c9aab | ||
|
|
64cd356c34 | ||
|
|
3869d8670c | ||
|
|
b065e4d52b | ||
|
|
8340c0665d | ||
|
|
447ddb73de | ||
|
|
9567e3dc4a | ||
|
|
f1f7697df2 | ||
|
|
5f033a98bf | ||
|
|
cb1eb0f5a3 | ||
|
|
42fa913be5 | ||
|
|
6c367a4b58 | ||
|
|
bc1c54b643 | ||
|
|
21d68eb1dc | ||
|
|
995685241a | ||
|
|
377c9a3d41 | ||
|
|
27c36f3880 | ||
|
|
dbd6e8ed6d | ||
|
|
ca818bc497 | ||
|
|
eb1407ed62 | ||
|
|
683b4507e6 | ||
|
|
55a6afd022 | ||
|
|
97bed81c9e | ||
|
|
df50ef8877 | ||
|
|
c2685f4df7 | ||
|
|
8c9f674050 | ||
|
|
114824e5c8 | ||
|
|
197c370beb | ||
|
|
0e5f0cb6e6 | ||
|
|
66a992582f | ||
|
|
cde43a25ff | ||
|
|
f5c750520c | ||
|
|
0ded954efd | ||
|
|
690bca5e03 | ||
|
|
8210a78b1f | ||
|
|
326dfb44f1 | ||
|
|
896ce13f57 | ||
|
|
bf14e626e0 | ||
|
|
4bff145394 | ||
|
|
4e039164f7 | ||
|
|
6d2b1a7330 | ||
|
|
b3da2b7029 | ||
|
|
305e5cdf55 | ||
|
|
c3da3e3cce | ||
|
|
3fa21688aa | ||
|
|
15757a745b | ||
|
|
fe15a335a9 | ||
|
|
be0b9ef358 | ||
|
|
aef093a3e5 | ||
|
|
cff7463a7c | ||
|
|
d4052568be | ||
|
|
8b2d7e2917 | ||
|
|
c0769581ea | ||
|
|
dc0d80c622 | ||
|
|
d723529708 | ||
|
|
e08bd436d7 | ||
|
|
d4ccb369f4 | ||
|
|
9d2563c72b | ||
|
|
da04be1761 | ||
|
|
d1f5703369 | ||
|
|
d32451be1c | ||
|
|
7941cbbd34 | ||
|
|
d9b092b593 | ||
|
|
bd430d61e3 | ||
|
|
cdc3155734 | ||
|
|
0469754da7 | ||
|
|
5ee0b640bd | ||
|
|
0839662e68 | ||
|
|
5e00ef5052 | ||
|
|
dbe7b80e07 | ||
|
|
b404a10285 | ||
|
|
752be16772 | ||
|
|
95dd867d47 | ||
|
|
4a20a0eb01 | ||
|
|
b80ff750fb | ||
|
|
a9ac3a2aa1 | ||
|
|
2f177c50fc | ||
|
|
10936b6910 | ||
|
|
1d9cd3ee49 | ||
|
|
4a706b6f90 | ||
|
|
4c91c08b22 | ||
|
|
0e0032e020 | ||
|
|
1ac2503190 | ||
|
|
35ed4a1c8d | ||
|
|
7df2f83202 | ||
|
|
619810544a | ||
|
|
850ac2b2f3 | ||
|
|
f21036d1f0 | ||
|
|
efc7078a22 | ||
|
|
c19c624652 | ||
|
|
8cd4a6cc27 | ||
|
|
e4ad4f38c8 | ||
|
|
5fb0b9cfb1 | ||
|
|
f1b2b1766d | ||
|
|
00f3909e19 | ||
|
|
7b39bc0780 | ||
|
|
3f47aef77b | ||
|
|
cc3c938e16 | ||
|
|
68a7dd4390 | ||
|
|
65131e87c7 | ||
|
|
e0a824cfb6 | ||
|
|
b62cfc017b | ||
|
|
ce21670931 | ||
|
|
cb14ae5013 | ||
|
|
accae5e074 | ||
|
|
54274417d7 | ||
|
|
fa1c79a1da | ||
|
|
3f6737a3b8 | ||
|
|
0acea8877a | ||
|
|
1a9e54d11b | ||
|
|
48ee32ddde | ||
|
|
b6fd859dc4 | ||
|
|
2c023e4733 | ||
|
|
6af156af39 | ||
|
|
8513e6a6c2 | ||
|
|
617192a6d9 | ||
|
|
9b7bf1918d | ||
|
|
bb0bcdd406 | ||
|
|
2a62998479 | ||
|
|
287e083b0a | ||
|
|
702a10fff5 | ||
|
|
2ddbb628a4 | ||
|
|
1d83e0d678 | ||
|
|
515e166006 | ||
|
|
0927c11798 | ||
|
|
4b60c879f1 | ||
|
|
0252922cb7 | ||
|
|
eb31076c4e | ||
|
|
29d19c6f10 | ||
|
|
19b97bf8a6 | ||
|
|
609572bbb8 |
12
.github/FUNDING.yml
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
# github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
|
||||
# patreon: # Replace with a single Patreon username
|
||||
# open_collective: # Replace with a single Open Collective username
|
||||
ko_fi: jadzia626
|
||||
# tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
|
||||
# community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
|
||||
# liberapay: # Replace with a single Liberapay username
|
||||
# issuehunt: # Replace with a single IssueHunt username
|
||||
# otechie: # Replace with a single Otechie username
|
||||
# custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
|
||||
24
.github/ISSUE_TEMPLATE/bug-report.md
vendored
@@ -5,20 +5,12 @@ title: ""
|
||||
labels: bug
|
||||
---
|
||||
|
||||
**Describe the Bug**
|
||||
A clear and concise description of what the bug is.
|
||||
**Note**: Issues without a description will not be considered.
|
||||
Please also check if an issue already exists on this problem.
|
||||
Please provide a description covering the following points, if applicable:
|
||||
|
||||
**To Reproduce**
|
||||
Steps to reproduce the behaviour:
|
||||
|
||||
**Expected Behaviour**
|
||||
A clear and concise description of what you expected to happen.
|
||||
|
||||
**Screenshots**
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Error Message**
|
||||
If the error dialog popped up, copy/paste the content here.
|
||||
|
||||
**Additional Context**
|
||||
Add any other context about the problem here.
|
||||
* A clear and concise description of what the bug is.
|
||||
* Steps to reproduce the behaviour
|
||||
* A clear and concise description of what you expected to happen.
|
||||
* If applicable, add screenshots to help explain your problem.
|
||||
* If the error dialog popped up, copy/paste the content here.
|
||||
|
||||
17
.github/ISSUE_TEMPLATE/feature-request.md
vendored
@@ -5,14 +5,11 @@ title: ""
|
||||
labels: enhancement
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe:**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
**Note**: Feature requests without a description will not be considered.
|
||||
Please also check if an issue already exists on this feature.
|
||||
Please provide a description covering the following points, if applicable:
|
||||
|
||||
**Describe the solution you'd like:**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered:**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context:**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
* A clear and concise description of what the problem is. Ex. I'm always frustrated when ...
|
||||
* A clear and concise description of what you want to happen.
|
||||
* A clear and concise description of any alternative solutions or features you've considered.
|
||||
* If applicable, add screenshots to help explain your request.
|
||||
|
||||
24
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
<!--
|
||||
Please check the following before you make a pull request:
|
||||
|
||||
* The branch you are making the pull request from (in your own fork) has a unique and descriptive
|
||||
name. Do not make a pull request directly from your copy of `main`.
|
||||
* If you are submitting translation files, only submit the files that you have added translations
|
||||
to, not the other .ts files that may have been updated in the process.
|
||||
* Make sure your contribution follows the style guide and other requirements mentioned in the
|
||||
CONTRIBUTING.md file in the repository.
|
||||
* Fill in the Summary section below, and if relevant, mention the issue numbers related to the PR.
|
||||
-->
|
||||
|
||||
**Summary:**
|
||||
|
||||
**Related Issue(s):**
|
||||
|
||||
**Reviewer's Checklist:**
|
||||
|
||||
* [ ] The header of all files contain a reference to the repository license
|
||||
* [ ] The overall test coverage is increased or remains the same as before
|
||||
* [ ] All tests are passing
|
||||
* [ ] All flake8 checks are passing and the style guide is followed
|
||||
* [ ] Documentation (as docstrings) is complete and understandable
|
||||
* [ ] Only files that have been actively changed are committed
|
||||
103
.github/workflows/build.yml
vendored
Normal file
@@ -0,0 +1,103 @@
|
||||
name: Build
|
||||
|
||||
on: workflow_dispatch
|
||||
|
||||
jobs:
|
||||
buildAssets:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v4
|
||||
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@v3
|
||||
|
||||
- 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@v3
|
||||
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@v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
architecture: x64
|
||||
|
||||
- name: Install Packages (pip)
|
||||
run: pip install python-appimage
|
||||
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
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@v3
|
||||
with:
|
||||
name: novelWriter-Packages
|
||||
path: |
|
||||
dist_appimage/novelWriter*.AppImage
|
||||
dist_appimage/novelWriter*.AppImage.sha256
|
||||
if-no-files-found: error
|
||||
retention-days: 1
|
||||
|
||||
buildMac:
|
||||
needs: buildAssets
|
||||
runs-on: macos-12
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Download Artifacts
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: nw-assets
|
||||
path: novelwriter/assets
|
||||
|
||||
- name: Build App Bundle
|
||||
run: ./setup/macos/build.sh
|
||||
|
||||
- name: Upload DMG
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: novelWriter-Packages
|
||||
path: |
|
||||
dist_macos/novelWriter*.dmg
|
||||
dist_macos/novelWriter*.dmg.sha256
|
||||
if-no-files-found: error
|
||||
retention-days: 1
|
||||
29
.github/workflows/syntax.yml
vendored
@@ -1,27 +1,30 @@
|
||||
name: Flake8 Checks
|
||||
name: Flake8
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
checkSyntax:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v1
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: 3.7
|
||||
python-version: 3
|
||||
architecture: x64
|
||||
- name: Checkout novelWriter
|
||||
uses: actions/checkout@v2
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v3
|
||||
- name: Install flake8
|
||||
run: pip install flake8
|
||||
- name: Check for Syntax Error in novelWriter
|
||||
run: flake8 nw --count --select=E9,F63,F7,F82 --show-source --statistics
|
||||
- name: Check for Syntax Error in Tests
|
||||
run: flake8 tests --count --select=E9,F63,F7,F82 --show-source --statistics
|
||||
- name: Check for Code Style Violations
|
||||
run: flake8 nw --count --max-line-length=99 --ignore E203,E221,E226,E241,E251,E261,E266,E302,E305 --show-source --statistics
|
||||
- name: Syntax Check
|
||||
run: |
|
||||
flake8 --version
|
||||
flake8 novelwriter --count --show-source --statistics
|
||||
flake8 tests --count --show-source --statistics
|
||||
|
||||
41
.github/workflows/test_linux.yml
vendored
Normal file
@@ -0,0 +1,41 @@
|
||||
name: Linux
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
testLinux:
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
architecture: x64
|
||||
- name: Install Packages (apt)
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install libenchant-2-dev qttools5-dev-tools aspell-en
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v3
|
||||
- name: Install Dependencies (pip)
|
||||
run: |
|
||||
pip install -U -r requirements.txt -r tests/requirements.txt
|
||||
- name: Run Build Commands
|
||||
run: python pkgutils.py qtlrelease sample
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
pytest -v --cov=novelwriter --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v3
|
||||
35
.github/workflows/test_mac.yml
vendored
Normal file
@@ -0,0 +1,35 @@
|
||||
name: MacOS
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
testMac:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
architecture: x64
|
||||
- name: Install Packages (brew)
|
||||
run: |
|
||||
brew install enchant
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v3
|
||||
- name: Install Dependencies (pip)
|
||||
run: |
|
||||
pip install -U pyobjc -r requirements.txt -r tests/requirements.txt
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
pytest -v --cov=novelwriter --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v3
|
||||
31
.github/workflows/test_win.yml
vendored
Normal file
@@ -0,0 +1,31 @@
|
||||
name: Windows
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- dev
|
||||
|
||||
jobs:
|
||||
testWin:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: "3.11"
|
||||
architecture: x64
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v3
|
||||
- name: Install Dependencies (pip)
|
||||
run: |
|
||||
pip install -U -r requirements.txt -r tests/requirements.txt
|
||||
- name: Run Tests
|
||||
run: |
|
||||
pytest -v --cov=novelwriter --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v3
|
||||
27
.gitignore
vendored
@@ -1,28 +1,46 @@
|
||||
# Setup/Install
|
||||
/MANIFEST
|
||||
/dist/
|
||||
/build/
|
||||
/deploy/
|
||||
/dist/
|
||||
/dist_*/
|
||||
*.spec
|
||||
*.egg-info
|
||||
setup.iss
|
||||
/novelwriter.desktop
|
||||
/novelWriter.pyw
|
||||
/setup/macos/Info.plist
|
||||
.venv
|
||||
|
||||
# Translations
|
||||
/novelwriter/assets/i18n/*.qm
|
||||
.qmake.stash
|
||||
i18n/*.qm
|
||||
i18n/*.qph
|
||||
|
||||
# Documentation
|
||||
/docs/build/
|
||||
novelWriter.qch
|
||||
novelWriter.qhc
|
||||
/novelwriter/assets/help/
|
||||
/novelwriter/assets/manual.pdf
|
||||
*.qch
|
||||
*.qhc
|
||||
.~lock.*
|
||||
|
||||
# Python Temp
|
||||
__pycache__
|
||||
*.pyc
|
||||
|
||||
# Sample Project
|
||||
/nw/assets/sample.zip
|
||||
/novelwriter/assets/sample.zip
|
||||
/sample/cache
|
||||
/sample/meta
|
||||
*.bak
|
||||
*.lock
|
||||
ToC.txt
|
||||
|
||||
# PyTest
|
||||
/prof/
|
||||
/htmlcov/
|
||||
/tests/temp
|
||||
/tests/lipsum/cache
|
||||
/tests/lipsum/meta
|
||||
@@ -31,3 +49,4 @@ __pycache__
|
||||
|
||||
# Coverage
|
||||
/.coverage
|
||||
/coverage.*
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
# Read the Docs configuration file
|
||||
# See https://docs.readthedocs.io/en/stable/config-file/v2.html for details
|
||||
|
||||
# Required
|
||||
version: 2
|
||||
|
||||
# Build documentation in the docs/ directory with Sphinx
|
||||
sphinx:
|
||||
configuration: docs/source/conf.py
|
||||
|
||||
# Build documentation with MkDocs
|
||||
#mkdocs:
|
||||
# configuration: mkdocs.yml
|
||||
|
||||
# Optionally build your docs in additional formats such as PDF
|
||||
formats:
|
||||
- htmlzip
|
||||
- epub
|
||||
- pdf
|
||||
|
||||
# Optionally set the version of Python and requirements required to build your docs
|
||||
python:
|
||||
version: 3.7
|
||||
install:
|
||||
- requirements: docs/source/requirements.txt
|
||||
57
.travis.yml
@@ -1,57 +0,0 @@
|
||||
os: linux
|
||||
dist: focal
|
||||
services:
|
||||
- xvfb
|
||||
language: python
|
||||
cache:
|
||||
- bundler
|
||||
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libenchant-dev
|
||||
- python3-pyqt5
|
||||
- python3-pyqt5.qtsvg
|
||||
- python3-lxml
|
||||
|
||||
install:
|
||||
# - pip install --upgrade pip
|
||||
- pip install -r requirements.txt
|
||||
- pip install PyVirtualDisplay
|
||||
- pip install pytest-cov
|
||||
- pip install pytest-xvfb
|
||||
- pip install pytest-qt
|
||||
- pip install codecov
|
||||
|
||||
stages:
|
||||
- name: Main
|
||||
- name: Supported
|
||||
# - name: Future
|
||||
# if: branch = main
|
||||
|
||||
jobs:
|
||||
include:
|
||||
- stage: Main
|
||||
python: 3.8
|
||||
script:
|
||||
- python -m pytest --cov=nw -v
|
||||
after_success:
|
||||
- codecov
|
||||
after_failure:
|
||||
- cat /sys/fs/cgroup/memory/memory.max_usage_in_bytes
|
||||
|
||||
- stage: Supported
|
||||
python: 3.6
|
||||
script:
|
||||
- python -m pytest -v
|
||||
|
||||
- python: 3.7
|
||||
script:
|
||||
- python -m pytest -v
|
||||
|
||||
# - stage:
|
||||
# - Future
|
||||
# python:
|
||||
# - 3.9-dev
|
||||
# script:
|
||||
# - python -m pytest -v
|
||||
4421
CHANGELOG.md
@@ -2,75 +2,131 @@
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||
identity and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the overall
|
||||
community
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||
any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic
|
||||
address, without explicit permission
|
||||
* Publishing others' private information, such as a physical or email address,
|
||||
without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable
|
||||
behavior and are expected to take appropriate and fair corrective action in
|
||||
response to any instances of unacceptable behavior.
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or
|
||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported by contacting the project leader at issues (at) novelwriter.io. All
|
||||
complaints will be reviewed and investigated and will result in a response that
|
||||
is deemed necessary and appropriate to the circumstances. The project team is
|
||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
reported to the community leaders responsible for enforcement at issues (at)
|
||||
novelwriter.io. All complaints will be reviewed and investigated promptly and
|
||||
fairly.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
||||
faith may face temporary or permanent repercussions as determined by other
|
||||
members of the project's leadership.
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series of
|
||||
actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or permanent
|
||||
ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||
community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.1, available at
|
||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
||||
|
||||
Community Impact Guidelines were inspired by
|
||||
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
||||
[https://www.contributor-covenant.org/translations][translations].
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
||||
[Mozilla CoC]: https://github.com/mozilla/diversity
|
||||
[FAQ]: https://www.contributor-covenant.org/faq
|
||||
[translations]: https://www.contributor-covenant.org/translations
|
||||
|
||||
161
CONTRIBUTING.md
@@ -1,103 +1,122 @@
|
||||
# Contributing
|
||||
# Contributing Guide
|
||||
|
||||
When contributing to this repository, please first discuss the change you wish to make via the
|
||||
issue tracker with the owner of this repository before making a change. If you just want to make a
|
||||
minor correction, like fix a typo or similar, feel free to just make a pull request directly.
|
||||
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.
|
||||
|
||||
There is a code of conduct. Please follow it in all your interactions with the project.
|
||||
The following contributions are welcome:
|
||||
|
||||
## Pull Request Process
|
||||
* 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).
|
||||
* 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.
|
||||
|
||||
1. Make sure your code passes all tests and conforms to the style guide. You can check that the code
|
||||
conforms by running `flake8` from the root of the project folder.
|
||||
2. Please provide a complete description of the changes in the pull request, and a summary that can
|
||||
be copied into the [CHANGELOG](CHANGELOG.md). Remember to reference any issue related by
|
||||
providing the issue number.
|
||||
3. Do not change the version number unless asked to do so. Version numbers are bumped in separate
|
||||
release pull requests by the maintainer.
|
||||
Please do not:
|
||||
|
||||
* Make a pull request that restructures or reformats existing code. If you think some parts 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
|
||||
|
||||
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.
|
||||
|
||||
**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.
|
||||
|
||||
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.
|
||||
* 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
|
||||
mostly an issue with translation files. The language tool may update all files in the `i18n`
|
||||
folder.
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
There is a code of conduct. Please follow it in all your interactions with the project.
|
||||
|
||||
### Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers
|
||||
pledge to making participation in our project and our community a harassment-free experience for
|
||||
everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level
|
||||
of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
everyone, regardless of age, body size, disability, ethnicity, gender identity and expression,
|
||||
level of experience, nationality, personal appearance, race, religion, or sexual identity and
|
||||
orientation.
|
||||
|
||||
Please see the [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md) file for the full text.
|
||||
|
||||
## Code Style Guide
|
||||
|
||||
The source code of novelWriter broadly follows the [PEP8](https://www.python.org/dev/peps/pep-0008/)
|
||||
style guide , but with a few modifications and exceptions.
|
||||
The source code of novelWriter broadly follows the [PEP8](https://www.python.org/dev/peps/pep-0008)
|
||||
style guide, but with a few exceptions. Some key points are listed below.
|
||||
|
||||
### Linting with flake8
|
||||
**Line Length:**
|
||||
|
||||
An excellent tool for checking Python code for errors and coding style is `flake8`.
|
||||
The documentation is available [here](https://flake8.pycqa.org/en/latest/).
|
||||
* Source code lines can extend to the upper limit of 99 characters allowed by PEP8. 79 characters
|
||||
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.
|
||||
* 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.
|
||||
|
||||
The `setup.cfg` file in the root of this project has the following settings:
|
||||
**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 exception to the above is for constants. They should always be in upper snake case, like PEP8
|
||||
states.
|
||||
|
||||
**Spaces, Indentation and Alignment**
|
||||
|
||||
* 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.
|
||||
* 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.
|
||||
|
||||
### 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:
|
||||
```conf
|
||||
[flake8]
|
||||
ignore = E203,E221,E226,E241,E251,E261,E266,E302,E305
|
||||
ignore = E133,E221,E226,E228,E241,W503
|
||||
max-line-length = 99
|
||||
exclude = docs/*
|
||||
```
|
||||
|
||||
The command line equivalent, with reporting, is:
|
||||
```bash
|
||||
flake8 . --count --ignore E203,E221,E226,E241,E251,E261,E266,E302,E305 --max-line-length=99 --show-source --statistics
|
||||
flake8 . --count --ignore E133,E221,E226,E228,E241,W503 --max-line-length=99 --show-source --statistics
|
||||
```
|
||||
|
||||
Passing this check is required before contributuions are merged into the `main` branch. This is
|
||||
checked automatically when you make a pull request. You can run the `flake8` command locally to
|
||||
check beforehand. The full command will give you a detailed description of the code lines that do
|
||||
not conform to the standard.
|
||||
Passing this check is required before contributions are merged. This is checked automatically when
|
||||
you make a pull request. You can run the `flake8` command locally to check beforehand. The full
|
||||
command will give you a detailed description of the code lines that do not conform to the standard.
|
||||
|
||||
## Ignored Errors
|
||||
Two of the ignored errors are due to the relaxed restriction on column alignment, these are the
|
||||
E221 and E241 error codes.
|
||||
|
||||
Some errors are ignored in novelWriter, for various reasons. In addition, novelWriter sues camelCase
|
||||
function and variable names due to this being the standard for the Qt libraries, and also because of
|
||||
the author's personal preferences.
|
||||
|
||||
The reason behind the other ignored error codes are listed below. Many of them are due to PEP8 not
|
||||
permitting column alignment as opposed to many other coding styles. I find them useful in regions of
|
||||
bulk value assignments. There's a reason why tables are more readable than lists. They should be
|
||||
used sparingly though.
|
||||
|
||||
The ignored errors are all `pycodestyle` errors, and they are documented
|
||||
[here](https://pycodestyle.pycqa.org/en/latest/intro.html#error-codes).
|
||||
|
||||
**E203:** whitespace before ‘:’
|
||||
**Reason:** Column alignment. It is natural to align dictionary columns along the `:` character,
|
||||
|
||||
**E221:** multiple spaces before operator
|
||||
**Reason:** Column alignment.
|
||||
|
||||
**E226:** missing whitespace around arithmetic operator
|
||||
**Reason:** This doesn't actually follow the PEP8 recommendation 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 `-`. For appending strings, the spaces can be
|
||||
dropped. Don't use the `+` operator for appending multiple strings. Use formatting instead.
|
||||
|
||||
**E241:** multiple spaces after ‘,’
|
||||
**Reason:** Column alignment.
|
||||
|
||||
**E251:** unexpected spaces around keyword / parameter equals
|
||||
**Reason:** Column alignment.
|
||||
|
||||
**E261:** at least two spaces before inline comment
|
||||
**Reason:** With syntax highlighting, this one is meaningless and wastes an extra space.
|
||||
|
||||
**E266:** too many leading ‘#’ for block comment
|
||||
**Reason:** In the source multiple `#`s to indicate importance levels is sometimes used, like
|
||||
markdown headers.
|
||||
|
||||
**E302:** expected 2 blank lines, found 0
|
||||
**Reason:** Applies to classes. Instead, end classes with a comment like `# END Class ClassName` to
|
||||
make it easier to se which class just ended. The double line break is then redundant.
|
||||
|
||||
**E305:** expected 2 blank lines after end of function or class
|
||||
**Reason:** Instead, _always_ end a function with a `return`, preferrably indented at function
|
||||
level. The end of the function is then clear.
|
||||
The code E226 is ignored becuse 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 `-`.
|
||||
The same applies to the modulo operator `%`, hence E228 is also ignored.
|
||||
|
||||
64
CREDITS.md
Normal file
@@ -0,0 +1,64 @@
|
||||
# Credits
|
||||
|
||||
## Main Developer
|
||||
|
||||
* Veronica Berglyd Olsen (@vkbo)
|
||||
|
||||
## Contributors
|
||||
|
||||
* Concept: Marian Lückhof (@Number042)
|
||||
* Internationalisation: Bruno Meneguello (@bkmeneguello)
|
||||
* Setup and Packaging: Rachel Powers (@Ryex)
|
||||
|
||||
For other contributions, see the project's [Contributors](https://github.com/vkbo/novelWriter/graphs/contributors) page.
|
||||
|
||||
## 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)
|
||||
|
||||
Additional larger translation contributions:
|
||||
|
||||
* French: Albert Aribaud (@aaribaud)
|
||||
|
||||
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.
|
||||
|
||||
## 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
|
||||
|
||||
## 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)
|
||||
|
||||
## Fonts
|
||||
|
||||
The font used for the main novelWriter logo, mimetype and text banners is:
|
||||
|
||||
* Pridi by Cadson Demak (Open Font License, Version 1.1)
|
||||
|
||||
## Special Mentions
|
||||
|
||||
Additional thanks to @johnblommers who was an early user and who has provided a lot of very useful
|
||||
feedback over the years.
|
||||
@@ -1,4 +1,6 @@
|
||||
include pkgutils.py
|
||||
include LICENSE.md
|
||||
recursive-include assets *
|
||||
recursive-include nw/assets *
|
||||
recursive-include sample *.nwx *.nwd
|
||||
include CREDITS.md
|
||||
include CHANGELOG.md
|
||||
recursive-include novelwriter/assets *
|
||||
recursive-include setup *
|
||||
|
||||
281
README.md
@@ -1,253 +1,68 @@
|
||||
# novelWriter
|
||||
|
||||
[](https://travis-ci.com/vkbo/novelWriter)
|
||||
[](https://codecov.io/gh/vkbo/novelWriter)
|
||||
[](https://novelwriter.readthedocs.io/en/latest/?badge=latest)
|
||||
[](https://github.com/vkbo/novelWriter/actions)
|
||||
[](https://pypi.org/project/novelWriter/)
|
||||
[](https://pypi.org/project/novelWriter/)
|
||||
[](https://github.com/vkbo/novelWriter/actions/workflows/test_linux.yml)
|
||||
[](https://github.com/vkbo/novelWriter/actions/workflows/test_win.yml)
|
||||
[](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml)
|
||||
[](https://github.com/vkbo/novelWriter/actions)
|
||||
[](https://codecov.io/gh/vkbo/novelWriter)
|
||||
|
||||
<img align="left" style="margin: 0 16px 4px 0;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/assets/icons/96x96/novelwriter.png">
|
||||
<img align="left" style="margin: 0 0 4px 0;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter_readme.png">
|
||||
|
||||
novelWriter is a markdown-like text editor designed for writing novels and larger projects of many
|
||||
smaller plain text documents. It uses its own flavour of markdown that supports a meta data syntax
|
||||
for comments, synopsis and cross-referencing between files. It's designed to be a simple text editor
|
||||
which allows for easy organisation of text files and notes, built on plain text files for
|
||||
robustness.
|
||||
novelWriter is a plain text editor designed for writing novels assembled from many smaller text
|
||||
documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta data syntax
|
||||
for comments, synopsis, and cross-referencing. It's designed to be a simple text editor that allows
|
||||
for easy organisation of text and notes, using human readable text files as storage for robustness.
|
||||
|
||||
The plain text storage is suitable for version control software, and also well suited for file
|
||||
synchronisation tools. The core project structure is stored in a project XML file. Other meta data
|
||||
is primarily saved in JSON files.
|
||||
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 primarily saved as
|
||||
JSON files.
|
||||
|
||||
The full documentation is available at [novelwriter.readthedocs.io](https://novelwriter.readthedocs.io/).
|
||||
For more details, and how to install and use novelWriter, please see the main website and
|
||||
documentation.
|
||||
|
||||
The contributing guide is available in [CONTRIBUTING](CONTRIBUTING.md).
|
||||
|
||||
|
||||
### Note on the Default Branch
|
||||
|
||||
The default branch on this repository switched to `main` on 6. August 2020. If you are running
|
||||
novelWriter from a git clone, you need to clone the repository again.
|
||||
|
||||
Alternatively, you can run the following to get back on the main branch:
|
||||
|
||||
```bash
|
||||
git remote update
|
||||
git checkout -t origin/main
|
||||
```
|
||||
|
||||
|
||||
### Development Status
|
||||
|
||||
The application is still under initial development, but all core features have now been added. The
|
||||
core functionality has been in place for a while, and novelWriter is being used for writing projects
|
||||
by the author and collaborators.
|
||||
|
||||
No new major features will be added at this time, until the application is stable. Until then,
|
||||
novelWriter is in a _beta_ state. Please report any issues you may encounter in the repository issue
|
||||
tracker.
|
||||
|
||||
You should be able to use novelWriter for real projects, but as with all software, please make
|
||||
regular backups. There is a built in backup feature that can pack the entire project into a zip file
|
||||
on close. Please check the documentation for further details.
|
||||
|
||||
|
||||
## License
|
||||
|
||||
This is Open Source software, and novelWriter is licensed under GPLv3. See the
|
||||
[GNU General Public License website](https://www.gnu.org/licenses/gpl-3.0.en.html) for more details,
|
||||
or consult the [LICENSE](LICENSE.md) file.
|
||||
|
||||
Bundled assets have the following licenses:
|
||||
|
||||
* The Typicon-based icon themes by Stephen Hutchings are licensed under
|
||||
[CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/). The icons have been altered in
|
||||
size and colour for use with novelWriter, and some additional icons added. The original icon set
|
||||
is available at [stephenhutchings/typicons.font](https://github.com/stephenhutchings/typicons.font).
|
||||
* The Cantarell font by Dave Crossland is licensed under [OPEN FONT LICENSE Version 1.1](http://scripts.sil.org/OFL).
|
||||
It is available at [Google Fonts](https://fonts.google.com/specimen/Cantarell).
|
||||
* The Tomorrow syntax themes use colour schemes taken from Chris Kempson's collection of code editor
|
||||
themes, licensed with the [MIT License](https://github.com/chriskempson/tomorrow-theme/blob/master/LICENSE.md),
|
||||
and the main repo is available at [chriskempson/tomorrow-theme](https://github.com/chriskempson/tomorrow-theme).
|
||||
* Likewise, the Owl syntax themes use colours from Sarah Drasner's code editor themes, licensed with
|
||||
the [MIT License](https://github.com/sdras/night-owl-vscode-theme/blob/master/LICENSE), and the
|
||||
main repo is available at [sdras/night-owl-vscode-theme](https://github.com/sdras/night-owl-vscode-theme).
|
||||
|
||||
|
||||
## Markdown Flavour
|
||||
|
||||
novelWriter is _not_ a full-feature Markdown editor. It allows for a minimal set of formatting
|
||||
needed for writing text documents for novels. These are currently limited to:
|
||||
|
||||
* Headings level 1 to 4 using the `#` syntax only.
|
||||
* Emphasised, strong text. These are rendered as italicised and bold.
|
||||
* Strikethrough text.
|
||||
* Hard line breaks using two or more spaces at the end of a line.
|
||||
|
||||
That is it. Features not supported in the editor are also not exported when using the export tool.
|
||||
|
||||
In addition, novelWriter adds the following, which is otherwise not supported by Markdown:
|
||||
|
||||
* A line starting with `%` is treated as a comment and not rendered on exports unless requested.
|
||||
Comments do not count towards the word count. If the first word of the comment is `synopsis:`, the
|
||||
comment is indexed and treated as the synopsis for the following section of text. These synopsis
|
||||
comments can be used to build an outline and exported to external documents.
|
||||
* A set of meta data keyword/value sets starting with the character `@`. This is used for tagging
|
||||
and inter-linking documents.
|
||||
* Non-breaking spaces are supported as long as your system is using at least Qt 5.9. For earlier
|
||||
version, non-breaking spaces are converted to normal spaces when saving the document. This is done
|
||||
by the Qt library.
|
||||
* Thin spaces are also supported, as well as non-breaking thin spaces.
|
||||
* Tabs may be rendered, depending on export format. With Qt 5.10 or higher, the width of a tab in
|
||||
pixels can be changed in Preferences.
|
||||
|
||||
The core export format of novelWriter is HTML5. You can also export the entire project as a single
|
||||
novelWriter flavour document. In addition, other exports to Open Document, PDF, and plain text is
|
||||
offered through the Qt library, although with limitations to formatting.
|
||||
**Project Links**
|
||||
|
||||
* Website: [novelwriter.io](https://novelwriter.io)
|
||||
* Documentation: [docs.novelwriter.io](https://docs.novelwriter.io)
|
||||
* Internationalisation: [crowdin.com/project/novelwriter](https://crowdin.com/project/novelwriter)
|
||||
* PyPi Project: [pypi.org/project/novelWriter](https://pypi.org/project/novelWriter)
|
||||
* Social Media: [fosstodon.org/@novelwriter](https://fosstodon.org/@novelwriter)
|
||||
|
||||
## Implementation
|
||||
|
||||
The application is written in Python3 using Qt5 via PyQt5. It is developed on Linux, but it should
|
||||
in principle work fine on other operating systems as well as long as dependencies are met. It is
|
||||
regularly tested on Windows 10.
|
||||
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.
|
||||
|
||||
The application can be started from the source folder with one of the commands:
|
||||
```
|
||||
./novelWriter.py
|
||||
python novelWriter.py
|
||||
python3 novelWriter.py
|
||||
```
|
||||
## Project Contributions
|
||||
|
||||
It also takes a few parameters for debugging and such, which can be listed with the switch `--help`.
|
||||
Please don't make feature pull requests without first having discussed them with the maintainer.
|
||||
You can make a feature request in the issue tracker, or if the idea isn't fully formed, start a
|
||||
discussion on the discussion page. Please also don't make pull requests to reformat or rewrite
|
||||
existing code unless there is a very good reason for doing so.
|
||||
|
||||
In the root assets folder there are icons and scripts and a template for setting up a launcher on
|
||||
Gnome desktops. You may need to modify those scripts slightly, but as they are, they work on Debian
|
||||
and Ubuntu. For other operating systems, please consult your operating system documentation for how
|
||||
to make those. Feel free to submit more if you are able to make them.
|
||||
Fixes and patches are welcome. Contributions related to packaging and installing novelWriter will
|
||||
also be appreciated, but please make an issue or a discussion topic first. Before contributing any
|
||||
code, please also read the full
|
||||
[Contributing Guide](https://github.com/vkbo/novelWriter/blob/main/CONTRIBUTING.md).
|
||||
|
||||
Project credits are available in [CREDITS.md](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md).
|
||||
|
||||
## Package Dependencies
|
||||
### Translations
|
||||
|
||||
It is recommended that novelWriter runs with Qt 5.10 or later, and Python 3.6 or later. Running with
|
||||
Qt as low as 5.2.1 and Python 3.4.3 has been tested, and worked in the past, but there are no
|
||||
guarantees that this will keep working as these are not a part of the test builds.
|
||||
New translations are always welcome. This project uses Crowdin to maintain translations, and you
|
||||
can contribute translations at the [Crowdin project page](https://crowdin.com/project/novelwriter).
|
||||
If you have any questions, feel free to post them to the
|
||||
[Translations of novelWriter](https://github.com/vkbo/novelWriter/issues/93) issue thread.
|
||||
|
||||
For the apt package manager on Debian systems, the following Python3 packages are needed:
|
||||
For more details, and how to use Qt Linguist for translations, see the
|
||||
[i18n instructions](https://github.com/vkbo/novelWriter/blob/main/i18n/README.md).
|
||||
|
||||
* `python3-pyqt5` for the GUI
|
||||
* `python3-pyqt5.qtsvg` may need to be installed separately
|
||||
* `python3-lxml` for writing project files
|
||||
## Licence
|
||||
|
||||
These are optional, but recommended:
|
||||
|
||||
* `python3-enchant` for better spell checking
|
||||
|
||||
Alternatively, the packages can be installed with `pip` by running
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
in the application folder.
|
||||
|
||||
You can also do them one at a time, skipping the ones you don't need:
|
||||
```bash
|
||||
pip install pyqt5
|
||||
pip install lxml
|
||||
pip install pyenchant
|
||||
```
|
||||
|
||||
PyQt/Qt should be at least 5.3, but ideally 5.10 or higher for nearly all features to work.
|
||||
Exporting to markdown requires PyQt/Qt 5.14. There are no known minimum for `lxml`, but the code
|
||||
was originally written with 4.2. The optional spell check library must be at least 3.0.0 to work
|
||||
with Windows 64 bit systems. On Linux, 2.0.0 also works fine.
|
||||
|
||||
If no external spell checking tool is installed, novelWriter will use a basic spell checker based on
|
||||
standard Python package `difflib`. Currently, only English dictionaries are available for this spell
|
||||
checker, but more can be added to the `nw/assets/dict` folder. See the [README](nw/assets/dict/README.md)
|
||||
file in that folder for how to generate more dictionaries. Note that the difflib-based option is
|
||||
both slow and limited.
|
||||
|
||||
Note: On Windows, make sure Python3 is in your PATH if you want to launch novelWriter from command
|
||||
line. You can also right click the `novelWriter.py` file, create a shortcut, then right click again,
|
||||
select "Properties" and change the target to your python executable and `novelWriter.py`.
|
||||
|
||||
It should look something like this:
|
||||
```
|
||||
C:\...\AppData\Local\Programs\Python\Python38\python.exe novelWriter.py
|
||||
```
|
||||
|
||||
## Key Features
|
||||
|
||||
Some features of novelWriter are listed below. Consult the documentation for more information.
|
||||
|
||||
|
||||
### Colour Themes
|
||||
|
||||
The editor has syntax highlighting for the features it supports, and includes a set of different
|
||||
syntax highlighting themes. The GUI also has an optional dark theme in addition to the default
|
||||
system theme.
|
||||
|
||||
New themes can easily be added to the `nw/assets/themes` folder. Have a look in the existing folders
|
||||
for examples of how to define the colours.
|
||||
|
||||
|
||||
### Auto-Saving and Document Stats
|
||||
|
||||
Open documents and the project file itself is saved regularly on a timer. The status of this is
|
||||
indicated by two indicators on the right hand side of the status bar. Latest project word count is
|
||||
shown next to these indicators in the status bar. The counts are updated regularly, but not
|
||||
as-you-type.
|
||||
|
||||
The word count for documents is presented in a footer in the document editor itself. Both project
|
||||
and document word counters will also show how many words you've added in the current writing
|
||||
session.
|
||||
|
||||
|
||||
### Easy Organising of Project Files
|
||||
|
||||
The structure of the project is shown on the left hand side of the main GUI. Project files are
|
||||
organised into root folders, indicating what class of file they are. The most important root folder
|
||||
is the Novel folder, which contains all of the files that makes up the finished novel. Each root
|
||||
folder can have subfolders. Folders have no impact on the project structure, they are purely tools
|
||||
for organising the files in whatever way the user needs.
|
||||
|
||||
The editor supports four levels of headings, which determines what level the following text belongs
|
||||
to. Headings of level one signify a book or partition title. Headings of level two signify the start
|
||||
of a new chapter. Headings of level three signify the start of a new scene. Headings of level four
|
||||
can be used internally in each scene to separate sections.
|
||||
|
||||
Each novel file can be assigned a layout format, which shows up as a flag next to the item in the
|
||||
project tree. These are mostly to help the user see what they contain, but they also have some
|
||||
impact on the format of the exported document. See the documentation for further details.
|
||||
|
||||
|
||||
#### Project Notes
|
||||
|
||||
Supporting note files can be added for the story plot, characters, locations, story timeline, etc.
|
||||
These have their separate root folders. These are optional files.
|
||||
|
||||
|
||||
### Visualisation of Story Elements
|
||||
|
||||
The different notes can be assigned tags, which other files can refer back to using special meta
|
||||
keywords. This information can be used to display an outline of the story, showing where each scene
|
||||
connects to the plot, and which characters, etc. occur in them. In addition, the tags themselves are
|
||||
clickable in the document view pane, and control-clickable in the editor. They make it possible to
|
||||
quickly navigate between the documents while editing.
|
||||
|
||||
|
||||
## Contribution
|
||||
|
||||
If you want to contribute to novelWriter, please follow the coding convention laid out in the
|
||||
[Style Guide](markdown/style.md). They broadly follow Python PEP8, but there are a few
|
||||
modifications.
|
||||
|
||||
|
||||
## Screenshot
|
||||
|
||||
**novelWriter with default system theme:**
|
||||

|
||||
|
||||
**novelWriter with dark theme:**
|
||||

|
||||
This is Open Source software, and novelWriter is licenced under GPLv3. See the
|
||||
[GNU General Public License website](https://www.gnu.org/licenses/gpl-3.0.en.html) for more
|
||||
details, or consult the [License](https://github.com/vkbo/novelWriter/blob/main/LICENSE.md)
|
||||
document. Bundled assets and their licences are listed in the
|
||||
[Credits](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md) document.
|
||||
|
||||
|
Before Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 683 B |
|
Before Width: | Height: | Size: 660 B |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.6 KiB |
|
Before Width: | Height: | Size: 1.7 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 1.0 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 2.3 KiB |
|
Before Width: | Height: | Size: 42 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 3.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 115 KiB |
@@ -1,184 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 270.93333 270.93334"
|
||||
height="1024"
|
||||
width="1024">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient1470">
|
||||
<stop
|
||||
style="stop-color:#7a9cb8;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop1466" />
|
||||
<stop
|
||||
style="stop-color:#5978a6;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop1468" />
|
||||
</linearGradient>
|
||||
<rect
|
||||
x="60.484347"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785888"
|
||||
id="rect852" />
|
||||
<rect
|
||||
id="rect1474"
|
||||
height="28.631245"
|
||||
width="177.70083"
|
||||
y="18.019813"
|
||||
x="13.463703" />
|
||||
<rect
|
||||
id="rect852-7"
|
||||
height="65.785889"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484348" />
|
||||
<rect
|
||||
id="rect1544"
|
||||
height="65.785889"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484348" />
|
||||
<rect
|
||||
x="60.484348"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785889"
|
||||
id="rect1570" />
|
||||
<rect
|
||||
x="13.463703"
|
||||
y="18.019813"
|
||||
width="177.70083"
|
||||
height="28.631245"
|
||||
id="rect1587" />
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
id="filter1444">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood1434" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite1436" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
result="blur"
|
||||
id="feGaussianBlur1438" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset1440" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite1442" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB;"
|
||||
id="filter1456">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
result="flood"
|
||||
id="feFlood1446" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
result="composite1"
|
||||
id="feComposite1448" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
result="blur"
|
||||
id="feGaussianBlur1450" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
result="offset"
|
||||
id="feOffset1452" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
result="composite2"
|
||||
id="feComposite1454" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient1470"
|
||||
id="radialGradient1474"
|
||||
cx="111.19364"
|
||||
cy="67.111206"
|
||||
fx="111.19364"
|
||||
fy="67.111206"
|
||||
r="130.96873"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.2584252,1.5089457,-0.74487144,1.1148423,-169.6027,-163.93817)" />
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:inline"
|
||||
id="layer1">
|
||||
<rect
|
||||
ry="21.166666"
|
||||
rx="21.166666"
|
||||
y="5.8208332"
|
||||
x="5.8208332"
|
||||
height="259.29166"
|
||||
width="259.29166"
|
||||
id="rect1467"
|
||||
style="display:inline;fill:url(#radialGradient1474);fill-opacity:1;stroke:#517995;stroke-width:2.64583;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
<g
|
||||
id="layer2"
|
||||
style="display:inline">
|
||||
<path
|
||||
id="rect1406"
|
||||
style="fill:#a11212;fill-opacity:1;stroke:#7e1b1b;stroke-width:9.99999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1444)"
|
||||
d="m 312,200 c -44.32,0 -80,35.68 -80,80 v 199.99805 a 279.99999,279.99999 0 0 0 0,0.002 279.99999,279.99999 0 0 0 0,0.0195 v 199.98242 c 0,44.31999 35.68,80 80,80 44.32,0 80,-35.68001 80,-80 v -200 a 120,120 0 0 1 120,-120 120,120 0 0 1 120,120 V 762.83789 H 792 V 480.00195 a 279.99999,279.99999 0 0 0 -280,-280 279.99999,279.99999 0 0 0 -0.81055,0 279.99999,279.99999 0 0 0 -133.46484,34.29688 C 363.30011,213.54621 339.29632,200 312,200 Z m 231.46094,563.22656 c -0.62174,0.0972 -1.2172,0.22317 -1.7793,0.37696 0.5621,-0.15379 1.15756,-0.27973 1.7793,-0.37696 z m -1.7793,0.37696 c -0.5621,0.15378 -1.09071,0.33534 -1.58008,0.53906 0.48937,-0.20372 1.01798,-0.38528 1.58008,-0.53906 z m 338.85742,-0.37696 c 0.62174,0.0972 1.2172,0.22317 1.7793,0.37696 -0.5621,-0.15379 -1.15756,-0.27973 -1.7793,-0.37696 z m 1.7793,0.37696 c 0.5621,0.15378 1.09071,0.33534 1.58008,0.53906 -0.48938,-0.20372 -1.01798,-0.38528 -1.58008,-0.53906 z"
|
||||
transform="scale(0.26458333)" />
|
||||
<path
|
||||
id="path897"
|
||||
style="display:inline;fill:#730d0d;fill-opacity:1;stroke:#590d0d;stroke-width:9.99999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1456)"
|
||||
d="m 632,762.83789 v 0.16406 h -85.58398 c -5.49302,0 -9.91602,2.2329 -9.91602,5.00586 0,0.52294 0.15913,1.02696 0.45117,1.5 h -0.44531 c 0.30916,2.03607 1.24102,3.99791 2.81641,5.57227 l 165.59961,165.49414 c 3.92061,3.91808 10.23371,3.91812 14.15429,0 L 884.67773,775.08008 c 1.57569,-1.57463 2.50725,-3.53578 2.81641,-5.57227 h -0.44531 c 0.29216,-0.47304 0.45117,-0.97706 0.45117,-1.5 0,-2.77296 -4.42304,-5.00586 -9.91602,-5.00586 H 792 v -0.16406 z"
|
||||
transform="scale(0.26458333)" />
|
||||
<rect
|
||||
style="fill:#c32222;fill-opacity:1;stroke:none;stroke-width:2.64583;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="rect914"
|
||||
width="10.583333"
|
||||
height="119.0625"
|
||||
x="69.849998"
|
||||
y="67.997917"
|
||||
rx="5.2916665"
|
||||
ry="5.2916665" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 6.3 KiB |
@@ -1,207 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 270.93333 270.93334"
|
||||
height="1024"
|
||||
width="1024">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient2515">
|
||||
<stop
|
||||
style="stop-color:#f7f7f7;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop2511" />
|
||||
<stop
|
||||
style="stop-color:#e5e5e5;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop2513" />
|
||||
</linearGradient>
|
||||
<rect
|
||||
x="60.484347"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785888"
|
||||
id="rect852" />
|
||||
<rect
|
||||
id="rect1474"
|
||||
height="28.631245"
|
||||
width="177.70083"
|
||||
y="18.019813"
|
||||
x="13.463703" />
|
||||
<rect
|
||||
id="rect852-7"
|
||||
height="65.785889"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484348" />
|
||||
<rect
|
||||
id="rect1544"
|
||||
height="65.785889"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484348" />
|
||||
<rect
|
||||
x="60.484348"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785889"
|
||||
id="rect1570" />
|
||||
<rect
|
||||
x="13.463703"
|
||||
y="18.019813"
|
||||
width="177.70083"
|
||||
height="28.631245"
|
||||
id="rect1587" />
|
||||
<filter
|
||||
id="filter1444"
|
||||
style="color-interpolation-filters:sRGB">
|
||||
<feFlood
|
||||
id="feFlood1434"
|
||||
result="flood"
|
||||
flood-color="rgb(0,0,0)"
|
||||
flood-opacity="0.498039" />
|
||||
<feComposite
|
||||
id="feComposite1436"
|
||||
result="composite1"
|
||||
operator="in"
|
||||
in2="SourceGraphic"
|
||||
in="flood" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur1438"
|
||||
result="blur"
|
||||
stdDeviation="3"
|
||||
in="composite1" />
|
||||
<feOffset
|
||||
id="feOffset1440"
|
||||
result="offset"
|
||||
dy="6"
|
||||
dx="6" />
|
||||
<feComposite
|
||||
id="feComposite1442"
|
||||
result="composite2"
|
||||
operator="over"
|
||||
in2="offset"
|
||||
in="SourceGraphic" />
|
||||
</filter>
|
||||
<filter
|
||||
id="filter1456"
|
||||
style="color-interpolation-filters:sRGB">
|
||||
<feFlood
|
||||
id="feFlood1446"
|
||||
result="flood"
|
||||
flood-color="rgb(0,0,0)"
|
||||
flood-opacity="0.498039" />
|
||||
<feComposite
|
||||
id="feComposite1448"
|
||||
result="composite1"
|
||||
operator="in"
|
||||
in2="SourceGraphic"
|
||||
in="flood" />
|
||||
<feGaussianBlur
|
||||
id="feGaussianBlur1450"
|
||||
result="blur"
|
||||
stdDeviation="3"
|
||||
in="composite1" />
|
||||
<feOffset
|
||||
id="feOffset1452"
|
||||
result="offset"
|
||||
dy="6"
|
||||
dx="6" />
|
||||
<feComposite
|
||||
id="feComposite1454"
|
||||
result="composite2"
|
||||
operator="over"
|
||||
in2="offset"
|
||||
in="SourceGraphic" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
xlink:href="#linearGradient2515"
|
||||
id="radialGradient2517"
|
||||
cx="605.42725"
|
||||
cy="623.97186"
|
||||
fx="605.42725"
|
||||
fy="623.97186"
|
||||
r="410"
|
||||
gradientTransform="matrix(2.4110274,1.7617596,-0.719517,0.98463462,-776.23441,-1372.7537)"
|
||||
gradientUnits="userSpaceOnUse" />
|
||||
</defs>
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer3"
|
||||
style="display:inline">
|
||||
<path
|
||||
clip-path="none"
|
||||
transform="scale(0.26458333)"
|
||||
d="m 192,22 c -44.32,0 -80,35.680002 -80,80 v 820 c 0,44.32002 35.68,80 80,80 h 640 c 44.31999,0 80,-35.67998 80,-80 V 213.44727 L 720.55469,22 Z"
|
||||
style="fill:url(#radialGradient2517);fill-opacity:1;stroke:#999999;stroke-width:20;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
id="rect1481" />
|
||||
<path
|
||||
id="path1490"
|
||||
style="display:inline;fill:#e0e0e0;fill-opacity:1;stroke:#999999;stroke-width:5.29167;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="M 241.30037,56.474215 190.64713,5.8204593 V 35.307549 c 0,11.726333 9.44034,21.166666 21.16667,21.166666 z" />
|
||||
<g
|
||||
aria-label=".nwx"
|
||||
transform="matrix(1.7893481,0,0,1.782571,-45.41919,-191.90571)"
|
||||
id="text850"
|
||||
style="font-size:5.64444px;line-height:1.25;font-family:'Fira Sans';-inkscape-font-specification:'Fira Sans, Normal';letter-spacing:0px;word-spacing:0px;white-space:pre;shape-inside:url(#rect852);display:inline;fill:#666666;fill-opacity:1">
|
||||
<path
|
||||
d="m 63.088865,241.76928 q 0,-1.36426 0.909505,-2.27376 0.930175,-0.93018 2.480467,-0.93018 1.550291,0 2.459796,0.93018 0.909504,0.9095 0.909504,2.27376 0,1.34359 -0.909504,2.27376 -0.909505,0.9095 -2.459796,0.9095 -1.550292,0 -2.480467,-0.9095 -0.909505,-0.93017 -0.909505,-2.27376 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:42.3333px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#666666;fill-opacity:1"
|
||||
id="path856" />
|
||||
<path
|
||||
d="m 84.75161,226.78312 q -2.542479,0 -3.782712,2.14974 v 15.79231 h -5.973791 v -22.36554 h 5.601721 l 0.206705,2.56314 q 2.397785,-2.97656 6.428544,-2.97656 3.162595,0 5.105627,1.88103 1.943033,1.88102 1.963703,6.55256 v 14.34537 h -5.994461 v -14.26269 q 0,-2.14973 -0.930175,-2.91454 -0.909505,-0.76482 -2.625161,-0.76482 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:42.3333px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#666666;fill-opacity:1"
|
||||
id="path858" />
|
||||
<path
|
||||
d="m 126.96089,222.35963 -5.68441,22.36554 h -5.00227 l -4.25814,-14.07665 -4.23746,14.07665 h -4.9816 l -5.705078,-22.36554 h 5.767088 l 2.95589,14.22134 4.05143,-14.22134 h 4.32014 l 4.09277,14.20067 2.91455,-14.20067 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:42.3333px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#666666;fill-opacity:1"
|
||||
id="path860" />
|
||||
<path
|
||||
d="m 134.77436,222.35963 3.65869,6.65592 3.76204,-6.65592 h 6.3872 l -6.36653,10.93472 6.63525,11.43082 h -6.3872 l -4.01009,-7.04866 -3.94808,7.04866 h -6.42854 l 6.63525,-11.43082 -6.36654,-10.93472 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:42.3333px;font-family:Roboto;-inkscape-font-specification:'Roboto, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;fill:#666666;fill-opacity:1"
|
||||
id="path862" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g2509"
|
||||
transform="matrix(1.2371037,0,0,1.2371037,206.3182,37.341857)">
|
||||
<path
|
||||
transform="matrix(0.16895991,0,0,0.18329422,-134.6942,-19.491243)"
|
||||
id="rect1406-1"
|
||||
style="display:inline;fill:#a11212;fill-opacity:1;stroke:#7e1b1b;stroke-width:9.99999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1444)"
|
||||
d="m 145.18984,56.414257 c -44.32,0 -79.999998,35.68 -79.999998,80.000003 v 199.99805 a 279.99999,279.99999 0 0 0 0,0.002 279.99999,279.99999 0 0 0 0,0.0195 v 199.98242 c 0,44.31999 35.679998,80 79.999998,80 44.32,0 80,-35.68001 80,-80 v -200 a 120,120 0 0 1 120,-120 120,120 0 0 1 120,120 v 282.83592 h 160 V 336.41621 a 279.99999,279.99999 0 0 0 -280,-280.000003 279.99999,279.99999 0 0 0 -0.81055,0 279.99999,279.99999 0 0 0 -133.46484,34.29688 c -14.4245,-20.75262 -38.42829,-34.29883 -65.72461,-34.29883 z M 376.65078,619.64082 c -0.62174,0.0972 -1.2172,0.22317 -1.7793,0.37696 0.5621,-0.15379 1.15756,-0.27973 1.7793,-0.37696 z m -1.7793,0.37696 c -0.5621,0.15378 -1.09071,0.33534 -1.58008,0.53906 0.48937,-0.20372 1.01798,-0.38528 1.58008,-0.53906 z m 338.85742,-0.37696 c 0.62174,0.0972 1.2172,0.22317 1.7793,0.37696 -0.5621,-0.15379 -1.15756,-0.27973 -1.7793,-0.37696 z m 1.7793,0.37696 c 0.5621,0.15378 1.09071,0.33534 1.58008,0.53906 -0.48938,-0.20372 -1.01798,-0.38528 -1.58008,-0.53906 z" />
|
||||
<path
|
||||
transform="matrix(0.16895991,0,0,0.18329422,-134.6942,-19.491243)"
|
||||
id="path897"
|
||||
style="display:inline;fill:#730d0d;fill-opacity:1;stroke:#590d0d;stroke-width:9.99999;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1;filter:url(#filter1456)"
|
||||
d="m 465.18984,619.25215 v 0.16406 h -85.58398 c -5.49302,0 -9.91602,2.2329 -9.91602,5.00586 0,0.52294 0.15913,1.02696 0.45117,1.5 h -0.44531 c 0.30916,2.03607 1.24102,3.99791 2.81641,5.57227 l 165.59961,165.49414 c 3.92061,3.91808 10.23371,3.91812 14.15429,0 L 717.86757,631.49434 c 1.57569,-1.57463 2.50725,-3.53578 2.81641,-5.57227 h -0.44531 c 0.29216,-0.47304 0.45117,-0.97706 0.45117,-1.5 0,-2.77296 -4.42304,-5.00586 -9.91602,-5.00586 h -85.58398 v -0.16406 z" />
|
||||
<rect
|
||||
style="display:inline;fill:#c32222;fill-opacity:1;stroke:none;stroke-width:1.75982;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="rect914"
|
||||
width="6.7583966"
|
||||
height="82.482399"
|
||||
x="-118.27303"
|
||||
y="1.2969339"
|
||||
rx="3.3791983"
|
||||
ry="3.6658845" />
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 9.7 KiB |
@@ -1,49 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd ..
|
||||
|
||||
EXEC=$(pwd)/novelWriter.py
|
||||
EXEC=$(echo $EXEC | sed 's_/_\\/_g')
|
||||
|
||||
sed "s/%%exec%%/$EXEC/g" assets/novelwriter.desktop > /usr/share/applications/novelwriter.desktop
|
||||
|
||||
if [ ! -d /usr/share/icons/hicolor/24x24/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/24x24/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/48x48/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/48x48/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/96x96/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/96x96/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/256x256/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/256x256/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/512x512/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/512x512/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/scalable/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/scalable/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/scalable/mimetypes ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/scalable/mimetypes
|
||||
fi
|
||||
|
||||
cp -v assets/icons/24x24/novelwriter.png /usr/share/icons/hicolor/24x24/apps/
|
||||
cp -v assets/icons/48x48/novelwriter.png /usr/share/icons/hicolor/48x48/apps/
|
||||
cp -v assets/icons/96x96/novelwriter.png /usr/share/icons/hicolor/96x96/apps/
|
||||
cp -v assets/icons/256x256/novelwriter.png /usr/share/icons/hicolor/256x256/apps/
|
||||
cp -v assets/icons/512x512/novelwriter.png /usr/share/icons/hicolor/512x512/apps/
|
||||
cp -v assets/icons/novelwriter.svg /usr/share/icons/hicolor/scalable/apps/
|
||||
cp -v assets/icons/x-novelwriter-project.svg /usr/share/icons/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg
|
||||
cp -v assets/mime/x-novelwriter-project.xml /usr/share/mime/packages/
|
||||
|
||||
update-mime-database /usr/share/mime/
|
||||
update-icon-caches /usr/share/icons/hicolor/24x24/apps/
|
||||
update-icon-caches /usr/share/icons/hicolor/48x48/apps/
|
||||
update-icon-caches /usr/share/icons/hicolor/96x96/apps/
|
||||
update-icon-caches /usr/share/icons/hicolor/256x256/apps/
|
||||
update-icon-caches /usr/share/icons/hicolor/512x512/apps/
|
||||
update-icon-caches /usr/share/icons/hicolor/1024x1024/apps/
|
||||
update-icon-caches /usr/share/icons/hicolor/scalable/apps/
|
||||
update-icon-caches /usr/share/icons/hicolor/scalable/mimetypes/
|
||||
@@ -1,42 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
cd ..
|
||||
|
||||
EXEC=$(pwd)/novelWriter.py
|
||||
EXEC=$(echo $EXEC | sed 's_/_\\/_g')
|
||||
|
||||
sed "s/%%exec%%/$EXEC/g" assets/novelwriter.desktop > /usr/share/applications/novelwriter.desktop
|
||||
|
||||
if [ ! -d /usr/share/icons/hicolor/24x24/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/24x24/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/48x48/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/48x48/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/96x96/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/96x96/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/256x256/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/256x256/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/512x512/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/512x512/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/scalable/apps ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/scalable/apps
|
||||
fi
|
||||
if [ ! -d /usr/share/icons/hicolor/scalable/mimetypes ]; then
|
||||
mkdir -pv /usr/share/icons/hicolor/scalable/mimetypes
|
||||
fi
|
||||
|
||||
cp -v assets/icons/24x24/novelwriter.png /usr/share/icons/hicolor/24x24/apps/
|
||||
cp -v assets/icons/48x48/novelwriter.png /usr/share/icons/hicolor/48x48/apps/
|
||||
cp -v assets/icons/96x96/novelwriter.png /usr/share/icons/hicolor/96x96/apps/
|
||||
cp -v assets/icons/256x256/novelwriter.png /usr/share/icons/hicolor/256x256/apps/
|
||||
cp -v assets/icons/512x512/novelwriter.png /usr/share/icons/hicolor/512x512/apps/
|
||||
cp -v assets/icons/novelwriter.svg /usr/share/icons/hicolor/scalable/apps/
|
||||
cp -v assets/icons/x-novelwriter-project.svg /usr/share/icons/hicolor/scalable/mimetypes/application-x-novelwriter-project.svg
|
||||
cp -v assets/mime/x-novelwriter-project.xml /usr/share/mime/packages/
|
||||
|
||||
update-mime-database /usr/share/mime/
|
||||
update-icon-caches /usr/share/icons/*
|
||||
@@ -1,10 +0,0 @@
|
||||
[Desktop Entry]
|
||||
Type=Application
|
||||
Encoding=UTF-8
|
||||
Name=novelWriter
|
||||
Comment=Multi-document markdown editor for novels
|
||||
Exec=%%exec%% %f
|
||||
Icon=novelwriter
|
||||
Categories=Qt;Office;WordProcessor;
|
||||
Terminal=false
|
||||
MimeType=application/x-novelwriter-project
|
||||
@@ -3,8 +3,8 @@ codecov:
|
||||
|
||||
coverage:
|
||||
precision: 2
|
||||
round: up
|
||||
range: "70...100"
|
||||
round: nearest
|
||||
range: "70...95"
|
||||
|
||||
status:
|
||||
project:
|
||||
@@ -20,5 +20,3 @@ parsers:
|
||||
loop: yes
|
||||
method: no
|
||||
macro: no
|
||||
|
||||
comment: false
|
||||
2264
docs/FileFormatSpec-1.5.fodt
Normal file
@@ -1,23 +0,0 @@
|
||||
/*
|
||||
* Custom CSS Rules for Sphinx RTD Theme
|
||||
*/
|
||||
|
||||
.kbd {
|
||||
background-color: #eeeeee;
|
||||
border: 1px solid #b4b4b4;
|
||||
border-radius: 3px;
|
||||
color: #333333;
|
||||
display: inline-block;
|
||||
font-size: 0.85em;
|
||||
font-weight: 400;
|
||||
line-height: 1;
|
||||
padding: 2px 4px;
|
||||
margin-left: 1px;
|
||||
margin-right: 1px;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.tight-table td {
|
||||
white-space: normal !important;
|
||||
vertical-align: text-top;
|
||||
}
|
||||
14
docs/source/_static/custom.css
Normal file
@@ -0,0 +1,14 @@
|
||||
span.guilabel {
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.nw-sidebar-title {
|
||||
height: unset;
|
||||
max-height: unset;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
gap: .25rem;
|
||||
font-size: 1.25rem;
|
||||
font-weight: normal;
|
||||
text-align: center;
|
||||
}
|
||||
BIN
docs/source/_static/novelwriter-dark.png
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
docs/source/_static/novelwriter-light.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/source/_static/novelwriter-pdf.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
3
docs/source/_templates/sidebar-title.html
Normal file
@@ -0,0 +1,3 @@
|
||||
{% if docstitle %}
|
||||
<p class="nw-sidebar-title">{{ docstitle }}</p>
|
||||
{% endif %}
|
||||
@@ -1,146 +1,84 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
#
|
||||
# Configuration file for the Sphinx documentation builder.
|
||||
#
|
||||
# This file does only contain a selection of the most common options. For a
|
||||
# full list see the documentation:
|
||||
# http://www.sphinx-doc.org/en/master/config
|
||||
"""
|
||||
Configuration file for the Sphinx documentation builder.
|
||||
Documentation: http://www.sphinx-doc.org/en/master/config
|
||||
"""
|
||||
|
||||
# -- Path setup --------------------------------------------------------------
|
||||
# -- Imports -----------------------------------------------------------------
|
||||
|
||||
# If extensions (or modules to document with autodoc) are in another directory,
|
||||
# add these directories to sys.path here. If the directory is relative to the
|
||||
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
||||
#
|
||||
# import os
|
||||
# import sys
|
||||
# sys.path.insert(0, os.path.abspath("."))
|
||||
import os, time, sphinx_rtd_theme
|
||||
import os
|
||||
import time
|
||||
import datetime
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
# -- Project Information -----------------------------------------------------
|
||||
|
||||
project = "novelWriter"
|
||||
copyright = "2018-2020, Veronica Berglyd Olsen"
|
||||
copyright = f"{datetime.date.today().year}"
|
||||
author = "Veronica Berglyd Olsen"
|
||||
|
||||
# The short X.Y version
|
||||
version = "0.12.0"
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = "0.12.0"
|
||||
initFile = os.path.join(
|
||||
os.path.dirname(__file__), os.pardir, os.pardir,
|
||||
"novelwriter", "__init__.py"
|
||||
)
|
||||
with open(initFile) as inFile:
|
||||
for aLine in inFile:
|
||||
if aLine.startswith("__version__"):
|
||||
release = aLine.split('"')[1].strip()
|
||||
break
|
||||
else:
|
||||
release = "unknown"
|
||||
|
||||
version = release.partition("-")[0]
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
# -- General Configuration ---------------------------------------------------
|
||||
|
||||
os.environ["TZ"] = "Europe/Oslo"
|
||||
time.tzset()
|
||||
|
||||
# needs_sphinx = "1.0"
|
||||
extensions = [
|
||||
"sphinx_rtd_theme",
|
||||
]
|
||||
needs_sphinx = "5.0"
|
||||
extensions = ["sphinx_design"]
|
||||
templates_path = ["_templates"]
|
||||
source_suffix = ".rst"
|
||||
master_doc = "index"
|
||||
today_fmt = "%A, %B %d %Y at %H:%M"
|
||||
language = None
|
||||
today_fmt = "%A, %d %B %Y at %H:%M"
|
||||
language = "en"
|
||||
exclude_patterns = []
|
||||
pygments_style = None
|
||||
|
||||
# -- Options for HTML Output -------------------------------------------------
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
html_logo = "images/novelwriter.png"
|
||||
html_theme = "sphinx_book_theme"
|
||||
html_title = f"Version {release}"
|
||||
html_static_path = ["_static"]
|
||||
html_css_files = ["custom.css"]
|
||||
html_theme_options = {
|
||||
# Toc options
|
||||
"collapse_navigation": True,
|
||||
"sticky_navigation": True,
|
||||
"navigation_depth": 3,
|
||||
"includehidden": True,
|
||||
"titles_only": False,
|
||||
"logo_only": True,
|
||||
"logo": {
|
||||
"image_light": "_static/novelwriter-light.png",
|
||||
"image_dark": "_static/novelwriter-dark.png",
|
||||
},
|
||||
"show_toc_level": 2,
|
||||
"show_navbar_depth": 1,
|
||||
"repository_url": "https://github.com/vkbo/novelwriter",
|
||||
"navigation_with_keys": True,
|
||||
"use_repository_button": True,
|
||||
"use_issues_button": True,
|
||||
"pygment_light_style": "tango",
|
||||
"pygment_dark_style": "dracula",
|
||||
}
|
||||
html_sidebars = {
|
||||
"**": ["navbar-logo", "sidebar-title", "sbt-sidebar-nav"],
|
||||
}
|
||||
|
||||
html_static_path = ["_static"]
|
||||
html_css_files = [
|
||||
"css/custom.css",
|
||||
]
|
||||
|
||||
# Custom sidebar templates, must be a dictionary that maps document names
|
||||
# to template names.
|
||||
# The default sidebars (for documents that don"t match any pattern) are
|
||||
# defined by theme itself. Builtin themes are using these templates by
|
||||
# default: ``["localtoc.html", "relations.html", "sourcelink.html",
|
||||
# "searchbox.html"]``.
|
||||
# html_sidebars = {}
|
||||
|
||||
|
||||
# -- Options for HTMLHelp output ---------------------------------------------
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = "novelWriterDoc"
|
||||
|
||||
|
||||
# -- Options for LaTeX output ------------------------------------------------
|
||||
# -- Options for LaTeX Output ------------------------------------------------
|
||||
|
||||
latex_elements = {
|
||||
# The paper size ("letterpaper" or "a4paper").
|
||||
#
|
||||
# "papersize": "letterpaper",
|
||||
|
||||
# The font size ("10pt", "11pt" or "12pt").
|
||||
#
|
||||
# "pointsize": "10pt",
|
||||
|
||||
# Additional stuff for the LaTeX preamble.
|
||||
#
|
||||
# "preamble": "",
|
||||
|
||||
# Latex figure (float) alignment
|
||||
#
|
||||
# "figure_align": "htbp",
|
||||
"papersize": "a4paper",
|
||||
"pointsize": "11pt",
|
||||
"preamble": (
|
||||
"\\usepackage[utf8]{inputenc}\n"
|
||||
"\\DeclareUnicodeCharacter{2212}{\\textendash}\n"
|
||||
),
|
||||
"figure_align": "htbp",
|
||||
}
|
||||
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_logo = "_static/novelwriter-pdf.png"
|
||||
latex_documents = [(
|
||||
master_doc, "novelWriter.tex", "novelWriter Documentation",
|
||||
author, "manual"
|
||||
master_doc, "manual.tex", "User Guide", author, "manual"
|
||||
)]
|
||||
|
||||
|
||||
# -- Options for manual page output ------------------------------------------
|
||||
|
||||
# One entry per manual page. List of tuples
|
||||
# (source start file, name, description, authors, manual section).
|
||||
man_pages = [(
|
||||
master_doc, "novelwriter", "novelWriter Documentation", [author], 1
|
||||
)]
|
||||
|
||||
|
||||
# -- Options for Texinfo output ----------------------------------------------
|
||||
|
||||
# Grouping the document tree into Texinfo files. List of tuples
|
||||
# (source start file, target name, title, author,
|
||||
# dir menu entry, description, category)
|
||||
texinfo_documents = [(
|
||||
master_doc, "novelWriter", "novelWriter Documentation", author,
|
||||
"novelWriter", "Markdown-like editor for novels.", "Miscellaneous"
|
||||
)]
|
||||
|
||||
|
||||
# -- Options for Epub output -------------------------------------------------
|
||||
|
||||
# Bibliographic Dublin Core info.
|
||||
epub_title = project
|
||||
|
||||
# The unique identifier of the text. This can be a ISBN number
|
||||
# or the project homepage.
|
||||
# epub_identifier = ""
|
||||
|
||||
# A unique identification for the text.
|
||||
# epub_uid = ""
|
||||
|
||||
# A list of files that should not be packed into the epub file.
|
||||
epub_exclude_files = ["search.html"]
|
||||
|
||||
@@ -1,153 +0,0 @@
|
||||
.. _a_export:
|
||||
|
||||
******************
|
||||
Exporting Projects
|
||||
******************
|
||||
|
||||
The novelWriter project can be exported in various formats using the build tool available from
|
||||
:guilabel:`Build Novel Project` in the :guilabel:`Tools` menu, or by pressing :kbd:`F5`.
|
||||
|
||||
|
||||
.. _a_export_headers:
|
||||
|
||||
Header Formatting
|
||||
=================
|
||||
|
||||
The titles for the five types of titles (the chapter headings come in a numbered and unnumbered
|
||||
version) of story structure can be formatted collectively in the export tool. This is done through
|
||||
a series of keyword–replace steps. They are all on the format ``%keyword%``.
|
||||
|
||||
``%title%``
|
||||
This keyword will always be replaced with the title text you put after the ``#`` characters in
|
||||
your document.
|
||||
|
||||
``%ch%``
|
||||
This is replaced by a chapter number. The number is incremented by one each time the build tool
|
||||
sees a new heading of level two in a file with layout :guilabel:`Chapter`. If the file has layout
|
||||
:guilabel:`Unnumbered`, the counter is *not* incremented. The latter is useful for for instance
|
||||
Prologue and Epilogue chapters.
|
||||
|
||||
``%chw%``
|
||||
This is like ``%ch%``, but the number is expressed as a word like for instance "One", "Two", etc.
|
||||
|
||||
``%chi%``
|
||||
This is also like ``%ch%``, but the number is represented as a lower case Roman number.
|
||||
|
||||
``%chI%``
|
||||
This is also like ``%ch%``, but the number is represented as an upper case Roman number.
|
||||
|
||||
``%sc%``
|
||||
This is the number counter equivalent for scenes. These are incremented each time a heading of
|
||||
level three is encountered, but reset to 1 each time a chapter is encountered. They can thus be
|
||||
used for counting scenes within a chapter.
|
||||
|
||||
``%sca%``
|
||||
This is like ``%sc%``, but the number is *not* reset to 1 for each chapter. Instead it runs from
|
||||
1 from the beginning of the novel.
|
||||
|
||||
``\\``
|
||||
This inserts a line break within the title.
|
||||
|
||||
.. note::
|
||||
Header formatting only applies to novel files. Headings in note files will will be left as-is on
|
||||
export. However, heading levels 1 through 4 are converted to the correct heading level in the
|
||||
respective output formats.
|
||||
|
||||
**Example**
|
||||
|
||||
* The format ``%title%`` just reproduces the title you set in the document file.
|
||||
* The format ``Chapter %ch%: %title%`` produces something like "Chapter 1: My Chapter Title".
|
||||
* The format ``Scene %ch%.%sc%`` produces something like "Scene 1.2" for scene 2 in chapter 1.
|
||||
|
||||
|
||||
.. _a_export_scenes:
|
||||
|
||||
Scene Separators
|
||||
================
|
||||
|
||||
If you don't want any titles for your scenes (and for your sections if you have them), you can leave
|
||||
the boxes empty, and an empty paragraph will be inserted between the scenes or sections instead.
|
||||
|
||||
Alternatively, if you want a separator between them, like the common ``* * *``, you can also enter
|
||||
that in the box. In fact, if the format is a piece of static text, it will always be treated as a
|
||||
separator.
|
||||
|
||||
|
||||
.. _a_export_files:
|
||||
|
||||
File Selection
|
||||
==============
|
||||
|
||||
Which files are selected for export can also be controlled from the options on the left side of the
|
||||
dialog window. The switch for :guilabel:`Include novel files` will select any file that isn't
|
||||
classified as a note. The switch for :guilabel:`Include note files` will select any file that *is*
|
||||
a note. This is allows for exporting just the novel, just your notes, or both, as you see fit.
|
||||
|
||||
In addition, you can select to export the synopsis comments, regular comments, keywords, and even
|
||||
exclude the body text itself.
|
||||
|
||||
.. tip::
|
||||
If you for instance want to export a document with an outline of the novel, you can enable
|
||||
keywords and synopsis export and disable body text, thus getting a document with each heading
|
||||
followed by the tags and references and the synopsis.
|
||||
|
||||
If you need to exclude specific files from your exports, like draft files or files you want to take
|
||||
out of your manuscript, but don't want to delete, you can un-check the :guilabel:`Include when
|
||||
building project` option for each file in the project tree. An included file has a checkmark after
|
||||
the status icon in the :guilabel:`Flags` column. The :guilabel:`Build Novel Project` tool has a
|
||||
switch to ignore this flag if you need to collectively override these settings.
|
||||
|
||||
|
||||
.. _a_export_formats:
|
||||
|
||||
Export Formats
|
||||
==============
|
||||
|
||||
Currently, six formats are supported for exporting.
|
||||
|
||||
OpenDocument Format
|
||||
This produces an open document ``.odt`` file. The document produced has very little formatting,
|
||||
and may require further editing afterwards. For a better formatted office document, you may get a
|
||||
better result with exporting to HTML and the import that HTML document into your office word
|
||||
processor. They are generally very good at importing HTML files.
|
||||
|
||||
PDF Format
|
||||
The PDF export is just a shortcut for print to file. For a better PDF result, you may instead
|
||||
want to export HTML, and use a word processor to convert the HTML document to PDF.
|
||||
|
||||
novelWriter HTML
|
||||
The HTML export format writes a single ``.htm`` file with minimal style formatting. The exported
|
||||
HTML file is suitable for further processing by document conversion tools like Pandoc, for
|
||||
importing in word processors, or for printing from browser. It is generally the best formatted
|
||||
export option and supports all features of novelWriter since it is entirely geenrated by the
|
||||
application and doesn't depend on Qt library features.
|
||||
|
||||
novelWriter Markdown
|
||||
This is simply a concatenation of the files selected by the filters. The files in the project are
|
||||
stacked together in the order they appear in the tree view, 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 Markdown
|
||||
If you have Qt 5.14 or higher, the option to export to plain markdown is available. This feature
|
||||
uses Qt's own markdown export feature.
|
||||
|
||||
Plain Text
|
||||
The plain text export format writes a simple ``.txt`` file without any formatting at all.
|
||||
|
||||
|
||||
.. _a_export_options:
|
||||
|
||||
Additional Export Options
|
||||
=========================
|
||||
|
||||
In addition to the above document formats, the novelWriter HTML and Markdown formats can also be
|
||||
wrapped in a JSON file. The files will have a meta data entry and a body entry. For HTML, also the
|
||||
accompanying css styles are exported.
|
||||
|
||||
The text body is saved in a two-level list. The outer list contains one entry per exported file, in
|
||||
the order they appear in the project tree. Each file is then split up into a list as well, with one
|
||||
entry per paragraph in the document.
|
||||
|
||||
These files are mainly intended for scripted post-processing for those who want that option. A JSON
|
||||
file can be imported directly into a Python dict object or a PHP array, to mentions a few options.
|
||||
BIN
docs/source/fileformatspec15.pdf
Normal file
BIN
docs/source/images/fig_build_build.png
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
docs/source/images/fig_build_settings_headings.png
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
docs/source/images/fig_build_settings_selections.png
Normal file
|
After Width: | Height: | Size: 86 KiB |
BIN
docs/source/images/fig_editor.png
Normal file
|
After Width: | Height: | Size: 127 KiB |
BIN
docs/source/images/fig_editor_search.png
Normal file
|
After Width: | Height: | Size: 7.1 KiB |
BIN
docs/source/images/fig_header_levels.png
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
docs/source/images/fig_manuscript_build.png
Normal file
|
After Width: | Height: | Size: 99 KiB |
BIN
docs/source/images/fig_novel_tree_view.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
docs/source/images/fig_outline_view.png
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
docs/source/images/fig_project_merge_tool.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/source/images/fig_project_split_tool.png
Normal file
|
After Width: | Height: | Size: 36 KiB |
BIN
docs/source/images/fig_project_tree_detailed.png
Normal file
|
After Width: | Height: | Size: 147 KiB |
BIN
docs/source/images/fig_project_tree_view.png
Normal file
|
After Width: | Height: | Size: 52 KiB |
BIN
docs/source/images/fig_references.png
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
docs/source/images/fig_viewer.png
Normal file
|
After Width: | Height: | Size: 133 KiB |
|
Before Width: | Height: | Size: 22 KiB |
BIN
docs/source/images/python_powered.png
Normal file
|
After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 96 KiB |
|
Before Width: | Height: | Size: 423 KiB After Width: | Height: | Size: 534 KiB |
|
Before Width: | Height: | Size: 431 KiB After Width: | Height: | Size: 539 KiB |
BIN
docs/source/images/screenshot_multi.png
Normal file
|
After Width: | Height: | Size: 379 KiB |
@@ -1,87 +1,89 @@
|
||||
#####################
|
||||
novelWriter |release|
|
||||
#####################
|
||||
######################
|
||||
novelWriter User Guide
|
||||
######################
|
||||
|
||||
.. image:: https://travis-ci.com/vkbo/novelWriter.svg?branch=master
|
||||
:target: https://travis-ci.com/vkbo/novelWriter
|
||||
:alt: Build Status
|
||||
| **Release Version:** |release|
|
||||
| **Updated:** |today|
|
||||
|
||||
.. image:: https://codecov.io/gh/vkbo/novelWriter/branch/master/graph/badge.svg
|
||||
:target: https://codecov.io/gh/vkbo/novelWriter
|
||||
:alt: Code Coverage
|
||||
novelWriter is an open source plain text editor designed for writing novels assembled from many
|
||||
smaller text documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta
|
||||
data syntax for comments, synopsis, and cross-referencing. It is designed to be a simple text
|
||||
editor that allows for easy organisation of text and notes, using human readable text files as
|
||||
storage for robustness.
|
||||
|
||||
.. image:: https://readthedocs.org/projects/novelwriter/badge/?version=latest
|
||||
:target: https://novelwriter.readthedocs.io/en/latest/?badge=latest
|
||||
:alt: Documentation
|
||||
.. figure:: images/screenshot_multi.png
|
||||
:class: dark-light
|
||||
:align: center
|
||||
:width: 500
|
||||
|
||||
.. image:: https://img.shields.io/github/v/release/vkbo/novelwriter
|
||||
:target: https://github.com/vkbo/novelWriter/releases
|
||||
:alt: GitHub Release
|
||||
|
||||
.. image:: https://img.shields.io/pypi/v/novelwriter
|
||||
:target: https://pypi.org/project/novelWriter/
|
||||
:alt: PyPI
|
||||
|
||||
.. image:: https://img.shields.io/pypi/pyversions/novelwriter
|
||||
:target: https://pypi.org/project/novelWriter/
|
||||
:alt: Python Version
|
||||
|
||||
**Last Updated:** |today|
|
||||
|
||||
novelWriter is a markdown-like text editor designed for writing novels and larger projects of many
|
||||
smaller plain text documents. It uses its own flavour of markdown that supports a meta data syntax
|
||||
for comments, synopsis and cross-referencing between files. The idea is to have a simple text editor
|
||||
which allows for easy organisation of text files and notes, built on a plain text file project
|
||||
repository for robustness.
|
||||
|
||||
The plain text storage is suitable for version control software, and also well suited for file
|
||||
synchronisation tools. The core project structure is stored in a project XML file. Other meta data
|
||||
is primarily saved as JSON files.
|
||||
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.
|
||||
|
||||
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 already, and users have tested it on other
|
||||
platforms too. Since novelWriter is still under development, it is easier to run it if you are
|
||||
already familiar with how to run Python applications on your platform.
|
||||
novelWriter. It runs fine on Linux, Windows and MacOS, and users have tested it on other platforms
|
||||
as well. novelWriter can also be run directly from the Python source, or installed from packages or
|
||||
with pip. See :ref:`a_started` for more details.
|
||||
|
||||
**Useful Links**
|
||||
|
||||
* Website: https://novelwriter.io
|
||||
* Documentation: https://novelwriter.readthedocs.io
|
||||
* Documentation: https://docs.novelwriter.io
|
||||
* Internationalisation: https://crowdin.com/project/novelwriter
|
||||
* Source Code: https://github.com/vkbo/novelWriter
|
||||
* Source Releases: https://github.com/vkbo/novelWriter/releases
|
||||
* Issue Tracker: https://github.com/vkbo/novelWriter/issues
|
||||
* Feature Discussions: https://github.com/vkbo/novelWriter/discussions
|
||||
* PyPi Project: https://pypi.org/project/novelWriter
|
||||
|
||||
* Social Media: https://fosstodon.org/@novelwriter
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: First Steps
|
||||
|
||||
introduction
|
||||
started
|
||||
interface
|
||||
:hidden:
|
||||
|
||||
Main Page <self>
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Writing Novels
|
||||
|
||||
projects
|
||||
structure
|
||||
notes
|
||||
export
|
||||
:maxdepth: 1
|
||||
:caption: Introduction
|
||||
:hidden:
|
||||
|
||||
int_introduction
|
||||
int_overview
|
||||
int_started
|
||||
int_howto
|
||||
int_customise
|
||||
int_glossary
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Under the Hood
|
||||
:maxdepth: 1
|
||||
:caption: Using novelWriter
|
||||
:hidden:
|
||||
|
||||
technical
|
||||
usage_breakdown
|
||||
usage_project
|
||||
usage_writing
|
||||
usage_format
|
||||
usage_shortcuts
|
||||
usage_typography
|
||||
usage_projectformat
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Organising Your Project
|
||||
:hidden:
|
||||
|
||||
Indices and Tables
|
||||
==================
|
||||
project_overview
|
||||
project_structure
|
||||
project_references
|
||||
project_manuscript
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
* :ref:`search`
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Additional Topics
|
||||
:hidden:
|
||||
|
||||
tech_locations
|
||||
tech_storage
|
||||
tech_source
|
||||
tech_tests
|
||||
|
||||
176
docs/source/int_customise.rst
Normal file
@@ -0,0 +1,176 @@
|
||||
.. _a_custom:
|
||||
|
||||
**************
|
||||
Customisations
|
||||
**************
|
||||
|
||||
.. _Enchant: https://abiword.github.io/enchant
|
||||
.. _Free Desktop: https://cgit.freedesktop.org/libreoffice/dictionaries/tree/
|
||||
|
||||
There are a few ways you can customise novelWriter youself. Currently, you can add new GUI themes,
|
||||
your own syntax themes, and install additional dictionaries.
|
||||
|
||||
|
||||
.. _a_custom_dict:
|
||||
|
||||
Spell Check Dictionaries
|
||||
========================
|
||||
|
||||
novelWriter uses Enchant_ as the spell checking tool. Depending on your operating system, it may or
|
||||
may not load all installed spell check dictionaries automatically.
|
||||
|
||||
Linux and MacOS
|
||||
---------------
|
||||
|
||||
On Linux and MacOS, you generally only have to install hunspell or aspell dictionaries on your
|
||||
system like you do for other applications. See your distro or OS documentation for how to do this.
|
||||
These dictionaries should show up as available spell check languages in novelWriter.
|
||||
|
||||
Windows
|
||||
-------
|
||||
|
||||
For Windows, English is included with the installation. For other languages you have to download
|
||||
and add dictionaries yourself. You can find the various dictionaries on the `Free Desktop`_
|
||||
website. You should find a folder for your language, if it is available at all, and download the
|
||||
files ending with ``.aff`` and ``.dic``. These files must then be copied to the following location:
|
||||
|
||||
``C:\Users\<USER>\AppData\Local\enchant\hunspell``
|
||||
|
||||
This assumes your user profile is stored at ``C:\Users\<USER>``. The last one or two folders may
|
||||
not exist, so you may need to create them.
|
||||
|
||||
.. note::
|
||||
The Free Desktop link points to a repository, and what may look like file links inside the
|
||||
dictionary folder are actually links to web pages. If you right-click and download those, you
|
||||
get HTML files, not dictionaries!
|
||||
|
||||
In order to download the actual dictionary files, right-click the "plain" label at the end of
|
||||
each line and download that.
|
||||
|
||||
|
||||
.. _a_custom_theme:
|
||||
|
||||
Syntax and GUI Themes
|
||||
=====================
|
||||
|
||||
Adding your own GUI and syntax themes is relatively easy, altough it requires that you manually
|
||||
edit config files with colour values. The themes are defined by simple plain text config files with
|
||||
meta data and colour settings.
|
||||
|
||||
In order to make your own versions, first copy one of the existing files to your local computer and
|
||||
modify it as you like.
|
||||
|
||||
* The existing syntax themes are stored in
|
||||
`novelwriter/assets/syntax <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/syntax>`_.
|
||||
* The existing GUI themes are stored in
|
||||
`novelwriter/assets/themes <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/themes>`_.
|
||||
* The existing icon themes are stored in
|
||||
`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`.
|
||||
|
||||
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
|
||||
set as ``name`` inside the file.
|
||||
|
||||
.. versionadded:: 2.0
|
||||
The ``icontheme`` value was added to GUI themes. Make sure you set this value in existing custom
|
||||
themes. Otherwise, novelWriter will try to guess your icon theme, and may not pick the most
|
||||
suitable one.
|
||||
|
||||
|
||||
Gustom GUI and Icons Theme
|
||||
--------------------------
|
||||
|
||||
A GUI theme ``.conf`` file consists of the following settings:
|
||||
|
||||
.. code-block:: cfg
|
||||
|
||||
[Main]
|
||||
name = My Custom Theme
|
||||
description = A description of my custom theme
|
||||
author = Jane Doe
|
||||
credit = John Doe
|
||||
url = https://example.com
|
||||
license = CC BY-SA 4.0
|
||||
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
|
||||
icontheme = typicons_light
|
||||
|
||||
[Palette]
|
||||
window = 100, 100, 100
|
||||
windowtext = 100, 100, 100
|
||||
base = 100, 100, 100
|
||||
alternatebase = 100, 100, 100
|
||||
text = 100, 100, 100
|
||||
tooltipbase = 100, 100, 100
|
||||
tooltiptext = 100, 100, 100
|
||||
button = 100, 100, 100
|
||||
buttontext = 100, 100, 100
|
||||
brighttext = 100, 100, 100
|
||||
highlight = 100, 100, 100
|
||||
highlightedtext = 100, 100, 100
|
||||
link = 100, 100, 100
|
||||
linkvisited = 100, 100, 100
|
||||
|
||||
[GUI]
|
||||
statusnone = 100, 100, 100
|
||||
statussaved = 100, 100, 100
|
||||
statusunsaved = 100, 100, 100
|
||||
|
||||
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
|
||||
``typicons_light`` or ``typicons_dark``, or to an icon theme in your custom icons directory. The
|
||||
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 to 255.
|
||||
Omitted values are not loaded and will use default values.
|
||||
|
||||
|
||||
Custom Syntax Theme
|
||||
-------------------
|
||||
|
||||
A syntax theme ``.conf`` file consists of the follwing settings:
|
||||
|
||||
.. code-block:: cfg
|
||||
|
||||
[Main]
|
||||
name = My Syntax Theme
|
||||
author = Jane Doe
|
||||
credit = John Doe
|
||||
url = https://example.com
|
||||
license = CC BY-SA 4.0
|
||||
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
|
||||
|
||||
[Syntax]
|
||||
background = 255, 255, 255
|
||||
text = 0, 0, 0
|
||||
link = 0, 0, 0
|
||||
headertext = 0, 0, 0
|
||||
headertag = 0, 0, 0
|
||||
emphasis = 0, 0, 0
|
||||
straightquotes = 0, 0, 0
|
||||
doublequotes = 0, 0, 0
|
||||
singlequotes = 0, 0, 0
|
||||
hidden = 0, 0, 0
|
||||
shortcode = 0, 0, 0
|
||||
keyword = 0, 0, 0
|
||||
value = 0, 0, 0
|
||||
spellcheckline = 0, 0, 0
|
||||
errorline = 0, 0, 0
|
||||
replacetag = 0, 0, 0
|
||||
modifier = 0, 0, 0
|
||||
|
||||
In the Main section, you must define at least the ``name`` setting. The Syntax colour values are
|
||||
RGB numbers of the format ``r, g, b`` where each is an integer from to 255. Omitted values default
|
||||
to black, except ``background`` which defaults to white,
|
||||
|
||||
.. versionadded:: 2.2
|
||||
The `shortcode` syntax colour entry was added, so you need to update your custom themes if you
|
||||
made any before version 2.2.
|
||||
64
docs/source/int_glossary.rst
Normal file
@@ -0,0 +1,64 @@
|
||||
.. _a_glossary:
|
||||
|
||||
********
|
||||
Glossary
|
||||
********
|
||||
|
||||
.. glossary::
|
||||
:sorted:
|
||||
|
||||
Root Folder
|
||||
A "Root Folder" is a top level folder of the project tree in novelWriter. Each type of root
|
||||
folder has a specific icon to identify it. For an overview of available root folder types,
|
||||
see :ref:`a_proj_roots`.
|
||||
|
||||
Novel Documents
|
||||
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.
|
||||
|
||||
Project Notes
|
||||
Project Notes are unrestricted documents that can be placed anywhere in your project. You
|
||||
should not use these documents for story elements, only for notes. Project notes are the
|
||||
source files used by the Tags and References system. See the :ref:`a_references` chapter for
|
||||
more details on how to use them.
|
||||
|
||||
Tag
|
||||
A tag is a user defined value assigned as a tag to a section of your :term:`Project Notes`.
|
||||
It is optional, and can be defined once per heading. It is set using the :term:`keyword`
|
||||
syntax ``@tag: value``, where ``value`` is the user defined part. Each tag can be referenced
|
||||
in another file using one of the :term:`reference` keywords. See :ref:`a_references` chapter
|
||||
for more details.
|
||||
|
||||
Reference
|
||||
A reference is one of a set of :term:`keywords<keyword>` that can be used to link to a
|
||||
:term:`tag` in another document. The reference keywords are specific to the different
|
||||
:term:`root folder` types. A full overview is available in the :ref:`a_references` chapter.
|
||||
|
||||
Project Index
|
||||
The project index is a record of all headings in a project, with all their meta data like
|
||||
synopsis comments, :term:`tags<tag>` and :term:`references<reference>`. The project index is
|
||||
kept up to date automatically, but can also be regenerated manually from the
|
||||
:guilabel:`Tools` menu or by pressing :kbd:`F9`.
|
||||
|
||||
Context Menu
|
||||
A context menu is a menu that pops up when you right click something in the user interface.
|
||||
In novelWriter, you can often also open a context menu by pressing the keyboard shortcut
|
||||
:kbd:`Ctrl+.`.
|
||||
|
||||
Headings
|
||||
Each level of headings in :term:`Novel Documents` have a specific meaning in terms of the
|
||||
structure of the story. That is, they determine what novelWriter considers a partition, a
|
||||
chapter, a scene or a text section. For :term:`Project Notes`, the header levels don't
|
||||
matter. For more details on headings in novel documents, see :ref:`a_struct_heads`.
|
||||
|
||||
Keyword
|
||||
A keyword in novelWriter is a special command you put in the text of your documents. They are
|
||||
not standard Markdown, but are used in novelWriter to add information that is interpreted by
|
||||
the application. For instance, keywords are used for :term:`tags<tag>` and
|
||||
:term:`references<reference>`.
|
||||
|
||||
Keywords must always be on their own line, and the first character of the line must always be
|
||||
the ``@`` character. The keyword must also always be followed by a ``:`` character, and the
|
||||
values passed to the command are added after this, separated by commas.
|
||||
83
docs/source/int_howto.rst
Normal file
@@ -0,0 +1,83 @@
|
||||
.. _a_howto:
|
||||
|
||||
*************
|
||||
Tips & Tricks
|
||||
*************
|
||||
|
||||
.. _Discussions Page: https://github.com/vkbo/novelWriter/discussions
|
||||
|
||||
This is a list of hopefully helpful little tips on how to get the most out of novelWriter.
|
||||
|
||||
.. note::
|
||||
This section will be expanded over time, and if you would like to have something added, feel
|
||||
free to contribute, or start a discussion on the project's `Discussions Page`_.
|
||||
|
||||
|
||||
Managing the Project
|
||||
====================
|
||||
|
||||
.. dropdown:: Merge Multiple Documents Into One
|
||||
:animate: fade-in-slide-down
|
||||
|
||||
If you need to merge a set of documents in your project into a single document, you can achieve
|
||||
this by first making a new folder for just that purpose, and drag all the files you want merged
|
||||
into this folder. Then you can right click the folder, select :guilabel:`Transform` and
|
||||
:guilabel:`Merge Documents in Folder`.
|
||||
|
||||
In the dialog that pops up, the documents will be in the same order as in the folder, but you
|
||||
can also rearrange them here of you wish. See :ref:`a_ui_tree_split_merge` for more details.
|
||||
|
||||
|
||||
Layout Tricks
|
||||
=============
|
||||
|
||||
.. dropdown:: Create a Simple Table
|
||||
:animate: fade-in-slide-down
|
||||
|
||||
The formatting tools available in novelWriter don't allow for complex structures like tables.
|
||||
However, the editor does render tabs in a similar way that regular word processors do. You can
|
||||
set the width of a tab in :guilabel:`Preferences`.
|
||||
|
||||
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.
|
||||
|
||||
This is most suitable for your notes, as the result in exported documents cannot be guaranteed
|
||||
to match.
|
||||
|
||||
|
||||
Organising Your Text
|
||||
====================
|
||||
|
||||
.. dropdown:: 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
|
||||
before the first scene begins.
|
||||
|
||||
If you add separate files for chapters and scenes, the chapter file is the perfect place to add
|
||||
such text. Separating chapter and scene files also allows you to make scene files child
|
||||
documents of the chapter (added in novelWriter 2.0).
|
||||
|
||||
.. dropdown:: Distinguishing Soft and Hard Scene Breaks
|
||||
:animate: fade-in-slide-down
|
||||
|
||||
Depending on your writing style, you may need to separate between soft and hard scene breaks
|
||||
within chapters. Like for instance if you switch point-of-view character often.
|
||||
|
||||
In such cases you may want to use the scene heading for hard scene breaks and section headings
|
||||
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.
|
||||
|
||||
|
||||
Other Tools
|
||||
===========
|
||||
|
||||
.. dropdown:: Convert Project to/from yWriter Format
|
||||
:animate: fade-in-slide-down
|
||||
|
||||
There is a tool available that lets you convert a `yWriter <http://spacejock.com/yWriter7.html>`_
|
||||
project to a novelWriter project, and vice versa.
|
||||
|
||||
The tool is available at `peter88213.github.io/yw2nw <https://peter88213.github.io/yw2nw/>`__
|
||||
91
docs/source/int_introduction.rst
Normal file
@@ -0,0 +1,91 @@
|
||||
.. _a_intro:
|
||||
|
||||
************
|
||||
Key Features
|
||||
************
|
||||
|
||||
.. _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 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.
|
||||
|
||||
Your novel project is organised as a collection of separate plain text documents instead of a
|
||||
single, large document. The idea here is to make it easier to reorganise your project structure
|
||||
without having to cut and paste text between chapters.
|
||||
|
||||
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
|
||||
your notes about your characters, your world building, and so on.
|
||||
|
||||
You can at any point split the individual documents by their headers up into multiple documents, or
|
||||
merge multiple documents into single documents. This makes it easier to use variations of the
|
||||
Snowflake_ method for writing. You can focus on writing larger structure-focused documents, like
|
||||
one per act for instance, and later effortlessly split these up into scenes by their headers.
|
||||
|
||||
Below are some key features of novelWriter.
|
||||
|
||||
**Focus on writing**
|
||||
The aim of the user interface is to let the user 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.
|
||||
|
||||
**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
|
||||
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.
|
||||
|
||||
**Organise your documents how you like**
|
||||
You can split your novel project up into as many individual documents as you want to. When you
|
||||
build the project into a manuscript, they are all glued together in the top-to-bottom order in
|
||||
which they appear in the project tree. You can use as few text documents as you like, but
|
||||
splitting the project up into chapters and scenes means you can easily reorder them using the
|
||||
drag-and-drop feature. You can also start out with a few documents and then later split them
|
||||
into multiple documents based on their headers.
|
||||
|
||||
**Multi-novel project support**
|
||||
As of novelWriter 2.0, 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.
|
||||
|
||||
**Keep track of your plot 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 ot.
|
||||
|
||||
**Get an overview of your plot elements**
|
||||
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.
|
||||
|
||||
**Building 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
|
||||
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.
|
||||
|
||||
|
||||
.. _a_intro_screenshots:
|
||||
|
||||
Screenshots
|
||||
===========
|
||||
|
||||
.. figure:: images/screenshot_default.png
|
||||
:class: dark-light
|
||||
|
||||
novelWriter with default theme
|
||||
|
||||
.. figure:: images/screenshot_dark.png
|
||||
:class: dark-light
|
||||
|
||||
novelWriter with dark theme
|
||||
92
docs/source/int_overview.rst
Normal file
@@ -0,0 +1,92 @@
|
||||
.. _a_overview:
|
||||
|
||||
********
|
||||
Overview
|
||||
********
|
||||
|
||||
.. only:: html
|
||||
|
||||
.. image:: images/python_powered.png
|
||||
:align: right
|
||||
:width: 220
|
||||
|
||||
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/>`_ for the user interface.
|
||||
|
||||
novelWriter is built for Linux first, and 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, see :ref:`a_started`.
|
||||
|
||||
|
||||
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
|
||||
read on.
|
||||
|
||||
:ref:`a_breakdown` – Essential Information
|
||||
This chapter explains the basics of how the application works and what it can and cannot do.
|
||||
|
||||
:ref:`a_ui_project` – Recommended Reading
|
||||
This chapter will give you a more detailed explanation of how you can use the user interface components
|
||||
to organise and view your project work.
|
||||
|
||||
:ref:`a_ui_writing` – Recommended Reading
|
||||
This chapter will give you a more detailed explanation of how the text editor and viewer work.
|
||||
|
||||
:ref:`a_fmt` – Essential Information
|
||||
This chapter covers how you should format your text. The editor is plain text, so text
|
||||
formatting requires some basic markup. The structure of your novel is also inferred by how you
|
||||
use headings. Tags and references are implemented by special keywords.
|
||||
|
||||
:ref:`a_kb` – Optional / Lookup
|
||||
This chapter lists all the keyboard shortcuts in novelWriter and what they do. Most of the
|
||||
shortcuts are also listed next to their menu entries inside the app, or in tool tips. This
|
||||
chapter is mostly for reference.
|
||||
|
||||
:ref:`a_typ` – Optional
|
||||
This chapter gives you an overview of the special typographical symbols available in
|
||||
novelWriter. The auto-replace feature can handle the insertion of standard quote symbols for
|
||||
your language, and other special characters. If you use any symbols aside from these. their
|
||||
intended use is explained here.
|
||||
|
||||
:ref:`a_prjfmt` – Optional
|
||||
This chapter is more technical and has an overview of changes made to the way your project data
|
||||
is stored. The format has changed a bit from time to time, and sometimes the changes require
|
||||
that you make small modifications to your project. Everything you need to know is listed in this
|
||||
chapter.
|
||||
|
||||
|
||||
Organising Your Projects
|
||||
========================
|
||||
|
||||
In addition to managing a collection of plain text files, novelWriter can interpret and map the
|
||||
structure of your novel and show you additional information about its flow and content. In order
|
||||
to take advantage of these features, you must structure your text in a specific way and add some
|
||||
meta data for it to extract.
|
||||
|
||||
:ref:`a_proj` – Essential Information
|
||||
This chapter explains how you organise the content of your project, and how to set up automated
|
||||
backups of your work.
|
||||
|
||||
:ref:`a_struct` – Essential Information
|
||||
This chapter covers the way your novel's structure is encoded into the text documents. It
|
||||
explains how the different levels of headings are used, and some special formatting for
|
||||
different kinds of headings.
|
||||
|
||||
:ref:`a_references` - Recommended Reading
|
||||
This chapter explains how you organise your notes, and how the Tags and References system works.
|
||||
This system lets you cross-link your documents in your project, and display these references in
|
||||
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.
|
||||
178
docs/source/int_started.rst
Normal file
@@ -0,0 +1,178 @@
|
||||
.. _a_started:
|
||||
|
||||
***************
|
||||
Getting Started
|
||||
***************
|
||||
|
||||
.. _Enchant: https://abiword.github.io/enchant/
|
||||
.. _GitHub: https://github.com/vkbo/novelWriter
|
||||
.. _main website: https://novelwriter.io
|
||||
.. _PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter
|
||||
.. _Pre-Release PPA: https://launchpad.net/~vkbo/+archive/ubuntu/novelwriter-pre
|
||||
.. _PyPi: https://pypi.org/project/novelWriter/
|
||||
.. _python.org: https://www.python.org/downloads/
|
||||
.. _Releases: https://github.com/vkbo/novelWriter/releases
|
||||
.. _AppImage: https://appimage.org/
|
||||
|
||||
Package installers for novelWriter are available for all major platforms, including Linux, Windows
|
||||
and MacOS. See below for 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,
|
||||
or start novelWriter from the command line.
|
||||
|
||||
Spell checking in novelWriter is provided by a third party library called Enchant_. Generally, it
|
||||
should pull dictionaries from your operating system automatically. However, on Windows they must be
|
||||
installed manually. See :ref:`a_custom_dict` for more details.
|
||||
|
||||
|
||||
.. _a_started_windows:
|
||||
|
||||
Installing on Windows
|
||||
=====================
|
||||
|
||||
You can install novelWriter with both Python and library dependencies embedded using the Windows
|
||||
Installer (setup.exe) file from the `main website`_, or from the Releases_ page on GitHub_.
|
||||
Installing it should be straightforward.
|
||||
|
||||
If you have any issues, try uninstalling the previous version and making a fresh install. If you
|
||||
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:
|
||||
|
||||
Installing on Linux
|
||||
===================
|
||||
|
||||
A Debian package can be downloaded from the `main website`_, or from the Releases_ page on 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.
|
||||
|
||||
|
||||
Ubuntu
|
||||
------
|
||||
|
||||
You can add the Ubuntu PPA_ and install novelWriter with the following commands.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo add-apt-repository ppa:vkbo/novelwriter
|
||||
sudo apt update
|
||||
sudo apt install novelwriter
|
||||
|
||||
If you want the `Pre-Release PPA`_ instead, add the ``ppa:vkbo/novelwriter-pre`` repository.
|
||||
|
||||
|
||||
Debian and Mint
|
||||
---------------
|
||||
|
||||
Since this is a pure Python package, the Launchpad PPA can in principle also be used on Debian or
|
||||
Mint. However, the above command will fail to add the signing key, as it is Ubuntu-specific.
|
||||
|
||||
Instead, run the following commands to add the repository and key:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/novelwriter-ppa-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys F19F1FCE50043114
|
||||
echo "deb [signed-by=/usr/share/keyrings/novelwriter-ppa-keyring.gpg] http://ppa.launchpad.net/vkbo/novelwriter/ubuntu jammy main" | sudo tee /etc/apt/sources.list.d/novelwriter.list
|
||||
|
||||
Then run the update and install commands as for Ubuntu:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
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:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
sudo mkdir /root/.gnupg/
|
||||
|
||||
|
||||
AppImage Releases
|
||||
-----------------
|
||||
|
||||
For other Linux distros than the ones mentioned above, the primary option is AppImage_. These are
|
||||
completely standalone images for the app that include the necessary environment to run novelWriter.
|
||||
They can of course be run on any Linux distro, if you prefer this to native packages.
|
||||
|
||||
.. note::
|
||||
novelWriter generally don't support Python versions that have reached end of life. If your Linux
|
||||
distro still uses older Python versions and novelWriter won't run, you may want to try the
|
||||
AppImage instead.
|
||||
|
||||
|
||||
.. _a_started_macos:
|
||||
|
||||
Installing on MacOS
|
||||
===================
|
||||
|
||||
You can install novelWriter with both its Python and library dependencies embedded using the DMG
|
||||
application image file from the `main website`_, or from the Releases_ page on GitHub_. Installing
|
||||
it should be straightforward.
|
||||
|
||||
* Download the DMG file and open it. Then drag the novelWriter icon to the :guilabel:`Applications`
|
||||
folder on the right. This will install it into your :guilabel:`Applications`.
|
||||
* The first time you try to launch it, it will say that the bundle cannot be verified, simply press
|
||||
the :guilabel:`Open` button to add an exception.
|
||||
* If you are not presented with an :guilabel:`Open` button in the dialog launch the application
|
||||
again by right clicking on the application in Finder and selecting :guilabel:`Open` from the
|
||||
context menu.
|
||||
|
||||
The context menu can also be accessed by option-clicking if you have a one button mouse. This is
|
||||
done by holding down the option key on your keyboard and clicking on the application in Finder.
|
||||
|
||||
.. 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.
|
||||
|
||||
|
||||
.. _a_started_pip:
|
||||
|
||||
Installing from PyPi
|
||||
====================
|
||||
|
||||
novelWriter is also available on the Python Package Index, or PyPi_. This install method works on
|
||||
all supported operating systems.
|
||||
|
||||
To install from PyPi you must first have the ``python`` and ``pip`` commands available on your
|
||||
system. You can download Python from `python.org`_. It is recommended that you install the latest
|
||||
version. If you are on Windows, also make sure to select the "Add Python to PATH" option during
|
||||
installation.
|
||||
|
||||
To install novelWriter from PyPi, use the following command:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install novelwriter
|
||||
|
||||
To upgrade an existing installation, use:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
pip install --upgrade novelwriter
|
||||
|
||||
When installing via pip, novelWriter can be launched from command line with:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
novelwriter
|
||||
|
||||
Make sure the install location for pip is in your PATH variable. This is not always the case by
|
||||
default, and then you may get a "Not Found" error when running the ``novelwriter`` command.
|
||||
@@ -1,397 +0,0 @@
|
||||
.. _a_ui:
|
||||
|
||||
***************
|
||||
User Interface
|
||||
***************
|
||||
|
||||
The user interface is kept as simple as possible to avoid distractions when writing. This page lists
|
||||
all the main GUI elements, and explains what they do.
|
||||
|
||||
.. _a_ui_tree:
|
||||
|
||||
The Project Tree
|
||||
================
|
||||
|
||||
The main window contains a project tree in the left-most panel. It shows the entire structure of the
|
||||
project. It has four columns:
|
||||
|
||||
:guilabel:`Label`
|
||||
The first column shows the item icon and its label. The labels can be edited from the menu, or by
|
||||
pressing :kbd:`F2` or :kbd:`Ctrl`:kbd:`E`. The label is not the same as the title you set inside
|
||||
the document, but it will appear in the header above the document text itself.
|
||||
|
||||
:guilabel:`Words`
|
||||
The second column shows the word count of the file, or the sum of words in the child items if it
|
||||
is a folder. If the counts seem incorrect, they can be updated by rebuilding the project index
|
||||
from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
|
||||
|
||||
:guilabel:`Inc`
|
||||
The third column indicates whether the file is included in the final project build or not. You
|
||||
may want to filter out files that you no longer want to keep in the final manuscript, but want to
|
||||
keep in the project for reference.
|
||||
|
||||
:guilabel:`Flags`
|
||||
The fourth column shows various meta data flags for the item. The first is an icon indicating the
|
||||
importance or status of the file. These are colour coded status levels that you control and
|
||||
define yourself. They can be changed in :guilabel:`Project Settings` from the :guilabel:`Project`
|
||||
menu. The first character after the icon indicates the class of the item, that is ``N`` for
|
||||
**Novel**, ``C`` for **Character**, etc (see :ref:`a_struct_tags`. The second character indicates
|
||||
the file layout type (see :ref:`a_proj_roots`).
|
||||
|
||||
Below the project tree you will find a small details panel showing the full information of the
|
||||
currently selected item. This panel also includes the latest paragraph and character counts in
|
||||
addition to the word count.
|
||||
|
||||
|
||||
.. _a_ui_edit:
|
||||
|
||||
Editing and Viewing Documents
|
||||
=============================
|
||||
|
||||
To edit a document, double-click the file in the project tree, or press the :kbd:`Return` key while
|
||||
having it selected. This will open the file in the document editor. The editor uses a simplified
|
||||
markdown format. The format is described in the :ref:`a_ui_md` section below. The editor has a
|
||||
maximise button (activates :guilabel:`Focus Mode`) and a close button in the top-right corner.
|
||||
|
||||
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`:kbd:`R`, or select :guilabel:`View Document` in the menu. The
|
||||
document viewed does not have to be the same document currently being edited. However, If you *are*
|
||||
viewing the same document, pressing :kbd:`Ctrl`:kbd:`R` again will update the document with your
|
||||
latest changes. You can also press the little reload button in the top-right corner of the view
|
||||
panel next to the close button to achieve the same thing.
|
||||
|
||||
Both the document editor and viewer will show the label of the document in the header at the top of
|
||||
the edit or view panel. Optionally, the full project path to the file can be shown. This can be set
|
||||
in the :guilabel:`Preferences` dialog from the :guilabel:`Tools` menu. Clicking on the document
|
||||
title bar will select and reveal the file in the project tree, making it easier to find the project
|
||||
location of the file in a large project.
|
||||
|
||||
Any reference to a tag in the editor can be opened in the viewer by moving the cursor to the label
|
||||
and pressing :kbd:`Ctrl`:kbd:`Return`. In the viewer, the references become clickable links.
|
||||
Clicking them will replace the content of the viewer with the content of the document the reference
|
||||
points to.
|
||||
|
||||
At the bottom of the view panel there is a :guilabel:`References` panel. (If it is hidden, click the
|
||||
icon to reveal it.) This panel will show links to all documents referring back to it, if any has
|
||||
been defined. The :guilabel:`Sticky` button will freeze the content of the panel to the current
|
||||
document, even if you navigate to another document. This is convenient if you want to quickly look
|
||||
through all documents in the list in the :guilabel:`References` panel.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`References` panel relies on an up-to-date index of the project. 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`.
|
||||
|
||||
|
||||
.. _a_ui_edit_auto:
|
||||
|
||||
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`.
|
||||
|
||||
.. tip::
|
||||
If you don't like auto-replacement, all symbols inserted by this feature are also available in
|
||||
the :guilabel:`Insert` menu, and via convenient :ref:`a_ui_shortcuts_ins`.
|
||||
|
||||
The editor is able to replace two and three hyphens with short and long dashes, triple points with
|
||||
ellipsis, and replace straight single and double quotes with user-defined quote symbols. It will
|
||||
also try to determine whether to use the opening or closing symbol, but this feature isn't always
|
||||
accurate.
|
||||
|
||||
.. tip::
|
||||
If the editor changes a symbol when you did not want it to change, pressing :kbd:`Ctrl`:kbd:`Z`
|
||||
immediately after the auto-replacement will undo it without undoing the character you typed.
|
||||
|
||||
|
||||
.. _a_ui_md:
|
||||
|
||||
Markdown Format
|
||||
===============
|
||||
|
||||
The document editor uses a simplified markdown format. That is, it supports basic formatting like
|
||||
emphasis (italic), strong importance (bold) and strikethrough text, as well as four levels of
|
||||
headings.
|
||||
|
||||
Some non-standard markdown features have been added. For instance, novelWriter allows for comments,
|
||||
a synopsis tag, and a set of keyword and value sets used for tags and references.
|
||||
|
||||
|
||||
.. _a_ui_md_head:
|
||||
|
||||
Headings
|
||||
--------
|
||||
|
||||
Four levels of headings are allowed. For files of type "Note", they are free to be used as you see
|
||||
fit, but for all other file layouts used for the novel text itself, they indicate the structural
|
||||
level of the novel. See :ref:`a_struct_heads` for more details.
|
||||
|
||||
``# Title``
|
||||
Heading level one. If the file is a novel file, the header level indicates the start of a new
|
||||
partition. This heading level can also be used for the title page novel title.
|
||||
|
||||
``## Title``
|
||||
Heading level two. If the file is a novel file, the header level indicates the start of a new
|
||||
chapter.
|
||||
|
||||
``### Title``
|
||||
Heading level three. If the file is a novel file, the header level indicates the start of a new
|
||||
scene.
|
||||
|
||||
``#### Title``
|
||||
Heading level four. If the file is a novel file, the header level indicates the start of a new
|
||||
section.
|
||||
|
||||
.. note::
|
||||
The space after the ``#`` characters is mandatory. The syntaxhighlighter will change colour and
|
||||
font size when the heading is correctly formatted.
|
||||
|
||||
|
||||
.. _a_ui_md_emph:
|
||||
|
||||
Text Emphasis
|
||||
-------------
|
||||
|
||||
A minimal set of text emphasis styles are supported.
|
||||
|
||||
``_text_``
|
||||
The text is rendered as emphasised text (italicised).
|
||||
|
||||
``**text**``
|
||||
The text is rendered as strongly important text (bold).
|
||||
|
||||
``~~text~~``
|
||||
Strikethrough text.
|
||||
|
||||
In markdown guides it is often recommended to differentiate between strong importance and emphasis
|
||||
by using ``**`` for strong and ``_`` for emphasis, although markdown generally supports also ``__``
|
||||
for strong and ``*`` fdr emphasis. However, since the differentiation makes the highlighting and
|
||||
conversion significantly simpler and faster, in novelWriter this is a rule, not just a
|
||||
recommendation. The following is therefore the only supported formatting syntax:
|
||||
|
||||
There are also some additional rules:
|
||||
|
||||
1. The emphasis and strikethrough formatting tags do not allow spaces between the words and the tag
|
||||
itself. That is, ``**text**`` is valid, ``**text **`` is not.
|
||||
2. More generally, the delimiters must be on the outer edge of words. That is, ``some **text in
|
||||
bold** here`` is valid, ``some** text in bold** here`` is not.
|
||||
3. If using both ``**`` and ``_`` to wrap the same text, the underscore must be the inner wrapper.
|
||||
This is due to the underscore also being a valid word character, so if they are on the outside,
|
||||
they violate rule 2.
|
||||
|
||||
|
||||
.. _a_ui_md_comm:
|
||||
|
||||
Comments and Synopsis
|
||||
---------------------
|
||||
|
||||
In addition to these standard markdown features, novelWriter also allows for comments in the text
|
||||
files. The text of the comment is ignored by the word counter and not exported or, optionally,
|
||||
hidden when viewing the document. If the first word of a comment is ``Synopsis:`` (with the colon),
|
||||
the comment is treated specially, and will show up in the :ref:`a_ui_outline` in a dedicated column.
|
||||
|
||||
``% text...``
|
||||
A comment. The text is not exported by default (this can be overridden), seen in the Viewer, or
|
||||
counted towards word counts.
|
||||
|
||||
``% Synopsis: text...``
|
||||
A synopsis comment. It is generally treated in the same way as regular comments, except that it
|
||||
is captured by the indexing algorithm and displayed in the :ref:`a_ui_outline`. It can also be
|
||||
filtered separately when exporting the project to for instance generate an outline document of
|
||||
the whole project.
|
||||
|
||||
|
||||
.. _a_ui_md_tags:
|
||||
|
||||
Tags and References
|
||||
-------------------
|
||||
|
||||
The document editor supports a minimal set of keywords used for setting tags, and making references
|
||||
between files. The tags and references can be set once per section defined by a heading. Using them
|
||||
multiple times under the same heading will just override the previous setting.
|
||||
|
||||
``@keyword: value``
|
||||
A keyword argument followed by a value, or a comma separated list of values.
|
||||
|
||||
The available tag and reference keywords are listed in the :ref:`a_struct_tags` section.
|
||||
|
||||
|
||||
.. _a_ui_md_add:
|
||||
|
||||
Additional Markdown and Non-Standard Features
|
||||
---------------------------------------------
|
||||
|
||||
The editor and viewer also supports markdown standard hard line breaks, and preserves non-breaking
|
||||
spaces if running with Qt 5.9 or higher. For older versions, the non-breaking spaces are lost when
|
||||
the file is saved. This is unfortunately hard-coded in the Qt text editor.
|
||||
|
||||
* A hard line break is achieved by leaving two or more spaces at the end of the line. Alternatively,
|
||||
the user can press :kbd:`Ctrl`:kbd:`K`, :kbd:`Return` to insert this.
|
||||
* A non-breaking space is inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Space`.
|
||||
* Thin spaces are also supported, and can be inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Shift`:kbd:`Space`.
|
||||
* Non-breaking thin space can be inserted with :kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`Space`.
|
||||
|
||||
These are all insert features, and the :guilabel:`Insert` menu has more. They are also listed
|
||||
in :ref:`a_ui_shortcuts_ins`.
|
||||
|
||||
Both hard line breaks and non-breaking spaces are highlighted by the syntax highlighter as an
|
||||
alternate coloured background, depending on the selected theme.
|
||||
|
||||
|
||||
.. _a_ui_outline:
|
||||
|
||||
Project Outline View
|
||||
====================
|
||||
|
||||
The project's Outline view is available as the second tab on the right hand side of the main window
|
||||
labelled :guilabel:`Outline`. 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, not the files.
|
||||
|
||||
The document file containing the heading can also be displayed as a separate column, as well as the
|
||||
line number where it occurs. Double-clicking an entry will open the corresponding file in the
|
||||
editor.
|
||||
|
||||
.. note::
|
||||
Since the internal structure of the novel does not depend on the file structure of the project
|
||||
tree, these will not necessarily look the same, depending how you chose to organise your files.
|
||||
See the :ref:`a_struct` page for more details.
|
||||
|
||||
Various meta data and information extracted from tags can be displayed in columns in the outline.
|
||||
A default set of such columns is visible, but you can turn on or off more columns by right clicking
|
||||
the header and selecting the columns you want to show. The order of the columns can also be
|
||||
rearranged by dragging them to a different position.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Title` column cannot be disabled or moved.
|
||||
|
||||
The information viewed in the outline is based on the project's main index. While novelWriter does
|
||||
its best to keep the index up to date when content changes, you can always rebuild it manually by
|
||||
pressing :kbd:`F9` if something isn't right.
|
||||
|
||||
The outline view itself can be regenerated by pressing :kbd:`F10`. You can also enable automatic
|
||||
updating in the :guilabel:`Tools` menu, which will trigger an update whenever the index is updated
|
||||
and the :guilabel:`Outline` tab is active. You may want to disable this feature if your project is
|
||||
very large,
|
||||
|
||||
|
||||
.. _a_ui_outline_synopsis:
|
||||
|
||||
Synopsis Column
|
||||
---------------
|
||||
|
||||
The :guilabel:`Synopsis` column of the outline view takes its information from a specially formatted
|
||||
comment. See :ref:`a_ui_md_comm`. In order to flag a comment as a synopsis, add the word
|
||||
``Synopsis:`` as the first word of the comment. The ``:`` is required, and 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.
|
||||
|
||||
.. note::
|
||||
Only one comment can be flagged as a synopsis comment for each heading. If multiple comments are
|
||||
flagged as a synopsis comment, the last one will be used.
|
||||
|
||||
|
||||
.. _a_ui_shortcuts:
|
||||
|
||||
Keyboard Shortcuts
|
||||
==================
|
||||
|
||||
Most features are available as keyboard shortcuts. These are as follows:
|
||||
|
||||
.. csv-table:: Keyboard Shortcuts
|
||||
:header: "Shortcut", "Description"
|
||||
:widths: 30, 70
|
||||
:class: "tight-table"
|
||||
|
||||
":kbd:`Alt`:kbd:`1`", "Switch focus to the project tree."
|
||||
":kbd:`Alt`:kbd:`2`", "Switch focus to document editor."
|
||||
":kbd:`Alt`:kbd:`3`", "Switch focus to document viewer."
|
||||
":kbd:`Ctrl`:kbd:`.`", "Open menu to correct word under cursor."
|
||||
":kbd:`Ctrl`:kbd:`,`", "Open the :guilabel:`Preferences` dialog."
|
||||
":kbd:`Ctrl`:kbd:`/`", "Change block format to comment."
|
||||
":kbd:`Ctrl`:kbd:`-`", "Strikethrough selected text, or word under cursor."
|
||||
":kbd:`Ctrl`:kbd:`0`", "Remove block formatting for block under cursor."
|
||||
":kbd:`Ctrl`:kbd:`1`", "Change block format to header level 1."
|
||||
":kbd:`Ctrl`:kbd:`2`", "Change block format to header level 2."
|
||||
":kbd:`Ctrl`:kbd:`3`", "Change block format to header level 3."
|
||||
":kbd:`Ctrl`:kbd:`4`", "Change block format to header level 4."
|
||||
":kbd:`Ctrl`:kbd:`A`", "Select all text in the document."
|
||||
":kbd:`Ctrl`:kbd:`B`", "Format selected text, or word under cursor, with strong emphasis (bold)."
|
||||
":kbd:`Ctrl`:kbd:`C`", "Copy selected text to clipboard."
|
||||
":kbd:`Ctrl`:kbd:`D`", "Wrap selected text, or word under cursor, in double quotes."
|
||||
":kbd:`Ctrl`:kbd:`E`", "If in the project tree, edit a document or folder settings. (Same as :kbd:`F2`)"
|
||||
":kbd:`Ctrl`:kbd:`F`", "Open the search bar and search for the selected word, if any is selected."
|
||||
":kbd:`Ctrl`:kbd:`G`", "Find next occurrence of search word in current document. (Same as :kbd:`F3`)"
|
||||
":kbd:`Ctrl`:kbd:`H`", "Open the search and replace bar and search for the selected word, if any is selected. (On Mac, this is :kbd:`Cmd`:kbd:`=`)"
|
||||
":kbd:`Ctrl`:kbd:`I`", "Format selected text, or word under cursor, with emphasis (italic)."
|
||||
":kbd:`Ctrl`:kbd:`N`", "Create new document."
|
||||
":kbd:`Ctrl`:kbd:`O`", "Open selected document."
|
||||
":kbd:`Ctrl`:kbd:`Q`", "Exit novelWriter."
|
||||
":kbd:`Ctrl`:kbd:`R`", "If in the project tree, open a document for viewing. If the editor has focus, open current document for viewing."
|
||||
":kbd:`Ctrl`:kbd:`S`", "Save the current document in the document editor."
|
||||
":kbd:`Ctrl`:kbd:`V`", "Paste text from clipboard to cursor position."
|
||||
":kbd:`Ctrl`:kbd:`W`", "Close the current document in the document editor."
|
||||
":kbd:`Ctrl`:kbd:`X`", "Cut selected text to clipboard."
|
||||
":kbd:`Ctrl`:kbd:`Y`", "Redo latest undo."
|
||||
":kbd:`Ctrl`:kbd:`Z`", "Undo latest changes."
|
||||
":kbd:`Ctrl`:kbd:`F7`", "Toggle spell checking."
|
||||
":kbd:`Ctrl`:kbd:`F10`", "Toggle automatic updating of project outline."
|
||||
":kbd:`Ctrl`:kbd:`Del`", "If in the project tree, move a document to trash, or delete a folder."
|
||||
":kbd:`Ctrl`:kbd:`Enter`", "Open the tag or reference under the cursor in the Viewer."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`,`", "Open the :guilabel:`Project Settings` dialog."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`/`", "Remove block formatting for block under cursor."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`1`", "Replace occurrence of search word in current document, and search for next occurrence."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`A`", "Select all text in current paragraph."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`D`", "Wrap selected text, or word under cursor, in single quotes."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`G`", "Find previous occurrence of search word in current document. (Same as :kbd:`Shift`:kbd:`F3`)"
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`I`", "Import text to the current document from a text file."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`N`", "Create new folder."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`O`", "Open a project."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`R`", "Close the document viewer."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`S`", "Save the current project."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`W`", "Close the current project."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`Up`", "Move item one step up in the project tree."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`Down`", "Move item one step down in the project tree."
|
||||
":kbd:`F1`", "Open the documentation. This will either open the Qt Assistant, if available, or send you to the documentation website."
|
||||
":kbd:`F2`", "If in the project tree, edit a document or folder settings. (Same as :kbd:`Ctrl`:kbd:`E`)"
|
||||
":kbd:`F3`", "Find next occurrence of search word in current document. (Same as :kbd:`Ctrl`:kbd:`G`)"
|
||||
":kbd:`F5`", "Open the :guilabel:`Build Novel Project` dialog."
|
||||
":kbd:`F6`", "Open the :guilabel:`Writing Statistics` dialog."
|
||||
":kbd:`F7`", "Re-run spell checker."
|
||||
":kbd:`F8`", "Activate :guilabel:`Focus Mode`, hiding the project tree and document viewer."
|
||||
":kbd:`F9`", "Re-build the project index."
|
||||
":kbd:`F10`", "Re-build the project outline."
|
||||
":kbd:`F11`", "Activate full screen mode."
|
||||
":kbd:`Shift`:kbd:`F1`", "Open the online documentation in the system default browser."
|
||||
":kbd:`Shift`:kbd:`F3`", "Find previous occurrence of search word in current document. (Same as :kbd:`Ctrl`:kbd:`Shift`:kbd:`G`)"
|
||||
":kbd:`Return`", "If in the project tree, open a document for editing."
|
||||
|
||||
.. note::
|
||||
On macOS, replace :kbd:`Ctrl` with :kbd:`Cmd`.
|
||||
|
||||
|
||||
.. _a_ui_shortcuts_ins:
|
||||
|
||||
Insert Shortcuts
|
||||
----------------
|
||||
|
||||
A set of insert features are also available through shortcuts, but they require a double combination
|
||||
of key sequences. The insert feature is activated with :kbd:`Ctrl-K`, followed by a key or
|
||||
combination for the inserted character or punctuation.
|
||||
|
||||
.. csv-table:: Keyboard Shortcuts
|
||||
:header: "Shortcut", "Description"
|
||||
:widths: 40, 60
|
||||
:class: "tight-table"
|
||||
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`-`", "Insert a short dash (en dash)."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`_`", "Insert a long dash (em dash)."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`.`", "Insert ellipsis."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`1`", "Insert left single quote."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`2`", "Insert right single quote."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`3`", "Insert left double quote."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`4`", "Insert right double quote."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Return`", "Insert a hard line break."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Space`", "Insert a non-breaking space."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Shift`:kbd:`Space`", "Insert a thin space."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`Space`", "Insert a thin non-breaking space."
|
||||
@@ -1,122 +0,0 @@
|
||||
.. _a_intro:
|
||||
|
||||
************
|
||||
Introduction
|
||||
************
|
||||
|
||||
novelWriter is a simple, multi-document plain text editor using a modified markdown syntax to apply
|
||||
simple formatting. It is designed for writing novels, and allows for the component documents to be
|
||||
ordered freely to create the desired structure of the novel. More details about how projects are
|
||||
structured is covered on the :ref:`a_struct` page.
|
||||
|
||||
In addition, the project can contain notes on the various plot elements, characters, locations, etc,
|
||||
that make up the story. These notes are organised in a set of category-specific top-level folders,
|
||||
and each entry can be tagged and cross-referenced from within the novel files and other notes. These
|
||||
tags make it possible to inter-link documents, and generate an overview of the entire novel project
|
||||
and how the various files and plot elements are interconnected. This is covered on the :ref:`a_proj`
|
||||
and :ref:`a_notes` pages.
|
||||
|
||||
These additional features are not standard in markdown, but are available through special meta
|
||||
keywords. Syntax highlighting is provided to make it easier to verify that the markdown tags are
|
||||
used correctly. The syntax is covered on the :ref:`a_ui` page.
|
||||
|
||||
|
||||
.. _a_intro_design:
|
||||
|
||||
Design Philosophy
|
||||
=================
|
||||
|
||||
The user interface of novelWriter is intended to be as minimalistic as practically possible, while
|
||||
at the same time provide a complete set of features needed for writing a novel.
|
||||
|
||||
.. note::
|
||||
novelWriter is not intended to be a full office type word processor. It doesn't support images,
|
||||
links, tables, and other complex structure and objects often needed for such document. Formatting
|
||||
is limited to headers, and bold, italicised and strikethrough text.
|
||||
|
||||
The main window does not have a toolbar like most other applications do. This reduces clutter, and
|
||||
since the documents are formatted with markdown tags, is more or less redundant. However, all
|
||||
formatting features supported are available through convenient keyboard shortcuts. They are also
|
||||
available in the main menu. A full list of shortcuts can be found in the :ref:`a_ui_shortcuts`
|
||||
section.
|
||||
|
||||
In addition, novelWriter offers a :guilabel:`Focus Mode` where all the user interface elements other
|
||||
than the document editor itself are hidden away.
|
||||
|
||||
The colour scheme of the user interface defaults to that of the host operating system. In addition,
|
||||
a dark theme is provided, and can be enabled in :guilabel:`Preferences` from the :guilabel:`Tools`
|
||||
menu. A number of syntax highlighting themes are also available in :guilabel:`Preferences`. A set of
|
||||
icon themes in colour and greyscale are also offered. The icons are based on the Typicon_ icon set
|
||||
designed by Stephen Hutchings.
|
||||
|
||||
The main window is split in two, or optionally three, panels. The left-most contains the project
|
||||
tree and all the files in your project. The second panel is the document editor, and the optional
|
||||
third panel is a document viewer which can view any document in your project.
|
||||
|
||||
A second tab is also available on the main window. This is the :guilabel:`Outline` tab where the
|
||||
entire novel structure can be displayed, with all the tags and references listed. Depending on how
|
||||
you structure your novel project files, this outline can be quite different than your project tree.
|
||||
Your project tree lists files, your Outline tree lists the structure of the novel itself.
|
||||
|
||||
.. _Typicon: https://github.com/stephenhutchings/typicons.font
|
||||
|
||||
|
||||
.. _a_intro_project:
|
||||
|
||||
Project Layout
|
||||
==============
|
||||
|
||||
You are free to structure your project files as you wish in subfolders, and split the text between
|
||||
files in whatever way suits you. All that matters to novelWriter is the linear order the files
|
||||
appear at in the project tree (top to bottom). The chapters, scenes and sections of the novel are
|
||||
determined by the headings within those files.
|
||||
|
||||
The four heading levels (**H1** to **H4**) are treated as follows:
|
||||
|
||||
* **H1** is used for the book 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.
|
||||
|
||||
This header level structure is only taken into account for novel files. For the files designated as
|
||||
project notes, the header levels imply no structural meaning, and the user is free to do whatever
|
||||
they want. See the :ref:`a_struct` page for more details.
|
||||
|
||||
|
||||
.. _a_intro_export:
|
||||
|
||||
Project Export
|
||||
==============
|
||||
|
||||
The project can at any time be exported to a range of different formats. Natively, novelWriter
|
||||
supports export to plain text file, HTML document, novelWriter flavoured markdown, standard
|
||||
markdown (requires Qt 5.14), and to a basic Open Document.
|
||||
|
||||
In addition, printing and printing to PDF is also possible. The best supported export format is
|
||||
HTML, which can be imported or converted by a number of other tools like Pandoc, or simply imported
|
||||
into Libre Office Writer and similar word processors.
|
||||
|
||||
It is also possible to export the content of the project to a JSON file. This is useful if you want
|
||||
to write your own processing script in for instance Python as the entire novel can be read into a
|
||||
Python dictionary with a couple of lines of code.
|
||||
|
||||
A number of filter options can be applied to the produced document, allowing you to export a draft
|
||||
manuscript, a reference document of notes, an outline based on chapter and scene titles with a
|
||||
synopsis each, and so on. See the :ref:`a_export` page for more details on export features and
|
||||
formats.
|
||||
|
||||
|
||||
.. _a_intro_screenshots:
|
||||
|
||||
Screenshot
|
||||
==========
|
||||
|
||||
**novelWriter with default system theme:**
|
||||
|
||||
.. image:: images/screenshot_default.png
|
||||
:width: 800
|
||||
|
||||
**novelWriter with dark theme:**
|
||||
|
||||
.. image:: images/screenshot_dark.png
|
||||
:width: 800
|
||||
@@ -1,44 +0,0 @@
|
||||
.. _a_notes:
|
||||
|
||||
************************
|
||||
Supporting Files (Notes)
|
||||
************************
|
||||
|
||||
novelWriter doesn't have a database and compicated forms to fill in all details about plot elements,
|
||||
characters, and all sorts of additional information that isn't a part of the novel text itself.
|
||||
Instead, all such information is saved in notes. The relation between all these additional elements
|
||||
is extracted from these files by the project indexer based on the tags and references you set.
|
||||
|
||||
These files are not required, but making at least minimal files for each such plot element, and add
|
||||
a tag to them, makes it possible to use the :guilabel:`Outline` feature to see how each element
|
||||
intersects with each section of the novel itself, and add clickable cross-references between
|
||||
documents in the editor and viewer.
|
||||
|
||||
|
||||
.. _a_notes_tags:
|
||||
|
||||
Tags in Notes
|
||||
=============
|
||||
|
||||
Each new heading in a note file can have a tag associated with it. The format of a tag is
|
||||
``@tag: tagname``, where tagname is a unique identifier. Tags can then be referenced in the novel
|
||||
files, or cross-referenced in other note files, and will show up in the outline view and in the
|
||||
back-reference panel when a document is being viewed.
|
||||
|
||||
The syntax highlighter will alert the user that the keyword is correctly used and that the tag is
|
||||
allowed, that is, the tag is unique. Duplicate tags should be detected as long as the index is up
|
||||
to date. An invalid tag should have a green wiggly line under it, and will not receive the syntax
|
||||
colour that valid tags do.
|
||||
|
||||
The tag is the only part of these files that the application uses. The rest of the file content is
|
||||
there for the writer to use in whatever way they wish. Of course, the content of the files can be
|
||||
exported if you want to compile a single document of all your notes, or include them in an outline.
|
||||
|
||||
A note file can also reference other note files in the same way novel files do. When the note file
|
||||
is opened in the view panel, these become clickable links, making it easier to follow connections in
|
||||
the plot. Note files don't show up in the outline view though, so referencing between notes is only
|
||||
meaningful if you want to be able to click-navigate between them.
|
||||
|
||||
.. tip::
|
||||
If you cross-reference between notes as well, and export your project as an HTML file using the
|
||||
export tool, the cross-references become clickable in the exported document.
|
||||
185
docs/source/project_manuscript.rst
Normal file
@@ -0,0 +1,185 @@
|
||||
.. _a_manuscript:
|
||||
|
||||
***********************
|
||||
Building the Manuscript
|
||||
***********************
|
||||
|
||||
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`.
|
||||
|
||||
.. 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 has much the same
|
||||
functionality.
|
||||
|
||||
|
||||
.. _a_manuscript_main:
|
||||
|
||||
The Manuscript Build Tool
|
||||
=========================
|
||||
|
||||
.. figure:: images/fig_manuscript_build.png
|
||||
|
||||
The :guilabel:`Manuscript Build` tool main window.
|
||||
|
||||
The main window of the :guilabel:`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.
|
||||
|
||||
|
||||
.. _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.
|
||||
|
||||
.. 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.
|
||||
|
||||
|
||||
Document Selection
|
||||
------------------
|
||||
|
||||
.. figure:: images/fig_build_settings_selections.png
|
||||
|
||||
The :guilabel:`Selections` page of the :guilabel:`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.
|
||||
|
||||
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
|
||||
used to reset the override and return control to the filter settings.
|
||||
|
||||
In the figure, the green arrow icon and the blue pin icon indicates which documents are included,
|
||||
and the red forbidden icon indicates that a document is explicitly excluded.
|
||||
|
||||
|
||||
Formatting Headings
|
||||
-------------------
|
||||
|
||||
.. figure:: images/fig_build_settings_headings.png
|
||||
|
||||
The :guilabel:`Headings` page of the :guilabel:`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 like shown int he 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
|
||||
generated by the build tool. The :guilabel:`Insert` button is a dropdown list of these formats, and
|
||||
selecting one will insert it at the position of the cursor.
|
||||
|
||||
Any text you add that isn't highlighted in colours will remain in your formatted titles.
|
||||
``{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.
|
||||
|
||||
Scene Separators
|
||||
^^^^^^^^^^^^^^^^
|
||||
|
||||
If you don't want any titles for your scenes (or for your sections if you have them), you can leave
|
||||
the formatting boxes empty. If so, an empty paragraph will be inserted between the scenes or
|
||||
sections instead, resulting in a gap in the text. You can also switch on the :guilabel:`Hide`
|
||||
setting, which will ignore them completely. That is, there won't even be an extra gap inserted.
|
||||
|
||||
Alternatively, if you want a separator text between them, like the common ``* * *``, you can enter
|
||||
the desired separator text as the format. If the format is any piece of static text, it will always
|
||||
be treated as a separator.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
|
||||
.. _a_manuscript_build:
|
||||
|
||||
Building Manuscript Documents
|
||||
=============================
|
||||
|
||||
.. figure:: images/fig_build_build.png
|
||||
|
||||
The :guilabel:`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.
|
||||
|
||||
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
|
||||
an output path, and set a base file name as well. The file extension will be added automatically.
|
||||
|
||||
To generate the manuscript document, press the :guilabel:`Build` button. A small progress bar will
|
||||
show the build progress, but for small projects it may pass very fast.
|
||||
|
||||
|
||||
File Formats
|
||||
------------
|
||||
|
||||
Currently, four document formats are supported.
|
||||
|
||||
Open Document Format
|
||||
The Build tool can produce either an ``.odt`` file, or an ``.fodt`` file. The latter is just a
|
||||
flat version of the document format as a single XML file. Most rich text editors support the
|
||||
former, and only a few the latter.
|
||||
|
||||
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
|
||||
word processors, or for printing from browser.
|
||||
|
||||
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 strikethrough text, which is not supported by
|
||||
the Standard flavour.
|
||||
|
||||
|
||||
Additional Formats
|
||||
------------------
|
||||
|
||||
In addition to the above document formats, the novelWriter HTML and Markup formats can also be
|
||||
wrapped in a JSON file. These files will have a meta data entry and a body entry. For HTML, also
|
||||
the accompanying CSS styles used by the preview are included.
|
||||
|
||||
The text body is saved in a two-level list. The outer list contains one entry per document, in the
|
||||
order they appear in the project tree. Each document is then split up into a list as well, with one
|
||||
entry per paragraph it contains.
|
||||
|
||||
These files are mainly intended for scripted post-processing for those who want that option. A JSON
|
||||
file can be imported directly into a Python dict object or a PHP array, to mentions a few options.
|
||||
|
||||
|
||||
.. _a_manuscript_print:
|
||||
|
||||
Print and PDF
|
||||
=============
|
||||
|
||||
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.
|
||||
342
docs/source/project_overview.rst
Normal file
@@ -0,0 +1,342 @@
|
||||
.. _a_proj:
|
||||
|
||||
**************
|
||||
Novel Projects
|
||||
**************
|
||||
|
||||
New projects can be created from the :guilabel:`Project` menu by selecting :guilabel:`New Project`.
|
||||
This will open the :guilabel:`New Project Wizard` that will assist you in creating a barebone
|
||||
project suited to your needs.
|
||||
|
||||
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:`Open Project`
|
||||
dialog. A project can be removed from this list by selecting it and pressing the :kbd:`Del` key or
|
||||
by clicking the :guilabel:`Remove` button.
|
||||
|
||||
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,
|
||||
including word counts, and a table of contents with word and page counts, is available through the
|
||||
:guilabel:`Project Details` dialog.
|
||||
|
||||
|
||||
.. _a_proj_roots:
|
||||
|
||||
Project Roots
|
||||
=============
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
application on what you put in them. You can use them however you want.
|
||||
|
||||
The root folder system is closesly connected to how the Tags and References system works. For more
|
||||
details, see the :ref:`a_references` chapter.
|
||||
|
||||
:guilabel:`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`
|
||||
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.
|
||||
|
||||
:guilabel:`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. 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`
|
||||
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`
|
||||
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.
|
||||
|
||||
:guilabel:`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`
|
||||
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`.
|
||||
|
||||
.. 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.
|
||||
|
||||
A document or a folder can be deleted from the :guilabel:`Project` menu, or by pressing
|
||||
:kbd:`Ctrl+Shift+Del`. Root folders can only be deleted when they are empty.
|
||||
|
||||
|
||||
.. _a_proj_roots_out:
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
.. _a_proj_roots_orphaned:
|
||||
|
||||
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 folder that
|
||||
aren't tracked in the core project file. These files, when discovered, are recovered and added back
|
||||
into the project.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
be named after its internal key, which is a string of characters and numbers.
|
||||
|
||||
|
||||
.. _a_proj_roots_lock:
|
||||
|
||||
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 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.
|
||||
|
||||
.. 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.
|
||||
|
||||
.. 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
|
||||
lose any actual text unless both instances have the same document open in the editor, and
|
||||
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.
|
||||
|
||||
You can always rename an item by selecting :guilabel:`Rename Item` from the :guilabel:`Project`
|
||||
menu, or by pressing :kbd:`F2`.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
.. _a_proj_files_counts:
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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`.
|
||||
|
||||
|
||||
.. _a_proj_settings:
|
||||
|
||||
Project Settings
|
||||
================
|
||||
|
||||
The :guilabel:`Project Settings` can be accessed from the :guilabel:`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 :guilabel:`Project Name` can be set to a different value than the :guilabel:`Novel Title`. The
|
||||
difference between them is simply that the :guilabel:`Project Name` is used for the GUI (main
|
||||
window title) and for generating backup files. The intention is that the :guilabel:`Project Name`
|
||||
should remain unchanged throughout the project's lifetime, otherwise the name of exported files and
|
||||
backup files may change too.
|
||||
|
||||
The :guilabel:`Novel Title` and :guilabel:`Authors` settings are used when building the manuscript,
|
||||
for some formats.
|
||||
|
||||
If your project is in a different language than your main spell checking language is set to, you
|
||||
can override the default setting here. You can also override the automatic backup setting. The
|
||||
project language can also be changed from the :guilabel:`Tools` menu.
|
||||
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
use these to indicate at what stage of completion each novel document is, or how important the
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Auto-Replace Tab
|
||||
----------------
|
||||
|
||||
A set of automatically replaced keywords can be added in this tab. The keywords in the left column
|
||||
will be replaced by the text in the right column when documents are opened in the viewer. They will
|
||||
also be applied to manuscript builds.
|
||||
|
||||
The auto-replace feature will replace text in angle brackets that is in this list. The syntax
|
||||
highlighter will add an alternate colour to text matching the syntax, but it doesn't check if the
|
||||
text is in this list.
|
||||
|
||||
.. note::
|
||||
A keyword cannot contain spaces. The angle brackets are added by default, and when used in the
|
||||
text are a part of the keyword to be replaced. This is to ensure that parts of the text aren't
|
||||
unintentionally replaced by the content of the list.
|
||||
|
||||
|
||||
.. _a_proj_backup:
|
||||
|
||||
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`.
|
||||
|
||||
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`.
|
||||
|
||||
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`.
|
||||
|
||||
.. 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.
|
||||
|
||||
|
||||
.. _a_proj_stats:
|
||||
|
||||
Writing Statistics
|
||||
==================
|
||||
|
||||
When you work on a project, a log file records when you opened it, when you closed it, and the
|
||||
total word counts of your novel documents and notes at the end of the session, provided that the
|
||||
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.
|
||||
|
||||
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`.
|
||||
178
docs/source/project_references.rst
Normal file
@@ -0,0 +1,178 @@
|
||||
.. _a_references:
|
||||
|
||||
*******************
|
||||
Tags and References
|
||||
*******************
|
||||
|
||||
In novelWriter there are no forms or tables to fill in to define the characters, locations and
|
||||
other elements of your story. Instead, you can mark your :term:`project notes` as representing
|
||||
these story elements by creating a :term:`tag`. Whenever you want to link a piece of your story to
|
||||
a note defining a story element, like a character, you create a :term:`reference` back to that tag.
|
||||
You can also cross-link your project notes in the same way.
|
||||
|
||||
This is perhaps one of the features that makes novelWriter different from other, similar
|
||||
applications. It is therefore not always obvious to new users how this is supposed to work, so
|
||||
this chapter hopes to explains in more detail how to use the 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 novelWriter and select to "Fill the project with example files"
|
||||
in the :guilabel:`New Project Wizard`. The example project contains several examples of tags and
|
||||
references.
|
||||
|
||||
|
||||
.. _a_references_metadata:
|
||||
|
||||
Metadata in novelWriter
|
||||
=======================
|
||||
|
||||
The structure of your novelWriter project is inferred from the :term:`headings` within the
|
||||
documents, not the documents themselves. See :ref:`a_struct_heads` for more details. Therefore,
|
||||
metadata is also associated with headings, and not documents.
|
||||
|
||||
If you split your project into separate documents for each scene, this distinction may not matter.
|
||||
However, there are several benefits to using documents at a larger structural scale when starting
|
||||
your project. For instance, it may make more sense to define all your scenes, and even chapters, in
|
||||
a single document at first, or perhaps a document per act. You can later split these documents up
|
||||
using the document split feature. See :ref:`a_ui_tree_split_merge` for more details.
|
||||
|
||||
The implication here is that you can treat each heading as an independent element of your notes
|
||||
that can be referenced somewhere else. In order to make it possible to reference a header section,
|
||||
you need to assign it a tag.
|
||||
|
||||
|
||||
.. _a_references_tags:
|
||||
|
||||
How to Use Tags
|
||||
===============
|
||||
|
||||
A "tag" in novelWriter is a word or phrase that you define as belonging to a heading. Tags are set
|
||||
by using the ``@tags`` :term:`keyword`. The full format of a tag is ``@tag: tagname``, where
|
||||
``tagname`` is an identifier of your choosing. You can only set *one* tag per heading, and the tag
|
||||
has to be unique across all documents in the project.
|
||||
|
||||
.. note::
|
||||
In version 2.2, tags will be made case insensitive, but as of novelWriter 2.1 they are not. You
|
||||
should however avoid using tags that are only distinguished by case.
|
||||
|
||||
After the tags have been defined, they can then be referenced in the novel documents, or
|
||||
cross-referenced in other notes. they will also show up in the :guilabel:`Outline View` and in the
|
||||
back-reference panel when a document is opened in the viewer.
|
||||
|
||||
The syntax highlighter will indicate to you that the keyword is correctly used and that the tag is
|
||||
allowed, that is, the tag is unique. Duplicate tags should be detected as long as the index is up
|
||||
to date. An invalid tag should have a green wiggly line under it, and will not receive the syntax
|
||||
colour that valid tags do.
|
||||
|
||||
The tag is the only part of these notes that the novelWriter uses. The rest of the document content
|
||||
is there for the writer to use in whatever way they 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.
|
||||
|
||||
Example of a heading with a tag for a character of the story:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
# Jane Doe
|
||||
|
||||
@tag: Jane
|
||||
|
||||
Some information about the character Jane Doe.
|
||||
|
||||
When this is done in a document in a :term:`Root Folder` of type "Characters", the tag is
|
||||
automatically treated as an available character in your project, and you will be able to reference
|
||||
it in any of your other documents using the reference keywords for characters.
|
||||
|
||||
It is the root folder type that defines what category of story elements the tag is indexed under.
|
||||
See the :ref:`a_proj_roots` section for an overview of availabe root folder types. They are also
|
||||
covered in the next section.
|
||||
|
||||
|
||||
.. _a_references_references:
|
||||
|
||||
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 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
|
||||
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.
|
||||
|
||||
``@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.
|
||||
|
||||
``@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.
|
||||
|
||||
``@plot``
|
||||
The plot or subplot advanced in the current section. The target must be a note tag in a
|
||||
:guilabel:`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.
|
||||
|
||||
``@location``
|
||||
The location the current section takes place in. The target must be a note tag in a
|
||||
:guilabel:`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.
|
||||
|
||||
``@entity``
|
||||
Entities present in the current section. The target must be a note tag in a
|
||||
:guilabel:`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.
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
Example of a novel document with references to characters and plots:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
## Chapter 1
|
||||
|
||||
@pov: Jane
|
||||
|
||||
### Scene 1
|
||||
|
||||
@char: John, Sam
|
||||
@plot: Main
|
||||
|
||||
Once upon a time ...
|
||||
113
docs/source/project_structure.rst
Normal file
@@ -0,0 +1,113 @@
|
||||
.. _a_struct:
|
||||
|
||||
***************
|
||||
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`. 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.
|
||||
|
||||
The :guilabel:`Project Tree` can distinguish between the different header levels of the novel
|
||||
documents using coloured icons, and optionally add emphasis on the label, set in
|
||||
:guilabel:`Preferences`.
|
||||
|
||||
|
||||
.. _a_struct_heads:
|
||||
|
||||
Importance of Headings
|
||||
======================
|
||||
|
||||
Subfolders under root folders have no impact on the structure of the novel itself. The structure is
|
||||
instead dictated by the heading level of the headings within the documents.
|
||||
|
||||
Four levels of headings are supported, signified by the number of hashes (``#``) preceding the
|
||||
title. See also the :ref:`a_fmt` section for more details about the markup syntax.
|
||||
|
||||
.. note::
|
||||
The header 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 header types, and the two special header types, is listed in section
|
||||
:ref:`a_fmt_head`. The meaning of the four levels for the structure of your novel is as follows:
|
||||
|
||||
**Header Level 1: Partition**
|
||||
This header level signifies that the text refers to a top level partition. 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 header level ``#!`` covered in :ref:`a_fmt_head`.
|
||||
|
||||
**Header Level 2: Chapter**
|
||||
This header 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.
|
||||
|
||||
**Header Level 3: Scene**
|
||||
This header 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.
|
||||
|
||||
**Header Level 4: Section**
|
||||
This header level signifies a sub-scene level partition, 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.
|
||||
|
||||
Page breaks are automatically added before level 1 and 2 headers when you build your project to a
|
||||
format that supports page breaks, or when you print the document directly from the
|
||||
:guilabel:`Manuscript Build` tool. 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 titles 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. See the :ref:`a_manuscript` page for more details.
|
||||
|
||||
|
||||
.. _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 header 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:
|
||||
|
||||
``#! My Novel``
|
||||
|
||||
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.
|
||||
|
||||
If you want an additional page of text after the title page, starting on a fresh page, you can add
|
||||
``[NEW PAGE]`` on a line by itself, and continue the text after it. This will insert a page break
|
||||
before the text. See also :ref:`a_fmt_break`.
|
||||
|
||||
|
||||
.. _a_struct_heads_unnum:
|
||||
|
||||
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 cam add an ``!`` to the level 2 header formatting code to tell the
|
||||
build tool to skip these chapters.
|
||||
|
||||
``##! Unnumbered Chapter Title``
|
||||
|
||||
There is a separate formatting feature for such chapters 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.
|
||||
|
||||
.. 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.
|
||||
@@ -1,296 +0,0 @@
|
||||
.. _a_proj:
|
||||
|
||||
**************
|
||||
Novel Projects
|
||||
**************
|
||||
|
||||
A novelWriter project requires a dedicated folder for storing its files on the local file system.
|
||||
See the :ref:`a_tech` page for further details on how files are organised.
|
||||
|
||||
A new project can be created from the :guilabel:`Project` menu by selecting :guilabel:`New Project`.
|
||||
A list of recently opened projects is maintained, and displayed in the :guilabel:`Open Project`
|
||||
dialog. A project can be removed from this list by selecting it and pressing the :kbd:`Del` key.
|
||||
|
||||
The 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.
|
||||
|
||||
|
||||
.. _a_proj_roots:
|
||||
|
||||
Project Roots
|
||||
=============
|
||||
|
||||
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 core novel files go into a root folder of type :guilabel:`Novel`. Other supporting files go into
|
||||
the other root folders. These other root folder types are intended for your notes on the various
|
||||
elements of your story. Using these is of course entirely optional.
|
||||
|
||||
A new project will not have all of the root folders present, but you can add the ones you want from
|
||||
:guilabel:`Create Root Folder` in the :guilabel:`Project` menu.
|
||||
|
||||
The root folders are intended for the following use, but aside from the :guilabel:`Novel` folder, no
|
||||
restrictions are enforced by the application. You can use them however you want.
|
||||
|
||||
:guilabel:`Novel`
|
||||
This is the root folder of all text that goes into the final novel. This class of files have
|
||||
other rules and features than other files in the project. See the :ref:`a_struct` page for more
|
||||
details.
|
||||
|
||||
:guilabel:`Plot`
|
||||
This is the root folder where main plots can be outlined. It is optional, but adding at least
|
||||
dummy files 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`
|
||||
Character files go in this root folder. These are especially important if one wants to use the
|
||||
Outline view to see which character appears where, and which part of the story is told from a
|
||||
specific character's point-of-view. Tags in this folder can be references using the ``@pov``
|
||||
keyword for point-of-view characters, or the ``@char`` keyword for other characters.
|
||||
|
||||
:guilabel:`Locations`
|
||||
The locations folder is for various scene locations that you want to track. Tags in this folder
|
||||
can be references using the ``@location`` keyword.
|
||||
|
||||
:guilabel:`Timeline`
|
||||
If the story has multiple plot timelines or jumps in time within the same plot, this class of
|
||||
files can be used to track this. Tags in this folder can be references using the ``@time``
|
||||
keyword.
|
||||
|
||||
:guilabel:`Objects`
|
||||
Important objects in the story, for instance important objects that change hands often, can be
|
||||
tracked here. Tags in this folder can be references using the ``@object`` keyword.
|
||||
|
||||
:guilabel:`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 folder can be references using the ``@entity``
|
||||
keyword.
|
||||
|
||||
:guilabel:`Custom`
|
||||
The custom root folder can be used for tracking anything else not covered by the above options.
|
||||
Tags in this folder 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_struct_tags`.
|
||||
|
||||
.. tip::
|
||||
You can rename root folders to whatever you want. The first character in the :guilabel:`Flags`
|
||||
column will still indicate what type they are, and so will the icon if you are using one of the
|
||||
Typicons icon sets.
|
||||
|
||||
|
||||
.. _a_proj_roots_del:
|
||||
|
||||
Deleted Documents
|
||||
-----------------
|
||||
|
||||
Deleted document files will be moved into a special :guilabel:`Trash` root folder. Files in the
|
||||
trash folder can then be deleted permanently, either individually, or by emptying the trash from the
|
||||
menu.
|
||||
|
||||
Folders and root folders can only be deleted when they are empty. Recursive deletion is not
|
||||
supported.
|
||||
|
||||
A document file or a folder can be deleted from the :guilabel:`project` menu, or by pressing
|
||||
:kbd:`Ctrl`:kbd:`Del`.
|
||||
|
||||
|
||||
.. _a_proj_roots_orph:
|
||||
|
||||
Orphaned 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 folder that isn't
|
||||
tracked in the core project file. These files, when discovered, are handled by the Orphaned
|
||||
Documents routine.
|
||||
|
||||
Files that are discovered in the project folder, but not in the project, will be re-added to the
|
||||
project tree in a special :guilabel:`Orphaned Items` root folder next time the application is
|
||||
started. These orphaned files will not have most of the meta data preserved, although novelWriter
|
||||
will try to restore the file label it had in the project tree. Other information will have to be set
|
||||
again, and the files moved back to the correct location in the project tree.
|
||||
|
||||
|
||||
.. _a_proj_roots_lock:
|
||||
|
||||
Project Lockfile
|
||||
----------------
|
||||
|
||||
To prevent orphaned files caused by file conflicts when novelWriter projects are synced with file
|
||||
synchronisation tools, a project lockfile is written to the project 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 give the option to ignore
|
||||
this warning, and continue opening the project.
|
||||
|
||||
.. 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.
|
||||
|
||||
.. 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.
|
||||
|
||||
|
||||
.. _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 files in the novel, like for instance during export, these folders are ignored.
|
||||
Only the order of the document files themselves matter.
|
||||
|
||||
The folders are there purely as a way for the user to organise the files in meaningful sections and
|
||||
to be able to collapse and hide them in the project tree when you're not working on those files.
|
||||
|
||||
.. tip::
|
||||
You can use folders to sort your scene files into chapters. You will then need to add a chapter
|
||||
file as the first file of your folder, and the scene files as the following files.
|
||||
|
||||
|
||||
.. _a_proj_files:
|
||||
|
||||
Project Files
|
||||
=============
|
||||
|
||||
New document files can be created from the :guilabel:`Document` menu, or by pressing
|
||||
:kbd:`Ctrl`:kbd:`N` while in the Project Tree. This will create a new, empty file, and open the
|
||||
:guilabel:`:Item Settings` dialog where the filename and various other settings can be changed.
|
||||
This dialog can also be opened again later from either the :guilabel:`Project` menu, selecting
|
||||
:guilabel:`Edit Item`, or by pressing :kbd:`Ctrl`:kbd:`E` or :kbd:`F2` with the item selected.
|
||||
|
||||
The layout of the file is also defined here. For Novel files, the full list of layout options are
|
||||
available. For non-Novel files, only "Note" is available. See :ref:`a_struct_layout` for more
|
||||
details.
|
||||
|
||||
You can also select whether the file is by default included when building the project. This setting
|
||||
can be overridden in the :guilabel:`Build Novel Project` tool if you wish to include them anyway.
|
||||
This is covered in the :ref:`a_export_files` section.
|
||||
|
||||
|
||||
.. _a_proj_files_counts:
|
||||
|
||||
Word Counts
|
||||
-----------
|
||||
|
||||
A character, word and paragraph count is maintained for each file, as well as dor each section of a
|
||||
file defined by a header. 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 project tree for any file selected.
|
||||
|
||||
The word counts are not updated in real time, but runs in the background every five seconds for as
|
||||
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 index. If the counts seem wrong, a
|
||||
full project word recount can be initiated by rebuilding the project's index. Either form the
|
||||
:guilabel:`Tools` menu, or by pressing :kbd:`F9`.
|
||||
|
||||
|
||||
.. _a_proj_settings:
|
||||
|
||||
Project Settings
|
||||
================
|
||||
|
||||
The :guilabel:`Project Settings` can be accessed from the :guilabel:`Project` menu, or by pressing
|
||||
:kbd:`Ctrl`:kbd:`Shift`:kbd:`,`. This will open a dialog box, with a set of tabs.
|
||||
|
||||
|
||||
Settings Tab
|
||||
------------
|
||||
|
||||
The :guilabel:`Settings` tab holds the project title and author settings.
|
||||
|
||||
The :guilabel:`Working Title` can be set to a different title than the :guilabel:`Book Title`. The
|
||||
difference between them is simply that the :guilabel:`Working Title` is used for the GUI (main
|
||||
window title) and for generating the backup files. The intention is that the :guilabel:`Working
|
||||
Title` should remain unchanged throughput the project, otherwise the name of exported files and
|
||||
backup files may change too.
|
||||
|
||||
The :guilabel:`Book Title` and :guilabel:`Book Authors` settings are currently not used for
|
||||
anything, so setting then is just for the benefit of the author. Future, planned features will be
|
||||
using them, and they are exported on some export formats in the :guilabel:`Build Novel Project`
|
||||
tool.
|
||||
|
||||
|
||||
Details Tab
|
||||
-----------
|
||||
|
||||
This tab presents an overview of meta data for the project. It states where on your file system the
|
||||
project is saved, how may times it has been saved, how many folders and files it contains, and how
|
||||
many words exist in the entire project.
|
||||
|
||||
|
||||
Status and Importance Tabs
|
||||
--------------------------
|
||||
|
||||
Each file of type "Novel" can be given a status level, signified by a coloured icon and each file of
|
||||
the remaining types can be given an importance level. These are colour coded icons and labels that
|
||||
can be applied to each file.
|
||||
|
||||
These are purely there for the user's convenience, and you are not required to use them for any
|
||||
other feature to work. No other part of novelWriter accesses this information. The intention is to
|
||||
use these to indicate at what stage of completeion each novel file is, or how important the content
|
||||
of a note file is to the plot. 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.
|
||||
|
||||
.. note::
|
||||
The status or importance level currently in use by one or more files cannot be deleted, but they
|
||||
can be edited.
|
||||
|
||||
|
||||
Auto-Replace Tab
|
||||
----------------
|
||||
|
||||
A set of automatically replaced keywords can be added in this tab. The keywords in the left column
|
||||
will be replaced by the text in the right column when documents are opened in the viewer. They will
|
||||
also be applied to exports.
|
||||
|
||||
.. note::
|
||||
A keyword cannot contain any spaces. The angle brackets are added by default, and when used in
|
||||
the text are a part of the keyword to be replaced. This is to ensure that parts of the text isn't
|
||||
unintentionally replaced by the content of the list.
|
||||
|
||||
|
||||
.. _a_proj_backup:
|
||||
|
||||
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 to be provided in :guilabel:`Preferences`.
|
||||
|
||||
Backups can be run automatically when a project is closed, which also implies it is run when the
|
||||
application is closed. Backups are date stamped zip files of the entire project folder, and are
|
||||
stored in a subfolder of the backup path with the same name as the project :guilabel:`Working Title`
|
||||
set 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 dissable automated backup for a given project in :guilabel:`Project
|
||||
Settings`.
|
||||
|
||||
.. note::
|
||||
For the backup to be able to run, the :guilabel:`Working Title` must be set in :guilabel:`Project
|
||||
Settings`. This value is used to generate the folder name for the zip files. Without it, the
|
||||
backup will not run at all, but produce a warning message.
|
||||
|
||||
.. _a_proj_stats:
|
||||
|
||||
Writing Statistics
|
||||
==================
|
||||
|
||||
When you work on your project, a log file records when you opened it, when you closed it, and how
|
||||
many words you added to your novel and note files during the session. You can view this file in the
|
||||
``meta`` folder in the directory where you saved your project. The file is named
|
||||
``sessionStats.log``.
|
||||
|
||||
A small tool to view the content of this file is available in the :guilabel:`Tools` menu under
|
||||
:guilabel:`Writing Statistics`. You can also launch it by pressing :kbd:`F6`.
|
||||
|
||||
The tool will show a list of all your sessions, and a set of filters to apply to it. 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.
|
||||
@@ -1 +1,6 @@
|
||||
sphinx_rtd_theme
|
||||
sphinx-book-theme
|
||||
sphinx>=5.0
|
||||
sphinx-favicon
|
||||
sphinx-design
|
||||
pygments>=2.7
|
||||
docutils>=0.17.1
|
||||
|
||||
@@ -1,186 +0,0 @@
|
||||
.. _a_started:
|
||||
|
||||
***************
|
||||
Getting Started
|
||||
***************
|
||||
|
||||
This is a brief guide to how you can get novelWriter running on your computer. These are the methods
|
||||
currently supported by the developer. Packages may also be available in other package managers, but
|
||||
those are not managed by me.
|
||||
|
||||
As novelWriter matures, more options for how to install it and get it running will be added. At the
|
||||
present time, the process is best suited for people used to work with Python projects from command
|
||||
line.
|
||||
|
||||
|
||||
.. _a_started_install:
|
||||
|
||||
Installation
|
||||
============
|
||||
|
||||
You can download the latest version of novelWriter from the source repository on GitHub_. You can
|
||||
also install it directly from PyPi with ``pip install novelwriter``, or download the packages
|
||||
directly from the PyPi_ project page.
|
||||
|
||||
Latest version of novelWriter is |release|.
|
||||
|
||||
.. _GitHub: https://github.com/vkbo/novelWriter/releases
|
||||
.. _PyPi: https://pypi.org/project/novelWriter/
|
||||
|
||||
|
||||
.. _a_started_depend:
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
novelWriter has been designed to rely on as few dependencies as possible. Aside from the package(s)
|
||||
needed to communicate with the Qt GUI libraries, only one package is required for handling the XML
|
||||
format of the main project file. Everything else is handled with standard Python libraries.
|
||||
|
||||
Optionally, a package can be installed to interface with the Enchant spell checking libaries, but
|
||||
this isn't strictly required. If no external spell checking library is available, novelWriter falls
|
||||
back to using the internal ``difflib`` of Python to check spelling. This is a much slower approach,
|
||||
and it is less sophisticated than full spell checking libaries, but if you only work with small
|
||||
files, the performance loss is not noticeable.
|
||||
|
||||
|
||||
.. _a_started_depend_packages:
|
||||
|
||||
Package Installation
|
||||
--------------------
|
||||
|
||||
If you already have Python installed, all you need to do is install the dependencies. To do this,
|
||||
you need to open your command line tool, find the folder where you extracted novelWriter, and run
|
||||
the following command:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip install -r requirements.txt
|
||||
|
||||
This will install all the dependencies and recommended packages.
|
||||
|
||||
The following Python packages are required to run novelWriter:
|
||||
|
||||
* ``pyqt5``, needed for connecting with the Qt5 libraries.
|
||||
* ``lxml``, needed full XML support.
|
||||
|
||||
You can of course also install these packages from your operating system's package repository.
|
||||
|
||||
.. note::
|
||||
Sometimes the SVG graphics package for PyQt5 must be installed separately. It is usually called
|
||||
something like ``python3-pyqt5.qtsvg``.
|
||||
|
||||
PyQt/Qt should be at least 5.2.1, but ideally 5.10 or higher for nearly all features to work.
|
||||
Exporting to standard Markdown, for instance, requires PyQt/Qt 5.14. Searching using regular
|
||||
expressions requires 5.3, and for full Unicode support, 5.13.
|
||||
|
||||
There are no known minimum version requirement for package ``lxml``, but the code was originally
|
||||
written with 4.2, which is therefore set as the minimum. It may work on lower versions. You have to
|
||||
test it.
|
||||
|
||||
The spell checking extension is optional, but recommended:
|
||||
|
||||
* ``pyenchant``, needed for efficient spell checking.
|
||||
|
||||
The optional spell check library must be at least 3.0.0 to work with Windows. On Linux, 2.0.0 also
|
||||
works fine.
|
||||
|
||||
|
||||
.. _a_started_depend_docs:
|
||||
|
||||
Building the Documentation
|
||||
--------------------------
|
||||
|
||||
If you installed novelWriter from a package, the documentation should be included. If you're running
|
||||
novelWriter from the source code, a local copy of this documentation can be generated. It requires
|
||||
the following Python packages on Debian and Ubuntu.
|
||||
|
||||
* ``python3-sphinx``
|
||||
* ``python3-sphinxcontrib.qthelp``
|
||||
|
||||
Or from PyPi:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip install sphinx sphinxcontrib-qthelp
|
||||
|
||||
To build the help packages from the documentation source, run
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
./setup.py qthelp
|
||||
|
||||
from the root source folder.
|
||||
|
||||
The setup script will copy the generated files into the ``nw/assets/help`` folder, and novelWriter
|
||||
will detect the presence of the files and redirect the menu help entry to open help locally instead
|
||||
of sending the user to the website. Pressing the :kbd:`F1` key will in any case try to open help
|
||||
locally first, then send you to the website as a fallback.
|
||||
|
||||
.. note::
|
||||
In order for the local version of help to work, the Qt Assistant must be installed on the local
|
||||
computer. If it isn't available, or novelWriter cannot find it, the help feature will fall back
|
||||
to redirecting you to the documentation website.
|
||||
|
||||
|
||||
.. _a_started_running:
|
||||
|
||||
Running novelWriter
|
||||
===================
|
||||
|
||||
If all the required dependencies are met, you can run novelWriter from the command line in one of
|
||||
the following ways:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
python novelWriter.py
|
||||
python3 novelWriter.py
|
||||
./novelWriter.py
|
||||
|
||||
A few switches are supported from the command line, mostly to assist in debugging if an error is
|
||||
encountered. To list all options, run:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
python novelWriter.py --help
|
||||
|
||||
There are also a couple of install scripts in the assets folder which will assist in setting up a
|
||||
launch icon and the novelWriter project file mimetype for Gnome desktops on Linux. Currently,
|
||||
there's one script for Debian and one for Ubuntu.
|
||||
|
||||
|
||||
.. _a_started_standalone:
|
||||
|
||||
Building a Standalone Executable
|
||||
================================
|
||||
|
||||
A standalone executable can be built with ``pyinstaller``, using the provided python script
|
||||
``install.py`` in the source folder. This script will automatically try to install all dependencies
|
||||
and build the standalone executable of novelWriter. You can run the script by typing the following
|
||||
into your command prompt:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
python install.py
|
||||
|
||||
If successful, the executable will be in the "dist" folder.
|
||||
|
||||
|
||||
.. _a_started_standalone_win:
|
||||
|
||||
Additional Instructions for Windows
|
||||
-----------------------------------
|
||||
|
||||
If you don't have Python installed, you can download it from the python.org website. The installers
|
||||
for Windows are available at https://www.python.org/downloads/windows/
|
||||
|
||||
novelWriter should work with Python 3.6 or higher, and the executable installer is the easiest to
|
||||
install.
|
||||
|
||||
Also, make sure you select the "Add Python to PATH" option.
|
||||
|
||||
.. image:: images/python_win_install.png
|
||||
:width: 600
|
||||
|
||||
Once Python is set up and running, you can either run novelWriter from the folder where you
|
||||
extracted it, or you can build an executable and run that from a desktop icon instead.
|
||||
@@ -1,198 +0,0 @@
|
||||
.. _a_struct:
|
||||
|
||||
***************
|
||||
Novel Structure
|
||||
***************
|
||||
|
||||
This section covers the structure of a novel project.
|
||||
|
||||
This section concerns files under the Novel type root folder only. There are some restrictions
|
||||
and features that only applies to these type of files.
|
||||
|
||||
|
||||
.. _a_struct_heads:
|
||||
|
||||
Importance of Headings
|
||||
======================
|
||||
|
||||
Subfolders under root folders have no impact on the structure of the novel itself. The structure is
|
||||
instead dictated by the heading level of the headers within the document files.
|
||||
|
||||
Four levels of headings are supported, signified by the number of hashes preceding the title. See
|
||||
also the :ref:`a_ui_md` section for more details about the markdown syntax.
|
||||
|
||||
.. note::
|
||||
The header levels are not only important when generating the exported novel file, they are also
|
||||
used by the indexer when building the outline tree in the :guilabel:`Outline` tab. Each heading
|
||||
also starts a new region where new references to tags can be set.
|
||||
|
||||
The different header levels are interpreted as specific section types of the novel in the following
|
||||
way:
|
||||
|
||||
``# Header1``
|
||||
Header level one signifies that the text refers to either the novel title or the name of a top
|
||||
level partition when you want to split the manuscript up into books, parts, or acts.
|
||||
|
||||
``## Header2``
|
||||
Header level two 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 file per scene,
|
||||
you need a single chapeter file with just the heading. You can of course also add a synopsis and
|
||||
reference keywords to the chapter file. If you want to open the chaper with a quote, this is
|
||||
also where you'd put the text for that.
|
||||
|
||||
``### Header3``
|
||||
Header level three signifies a scene level partition. The title itself can be replaced with a
|
||||
scene separator or just skipped entirely when you export your manuscript.
|
||||
|
||||
``#### Header4``
|
||||
Header level four signifies a sub-scene level partition, usually called just a section in the
|
||||
documentation und user interface. These can be useful if you want to change tag references
|
||||
mid-scene, like if you change the point-of-view character. You are free to use sections as you
|
||||
wish also in novel files, and can filter the titles out of the final manuscript just like with
|
||||
scene titles.
|
||||
|
||||
There are multiple options of how to process novel titles when exporting the manuscript. For
|
||||
instance, chapter numbers can be applied automatically, and so can scene numbers if you want them in
|
||||
a draft manuscript. See the :ref:`a_export` page for more details.
|
||||
|
||||
|
||||
.. _a_struct_tags:
|
||||
|
||||
Tag References
|
||||
==============
|
||||
|
||||
Each text section indicated by a heading of any level, can contain references to tags set in the
|
||||
supporting files of the project. The references are gathered by the indexer and used to generate the
|
||||
outline view on the :guilabel:`Outline` tab of how the different parts of the novel are connected.
|
||||
|
||||
References and tags are also clickable in the document editor and viewer, making it easy to navigate
|
||||
between reference notes while writing. Clicked links are always opened in the view panel.
|
||||
|
||||
References are set as a 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 keywords
|
||||
allow multiple values.
|
||||
|
||||
``@pov``
|
||||
The point-of-view character for the current section. The target must be a note tag in the
|
||||
:guilabel:`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 character(s).
|
||||
|
||||
``@plot``
|
||||
The plot or subplot advanced in the current section. The target must be a note tag in a
|
||||
:guilabel:`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.
|
||||
|
||||
``@location``
|
||||
The location the current section takes place in. The target must be a note tag in a
|
||||
:guilabel:`Locations` type root folder.
|
||||
|
||||
``@object``
|
||||
Objects present in the current section. The target must be a note tag in an :guilabel:`Object`
|
||||
type root folder.
|
||||
|
||||
``@entity``
|
||||
Entities present in the current section. The target must be a note tag in an :guilabel:`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 syntax highlighter will alert the user that the tags and references are used correctly, and that
|
||||
the tags referenced exist.
|
||||
|
||||
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 file is regenerated when a file is saved, so this shouldn't normally be necessary.
|
||||
|
||||
|
||||
.. _a_struct_layout:
|
||||
|
||||
Novel File Layout
|
||||
=================
|
||||
|
||||
All files in a novelWriter project can have a layout format set. These layouts are important when
|
||||
the project is exported as they indicate how to treat the content in terms of formatting, headings,
|
||||
and page breaks. The layout for each file is indicated as the last set of characters in the
|
||||
:guilabel:`Flags` column of the project tree.
|
||||
|
||||
Not all layout types are actually treated differently, but they also help to indicate what each file
|
||||
is for in your project. The :guilabel:`Book` layout is a generic novel file layout that is formatted
|
||||
identically to :guilabel:`Chapter` and :guilabel:`Scene` layout files, but may help to indicate what
|
||||
files do in your project.
|
||||
|
||||
You can for instance lay out your project using :guilabel:`Book` files for each act, and then later
|
||||
split those into chapter or scene files by using the :guilabel:`Split Document` tool. Scenes can
|
||||
also be contained within :guilabel:`Chapter` type files, but you lose the drag and drop feature that
|
||||
comes with having them in separate files if you organise them this way.
|
||||
|
||||
Some layouts *do* have implications on how the project is exported. Files with layout
|
||||
:guilabel:`Title Page` and :guilabel:`Partition` have all headings and text centred, while the
|
||||
:guilabel:`Unnumbered` layout disables the automatic chapter numbering feature for everything
|
||||
contained within it. The latter is convenient for Prologue and Epilogue type chapters.
|
||||
|
||||
All of the above layout formats are only usable in the Novel root folder. Files that are not a part
|
||||
of the novel itself should have the Note layout. These files are not getting any special formatting,
|
||||
and it is possible to collectively filter them out during export. Note files can be used anywhere
|
||||
in the project, also in the Novel root folder.
|
||||
|
||||
Below is an overview of all available layout formats.
|
||||
|
||||
:guilabel:`Title Page`
|
||||
The title page layout. The title should be formatted as a heading level one. All text is
|
||||
automatically centred on exports.
|
||||
|
||||
:guilabel:`Plain Page`
|
||||
A plain page layout useful for instance for front matter pages. Heading levels are ignored for
|
||||
this layout format, and so are formatting options like :guilabel:`Justify Text`. The page is
|
||||
exported with a page break before it.
|
||||
|
||||
:guilabel:`Book`
|
||||
This is the generic novel file format that in principle can be used for all novel files. Since
|
||||
the internal structure of the novel is controlled by the heading levels, this file will produce
|
||||
the same result as a collection of :guilabel:`Partition`, :guilabel:`Chapter` and
|
||||
:guilabel:`Scene` type files. However, it does not provide the functionality of the
|
||||
:guilabel:`Unnumbered` layout format.
|
||||
|
||||
:guilabel:`Partition`
|
||||
A partition can be used to split the novel into parts. Partition titles are indicated with a
|
||||
level one heading. You can also add text and meta data to the page. The :guilabel:`Partition`
|
||||
file layout will in addition force a page break before the heading, and centre all content on the
|
||||
page.
|
||||
|
||||
:guilabel:`Chapter`
|
||||
Signifies the start of a new chapter. If the text itself is contained in scene files, these files
|
||||
should only contain the title, comments, synopsis, and tag references for characters, plot, etc.
|
||||
The heading for chapters should be level two. If you need an opening text, like a quote or other
|
||||
leading text before the first scene, this is also where you'd want to add this text.
|
||||
|
||||
:guilabel:`Unnumbered`
|
||||
Same as :guilabel:`Chapter`, but when exporting the files and automatic chapter numbering is
|
||||
enabled, this file will not increment the chapeter number. It also has a separate title
|
||||
formatting setting. This makes the layout suitable for Prologue and Epilogue type chapters.
|
||||
|
||||
:guilabel:`Scene`
|
||||
A scene file. This file should have a header of level three. Further sections can have headers
|
||||
of level four, but there are no file layout specifically for sections.
|
||||
|
||||
:guilabel:`Note`
|
||||
A generic file that is optionally ignored when the novel is exported. Use these files for
|
||||
descriptions of content in the supporting root folders. Note files can also be added to the Novel
|
||||
root folder if you need to insert notes there. Note file headers receive no special formatting
|
||||
when building the project. They are always exported as-is.
|
||||
|
||||
.. note::
|
||||
The layout granularity is entirely optional. In principle, you can write the entire novel in a
|
||||
single file with layout :guilabel:`Book`. You can also have a single file per chapter if that
|
||||
suits you better. The :guilabel:`Outline` will show your structure of chapters and scenes
|
||||
regardless of how your files are organised.
|
||||
|
||||
.. tip::
|
||||
You can always start writing with a coarse file layout with one or a few files, and then later
|
||||
use the split tool to automatically split the files into chapter and scene files.
|
||||