Compare commits
1626 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
814876f8df | ||
|
|
32bcb52f14 | ||
|
|
612ec06262 | ||
|
|
93dea90970 | ||
|
|
47ece1f285 | ||
|
|
64378419d0 | ||
|
|
00a201181d | ||
|
|
b3f9a14c85 | ||
|
|
065e3828b1 | ||
|
|
63e91f0ee5 | ||
|
|
182ef5c8f7 | ||
|
|
b0f000acfd | ||
|
|
7a55af405b | ||
|
|
a3343bc738 | ||
|
|
a324ad2dd8 | ||
|
|
38b4653cb3 | ||
|
|
fdd9186ae9 | ||
|
|
7125e9ecd5 | ||
|
|
869e4a0b9d | ||
|
|
dc0e5c218f | ||
|
|
67bd23a027 | ||
|
|
f22a350938 | ||
|
|
6ba286087d | ||
|
|
c2e3fef7fc | ||
|
|
b9d344c7d9 | ||
|
|
fe04c1af25 | ||
|
|
21d3ed61ef | ||
|
|
b7f27a2af0 | ||
|
|
36aa58b38e | ||
|
|
2f4fccfb2c | ||
|
|
d251ebb995 | ||
|
|
0c946516e8 | ||
|
|
c77ef4e4ce | ||
|
|
a9d90da5c8 | ||
|
|
4071c2ca43 | ||
|
|
0a571502ce | ||
|
|
a850e5b74e | ||
|
|
71aa1fa113 | ||
|
|
24eef2dc0b | ||
|
|
5977c8c8e2 | ||
|
|
dcd4c19b21 | ||
|
|
464c7dae0a | ||
|
|
ad92e2e5eb | ||
|
|
254845d71f | ||
|
|
3c72f195ba | ||
|
|
f3f46858c9 | ||
|
|
d4631229af | ||
|
|
a78f7d5789 | ||
|
|
fca5c77089 | ||
|
|
fe828a1c49 | ||
|
|
11e3573ebd | ||
|
|
ff1d625dc8 | ||
|
|
bd9691532f | ||
|
|
133b597093 | ||
|
|
d4d540bc33 | ||
|
|
d08322c1a3 | ||
|
|
ec1c664ed6 | ||
|
|
a3b46581b0 | ||
|
|
b115d4f02d | ||
|
|
6e64ede90b | ||
|
|
c06c2422a9 | ||
|
|
14d205f845 | ||
|
|
a57ce557e8 | ||
|
|
23c200f333 | ||
|
|
bf6a3adc06 | ||
|
|
60a8c8212c | ||
|
|
525c9c8fd8 | ||
|
|
08651685d4 | ||
|
|
3a60abaeee | ||
|
|
1e5d980b85 | ||
|
|
df36aceddb | ||
|
|
600e1cdbfb | ||
|
|
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 | ||
|
|
e13aea684c | ||
|
|
df65d2a959 | ||
|
|
77fefff1fe | ||
|
|
bc1d238965 | ||
|
|
1a4fd45803 | ||
|
|
0b8e5e3ef2 | ||
|
|
774eb8edf7 | ||
|
|
882f91adca | ||
|
|
da747b2849 | ||
|
|
59f6b48a83 | ||
|
|
a3f2487622 | ||
|
|
dcbe726170 | ||
|
|
593afdd823 | ||
|
|
77b1d50e31 | ||
|
|
2c04130e27 | ||
|
|
54551a3498 | ||
|
|
559f2e53e4 | ||
|
|
c273f3f67e | ||
|
|
3398bcec12 | ||
|
|
9d71cade2e | ||
|
|
5041f9be2a | ||
|
|
00e321a6bf | ||
|
|
4ca2edd25f | ||
|
|
fcd2b732c3 | ||
|
|
29f6af7638 | ||
|
|
67ef5a89dd | ||
|
|
832b5747df | ||
|
|
4cf49bd80a | ||
|
|
e1f3b15cf4 | ||
|
|
bfb5f55e24 | ||
|
|
0d68b8bb11 | ||
|
|
47b06dac1b | ||
|
|
133b15957d | ||
|
|
cccd3eacf1 | ||
|
|
f958f68302 | ||
|
|
00f0a6887c | ||
|
|
72cb1ed60f | ||
|
|
95ee2bf874 | ||
|
|
28ab689dab | ||
|
|
827e84f731 | ||
|
|
900bde6b9d | ||
|
|
9fcfc38753 | ||
|
|
b016c5d142 | ||
|
|
58458e1036 | ||
|
|
7f0bff29d2 | ||
|
|
b4497b133c | ||
|
|
8425c8c9be | ||
|
|
ae997c3236 | ||
|
|
033c3e63c2 | ||
|
|
e05aada76a | ||
|
|
dbdef444a1 | ||
|
|
a46803232c | ||
|
|
3acabdf74e | ||
|
|
72e4656a57 | ||
|
|
7bc62db5e3 | ||
|
|
7d803a2eb7 | ||
|
|
8a50590a5d | ||
|
|
bf35bda942 | ||
|
|
9044ab4c3f | ||
|
|
10067921f6 | ||
|
|
3c1e2727ad | ||
|
|
b5b657650a | ||
|
|
ebec7c22a0 | ||
|
|
2702edced4 | ||
|
|
8ae491ddbc | ||
|
|
c74c733396 | ||
|
|
fff03b8986 | ||
|
|
1215995531 | ||
|
|
c38951cf54 | ||
|
|
42743fb891 | ||
|
|
56b2cbee10 | ||
|
|
a9b6e00ba7 | ||
|
|
a47c212b79 | ||
|
|
aa8b2a7f23 | ||
|
|
1e3f006430 | ||
|
|
16cfa13abb | ||
|
|
d1982c0abb | ||
|
|
76fcc74342 | ||
|
|
1abff1e816 | ||
|
|
6a664a1890 | ||
|
|
1a76e13a00 | ||
|
|
d5b7c027fb | ||
|
|
7eabb7a1f4 | ||
|
|
9922efda77 | ||
|
|
59e588ebf5 | ||
|
|
71d908fa3e | ||
|
|
e8ad068a42 | ||
|
|
79186c2ccc | ||
|
|
d6e91df208 | ||
|
|
364aa77454 | ||
|
|
5c1abfd220 | ||
|
|
ceabf50cf9 | ||
|
|
cd0f67d900 | ||
|
|
2f9645491c | ||
|
|
43a7ea8f78 | ||
|
|
e927f88121 | ||
|
|
2d9a9c2b22 | ||
|
|
6bcf46191d | ||
|
|
49bd828be0 | ||
|
|
298df58808 | ||
|
|
ff9acf8e6e | ||
|
|
9431af6330 | ||
|
|
edb556ba91 | ||
|
|
967f8360ed | ||
|
|
11ea0fb08f | ||
|
|
96342e633d | ||
|
|
58d4b24df5 | ||
|
|
3ed98c7fed | ||
|
|
d7c1e47113 | ||
|
|
566c704c87 | ||
|
|
050c08ea77 | ||
|
|
62908adac6 | ||
|
|
38fb4a8184 | ||
|
|
f820b8159e | ||
|
|
4e7e888a53 | ||
|
|
f227099eb4 | ||
|
|
f600ad0759 | ||
|
|
21eebbb88f | ||
|
|
8b1e9b2fbe | ||
|
|
80b8b3ec17 | ||
|
|
cb8e0231d7 | ||
|
|
c58b5e71d0 | ||
|
|
565be8c580 | ||
|
|
3708b3486b | ||
|
|
bf184c4e5a | ||
|
|
c695ae903f | ||
|
|
a14b459664 | ||
|
|
df61101ac3 | ||
|
|
0664e49ca2 | ||
|
|
00160acf28 | ||
|
|
9b9a3dd5bb | ||
|
|
2abe214b2f | ||
|
|
9e2fe92c83 | ||
|
|
c8ac0f0fc4 | ||
|
|
de7ba23a25 | ||
|
|
c6c47866d1 | ||
|
|
5e414d5730 | ||
|
|
ffb65f8393 | ||
|
|
56528d0f98 | ||
|
|
4d0777b02e | ||
|
|
b6e06a81d5 | ||
|
|
148c3530e2 | ||
|
|
61190284be | ||
|
|
9a069eea8d | ||
|
|
d3ab1caf3a | ||
|
|
46c9f0fb5f | ||
|
|
95a5ee7b8a | ||
|
|
e5cdb2e8ca | ||
|
|
5f64d55f5b | ||
|
|
350d5beed7 | ||
|
|
9233cdd014 | ||
|
|
fc017cd8da | ||
|
|
02f85bd5d7 | ||
|
|
d848827e58 | ||
|
|
57f199ef17 | ||
|
|
f5cc67d33f | ||
|
|
2b3190400c | ||
|
|
62e8750b18 | ||
|
|
c506212efd | ||
|
|
01e1ab3f68 | ||
|
|
a55552e132 | ||
|
|
a4db7f934d | ||
|
|
cacb0f2db8 | ||
|
|
2dc225ae1f | ||
|
|
41b6ffa67b | ||
|
|
45e762567b | ||
|
|
f08743b338 | ||
|
|
595218835e | ||
|
|
f0504f13f3 | ||
|
|
d67e4fa48a | ||
|
|
5a813c9bc5 | ||
|
|
3c4a2f83e3 | ||
|
|
d17e9466d2 | ||
|
|
646562cdf8 | ||
|
|
0d179a6208 | ||
|
|
32878a336d | ||
|
|
9db7550d30 | ||
|
|
5749b1948f | ||
|
|
8c895319e5 | ||
|
|
1277e5025d | ||
|
|
8cc75fcbd4 | ||
|
|
efaa3b6719 | ||
|
|
e1a4265964 | ||
|
|
81013c29d8 | ||
|
|
c174386e04 | ||
|
|
202a413503 | ||
|
|
8d1938922d | ||
|
|
aa2706fa87 | ||
|
|
0330b3a0b4 | ||
|
|
fa08276dd5 | ||
|
|
324445cab4 | ||
|
|
a14850de65 | ||
|
|
57c7fdcf6d | ||
|
|
74dcf67dd9 | ||
|
|
f805b0ccae | ||
|
|
7816bf5b87 | ||
|
|
1cb17733c6 | ||
|
|
e4b454c9c7 | ||
|
|
731fd4e139 | ||
|
|
f179738b69 | ||
|
|
4cc295e0f2 | ||
|
|
5dd7befc82 | ||
|
|
a2b2910bd7 | ||
|
|
9130db1fe2 | ||
|
|
b119db0ee1 | ||
|
|
7bdfbc4ce7 | ||
|
|
eb985280ed | ||
|
|
8081351ad6 | ||
|
|
e6a392481c | ||
|
|
8a06400f2a | ||
|
|
2d82526bd1 | ||
|
|
0d1bd5355a | ||
|
|
fbd367c1b0 | ||
|
|
e190ef146e | ||
|
|
a6a28b41d1 | ||
|
|
89591561fd | ||
|
|
85db807e3b | ||
|
|
ca9fb03803 | ||
|
|
a8b2a34438 | ||
|
|
4355d5fd77 | ||
|
|
fdf7f58d5f | ||
|
|
70078be145 | ||
|
|
564a15968c | ||
|
|
ceadfe1e5c | ||
|
|
c572eb0d16 | ||
|
|
6b70d9677d | ||
|
|
c67e5f444a | ||
|
|
3d682e154e | ||
|
|
dad4677791 | ||
|
|
9f8963d6d2 | ||
|
|
2ac4e2ce26 | ||
|
|
e5180e1398 | ||
|
|
a15af30578 | ||
|
|
4d88b20fc1 | ||
|
|
a89b3cbde3 | ||
|
|
1dce9b185b | ||
|
|
7d6d0cc195 | ||
|
|
c78c0c82b3 | ||
|
|
e9d21db263 | ||
|
|
c0074ca269 | ||
|
|
243d9dd85a | ||
|
|
7d30a2c044 | ||
|
|
ed1f30662c | ||
|
|
e930fb203c | ||
|
|
6f89b1a9a5 | ||
|
|
40e7213a39 | ||
|
|
6cb10a3896 | ||
|
|
c241e5f52e | ||
|
|
3d162b880a | ||
|
|
f4625647e1 | ||
|
|
1b773c1b44 | ||
|
|
e6a8488e08 | ||
|
|
91b2e1e57e | ||
|
|
24582f4c2c | ||
|
|
5f15b06303 | ||
|
|
d40aab951f | ||
|
|
c495825018 | ||
|
|
9126a1de2b | ||
|
|
9609095790 | ||
|
|
48c72b3755 | ||
|
|
a0d07409d4 | ||
|
|
e2f5ddf5f5 | ||
|
|
216d3f2ce4 | ||
|
|
f78fbcbc8f | ||
|
|
198836c261 | ||
|
|
b05d6f2dc1 | ||
|
|
bdedc7a11c | ||
|
|
d316277f72 | ||
|
|
3258621456 | ||
|
|
98b822fa47 | ||
|
|
09be23a11e | ||
|
|
9e6feb6b05 | ||
|
|
2749569482 | ||
|
|
9f1826cb59 | ||
|
|
935971fa0c | ||
|
|
1110f40231 | ||
|
|
a5c83a45f5 | ||
|
|
996bffb21b | ||
|
|
b5afe8703b | ||
|
|
5913c944d9 | ||
|
|
4043f81065 | ||
|
|
2d9c92a156 | ||
|
|
a1d7f8296f | ||
|
|
ca04f31309 | ||
|
|
6d65c7a827 | ||
|
|
918d9c6470 | ||
|
|
c19c93d60c | ||
|
|
bc8873fdd4 | ||
|
|
b47d6b6546 | ||
|
|
e83717f286 | ||
|
|
65df802a0a | ||
|
|
34fbdae50d | ||
|
|
bce23c69e1 | ||
|
|
bc6751ba00 | ||
|
|
a57242d26f | ||
|
|
64e2521974 | ||
|
|
56aba17bb9 | ||
|
|
8b0e14e8ac | ||
|
|
fe3c231071 | ||
|
|
dac3643de6 | ||
|
|
76e369905a | ||
|
|
afd6c46609 | ||
|
|
02da62f120 | ||
|
|
5eda8ddd13 | ||
|
|
9e5140ddb5 | ||
|
|
51ddfb3cee | ||
|
|
24d79ade58 | ||
|
|
df473ad4d2 | ||
|
|
b46177b40b | ||
|
|
1d6f346955 | ||
|
|
6c872596b7 | ||
|
|
14ae67c94c | ||
|
|
f2e1be38cd | ||
|
|
5a373f1cda | ||
|
|
747ff63a92 | ||
|
|
b19c106b45 | ||
|
|
6a95f1e960 | ||
|
|
d6dd776056 | ||
|
|
03f1142e40 | ||
|
|
b0380adc5f | ||
|
|
38511b18ba | ||
|
|
ee23f937f2 | ||
|
|
fdf7915747 | ||
|
|
0fc0851def | ||
|
|
61856cec5b | ||
|
|
3bfe214682 | ||
|
|
69170aad3e | ||
|
|
1135ca7f87 | ||
|
|
8ff54ceaa4 | ||
|
|
70ce2b1226 | ||
|
|
4dd27ba58c | ||
|
|
c1e89db0a8 | ||
|
|
28641a7b13 | ||
|
|
670f1c0b35 | ||
|
|
a64d867ed4 | ||
|
|
bbd6e70868 | ||
|
|
1978d50e7e | ||
|
|
399b13dd3d | ||
|
|
8896bbb4b9 | ||
|
|
1d9493f1f5 | ||
|
|
c2b55530be | ||
|
|
c264e6100d | ||
|
|
5832d3db71 | ||
|
|
b2747baf6d | ||
|
|
7994491c5d | ||
|
|
deec57c9c6 | ||
|
|
f2c1ce1cca | ||
|
|
22341c5e21 | ||
|
|
79d6e3594c | ||
|
|
6712a7dfcd | ||
|
|
32052b1bc3 | ||
|
|
ad21c6e3a4 | ||
|
|
0ddb7ad1de | ||
|
|
c3c0bd7abe | ||
|
|
ef0d1fc89c | ||
|
|
abc14db7d1 | ||
|
|
f28a9f4523 | ||
|
|
ad8463543e | ||
|
|
8755434f76 | ||
|
|
2c5692085e | ||
|
|
a4108222b0 | ||
|
|
65492b13b7 | ||
|
|
bbb0f5f9dd | ||
|
|
7374d0513e | ||
|
|
aad35e2d7b | ||
|
|
8d71a2385b | ||
|
|
094da13c49 | ||
|
|
8e7e8b5a84 | ||
|
|
d6b95b56da | ||
|
|
bd1bea28a4 | ||
|
|
c7f69faca9 | ||
|
|
181ff99277 | ||
|
|
a85222fdb8 | ||
|
|
21742ff494 | ||
|
|
3321b744d5 | ||
|
|
55b8fd20c6 | ||
|
|
bd8a6afd91 | ||
|
|
ff6b4bcfa7 | ||
|
|
95268a8ca5 | ||
|
|
d2b1b8b57e | ||
|
|
31ca1718a0 | ||
|
|
49049e19d8 | ||
|
|
6951b3d2fa | ||
|
|
8adda0c4a9 | ||
|
|
63656e637f | ||
|
|
013b737452 | ||
|
|
1f434718ec | ||
|
|
3c8cf6829a | ||
|
|
501fc6cf77 | ||
|
|
ee303491e4 | ||
|
|
19474dbc5e | ||
|
|
f7363c8465 | ||
|
|
bff56aa100 | ||
|
|
5358bf5e6b | ||
|
|
06ac3bdaba | ||
|
|
ad0ccf8a56 | ||
|
|
66c8931ece | ||
|
|
3fc17c5439 | ||
|
|
8e38637250 | ||
|
|
2c48e02558 | ||
|
|
929b34843a | ||
|
|
b6e7220495 | ||
|
|
20ff46b8d2 | ||
|
|
9671db0b42 | ||
|
|
c3e6007f76 | ||
|
|
2b878777d4 | ||
|
|
fcd887a67e | ||
|
|
e4f2949d3d | ||
|
|
e58c00b610 | ||
|
|
29950e34a4 | ||
|
|
b88fc2f1ca | ||
|
|
566bf20d97 | ||
|
|
9da434d03a | ||
|
|
b61402a373 | ||
|
|
4a69948aa8 | ||
|
|
1bd5b16def | ||
|
|
a24134d4d6 | ||
|
|
ef70e63814 | ||
|
|
e82777857f | ||
|
|
f096bbef26 | ||
|
|
8bb992bfb8 | ||
|
|
9fd14cc14f | ||
|
|
c8577fb070 | ||
|
|
0ce74cef04 | ||
|
|
621e1a4d2a | ||
|
|
691c8fe89b | ||
|
|
f14ebb5512 | ||
|
|
e0ea8871d0 | ||
|
|
44d8555d38 | ||
|
|
0a6e89e2f6 | ||
|
|
aa81009760 | ||
|
|
ad38550c32 | ||
|
|
f24ec180b2 | ||
|
|
3dc59d393c | ||
|
|
b1b30fb828 | ||
|
|
a15e73cf48 | ||
|
|
367a5e8c1c | ||
|
|
a62a7711be | ||
|
|
9045269f34 | ||
|
|
2c304b2bdd | ||
|
|
05014cb4c9 | ||
|
|
c5b00ce0c0 | ||
|
|
87ee7206a2 | ||
|
|
2c337e5938 | ||
|
|
36933de973 | ||
|
|
8abfb5f983 | ||
|
|
6a5c850bff | ||
|
|
6cb17a185a | ||
|
|
1fc76b0d95 | ||
|
|
df0a80ed96 | ||
|
|
d1ffe2cff3 | ||
|
|
8f4d18d0f3 | ||
|
|
b15156da83 | ||
|
|
e5076b27ed | ||
|
|
02c8e032c9 | ||
|
|
8773098beb | ||
|
|
0595d543b9 | ||
|
|
260b2aa7b9 | ||
|
|
da0d4017cc | ||
|
|
59795e62f7 | ||
|
|
017d9c3801 | ||
|
|
fa8d3ff816 | ||
|
|
3cdbe84c5d | ||
|
|
4ffa841953 | ||
|
|
a5fabc77c9 | ||
|
|
b4cd0332c0 | ||
|
|
4b5ce289c6 | ||
|
|
0e667b060e | ||
|
|
84412d9796 | ||
|
|
3e5263338b | ||
|
|
70bc9facf2 | ||
|
|
7b12e911e4 | ||
|
|
b176f21eb7 | ||
|
|
7723f24c12 | ||
|
|
152cf60f05 | ||
|
|
3228d1723b | ||
|
|
a559526d11 | ||
|
|
2b985976c1 | ||
|
|
4987413180 | ||
|
|
a05f77e6c0 | ||
|
|
50630df705 | ||
|
|
213889e9d5 | ||
|
|
896d7f1257 | ||
|
|
9258d49bc8 | ||
|
|
a051e77be0 | ||
|
|
f029a0ff5f | ||
|
|
d95e8caa50 | ||
|
|
0a3751046b | ||
|
|
10ef9d3453 | ||
|
|
ba4922a426 | ||
|
|
8b22deb1f4 | ||
|
|
0e467d5fb1 | ||
|
|
8e7c3dcb4b | ||
|
|
27130a018e | ||
|
|
d23a9d941a | ||
|
|
27d259779e | ||
|
|
4c9e3f3440 | ||
|
|
f75028e4a7 | ||
|
|
1d708a3460 | ||
|
|
322665680c | ||
|
|
fa769650a7 | ||
|
|
91fdb71674 | ||
|
|
e775103c81 | ||
|
|
72e5778e4f | ||
|
|
0c18f1d3c9 | ||
|
|
184d0f62f9 | ||
|
|
81d03d86e7 | ||
|
|
e402789892 | ||
|
|
4167d2e854 | ||
|
|
4334e62148 | ||
|
|
981d521f12 | ||
|
|
8199c2f4e9 | ||
|
|
3a22863875 | ||
|
|
e8db673db8 | ||
|
|
9af412e29a | ||
|
|
807937caa9 | ||
|
|
0ca197e283 | ||
|
|
1dff34779e | ||
|
|
73b02be9b3 | ||
|
|
91ad4bb07d | ||
|
|
d2616c8af8 | ||
|
|
6cd76ff60b | ||
|
|
2bd2c81eae | ||
|
|
afdd07b6e9 | ||
|
|
49141ac8de | ||
|
|
3f069ac794 | ||
|
|
bd3f6d39e7 | ||
|
|
98360b2edd | ||
|
|
a76562e025 | ||
|
|
61831d9c0e | ||
|
|
6f7d66cb31 | ||
|
|
d08843afc7 | ||
|
|
d5d7abd4c3 | ||
|
|
ae84a4def6 | ||
|
|
322a114ce5 | ||
|
|
87a4b26a62 | ||
|
|
88222e69cf |
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']
|
||||
16
.github/ISSUE_TEMPLATE/bug-report.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
---
|
||||
name: Bug Report
|
||||
about: Create a report to help us improve
|
||||
title: ""
|
||||
labels: bug
|
||||
---
|
||||
|
||||
**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:
|
||||
|
||||
* 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.
|
||||
15
.github/ISSUE_TEMPLATE/feature-request.md
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
---
|
||||
name: Feature Request
|
||||
about: Suggest an idea for this project
|
||||
title: ""
|
||||
labels: enhancement
|
||||
---
|
||||
|
||||
**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:
|
||||
|
||||
* 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.
|
||||
29
.github/workflows/syntax.yml
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
name: flake8
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, testing, dev ]
|
||||
pull_request:
|
||||
branches: [ main, testing, dev ]
|
||||
|
||||
jobs:
|
||||
checkSyntax:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3
|
||||
architecture: x64
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
- name: Install flake8
|
||||
run: pip install flake8
|
||||
- name: Syntax Error Check
|
||||
run: |
|
||||
flake8 nw --count --select=E9,F63,F7,F82 --show-source --statistics
|
||||
flake8 tests --count --select=E9,F63,F7,F82 --show-source --statistics
|
||||
- name: Coding Style Violations
|
||||
run: |
|
||||
flake8 nw --count --max-line-length=99 --ignore E203,E221,E226,E228,E241,E251,E261,E266,E302,E305 --show-source --statistics
|
||||
flake8 tests --count --max-line-length=99 --ignore E203,E221,E226,E228,E241,E251,E261,E266,E302,E305 --show-source --statistics
|
||||
33
.github/workflows/test_linux_3.6.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Linux (3.6)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, testing, dev ]
|
||||
pull_request:
|
||||
branches: [ main, testing, dev ]
|
||||
|
||||
jobs:
|
||||
testLinux36:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.6
|
||||
architecture: x64
|
||||
- name: Install Packages
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install libenchant-dev qt5-default
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install pytest-timeout
|
||||
pip install pytest-qt
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
pytest -v --timeout=60
|
||||
33
.github/workflows/test_linux_3.7.yml
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
name: Linux (3.7)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, testing, dev ]
|
||||
pull_request:
|
||||
branches: [ main, testing, dev ]
|
||||
|
||||
jobs:
|
||||
testLinux37:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.7
|
||||
architecture: x64
|
||||
- name: Install Packages
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install libenchant-dev qt5-default
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install pytest-timeout
|
||||
pip install pytest-qt
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
pytest -v --timeout=60
|
||||
37
.github/workflows/test_linux_3.8.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Linux (3.8)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, testing, dev ]
|
||||
pull_request:
|
||||
branches: [ main, testing, dev ]
|
||||
|
||||
jobs:
|
||||
testLinux38:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.8
|
||||
architecture: x64
|
||||
- name: Install Packages
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install libenchant-dev qt5-default
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install pytest-timeout
|
||||
pip install pytest-cov
|
||||
pip install pytest-qt
|
||||
pip install codecov
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
pytest -v --cov=nw --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v1
|
||||
37
.github/workflows/test_linux_3.9.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: Linux (3.9)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, testing, dev ]
|
||||
pull_request:
|
||||
branches: [ main, testing, dev ]
|
||||
|
||||
jobs:
|
||||
testLinux39:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.9
|
||||
architecture: x64
|
||||
- name: Install Packages
|
||||
run: |
|
||||
sudo apt update
|
||||
sudo apt install libenchant-dev qt5-default
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install pytest-timeout
|
||||
pip install pytest-cov
|
||||
pip install pytest-qt
|
||||
pip install codecov
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
pytest -v --cov=nw --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v1
|
||||
37
.github/workflows/test_mac.yml
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
name: macOS (3.9)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, testing, dev ]
|
||||
pull_request:
|
||||
branches: [ main, testing, dev ]
|
||||
|
||||
jobs:
|
||||
testMac38:
|
||||
runs-on: macos-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.9
|
||||
architecture: x64
|
||||
- name: Install Packages
|
||||
run: |
|
||||
brew install enchant
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install pyobjc
|
||||
pip install pytest-timeout
|
||||
pip install pytest-cov
|
||||
pip install pytest-qt
|
||||
pip install codecov
|
||||
- name: Run Tests
|
||||
run: |
|
||||
export QT_QPA_PLATFORM=offscreen
|
||||
pytest -v --cov=nw --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v1
|
||||
32
.github/workflows/test_win.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
name: Windows (3.9)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, testing, dev ]
|
||||
pull_request:
|
||||
branches: [ main, testing, dev ]
|
||||
|
||||
jobs:
|
||||
testWin38:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- name: Python Setup
|
||||
uses: actions/setup-python@v2
|
||||
with:
|
||||
python-version: 3.9
|
||||
architecture: x64
|
||||
- name: Checkout Source
|
||||
uses: actions/checkout@v2
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
pip install --upgrade pip
|
||||
pip install -r requirements.txt
|
||||
pip install pytest-timeout
|
||||
pip install pytest-cov
|
||||
pip install pytest-qt
|
||||
pip install codecov
|
||||
- name: Run Tests
|
||||
run: |
|
||||
pytest -v --cov=nw --timeout=60
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v1
|
||||
14
.gitignore
vendored
@@ -5,25 +5,37 @@
|
||||
/deploy/
|
||||
*.spec
|
||||
*.egg-info
|
||||
setup.iss
|
||||
novelwriter.desktop
|
||||
i18n/*.qm
|
||||
i18n/*.qph
|
||||
|
||||
# Documentation
|
||||
/docs/build/
|
||||
/docs/source/_*
|
||||
*.qch
|
||||
*.qhc
|
||||
|
||||
# Python Temp
|
||||
__pycache__
|
||||
*.pyc
|
||||
|
||||
# Sample Project
|
||||
/nw/assets/sample.zip
|
||||
/sample/cache
|
||||
/sample/meta
|
||||
*.bak
|
||||
*.lock
|
||||
ToC.txt
|
||||
|
||||
# PyTest
|
||||
/prof/
|
||||
/htmlcov/
|
||||
/tests/temp
|
||||
/tests/lipsum/cache
|
||||
/tests/lipsum/meta
|
||||
/tests/minimal/cache
|
||||
/tests/minimal/meta
|
||||
/tests/oldproj/cache
|
||||
/.pytest_cache
|
||||
/pytestdebug.log
|
||||
|
||||
|
||||
25
.readthedocs.yml
Normal file
@@ -0,0 +1,25 @@
|
||||
# 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
|
||||
32
.travis.yml
@@ -1,32 +0,0 @@
|
||||
os: linux
|
||||
dist: bionic
|
||||
services:
|
||||
- xvfb
|
||||
language: python
|
||||
cache: bundler
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libenchant-dev
|
||||
- python3-pyqt5
|
||||
- python3-pyqt5.qtsvg
|
||||
python:
|
||||
- "3.6"
|
||||
- "3.7"
|
||||
- "3.8"
|
||||
install:
|
||||
- pip install --upgrade pip
|
||||
- pip install -r requirements.txt
|
||||
# - pip install pytest-faulthandler
|
||||
- pip install PyVirtualDisplay==0.2.5
|
||||
- pip install pytest-xvfb
|
||||
- pip install pytest-cov
|
||||
- pip install pytest-qt
|
||||
- pip install codecov
|
||||
script:
|
||||
- python -m pytest --cov=nw -m "project|core|gui" -v
|
||||
after_success:
|
||||
- codecov
|
||||
after_failure:
|
||||
- cat /sys/fs/cgroup/memory/memory.max_usage_in_bytes
|
||||
|
||||
2195
CHANGELOG.md
76
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,76 @@
|
||||
# Contributor Covenant Code of Conduct
|
||||
|
||||
## 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.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
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
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
||||
advances
|
||||
* Trolling, insulting/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
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our 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.
|
||||
|
||||
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.
|
||||
|
||||
## 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.
|
||||
|
||||
## 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.
|
||||
|
||||
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.
|
||||
|
||||
## 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
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
||||
143
CONTRIBUTING.md
Normal file
@@ -0,0 +1,143 @@
|
||||
# Contributing Guide
|
||||
|
||||
When contributing to this repository, please first discuss the change you wish to make via the
|
||||
issue tracker or the discussions page with the owner of this repository 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.
|
||||
|
||||
## Branching Structure
|
||||
|
||||
There are three protected branches on this repository. They are used in the following way:
|
||||
|
||||
* `main` – This is the Stable branch. It is used for releases and subsequent patches. No
|
||||
development code should be merged into this branch starting from version 1.0.
|
||||
* `dev` – This is the Unstable (development) branch. It is where new features are merged, and where
|
||||
pre-releases are taken from.
|
||||
* `testing` – This is the Testing branch. It is populated from the `dev` branch for pre-releases
|
||||
that need a longer testing phase.
|
||||
|
||||
Stable releases and patches will be tagged in the `main` branch, pre-releases may be tagged from
|
||||
either `testing` or `dev` branch.
|
||||
|
||||
### What Branch to Use for Contributions
|
||||
|
||||
* If your contribution is a fix for the latest stable release, branch from the `main` branch.
|
||||
* If your contribution is a fix for the latest testing release, branch from the `testing` branch.
|
||||
* If your contribution is a new feature, branch from the `dev` branch.
|
||||
|
||||
## Pull Request Process
|
||||
|
||||
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. Version numbers are bumped in separate release pull requests
|
||||
by the maintainer.
|
||||
|
||||
## 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.
|
||||
|
||||
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 listed below.
|
||||
|
||||
### Line Length
|
||||
|
||||
For this project, source lines should stay within the 79 and 99 character limits described by PEP8.
|
||||
79 characters is often too restrictive, so 99 character lines 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, not 99. If wrapping can be avoided by going to 99, then that is
|
||||
generally preferrable.
|
||||
|
||||
For text files, the text should also be wrapped at 99 character. The exception is markdown image
|
||||
tags and urls.
|
||||
|
||||
Please do not submit pull requests that re-wrap existing source or text unless this has been
|
||||
discussed beforehand.
|
||||
|
||||
### Linting with `flake8`
|
||||
|
||||
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/).
|
||||
|
||||
The `setup.cfg` file in the root of this project has the following settings for `flake8` that
|
||||
matches the coding standard:
|
||||
```conf
|
||||
[flake8]
|
||||
ignore = E203,E221,E226,E228,E241,E251,E261,E266,E302,E305
|
||||
max-line-length = 99
|
||||
exclude = docs/*
|
||||
```
|
||||
|
||||
The command line equivalent, with reporting, is:
|
||||
```bash
|
||||
flake8 . --count --ignore E203,E221,E226,E228,E241,E251,E261,E266,E302,E305 --max-line-length=99 --show-source --statistics
|
||||
```
|
||||
|
||||
Passing this check is required before contributions 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.
|
||||
|
||||
## Ignored Errors
|
||||
|
||||
Some `flake8` error codes are ignored for this project for various reasons. The source also uses
|
||||
camelCase function and variable names. This is the standard for the Qt libraries novelWriter
|
||||
integrates with. It also happens to be 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, like for instance for Go. 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.
|
||||
|
||||
**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.
|
||||
|
||||
**E228** missing whitespace around modulo operator
|
||||
**Reason:** See reason for E226. Formatting `%` like `/` and `*` should be possible.
|
||||
|
||||
**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 doesn't make much sense.
|
||||
|
||||
**E266:** too many leading ‘#’ for block comment
|
||||
**Reason:** In the source multiple `#`s is sometimes used to indicate importance or heading level,
|
||||
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 see 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`, preferably indented at function
|
||||
level. The end of the function is then clear.
|
||||
@@ -1,3 +1,6 @@
|
||||
include setup.py
|
||||
include LICENSE.md
|
||||
include CHANGELOG.md
|
||||
recursive-include setup *
|
||||
recursive-include nw/assets *
|
||||
recursive-include sample *.nwx *.nwd
|
||||
|
||||
343
README.md
@@ -1,187 +1,240 @@
|
||||
# novelWriter
|
||||
|
||||
[](https://travis-ci.com/vkbo/novelWriter)
|
||||
[](https://codecov.io/gh/vkbo/novelWriter)
|
||||
[](https://novelwriter.readthedocs.io/en/latest/?badge=latest)
|
||||
[/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions)
|
||||
[/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions)
|
||||
[/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions)
|
||||
[/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions)
|
||||
[/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions)
|
||||
[/badge.svg?branch=main)](https://github.com/vkbo/novelWriter/actions)
|
||||
[](https://github.com/vkbo/novelWriter/actions)
|
||||
[](https://codecov.io/gh/vkbo/novelWriter)
|
||||
[](https://novelwriter.readthedocs.io/en/latest/?badge=latest)
|
||||
[](https://github.com/vkbo/novelWriter/releases)
|
||||
[](https://pypi.org/project/novelWriter)
|
||||
[](https://pypi.org/project/novelWriter)
|
||||
|
||||
<img align="left" style="margin: 0 16px 4px 0;" src="assets/icons/96x96/novelwriter.png">
|
||||
novelWriter is a markdown-like text editor designed for writing novels and larger projects of many smaller plain text documents.
|
||||
<img align="left" style="margin: 0 16px 4px 0;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/icons/scaled/icon-novelwriter-96.png">
|
||||
|
||||
novelWriter uses its own flavour of markdown that supports a meta data syntax for comments, synopsis and cross-referencing between files.
|
||||
novelWriter is a Markdown-like 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 between files. It's designed to be a simple
|
||||
text editor that allows for easy organisation of text files and notes, built on plain text files
|
||||
for robustness.
|
||||
|
||||
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.
|
||||
The bundled Typicon-based icon themes are licensed under [CC BY-SA 4.0](http://creativecommons.org/licenses/by-sa/4.0/).
|
||||
The plain text files are suitable for version control software, and also well suited for file
|
||||
synchronisation tools. The core project structure is stored in a single project XML file. Other
|
||||
meta data is primarily saved in JSON files.
|
||||
|
||||
Below is a short overview of the features of novelWriter.
|
||||
The full documentation is available at [novelwriter.readthedocs.io](https://novelwriter.readthedocs.io/).
|
||||
The full documentation is available at
|
||||
[novelwriter.readthedocs.io](https://novelwriter.readthedocs.io).
|
||||
|
||||
### Note
|
||||
## Implementation
|
||||
|
||||
The application is under initial development, and not all planned features are included.
|
||||
The core functionality is, however, in place and has been used for a while by the author and collaborators.
|
||||
The application is written in Python 3 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. The
|
||||
unit tests are run on the latest versions of Ubuntu Linux, Windows Server and macOS.
|
||||
|
||||
New features are being added regularly, until the core toolset is complete.
|
||||
When all planned initial features are in place, a release 1.0 will be made.
|
||||
Until then, novelWriter is in a pre-release alpha state, and should be considered experimental.
|
||||
If you do use it for real projects, please run backups frequently to avoid data losses.
|
||||
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.
|
||||
## Project Contributions
|
||||
|
||||
## Markdown Flavour
|
||||
Contributions to this project are welcome. However, please read the
|
||||
[Contributing Guide](https://github.com/vkbo/novelWriter/blob/main/CONTRIBUTING.md) before
|
||||
submitting larger additions or changes to this project.
|
||||
|
||||
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:
|
||||
# Key Features
|
||||
|
||||
* Headings level 1 to 4 using the `#` syntax only.
|
||||
* Bold, italic and underline text.
|
||||
Some features of novelWriter are listed below. Consult the
|
||||
[documentation](https://novelwriter.readthedocs.io) for more information.
|
||||
|
||||
### Markdown Flavour
|
||||
|
||||
novelWriter is _not_ a full-feature Markdown editor. It is a plain text editor that uses
|
||||
Markdown-like syntax to allow for a minimal set of formatting that is useful for the specific task
|
||||
of writing novels. The formatting is currently limited to:
|
||||
|
||||
* Headings levels 1 to 4 using the `#` syntax only.
|
||||
* Emphasised and strongly emphasised text. These are rendered as italicised and bold text.
|
||||
* 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.
|
||||
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.
|
||||
* 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.
|
||||
* Tabs may be rendered, depending on export format.
|
||||
* If the first word of the comment is `synopsis:`, the comment is indexed and treated as the
|
||||
synopsis for the section of text under the same header. These synopsis comments can be used to
|
||||
build an outline and exported to external documents.
|
||||
* A set of meta data keyword/values starting with the character `@`. This is used for tagging
|
||||
and inter-linking documents, and can also be included when generate a project outline.
|
||||
* A variety of thin and non-breaking spaces are supported. Some of them depend on the system
|
||||
running at least Qt 5.9. Earlier versions of Qt will unfortunately strip them out when saving.
|
||||
* Tabs can be used in the text, and should be properly aligned in both editor and viewer. This can
|
||||
be used to make simple tables and lists. Full Markdown tables and lists are not supported. Note
|
||||
that for HTML exports, most browsers will treat a tab as a space, so it may not show up like
|
||||
expected. Open Document exports should produce the expected result.
|
||||
|
||||
The core export format that should render properly all supported features is the HTML export.
|
||||
This format also forms the basis of conversion to Office type document formats with Pandoc.
|
||||
Note that Pandoc itself strips some formatting from the document during conversion, so the final result may be different than expected.
|
||||
The core export formats of novelWriter are Open Document and HTML5. Open Document is an open
|
||||
standard for office type documents that is supported by most office applications. See
|
||||
[Open Document > Application Support](https://en.wikipedia.org/wiki/OpenDocument#Application_support)
|
||||
for more details.
|
||||
|
||||
## 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.
|
||||
|
||||
The application can be started from the source folder with the command:
|
||||
```
|
||||
./novelWriter.py
|
||||
```
|
||||
|
||||
It also takes a few parameters for debugging and such, which can be listed with the switch `--help`.
|
||||
|
||||
There are no launcher icons yet.
|
||||
Consult your operating system documentation for how to make those.
|
||||
These will be added at some point, and I would appreciate any assistance from people working on Windows and MacOS as I don't use either of those operating systems.
|
||||
|
||||
## Package Dependencies
|
||||
|
||||
It is recommended that novelWriter runs with Qt 5.9 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.
|
||||
|
||||
For the apt package manager on Debian systems, the following Python3 packages are needed:
|
||||
|
||||
* `python3-pyqt5` for the GUI
|
||||
* `python3-pyqt5.qtsvg` may need to be installed separately
|
||||
* `python3-lxml` for writing project files
|
||||
|
||||
These are optional, but recommended:
|
||||
|
||||
* `python3-enchant` for better spell checking
|
||||
|
||||
Alternatively, the packages can be installed with `pip` by running
|
||||
```
|
||||
python3 -m 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:
|
||||
```
|
||||
python3 -m pip install pyqt5
|
||||
python3 -m pip install lxml
|
||||
python3 -m pip install pyenchant
|
||||
```
|
||||
|
||||
PyQt/Qt should be at least 5.2.1, 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.
|
||||
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 [nw/assets/dict/README.md](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
|
||||
|
||||
The text documents of novelWriter use a format similar to markdown, but with a few extensions and a few omissions.
|
||||
Project meta data is stored as XML.
|
||||
You can also export the entire project as a single novelWriter Markdown-flavour document. These can
|
||||
later be imported again into novelWriter. In addition, printing and export to PDF is offered
|
||||
through the Qt library, although with limitations to formatting.
|
||||
|
||||
### 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.
|
||||
|
||||
Note that the dark theme may not render all elements of the GUI as dark colours if you are running an early version of Qt5.
|
||||
This is not due to a bug in novelWriter, but due to the fact that the the styling options in the Qt API in some versions were incomplete.
|
||||
|
||||
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 – if they have been altered.
|
||||
The status of this is indicated by two indicators on the right hand side of the status bar.
|
||||
Unsaved changes are in yellow, and saved is indicated by green in the default theme.
|
||||
Latest word count for the document and project is shown next to these indicators in the status bar.
|
||||
The counts are updated regularly, but not as-you-type.
|
||||
The editor has syntax highlighting for the features it supports, and includes a set of different
|
||||
syntax highlighting themes. Optional GUI themes are also available, including dark themes.
|
||||
|
||||
### 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 structure of the project is shown on the left hand side of the main window. 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 make up the finished novel. Each root
|
||||
folder can have subfolders. Subfolders have no impact on the final project structure, they are
|
||||
there for you to organise your files in whatever way you want.
|
||||
|
||||
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.
|
||||
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.
|
||||
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 track what they contain, but they also have some
|
||||
impact on the format of the exported document. See the
|
||||
[documentation](https://novelwriter.readthedocs.io) for further details.
|
||||
|
||||
#### Project Notes
|
||||
### 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.
|
||||
These have their separate root folders. These are optional files.
|
||||
|
||||
### Visualisation of Story Elements
|
||||
|
||||
The different notes can be assigned tags, which the novel 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.
|
||||
The different notes can be assigned tags, which other files can refer back to using the `@` 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
|
||||
# Installing and Running
|
||||
|
||||
If you want to contribute to novelWriter, please follow the coding convention laid out in the [Style Guide](docs/markdown/style.md).
|
||||
They broadly follow Python PEP8, but there are a few modifications.
|
||||
For install instructions, please check the
|
||||
[Getting Started](https://novelwriter.readthedocs.io/en/latest/int_started.html) section in
|
||||
the [documentation](https://novelwriter.readthedocs.io/).
|
||||
|
||||
## Screenshot
|
||||
## TLDR Instructions
|
||||
|
||||
If you want to run novelWriter directly from the source code, you must run the `novelWriter.py`
|
||||
file from command line. For installations on Linux, macOS or Windows, see below.
|
||||
|
||||
**Note:** You may need to replace `python` with `python3` and `pip` with `pip3` in the instructions
|
||||
below on some systems. You may also want to add the `--user` flag for `pip` to install in your user
|
||||
space only.
|
||||
|
||||
### Install from PyPi
|
||||
|
||||
novelWriter is available on [pypi.org](https://pypi.org/project/novelWriter/), and can be installed
|
||||
with:
|
||||
```bash
|
||||
pip install novelwriter
|
||||
```
|
||||
Dependencies should be installed automatically, but can also be installed directly with:
|
||||
```bash
|
||||
pip install pyqt5 lxml pyenchant
|
||||
```
|
||||
When installing via pip, novelWriter can be launched from command line with:
|
||||
```bash
|
||||
novelWriter
|
||||
```
|
||||
|
||||
Make sure the install location for pip is in your PATH variable. This is not always the case by
|
||||
default.
|
||||
|
||||
### Setup on Linux
|
||||
|
||||
If you're installing from source, the following commands will set up novelWriter on Linux:
|
||||
```bash
|
||||
pip install -r requirements.txt
|
||||
python setup.py install
|
||||
python setup.py xdg-install
|
||||
```
|
||||
|
||||
This should make novelWriter available as a regular application on your system, with a launceher
|
||||
icon, and file association with novelWriter project files.
|
||||
|
||||
**Note:** If you don't want to install the dependencies from pip and instead use your distro's own
|
||||
packages, you must manually install `python3-pyqt5`, `python3-lxml` and `python3-enchant`
|
||||
(Debian/Ubuntu), or the corresponding packages for your distro.
|
||||
|
||||
### Setup on macOS
|
||||
|
||||
If you're installing from source, the following commands will set up novelWriter on macOS:
|
||||
```bash
|
||||
brew install enchant
|
||||
pip3 install --user -r requirements.txt
|
||||
pip3 install --user pyobjc
|
||||
python3 setup.py install
|
||||
```
|
||||
|
||||
At present, novelWriter isn't further integrated into the OS, so you must launch it from command
|
||||
line with:
|
||||
```bash
|
||||
novelWriter
|
||||
```
|
||||
|
||||
If you want to help improve the setup process on macOS, it would be much appreciated.
|
||||
|
||||
### Setup on Windows
|
||||
|
||||
For Windows, first ensure that you have Python installed. If not, get it from
|
||||
[python.org/downloads](https://www.python.org/downloads/). Remember to select "Add Python to PATH"
|
||||
during the installation, otherwise novelWriter will not start.
|
||||
|
||||
Then, download the `novelWriter-x.y.z-minimal-win.zip` file, where `x.y.z` is the version number,
|
||||
from the [releases](https://github.com/vkbo/novelWriter/releases) page. You can extract it to
|
||||
wherever you want to keep novelWriter on your PC, and run the `setup_windows.bat` file in it
|
||||
(double-clicking it should work). This will install the necessary dependencies from
|
||||
[pypi.org](https://pypi.org/) and create desktop and start menu icons.
|
||||
|
||||
## Debugging
|
||||
|
||||
If you need to debug novelWriter, you must run it from command line. It takes a few parameters,
|
||||
which can be listed with the switch `--help`. The `--info`, `--debug` or `--verbose` flags are
|
||||
particularly useful for increasing logging output for debugging.
|
||||
|
||||
# Licenses
|
||||
|
||||
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](https://github.com/vkbo/novelWriter/blob/main/LICENSE.md) file.
|
||||
|
||||
Bundled assets have the following licenses:
|
||||
|
||||
* The Typicons-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).
|
||||
|
||||
# Screenshot
|
||||
|
||||
**novelWriter with default system theme:**
|
||||

|
||||

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

|
||||

|
||||
|
||||
|
Before Width: | Height: | Size: 115 KiB |
@@ -1,28 +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
|
||||
|
||||
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/1024x1024/novelwriter.png /usr/share/icons/hicolor/1024x1024/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,21 +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
|
||||
|
||||
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/1024x1024/novelwriter.png /usr/share/icons/hicolor/1024x1024/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/*
|
||||
@@ -3,12 +3,14 @@ codecov:
|
||||
|
||||
coverage:
|
||||
precision: 2
|
||||
round: down
|
||||
range: "70...100"
|
||||
round: nearest
|
||||
range: "70...95"
|
||||
|
||||
status:
|
||||
project: yes
|
||||
patch: yes
|
||||
project:
|
||||
default:
|
||||
threshold: 1%
|
||||
patch: no
|
||||
changes: no
|
||||
|
||||
parsers:
|
||||
@@ -18,5 +20,3 @@ parsers:
|
||||
loop: yes
|
||||
method: no
|
||||
macro: no
|
||||
|
||||
comment: false
|
||||
@@ -1,24 +0,0 @@
|
||||
# Code Style Guide
|
||||
|
||||
The source code of novelWriter broadly follows the style guide [PEP8](https://www.python.org/dev/peps/pep-0008/), but with a few modifications and exceptions.
|
||||
|
||||
### Source Code Exceptions
|
||||
|
||||
* Methods are camelCase, not underscore based.
|
||||
The reason is partially because of the maintainers personal preference, and partially because that is what Qt5 and PyQt5 uses.
|
||||
The maintainer generally, across multiple programming languages, uses underscores for defining namespaces.
|
||||
* The maximum length of a code line is 99 characters, not 79.
|
||||
The reason for this is that novelWriter is almost entirely made up of classes, meaning nearly all lines of code already have 8 leading spaces.
|
||||
A 79 character limitation is too strict, and causes too many wrapped lines.
|
||||
99 characters is suitable for GitHub diff readability, and therefore the preferred limit.
|
||||
It is also permitted under PEP8 as the maximum.
|
||||
Comments and docstrings should comply with the 72 character limit.
|
||||
* Aligning code with additional spaces is acceptable in those cases where it improves readability.
|
||||
Otherwise, the PEP8 standard should be applied.
|
||||
|
||||
### Documentation
|
||||
|
||||
The documentation does not adhere to the 80 character limit either.
|
||||
The standard used in documentation is one line break after each sentence.
|
||||
This is an alternative style that greatly improves readability of diffs as re-wrapping text is not needed when inserting new text in paragraphs.
|
||||
Instead, the diff will show changes to each sentence.
|
||||
27
docs/source/_static/css/custom.css
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
* 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;
|
||||
}
|
||||
|
||||
pre span.go {
|
||||
color: #333333 !important;
|
||||
}
|
||||
@@ -12,96 +12,74 @@
|
||||
# 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
|
||||
import time
|
||||
import sphinx_rtd_theme # noqa: F401
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = "novelWriter"
|
||||
copyright = "2018-2020, Veronica Berglyd Olsen"
|
||||
copyright = "2018–2021, Veronica Berglyd Olsen"
|
||||
author = "Veronica Berglyd Olsen"
|
||||
|
||||
# The short X.Y version
|
||||
version = "0.7.0"
|
||||
version = "1.2"
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = "0.7.0"
|
||||
release = "1.2"
|
||||
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
# If your documentation needs a minimal Sphinx version, state it here.
|
||||
#
|
||||
os.environ["TZ"] = "Europe/Oslo"
|
||||
time.tzset()
|
||||
|
||||
# needs_sphinx = "1.0"
|
||||
|
||||
# Add any Sphinx extension module names here, as strings. They can be
|
||||
# extensions coming with Sphinx (named "sphinx.ext.*") or your custom
|
||||
# ones.
|
||||
extensions = [
|
||||
"sphinx_rtd_theme",
|
||||
]
|
||||
|
||||
# Add any paths that contain templates here, relative to this directory.
|
||||
templates_path = ["_templates"]
|
||||
|
||||
# The suffix(es) of source filenames.
|
||||
# You can specify multiple suffix as a list of string:
|
||||
#
|
||||
# source_suffix = [".rst", ".md"]
|
||||
source_suffix = ".rst"
|
||||
|
||||
# The master toctree document.
|
||||
master_doc = "index"
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
today_fmt = "%A, %d %B %Y at %H:%M"
|
||||
language = None
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
# This pattern also affects html_static_path and html_extra_path.
|
||||
exclude_patterns = []
|
||||
|
||||
# The name of the Pygments (syntax highlighting) style to use.
|
||||
pygments_style = None
|
||||
|
||||
|
||||
# -- Options for HTML output -------------------------------------------------
|
||||
|
||||
# The theme to use for HTML and HTML Help pages. See the documentation for
|
||||
# a list of builtin themes.
|
||||
#
|
||||
html_theme = "default"
|
||||
html_theme = "sphinx_rtd_theme"
|
||||
html_logo = "images/novelwriter.png"
|
||||
html_theme_options = {
|
||||
# Toc options
|
||||
"collapse_navigation": True,
|
||||
"sticky_navigation": True,
|
||||
"navigation_depth": 3,
|
||||
"includehidden": True,
|
||||
"titles_only": False,
|
||||
"logo_only": True,
|
||||
}
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
#
|
||||
# html_theme_options = {}
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
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"
|
||||
htmlhelp_basename = "novelWriterDoc"
|
||||
|
||||
|
||||
# -- Options for LaTeX output ------------------------------------------------
|
||||
@@ -127,20 +105,19 @@ latex_elements = {
|
||||
# Grouping the document tree into LaTeX files. List of tuples
|
||||
# (source start file, target name, title,
|
||||
# author, documentclass [howto, manual, or own class]).
|
||||
latex_documents = [
|
||||
(master_doc, "novelWriter.tex", "novelWriter Documentation",
|
||||
"Veronica Berglyd Olsen", "manual"),
|
||||
]
|
||||
latex_documents = [(
|
||||
master_doc, "novelWriter.tex", "novelWriter Documentation",
|
||||
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)
|
||||
]
|
||||
man_pages = [(
|
||||
master_doc, "novelwriter", "novelWriter Documentation", [author], 1
|
||||
)]
|
||||
|
||||
|
||||
# -- Options for Texinfo output ----------------------------------------------
|
||||
@@ -148,11 +125,10 @@ man_pages = [
|
||||
# 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"),
|
||||
]
|
||||
texinfo_documents = [(
|
||||
master_doc, "novelWriter", "novelWriter Documentation", author,
|
||||
"novelWriter", "Markdown-like editor for novels.", "Miscellaneous"
|
||||
)]
|
||||
|
||||
|
||||
# -- Options for Epub output -------------------------------------------------
|
||||
@@ -162,11 +138,9 @@ 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.
|
||||
|
||||
@@ -1,112 +0,0 @@
|
||||
##################
|
||||
Exporting Projects
|
||||
##################
|
||||
|
||||
The novelWriter project can be exported in various formats using the build tool available from :menuselection:`Project --> Build Project` or by pressing :kbd:`F5`.
|
||||
|
||||
*****************
|
||||
Header Formatting
|
||||
*****************
|
||||
|
||||
The titles for the four levels of story structure can be formatted collectively in the export tool.
|
||||
This is done through a series of keyword–replace steps.
|
||||
|
||||
The keyword ``%title%`` will always be replaced by the text you put after the ``#`` characters in your document.
|
||||
|
||||
The keywords ``%ch%`` and ``%chw%`` is replaced by a number, or a number word, respectively.
|
||||
The number is incremented by one each time the build tool sees a new heading of level two in a file with layout "Chapter".
|
||||
If the file has layout "Unnumbered", the counter is *not* incremented.
|
||||
The latter is useful for for instance Prologue and Epilogue chapters.
|
||||
|
||||
Likewise, the keywords ``%sc%`` and ``%sca%`` are number counters for scene files.
|
||||
These are incremented each time a heading of level three is encountered.
|
||||
The former keyword is reset to one for each new chapter, while the latter is not reset but counts from first scene encountered in the project.
|
||||
|
||||
If you want to insert a line break in your title format, add two backslashes ``\\``.
|
||||
|
||||
.. note::
|
||||
Header formatting only applies to novel files.
|
||||
Headings in note files will will be left as-is, but heading levels 1 through 4 are converted to the correct heading level in the respective output formats.
|
||||
|
||||
****************
|
||||
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.
|
||||
|
||||
**************
|
||||
File Selection
|
||||
**************
|
||||
|
||||
Which files are selected for export can be controlled from the options on the left side of the dialog window.
|
||||
The switch for "Include novel files" will select any file that isn't classified as a note.
|
||||
That is, files with layout "Book", "Page", "Partition", "Chapet", "Unnumbered", or "Scene".
|
||||
The switch for "Include note files" will select any file that is a note.
|
||||
That is, files with layout "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.
|
||||
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 build, but don't want to delete, you can uncheck the "Include when building project" option for each file in the project tree.
|
||||
An included file has a checkmark after the status icon in the "Flags" column.
|
||||
The "Build Novel Project" tool has a switch to ignore this flag if you need to collectively override these settings.
|
||||
|
||||
**************
|
||||
Export Formats
|
||||
**************
|
||||
|
||||
Currently, six formats are supported for exporting.
|
||||
|
||||
OpenDocument Format
|
||||
===================
|
||||
|
||||
This is 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 in your office word processor.
|
||||
|
||||
PDF Format
|
||||
==========
|
||||
|
||||
The PDF export is just a shortcut for print to file.
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
*************************
|
||||
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 lst as well, with one entry per line.
|
||||
|
||||
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/images/novelwriter.png
Normal file
|
After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 255 KiB After Width: | Height: | Size: 423 KiB |
|
Before Width: | Height: | Size: 256 KiB After Width: | Height: | Size: 431 KiB |
@@ -1,24 +1,92 @@
|
||||
####################################
|
||||
Welcome to novelWriter Documentation
|
||||
####################################
|
||||
#####################
|
||||
novelWriter |release|
|
||||
#####################
|
||||
|
||||
This is the documentation for novelWriter |version|.
|
||||
.. image:: https://github.com/vkbo/novelWriter/workflows/python%203.8/badge.svg?branch=main
|
||||
:target: https://github.com/vkbo/novelWriter/actions
|
||||
:alt: Python Tests
|
||||
|
||||
.. image:: https://codecov.io/gh/vkbo/novelWriter/branch/main/graph/badge.svg
|
||||
:target: https://codecov.io/gh/vkbo/novelWriter
|
||||
:alt: Code Coverage
|
||||
|
||||
.. image:: https://readthedocs.org/projects/novelwriter/badge/?version=latest
|
||||
:target: https://novelwriter.readthedocs.io/en/latest/?badge=latest
|
||||
:alt: Documentation
|
||||
|
||||
.. 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 documents. The idea is to have a simple text
|
||||
editor which allows for easy organisation of text documents 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 single project XML file. Other
|
||||
meta data is primarily saved as JSON files.
|
||||
|
||||
Any operating system that can run Python 3 and has the Qt 5 libraries should be able to run
|
||||
novelWriter. It runs fine on Linux, Windows and macOS, and users have tested it on other platforms
|
||||
too. novelWriter can be run directly from the Python source, or installed from the pip tool or via
|
||||
the provided setup script. See :ref:`a_started`, or one or the setup instructions for your
|
||||
operating system for further details.
|
||||
|
||||
**Useful Links**
|
||||
|
||||
* Website: https://novelwriter.io
|
||||
* Documentation: https://novelwriter.readthedocs.io
|
||||
* 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
|
||||
|
||||
**Contents**
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Introduction
|
||||
|
||||
introduction
|
||||
started
|
||||
interface
|
||||
projects
|
||||
structure
|
||||
notes
|
||||
export
|
||||
technical
|
||||
int_introduction
|
||||
int_started
|
||||
setup_linux
|
||||
setup_mac
|
||||
setup_windows
|
||||
|
||||
**Indices and Tables**
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Usage
|
||||
|
||||
usage_interface
|
||||
usage_projects
|
||||
usage_structure
|
||||
usage_notes
|
||||
usage_export
|
||||
usage_typography
|
||||
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 2
|
||||
:caption: Under the Hood
|
||||
|
||||
tech_technical
|
||||
|
||||
|
||||
Indices and Tables
|
||||
==================
|
||||
|
||||
* :ref:`genindex`
|
||||
* :ref:`modindex`
|
||||
|
||||
131
docs/source/int_introduction.rst
Normal file
@@ -0,0 +1,131 @@
|
||||
.. _a_intro:
|
||||
|
||||
************
|
||||
Introduction
|
||||
************
|
||||
|
||||
novelWriter is a simple, multi-document plain text editor using a modified markdown syntax to apply
|
||||
simple formatting to the text. 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 in :ref:`a_struct`.
|
||||
|
||||
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 referred to as "root" folders, and each entry can be tagged and cross-referenced from
|
||||
within the novel documents and notes. These tags make it possible to inter-link documents, and
|
||||
generate an overview of the entire novel project and how the various documents and plot elements
|
||||
are interconnected. The tag and reference syntax is covered in :ref:`a_proj` and :ref:`a_notes`.
|
||||
|
||||
These additional features are not standard in markdown, but are available through special meta
|
||||
keywords described in :ref:`a_struct_tags`. Syntax highlighting is provided to make it easier to
|
||||
verify that the markdown tags are used correctly.
|
||||
|
||||
An overview of the supported markdown syntax is covered in :ref:`a_ui`.
|
||||
|
||||
|
||||
.. _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 structures and objects often needed for such documents.
|
||||
Formatting is limited to headers, and bold, italicised and strikethrough text.
|
||||
|
||||
.. tip::
|
||||
If you do need to align information in rows and columns in your notes, you can achieve this with
|
||||
tabs and hard line breaks. The tab stop width can be specified in :guilabel:`Preferences` and
|
||||
hard line breaks can be inserted by adding to spaces at the end of the line.
|
||||
|
||||
The main window does not have a toolbar like many 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 so you don't have to look up the syntax every time until you've
|
||||
memorised it. A full list of shortcuts can be found in the :ref:`a_ui_shortcuts` section.
|
||||
|
||||
In addition, novelWriter has 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,
|
||||
other light and dark themes are 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 Typicons_ icon set designed by Stephen Hutchings.
|
||||
|
||||
The main window is split in two, or optionally three, panels. The left-most panel contains the
|
||||
project tree and all the documents in your project. The second panel is the document editor, and
|
||||
the optional third panel is a document viewer which can view any document in your project
|
||||
independently of the document editor. It is not intended as a preview window, although you can use
|
||||
it for this, but for viewing your notes next to your editor while you're writing.
|
||||
|
||||
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 documents, this outline can be quite different from your project tree.
|
||||
Your project tree lists individual documents, your Outline tree lists the structure of the novel
|
||||
itself in terms of partitions, chapters and scenes as it appears in the text of the documents.
|
||||
|
||||
.. _Typicons: https://github.com/stephenhutchings/typicons.font
|
||||
|
||||
|
||||
.. _a_intro_project:
|
||||
|
||||
Project Layout
|
||||
==============
|
||||
|
||||
You are free to organise your project documents as you wish into subfolders, and split the text
|
||||
between documents in whatever way suits you. All that matters to novelWriter is the linear order
|
||||
the documents appear at in the project tree (top to bottom). The chapters, scenes and sections of
|
||||
the novel are determined by the headings within those documents.
|
||||
|
||||
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 documents. For the project notes,
|
||||
the header levels have no structural meaning, and the user is free to do whatever they want. See
|
||||
:ref:`a_struct` and :ref:`a_notes` for more details.
|
||||
|
||||
|
||||
.. _a_intro_export:
|
||||
|
||||
Project Export
|
||||
==============
|
||||
|
||||
The project can at any time be exported to a range of different formats through the
|
||||
:guilabel:`Build Novel Project` tool. Natively, novelWriter supports export to Open Document,
|
||||
HTML5, and various flavours of Markdown.
|
||||
|
||||
The HTML5 export format is suitable for conversion by a number of other tools like Pandoc, or for
|
||||
importing into word processors if the Open Document format isn't suitable. In addition, printing
|
||||
and printing to PDF is also possible.
|
||||
|
||||
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 :ref:`a_export` for more details on export features and formats.
|
||||
|
||||
|
||||
.. _a_intro_screenshots:
|
||||
|
||||
Screenshots
|
||||
===========
|
||||
|
||||
**novelWriter with default system theme:**
|
||||
|
||||
.. image:: images/screenshot_default.png
|
||||
:width: 800
|
||||
|
||||
**novelWriter with dark theme:**
|
||||
|
||||
.. image:: images/screenshot_dark.png
|
||||
:width: 800
|
||||
144
docs/source/int_started.rst
Normal file
@@ -0,0 +1,144 @@
|
||||
.. _a_started:
|
||||
|
||||
***************
|
||||
Getting Started
|
||||
***************
|
||||
|
||||
.. _main website: https://novelwriter.io
|
||||
.. _GitHub: https://github.com/vkbo/novelWriter/releases
|
||||
.. _PyPi: https://pypi.org/project/novelWriter/
|
||||
|
||||
This section contains brief guides 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 the developer. No installers are provided at this
|
||||
time, but it is fairly straightforward to set up novelWriter with the provided install scripts.
|
||||
|
||||
As novelWriter matures, more options for how to install it and get it running will be added. For
|
||||
non-Windows users the install process is at the present time best suited for people used to working
|
||||
with the command line. But even if you're not, the install process is fairly straightforward.
|
||||
|
||||
The next pages have specific install instructions for the various operating systems novelWriter can
|
||||
run on. The instructions below are supplementary information, instructions for alterbative methods,
|
||||
and additional build options.
|
||||
|
||||
.. note::
|
||||
The text below assumes the command ``python`` corresponds to a Python 3 executable. Python 2 is
|
||||
now deprecated, but many systems still have both Python 2 and 3. For such systems, the command
|
||||
``python3`` may be needed instead. On Linux, the scripts can also be made executable and run
|
||||
without the ``python`` command. Likewise, ``pip`` may need to be replaced with ``pip3``.
|
||||
|
||||
|
||||
.. _a_started_depend:
|
||||
|
||||
Dependencies
|
||||
============
|
||||
|
||||
novelWriter has been designed to rely on as few dependencies as possible. Aside from the packages
|
||||
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.
|
||||
|
||||
The following Python packages are needed to run novelWriter:
|
||||
|
||||
* ``pyqt5`` – needed for connecting with the Qt5 libraries.
|
||||
* ``lxml`` – needed for full XML support.
|
||||
* ``pyenchant`` – needed for efficient spell checking (optional).
|
||||
|
||||
PyQt/Qt should be at least 5.3, but ideally 5.10 or higher for nearly all features to work. For
|
||||
instance, searching using regular expressions with full Unicode support requires 5.13. There is 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.
|
||||
|
||||
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 slower and less
|
||||
sophisticated spell checker than the full spell checking libaries. The spell check library must be
|
||||
at least 3.0 to work with Windows. On Linux, 2.0 also works fine.
|
||||
|
||||
If you install from PyPi, these dependencies should be installed automatically. If you install from
|
||||
source, dependencies can still be installed from PyPi with:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip install -r requirements.txt
|
||||
|
||||
|
||||
.. _a_started_install:
|
||||
|
||||
Installing via PyPi
|
||||
===================
|
||||
|
||||
The application is written in Python 3 using Qt5 via PyQt5. It is developed on Linux, but it should
|
||||
in principle work fine on other operating systems as long as dependencies are met.
|
||||
|
||||
You can download the latest version of novelWriter from the source repository on GitHub_.
|
||||
novelWriter is also hosted on PyPi_, and can be installed on all operating systems that support Qt5
|
||||
and Python 3. It is regularly tested on Linux, Windows and macOS. The latest version of novelWriter
|
||||
is |release|.
|
||||
|
||||
To install from PyPi you must first have the ``python`` and ``pip`` commands available on your
|
||||
system. If you don't, see specific instructions for your operating system in this documentation.
|
||||
To install novelWriter from PyPi, use the following command:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip install novelwriter
|
||||
|
||||
To upgrade an existing installation, use:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip install --upgrade novelwriter
|
||||
|
||||
When installing via pip, novelWriter can be launched from command line with:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
novelWriter
|
||||
|
||||
Make sure the install location for pip is in your PATH variable. This is not always the case by
|
||||
default.
|
||||
|
||||
|
||||
.. _a_started_docs:
|
||||
|
||||
Building the Documentation
|
||||
==========================
|
||||
|
||||
If you installed novelWriter from a package, the documentation should be bre-built and 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
|
||||
|
||||
The documentation can then be built from the ``docs`` folder in the source code by running:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
make html
|
||||
|
||||
If successful, the documentation should be available in the ``docs/build/html`` folder and you can
|
||||
open the ``index.html`` file in your browser.
|
||||
|
||||
The documentation can also be built for the Qt Assistant. To build the help packages from the
|
||||
documentation source, run the following from the root source folder:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
python setup.py qthelp
|
||||
|
||||
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.
|
||||
@@ -1,171 +0,0 @@
|
||||
***************
|
||||
User Interface
|
||||
***************
|
||||
|
||||
The user interface is kept as simple as possible to avoid distractions when writing.
|
||||
The main window contains a tree view pane with the entire structure of the project, and a small details panel below it to display additional information about the currently selected item.
|
||||
|
||||
Edit View
|
||||
=========
|
||||
|
||||
Editing a document can be done by either double-clicking on it, or hitting the return key when a file is selected.
|
||||
This will open the document editor, which uses a simplified markdown format, described in the section below.
|
||||
|
||||
The document currently being edited can also be viewed in parallel in a right hand side view pane.
|
||||
To view a document, simply press :kbd:`Ctrl-R`, or select a file and go to :menuselection:`Document --> View Document` in the menu.
|
||||
The document viewed does not need to be the same document currently being edited.
|
||||
If you are viewing the same document as the one you're editing, pressing :kbd:`Ctrl-R` again will update the document with your last changes.
|
||||
|
||||
References to tags can be opened in the view pane from the document editor by moving the cursor to a reference to a tag and hitting :kbd:`Ctrl-Enter`.
|
||||
In the view panel, the references become clickable links, and the "Referenced By" panel at the bottom will show links to all documents referring back to it.
|
||||
|
||||
.. note::
|
||||
The "Referenced By" panel relies on an up-to-date index of the project.
|
||||
If anything is missing, or seems wrong, the index can always be rebuilt from :menuselection:`Tools --> Rebuild Index` or by pressing :kbd:`F9`.
|
||||
|
||||
Both the document editor and the viewer will show the label of the document as set in the Project Tree.
|
||||
Optionally, the full project path to the file can be shown.
|
||||
This can be set the Preferences.
|
||||
|
||||
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.
|
||||
|
||||
Markdown Format
|
||||
===============
|
||||
|
||||
The document editor uses a simplified markdown format.
|
||||
That is, it supports basic formatting like bold, italics and underline, as well as four levels of headings.
|
||||
The formats are listed below.
|
||||
|
||||
In addition to these standard markdown features, the editor also allows for comments, that is text that is ignored by the word counter and not exported or, optionally, hidden in the document viewer.
|
||||
If the first word of a comment is "Synopsis:" (with the colon), the comment is treated specially, and will show up in the Outline View.
|
||||
The editor also has a minimal set of keywords used for setting tags and references between files.
|
||||
|
||||
.. csv-table:: Formatting Syntax
|
||||
:header: "Format", "Description"
|
||||
:widths: 15, 50
|
||||
|
||||
"``# Title``", "Heading level one. The space after the # is mandatory."
|
||||
"``## Title``", "Heading level two. The space after the # is mandatory."
|
||||
"``### Title``", "Heading level three. The space after the # is mandatory."
|
||||
"``#### Title``", "Heading level four. The space after the # is mandatory."
|
||||
"``**text**``", "The text is rendered as bold text."
|
||||
"``_text_``", "The text is rendered as italicized text."
|
||||
"``__text__``", "The text is rendered as underlined text."
|
||||
"``% text...``", "A comment. The text is not exported by default, seen in viewer, or counted towards word counts."
|
||||
"``% Synopsis: text...``", "A synopsis comment. Shows up in the Synopsis column of the Outline View, but is otherwise treated as a comment."
|
||||
"``@keyword: value``", "A keyword argument followed by a value, or a comma separated list of values."
|
||||
|
||||
The editor and viewer also supports markdown standard hard line breaks, and preserves non-breaking spaces.
|
||||
A hard line break is achieved by leaving two or more spaces at the end of the line.
|
||||
Alternatively, the user can press :kbd:`Shift-Enter` to insert this.
|
||||
A non-breaking space is inserted with :kbd:`Shift-Space`.
|
||||
|
||||
Both hard line breaks and non-breaking spaces are highlighted by the syntax highlighter as an alternate coloured background, depending on the selected theme.
|
||||
|
||||
Project Outline View
|
||||
====================
|
||||
|
||||
The Project Outline View is available as the second tab on the right hand side of the main window marked "Outline".
|
||||
The Outline View 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.
|
||||
|
||||
Various meta data and information extracted from tags can be displayed in columns in the Outline View.
|
||||
To turn on or off specific columns, right click the header and select the columns you want to show.
|
||||
The order of the columns can be rearranged by dragging them to a different position.
|
||||
|
||||
.. note::
|
||||
The "Title" columns cannot be disabled or moved.
|
||||
|
||||
The information viewed in teh Outline View is based on the Project 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`.
|
||||
|
||||
The Outline View itself can be regenerated by pressing :kbd:`F10`.
|
||||
You can also enable automatic updating in the :menuselection:`Tools` menu, which will trigger an update whenever the index is updated.
|
||||
You may want to disable this feature if your project is very large,
|
||||
|
||||
Synopsis Feature
|
||||
================
|
||||
|
||||
The "Synopsis" column of the Outline View takes its information from a specially formatted comment.
|
||||
In order to flag a comment as a Synopsis, add the word "Synopsis:" as the first word of the comment.
|
||||
The ";" is required, and "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, the last one will be used.
|
||||
|
||||
Keyboard Shortcuts
|
||||
==================
|
||||
|
||||
Most features are available as keyboard shortcuts.
|
||||
These are as following:
|
||||
|
||||
.. csv-table:: Keyboard Shortcuts
|
||||
:header: "Shortcut", "Description"
|
||||
:widths: 15, 50
|
||||
|
||||
":kbd:`Alt-1`", "Switch focus to tree view pane."
|
||||
":kbd:`Alt-2`", "Switch focus to document editor pane."
|
||||
":kbd:`Alt-3`", "Switch focus to document viewer pane."
|
||||
":kbd:`Ctrl-.`", "Correct word under cursor."
|
||||
":kbd:`Ctrl-,`", "Open the Preferences dialog."
|
||||
":kbd:`Ctrl-/`", "Change block format to comment."
|
||||
":kbd:`Ctrl-0`", "Remove block formatting for block under cursor."
|
||||
":kbd:`Ctrl-1`", "Change block format to header level 1."
|
||||
":kbd:`Ctrl-2`", "Change block format to header level 2."
|
||||
":kbd:`Ctrl-3`", "Change block format to header level 3."
|
||||
":kbd:`Ctrl-4`", "Change block format to header level 4."
|
||||
":kbd:`Ctrl-A`", "Select all text in document."
|
||||
":kbd:`Ctrl-B`", "Format selected text, or word under cursor, as bold."
|
||||
":kbd:`Ctrl-C`", "Copy selected text to clipboard."
|
||||
":kbd:`Ctrl-D`", "Wrap selected text, or word under cursor, in double quotes."
|
||||
":kbd:`Ctrl-E`", "If in tree view, edit a document or folder settings. (Same as :kbd:`F2`)"
|
||||
":kbd:`Ctrl-F`", "Open the search bar and search for selected word, if any is selected."
|
||||
":kbd:`Ctrl-G`", "Find next occurrence of word in current document. (Same as :kbd:`F3`)"
|
||||
":kbd:`Ctrl-H`", "Open the search and replace bar and search for selected word, if any is selected. (On Mac, this is :kbd:`Cmd+=`)"
|
||||
":kbd:`Ctrl-I`", "Format selected text, or word under cursor, as italic."
|
||||
":kbd:`Ctrl-N`", "Create new document."
|
||||
":kbd:`Ctrl-O`", "Open selected document."
|
||||
":kbd:`Ctrl-Q`", "Exit novelWriter."
|
||||
":kbd:`Ctrl-R`", "If in tree view, open a document for viewing. If editor pane has focus, open current document for viewing."
|
||||
":kbd:`Ctrl-S`", "Save the current document in the editor."
|
||||
":kbd:`Ctrl-U`", "Format selected text, or word under cursor, as underline."
|
||||
":kbd:`Ctrl-V`", "Paste text from clipboard to cursor position."
|
||||
":kbd:`Ctrl-W`", "Close the current document in the editor."
|
||||
":kbd:`Ctrl-X`", "Cut selected text to clipboard."
|
||||
":kbd:`Ctrl-Y`", "Redo latest undo."
|
||||
":kbd:`Ctrl-Z`", "Undo latest changes."
|
||||
":kbd:`Ctrl-F7`", "Toggle spell checking."
|
||||
":kbd:`Ctrl-F10`", "Toggle automatic updating of project outline."
|
||||
":kbd:`Ctrl-Del`", "If in tree view, move a document to trash, or delete a folder."
|
||||
":kbd:`Ctrl-Enter`", "Open the tag or reference under the cursor in the view panel."
|
||||
":kbd:`Ctrl-Shift-,`", "Open the Project Settings dialog."
|
||||
":kbd:`Ctrl-Shift-/`", "Remove block formatting for block under cursor."
|
||||
":kbd:`Ctrl-Shift-1`", "Replace occurrence of word in current document, and search for next occurrence."
|
||||
":kbd:`Ctrl-Shift-A`", "Select all text in current paragraph."
|
||||
":kbd:`Ctrl-Shift-D`", "Wrap selected text, or word under cursor, in single quotes."
|
||||
":kbd:`Ctrl-Shift-G`", "Find previous occurrence of word in current document. (Same as :kbd:`Shift-F3`"
|
||||
":kbd:`Ctrl-Shift-I`", "Import text to the current document from a text file."
|
||||
":kbd:`Ctrl-Shift-N`", "Create new folder."
|
||||
":kbd:`Ctrl-Shift-O`", "Open a project."
|
||||
":kbd:`Ctrl-Shift-R`", "Close the document view pane."
|
||||
":kbd:`Ctrl-Shift-S`", "Save the current project."
|
||||
":kbd:`Ctrl-Shift-W`", "Close the current project."
|
||||
":kbd:`Ctrl-Shift-Up`", "Move item one step up in the tree view."
|
||||
":kbd:`Ctrl-Shift-Down`", "Move item one step down in the tree view."
|
||||
":kbd:`F1`", "Open documentation. This just tries to send the documentation URL ti your browser."
|
||||
":kbd:`F2`", "If in tree view, edit a document or folder settings. (Same as :kbd:`Ctrl-E`)"
|
||||
":kbd:`F3`", "Find next occurrence of word in current document. (Same as :kbd:`Ctrl-G`)"
|
||||
":kbd:`F5`", "Open the Build Novel Project dialog."
|
||||
":kbd:`F7`", "Re-run spell checker."
|
||||
":kbd:`F8`", "Activate Zen Mode, hiding project tree and view panel."
|
||||
":kbd:`F9`", "Re-build project index."
|
||||
":kbd:`F10`", "Re-build project outline."
|
||||
":kbd:`F11`", "Activate full screen mode."
|
||||
":kbd:`Shift-Enter`", "Insert a hard line break at the cursor position."
|
||||
":kbd:`Shift-F3`", "Find previous occurrence of word in current document. (Same as :kbd:`Ctrl-Shift-G`"
|
||||
":kbd:`Shift-Space`", "Insert a non-breaking space at the cursor position."
|
||||
":kbd:`Enter`", "If in tree view, open a document for editing."
|
||||
|
||||
.. note::
|
||||
On macOS, replace :kbd:`Ctrl` with :kbd:`Cmd`.
|
||||
@@ -1,55 +0,0 @@
|
||||
************
|
||||
Introduction
|
||||
************
|
||||
|
||||
novelWriter is a simple, multi-document plain text editor using a modified markdown syntax to apply simple formatting.
|
||||
Additional features that are not standard markdown are available through special meta data keywords.
|
||||
These keywords make it possible to inter-link documents, and generate an overview of the entire novel project and how the various files are interconnected.
|
||||
|
||||
Design Philosophy
|
||||
-----------------
|
||||
|
||||
The user interface 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 its formatting is limited to headers, and bold, italicised and underlined text.
|
||||
|
||||
Most features are accessible through the menu and through keyboard shortcuts.
|
||||
The colour scheme of the user interface can be modified with various themes, and new themes are fairly straight forward to add.
|
||||
|
||||
The project itself is laid out in a tree view on the left hand side of the main window.
|
||||
It has various sections, called *root folders*, for the various types of supporting files that the user may want to add to the project.
|
||||
The novel itself lives under its own root folder.
|
||||
|
||||
Project Layout
|
||||
--------------
|
||||
|
||||
The layout of the novel itself is managed through the four supported heading levels, H1 through H4.
|
||||
H1 is used for the book title, and for partitions.
|
||||
H2 is used for chapter tiles.
|
||||
H3 is reserved for scene titles.
|
||||
H4 is for section titles within scenes, if such granularity is necessary.
|
||||
|
||||
For the files designated as project notes, the usage of headers imply no structural meaning, and the user is free to do whatever they want.
|
||||
|
||||
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 and similar.
|
||||
|
||||
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,23 +0,0 @@
|
||||
************************
|
||||
Supporting Files (Notes)
|
||||
************************
|
||||
|
||||
Supporting files, or notes, are any files stored in root folders that are not the Novel root folder.
|
||||
These files are intended for summaries and outlines of the various plot elements, characters, locations, and so on, of the novel.
|
||||
These are not required, but making at least minimal files for each such element, and add a tag to them, makes it possible to use the Outline View feature to see how each element intersects with each section of the novel itself, and add clickable cross-references between document in the editor and viewer.
|
||||
|
||||
File Tags
|
||||
=========
|
||||
|
||||
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 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.
|
||||
|
||||
The tag is the only part of these files that the application uses.
|
||||
The rest of the file is there for the writer to use in whatever way they wish.
|
||||
|
||||
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 pane, these become clickable links, making it easier to follow connections in the plot.
|
||||
@@ -1,158 +0,0 @@
|
||||
**************
|
||||
Novel Projects
|
||||
**************
|
||||
|
||||
A novelWriter project requires a dedicated folder for storing its files on the local file system.
|
||||
See the Technical Information section for further details.
|
||||
|
||||
A new project can be created from the Project menu by selecting :menuselection:`Project --> New Project`.
|
||||
A list of recently opened projects is maintained, and displayed in the "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 :menuselection:`Project --> Project Settings`.
|
||||
See further details below.
|
||||
|
||||
Project Roots
|
||||
=============
|
||||
|
||||
Projects are structured into a set of root folders, visible in the left side tree view panel.
|
||||
|
||||
The core novel files go into a root folder of type "Novel".
|
||||
Other supporting files go into root folders of types "Plot", "Characters", "Locations", "Timeline", "Objects", "Entities", or "Custom".
|
||||
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 :menuselection:`Project --> Create Root Folder`.
|
||||
|
||||
The root folders are intended for the following use, but aside from the Novel folder, no restrictions are enforced by the application.
|
||||
You can use them however you want.
|
||||
|
||||
.. note::
|
||||
The root folders correspond to the categories of tags that can be used.
|
||||
See the "Project Structure" section for further details.
|
||||
|
||||
* **Novel:** 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 Novel Structure section for more details.
|
||||
* **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.
|
||||
* **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.
|
||||
* **Locations:** Location is for various scene locations that one wants to track.
|
||||
* **Timeline:** If the story jumps in time within the same plot, this class of files can be used to track this.
|
||||
* **Objects:** Important objects in the story can be tracked here.
|
||||
* **Entities:** Entities, like organisations or companies, that are part of the plot, can be organised here.
|
||||
* **Custom:** The custom root folder can be used for tracking anything else not covered by the above options.
|
||||
|
||||
Deleted files will be moved into a special "Trash" root folder.
|
||||
Files in the Trash folder can be deleted permanently.
|
||||
|
||||
Orphaned Documents
|
||||
------------------
|
||||
|
||||
In the event the editor crashes or otherwise exits without saving the project state, files that have been added to the project tree and are saved to disk will appear in a special "Orphaned Items" root folder next time the application is started.
|
||||
These orphaned files will not have any meta data associated with them, 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.
|
||||
|
||||
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, you will be presented with a warning, and some information about where novelWriter thinks the project is open.
|
||||
You will be give the option to ignore this warning, and continue opening the project.
|
||||
However, if multiple instances are in fact editing the same project, you are likely to cause inconsistencies and create diverging project files, potentially resulting in loss of data.
|
||||
|
||||
.. note::
|
||||
If, for some reason, novelWriter crashes, the lock file may remain.
|
||||
In such a case it is safe to ignore the lock file warning when re-opening the project.
|
||||
|
||||
Using Folders in the Project Tree
|
||||
---------------------------------
|
||||
|
||||
Folders, aside from root folders, have no structural significance to the project.
|
||||
They are there purely as a way for the user to organise the files in meaningful sections and to be able to close them in the tree view.
|
||||
When processing the files in the novel, like for instance during export, the folders are ignored.
|
||||
|
||||
Project Settings
|
||||
================
|
||||
|
||||
The project settings can be accessed from the :menuselection:`Project --> Project Settings` menu entry.
|
||||
This will open a dialog box, with a set of tabs.
|
||||
|
||||
Settings Tab
|
||||
------------
|
||||
|
||||
The Settings tab holds the project title and author settings.
|
||||
Working Title can be set to a different title than the Book Title.
|
||||
The difference between them is simply that the Working Title is used for the GUI (main window title) and for generating the backup files.
|
||||
The intention is that the working title should remain unchanged, while changing the final title has no effect on features relying on the project name.
|
||||
The Book Title is currently not ues for anything, so setting it is just for the benefit of the author.
|
||||
|
||||
The Book Authors text box takes one author per line.
|
||||
|
||||
Details Tab
|
||||
-----------
|
||||
|
||||
This tab presents an overview of meta data about 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 Tab
|
||||
----------
|
||||
|
||||
Each file of type "Novel" can be given a status level, signified by a coloured icon.
|
||||
These are purely there for the user's convenience, and you are not required to use them for any other feature to work.
|
||||
The intention is to use this list to set what stage of writing you are on, although you can in principle make them whatever you want.
|
||||
|
||||
.. note::
|
||||
The status levels currently in use by a file cannot be deleted.
|
||||
|
||||
Importance Tab
|
||||
--------------
|
||||
|
||||
Each file of types "Plot", "Character", "World", "Timeline", "Object", "Entity", or "Custom", can be given an importance level, signified by a coloured icon like for status level.
|
||||
These are also purely there for the user's convenience, and you are not required to use them for any other feature to work.
|
||||
The intention is to use this list to set how important the character, plot element, or otherwise, is for the story.
|
||||
Again, these can in principle be used for whatever you want.
|
||||
|
||||
.. note::
|
||||
The importance levels currently in use by a file cannot be deleted.
|
||||
|
||||
Auto-Replace Tab
|
||||
----------------
|
||||
|
||||
A set of automatically replaced keywords can be added in this tab.
|
||||
The keywords in the left column wile be replaced by the text in the right column when documents are opened in the viewer.
|
||||
This will also be applied to exports when the feature is added.
|
||||
|
||||
Note that 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.
|
||||
|
||||
Writing Files
|
||||
=============
|
||||
|
||||
New document files can be created from the Document menu, or by pressing :kbd:`Ctrl-N` while in the tree view pane.
|
||||
This will create a new, empty file, and open the item settings dialog where the filename and various other settings can be set.
|
||||
This dialog can also be opened again later from either the menu, :menuselection:`Project -> Edit` item, or by pressing :kbd:`Ctrl-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.
|
||||
You can also select whether the file is by default included when building the project.
|
||||
This setting can be overridden in the export tool if you wish to include them anyway.
|
||||
|
||||
See the Project Structure section for more details.
|
||||
|
||||
Backup
|
||||
======
|
||||
|
||||
An automatic backup system is built into novelWriter.
|
||||
In order to use it, a backup path to where the backups are to be stored must to be provided in :menuselection:`Tools --> 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 working title set in Project Settings.
|
||||
|
||||
The backup feature, when configured, can also be run manually from the :menuselection:`Tools` menu.
|
||||
It is also possible to dissable automated backup for a given project in Project Settings.
|
||||
|
||||
.. note::
|
||||
For the backup to be able to run, the Working Title must be set in Project Settings.
|
||||
This value is used to generate the folder name for the zip files.
|
||||
1
docs/source/requirements.txt
Normal file
@@ -0,0 +1 @@
|
||||
sphinx_rtd_theme
|
||||
75
docs/source/setup_linux.rst
Normal file
@@ -0,0 +1,75 @@
|
||||
.. _a_setup_linux:
|
||||
|
||||
**************
|
||||
Setup on Linux
|
||||
**************
|
||||
|
||||
.. _GitHub: https://github.com/vkbo/novelWriter/releases
|
||||
.. _main website: https://novelwriter.io
|
||||
|
||||
This is a brief guide to how you can get novelWriter running on a Linux computer. There are
|
||||
currently no install package of novelWriter for Linux, so it is recommended that you download
|
||||
either the full source or minimal package and extract it to a practical location on your system and
|
||||
run the ``setup.py`` script.
|
||||
|
||||
|
||||
Running from Source
|
||||
===================
|
||||
|
||||
To run novelWriter from source, download the latest source package from the release page on
|
||||
GitHub_ or the `main website`_, or if you have git running on your computer, you can also clone the
|
||||
repository.
|
||||
|
||||
|
||||
Step 1: Installing Dependencies
|
||||
-------------------------------
|
||||
|
||||
The dependencies of novelWriter are generally available from Linux distro repositories. For Debian
|
||||
and Ubuntu, they can be installed with:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
sudo apt install python3-pyqt5 python3-lxml python3-enchant
|
||||
|
||||
If you prefer to install dependencies via PyPi, or the repository dependencies are out of date, you
|
||||
can install them with:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip3 install --user -r requirements.txt
|
||||
|
||||
|
||||
Step 2: Install Package (Optional)
|
||||
----------------------------------
|
||||
|
||||
You can install novelWriter to the correct location for Python packages with:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
./setup.py install
|
||||
|
||||
This is equivalent to what the ``pip`` installer does. It puts novelWriter in the location on your
|
||||
system where Python packages are usually kept. This is not really the best suited location for a
|
||||
GUI application like novelWriter, so you may instead copy the entire source to a suiteable location
|
||||
yourself.
|
||||
|
||||
This should install novelWriter to either ``~/.local/bin/novelWriter`` if installed for local user
|
||||
only, or to ``/usr/local/bin/novelWriter`` if installed for all users (with the ``sudo`` command).
|
||||
|
||||
|
||||
Step 3: Create Launcher Icons
|
||||
-----------------------------
|
||||
|
||||
Regardless of where you extract or install the source files, you can easily set up a standard icon
|
||||
and launcher. To set up this desktop launcher, the needed icons, and the project file association,
|
||||
run:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
./setup.py xdg-install
|
||||
|
||||
By default, these commands install novelWriter and its icons for the current user only. To install
|
||||
for all users, run the script with the ``sudo`` command.
|
||||
|
||||
.. tip::
|
||||
All options of the setup script can be listed with: ``./setup.py help``.
|
||||
67
docs/source/setup_mac.rst
Normal file
@@ -0,0 +1,67 @@
|
||||
.. _a_setup_mac:
|
||||
|
||||
**************
|
||||
Setup on macOS
|
||||
**************
|
||||
|
||||
.. _GitHub: https://github.com/vkbo/novelWriter/releases
|
||||
.. _main website: https://novelwriter.io
|
||||
.. _brew docs: https://docs.brew.sh/Homebrew-and-Python
|
||||
|
||||
This is a brief guide to how you can get novelWriter running on macOS. There are currently no
|
||||
install package of novelWriter for macOS, so it is recommended that you download either the full
|
||||
source or minimal package and extract it to a practical location on your system and
|
||||
run it.
|
||||
|
||||
|
||||
Running from Source
|
||||
===================
|
||||
|
||||
To run novelWriter from source, download the latest source package from the release page on
|
||||
GitHub_ or the `main website`_, or if you have git running on your computer, you can also clone the
|
||||
repository.
|
||||
|
||||
|
||||
Step 1: Installing Dependencies
|
||||
-------------------------------
|
||||
|
||||
These instructions assume you're using brew, and have Python and pip set up. If not, see the
|
||||
`brew docs`_ for help. Main requirements are installed via the requirements file. You also need to
|
||||
install the ``pyobjc`` package, so you should run:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
pip3 install --user -r requirements.txt
|
||||
pip3 install --user pyobjc
|
||||
|
||||
For spell checking you may also need to install the enchant package. It comes with a lot of default
|
||||
dictionaries.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
brew install enchant
|
||||
|
||||
With the dependencies in place, you can launch the ``novelWriter.py`` script directly to run
|
||||
novelWriter.
|
||||
|
||||
|
||||
Step 2: Install Package (Optional)
|
||||
----------------------------------
|
||||
|
||||
You can install novelWriter to the correct location for Python packages with:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
./setup.py install
|
||||
|
||||
This is equivalent to what the ``pip`` installer does. It puts novelWriter in the location on your
|
||||
system where Python packages are usually kept. This is not really the best suited location for a
|
||||
GUI application like novelWriter, so you may instead copy the entire source to a suiteable location
|
||||
yourself.
|
||||
|
||||
After this, you should be able to launch novelWriter by running ``novelWriter`` in a command line
|
||||
window.
|
||||
|
||||
.. note::
|
||||
Right now there isn't a better integration with macOS available. Contributions from someone more
|
||||
familiar with macOS would be very much appreciated.
|
||||
110
docs/source/setup_windows.rst
Normal file
@@ -0,0 +1,110 @@
|
||||
.. _a_setup_win:
|
||||
|
||||
****************
|
||||
Setup on Windows
|
||||
****************
|
||||
|
||||
This is a brief guide to how you can get novelWriter running on a Windows computer.
|
||||
|
||||
Unlike other operating systems, Windows does not come prepared with an environment to run Python
|
||||
applications, so you must first install Python. After that, running novelWriter is straightforward.
|
||||
|
||||
.. tip::
|
||||
If you have any problems, you can always open a question on the project's discussions_ page.
|
||||
This requires a GitHub account.
|
||||
|
||||
.. _discussions: https://github.com/vkbo/novelWriter/discussions
|
||||
|
||||
|
||||
.. _a_setup_win_installer:
|
||||
|
||||
Using the Installer
|
||||
===================
|
||||
|
||||
The installer for Windows is no longer provided. See the `installer issue`_ for more info on why.
|
||||
You can still create the installer yourself if you want to. It can be generated with the provided
|
||||
``setup.py`` script. use the script's ``help`` command to get further instructions.
|
||||
|
||||
Please use the "Running from Source" option below instead. It has been improved and a script has
|
||||
been added that does nearly the same thing.
|
||||
|
||||
.. _installer issue: https://github.com/vkbo/novelWriter/issues/640
|
||||
|
||||
|
||||
.. _a_setup_win_source:
|
||||
|
||||
Running from Source
|
||||
===================
|
||||
|
||||
To run novelWriter from source, download the latest source zip file from the release page on
|
||||
GitHub_, or from the `main website`_. You can download the "Minimal Windows" zip file. It is a
|
||||
minimal version of the source that contains only the files needed for running on Windows. You can
|
||||
also download the full source if you wish.
|
||||
|
||||
In order to make novelWriter run on your system, you must first have Python installed (Step 1).
|
||||
Thereafter, a script will do the rest of the job (Step 2). Alternatively, you can run this step
|
||||
manually from the command prompt if you wish to.
|
||||
|
||||
.. tip::
|
||||
If your system already has all the dependencies installed, you can run novelWriter directly from
|
||||
the extracted folder by double-clicking the ``novelWriter.pyw`` file. However, running the
|
||||
script also adds start icons.
|
||||
|
||||
.. _GitHub: https://github.com/vkbo/novelWriter/releases
|
||||
.. _main website: https://novelwriter.io
|
||||
|
||||
|
||||
Step 1: Installing Python
|
||||
-------------------------
|
||||
|
||||
If you already have Python installed, you can skip this step. If you don't have it installed, you
|
||||
can download it from the python.org_ website. novelWriter should work with Python 3.6 or higher,
|
||||
but it is recommended that you install the latest version of Python.
|
||||
|
||||
Make sure you select the "Add Python to PATH" option during installation, otherwise the ``python``
|
||||
command will not work in the command line window.
|
||||
|
||||
.. image:: images/python_win_install.png
|
||||
:width: 600
|
||||
|
||||
.. _python.org: https://www.python.org/downloads/windows
|
||||
|
||||
|
||||
Step 2: Dependencies and Icons
|
||||
------------------------------
|
||||
|
||||
**Alternative A: By Script**
|
||||
|
||||
Open the folder where you extracted the novelWriter source, and double-click the file named
|
||||
``setup_windows.bat``. This should open a command line window and run the setup script to install
|
||||
dependencies, and add desktop and start menu icons.
|
||||
|
||||
The script will also check that it can find Python on your system and alert you if it cannot run
|
||||
it. If you are sure you have installed it, but the script cannot find it, you probably didn't
|
||||
install it with the "Add Python to PATH" option mentioned in Step 1.
|
||||
|
||||
.. note::
|
||||
If you upgrade Python to a newer version and the path to ``pythonw.exe`` has therefore changed,
|
||||
you may need to run this script again. You can also run it to upgrade dependencies to the latest
|
||||
version.
|
||||
|
||||
**Alternative B: Manual Installation**
|
||||
|
||||
The above alternative can also be run manually.
|
||||
|
||||
Open the windows command prompt. It can be launched by pressing the :kbd:`Win` key and typing "cmd".
|
||||
The "Command Prompt" app should then be in the list of applications.
|
||||
|
||||
With the command prompt open, navigate to the folder where you extracted the novelWriter source,
|
||||
and run the following commands:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
python setup.py pip
|
||||
python setup.py win-install
|
||||
|
||||
The first command will install the dependencies on your system from the `Python Package Index`_,
|
||||
and the second command will create a desktop icon and a start menu icon. That should be all that
|
||||
you need.
|
||||
|
||||
.. _Python Package Index: https://pypi.org/
|
||||
@@ -1,88 +0,0 @@
|
||||
***************
|
||||
Getting Started
|
||||
***************
|
||||
|
||||
You can download novelWriter from https://github.com/vkbo/novelWriter/releases
|
||||
|
||||
Latest version is |version|.
|
||||
|
||||
Installing Dependencies
|
||||
=======================
|
||||
|
||||
If you already have Python installed, all you need to do is install the dependencies.
|
||||
To do this, your need to open your command line tool, find the folder where you extracted novelWriter, and run:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
python -m pip install -r requirements.txt
|
||||
|
||||
On some operating systems you need to use ``python3`` instead of ``python``.
|
||||
|
||||
The following Python packages are required to run novelWriter:
|
||||
|
||||
* ``pyqt5`` for the GUI
|
||||
* ``lxml`` for writing project files
|
||||
|
||||
.. note::
|
||||
Sometimes the SVG graphics package for pyqt5 must be installed separately.
|
||||
|
||||
The following are optional, but recommended:
|
||||
|
||||
* ``pyenchant`` for spell checking
|
||||
|
||||
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 requires PyQt/Qt 5.14.
|
||||
There are no known minimum for package 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.
|
||||
On Linux, 2.0.0 also works fine.
|
||||
|
||||
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 launch icon and the novelWriter project file mimetype for Gnome desktops on Linux.
|
||||
Currently, there's one script for Debian and one for Ubuntu.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
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.5 or higher, and the executable installer is the easiest to install.
|
||||
Please note that the `pyenchant` package for spell checking does not currently work with the x86-64 version, so if you want spell checking, you must install the x86 version.
|
||||
|
||||
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,120 +0,0 @@
|
||||
*****************
|
||||
Project Structure
|
||||
*****************
|
||||
|
||||
This section covers the structure of a novel project.
|
||||
|
||||
.. note::
|
||||
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.
|
||||
|
||||
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.
|
||||
Four levels of headings are supported, signified by the number of hashes preceding the title.
|
||||
See the Markdown section.
|
||||
|
||||
The header levels are not only important when generating the exported novel file, but they are also used by the indexer and Outline View.
|
||||
Each heading 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.
|
||||
|
||||
* ``# Header1``: Header level 1 signifies that the text refers to either the novel title or the name of a top level partition.
|
||||
* ``## Header2``: Header level 2 signifies a chapter level partition.
|
||||
* ``### Header3``: Header level 3 signifies a scene level partition.
|
||||
* ``#### Header4``: Header level 4 signifies a sub-scene level partition (section).
|
||||
|
||||
Tag References
|
||||
==============
|
||||
|
||||
Each partition, indicated by a heading, 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 of how the different parts of the novel are connected.
|
||||
References and tags are also clickable in the view panel, and makes it easy to navigate reference notes while writing.
|
||||
The targets of references can also be set per header.
|
||||
This is covered in the "Supporting Files" section.
|
||||
|
||||
References are set as keyword and a list of corresponding tags.
|
||||
The valid keywords are listed below.
|
||||
The format of a meta 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 character root folder.
|
||||
* ``@char``: Other characters in the current section.
|
||||
The target must be a note tag in the character root folder.
|
||||
This should not include the point-of-view character.
|
||||
* ``@plot``: The plot timelines touched by the current section.
|
||||
The target must be a note tag in the plot root folder.
|
||||
* ``@time``: The timelines touched by the current section.
|
||||
The target must be a note tag in the timeline root folder.
|
||||
* ``@location``: The location the current section takes place in.
|
||||
The target must be a note tag in the locations root folder.
|
||||
* ``@object``: Objects present in the current section.
|
||||
The target must be a note tag in the object root folder.
|
||||
* ``@entity``: Entities present in the current section.
|
||||
The target must be a note tag in the entities root folder.
|
||||
* ``@custom``: Custom references in the current section.
|
||||
The target must be a note tag in the custom root folder.
|
||||
|
||||
The syntax highlighter will alert the user that only the correct keywords are used, and that the tags referenced exist.
|
||||
If the index of defined tags is out of date, press :kbd:`F9` to regenerate it, or select :menuselection:`Tools --> Rebuild Index` from the menu.
|
||||
In general, the index for a file is regenerated when a file is saved, so this shouldn't normally be necessary.
|
||||
|
||||
Novel File Layout
|
||||
=================
|
||||
|
||||
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 Flags column of the project tree.
|
||||
They also help to indicate what each file is for in your project.
|
||||
|
||||
Some of these layout types are different, some are just cosmetic.
|
||||
The "Book" layout is a generic novel file layout that in formatting is identical to "Chapter" and "Scene", but may help to indicate what files do in your project.
|
||||
You can lay out your project using Book files for each act, and then later split those into chapter or scene files by using the "Split Document" tool.
|
||||
Scenes can also be contained within chapter files, but you lose the drag and drop feature that comes with having them in separate files.
|
||||
|
||||
Some layouts have implications on how the project is exported.
|
||||
Files with layout "Title" and "Partition" have all headings and text centred, while the "Unnumbered" layout disables the automatic chapter numbering feature for everything contained within it.
|
||||
|
||||
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.
|
||||
|
||||
Below is an overview of all available layout formats.
|
||||
|
||||
* **Title Page**: The title page layout.
|
||||
The title should be formatted as a heading level one.
|
||||
All text is automatically centred on exports.
|
||||
* **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 Justify Text.
|
||||
The page is exported with a page break before it.
|
||||
* **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 Partition, Chapter and Scene type files.
|
||||
However, it does not provide the functionality of the Unnumbered layout format.
|
||||
* **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 Partition file layout will in addition force a page break before the heading, and centre all content on the page.
|
||||
* **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.
|
||||
* **Unnumbered**: Same as Chapter, but when exporting the files and automatic chapter numbering is enabled, this file will not receive a number.
|
||||
This makes the layout suitable for Prologue and Epilogue type chapters.
|
||||
* **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.
|
||||
* **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 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 "Book".
|
||||
You can also have a single file per chapter.
|
||||
145
docs/source/tech_technical.rst
Normal file
@@ -0,0 +1,145 @@
|
||||
.. _a_tech:
|
||||
|
||||
*********************
|
||||
Technical Information
|
||||
*********************
|
||||
|
||||
This section contains details of how novelWriter stores and handles the project data.
|
||||
|
||||
|
||||
How Project Data is Stored
|
||||
==========================
|
||||
|
||||
All novelWriter files are written with utf-8 encoding. Since Python automatically converts Unix
|
||||
line endings to Windows line endings on Windows systems, novelWriter does not make any adaptations
|
||||
to the formatting on Windows systems. This is handled entirely by the Python standard library.
|
||||
Python also handles this fairly well when working on the same files on both Windows and Unix-based
|
||||
operating systems.
|
||||
|
||||
|
||||
Main Project File
|
||||
-----------------
|
||||
|
||||
The project itself requires a dedicated folder for storing its files where novelWriter will create
|
||||
its own "file system" where the folder and file hierarchy is described in a project XML file. This
|
||||
is the main project file in the project's root folder with the name ``nwProject.nwx``. This file
|
||||
also contains all the meta data required for the project, and a number of related project settings.
|
||||
|
||||
If this file is lost or corrupted, the structure of the project is lost, although not the text
|
||||
itself. It is important to keep this file backed up, either through the built-in backup tool, or
|
||||
your own backup solution.
|
||||
|
||||
.. tip::
|
||||
The novelWriter project folder is structured so that it can easily be added to a version control
|
||||
system like git. If so, you may want to add a `.gitignore` file to exclude files with the
|
||||
extensions `.json` as JSON files are used to cache the index and various run-time settings and
|
||||
are generally large files that change often. You'd also want to exclude the ``cache`` folder.
|
||||
|
||||
The project XML file is indent-formatted, suitable for diff tools and version control since most of
|
||||
the file will stay static, although a timesetamp is set in the meta section on line 2 each time the
|
||||
file is saved, and various meta data entries are incremented on each save.
|
||||
|
||||
|
||||
Project Documents
|
||||
-----------------
|
||||
|
||||
All the project documents are saved in a folder in the main project folder named ``content``. Each
|
||||
document has a file handle taken from the first 13 characters of a SHA256 hash of the system time
|
||||
when the document was first created. The documents are saved with a filename assembled from this
|
||||
hash and the file extension ``.nwd``.
|
||||
|
||||
If you wish to find the file system location of a document in the project, you can either look it
|
||||
up in the project XML file, select :guilabel:`Show File Details` from the :guilabel:`Document` menu
|
||||
when having the document open, or look in the ``ToC.txt`` file in the root of the project folder.
|
||||
The ``ToC.txt`` file has a list of all documents in the project, referenced by their label, and
|
||||
where they are saved.
|
||||
|
||||
The reason for this cryptic file naming is to avoid issues with file naming conventions and
|
||||
restrictions on different operating systems, and also to have a file name that does not depend on
|
||||
what the user names the document within the project, or changes it to.
|
||||
|
||||
Each document file contains a plain text version of the text from the editor. The file can in
|
||||
principle be edited in any text editor, and is suitable for diffing and version control if so
|
||||
desired. Just make sure the file remains in utf-8 encoding, otherwise unicode chatracters may
|
||||
become mangled when the file is opened in novelWriter again.
|
||||
|
||||
The first lines of the file may contain some meta data starting with the characters ``%%~``. These
|
||||
lines are mainly there to restore some information if it is lost from the project file, and the
|
||||
information may be helpful if you do open the file in an external editor as it contains the
|
||||
document label and the document class and layout. The lines can be deleted without any consequences
|
||||
to the rest of the content of the file, and will be added back the next time the document is saved
|
||||
in novelWriter.
|
||||
|
||||
|
||||
The File Saving Process
|
||||
-----------------------
|
||||
|
||||
When saving the project file, or any of the documents, the data is first saved to a temporary file.
|
||||
If successful, the old data file is removed, and the temporary file becomes the new file. This
|
||||
ensures that the previously saved data is only replaced when the new data has been successfully
|
||||
saved to the storage medium.
|
||||
|
||||
For the project XML file, a ``.bak`` file is in addition kept, which will always contain the
|
||||
previous version of the file, although when auto-save is enabled, they may have the same content.
|
||||
If the opening of a project file fails, novelWriter will automatically try to open the ``.bak``
|
||||
file instead.
|
||||
|
||||
|
||||
Project Meta Data
|
||||
=================
|
||||
|
||||
The project folder contains a subfolder named ``meta``, containing a number of files. The meta
|
||||
folder contains semi-important files. That is, they can be lost with only minor impact to the
|
||||
project.
|
||||
|
||||
If you use version control software on your project, you can exclude this folder, although you may
|
||||
want to track the session log file. The JSON files within this folder can safely be ignored as they
|
||||
will be automatically regenerated if lost.
|
||||
|
||||
|
||||
The Project Index
|
||||
-----------------
|
||||
|
||||
Between writing sessions, the project index is saved in a JSON file in ``meta/tagsIndex.json``.
|
||||
This file is not critical. If it is lost, it can be rebuilt from within novelWriter from the
|
||||
:guilabel:`Tools` menu.
|
||||
|
||||
The index is maintained and updated whenever a document or note is saved in the editor. It contains
|
||||
all references and tags in documents and notes, as well as the location of all headers in the
|
||||
project, and the word counts within each header section.
|
||||
|
||||
The integrity of the index is checked when the file is loaded. It is possible to corrupt the index
|
||||
if the file is manually edited and manipulated, so the check is important to avoid sudden crashes
|
||||
of novelWriter. if the file contains errors, novelWriter will automatically build it anew. If the
|
||||
check somehow fails and novelWriter keeps crashing, you can delete the file manually and rebuild
|
||||
the index. If this too fails, you have likely encountered a bug.
|
||||
|
||||
|
||||
Cached GUI Options
|
||||
------------------
|
||||
|
||||
A file named ``meta/guiOptions.json`` contains the latest state of various GUI buttons, switches,
|
||||
dialog window sizes, column sizes, etc, from the GUI. These are the GUI settings that are specific
|
||||
to the project. Global GUI settings are stored in the main config file.
|
||||
|
||||
The file is not critical, but if it is lost, all such GUI options will revert back to their default
|
||||
settings.
|
||||
|
||||
|
||||
Session Stats
|
||||
-------------
|
||||
|
||||
The writing progress is saved in the ``meta/sessionStats.log`` file. This file records the length
|
||||
and word counts of each writing session on the given project. The file is used by the
|
||||
:guilabel:`Writing Statistics` tool. If this file is lost, the history it contains is also lost,
|
||||
but it has otherwise no impact on the project.
|
||||
|
||||
|
||||
Project Cache
|
||||
=============
|
||||
|
||||
The project ``cache`` folder contains non-critical files. If these files are lost, there is no
|
||||
impact on the functionality of novelWriter or the history of the project. It contains temporary
|
||||
files, like the preview document in the :guilabel:`Build Novel Project` tool.
|
||||
|
||||
It should be excluded from version control tools if such are used.
|
||||
@@ -1,55 +0,0 @@
|
||||
*********************
|
||||
Technical Information
|
||||
*********************
|
||||
|
||||
This section contains details of how novelWriter stores and handles the project data.
|
||||
|
||||
How Data is Stored
|
||||
==================
|
||||
|
||||
All novelWriter files are written with utf-8 encoding.
|
||||
Since Python automatically converts Unix line endings to Windows line endings on Windows systems, novelWriter does not make any adaptations to the formatting on Windows systems.
|
||||
This is handled entirely by the Python standard library.
|
||||
|
||||
Main Project File
|
||||
-----------------
|
||||
|
||||
The project itself requires a dedicated folder for storing its files, where novelWriter will create its own "file system" where the folder and file hierarchy is described in a project XML file.
|
||||
This is the main project file in the project's root folder with the name ``nwProject.nwx``.
|
||||
This file also contains all the meta data required for the project, and a number of related project settings.
|
||||
|
||||
If this file is lost or corrupted, the structure of the project is lost.
|
||||
It is important to keep this file backed up, either through the built-in backup tool, or your own backup solution.
|
||||
|
||||
.. note::
|
||||
The novelWriter project folder is structured so that it can easily be added to a version control system like git.
|
||||
If so, you may want to add a `.gitignore` file to exclude files with the extensions `.json` as JSON files are used to cache the index and various run-time settings.
|
||||
|
||||
The project XML file is indent-formatted, suitable for diff tools and version control, although a timesetamp is set in the meta section on line 2 each time the file is saved.
|
||||
|
||||
Project Documents
|
||||
-----------------
|
||||
|
||||
The project documents are saved in a folder in the main project folder named ``content``.
|
||||
Each document has a file handle taken from the first 13 characters of a SHA256 hash of the system time when the file was first created.
|
||||
The documents are saved with a filename assembled from this hash and the file extension ``.nwd``.
|
||||
If you wish to find the physical location of a file in the project, you can either look it up in the project XML file, or select :menuselection:`Document --> Show File Details` in the menu when having the document open.
|
||||
|
||||
The reason for this cryptic file naming is to avoid issues with file naming conventions and restrictions on different operating systems, and also to have a file name that does not depend on what the user names the files, or changes it to.
|
||||
The file meta data in the tree view, except the file label, is only saved in the project XML file.
|
||||
|
||||
Each document file contains a plain text version of the text from the editor.
|
||||
The file can in principle be edited in any text editor, and is suitable for diffing and version control if so desired.
|
||||
Just make sure the file remains in utf-8 encoding, otherwise unicode chatracters may become mangled when opened in novelWriter again.
|
||||
|
||||
The first line of the file contains some meta data starting with the characters "%%~".
|
||||
This line is mainly there to restore some information if it is lost from the project file, and the information may be helpful if you do open the file in an external editor as it contains the file label as the last entry.
|
||||
The line can be deleted without any consequences to the rest of the content of the file, and will be added back next time the file is saved in novelWriter.
|
||||
|
||||
The File Saving Process
|
||||
-----------------------
|
||||
|
||||
When saving the project file, or any of the documents, the data is first saved to a temporary file.
|
||||
If successful, the old data file is removed, and the temporary file becomes the new file.
|
||||
This ensures that the previously saved data is only replaced when the new data has been successfully saved.
|
||||
For the project XML file, a `.bak` file is kept which will always contain the previous version of the file, although when auto-save is enabled, they may have the same content.
|
||||
157
docs/source/usage_export.rst
Normal file
@@ -0,0 +1,157 @@
|
||||
.. _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 build 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 will be 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 document with layout :guilabel:`Chapter`. If the
|
||||
document has layout :guilabel:`Unnumbered`, the counter is *not* incremented. The latter is
|
||||
useful for for instance Prologue and Epilogue chapters. Adding an asterisk (``*``) in front of
|
||||
the title text of a level two heading will also disable the chapter counter for that heading.
|
||||
|
||||
``%chw%``
|
||||
Behaves like ``%ch%``, but the number is represented as a number word.
|
||||
|
||||
``%chi%``
|
||||
Begaves like ``%ch%``, but the number is represented as a lower case Roman number.
|
||||
|
||||
``%chI%``
|
||||
Behaves 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%``
|
||||
Behaves like ``%sc%``, but the number is *not* reset to 1 for each chapter. Instead it runs from
|
||||
1 from the beginning of the novel to produce an absolute scene count.
|
||||
|
||||
``\\``
|
||||
This inserts a line break within the title.
|
||||
|
||||
.. note::
|
||||
Header formatting only applies to novel documents. Headings in notes 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.
|
||||
* 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 (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.
|
||||
|
||||
Alternatively, if you want a separator between them, like the common ``* * *``, you can enter the
|
||||
desired separator text in the formatting 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 documents and notes are selected for export can be controlled from the options on the left
|
||||
side of the dialog window. The switch for :guilabel:`Include novel files` will select any document
|
||||
that isn't classified as a note. The switch for :guilabel:`Include note files` will select any
|
||||
document that *is* a note. This 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 documents from your exports, like draft documents or documents 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 document in the project tree. An included
|
||||
document 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_print:
|
||||
|
||||
Printing
|
||||
========
|
||||
|
||||
The print button allows you to print the content in the preview window. You can either print to one
|
||||
of your system's printers, or print directly to file. You can also print to file from the regular
|
||||
print dialog. The direct to file option is just a shortcut.
|
||||
|
||||
|
||||
.. _a_export_formats:
|
||||
|
||||
Export Formats
|
||||
==============
|
||||
|
||||
Currently, six formats are supported for exporting.
|
||||
|
||||
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.
|
||||
|
||||
novelWriter HTML
|
||||
The HTML export format writes a single ``.htm`` file with minimal style formatting. The exported
|
||||
HTML document is suitable for further processing by document conversion tools like Pandoc, for
|
||||
importing in word processors, or for printing from browser.
|
||||
|
||||
novelWriter Markdown
|
||||
This is simply a concatenation of the project documents selected by the filters. 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/GitHub Markdown
|
||||
The Markdown export format comes in both Standard and GitHub flavour. The *only* difference in
|
||||
terms of novelWriter functionality is the support of strikethrough text, which is not supported
|
||||
by the Standard flavour, but *is* supported by the GitHub flavour.
|
||||
|
||||
|
||||
.. _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. These 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
|
||||
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.
|
||||
514
docs/source/usage_interface.rst
Normal file
@@ -0,0 +1,514 @@
|
||||
.. _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
|
||||
:guilabel:`Project` 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 document, or the sum of words of 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 document is included in the final project build or not.
|
||||
You may want to filter out documents 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 document. 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
|
||||
characters after the dot indicate the document layout type (see :ref:`a_proj_roots`).
|
||||
|
||||
Right-clicking an item in the project tree will open a context menu under the cursor, displaying
|
||||
a selection of actions that can be performed on the selected item.
|
||||
|
||||
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_tree_novel:
|
||||
|
||||
The Novel Tree
|
||||
--------------
|
||||
|
||||
An alternative way to view the project structure is the novel tree. You can switch to this view by
|
||||
selecting the :guilabel:`Novel` tab under the project tree. This view is a simplified version of
|
||||
the view in the :guilabel:`Outline`. It is convenient when you want to browse the structure of the
|
||||
story itself rather than the document files.
|
||||
|
||||
.. note::
|
||||
You cannot reorganise the entries in the novel tree as that would imply restructuring the
|
||||
content of the document files.
|
||||
|
||||
|
||||
.. _a_ui_tree_status:
|
||||
|
||||
Document Importance and Status
|
||||
------------------------------
|
||||
|
||||
Each document or folder in your project can have either a "Status" or "Importance" flag set. These
|
||||
are flags that you control and define in their respective tabs in :guilabel:`Project Settings`. The
|
||||
"Status" flag is intended to tag a Novel document as for instance a draft or as completed, and the
|
||||
"Importance" flag is intended to tag character notes, or other notes, as for instance a main, major
|
||||
or minor character.
|
||||
|
||||
Whether a document uses a "Status" or "Importance" flag depends on which root folder it lives in.
|
||||
If it's in the :guilabel:`Novel` folder, it uses the "Status" flag, otherwise it uses an
|
||||
"Importance" flag. Some folders, like :guilabel:`Trash` and :guilabel:`Outtakes` allow both.
|
||||
|
||||
|
||||
.. _a_ui_tree_dnd:
|
||||
|
||||
Project Tree Drag & Drop
|
||||
------------------------
|
||||
|
||||
The project tree allows drag & drop to a certain extent. This feature is primarily intended for
|
||||
rearranging the order of your documents within each root folder, and has only limited support for
|
||||
moving documents elsewhere in the project tree. In general, bulk actions are not allowed. This is
|
||||
deliberate to avoid accidentally messing up your project. If you make a mistake, the last move
|
||||
action can be undone by pressing :kbd:`Ctrl`:kbd:`Shift`:kbd:`Z`.
|
||||
|
||||
Documents and their folders can be rearranged freely within their root folders. Novel documents
|
||||
cannot be moved out of the :guilabel:`Novel` folder, except to :guilabel:`Trash` and the
|
||||
:guilabel:`Outtakes` folders. Notes can be moved freely between all root folders, but keep in mind
|
||||
that if you move a note into a :guilabel:`Novel`, its "Importance" setting will be reset to the
|
||||
default "Status" setting. See :ref:`a_ui_tree_status`.
|
||||
|
||||
Folders cannot be moved at all outside their root tree. Neither can a folder containing documents
|
||||
be deleted. You must first delete the containing documents.
|
||||
|
||||
Root folders in the project tree cannot be dragged and dropped at all. If you want to reorder them,
|
||||
you can move them up or down with respect to eachother from the :guilabel:`Project` menu, the
|
||||
right-click context menu, or by pressing :kbd:`Ctrl`:kbd:`Shift` and the :kbd:`Up` or :kbd:`Down`
|
||||
key.
|
||||
|
||||
|
||||
.. _a_ui_edit:
|
||||
|
||||
Editing and Viewing Documents
|
||||
=============================
|
||||
|
||||
To edit a document, double-click it in the project tree, or press the :kbd:`Return` key while
|
||||
having it selected. This will open the document in the document editor. The editor uses a
|
||||
simplified markdown format. The format is described in the :ref:`a_ui_md` section below. The editor
|
||||
has a maximise button (toggles the :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. If you have a middle mouse button, middle-clicking on the document will also open it in the
|
||||
viewer. The document viewed does not have to be the same document 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 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 document can be shown. This can be
|
||||
set in :guilabel:`Preferences` from the :guilabel:`Tools` menu. Clicking on the document title bar
|
||||
will select and reveal its location in the project tree, making it easier to locate in a large
|
||||
project.
|
||||
|
||||
Any tag reference in the editor can be opened in the viewer by moving the cursor to the label and
|
||||
pressing :kbd:`Ctrl`:kbd:`Return`. You can also control-click them with your mouse. 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. The document viewer keeps a history of viewed
|
||||
documents, which you can navigate with the arrow buttons in the top-left corner of the viewer. If
|
||||
your mouse has back and forward navigation buttons, these can be used as well. They work just like
|
||||
the backward and forward features in a browser.
|
||||
|
||||
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 the one
|
||||
you're currently viewing, 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 without losing the list in the process.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`References` panel relies on an up-to-date index of the project. The index is
|
||||
maintained automatically. However, if anything is missing, or seems wrong, the index can always
|
||||
be rebuilt by selecting :guilabel:`Rebuild Index` from the :guilabel:`Tools` menu, or by
|
||||
pressing :kbd:`F9`.
|
||||
|
||||
|
||||
.. _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`. You can also disable this feature entirely if
|
||||
you wish.
|
||||
|
||||
.. tip::
|
||||
If you don't like auto-replacement, all symbols inserted by this feature are also available in
|
||||
the :guilabel:`Insert` menu, and via convenient :ref:`a_ui_shortcuts_ins`. You may also be using
|
||||
a `Compose Key`_ setup, which means you may not need the auto-replace feature.
|
||||
|
||||
.. _Compose Key: https://en.wikipedia.org/wiki/Compose_key
|
||||
|
||||
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, although this feature isn't
|
||||
always accurate. Especially distinguishing between closing single quote and apostrophe can be
|
||||
tricky for languages that use the same symbol for these.
|
||||
|
||||
.. tip::
|
||||
If the auto-replace feature 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 documents of layout ``Note``, they are free to be used as
|
||||
you see fit, but for all other 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 document 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's novel title.
|
||||
|
||||
``## Title``
|
||||
Heading level two. If the document is a novel file, the header level indicates the start of a
|
||||
new chapter. Chapter numbers can be inserted automatically when exporting the manuscript.
|
||||
|
||||
``### Title``
|
||||
Heading level three. If the document is a novel file, the header level indicates the start of a
|
||||
new scene. Scene numbers or scene separators can be inserted automatically when exporting the
|
||||
manuscript, so you can use the title field as a working title for your scenes if you wish.
|
||||
|
||||
``#### Title``
|
||||
Heading level four. If the document is a novel file, the header level indicates the start of a
|
||||
new section. Section titles can be replaced by separators or removed when exporting the
|
||||
manuscript, so you can use the title field as a working title for your sections if you wish.
|
||||
|
||||
.. note::
|
||||
The space after the ``#`` characters is mandatory. The syntax highlighter will change colour and
|
||||
font size when the heading is correctly formatted.
|
||||
|
||||
.. tip::
|
||||
If you do use the automatic numbering feature for exports, you can tell the export tool to skip
|
||||
assigning a number to a specific chapter by adding a ``*`` as the first character of the title
|
||||
itself. See :ref:`a_struct_heads_unnum` for more details.
|
||||
|
||||
|
||||
.. _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 also supports ``__``
|
||||
for strong and ``*`` for emphasis. However, since the differentiation makes the highlighting and
|
||||
conversion significantly simpler and faster, in novelWriter this is a rule, not just a
|
||||
recommendation.
|
||||
|
||||
In addition, the following rules apply:
|
||||
|
||||
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.
|
||||
4. Text emphasis does not span past line breaks. If you need to add emphasis to multiple lines or
|
||||
paragraphs, you must apply it to each of them in turn.
|
||||
|
||||
|
||||
.. _a_ui_md_comm:
|
||||
|
||||
Comments and Synopsis
|
||||
---------------------
|
||||
|
||||
In addition to these standard markdown features, novelWriter also allows for comments in documents.
|
||||
The text of a comment is ignored by the word counter. The text can also be filtered out when
|
||||
exporting or viewing the document.
|
||||
|
||||
If the first word of a comment is ``Synopsis:`` (with the colon included), the comment is treated
|
||||
specially and will show up in the :ref:`a_ui_outline` in a dedicated column. The word ``synopsis``
|
||||
is not case sensitive. If it is correctly formatted, the syntax highlighter will indicate this by
|
||||
altering the colour of the word.
|
||||
|
||||
``% text...``
|
||||
This is a comment. The text is not exported by default (this can be overridden), seen in the
|
||||
document viewer, or counted towards word counts.
|
||||
|
||||
``% Synopsis: text...``
|
||||
This is a synopsis comment. It is generally treated in the same way as a regular comment, except
|
||||
that it is also captured by the indexing algorithm and displayed in the :ref:`a_ui_outline`. It
|
||||
can also be filtered separately when exporting the project to for instance generate an outline
|
||||
document of the whole project.
|
||||
|
||||
.. note::
|
||||
Only one comment can be flagged as a synopsis comment for each heading. If multiple comments are
|
||||
flagged as synopsis comments, the last one will be used and the rest ignored.
|
||||
|
||||
|
||||
.. _a_ui_md_tags:
|
||||
|
||||
Tags and References
|
||||
-------------------
|
||||
|
||||
The document editor supports a minimal set of keywords used for setting tags, and making references
|
||||
between documents. 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. They can
|
||||
also be inserted at the cursor position in the editor via the :guilabel:`Insert` menu.
|
||||
|
||||
|
||||
.. _a_ui_md_add:
|
||||
|
||||
Additional Markdown and Non-Standard Features
|
||||
---------------------------------------------
|
||||
|
||||
The editor and viewer also support markdown standard hard line breaks, and preserve non-breaking
|
||||
spaces if running with Qt 5.9 or higher. For older versions, the non-breaking spaces are lost when
|
||||
the document is saved. This is unfortunately hard-coded into the Qt text editor.
|
||||
|
||||
* A hard line break can be achieved by leaving two or more spaces at the end of the line. This is
|
||||
standard markdown syntax. Alternatively, the user can press :kbd:`Ctrl`:kbd:`K`, :kbd:`Return` to
|
||||
insert this type of line break.
|
||||
* A non-breaking space can be 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.
|
||||
|
||||
.. tip::
|
||||
Non-breaking spaces are the correct type of space to separate a number from its unit. Generally,
|
||||
it prevents the line wrapping algorithms from adding line breaks where it shouldn't.
|
||||
|
||||
|
||||
.. _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 representing
|
||||
partitions, chapters, scenes and sections.
|
||||
|
||||
The document containing the heading can also be displayed as a separate column, as well as the line
|
||||
number where it occurs. Double-clicking an entry will open the corresponding document in the
|
||||
editor.
|
||||
|
||||
.. note::
|
||||
Since the internal structure of the novel does not depend directly on the folder and document
|
||||
structure of the project tree, these will not necessarily look the same, depending on how you
|
||||
choose to organise your documents. 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 contents change, 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,
|
||||
|
||||
The :guilabel:`Synopsis` column of the outline view takes its information from a specially
|
||||
formatted comment. See :ref:`a_ui_md_comm`.
|
||||
|
||||
|
||||
.. _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:`Alt`:kbd:`4`", "Switch focus to outline view."
|
||||
":kbd:`Alt`:kbd:`Left`", "Move backward in the view history of the document viewer."
|
||||
":kbd:`Alt`:kbd:`Right`", "Move forward in the view history of the 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:`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`", "Strikethrough selected text, or word under cursor."
|
||||
":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:`K`", "Activate the insert commands. The commands are listed in :ref:`a_ui_shortcuts_ins`."
|
||||
":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:`Up`", "Move item one step up in the project tree."
|
||||
":kbd:`Ctrl`:kbd:`Down`", "Move item one step down in the project tree."
|
||||
":kbd:`Ctrl`:kbd:`Del`", "Delete next word in editor."
|
||||
":kbd:`Ctrl`:kbd:`Backspace`", "Delete previous word in editor."
|
||||
":kbd:`Ctrl`:kbd:`'`", "Wrap selected text, or word under cursor, in single quotes."
|
||||
":kbd:`Ctrl`:kbd:`""`", "Wrap selected text, or word under cursor, in double quotes."
|
||||
":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:`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:`Z`", "Undo move of project tree item."
|
||||
":kbd:`Ctrl`:kbd:`Shift`:kbd:`Del`", "If in the project tree, move a document to trash, or delete a folder."
|
||||
":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:`Shift`:kbd:`F6`", "Open the :guilabel:`Project Details` dialog."
|
||||
":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`:kbd:`K`, followed by
|
||||
a key or key combination for the inserted content.
|
||||
|
||||
.. 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:`Ctrl`:kbd:`_`", "Insert a horizontal bar (quotation dash)."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`~`", "Insert a figure dash (same width as a number)."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`1`", "Insert a left single quote."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`2`", "Insert a right single quote."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`3`", "Insert a left double quote."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`4`", "Insert a right double quote."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`'`", "Insert a modifier apostrophe."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`.`", "Insert an ellipsis."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`'`", "Insert a prime."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`""`", "Insert a double prime."
|
||||
":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."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`*`", "Insert a list bullet."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`−`", "Insert a hyphen bullet (alternative bullet)."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`*`", "Insert a flower mark (alternative bullet)."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`%`", "Insert a per mille symbol."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`O`", "Insert a degree symbol."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`X`", "Insert a times sign."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`Ctrl`:kbd:`D`", "Insert a division sign."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`G`", "Insert a ``@tag`` keyword."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`V`", "Insert a ``@pov`` keyword."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`F`", "Insert a ``@focus`` keyword."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`C`", "Insert a ``@char`` keyword."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`P`", "Insert a ``@plot`` keyword."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`T`", "Insert a ``@time`` keyword."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`L`", "Insert a ``@location`` keyword."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`O`", "Insert an ``@object`` keyword."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`E`", "Insert an ``@entity`` keyword."
|
||||
":kbd:`Ctrl`:kbd:`K`, :kbd:`X`", "Insert a ``@custom`` keyword."
|
||||
50
docs/source/usage_notes.rst
Normal file
@@ -0,0 +1,50 @@
|
||||
.. _a_notes:
|
||||
|
||||
*************
|
||||
Project Notes
|
||||
*************
|
||||
|
||||
novelWriter doesn't have a database and complicated forms for filling in 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 that are written and maintained just like
|
||||
all other text in your project.
|
||||
|
||||
The relation between all these additional elements is extracted from the documents and notes by the
|
||||
project indexer, based on the tags and references you set within them.
|
||||
|
||||
Using notes is not required, but making at least minimal notes for each plot element, and adding 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 adds clickable cross-references between
|
||||
documents in the editor and viewer.
|
||||
|
||||
|
||||
.. _a_notes_tags:
|
||||
|
||||
Tags in Notes
|
||||
=============
|
||||
|
||||
Each new heading in a note 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
|
||||
documents, or cross-referenced in other notes, and will show up in the outline view and in the
|
||||
back-reference panel when a document is being viewed. See :ref:`a_struct_tags` for how to reference
|
||||
notes.
|
||||
|
||||
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 notes that the application 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 exported if you want to compile a single document of all your notes, or include them in an
|
||||
outline.
|
||||
|
||||
A note can also reference other notes in the same way novel documents do. When the note is opened
|
||||
in the view panel, the references become clickable links, making it easier to follow connections in
|
||||
the plot. Notes 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 and export your project as an HTML document using the
|
||||
:guilabel:`Build Novel Project` tool, the cross-references become clickable links in the
|
||||
exported HTML document.
|
||||
335
docs/source/usage_projects.rst
Normal file
@@ -0,0 +1,335 @@
|
||||
.. _a_proj:
|
||||
|
||||
**************
|
||||
Novel Projects
|
||||
**************
|
||||
|
||||
A new project 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. See :ref:`a_tech` for further details on how files
|
||||
are organised.
|
||||
|
||||
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 core novel documents go into a root folder of type :guilabel:`Novel`. Other supporting
|
||||
documents 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
|
||||
: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 documents have
|
||||
other rules and features than other documents in the project. See :ref:`a_struct` for more
|
||||
details.
|
||||
|
||||
:guilabel:`Plot`
|
||||
This is the root folder where main plots can be outlined. It is optional, but adding at least
|
||||
dummy notes can be useful in order to tag plot elements for the Outline view. Tags in this
|
||||
folder can be references using the ``@plot`` keyword.
|
||||
|
||||
:guilabel:`Characters`
|
||||
Character notes 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 or focusing on a particular character's storyline. Tags in
|
||||
this 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 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
|
||||
notes 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 in the project tree will still indicate what type they are, and so will the icon if you
|
||||
are using one of the optional icon sets.
|
||||
|
||||
|
||||
.. _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 project index and cannot be
|
||||
referenced.
|
||||
|
||||
Folders and root folders can only be deleted when they are empty. Recursive deletion is not
|
||||
supported. A document or a folder can be deleted from the :guilabel:`Project` menu, or by pressing
|
||||
:kbd:`Ctrl`:kbd:`Shift`:kbd:`Del`.
|
||||
|
||||
|
||||
.. _a_proj_roots_out:
|
||||
|
||||
Archived Documents (Outtakes)
|
||||
-----------------------------
|
||||
|
||||
If you don't want to delete a document, or put it in the :guilabel:`Trash` folder where it may be
|
||||
deleted, but still want it out of your main project tree, you can create an :guilabel:`Outtakes`
|
||||
root folder from the :guilabel:`Project` menu. You are not allowed to move entire folders to this
|
||||
root folder, only documents. If you need folders in it to organise your documents, you can of
|
||||
course create new ones there.
|
||||
|
||||
You can drag any document to this folder and preserve its settings. The document will always be
|
||||
excluded from the :guilabel:`Build Novel Project` builds. It is also removed from the project
|
||||
index, so the tags and references defined in it will not show up anywhere else.
|
||||
|
||||
|
||||
.. _a_proj_roots_orph:
|
||||
|
||||
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 if possible.
|
||||
|
||||
The discovered files are scanned for meta information that gives clues as to where the document may
|
||||
previously have been located in the project. The project loading routines 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. If it cannot figure out which root folder is correct, the document
|
||||
will be added to the :guilabel:`Novel` root folder. Only if the :guilabel:`Novel` folder is
|
||||
missing will it give up.
|
||||
|
||||
If the title of the document can be recovered, the word "Recovered:" will be added as a prefix. If
|
||||
the title cannot be determined, the document will be named "Recovered File N" where N is a
|
||||
sequential number.
|
||||
|
||||
|
||||
.. _a_proj_roots_lock:
|
||||
|
||||
Project Lockfile
|
||||
----------------
|
||||
|
||||
To prevent lost documents 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 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 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 the novel, like for instance during export, these folders are
|
||||
ignored. Only the order of the documents themselves matter.
|
||||
|
||||
The folders are there purely as a way for the user 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.
|
||||
|
||||
.. tip::
|
||||
You can use folders to sort your scene documents into chapters. You will still need to add a
|
||||
chapter document as the first item of your chapter folder, and the scene documents as the
|
||||
following items. Another way to use folders is to make a folder for each act.
|
||||
|
||||
|
||||
.. _a_proj_files:
|
||||
|
||||
Project Documents
|
||||
=================
|
||||
|
||||
New documents 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 document, and open the :guilabel:`Item
|
||||
Settings` dialog where the document label and various other settings can be changed. This dialog
|
||||
can also be opened again later from either the :guilabel:`Project` menu, selecting :guilabel:`Edit
|
||||
Project Item`, or by pressing :kbd:`Ctrl`:kbd:`E` or :kbd:`F2` with the item selected.
|
||||
|
||||
The layout of the document is also defined here. For Novel documents, the full list of layout
|
||||
options are available. For non-Novel documents, only :guilabel:`Note` is available. See
|
||||
:ref:`a_struct_layout` for more details.
|
||||
|
||||
You can also select whether the document 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. You can also toggle the included
|
||||
state of a document from the right-click context menu.
|
||||
|
||||
|
||||
.. _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 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 document selected in the project or novel tree.
|
||||
|
||||
The word counts are not updated in real time, but run 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 throughout 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 features may be using them,
|
||||
and they are exported on some export formats in the :guilabel:`Build Novel Project` tool.
|
||||
|
||||
If your project is in a different language than your main spell checking is set to, you can
|
||||
override the default spell checking language here. You can also override the automatic backup
|
||||
setting.
|
||||
|
||||
|
||||
Status and Importance Tabs
|
||||
--------------------------
|
||||
|
||||
Each document or folder of type :guilabel:`Novel` can be given a status level, signified by a
|
||||
coloured icon, and each document or folder of the remaining types can be given an importance level.
|
||||
These are colour coded icons and labels that can be applied to each document or folder.
|
||||
|
||||
These are purely there for the user's 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 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.
|
||||
|
||||
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 exports.
|
||||
|
||||
The auto-replace feature will replace text in angle brackets that are in this list. The syntax
|
||||
highlighter will add an alternate colour to text marching 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 entire project folder, and
|
||||
are stored in a subfolder of the backup path. The subfolder will have 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 disable 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 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. You can view this
|
||||
file in the ``meta`` folder in the directory where you saved your project. The file is named
|
||||
``sessionStats.log``.
|
||||
|
||||
A 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.
|
||||
|
||||
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, and 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`.
|
||||
250
docs/source/usage_structure.rst
Normal file
@@ -0,0 +1,250 @@
|
||||
.. _a_struct:
|
||||
|
||||
***************
|
||||
Novel Structure
|
||||
***************
|
||||
|
||||
This section covers the structure of a novel project.
|
||||
|
||||
It concerns documents under the :guilabel:`Novel` type root folder only. There are some
|
||||
restrictions and features that only apply to these types of documents.
|
||||
|
||||
|
||||
.. _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 documents.
|
||||
|
||||
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 as well as the
|
||||
:guilabel:`Novel` tab of the project tree. Each heading also starts a new region where new
|
||||
references and tags can be defined.
|
||||
|
||||
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. The latter is useful 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 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.
|
||||
|
||||
``### Header3``
|
||||
Header level three 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 export your
|
||||
manuscript.
|
||||
|
||||
``#### Header4``
|
||||
Header level four 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 tag references
|
||||
mid-scene, like if you change the point-of-view character. You are free to use sections as you
|
||||
wish, and can filter them out of the final manuscript just like with scene titles.
|
||||
|
||||
.. tip::
|
||||
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_heads_unnum:
|
||||
|
||||
Unnumbered Chapter Headings
|
||||
---------------------------
|
||||
|
||||
If you use layout types for your documents, the automatic numbering feature for your chapters is
|
||||
controlled by whether you use the :guilabel:`Chapter` or :guilabel:`Unnumbered` layout type for
|
||||
your document. However, if you have a different document layout where this isn't practical, you can
|
||||
also switch off chapter numbering for a chapter by making the first character of the chapter title
|
||||
an asterisk (``*``). Like so:
|
||||
|
||||
``## *Unnumbered Chapter Title``
|
||||
|
||||
The leading asterisk is only considered by the :guilabel:`Build Novel Project` tool, and will be
|
||||
removed before the title is inserted at the location of the ``%title%`` label. See the
|
||||
:ref:`a_export` page for more details.
|
||||
|
||||
.. note::
|
||||
If you need the first character of the title to be an actual asterisk, you must escape it:
|
||||
``\*``.
|
||||
|
||||
|
||||
.. _a_struct_tags:
|
||||
|
||||
Tag References
|
||||
==============
|
||||
|
||||
Each text partition, indicated by a heading of any level, can contain references to tags set in the
|
||||
supporting notes of the project. The references are gathered by the indexer and used to generate an
|
||||
outline view on the :guilabel:`Outline` tab of how the different parts of the novel are connected.
|
||||
This section covers how to set references to tags. See :ref:`a_notes_tags` for how to define tags
|
||||
the references can point to.
|
||||
|
||||
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.
|
||||
|
||||
``@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 the
|
||||
:guilabel:`Character` type root folder.
|
||||
|
||||
``@char``
|
||||
Other characters in the current section. The target must be a note tag in the
|
||||
:guilabel:`Character` type root folder. This should not include the point-of-view character.
|
||||
|
||||
``@plot``
|
||||
The plot or subplot advanced in the current section. The target must be a note tag in the
|
||||
:guilabel:`Plot` type root folder.
|
||||
|
||||
``@time``
|
||||
The timelines touched by the current section. The target must be a note tag in the
|
||||
:guilabel:`Timeline` type root folder.
|
||||
|
||||
``@location``
|
||||
The location the current section takes place in. The target must be a note tag in the
|
||||
:guilabel:`Locations` type root folder.
|
||||
|
||||
``@object``
|
||||
Objects present in the current section. The target must be a note tag in the :guilabel:`Object`
|
||||
type root folder.
|
||||
|
||||
``@entity``
|
||||
Entities present in the current section. The target must be a note tag in the
|
||||
: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 document is regenerated when it is saved, so this shouldn't normally be necessary.
|
||||
|
||||
|
||||
.. _a_struct_layout:
|
||||
|
||||
Novel Document Layout
|
||||
=====================
|
||||
|
||||
All documents in the 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 text formatting,
|
||||
headings, and page breaks. The layout for each document 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, they also help to indicate what each
|
||||
document is intended for in your project. The :guilabel:`Book` layout is a generic novel document
|
||||
layout that is formatted identically to :guilabel:`Chapter` and :guilabel:`Scene` layout documents,
|
||||
but may help to indicate what each document does in your project.
|
||||
|
||||
You can for instance lay out your project using :guilabel:`Book` documents for each act, and then
|
||||
later split those into chapter or scene documents by using the :guilabel:`Split Document` tool.
|
||||
Scenes can also be contained within :guilabel:`Chapter` type documents, but you lose the drag and
|
||||
drop feature that comes with having them in separate documents if you organise them this way.
|
||||
|
||||
Some layouts *do* have implications on how the project is exported. Documents 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.
|
||||
|
||||
The above layout formats are only usable in the Novel root folder. Documents that are not a part of
|
||||
the novel itself should have the :guilabel:`Note` layout. These documents are not getting any
|
||||
special formatting, and it is possible to collectively filter them out during export. Notes can be
|
||||
used anywhere in the project, also in the :guilabel:`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 centred
|
||||
on export.
|
||||
|
||||
: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 format that in principle can be used for all novel documents. Since
|
||||
the internal structure of the novel is controlled by the heading levels, this layout will
|
||||
produce the same result as a collection of :guilabel:`Partition`, :guilabel:`Chapter` and
|
||||
:guilabel:`Scene` layout documents. However, it does not provide the functionality of the
|
||||
:guilabel:`Unnumbered` layout format by default, but this can still be achieved by prefixing the
|
||||
chapter title with an asterisk (``*``). See :ref:`a_struct_heads_unnum` for more details.
|
||||
|
||||
: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`
|
||||
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 documents, these
|
||||
documents 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 project, and automatic chapter numbering is
|
||||
enabled, documents with this layout will not increment and apply a chapter number. It also has a
|
||||
separate title formatting setting. This makes the layout suitable for Prologue and Epilogue type
|
||||
chapters.
|
||||
|
||||
:guilabel:`Scene`
|
||||
Used for scenes. This document should have a header of level three. Further sections can have
|
||||
headers of level four, but there are no layout specifically for sections.
|
||||
|
||||
:guilabel:`Note`
|
||||
A generic document that is optionally ignored when the novel project is exported. Use this
|
||||
layout for descriptions of content in the supporting root folders. Notes can also be added to
|
||||
the :guilabel:`Novel` root folder if you need to insert notes there. Note 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 document with layout :guilabel:`Book`. You can also have a single document per chapter if
|
||||
that suits you better. The :guilabel:`Outline` will show your structure of chapters and scenes
|
||||
regardless of how your documents are organised. So will the novel tree.
|
||||
|
||||
.. tip::
|
||||
You can always start writing with a coarse layout with one or a few documents, and then later
|
||||
use the split tool to automatically split the documents into separate chapter and scene
|
||||
documents. The split tool will try to select the correct layout for each of the new documents.
|
||||
|
||||
|
||||
.. _a_struct_layout_auto:
|
||||
|
||||
Novel Layout Automation
|
||||
-----------------------
|
||||
|
||||
When a document is saved from the document editor, novelWriter will check if the level of the first
|
||||
header of the document matches the selected document layout. If the header level is inconsistent
|
||||
with the layout, the layout will automatically be corrected if it can be unambiguously determined.
|
||||
|
||||
This means that for instance saving a document with header level three, when the layout is set to
|
||||
:guilabel:`Chapter`, the layout will automatically be changed to :guilabel:`Scene`. If, however,
|
||||
the layout was set to :guilabel:`Book`, no change will be made because the :guilabel:`Book` layout
|
||||
is not associated with a specific header level.
|
||||
104
docs/source/usage_typography.rst
Normal file
@@ -0,0 +1,104 @@
|
||||
.. _a_typ:
|
||||
|
||||
*******************
|
||||
Typographical Notes
|
||||
*******************
|
||||
|
||||
novelWriter has some support for typographical symbols that are not usually easily available in
|
||||
many text editors. This includes for instance the proper unicode quotation marks, dashes, ellipsis,
|
||||
thin spaces, etc. All these symbols are available from the :guilabel:`Insert` menu, and via
|
||||
keyboard shortcuts. See :ref:`a_ui_shortcuts_ins`.
|
||||
|
||||
This chapter provides some additional information on how novelWriter handles these symbols.
|
||||
|
||||
|
||||
.. _a_typ_notes:
|
||||
|
||||
Special Notes on Symbols
|
||||
========================
|
||||
|
||||
Some additional notes on the available symbols.
|
||||
|
||||
|
||||
Dashes and Ellipsis
|
||||
-------------------
|
||||
|
||||
With the auto-replace feature enabled (see :ref:`a_ui_edit_auto`), multiple hyphens are converted
|
||||
automatically to short and long dashes, and three dots to ellipsis. The last auto-replace can
|
||||
always be reverted with the undo command :kbd:`Ctrl`:kbd:`Z`, reverting the text to what you typed
|
||||
before the automatic replacement occurred.
|
||||
|
||||
In addition, "Figure Dash" is available. The Figure Dash is a dash that has the same width as the
|
||||
numbers of the same font, for most fonts. It helps to align numbers align nicely in columns when
|
||||
you need to use a dash in them.
|
||||
|
||||
|
||||
Single and Double Quotes
|
||||
------------------------
|
||||
|
||||
All the different quotation marks listed on the `Quotation Mark`_ Wikipedia page are available, and
|
||||
can be selected as auto-replaced symbols for straight single and double quote key strokes. The
|
||||
settings can be found in :guilabel:`Preferences`.
|
||||
|
||||
Ordinarily, text wrapped in quotes are highlighted by the editor. This is meant as a convenience
|
||||
for highlighting dialogue between characters. This feature can be disabled in
|
||||
:guilabel:`Preferences` if this feature isn't wanted.
|
||||
|
||||
The editor distinguishes between text wrapped in regular straight quotes and with the user-selected
|
||||
double quote symbols. This is to help the writer recognise which parts of the text are not using
|
||||
the chosen quote symbols. Two convenience functions in the :guilabel:`Format` menu can be used to
|
||||
re-format a selected section of text with the correct quote symbols.
|
||||
|
||||
.. _Quotation Mark: https://en.wikipedia.org/wiki/Quotation_mark
|
||||
|
||||
|
||||
Single and Double Prime
|
||||
------------------------
|
||||
|
||||
Both single and double prime symbols are available in the :guilabel:`Insert` menu. These symbols
|
||||
are the correct symbols to use for unit symbols for feet, inches, minutes and seconds. The usage of
|
||||
these is described in more detail on the Wikipedia Prime_ page. They look very similar to single
|
||||
and double straight quotes, and may be renderred similarly by the font, but they have different
|
||||
codes. Using these correctly will also prevent the auto-replace and dialogue highlighting features
|
||||
misunderstanding their meaning in the text.
|
||||
|
||||
.. _Prime: https://en.wikipedia.org/wiki/Prime_(symbol)
|
||||
|
||||
|
||||
Modifier Letter Apostrophe
|
||||
--------------------------
|
||||
|
||||
The auto-replace feature will consider any right-facing single straight quote as a quote symbol,
|
||||
even if it is intended as an apostrophe. This also includes the syntax highlighter, which may
|
||||
assume the first following apostrophe is the closing symbol of a single quoted region of text.
|
||||
|
||||
To get around this, an alternative apostrophe is available. It is a special Unicode character that
|
||||
is not categorised as punctuation, but as a modifier. It is usually renderred the same way as the
|
||||
right single quotation marks, depending on the font. There is a Wikipedia article for the
|
||||
`Modifier letter apostrophe`_ with more details.
|
||||
|
||||
.. note::
|
||||
On export with the :guilabel:`Build Novel Project` tool, these apostrophes will be replaced
|
||||
automatically with the corresponding right hand single quote symbol as is generally recommended.
|
||||
Therefore it doesn't really matter if you only use them to correct highlighting.
|
||||
|
||||
.. _Modifier letter apostrophe: https://en.wikipedia.org/wiki/Modifier_letter_apostrophe
|
||||
|
||||
|
||||
Special Space Symbols
|
||||
---------------------
|
||||
|
||||
A few variations of the regular space character is supported. The correct typographical way to
|
||||
separate a number from its unit is with a `thin space`_. It is usually 2/3 the width of a regular
|
||||
space. For numbers and units, this should in addition be a non-breaking space, that is, the text
|
||||
wrapping should not add a line break on this particular space.
|
||||
|
||||
A regular space can also be made into a non-breaking space if needed.
|
||||
|
||||
All non-breaking spaces are highlighted with a differently coloured background to make it easier to
|
||||
spot them in the text. The colour will depend on the selected colour theme.
|
||||
|
||||
The thin and non-breaking spaces are converted to their corresponding HTML codes on export to HTML
|
||||
format.
|
||||
|
||||
.. _thin space: https://en.wikipedia.org/wiki/Thin_space
|
||||
85
install.py
@@ -1,85 +0,0 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import os
|
||||
import sys
|
||||
import getopt
|
||||
import subprocess
|
||||
|
||||
# Defaults
|
||||
buildWindowed = True
|
||||
|
||||
# Parse Options
|
||||
shortOpt = "hd"
|
||||
longOpt = [
|
||||
"help",
|
||||
"debug",
|
||||
]
|
||||
helpMsg = (
|
||||
"\n"
|
||||
"novelWriter Install Script\n"
|
||||
"\n"
|
||||
"Usage:\n"
|
||||
" -h, --help Print this message.\n"
|
||||
" -d, --debug Build novelWriter for debugging. To debug novelwriter after build,\n"
|
||||
" run it from command line with the debug options. Please check the\n"
|
||||
" novelWriter --help output for details.\n"
|
||||
)
|
||||
|
||||
try:
|
||||
inOpts, inArgs = getopt.getopt(sys.argv[1:],shortOpt,longOpt)
|
||||
except getopt.GetoptError:
|
||||
print(helpMsg)
|
||||
sys.exit(2)
|
||||
|
||||
for inOpt, inArg in inOpts:
|
||||
if inOpt in ("-h","--help"):
|
||||
print(helpMsg)
|
||||
sys.exit()
|
||||
elif inOpt in ("-d", "--debug"):
|
||||
buildWindowed = False
|
||||
|
||||
# Run pip
|
||||
packList = ["pyinstaller"]
|
||||
with open("requirements.txt",mode="r") as reqFile:
|
||||
for reqPack in reqFile:
|
||||
if len(reqPack.strip()) > 0:
|
||||
packList.append(reqPack)
|
||||
|
||||
for packName in packList:
|
||||
print("Installing package dependency: %s" % packName)
|
||||
try:
|
||||
subprocess.call([sys.executable, "-m", "pip", "install", packName])
|
||||
except Exception as e:
|
||||
print("Failed with error:")
|
||||
print(str(e))
|
||||
|
||||
# Run pyinstaller
|
||||
if sys.platform.startswith("win32"):
|
||||
dotDot = ";"
|
||||
else:
|
||||
dotDot = ":"
|
||||
|
||||
instOpt = [
|
||||
"--name=novelWriter",
|
||||
"--onefile",
|
||||
"--add-data=%s%s%s" % (os.path.join("nw", "assets", "themes"), dotDot,"themes"),
|
||||
"--add-data=%s%s%s" % (os.path.join("nw", "assets", "graphics"), dotDot,"graphics"),
|
||||
"--icon=%s" % os.path.join("nw", "assets", "icons", "novelWriter.ico"),
|
||||
]
|
||||
if buildWindowed:
|
||||
instOpt.append("--windowed")
|
||||
|
||||
instOpt.append("novelWriter.py")
|
||||
|
||||
import PyInstaller.__main__
|
||||
PyInstaller.__main__.run(instOpt)
|
||||
|
||||
print("")
|
||||
print("##################")
|
||||
print(" Build Finished")
|
||||
print("##################")
|
||||
print("")
|
||||
print("If everything went well, the novelWriter executable should be in the folder named 'dist'")
|
||||
print("")
|
||||
|
||||
@@ -1,186 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
novelWriter – Text Analysis Class
|
||||
===================================
|
||||
Class for analysing bits of text.
|
||||
|
||||
File History:
|
||||
Created: 2018-09-22 [0.0.1]
|
||||
|
||||
This file is a part of novelWriter
|
||||
Copyright 2020, Veronica Berglyd Olsen
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
import logging
|
||||
import nw
|
||||
|
||||
from time import time
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
class TextAnalysis():
|
||||
|
||||
def __init__(self, theText, langCode):
|
||||
self.theText = theText
|
||||
self.langCode = langCode
|
||||
return
|
||||
|
||||
def getStats(self):
|
||||
tStart = time()
|
||||
wordCount = self._countWords()
|
||||
tEnd = time()-tStart
|
||||
logger.verbose("Words: %7d in %8.3f ms" % (wordCount,tEnd*1e3))
|
||||
tStart = time()
|
||||
sentCount = self._countSentences()
|
||||
tEnd = time()-tStart
|
||||
logger.verbose("Sentences: %7d in %8.3f ms" % (sentCount,tEnd*1e3))
|
||||
tStart = time()
|
||||
paraCount = self._countParagraphs()
|
||||
tEnd = time()-tStart
|
||||
logger.verbose("Paragraphs: %7d in %8.3f ms" % (paraCount,tEnd*1e3))
|
||||
return wordCount, sentCount, paraCount
|
||||
|
||||
def getReadabilityScore(self):
|
||||
"""Calculate Flesch--Kincaid Readability Score.
|
||||
"""
|
||||
tStart = time()
|
||||
wordCount = self._countWords()
|
||||
sentCount = self._countSentences()
|
||||
if self.langCode[:3] == "en_":
|
||||
ratSyllWord = self._countSyllablesEN()
|
||||
else:
|
||||
ratSyllWord = -1.0
|
||||
rScore = 206.835 - 1.015*(wordCount/sentCount) - 84.6*(ratSyllWord)
|
||||
gLevel = -15.59 + 0.390*(wordCount/sentCount) + 11.8*(ratSyllWord)
|
||||
tEnd = time()-tStart
|
||||
logger.verbose("Readability: %7.3f in %8.3f ms" % (rScore,tEnd*1e3))
|
||||
logger.verbose("Grade Level: %7.3f in %8.3f ms" % (gLevel,tEnd*1e3))
|
||||
logger.verbose("Assessment: %s" % self.getReadabilityText(rScore))
|
||||
|
||||
return rScore, gLevel
|
||||
|
||||
def getReadabilityText(self, rScore):
|
||||
if rScore >= 90.0:
|
||||
return "Very Easy"
|
||||
elif rScore >= 80.0:
|
||||
return "Easy"
|
||||
elif rScore >= 70.0:
|
||||
return "Fairly Easy"
|
||||
elif rScore >= 60.0:
|
||||
return "Average"
|
||||
elif rScore >= 50.0:
|
||||
return "Fairly Difficult"
|
||||
elif rScore >= 30.0:
|
||||
return "Difficult"
|
||||
else:
|
||||
return "Very Difficult"
|
||||
|
||||
#
|
||||
# Internal Functions
|
||||
#
|
||||
|
||||
def _countWords(self):
|
||||
"""Counts the number of words in a text by simply splitting on
|
||||
all white spaces.
|
||||
"""
|
||||
return len(self.theText.strip().split())
|
||||
|
||||
def _countSentences(self):
|
||||
"""Counts the number of non-repeated sentence endings seen in
|
||||
the text. Note: This will count filenames and urls as multiple
|
||||
sentences.
|
||||
"""
|
||||
nSent = 0
|
||||
sawEnd = False
|
||||
for ch in self.theText.strip():
|
||||
if ch in ".!?":
|
||||
if not sawEnd:
|
||||
sawEnd = True
|
||||
nSent += 1
|
||||
else:
|
||||
sawEnd = False
|
||||
return nSent
|
||||
|
||||
def _countParagraphs(self, pThreshold=2):
|
||||
"""Counts the number of paragraphs by counting repeated line
|
||||
breaks.
|
||||
"""
|
||||
nPara = 1
|
||||
sawEnd = 0
|
||||
for ch in self.theText.strip():
|
||||
if ch == "\r": # Ignore Windows line end chars
|
||||
continue
|
||||
if ch == "\n": # Count endlines
|
||||
sawEnd += 1
|
||||
else: # If non-endline is encountered, check condition for paragraph
|
||||
if sawEnd >= pThreshold:
|
||||
nPara += 1
|
||||
sawEnd = 0
|
||||
return nPara
|
||||
|
||||
def _countSyllablesEN(self):
|
||||
"""Attempt to count the syllables in a piece of English language
|
||||
text. This function tends to slightly over-estimate the number
|
||||
of syllables as it doesn't handle the complexity of silent
|
||||
vowels in endings very well. It will count them all.
|
||||
"""
|
||||
|
||||
cleanText = ""
|
||||
for ch in self.theText:
|
||||
if ch in "abcdefghijklmnopqrstuvwxyz'’":
|
||||
cleanText += ch
|
||||
else:
|
||||
cleanText += " "
|
||||
|
||||
asVow = "aeiouy'’"
|
||||
dExept = ("ei","ie","ua","ia","eo")
|
||||
theWords = cleanText.lower().split()
|
||||
allSylls = 0
|
||||
for inWord in theWords:
|
||||
nChar = len(inWord)
|
||||
nSyll = 0
|
||||
wasVow = False
|
||||
wasY = False
|
||||
if nChar == 0:
|
||||
continue
|
||||
if inWord[0] in asVow:
|
||||
nSyll += 1
|
||||
wasVow = True
|
||||
wasY = inWord[0] == "y"
|
||||
for c in range(1,nChar):
|
||||
isVow = False
|
||||
if inWord[c] in asVow:
|
||||
nSyll += 1
|
||||
isVow = True
|
||||
if isVow and wasVow:
|
||||
nSyll -= 1
|
||||
if isVow and wasY:
|
||||
nSyll -= 1
|
||||
if inWord[c:c+2] in dExept:
|
||||
nSyll += 1
|
||||
wasVow = isVow
|
||||
wasY = inWord[c] == "y"
|
||||
if inWord.endswith(("e")):
|
||||
nSyll -= 1
|
||||
if inWord.endswith(("le","ea","io")):
|
||||
nSyll += 1
|
||||
if nSyll < 1:
|
||||
nSyll = 1
|
||||
allSylls += nSyll
|
||||
|
||||
return allSylls/len(theWords)
|
||||
|
||||
# END Class TextAnalysis
|
||||
@@ -1,16 +1,22 @@
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
novelWriter – Start Script
|
||||
==========================
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
|
||||
try:
|
||||
import PyQt5.QtWidgets
|
||||
import PyQt5.QtGui
|
||||
import PyQt5.QtCore
|
||||
except:
|
||||
print("ERROR: Failed to load dependency python3-pyqt5")
|
||||
import PyQt5.QtWidgets # noqa: F401
|
||||
import PyQt5.QtGui # noqa: F401
|
||||
import PyQt5.QtCore # noqa: F401
|
||||
except Exception:
|
||||
print("ERROR: Failed to load dependency PyQt5")
|
||||
sys.exit(1)
|
||||
|
||||
os.curdir = os.path.abspath(os.path.dirname(__file__))
|
||||
|
||||
if __name__ == "__main__":
|
||||
import nw
|
||||
nw.main(sys.argv[1:])
|
||||
|
||||
253
nw/__init__.py
@@ -1,60 +1,84 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
"""novelWriter Init
|
||||
"""
|
||||
novelWriter – Init File
|
||||
=======================
|
||||
Application initialisation
|
||||
|
||||
novelWriter – Init File
|
||||
=========================
|
||||
Application initialisation
|
||||
File History:
|
||||
Created: 2018-09-22 [0.0.1]
|
||||
|
||||
File History:
|
||||
Created: 2018-09-22 [0.0.1]
|
||||
This file is a part of novelWriter
|
||||
Copyright 2018–2021, Veronica Berglyd Olsen
|
||||
|
||||
This file is a part of novelWriter
|
||||
Copyright 2020, Veronica Berglyd Olsen
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||
"""
|
||||
|
||||
import sys
|
||||
import getopt
|
||||
import logging
|
||||
|
||||
from os import path, remove, rename
|
||||
|
||||
from PyQt5.QtGui import QIcon
|
||||
from PyQt5.QtWidgets import QApplication, QErrorMessage
|
||||
|
||||
from nw.error import exceptionHandler, logException
|
||||
from nw.config import Config
|
||||
|
||||
__package__ = "novelWriter"
|
||||
__author__ = "Veronica Berglyd Olsen"
|
||||
__copyright__ = "Copyright 2018–2020, Veronica Berglyd Olsen"
|
||||
##
|
||||
# Version Scheme
|
||||
# ================
|
||||
# Generally follows PEP 440
|
||||
# Hex Version:
|
||||
# - Digit 1,2 : Major Version (01-ff)
|
||||
# = Digit 3,4 : Minor Version (01-ff)
|
||||
# - Digit 5,6 : Patch Version (01-ff)
|
||||
# = Digit 7 : Release Type (a: aplha, b: beta, c: candidate, f: final)
|
||||
# - Digit 8 : Release Number (0-f)
|
||||
#
|
||||
# Example : Full Short Description
|
||||
# -------------------------------------------------------------------------
|
||||
# 0x010200a0 : 1.2-alpha0 1.2a0 Can be used for the dev branch
|
||||
# 0x010200a1 : 1.2-alpha1 1.2a1 First alpha release
|
||||
# 0x010200b1 : 1.2-beta1 1.2b1 First beta release
|
||||
# 0x010200c1 : 1.2-rc1 1.2rc1 First release candidate
|
||||
# 0x010200f0 : 1.2 1.2 Final release
|
||||
# 0x010200f1 : 1.2-post1 1.2.post1 Post release, but not a code patch!
|
||||
# 0x010201f0 : 1.2.1 1.2.1 Patch release
|
||||
##
|
||||
|
||||
__package__ = "nw"
|
||||
__copyright__ = "Copyright 2018–2021, Veronica Berglyd Olsen"
|
||||
__license__ = "GPLv3"
|
||||
__version__ = "0.7.0"
|
||||
__hexversion__ = "0x000700f0"
|
||||
__date__ = "2020-06-01"
|
||||
__author__ = "Veronica Berglyd Olsen"
|
||||
__maintainer__ = "Veronica Berglyd Olsen"
|
||||
__email__ = "code@vkbo.net"
|
||||
__status__ = "Pre-Release"
|
||||
__url__ = "https://github.com/vkbo/novelWriter"
|
||||
__version__ = "1.2"
|
||||
__hexversion__ = "0x010200f0"
|
||||
__date__ = "2021-03-14"
|
||||
__status__ = "Stable"
|
||||
__domain__ = "novelwriter.io"
|
||||
__url__ = "https://novelwriter.io"
|
||||
__sourceurl__ = "https://github.com/vkbo/novelWriter"
|
||||
__issuesurl__ = "https://github.com/vkbo/novelWriter/issues"
|
||||
__helpurl__ = "https://github.com/vkbo/novelWriter/discussions"
|
||||
__releaseurl__ = "https://github.com/vkbo/novelWriter/releases/latest"
|
||||
__docurl__ = "https://novelwriter.readthedocs.io"
|
||||
__credits__ = [
|
||||
"Veronica Berglyd Olsen (developer)",
|
||||
"Marian Lückhof (contributor, tester)"
|
||||
]
|
||||
|
||||
#
|
||||
##
|
||||
# Logging
|
||||
# =========
|
||||
# Standard used for logging levels in novelWriter:
|
||||
@@ -65,7 +89,7 @@ __credits__ = [
|
||||
# ----------- SPAM Threshold : Output above should be minimal -----------------
|
||||
# DEBUG Use for descriptions of main program flow
|
||||
# VERBOSE Use for outputting values and program flow details
|
||||
#
|
||||
##
|
||||
|
||||
# Add verbose logging level
|
||||
VERBOSE = 5
|
||||
@@ -73,15 +97,15 @@ logging.addLevelName(VERBOSE, "VERBOSE")
|
||||
def logVerbose(self, message, *args, **kws):
|
||||
if self.isEnabledFor(VERBOSE):
|
||||
self._log(VERBOSE, message, args, **kws)
|
||||
|
||||
logging.Logger.verbose = logVerbose
|
||||
|
||||
# Initiating logging
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
#
|
||||
##
|
||||
# Main Program
|
||||
# ==============
|
||||
#
|
||||
##
|
||||
|
||||
# Load the main config as a global object
|
||||
CONFIG = Config()
|
||||
@@ -89,20 +113,17 @@ CONFIG = Config()
|
||||
def main(sysArgs=None):
|
||||
"""Parses command line, sets up logging, and launches main GUI.
|
||||
"""
|
||||
|
||||
if sysArgs is None:
|
||||
sysArgs = sys.argv[1:]
|
||||
|
||||
# Valid Input Options
|
||||
shortOpt = "hvq"
|
||||
shortOpt = "hv"
|
||||
longOpt = [
|
||||
"help",
|
||||
"version",
|
||||
"info",
|
||||
"debug",
|
||||
"verbose",
|
||||
"quiet",
|
||||
"logfile=",
|
||||
"style=",
|
||||
"config=",
|
||||
"data=",
|
||||
@@ -110,7 +131,7 @@ def main(sysArgs=None):
|
||||
]
|
||||
|
||||
helpMsg = (
|
||||
"{appname} {version} ({status} {date})\n"
|
||||
"novelWriter {version} ({date})\n"
|
||||
"{copyright}\n"
|
||||
"\n"
|
||||
"This program is distributed in the hope that it will be useful,\n"
|
||||
@@ -119,40 +140,32 @@ def main(sysArgs=None):
|
||||
"GNU General Public License for more details.\n"
|
||||
"\n"
|
||||
"Usage:\n"
|
||||
" -h, --help Print this message.\n"
|
||||
" -v, --version Print program version and exit.\n"
|
||||
" --info Print additional runtime information.\n"
|
||||
" --debug Print debug output. Includes --info.\n"
|
||||
" --verbose Increase verbosity of debug output. Includes --debug.\n"
|
||||
" -q, --quiet Disable output to command line. Does not affect log file.\n"
|
||||
" --logfile= Specify log file.\n"
|
||||
" --style= Sets Qt5 style flag. Defaults to 'Fusion'.\n"
|
||||
" --config= Alternative config file.\n"
|
||||
" --data= Alternative user data path.\n"
|
||||
" --testmode Do not display GUI. Used by the test suite.\n"
|
||||
" -h, --help Print this message.\n"
|
||||
" -v, --version Print program version and exit.\n"
|
||||
" --info Print additional runtime information.\n"
|
||||
" --debug Print debug output. Includes --info.\n"
|
||||
" --verbose Increase verbosity of debug output. Includes --debug.\n"
|
||||
" --style= Sets Qt5 style flag. Defaults to 'Fusion'.\n"
|
||||
" --config= Alternative config file.\n"
|
||||
" --data= Alternative user data path.\n"
|
||||
).format(
|
||||
appname = __package__,
|
||||
version = __version__,
|
||||
status = __status__,
|
||||
copyright = __copyright__,
|
||||
date = __date__,
|
||||
)
|
||||
|
||||
# Defaults
|
||||
debugLevel = logging.WARN
|
||||
logFormat = "{levelname:8} {message:}"
|
||||
logFile = ""
|
||||
toFile = False
|
||||
toStd = True
|
||||
confPath = None
|
||||
dataPath = None
|
||||
testMode = False
|
||||
qtStyle = "Fusion"
|
||||
cmdOpen = None
|
||||
logLevel = logging.WARN
|
||||
logFormat = "{levelname:8} {message:}"
|
||||
confPath = None
|
||||
dataPath = None
|
||||
testMode = False
|
||||
qtStyle = "Fusion"
|
||||
cmdOpen = None
|
||||
|
||||
# Parse Options
|
||||
try:
|
||||
inOpts, inRemain = getopt.getopt(sysArgs,shortOpt,longOpt)
|
||||
inOpts, inRemain = getopt.getopt(sysArgs, shortOpt, longOpt)
|
||||
except getopt.GetoptError as E:
|
||||
print(helpMsg)
|
||||
print("ERROR: %s" % str(E))
|
||||
@@ -162,25 +175,20 @@ def main(sysArgs=None):
|
||||
cmdOpen = inRemain[0]
|
||||
|
||||
for inOpt, inArg in inOpts:
|
||||
if inOpt in ("-h","--help"):
|
||||
if inOpt in ("-h", "--help"):
|
||||
print(helpMsg)
|
||||
sys.exit()
|
||||
sys.exit(0)
|
||||
elif inOpt in ("-v", "--version"):
|
||||
print("%s %s Version %s [%s]" % (__package__,__status__,__version__,__date__))
|
||||
sys.exit()
|
||||
print("novelWriter Version %s [%s]" % (__version__, __date__))
|
||||
sys.exit(0)
|
||||
elif inOpt == "--info":
|
||||
debugLevel = logging.INFO
|
||||
logLevel = logging.INFO
|
||||
elif inOpt == "--debug":
|
||||
debugLevel = logging.DEBUG
|
||||
logFormat = "[{asctime:}] {name:>30}:{lineno:<4d} {levelname:8} {message:}"
|
||||
elif inOpt == "--logfile":
|
||||
logFile = inArg
|
||||
toFile = True
|
||||
elif inOpt in ("-q","--quiet"):
|
||||
toStd = False
|
||||
logLevel = logging.DEBUG
|
||||
logFormat = "[{asctime:}] {name:>22}:{lineno:<4d} {levelname:8} {message:}"
|
||||
elif inOpt == "--verbose":
|
||||
debugLevel = VERBOSE
|
||||
logFormat = "[{asctime:}] {name:>30}:{lineno:<4d} {levelname:8} {message:}"
|
||||
logLevel = VERBOSE
|
||||
logFormat = "[{asctime:}] {name:>22}:{lineno:<4d} {levelname:8} {message:}"
|
||||
elif inOpt == "--style":
|
||||
qtStyle = inArg
|
||||
elif inOpt == "--config":
|
||||
@@ -191,84 +199,97 @@ def main(sysArgs=None):
|
||||
testMode = True
|
||||
|
||||
# Set Config Options
|
||||
CONFIG.showGUI = not testMode
|
||||
CONFIG.debugInfo = debugLevel < logging.INFO
|
||||
CONFIG.cmdOpen = cmdOpen
|
||||
CONFIG.cmdOpen = cmdOpen
|
||||
|
||||
# Set Logging
|
||||
logFmt = logging.Formatter(fmt=logFormat,datefmt="%Y-%m-%d %H:%M:%S",style="{")
|
||||
cHandle = logging.StreamHandler()
|
||||
cHandle.setFormatter(logging.Formatter(fmt=logFormat, style="{"))
|
||||
|
||||
if not logFile == "" and toFile:
|
||||
if path.isfile(logFile+".bak"):
|
||||
remove(logFile+".bak")
|
||||
if path.isfile(logFile):
|
||||
rename(logFile,logFile+".bak")
|
||||
pkgLogger = logging.getLogger(__package__)
|
||||
pkgLogger.addHandler(cHandle)
|
||||
pkgLogger.setLevel(logLevel)
|
||||
|
||||
fHandle = logging.FileHandler(logFile)
|
||||
fHandle.setLevel(debugLevel)
|
||||
fHandle.setFormatter(logFmt)
|
||||
logger.addHandler(fHandle)
|
||||
|
||||
if toStd:
|
||||
cHandle = logging.StreamHandler()
|
||||
cHandle.setLevel(debugLevel)
|
||||
cHandle.setFormatter(logFmt)
|
||||
logger.addHandler(cHandle)
|
||||
|
||||
logger.setLevel(debugLevel)
|
||||
logger.info("Starting novelWriter %s (%s) %s" % (
|
||||
__version__, __hexversion__, __date__
|
||||
))
|
||||
|
||||
# Check Packages and Versions
|
||||
errorData = []
|
||||
if sys.hexversion < 0x030403F0:
|
||||
errorCode = 0
|
||||
if sys.hexversion < 0x030600f0:
|
||||
errorData.append(
|
||||
"At least Python 3.4.3 is required, but 3.6 is highly recommended."
|
||||
"At least Python 3.6.0 is required, found %s." % CONFIG.verPyString
|
||||
)
|
||||
errorCode |= 4
|
||||
if CONFIG.verQtValue < 50200:
|
||||
errorData.append(
|
||||
"At least Qt5 version 5.2 is required, found %s." % CONFIG.verQtString
|
||||
)
|
||||
errorCode |= 8
|
||||
if CONFIG.verPyQtValue < 50200:
|
||||
errorData.append(
|
||||
"At least PyQt5 version 5.2 is required, found %s." % CONFIG.verPyQtString
|
||||
)
|
||||
errorCode |= 16
|
||||
|
||||
try:
|
||||
import PyQt5.QtSvg
|
||||
except:
|
||||
errorData.append("Python module 'PyQt5.QtSvg' is missing.")
|
||||
try:
|
||||
import lxml
|
||||
except:
|
||||
import lxml # noqa: F401
|
||||
except ImportError:
|
||||
errorData.append("Python module 'lxml' is missing.")
|
||||
errorCode |= 32
|
||||
|
||||
if errorData:
|
||||
errApp = QApplication([])
|
||||
errMsg = QErrorMessage()
|
||||
errMsg.setMinimumWidth(500)
|
||||
errMsg.setMinimumHeight(300)
|
||||
errMsg.resize(500, 300)
|
||||
errMsg.showMessage((
|
||||
"ERROR: %s cannot start due to the following issues:<br><br>"
|
||||
" - %s<br><br>Exiting."
|
||||
"<h3>A critical error has been encountered</h3>"
|
||||
"<p>novelWriter cannot start due to the following issues:<p>"
|
||||
"<p> - %s</p>"
|
||||
"<p>Shutting down ...</p>"
|
||||
) % (
|
||||
__package__, "<br> - ".join(errorData)
|
||||
"<br> - ".join(errorData)
|
||||
))
|
||||
for errMsg in errorData:
|
||||
logger.critical(errMsg)
|
||||
errApp.exec_()
|
||||
sys.exit(1)
|
||||
sys.exit(errorCode)
|
||||
|
||||
# Finish initialising config
|
||||
CONFIG.initConfig(confPath, dataPath)
|
||||
|
||||
if CONFIG.osDarwin:
|
||||
try:
|
||||
from Foundation import NSBundle
|
||||
bundle = NSBundle.mainBundle()
|
||||
info = bundle.localizedInfoDictionary() or bundle.infoDictionary()
|
||||
info["CFBundleName"] = "novelWriter"
|
||||
except ImportError:
|
||||
logger.error("Failed to set application name")
|
||||
logException()
|
||||
|
||||
# Import GUI (after dependency checks), and launch
|
||||
from nw.guimain import GuiMain
|
||||
if testMode:
|
||||
nwGUI = GuiMain()
|
||||
return nwGUI
|
||||
|
||||
else:
|
||||
nwApp = QApplication([__package__,("-style=%s" % qtStyle)])
|
||||
nwApp.setApplicationName(__package__)
|
||||
nwApp = QApplication([CONFIG.appName, ("-style=%s" % qtStyle)])
|
||||
nwApp.setApplicationName(CONFIG.appName)
|
||||
nwApp.setApplicationVersion(__version__)
|
||||
nwApp.setWindowIcon(QIcon(CONFIG.appIcon))
|
||||
nwApp.setOrganizationDomain("novelwriter.io")
|
||||
nwApp.setOrganizationDomain(__domain__)
|
||||
|
||||
# Connect the exception handler before making the main GUI
|
||||
sys.excepthook = exceptionHandler
|
||||
|
||||
# Launch main GUI
|
||||
nwGUI = GuiMain()
|
||||
if not nwGUI.hasProject:
|
||||
nwGUI.showProjectLoadDialog()
|
||||
nwGUI.releaseNotes()
|
||||
|
||||
sys.exit(nwApp.exec_())
|
||||
|
||||
return
|
||||
# END Function main
|
||||
|
||||
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg5808"
|
||||
sodipodi:docname="plus.svg"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)">
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata5814">
|
||||
<rdf:RDF>
|
||||
@@ -22,35 +18,14 @@
|
||||
<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>
|
||||
<defs
|
||||
id="defs5812" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1344"
|
||||
id="namedview5810"
|
||||
showgrid="false"
|
||||
inkscape:zoom="38.125"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg5808" />
|
||||
<path
|
||||
d="m 19.5,9.5 h -5 v -5 C 14.5,3.12 13.38,2 12,2 10.62,2 9.5,3.12 9.5,4.5 l 0.08875,5 H 4.5 C 3.12,9.5 2,10.62 2,12 c 0,1.38 1.12,2.5 2.5,2.5 L 9.58875,14.41125 9.5,19.5 c 0,1.38 1.12,2.5 2.5,2.5 1.38,0 2.5,-1.12 2.5,-2.5 V 14.41125 L 19.5,14.5 C 20.88,14.5 22,13.38 22,12 22,10.62 20.88,9.5 19.5,9.5 Z"
|
||||
style="stroke-width:1.25;fill:#aeaeae;fill-opacity:1"
|
||||
id="path5806"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.25;fill:#aeaeae;fill-opacity:1" />
|
||||
d="m 19.5,9.5 h -5 v -5 C 14.5,3.12 13.38,2 12,2 10.62,2 9.5,3.12 9.5,4.5 l 0.08875,5 H 4.5 C 3.12,9.5 2,10.62 2,12 c 0,1.38 1.12,2.5 2.5,2.5 L 9.58875,14.41125 9.5,19.5 c 0,1.38 1.12,2.5 2.5,2.5 1.38,0 2.5,-1.12 2.5,-2.5 V 14.41125 L 19.5,14.5 C 20.88,14.5 22,13.38 22,12 22,10.62 20.88,9.5 19.5,9.5 Z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 1.1 KiB |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)"
|
||||
sodipodi:docname="plus.svg"
|
||||
id="svg5808"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
version="1.2"
|
||||
width="24"
|
||||
version="1.2">
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg5808">
|
||||
<metadata
|
||||
id="metadata5814">
|
||||
<rdf:RDF>
|
||||
@@ -22,34 +18,14 @@
|
||||
<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>
|
||||
<defs
|
||||
id="defs5812" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg5808"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-x="0"
|
||||
inkscape:cy="12"
|
||||
inkscape:cx="12"
|
||||
inkscape:zoom="38.125"
|
||||
showgrid="false"
|
||||
id="namedview5810"
|
||||
inkscape:window-height="1344"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<path
|
||||
style="stroke-width:1.25;fill:#000000;fill-opacity:0.77999997"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.5,9.5 h -5 v -5 C 14.5,3.12 13.38,2 12,2 10.62,2 9.5,3.12 9.5,4.5 l 0.08875,5 H 4.5 C 3.12,9.5 2,10.62 2,12 c 0,1.38 1.12,2.5 2.5,2.5 L 9.58875,14.41125 9.5,19.5 c 0,1.38 1.12,2.5 2.5,2.5 1.38,0 2.5,-1.12 2.5,-2.5 V 14.41125 L 19.5,14.5 C 20.88,14.5 22,13.38 22,12 22,10.62 20.88,9.5 19.5,9.5 Z"
|
||||
id="path5806"
|
||||
d="m 19.5,9.5 h -5 v -5 C 14.5,3.12 13.38,2 12,2 10.62,2 9.5,3.12 9.5,4.5 l 0.08875,5 H 4.5 C 3.12,9.5 2,10.62 2,12 c 0,1.38 1.12,2.5 2.5,2.5 L 9.58875,14.41125 9.5,19.5 c 0,1.38 1.12,2.5 2.5,2.5 1.38,0 2.5,-1.12 2.5,-2.5 V 14.41125 L 19.5,14.5 C 20.88,14.5 22,13.38 22,12 22,10.62 20.88,9.5 19.5,9.5 Z" />
|
||||
style="stroke-width:1.25;fill:#000000;fill-opacity:0.77999997" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.1 KiB |
31
nw/assets/icons/fallback/backward-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg8980"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata8986">
|
||||
<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>
|
||||
<defs
|
||||
id="defs8984" />
|
||||
<path
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.28574"
|
||||
id="path8978"
|
||||
d="m 17.565474,3.7531206 c -1.002875,-1.0041608 -2.63319,-1.0041608 -3.636065,0 L 5.6814051,11.999839 13.929409,20.246558 C 14.430847,20.749281 15.089144,21 15.747442,21 c 0.658297,0 1.316595,-0.250719 1.818032,-0.753442 1.004161,-1.004161 1.004161,-2.631904 0,-3.636065 l -4.609368,-4.610654 4.609368,-4.6106535 c 1.004161,-1.0041608 1.004161,-2.6319041 0,-3.6360649 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
31
nw/assets/icons/fallback/backward.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg8980"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata8986">
|
||||
<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>
|
||||
<defs
|
||||
id="defs8984" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:0.78;stroke-width:1.28574"
|
||||
id="path8978"
|
||||
d="m 17.565474,3.7531206 c -1.002875,-1.0041608 -2.63319,-1.0041608 -3.636065,0 L 5.6814051,11.999839 13.929409,20.246558 C 14.430847,20.749281 15.089144,21 15.747442,21 c 0.658297,0 1.316595,-0.250719 1.818032,-0.753442 1.004161,-1.004161 1.004161,-2.631904 0,-3.636065 l -4.609368,-4.610654 4.609368,-4.6106535 c 1.004161,-1.0041608 1.004161,-2.6319041 0,-3.6360649 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
31
nw/assets/icons/fallback/bullet-off-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg11603"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata11609">
|
||||
<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>
|
||||
<defs
|
||||
id="defs11607" />
|
||||
<path
|
||||
style="stroke-width:1.5;fill:#aeaeae;fill-opacity:1"
|
||||
id="path11601"
|
||||
d="m 12,6 c 3.3075,0 6,2.691 6,6 0,3.309 -2.6925,6 -6,6 C 8.6925,18 6,15.309 6,12 6,8.691 8.6925,6 12,6 m 0,-3 c -4.971,0 -9,4.029 -9,9 0,4.968 4.029,9 9,9 4.968,0 9,-4.032 9,-9 0,-4.971 -4.032,-9 -9,-9 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1011 B |
31
nw/assets/icons/fallback/bullet-off.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg11603"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata11609">
|
||||
<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>
|
||||
<defs
|
||||
id="defs11607" />
|
||||
<path
|
||||
style="stroke-width:1.5;fill:#000000;fill-opacity:0.78039217"
|
||||
id="path11601"
|
||||
d="m 12,6 c 3.3075,0 6,2.691 6,6 0,3.309 -2.6925,6 -6,6 C 8.6925,18 6,15.309 6,12 6,8.691 8.6925,6 12,6 m 0,-3 c -4.971,0 -9,4.029 -9,9 0,4.968 4.029,9 9,9 4.968,0 9,-4.032 9,-9 0,-4.971 -4.032,-9 -9,-9 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1020 B |
31
nw/assets/icons/fallback/bullet-on-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg10879"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata10885">
|
||||
<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>
|
||||
<defs
|
||||
id="defs10883" />
|
||||
<path
|
||||
style="stroke-width:1.5;fill:#aeaeae;fill-opacity:1"
|
||||
id="path10877"
|
||||
d="M 21,12 C 21,9.5145 19.992,7.2645 18.3645,5.6355 16.7355,4.008 14.4855,3 12,3 9.516,3 7.266,4.008 5.637,5.6355 4.008,7.2645 3,9.5145 3,12 3,14.484 4.008,16.734 5.637,18.363 7.266,19.992 9.516,21 12,21 14.4855,21 16.7355,19.992 18.3645,18.363 19.992,16.734 21,14.484 21,12 Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
31
nw/assets/icons/fallback/bullet-on.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg10879"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata10885">
|
||||
<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>
|
||||
<defs
|
||||
id="defs10883" />
|
||||
<path
|
||||
style="stroke-width:1.5;fill:#000000;fill-opacity:0.78039217"
|
||||
id="path10877"
|
||||
d="M 21,12 C 21,9.5145 19.992,7.2645 18.3645,5.6355 16.7355,4.008 14.4855,3 12,3 9.516,3 7.266,4.008 5.637,5.6355 4.008,7.2645 3,9.5145 3,12 3,14.484 4.008,16.734 5.637,18.363 7.266,19.992 9.516,21 12,21 14.4855,21 16.7355,19.992 18.3645,18.363 19.992,16.734 21,14.484 21,12 Z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.1 KiB |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="tick.svg"
|
||||
id="svg896"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
version="1.2"
|
||||
width="24"
|
||||
version="1.2">
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg896">
|
||||
<metadata
|
||||
id="metadata902">
|
||||
<rdf:RDF>
|
||||
@@ -28,29 +24,8 @@
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs900" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg896"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="1"
|
||||
inkscape:window-x="2560"
|
||||
inkscape:cy="13.298248"
|
||||
inkscape:cx="11.288366"
|
||||
inkscape:zoom="34.117902"
|
||||
inkscape:pagecheckerboard="true"
|
||||
showgrid="false"
|
||||
id="namedview898"
|
||||
inkscape:window-height="1370"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<path
|
||||
style="stroke-width:1.3846;fill:#aeaeae;fill-opacity:1"
|
||||
d="M 19.576035,3.3487939 C 18.237131,2.6038813 16.550693,3.0884898 15.809935,4.4246248 L 10.66893,13.676495 7.726664,10.734229 c -1.0813694,-1.0813704 -2.8342677,-1.0813704 -3.9156371,0 -1.0813693,1.081369 -1.0813693,2.834267 0,3.915637 l 5.538383,5.538383 c 0.523378,0.524762 1.2295221,0.812758 1.9578191,0.812758 l 0.383533,-0.02769 c 0.859834,-0.12046 1.614439,-0.636914 2.03674,-1.397057 L 20.650482,7.1148966 C 21.39401,5.777375 20.91217,4.0923218 19.576035,3.3487939 Z"
|
||||
id="path894"
|
||||
d="M 19.576035,3.3487939 C 18.237131,2.6038813 16.550693,3.0884898 15.809935,4.4246248 L 10.66893,13.676495 7.726664,10.734229 c -1.0813694,-1.0813704 -2.8342677,-1.0813704 -3.9156371,0 -1.0813693,1.081369 -1.0813693,2.834267 0,3.915637 l 5.538383,5.538383 c 0.523378,0.524762 1.2295221,0.812758 1.9578191,0.812758 l 0.383533,-0.02769 c 0.859834,-0.12046 1.614439,-0.636914 2.03674,-1.397057 L 20.650482,7.1148966 C 21.39401,5.777375 20.91217,4.0923218 19.576035,3.3487939 Z" />
|
||||
style="stroke-width:1.3846;fill:#aeaeae;fill-opacity:1" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="tick.svg"
|
||||
id="svg896"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
version="1.2"
|
||||
width="24"
|
||||
version="1.2">
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg896">
|
||||
<metadata
|
||||
id="metadata902">
|
||||
<rdf:RDF>
|
||||
@@ -28,29 +24,8 @@
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs900" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg896"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="1"
|
||||
inkscape:window-x="2560"
|
||||
inkscape:cy="13.298248"
|
||||
inkscape:cx="11.288366"
|
||||
inkscape:zoom="34.117902"
|
||||
inkscape:pagecheckerboard="true"
|
||||
showgrid="false"
|
||||
id="namedview898"
|
||||
inkscape:window-height="1370"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<path
|
||||
style="stroke-width:1.3846;fill:#000000;fill-opacity:0.77999997"
|
||||
d="M 19.576035,3.3487939 C 18.237131,2.6038813 16.550693,3.0884898 15.809935,4.4246248 L 10.66893,13.676495 7.726664,10.734229 c -1.0813694,-1.0813704 -2.8342677,-1.0813704 -3.9156371,0 -1.0813693,1.081369 -1.0813693,2.834267 0,3.915637 l 5.538383,5.538383 c 0.523378,0.524762 1.2295221,0.812758 1.9578191,0.812758 l 0.383533,-0.02769 c 0.859834,-0.12046 1.614439,-0.636914 2.03674,-1.397057 L 20.650482,7.1148966 C 21.39401,5.777375 20.91217,4.0923218 19.576035,3.3487939 Z"
|
||||
id="path894"
|
||||
d="M 19.576035,3.3487939 C 18.237131,2.6038813 16.550693,3.0884898 15.809935,4.4246248 L 10.66893,13.676495 7.726664,10.734229 c -1.0813694,-1.0813704 -2.8342677,-1.0813704 -3.9156371,0 -1.0813693,1.081369 -1.0813693,2.834267 0,3.915637 l 5.538383,5.538383 c 0.523378,0.524762 1.2295221,0.812758 1.9578191,0.812758 l 0.383533,-0.02769 c 0.859834,-0.12046 1.614439,-0.636914 2.03674,-1.397057 L 20.650482,7.1148966 C 21.39401,5.777375 20.91217,4.0923218 19.576035,3.3487939 Z" />
|
||||
style="stroke-width:1.3846;fill:#000000;fill-opacity:0.77999997" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 1.3 KiB |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg8936"
|
||||
sodipodi:docname="times.svg"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)">
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata8942">
|
||||
<rdf:RDF>
|
||||
@@ -22,35 +18,14 @@
|
||||
<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>
|
||||
<defs
|
||||
id="defs8940" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1344"
|
||||
id="namedview8938"
|
||||
showgrid="false"
|
||||
inkscape:zoom="38.125"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg8936" />
|
||||
<path
|
||||
d="m 19.0412,4.9586375 c -1.014432,-1.0157327 -2.663535,-1.0157327 -3.677967,0 L 12.000001,8.3218703 8.6367669,4.9586375 c -1.0144323,-1.0157327 -2.663535,-1.0157327 -3.6779673,0 -1.0157327,1.0157328 -1.0157327,2.6622343 0,3.6779673 L 8.3207319,11.999838 4.9587996,15.36307 c -1.0157327,1.015733 -1.0157327,2.662235 0,3.677968 0.5072161,0.508516 1.1730998,0.762124 1.8389836,0.762124 0.6658835,0 1.3317669,-0.253608 1.8389837,-0.762124 l 3.3632341,-3.363233 3.363232,3.363233 c 0.507216,0.508516 1.173099,0.762124 1.838984,0.762124 0.665882,0 1.331765,-0.253608 1.838983,-0.762124 1.015733,-1.015733 1.015733,-2.662235 0,-3.677968 L 15.679268,11.999838 19.0412,8.6366048 c 1.015733,-1.015733 1.015733,-2.6622345 0,-3.6779673 z"
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.30056"
|
||||
id="path8934"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.30056" />
|
||||
d="m 19.0412,4.9586375 c -1.014432,-1.0157327 -2.663535,-1.0157327 -3.677967,0 L 12.000001,8.3218703 8.6367669,4.9586375 c -1.0144323,-1.0157327 -2.663535,-1.0157327 -3.6779673,0 -1.0157327,1.0157328 -1.0157327,2.6622343 0,3.6779673 L 8.3207319,11.999838 4.9587996,15.36307 c -1.0157327,1.015733 -1.0157327,2.662235 0,3.677968 0.5072161,0.508516 1.1730998,0.762124 1.8389836,0.762124 0.6658835,0 1.3317669,-0.253608 1.8389837,-0.762124 l 3.3632341,-3.363233 3.363232,3.363233 c 0.507216,0.508516 1.173099,0.762124 1.838984,0.762124 0.665882,0 1.331765,-0.253608 1.838983,-0.762124 1.015733,-1.015733 1.015733,-2.662235 0,-3.677968 L 15.679268,11.999838 19.0412,8.6366048 c 1.015733,-1.015733 1.015733,-2.6622345 0,-3.6779673 z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)"
|
||||
sodipodi:docname="times.svg"
|
||||
id="svg8936"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
version="1.2"
|
||||
width="24"
|
||||
version="1.2">
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg8936">
|
||||
<metadata
|
||||
id="metadata8942">
|
||||
<rdf:RDF>
|
||||
@@ -22,34 +18,14 @@
|
||||
<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>
|
||||
<defs
|
||||
id="defs8940" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg8936"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-x="0"
|
||||
inkscape:cy="12"
|
||||
inkscape:cx="12"
|
||||
inkscape:zoom="38.125"
|
||||
showgrid="false"
|
||||
id="namedview8938"
|
||||
inkscape:window-height="1344"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:0.78;stroke-width:1.30056"
|
||||
inkscape:connector-curvature="0"
|
||||
d="m 19.0412,4.9586375 c -1.014432,-1.0157327 -2.663535,-1.0157327 -3.677967,0 L 12.000001,8.3218703 8.6367669,4.9586375 c -1.0144323,-1.0157327 -2.663535,-1.0157327 -3.6779673,0 -1.0157327,1.0157328 -1.0157327,2.6622343 0,3.6779673 L 8.3207319,11.999838 4.9587996,15.36307 c -1.0157327,1.015733 -1.0157327,2.662235 0,3.677968 0.5072161,0.508516 1.1730998,0.762124 1.8389836,0.762124 0.6658835,0 1.3317669,-0.253608 1.8389837,-0.762124 l 3.3632341,-3.363233 3.363232,3.363233 c 0.507216,0.508516 1.173099,0.762124 1.838984,0.762124 0.665882,0 1.331765,-0.253608 1.838983,-0.762124 1.015733,-1.015733 1.015733,-2.662235 0,-3.677968 L 15.679268,11.999838 19.0412,8.6366048 c 1.015733,-1.015733 1.015733,-2.6622345 0,-3.6779673 z"
|
||||
id="path8934"
|
||||
d="m 19.0412,4.9586375 c -1.014432,-1.0157327 -2.663535,-1.0157327 -3.677967,0 L 12.000001,8.3218703 8.6367669,4.9586375 c -1.0144323,-1.0157327 -2.663535,-1.0157327 -3.6779673,0 -1.0157327,1.0157328 -1.0157327,2.6622343 0,3.6779673 L 8.3207319,11.999838 4.9587996,15.36307 c -1.0157327,1.015733 -1.0157327,2.662235 0,3.677968 0.5072161,0.508516 1.1730998,0.762124 1.8389836,0.762124 0.6658835,0 1.3317669,-0.253608 1.8389837,-0.762124 l 3.3632341,-3.363233 3.363232,3.363233 c 0.507216,0.508516 1.173099,0.762124 1.838984,0.762124 0.665882,0 1.331765,-0.253608 1.838983,-0.762124 1.015733,-1.015733 1.015733,-2.662235 0,-3.677968 L 15.679268,11.999838 19.0412,8.6366048 c 1.015733,-1.015733 1.015733,-2.6622345 0,-3.6779673 z" />
|
||||
style="fill:#000000;fill-opacity:0.78;stroke-width:1.30056" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.5 KiB |
31
nw/assets/icons/fallback/forward-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg8980"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata8986">
|
||||
<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>
|
||||
<defs
|
||||
id="defs8984" />
|
||||
<path
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.28574"
|
||||
id="path8978"
|
||||
d="m 6.4345258,3.7531206 c 1.002875,-1.0041608 2.63319,-1.0041608 3.6360652,0 l 8.248004,8.2467184 -8.248004,8.246719 C 9.5691528,20.749281 8.9108558,21 8.2525578,21 c -0.658297,0 -1.316595,-0.250719 -1.818032,-0.753442 -1.004161,-1.004161 -1.004161,-2.631904 0,-3.636065 L 11.043894,11.999839 6.4345258,7.3891855 c -1.004161,-1.0041608 -1.004161,-2.6319041 0,-3.6360649 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
31
nw/assets/icons/fallback/forward.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg8980"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata8986">
|
||||
<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>
|
||||
<defs
|
||||
id="defs8984" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:0.77999997;stroke-width:1.28574"
|
||||
id="path8978"
|
||||
d="m 6.4345258,3.7531206 c 1.002875,-1.0041608 2.63319,-1.0041608 3.6360652,0 l 8.248004,8.2467184 -8.248004,8.246719 C 9.5691528,20.749281 8.9108558,21 8.2525578,21 c -0.658297,0 -1.316595,-0.250719 -1.818032,-0.753442 -1.004161,-1.004161 -1.004161,-2.631904 0,-3.636065 L 11.043894,11.999839 6.4345258,7.3891855 c -1.004161,-1.0041608 -1.004161,-2.6319041 0,-3.6360649 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
31
nw/assets/icons/fallback/hash-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg5204">
|
||||
<metadata
|
||||
id="metadata5210">
|
||||
<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>
|
||||
<defs
|
||||
id="defs5208" />
|
||||
<path
|
||||
id="rect928"
|
||||
d="M 7.75 2 C 6.7805 2 6 2.7805 6 3.75 L 6 5.5 L 4.1621094 5.5 C 3.2410844 5.5 2.5 6.2805 2.5 7.25 C 2.5 8.2195 3.2410844 9 4.1621094 9 L 6 9 L 6 15 L 4.1621094 15 C 3.2410844 15 2.5 15.7805 2.5 16.75 C 2.5 17.7195 3.2410844 18.5 4.1621094 18.5 L 6 18.5 L 6 20.25 C 6 21.2195 6.7805 22 7.75 22 C 8.7195 22 9.5 21.2195 9.5 20.25 L 9.5 18.5 L 14.5 18.5 L 14.5 20.25 C 14.5 21.2195 15.2805 22 16.25 22 C 17.2195 22 18 21.2195 18 20.25 L 18 18.5 L 19.837891 18.5 C 20.758916 18.5 21.5 17.7195 21.5 16.75 C 21.5 15.7805 20.758916 15 19.837891 15 L 18 15 L 18 9 L 19.837891 9 C 20.758916 9 21.5 8.2195 21.5 7.25 C 21.5 6.2805 20.758916 5.5 19.837891 5.5 L 18 5.5 L 18 3.75 C 18 2.7805 17.2195 2 16.25 2 C 15.2805 2 14.5 2.7805 14.5 3.75 L 14.5 5.5 L 9.5 5.5 L 9.5 3.75 C 9.5 2.7805 8.7195 2 7.75 2 z M 9.5 9 L 14.5 9 L 14.5 15 L 9.5 15 L 9.5 9 z "
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke:none;stroke-width:1.7544229;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
31
nw/assets/icons/fallback/hash.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg5204">
|
||||
<metadata
|
||||
id="metadata5210">
|
||||
<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>
|
||||
<defs
|
||||
id="defs5208" />
|
||||
<path
|
||||
id="rect928"
|
||||
d="M 7.75 2 C 6.7805 2 6 2.7805 6 3.75 L 6 5.5 L 4.1621094 5.5 C 3.2410844 5.5 2.5 6.2805 2.5 7.25 C 2.5 8.2195 3.2410844 9 4.1621094 9 L 6 9 L 6 15 L 4.1621094 15 C 3.2410844 15 2.5 15.7805 2.5 16.75 C 2.5 17.7195 3.2410844 18.5 4.1621094 18.5 L 6 18.5 L 6 20.25 C 6 21.2195 6.7805 22 7.75 22 C 8.7195 22 9.5 21.2195 9.5 20.25 L 9.5 18.5 L 14.5 18.5 L 14.5 20.25 C 14.5 21.2195 15.2805 22 16.25 22 C 17.2195 22 18 21.2195 18 20.25 L 18 18.5 L 19.837891 18.5 C 20.758916 18.5 21.5 17.7195 21.5 16.75 C 21.5 15.7805 20.758916 15 19.837891 15 L 18 15 L 18 9 L 19.837891 9 C 20.758916 9 21.5 8.2195 21.5 7.25 C 21.5 6.2805 20.758916 5.5 19.837891 5.5 L 18 5.5 L 18 3.75 C 18 2.7805 17.2195 2 16.25 2 C 15.2805 2 14.5 2.7805 14.5 3.75 L 14.5 5.5 L 9.5 5.5 L 9.5 3.75 C 9.5 2.7805 8.7195 2 7.75 2 z M 9.5 9 L 14.5 9 L 14.5 15 L 9.5 15 L 9.5 9 z "
|
||||
style="fill:#000000;fill-opacity:0.78039216;stroke:none;stroke-width:1.7544229;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
56
nw/assets/icons/fallback/maximise-dark.svg
Normal file
@@ -0,0 +1,56 @@
|
||||
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg7486"
|
||||
sodipodi:docname="arrow-maximise.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata7492">
|
||||
<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>
|
||||
<defs
|
||||
id="defs7490" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1370"
|
||||
id="namedview7488"
|
||||
showgrid="false"
|
||||
inkscape:zoom="38.125"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="2560"
|
||||
inkscape:window-y="1"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg7486" />
|
||||
<path
|
||||
d="m 15.75,2 c -0.69125,0 -1.25,0.56 -1.25,1.25 0,0.69 0.55875,1.25 1.25,1.25 h 1.9825 l -4.11625,4.11625 c -0.48875,0.48875 -0.48875,1.27875 0,1.7675 C 13.86,10.6275 14.18,10.75 14.5,10.75 c 0.32,0 0.64,-0.1225 0.88375,-0.36625 L 19.5,6.2675 V 8.25 c 0,0.69 0.55875,1.25 1.25,1.25 C 21.44125,9.5 22,8.94 22,8.25 V 2 Z M 8.61625,13.61625 4.5,17.7325 V 15.75 C 4.5,15.06 3.94125,14.5 3.25,14.5 2.55875,14.5 2,15.06 2,15.75 v 6.24875 H 3.245 L 8.25,22 C 8.94,22 9.5,21.44 9.5,20.75 9.5,20.06 8.94125,19.5 8.25,19.5 H 6.2675 l 4.11625,-4.115 c 0.48875,-0.48875 0.48875,-1.27875 0,-1.7675 C 9.895,13.12875 9.105,13.1275 8.61625,13.6163 Z M 5.75,12 C 6.44,12 7,11.44 7,10.75 V 7 h 3.75 C 11.44125,7 12,6.44 12,5.75 12,5.06 11.44125,4.5 10.75,4.5 H 4.50125 L 4.5,10.75 C 4.5,11.44 5.05875,12 5.75,12 Z m 12.5,0 C 17.55875,12 17,12.56 17,13.25 V 17 H 13.25 C 12.55875,17 12,17.56 12,18.25 c 0,0.69 0.55875,1.25 1.25,1.25 H 19.5 V 13.25 C 19.5,12.56 18.94125,12 18.25,12 Z"
|
||||
id="path7484"
|
||||
style="stroke-width:1.25;fill:#aeaeae;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
56
nw/assets/icons/fallback/maximise.svg
Normal file
@@ -0,0 +1,56 @@
|
||||
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg7486"
|
||||
sodipodi:docname="arrow-maximise.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata7492">
|
||||
<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>
|
||||
<defs
|
||||
id="defs7490" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1370"
|
||||
id="namedview7488"
|
||||
showgrid="false"
|
||||
inkscape:zoom="38.125"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="2560"
|
||||
inkscape:window-y="1"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg7486" />
|
||||
<path
|
||||
d="m 15.75,2 c -0.69125,0 -1.25,0.56 -1.25,1.25 0,0.69 0.55875,1.25 1.25,1.25 h 1.9825 l -4.11625,4.11625 c -0.48875,0.48875 -0.48875,1.27875 0,1.7675 C 13.86,10.6275 14.18,10.75 14.5,10.75 c 0.32,0 0.64,-0.1225 0.88375,-0.36625 L 19.5,6.2675 V 8.25 c 0,0.69 0.55875,1.25 1.25,1.25 C 21.44125,9.5 22,8.94 22,8.25 V 2 Z M 8.61625,13.61625 4.5,17.7325 V 15.75 C 4.5,15.06 3.94125,14.5 3.25,14.5 2.55875,14.5 2,15.06 2,15.75 v 6.24875 H 3.245 L 8.25,22 C 8.94,22 9.5,21.44 9.5,20.75 9.5,20.06 8.94125,19.5 8.25,19.5 H 6.2675 l 4.11625,-4.115 c 0.48875,-0.48875 0.48875,-1.27875 0,-1.7675 C 9.895,13.12875 9.105,13.1275 8.61625,13.6163 Z M 5.75,12 C 6.44,12 7,11.44 7,10.75 V 7 h 3.75 C 11.44125,7 12,6.44 12,5.75 12,5.06 11.44125,4.5 10.75,4.5 H 4.50125 L 4.5,10.75 C 4.5,11.44 5.05875,12 5.75,12 Z m 12.5,0 C 17.55875,12 17,12.56 17,13.25 V 17 H 13.25 C 12.55875,17 12,17.56 12,18.25 c 0,0.69 0.55875,1.25 1.25,1.25 H 19.5 V 13.25 C 19.5,12.56 18.94125,12 18.25,12 Z"
|
||||
id="path7484"
|
||||
style="stroke-width:1.25;fill:#000000;fill-opacity:0.77999997" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
55
nw/assets/icons/fallback/minimise-dark.svg
Normal file
@@ -0,0 +1,55 @@
|
||||
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="arrow-minimise.svg"
|
||||
id="svg8816"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata8822">
|
||||
<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>
|
||||
<defs
|
||||
id="defs8820" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg8816"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="1"
|
||||
inkscape:window-x="2560"
|
||||
inkscape:cy="12"
|
||||
inkscape:cx="12"
|
||||
inkscape:zoom="38.125"
|
||||
showgrid="false"
|
||||
id="namedview8818"
|
||||
inkscape:window-height="1370"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<path
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.24999"
|
||||
id="path8814"
|
||||
d="m 4.6514795,13.249863 c -0.6912284,0 -1.2499609,0.560009 -1.2499609,1.25002 0,0.69001 0.5587325,1.250019 1.2499609,1.250019 h 1.8311928 l -4.1161214,4.116314 c -0.4887347,0.488758 -0.4887347,1.27877 0,1.767528 C 2.6102933,21.877498 2.9302833,22 3.2502733,22 c 0.31999,0 0.63998,-0.122502 0.8837224,-0.366256 l 4.2673662,-4.267567 v 2.133784 c 0,0.69001 0.558733,1.250019 1.249961,1.250019 0.6912291,0 1.0987161,-0.560009 1.0987161,-1.250019 v -6.250098 z m 1.0987157,-2.500039 c 0.6899784,0 1.2499609,-0.560009 1.2499609,-1.2500188 V 6.9997658 h 2.4999218 c 0.6912291,0 1.2499611,-0.5600087 1.2499611,-1.2500195 0,-0.6900108 -0.558732,-1.2500195 -1.2499611,-1.2500195 H 4.5014842 l -0.00125,5.0000784 c 0,0.6900098 0.5587325,1.2500188 1.249961,1.2500188 z m 12.4996098,2.500039 c -0.691229,0 -1.249961,0.560009 -1.249961,1.25002 v 2.500039 h -2.499922 c -0.691229,0 -1.249961,0.560008 -1.249961,1.250019 0,0.690011 0.558732,1.25002 1.249961,1.25002 h 4.999844 v -5.000078 c 0,-0.690011 -0.558733,-1.25002 -1.249961,-1.25002 z M 19.866004,2.3659435 15.749883,6.4822577 V 4.4997268 c 0,-0.6900108 -0.558733,-1.2500195 -1.249961,-1.2500195 -0.691229,0 -1.249961,0.5600087 -1.249961,1.2500195 v 6.2500972 h 6.249805 c 0.689978,0 1.249961,-0.560009 1.249961,-1.2500188 0,-0.690011 -0.558733,-1.25002 -1.249961,-1.25002 h -1.982438 l 4.116121,-4.1150641 c 0.488735,-0.4887576 0.488735,-1.2787699 0,-1.7675276 -0.488735,-0.4887576 -1.27871,-0.4900076 -1.767445,-0.00125 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
55
nw/assets/icons/fallback/minimise.svg
Normal file
@@ -0,0 +1,55 @@
|
||||
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="arrow-minimise.svg"
|
||||
id="svg8816"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata8822">
|
||||
<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>
|
||||
<defs
|
||||
id="defs8820" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg8816"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="1"
|
||||
inkscape:window-x="2560"
|
||||
inkscape:cy="12"
|
||||
inkscape:cx="12"
|
||||
inkscape:zoom="38.125"
|
||||
showgrid="false"
|
||||
id="namedview8818"
|
||||
inkscape:window-height="1370"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<path
|
||||
style="fill:#000000;fill-opacity:0.77999997;stroke-width:1.24999"
|
||||
id="path8814"
|
||||
d="m 4.6514795,13.249863 c -0.6912284,0 -1.2499609,0.560009 -1.2499609,1.25002 0,0.69001 0.5587325,1.250019 1.2499609,1.250019 h 1.8311928 l -4.1161214,4.116314 c -0.4887347,0.488758 -0.4887347,1.27877 0,1.767528 C 2.6102933,21.877498 2.9302833,22 3.2502733,22 c 0.31999,0 0.63998,-0.122502 0.8837224,-0.366256 l 4.2673662,-4.267567 v 2.133784 c 0,0.69001 0.558733,1.250019 1.249961,1.250019 0.6912291,0 1.0987161,-0.560009 1.0987161,-1.250019 v -6.250098 z m 1.0987157,-2.500039 c 0.6899784,0 1.2499609,-0.560009 1.2499609,-1.2500188 V 6.9997658 h 2.4999218 c 0.6912291,0 1.2499611,-0.5600087 1.2499611,-1.2500195 0,-0.6900108 -0.558732,-1.2500195 -1.2499611,-1.2500195 H 4.5014842 l -0.00125,5.0000784 c 0,0.6900098 0.5587325,1.2500188 1.249961,1.2500188 z m 12.4996098,2.500039 c -0.691229,0 -1.249961,0.560009 -1.249961,1.25002 v 2.500039 h -2.499922 c -0.691229,0 -1.249961,0.560008 -1.249961,1.250019 0,0.690011 0.558732,1.25002 1.249961,1.25002 h 4.999844 v -5.000078 c 0,-0.690011 -0.558733,-1.25002 -1.249961,-1.25002 z M 19.866004,2.3659435 15.749883,6.4822577 V 4.4997268 c 0,-0.6900108 -0.558733,-1.2500195 -1.249961,-1.2500195 -0.691229,0 -1.249961,0.5600087 -1.249961,1.2500195 v 6.2500972 h 6.249805 c 0.689978,0 1.249961,-0.560009 1.249961,-1.2500188 0,-0.690011 -0.558733,-1.25002 -1.249961,-1.25002 h -1.982438 l 4.116121,-4.1150641 c 0.488735,-0.4887576 0.488735,-1.2787699 0,-1.7675276 -0.488735,-0.4887576 -1.27871,-0.4900076 -1.767445,-0.00125 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 3.0 KiB |
@@ -6,165 +6,133 @@
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:export-ydpi="3"
|
||||
inkscape:export-xdpi="3"
|
||||
inkscape:export-filename="/home/vkbo/Code/novelWriter/Icons/novelWriter-32.png"
|
||||
width="1024"
|
||||
height="1024"
|
||||
viewBox="0 0 270.93333 270.93334"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)"
|
||||
sodipodi:docname="mimetype-nwx.svg">
|
||||
version="1.1"
|
||||
viewBox="0 0 270.93333 270.93334"
|
||||
height="1024"
|
||||
width="1024">
|
||||
<defs
|
||||
id="defs2">
|
||||
<linearGradient
|
||||
id="linearGradient2515"
|
||||
inkscape:collect="always">
|
||||
id="linearGradient2515">
|
||||
<stop
|
||||
id="stop2511"
|
||||
style="stop-color:#f7f7f7;stop-opacity:1"
|
||||
offset="0"
|
||||
style="stop-color:#f7f7f7;stop-opacity:1" />
|
||||
id="stop2511" />
|
||||
<stop
|
||||
id="stop2513"
|
||||
style="stop-color:#e5e5e5;stop-opacity:1"
|
||||
offset="1"
|
||||
style="stop-color:#e5e5e5;stop-opacity:1" />
|
||||
id="stop2513" />
|
||||
</linearGradient>
|
||||
<rect
|
||||
id="rect852"
|
||||
x="60.484347"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785888"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484347" />
|
||||
id="rect852" />
|
||||
<rect
|
||||
x="13.463703"
|
||||
y="18.019813"
|
||||
width="177.70083"
|
||||
id="rect1474"
|
||||
height="28.631245"
|
||||
id="rect1474" />
|
||||
width="177.70083"
|
||||
y="18.019813"
|
||||
x="13.463703" />
|
||||
<rect
|
||||
x="60.484348"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785889"
|
||||
id="rect852-7" />
|
||||
<rect
|
||||
x="60.484348"
|
||||
y="205.79962"
|
||||
width="130.57787"
|
||||
height="65.785889"
|
||||
id="rect1544" />
|
||||
<rect
|
||||
id="rect1570"
|
||||
id="rect852-7"
|
||||
height="65.785889"
|
||||
width="130.57787"
|
||||
y="205.79962"
|
||||
x="60.484348" />
|
||||
<rect
|
||||
id="rect1587"
|
||||
height="28.631245"
|
||||
width="177.70083"
|
||||
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"
|
||||
x="13.463703" />
|
||||
width="177.70083"
|
||||
height="28.631245"
|
||||
id="rect1587" />
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter1444">
|
||||
id="filter1444"
|
||||
style="color-interpolation-filters:sRGB">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
id="feFlood1434"
|
||||
result="flood"
|
||||
id="feFlood1434" />
|
||||
flood-color="rgb(0,0,0)"
|
||||
flood-opacity="0.498039" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
id="feComposite1436"
|
||||
result="composite1"
|
||||
id="feComposite1436" />
|
||||
operator="in"
|
||||
in2="SourceGraphic"
|
||||
in="flood" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur1438"
|
||||
result="blur"
|
||||
id="feGaussianBlur1438" />
|
||||
stdDeviation="3"
|
||||
in="composite1" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
id="feOffset1440"
|
||||
result="offset"
|
||||
id="feOffset1440" />
|
||||
dy="6"
|
||||
dx="6" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
id="feComposite1442"
|
||||
result="composite2"
|
||||
id="feComposite1442" />
|
||||
operator="over"
|
||||
in2="offset"
|
||||
in="SourceGraphic" />
|
||||
</filter>
|
||||
<filter
|
||||
style="color-interpolation-filters:sRGB"
|
||||
inkscape:label="Drop Shadow"
|
||||
id="filter1456">
|
||||
id="filter1456"
|
||||
style="color-interpolation-filters:sRGB">
|
||||
<feFlood
|
||||
flood-opacity="0.498039"
|
||||
flood-color="rgb(0,0,0)"
|
||||
id="feFlood1446"
|
||||
result="flood"
|
||||
id="feFlood1446" />
|
||||
flood-color="rgb(0,0,0)"
|
||||
flood-opacity="0.498039" />
|
||||
<feComposite
|
||||
in="flood"
|
||||
in2="SourceGraphic"
|
||||
operator="in"
|
||||
id="feComposite1448"
|
||||
result="composite1"
|
||||
id="feComposite1448" />
|
||||
operator="in"
|
||||
in2="SourceGraphic"
|
||||
in="flood" />
|
||||
<feGaussianBlur
|
||||
in="composite1"
|
||||
stdDeviation="3"
|
||||
id="feGaussianBlur1450"
|
||||
result="blur"
|
||||
id="feGaussianBlur1450" />
|
||||
stdDeviation="3"
|
||||
in="composite1" />
|
||||
<feOffset
|
||||
dx="6"
|
||||
dy="6"
|
||||
id="feOffset1452"
|
||||
result="offset"
|
||||
id="feOffset1452" />
|
||||
dy="6"
|
||||
dx="6" />
|
||||
<feComposite
|
||||
in="SourceGraphic"
|
||||
in2="offset"
|
||||
operator="over"
|
||||
id="feComposite1454"
|
||||
result="composite2"
|
||||
id="feComposite1454" />
|
||||
operator="over"
|
||||
in2="offset"
|
||||
in="SourceGraphic" />
|
||||
</filter>
|
||||
<radialGradient
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(2.4110274,1.7617596,-0.719517,0.98463462,-776.23441,-1372.7537)"
|
||||
r="410"
|
||||
fy="623.97186"
|
||||
fx="605.42725"
|
||||
cy="623.97186"
|
||||
cx="605.42725"
|
||||
id="radialGradient2517"
|
||||
xlink:href="#linearGradient2515"
|
||||
inkscape:collect="always" />
|
||||
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>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="1"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="0.7"
|
||||
inkscape:cx="505.1269"
|
||||
inkscape:cy="568.88259"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer3"
|
||||
inkscape:document-rotation="0"
|
||||
showgrid="false"
|
||||
units="px"
|
||||
inkscape:pagecheckerboard="true"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1344"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
@@ -178,75 +146,62 @@
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="display:inline"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer3"
|
||||
inkscape:label="Sheet">
|
||||
style="display:inline">
|
||||
<path
|
||||
id="rect1481"
|
||||
style="fill:url(#radialGradient2517);fill-opacity:1;stroke:#999999;stroke-width:20;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
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"
|
||||
clip-path="none"
|
||||
transform="scale(0.26458333)"
|
||||
inkscape:label="Page"
|
||||
clip-path="none" />
|
||||
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
|
||||
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"
|
||||
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"
|
||||
id="path1490"
|
||||
inkscape:label="Corner" />
|
||||
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
|
||||
inkscape:label=".nwx"
|
||||
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"
|
||||
id="text850"
|
||||
aria-label=".nwx"
|
||||
transform="matrix(1.7893481,0,0,1.782571,-45.41919,-191.90571)"
|
||||
aria-label=".nwx">
|
||||
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
|
||||
inkscape:label="dot"
|
||||
id="path856"
|
||||
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"
|
||||
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" />
|
||||
id="path856" />
|
||||
<path
|
||||
inkscape:label="n"
|
||||
id="path858"
|
||||
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"
|
||||
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" />
|
||||
id="path858" />
|
||||
<path
|
||||
inkscape:label="w"
|
||||
id="path860"
|
||||
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"
|
||||
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" />
|
||||
id="path860" />
|
||||
<path
|
||||
inkscape:label="x"
|
||||
id="path862"
|
||||
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"
|
||||
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" />
|
||||
id="path862" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:label="Logo"
|
||||
transform="matrix(1.2371037,0,0,1.2371037,206.3182,37.341857)"
|
||||
id="g2509">
|
||||
id="g2509"
|
||||
transform="matrix(1.2371037,0,0,1.2371037,206.3182,37.341857)">
|
||||
<path
|
||||
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"
|
||||
inkscape:label="n"
|
||||
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)"
|
||||
transform="matrix(0.16895991,0,0,0.18329422,-134.6942,-19.491243)"
|
||||
id="rect1406-1"
|
||||
transform="matrix(0.16895991,0,0,0.18329422,-134.6942,-19.491243)" />
|
||||
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
|
||||
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"
|
||||
inkscape:label="Arrow"
|
||||
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)"
|
||||
transform="matrix(0.16895991,0,0,0.18329422,-134.6942,-19.491243)"
|
||||
id="path897"
|
||||
transform="matrix(0.16895991,0,0,0.18329422,-134.6942,-19.491243)" />
|
||||
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
|
||||
inkscape:label="Highlight"
|
||||
ry="3.6658845"
|
||||
rx="3.3791983"
|
||||
y="1.2969339"
|
||||
x="-118.27303"
|
||||
height="82.482399"
|
||||
width="6.7583966"
|
||||
style="display:inline;fill:#c32222;fill-opacity:1;stroke:none;stroke-width:1.75982;stroke-linejoin:round;stroke-opacity:1"
|
||||
id="rect914"
|
||||
style="display:inline;fill:#c32222;fill-opacity:1;stroke:none;stroke-width:1.75982;stroke-linejoin:round;stroke-opacity:1" />
|
||||
width="6.7583966"
|
||||
height="82.482399"
|
||||
x="-118.27303"
|
||||
y="1.2969339"
|
||||
rx="3.3791983"
|
||||
ry="3.6658845" />
|
||||
</g>
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 9.7 KiB |
31
nw/assets/icons/fallback/reference-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg1321"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata1327">
|
||||
<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>
|
||||
<defs
|
||||
id="defs1325" />
|
||||
<path
|
||||
style="stroke-width:1.25;fill:#aeaeae;fill-opacity:1"
|
||||
id="path1319"
|
||||
d="M 12,2 C 6.48625,2 2,6.48625 2,12 c 0,5.51375 4.48625,10 10,10 2.02,0 3.965,-0.59875 5.62375,-1.73 0.57,-0.39 0.7175,-1.1675 0.32875,-1.7375 -0.38875,-0.57125 -1.165,-0.715 -1.7375,-0.32875 C 14.9725,19.0525 13.515,19.5 12,19.5 7.86375,19.5 4.5,16.13625 4.5,12 4.5,7.86375 7.86375,4.5 12,4.5 c 4.13625,0 7.5,3.36375 7.5,7.5 v 0.625 c 0,0.69 -0.56,1.25 -1.25,1.25 -0.69,0 -1.25,-0.56 -1.25,-1.25 v -3.75 c 0,-0.69125 -0.55875,-1.25 -1.25,-1.25 -0.55125,0 -1.00625,0.3625 -1.1725,0.86 C 13.8525,7.95125 12.96625,7.625 12,7.625 9.5875,7.625 7.625,9.5875 7.625,12 c 0,2.4125 1.9625,4.375 4.375,4.375 1.30625,0 2.46875,-0.5875 3.27,-1.49875 0.685,0.90375 1.76,1.49875 2.98,1.49875 2.0675,0 3.75,-1.6825 3.75,-3.75 V 12 C 22,6.48625 17.51375,2 12,2 Z m 0,11.875 c -1.03375,0 -1.875,-0.84125 -1.875,-1.875 0,-1.03375 0.84125,-1.875 1.875,-1.875 1.03375,0 1.875,0.84125 1.875,1.875 0,1.03375 -0.84125,1.875 -1.875,1.875 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
31
nw/assets/icons/fallback/reference.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg1321"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata1327">
|
||||
<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>
|
||||
<defs
|
||||
id="defs1325" />
|
||||
<path
|
||||
style="stroke-width:1.25;fill:#000000;fill-opacity:0.78039217"
|
||||
id="path1319"
|
||||
d="M 12,2 C 6.48625,2 2,6.48625 2,12 c 0,5.51375 4.48625,10 10,10 2.02,0 3.965,-0.59875 5.62375,-1.73 0.57,-0.39 0.7175,-1.1675 0.32875,-1.7375 -0.38875,-0.57125 -1.165,-0.715 -1.7375,-0.32875 C 14.9725,19.0525 13.515,19.5 12,19.5 7.86375,19.5 4.5,16.13625 4.5,12 4.5,7.86375 7.86375,4.5 12,4.5 c 4.13625,0 7.5,3.36375 7.5,7.5 v 0.625 c 0,0.69 -0.56,1.25 -1.25,1.25 -0.69,0 -1.25,-0.56 -1.25,-1.25 v -3.75 c 0,-0.69125 -0.55875,-1.25 -1.25,-1.25 -0.55125,0 -1.00625,0.3625 -1.1725,0.86 C 13.8525,7.95125 12.96625,7.625 12,7.625 9.5875,7.625 7.625,9.5875 7.625,12 c 0,2.4125 1.9625,4.375 4.375,4.375 1.30625,0 2.46875,-0.5875 3.27,-1.49875 0.685,0.90375 1.76,1.49875 2.98,1.49875 2.0675,0 3.75,-1.6825 3.75,-3.75 V 12 C 22,6.48625 17.51375,2 12,2 Z m 0,11.875 c -1.03375,0 -1.875,-0.84125 -1.875,-1.875 0,-1.03375 0.84125,-1.875 1.875,-1.875 1.03375,0 1.875,0.84125 1.875,1.875 0,1.03375 -0.84125,1.875 -1.875,1.875 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.7 KiB |
56
nw/assets/icons/fallback/refresh-dark.svg
Normal file
@@ -0,0 +1,56 @@
|
||||
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg6649"
|
||||
sodipodi:docname="refresh.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata6655">
|
||||
<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>
|
||||
<defs
|
||||
id="defs6653" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1370"
|
||||
id="namedview6651"
|
||||
showgrid="false"
|
||||
inkscape:zoom="38.125"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="2560"
|
||||
inkscape:window-y="1"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6649" />
|
||||
<path
|
||||
d="M 13.162667,12.25611 H 20 V 5.4213831 C 19.989333,3.9083317 19.105333,3.5443996 18.036,4.6148668 L 16.497333,6.1585791 C 15.144,5.0987766 13.488,4.5188846 11.742667,4.5188846 9.676,4.5188846 7.7306667,5.3240679 6.2706667,6.7864621 4.8053333,8.242191 4,10.189828 4,12.25611 4,14.326391 4.8053333,16.271361 6.268,17.731089 7.7306667,19.193484 9.674667,20 11.742667,20 c 2.066666,0 4.012,-0.806516 5.474666,-2.270244 0.394667,-0.395926 0.744,-0.827845 1.04,-1.286427 C 18.72,15.72213 18.510667,14.763642 17.790667,14.303728 17.072,13.842481 16.113333,14.051775 15.652,14.770308 c -0.177333,0.275948 -0.389333,0.533234 -0.624,0.773189 -0.878667,0.87717 -2.045333,1.359747 -3.285333,1.359747 -1.24,0 -2.406667,-0.481244 -3.285334,-1.359747 -0.8759997,-0.87717 -1.3599997,-2.043619 -1.3599997,-3.286054 0,-1.239769 0.4826667,-2.406219 1.3599997,-3.280722 0.878667,-0.87717 2.045334,-1.36108 3.285334,-1.36108 0.917333,0 1.794666,0.26795 2.545333,0.762525 l -1.930667,1.934306 c -1.070666,1.069134 -0.706666,1.943638 0.805334,1.943638 z"
|
||||
id="path6647"
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.33321" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
56
nw/assets/icons/fallback/refresh.svg
Normal file
@@ -0,0 +1,56 @@
|
||||
<?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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg6649"
|
||||
sodipodi:docname="refresh.svg"
|
||||
inkscape:version="1.0 (4035a4fb49, 2020-05-01)">
|
||||
<metadata
|
||||
id="metadata6655">
|
||||
<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>
|
||||
<defs
|
||||
id="defs6653" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1370"
|
||||
id="namedview6651"
|
||||
showgrid="false"
|
||||
inkscape:zoom="38.125"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="2560"
|
||||
inkscape:window-y="1"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg6649" />
|
||||
<path
|
||||
d="M 13.162667,12.25611 H 20 V 5.4213831 C 19.989333,3.9083317 19.105333,3.5443996 18.036,4.6148668 L 16.497333,6.1585791 C 15.144,5.0987766 13.488,4.5188846 11.742667,4.5188846 9.676,4.5188846 7.7306667,5.3240679 6.2706667,6.7864621 4.8053333,8.242191 4,10.189828 4,12.25611 4,14.326391 4.8053333,16.271361 6.268,17.731089 7.7306667,19.193484 9.674667,20 11.742667,20 c 2.066666,0 4.012,-0.806516 5.474666,-2.270244 0.394667,-0.395926 0.744,-0.827845 1.04,-1.286427 C 18.72,15.72213 18.510667,14.763642 17.790667,14.303728 17.072,13.842481 16.113333,14.051775 15.652,14.770308 c -0.177333,0.275948 -0.389333,0.533234 -0.624,0.773189 -0.878667,0.87717 -2.045333,1.359747 -3.285333,1.359747 -1.24,0 -2.406667,-0.481244 -3.285334,-1.359747 -0.8759997,-0.87717 -1.3599997,-2.043619 -1.3599997,-3.286054 0,-1.239769 0.4826667,-2.406219 1.3599997,-3.280722 0.878667,-0.87717 2.045334,-1.36108 3.285334,-1.36108 0.917333,0 1.794666,0.26795 2.545333,0.762525 l -1.930667,1.934306 c -1.070666,1.069134 -0.706666,1.943638 0.805334,1.943638 z"
|
||||
id="path6647"
|
||||
style="fill:#000000;fill-opacity:0.77999997;stroke-width:1.33321" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg5204"
|
||||
sodipodi:docname="minus.svg"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)">
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata5210">
|
||||
<rdf:RDF>
|
||||
@@ -22,35 +18,14 @@
|
||||
<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>
|
||||
<defs
|
||||
id="defs5208" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1344"
|
||||
id="namedview5206"
|
||||
showgrid="false"
|
||||
inkscape:zoom="38.125"
|
||||
inkscape:cx="12"
|
||||
inkscape:cy="12"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg5204" />
|
||||
<path
|
||||
d="M 19.5,9.5 H 4.5 C 3.12,9.5 2,10.62 2,12 c 0,1.38 1.12,2.5 2.5,2.5 h 15 C 20.88,14.5 22,13.38 22,12 22,10.62 20.88,9.5 19.5,9.5 Z"
|
||||
style="stroke-width:1.25;fill:#aeaeae;fill-opacity:1"
|
||||
id="path5202"
|
||||
inkscape:connector-curvature="0"
|
||||
style="stroke-width:1.25;fill:#aeaeae;fill-opacity:1" />
|
||||
d="M 19.5,9.5 H 4.5 C 3.12,9.5 2,10.62 2,12 c 0,1.38 1.12,2.5 2.5,2.5 h 15 C 20.88,14.5 22,13.38 22,12 22,10.62 20.88,9.5 19.5,9.5 Z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 936 B |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)"
|
||||
sodipodi:docname="minus.svg"
|
||||
id="svg5204"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
version="1.2"
|
||||
width="24"
|
||||
version="1.2">
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg5204">
|
||||
<metadata
|
||||
id="metadata5210">
|
||||
<rdf:RDF>
|
||||
@@ -22,34 +18,14 @@
|
||||
<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>
|
||||
<defs
|
||||
id="defs5208" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg5204"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-x="0"
|
||||
inkscape:cy="12"
|
||||
inkscape:cx="12"
|
||||
inkscape:zoom="38.125"
|
||||
showgrid="false"
|
||||
id="namedview5206"
|
||||
inkscape:window-height="1344"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff" />
|
||||
<path
|
||||
style="stroke-width:1.25;fill:#000000;fill-opacity:0.77999997"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 19.5,9.5 H 4.5 C 3.12,9.5 2,10.62 2,12 c 0,1.38 1.12,2.5 2.5,2.5 h 15 C 20.88,14.5 22,13.38 22,12 22,10.62 20.88,9.5 19.5,9.5 Z"
|
||||
id="path5202"
|
||||
d="M 19.5,9.5 H 4.5 C 3.12,9.5 2,10.62 2,12 c 0,1.38 1.12,2.5 2.5,2.5 h 15 C 20.88,14.5 22,13.38 22,12 22,10.62 20.88,9.5 19.5,9.5 Z" />
|
||||
style="stroke-width:1.25;fill:#000000;fill-opacity:0.77999997" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 1.7 KiB After Width: | Height: | Size: 945 B |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)"
|
||||
sodipodi:docname="search.svg"
|
||||
id="svg873"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
version="1.2"
|
||||
width="24"
|
||||
version="1.2">
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg873">
|
||||
<metadata
|
||||
id="metadata879">
|
||||
<rdf:RDF>
|
||||
@@ -22,37 +18,14 @@
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs877" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg873"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-x="0"
|
||||
inkscape:cy="11.05035"
|
||||
inkscape:cx="11.516995"
|
||||
inkscape:zoom="33.35187"
|
||||
showgrid="false"
|
||||
id="namedview875"
|
||||
inkscape:window-height="1344"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
inkscape:document-rotation="0" />
|
||||
<path
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.19012"
|
||||
sodipodi:nodetypes="cccsssscccccssccsssss"
|
||||
inkscape:connector-curvature="0"
|
||||
d="M 19.769714,14.460577 19.131808,13.821482 18.240407,12.92889 C 18.510564,12.110086 18.66171,11.238917 18.66171,10.330854 18.66171,5.7381732 14.923537,2 10.330856,2 5.7381752,2 2.000002,5.7381732 2.000002,10.330854 c 0,4.592681 3.7381732,8.330854 8.330854,8.330854 0.908063,0 1.780422,-0.151146 2.599226,-0.421303 l 0.892591,0.891401 1.799465,1.797084 0.07259,0.0726 0.07617,0.06545 C 16.486163,21.669146 17.375184,22 18.274916,22 c 2.054151,0 3.725082,-1.670931 3.725082,-3.726271 0,-0.999704 -0.390359,-1.937519 -1.099672,-2.639692 z M 4.3790558,10.330854 c 0,-3.2811664 2.6694437,-5.9506101 5.9506102,-5.9506101 3.281166,0 5.95061,2.6694437 5.95061,5.9506101 0,3.281166 -2.669444,5.95061 -5.95061,5.95061 -3.2811665,0 -5.9506102,-2.669444 -5.9506102,-5.95061 z"
|
||||
id="path871"
|
||||
d="M 19.769714,14.460577 19.131808,13.821482 18.240407,12.92889 C 18.510564,12.110086 18.66171,11.238917 18.66171,10.330854 18.66171,5.7381732 14.923537,2 10.330856,2 5.7381752,2 2.000002,5.7381732 2.000002,10.330854 c 0,4.592681 3.7381732,8.330854 8.330854,8.330854 0.908063,0 1.780422,-0.151146 2.599226,-0.421303 l 0.892591,0.891401 1.799465,1.797084 0.07259,0.0726 0.07617,0.06545 C 16.486163,21.669146 17.375184,22 18.274916,22 c 2.054151,0 3.725082,-1.670931 3.725082,-3.726271 0,-0.999704 -0.390359,-1.937519 -1.099672,-2.639692 z M 4.3790558,10.330854 c 0,-3.2811664 2.6694437,-5.9506101 5.9506102,-5.9506101 3.281166,0 5.95061,2.6694437 5.95061,5.9506101 0,3.281166 -2.669444,5.95061 -5.95061,5.95061 -3.2811665,0 -5.9506102,-2.669444 -5.9506102,-5.95061 z" />
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.19012" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.5 KiB |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)"
|
||||
sodipodi:docname="search-replace.svg"
|
||||
id="svg873"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
version="1.2"
|
||||
width="24"
|
||||
version="1.2">
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg873">
|
||||
<metadata
|
||||
id="metadata879">
|
||||
<rdf:RDF>
|
||||
@@ -22,39 +18,17 @@
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs877" />
|
||||
<sodipodi:namedview
|
||||
inkscape:current-layer="svg873"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-x="0"
|
||||
inkscape:cy="13.48294"
|
||||
inkscape:cx="17.190111"
|
||||
inkscape:zoom="33.35187"
|
||||
showgrid="false"
|
||||
id="namedview875"
|
||||
inkscape:window-height="1344"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:pageopacity="0"
|
||||
guidetolerance="10"
|
||||
gridtolerance="10"
|
||||
objecttolerance="10"
|
||||
borderopacity="1"
|
||||
bordercolor="#666666"
|
||||
pagecolor="#ffffff"
|
||||
inkscape:document-rotation="0" />
|
||||
<path
|
||||
d="m 10.330622,1.9999997 c -4.5924663,0 -8.3306193,3.738153 -8.3306193,8.3306193 0,1.391929 0.3467825,2.702587 0.9532665,3.857242 0.084308,-0.108411 0.1590865,-0.228838 0.2534294,-0.323181 L 4.7482003,12.323178 C 4.5237338,11.697056 4.378519,11.032991 4.3785189,10.330619 c 0,-3.2810129 2.6710902,-5.949778 5.9521031,-5.949778 0.702303,0 1.36649,0.1429324 1.992559,0.3673563 L 14.141363,2.9300158 C 12.997884,2.3384803 11.704084,1.9999997 10.330622,1.9999997 Z m 5.635898,0.4766332 c -0.396657,0 -0.792437,0.1507259 -1.095095,0.4533829 L 3.57173,14.229712 c -0.3026571,0.302657 -0.5759103,0.751428 -0.7742385,1.227621 -0.1983282,0.47826 -0.3208556,0.99063 -0.3208556,1.418274 v 4.647756 h 4.6477558 c 0.427645,0 0.9376894,-0.122526 1.4159495,-0.320855 0.4782601,-0.198328 0.9272894,-0.471583 1.2299463,-0.774239 L 21.069984,9.1285734 c 0.302656,-0.302657 0.453382,-0.7017958 0.453382,-1.0974191 0,-0.3966562 -0.150726,-0.7924369 -0.453382,-1.0950939 L 17.063939,2.9300158 C 16.761281,2.6273588 16.362143,2.4766329 15.96652,2.4766329 Z m 0,2.2785396 3.275981,3.2759818 -1.334572,1.3368983 -3.275982,-3.2759819 z m 0,0.7300627 -0.60451,0.6045104 2.545919,2.5482442 0.460357,-0.4626829 C 18.332278,8.0413114 18.299136,7.9066594 18.256684,7.7754 Z M 13.901884,6.8221334 15.173682,8.0939305 6.6082326,16.661704 5.3364357,15.387582 Z m 2.004185,2.0041848 1.271796,1.2717968 -8.5654475,8.565448 -1.2741221,-1.271796 z m 0.353406,1.0834691 c 0.0083,0.1189097 0.01733,0.2373427 0.01861,0.3580557 l 0.169728,-0.169728 z m 2.059986,2.6993717 -5.710299,5.710299 c 0.105352,-0.03032 0.217183,-0.04484 0.320855,-0.07906 l 0.892816,0.89049 1.799581,1.797261 0.07208,0.07208 0.07672,0.06743 C 16.486443,21.66984 17.375591,22 18.275281,22 c 2.054056,0 3.724716,-1.671795 3.724716,-3.72704 0,-0.999657 -0.390465,-1.936781 -1.099745,-2.638921 l -1.129969,-1.174145 -0.639387,-0.639386 -0.890489,-0.892815 c 0.03403,-0.103138 0.04885,-0.213757 0.07906,-0.318531 z m -11.7600542,2.28784 -0.4929085,0.492908 0.5417343,0.541734 0.57196,-0.571959 C 6.960254,15.221393 6.7588057,15.062002 6.5594068,14.896999 Z m 2.7179722,1.285747 -1.209021,1.209021 0.5417345,0.541734 1.6577535,-1.655429 c -0.3372847,-0.0036 -0.668706,-0.03764 -0.990467,-0.09533 z m -4.5710293,0.06743 c 0.010333,-0.02065 3.0644031,3.034179 3.0644031,3.034179 C 7.43814,19.422771 7.2039295,19.456408 7.1243917,19.456408 H 5.5759147 L 4.5435968,18.424084 v -1.548477 c 0,-0.07953 0.033633,-0.315548 0.1627529,-0.625436 z"
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.19007"
|
||||
id="path871"
|
||||
inkscape:connector-curvature="0" />
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.19007"
|
||||
d="m 10.330622,1.9999997 c -4.5924663,0 -8.3306193,3.738153 -8.3306193,8.3306193 0,1.391929 0.3467825,2.702587 0.9532665,3.857242 0.084308,-0.108411 0.1590865,-0.228838 0.2534294,-0.323181 L 4.7482003,12.323178 C 4.5237338,11.697056 4.378519,11.032991 4.3785189,10.330619 c 0,-3.2810129 2.6710902,-5.949778 5.9521031,-5.949778 0.702303,0 1.36649,0.1429324 1.992559,0.3673563 L 14.141363,2.9300158 C 12.997884,2.3384803 11.704084,1.9999997 10.330622,1.9999997 Z m 5.635898,0.4766332 c -0.396657,0 -0.792437,0.1507259 -1.095095,0.4533829 L 3.57173,14.229712 c -0.3026571,0.302657 -0.5759103,0.751428 -0.7742385,1.227621 -0.1983282,0.47826 -0.3208556,0.99063 -0.3208556,1.418274 v 4.647756 h 4.6477558 c 0.427645,0 0.9376894,-0.122526 1.4159495,-0.320855 0.4782601,-0.198328 0.9272894,-0.471583 1.2299463,-0.774239 L 21.069984,9.1285734 c 0.302656,-0.302657 0.453382,-0.7017958 0.453382,-1.0974191 0,-0.3966562 -0.150726,-0.7924369 -0.453382,-1.0950939 L 17.063939,2.9300158 C 16.761281,2.6273588 16.362143,2.4766329 15.96652,2.4766329 Z m 0,2.2785396 3.275981,3.2759818 -1.334572,1.3368983 -3.275982,-3.2759819 z m 0,0.7300627 -0.60451,0.6045104 2.545919,2.5482442 0.460357,-0.4626829 C 18.332278,8.0413114 18.299136,7.9066594 18.256684,7.7754 Z M 13.901884,6.8221334 15.173682,8.0939305 6.6082326,16.661704 5.3364357,15.387582 Z m 2.004185,2.0041848 1.271796,1.2717968 -8.5654475,8.565448 -1.2741221,-1.271796 z m 0.353406,1.0834691 c 0.0083,0.1189097 0.01733,0.2373427 0.01861,0.3580557 l 0.169728,-0.169728 z m 2.059986,2.6993717 -5.710299,5.710299 c 0.105352,-0.03032 0.217183,-0.04484 0.320855,-0.07906 l 0.892816,0.89049 1.799581,1.797261 0.07208,0.07208 0.07672,0.06743 C 16.486443,21.66984 17.375591,22 18.275281,22 c 2.054056,0 3.724716,-1.671795 3.724716,-3.72704 0,-0.999657 -0.390465,-1.936781 -1.099745,-2.638921 l -1.129969,-1.174145 -0.639387,-0.639386 -0.890489,-0.892815 c 0.03403,-0.103138 0.04885,-0.213757 0.07906,-0.318531 z m -11.7600542,2.28784 -0.4929085,0.492908 0.5417343,0.541734 0.57196,-0.571959 C 6.960254,15.221393 6.7588057,15.062002 6.5594068,14.896999 Z m 2.7179722,1.285747 -1.209021,1.209021 0.5417345,0.541734 1.6577535,-1.655429 c -0.3372847,-0.0036 -0.668706,-0.03764 -0.990467,-0.09533 z m -4.5710293,0.06743 c 0.010333,-0.02065 3.0644031,3.034179 3.0644031,3.034179 C 7.43814,19.422771 7.2039295,19.456408 7.1243917,19.456408 H 5.5759147 L 4.5435968,18.424084 v -1.548477 c 0,-0.07953 0.033633,-0.315548 0.1627529,-0.625436 z" />
|
||||
<g
|
||||
style="display:none;opacity:1;stroke:none;stroke-opacity:1"
|
||||
id="g1022" />
|
||||
id="g1022"
|
||||
style="display:none;opacity:1;stroke:none;stroke-opacity:1" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 3.3 KiB |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg873"
|
||||
sodipodi:docname="replace.svg"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)">
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata879">
|
||||
<rdf:RDF>
|
||||
@@ -28,33 +24,11 @@
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs877" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1344"
|
||||
id="namedview875"
|
||||
showgrid="false"
|
||||
inkscape:zoom="33.35187"
|
||||
inkscape:cx="17.190111"
|
||||
inkscape:cy="13.48294"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg873" />
|
||||
<path
|
||||
inkscape:connector-curvature="0"
|
||||
id="path871"
|
||||
d="m 10.330622,1.9999997 c -4.5924663,0 -8.3306193,3.738153 -8.3306193,8.3306193 0,1.391929 0.3467825,2.702587 0.9532665,3.857242 0.084308,-0.108411 0.1590865,-0.228838 0.2534294,-0.323181 L 4.7482003,12.323178 C 4.5237338,11.697056 4.378519,11.032991 4.3785189,10.330619 c 0,-3.2810129 2.6710902,-5.949778 5.9521031,-5.949778 0.702303,0 1.36649,0.1429324 1.992559,0.3673563 L 14.141363,2.9300158 C 12.997884,2.3384803 11.704084,1.9999997 10.330622,1.9999997 Z m 5.635898,0.4766332 c -0.396657,0 -0.792437,0.1507259 -1.095095,0.4533829 L 3.57173,14.229712 c -0.3026571,0.302657 -0.5759103,0.751428 -0.7742385,1.227621 -0.1983282,0.47826 -0.3208556,0.99063 -0.3208556,1.418274 v 4.647756 h 4.6477558 c 0.427645,0 0.9376894,-0.122526 1.4159495,-0.320855 0.4782601,-0.198328 0.9272894,-0.471583 1.2299463,-0.774239 L 21.069984,9.1285734 c 0.302656,-0.302657 0.453382,-0.7017958 0.453382,-1.0974191 0,-0.3966562 -0.150726,-0.7924369 -0.453382,-1.0950939 L 17.063939,2.9300158 C 16.761281,2.6273588 16.362143,2.4766329 15.96652,2.4766329 Z m 0,2.2785396 3.275981,3.2759818 -1.334572,1.3368983 -3.275982,-3.2759819 z m 0,0.7300627 -0.60451,0.6045104 2.545919,2.5482442 0.460357,-0.4626829 C 18.332278,8.0413114 18.299136,7.9066594 18.256684,7.7754 Z M 13.901884,6.8221334 15.173682,8.0939305 6.6082326,16.661704 5.3364357,15.387582 Z m 2.004185,2.0041848 1.271796,1.2717968 -8.5654475,8.565448 -1.2741221,-1.271796 z m 0.353406,1.0834691 c 0.0083,0.1189097 0.01733,0.2373427 0.01861,0.3580557 l 0.169728,-0.169728 z m 2.059986,2.6993717 -5.710299,5.710299 c 0.105352,-0.03032 0.217183,-0.04484 0.320855,-0.07906 l 0.892816,0.89049 1.799581,1.797261 0.07208,0.07208 0.07672,0.06743 C 16.486443,21.66984 17.375591,22 18.275281,22 c 2.054056,0 3.724716,-1.671795 3.724716,-3.72704 0,-0.999657 -0.390465,-1.936781 -1.099745,-2.638921 l -1.129969,-1.174145 -0.639387,-0.639386 -0.890489,-0.892815 c 0.03403,-0.103138 0.04885,-0.213757 0.07906,-0.318531 z m -11.7600542,2.28784 -0.4929085,0.492908 0.5417343,0.541734 0.57196,-0.571959 C 6.960254,15.221393 6.7588057,15.062002 6.5594068,14.896999 Z m 2.7179722,1.285747 -1.209021,1.209021 0.5417345,0.541734 1.6577535,-1.655429 c -0.3372847,-0.0036 -0.668706,-0.03764 -0.990467,-0.09533 z m -4.5710293,0.06743 c 0.010333,-0.02065 3.0644031,3.034179 3.0644031,3.034179 C 7.43814,19.422771 7.2039295,19.456408 7.1243917,19.456408 H 5.5759147 L 4.5435968,18.424084 v -1.548477 c 0,-0.07953 0.033633,-0.315548 0.1627529,-0.625436 z"
|
||||
style="fill:#000000;fill-opacity:0.78;stroke-width:1.19007"
|
||||
d="m 10.330622,1.9999997 c -4.5924663,0 -8.3306193,3.738153 -8.3306193,8.3306193 0,1.391929 0.3467825,2.702587 0.9532665,3.857242 0.084308,-0.108411 0.1590865,-0.228838 0.2534294,-0.323181 L 4.7482003,12.323178 C 4.5237338,11.697056 4.378519,11.032991 4.3785189,10.330619 c 0,-3.2810129 2.6710902,-5.949778 5.9521031,-5.949778 0.702303,0 1.36649,0.1429324 1.992559,0.3673563 L 14.141363,2.9300158 C 12.997884,2.3384803 11.704084,1.9999997 10.330622,1.9999997 Z m 5.635898,0.4766332 c -0.396657,0 -0.792437,0.1507259 -1.095095,0.4533829 L 3.57173,14.229712 c -0.3026571,0.302657 -0.5759103,0.751428 -0.7742385,1.227621 -0.1983282,0.47826 -0.3208556,0.99063 -0.3208556,1.418274 v 4.647756 h 4.6477558 c 0.427645,0 0.9376894,-0.122526 1.4159495,-0.320855 0.4782601,-0.198328 0.9272894,-0.471583 1.2299463,-0.774239 L 21.069984,9.1285734 c 0.302656,-0.302657 0.453382,-0.7017958 0.453382,-1.0974191 0,-0.3966562 -0.150726,-0.7924369 -0.453382,-1.0950939 L 17.063939,2.9300158 C 16.761281,2.6273588 16.362143,2.4766329 15.96652,2.4766329 Z m 0,2.2785396 3.275981,3.2759818 -1.334572,1.3368983 -3.275982,-3.2759819 z m 0,0.7300627 -0.60451,0.6045104 2.545919,2.5482442 0.460357,-0.4626829 C 18.332278,8.0413114 18.299136,7.9066594 18.256684,7.7754 Z M 13.901884,6.8221334 15.173682,8.0939305 6.6082326,16.661704 5.3364357,15.387582 Z m 2.004185,2.0041848 1.271796,1.2717968 -8.5654475,8.565448 -1.2741221,-1.271796 z m 0.353406,1.0834691 c 0.0083,0.1189097 0.01733,0.2373427 0.01861,0.3580557 l 0.169728,-0.169728 z m 2.059986,2.6993717 -5.710299,5.710299 c 0.105352,-0.03032 0.217183,-0.04484 0.320855,-0.07906 l 0.892816,0.89049 1.799581,1.797261 0.07208,0.07208 0.07672,0.06743 C 16.486443,21.66984 17.375591,22 18.275281,22 c 2.054056,0 3.724716,-1.671795 3.724716,-3.72704 0,-0.999657 -0.390465,-1.936781 -1.099745,-2.638921 l -1.129969,-1.174145 -0.639387,-0.639386 -0.890489,-0.892815 c 0.03403,-0.103138 0.04885,-0.213757 0.07906,-0.318531 z m -11.7600542,2.28784 -0.4929085,0.492908 0.5417343,0.541734 0.57196,-0.571959 C 6.960254,15.221393 6.7588057,15.062002 6.5594068,14.896999 Z m 2.7179722,1.285747 -1.209021,1.209021 0.5417345,0.541734 1.6577535,-1.655429 c -0.3372847,-0.0036 -0.668706,-0.03764 -0.990467,-0.09533 z m -4.5710293,0.06743 c 0.010333,-0.02065 3.0644031,3.034179 3.0644031,3.034179 C 7.43814,19.422771 7.2039295,19.456408 7.1243917,19.456408 H 5.5759147 L 4.5435968,18.424084 v -1.548477 c 0,-0.07953 0.033633,-0.315548 0.1627529,-0.625436 z" />
|
||||
id="path871" />
|
||||
<g
|
||||
id="g1022"
|
||||
style="display:none;opacity:1;stroke:none;stroke-opacity:1" />
|
||||
style="display:none;opacity:1;stroke:none;stroke-opacity:1"
|
||||
id="g1022" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 3.3 KiB |
@@ -5,15 +5,11 @@
|
||||
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:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg873"
|
||||
sodipodi:docname="search.svg"
|
||||
inkscape:version="1.0rc1 (09960d6f05, 2020-04-09)">
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata879">
|
||||
<rdf:RDF>
|
||||
@@ -28,31 +24,8 @@
|
||||
</metadata>
|
||||
<defs
|
||||
id="defs877" />
|
||||
<sodipodi:namedview
|
||||
inkscape:document-rotation="0"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1"
|
||||
objecttolerance="10"
|
||||
gridtolerance="10"
|
||||
guidetolerance="10"
|
||||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="2560"
|
||||
inkscape:window-height="1344"
|
||||
id="namedview875"
|
||||
showgrid="false"
|
||||
inkscape:zoom="33.35187"
|
||||
inkscape:cx="11.516995"
|
||||
inkscape:cy="11.05035"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg873" />
|
||||
<path
|
||||
d="M 19.769714,14.460577 19.131808,13.821482 18.240407,12.92889 C 18.510564,12.110086 18.66171,11.238917 18.66171,10.330854 18.66171,5.7381732 14.923537,2 10.330856,2 5.7381752,2 2.000002,5.7381732 2.000002,10.330854 c 0,4.592681 3.7381732,8.330854 8.330854,8.330854 0.908063,0 1.780422,-0.151146 2.599226,-0.421303 l 0.892591,0.891401 1.799465,1.797084 0.07259,0.0726 0.07617,0.06545 C 16.486163,21.669146 17.375184,22 18.274916,22 c 2.054151,0 3.725082,-1.670931 3.725082,-3.726271 0,-0.999704 -0.390359,-1.937519 -1.099672,-2.639692 z M 4.3790558,10.330854 c 0,-3.2811664 2.6694437,-5.9506101 5.9506102,-5.9506101 3.281166,0 5.95061,2.6694437 5.95061,5.9506101 0,3.281166 -2.669444,5.95061 -5.95061,5.95061 -3.2811665,0 -5.9506102,-2.669444 -5.9506102,-5.95061 z"
|
||||
style="fill:#000000;fill-opacity:0.78;stroke-width:1.19012"
|
||||
id="path871"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cccsssscccccssccsssss"
|
||||
style="fill:#000000;fill-opacity:0.78;stroke-width:1.19012" />
|
||||
d="M 19.769714,14.460577 19.131808,13.821482 18.240407,12.92889 C 18.510564,12.110086 18.66171,11.238917 18.66171,10.330854 18.66171,5.7381732 14.923537,2 10.330856,2 5.7381752,2 2.000002,5.7381732 2.000002,10.330854 c 0,4.592681 3.7381732,8.330854 8.330854,8.330854 0.908063,0 1.780422,-0.151146 2.599226,-0.421303 l 0.892591,0.891401 1.799465,1.797084 0.07259,0.0726 0.07617,0.06545 C 16.486163,21.669146 17.375184,22 18.274916,22 c 2.054151,0 3.725082,-1.670931 3.725082,-3.726271 0,-0.999704 -0.390359,-1.937519 -1.099672,-2.639692 z M 4.3790558,10.330854 c 0,-3.2811664 2.6694437,-5.9506101 5.9506102,-5.9506101 3.281166,0 5.95061,2.6694437 5.95061,5.9506101 0,3.281166 -2.669444,5.95061 -5.95061,5.95061 -3.2811665,0 -5.9506102,-2.669444 -5.9506102,-5.95061 z" />
|
||||
</svg>
|
||||
|
||||
|
Before Width: | Height: | Size: 2.4 KiB After Width: | Height: | Size: 1.5 KiB |
31
nw/assets/icons/fallback/search_cancel-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg7731">
|
||||
<metadata
|
||||
id="metadata7737">
|
||||
<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>
|
||||
<defs
|
||||
id="defs7735" />
|
||||
<path
|
||||
d="m 20.121169,3.8786433 c -1.170024,-1.1715244 -3.072064,-1.1715244 -4.242088,0 L 12,7.7577241 8.1209195,3.8786433 c -1.1700247,-1.1715244 -3.0720643,-1.1715244 -4.2420887,0 -1.1715244,1.1715244 -1.1715244,3.070564 0,4.2420884 l 3.8775807,3.8790803 -3.8775807,3.879081 c -1.1715244,1.171525 -1.1715244,3.070564 0,4.242089 C 4.463843,20.707494 5.231859,21 5.999875,21 6.767891,21 7.5359065,20.707494 8.1209195,20.120982 L 12,16.241901 15.879081,20.120982 C 16.464093,20.707494 17.232109,21 18.000125,21 c 0.768015,0 1.536031,-0.292506 2.121044,-0.879018 1.171525,-1.171525 1.171525,-3.070564 0,-4.242089 l -3.87758,-3.879081 3.87758,-3.8790803 c 1.171525,-1.1715244 1.171525,-3.070564 0,-4.2420884 z"
|
||||
id="path7729"
|
||||
style="stroke-width:1.50003123;fill:#aeaeae;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
31
nw/assets/icons/fallback/search_cancel.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg7731"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata7737">
|
||||
<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>
|
||||
<defs
|
||||
id="defs7735" />
|
||||
<path
|
||||
style="stroke-width:1.50003123;fill:#000000;fill-opacity:0.78039217"
|
||||
id="path7729"
|
||||
d="m 20.121169,3.8786433 c -1.170024,-1.1715244 -3.072064,-1.1715244 -4.242088,0 L 12,7.7577241 8.1209195,3.8786433 c -1.1700247,-1.1715244 -3.0720643,-1.1715244 -4.2420887,0 -1.1715244,1.1715244 -1.1715244,3.070564 0,4.2420884 l 3.8775807,3.8790803 -3.8775807,3.879081 c -1.1715244,1.171525 -1.1715244,3.070564 0,4.242089 C 4.463843,20.707494 5.231859,21 5.999875,21 6.767891,21 7.5359065,20.707494 8.1209195,20.120982 L 12,16.241901 15.879081,20.120982 C 16.464093,20.707494 17.232109,21 18.000125,21 c 0.768015,0 1.536031,-0.292506 2.121044,-0.879018 1.171525,-1.171525 1.171525,-3.070564 0,-4.242089 l -3.87758,-3.879081 3.87758,-3.8790803 c 1.171525,-1.1715244 1.171525,-3.070564 0,-4.2420884 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
49
nw/assets/icons/fallback/search_case-dark.svg
Normal file
@@ -0,0 +1,49 @@
|
||||
<?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"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 6.3499999 6.3500002"
|
||||
version="1.1"
|
||||
id="svg8">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<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="fill:#aeaeae;fill-opacity:1"
|
||||
id="layer1"
|
||||
transform="translate(0,-290.64999)">
|
||||
<g
|
||||
aria-label="Aa"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;letter-spacing:0px;word-spacing:0px;fill:#aeaeae;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
id="text817">
|
||||
<g
|
||||
id="g968"
|
||||
style="fill:#aeaeae;fill-opacity:1">
|
||||
<path
|
||||
id="path961"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#aeaeae;fill-opacity:1;stroke-width:0.264583"
|
||||
d="M 0.35983601,295.49539 H 1.0364638 l 0.2815167,-0.85936 H 2.631725 l 0.2815166,0.85936 H 3.6195028 L 2.4292305,292.0678 H 1.6143138 Z m 1.14582229,-1.42734 0.4741333,-1.45203 0.4691945,1.45203 z" />
|
||||
<path
|
||||
id="path963"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#aeaeae;fill-opacity:1;stroke-width:0.264583"
|
||||
d="m 4.701114,295.54478 c 0.3062111,0 0.5679722,-0.10372 0.7507111,-0.29139 l 0.0889,0.242 H 5.990164 v -1.44215 c 0,-0.65194 -0.3704167,-1.00754 -1.0766778,-1.00754 -0.3457222,0 -0.7112,0.084 -0.9927167,0.23213 l 0.1481667,0.43956 c 0.2469444,-0.0988 0.48895,-0.14816 0.7112,-0.14816 0.3852334,0 0.5926667,0.14816 0.5926667,0.43462 v 0.0642 c -1.0421056,0.0148 -1.5014223,0.25189 -1.5014223,0.76059 0,0.43462 0.3259667,0.71614 0.8297334,0.71614 z m -0.1975556,-0.8001 c 0,-0.21731 0.2518834,-0.31609 0.8692445,-0.32597 v 0.45438 c -0.1185333,0.1136 -0.2815167,0.1778 -0.4642556,0.1778 -0.2420055,0 -0.4049889,-0.12347 -0.4049889,-0.30621 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
48
nw/assets/icons/fallback/search_case.svg
Normal file
@@ -0,0 +1,48 @@
|
||||
<?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"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 6.3499999 6.3500002"
|
||||
height="24"
|
||||
width="24">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<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
|
||||
transform="translate(0,-290.64999)"
|
||||
id="layer1">
|
||||
<g
|
||||
id="text817"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444494px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458335"
|
||||
aria-label="Aa">
|
||||
<g
|
||||
style="fill:#000000;fill-opacity:0.78039217"
|
||||
id="g968">
|
||||
<path
|
||||
d="M 0.35983601,295.49539 H 1.0364638 l 0.2815167,-0.85936 H 2.631725 l 0.2815166,0.85936 H 3.6195028 L 2.4292305,292.0678 H 1.6143138 Z m 1.14582229,-1.42734 0.4741333,-1.45203 0.4691945,1.45203 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93888903px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458335;fill:#000000;fill-opacity:0.78039217"
|
||||
id="path961" />
|
||||
<path
|
||||
d="m 4.701114,295.54478 c 0.3062111,0 0.5679722,-0.10372 0.7507111,-0.29139 l 0.0889,0.242 H 5.990164 v -1.44215 c 0,-0.65194 -0.3704167,-1.00754 -1.0766778,-1.00754 -0.3457222,0 -0.7112,0.084 -0.9927167,0.23213 l 0.1481667,0.43956 c 0.2469444,-0.0988 0.48895,-0.14816 0.7112,-0.14816 0.3852334,0 0.5926667,0.14816 0.5926667,0.43462 v 0.0642 c -1.0421056,0.0148 -1.5014223,0.25189 -1.5014223,0.76059 0,0.43462 0.3259667,0.71614 0.8297334,0.71614 z m -0.1975556,-0.8001 c 0,-0.21731 0.2518834,-0.31609 0.8692445,-0.32597 v 0.45438 c -0.1185333,0.1136 -0.2815167,0.1778 -0.4642556,0.1778 -0.2420055,0 -0.4049889,-0.12347 -0.4049889,-0.30621 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93888903px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458335;fill:#000000;fill-opacity:0.78039217"
|
||||
id="path963" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
31
nw/assets/icons/fallback/search_loop-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg2150">
|
||||
<metadata
|
||||
id="metadata2156">
|
||||
<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>
|
||||
<defs
|
||||
id="defs2154" />
|
||||
<path
|
||||
d="m 17,6.4445834 h -2.317778 l 1.436667,-1.4366667 c 0.434444,-0.4344445 0.434444,-1.1366667 0,-1.5711111 -0.434445,-0.4344445 -1.136667,-0.4344445 -1.571111,0 l -4.118889,4.1188889 4.118889,4.1188895 c 0.216666,0.216666 0.501111,0.325555 0.785555,0.325555 0.284445,0 0.568889,-0.108889 0.785556,-0.325555 0.434444,-0.434445 0.434444,-1.136667 0,-1.571112 L 14.682222,8.6668056 H 17 c 1.532222,0 2.777778,1.4955554 2.777778,3.3333334 0,1.837778 -1.495556,3.333333 -3.333334,3.333333 -0.614444,0 -1.111111,0.497778 -1.111111,1.111112 0,0.613333 0.496667,1.111111 1.111111,1.111111 C 19.507778,17.555695 22,15.063472 22,12.000139 22,8.9368056 19.756667,6.4445834 17,6.4445834 Z M 7.8811111,12.325695 c -0.4344444,0.434444 -0.4344444,1.136666 0,1.571111 L 9.317778,15.333472 H 7 c -1.5322222,0 -2.7777778,-1.495555 -2.7777778,-3.333333 0,-1.837778 1.4955556,-3.3333334 3.3333334,-3.3333334 0.6144444,0 1.1111111,-0.4977778 1.1111111,-1.1111111 C 8.6666667,6.9423611 8.17,6.4445834 7.5555556,6.4445834 4.4922222,6.4445834 2,8.9368056 2,12.000139 c 0,3.063333 2.2433333,5.555556 5,5.555556 h 2.317778 l -1.4366669,1.436666 c -0.4344444,0.434445 -0.4344444,1.136667 0,1.571111 0.2166667,0.216667 0.5011111,0.325556 0.7855556,0.325556 0.2844444,0 0.5688893,-0.108889 0.7855553,-0.325556 l 4.118889,-4.118888 -4.118889,-4.118889 c -0.434444,-0.434445 -1.1366664,-0.434445 -1.5711109,0 z"
|
||||
id="path2148"
|
||||
style="stroke-width:1.11111116;fill:#aeaeae;fill-opacity:1" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
31
nw/assets/icons/fallback/search_loop.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg2150"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata2156">
|
||||
<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>
|
||||
<defs
|
||||
id="defs2154" />
|
||||
<path
|
||||
style="stroke-width:1.11111116;fill:#000000;fill-opacity:0.78039217"
|
||||
id="path2148"
|
||||
d="m 17,6.4445834 h -2.317778 l 1.436667,-1.4366667 c 0.434444,-0.4344445 0.434444,-1.1366667 0,-1.5711111 -0.434445,-0.4344445 -1.136667,-0.4344445 -1.571111,0 l -4.118889,4.1188889 4.118889,4.1188895 c 0.216666,0.216666 0.501111,0.325555 0.785555,0.325555 0.284445,0 0.568889,-0.108889 0.785556,-0.325555 0.434444,-0.434445 0.434444,-1.136667 0,-1.571112 L 14.682222,8.6668056 H 17 c 1.532222,0 2.777778,1.4955554 2.777778,3.3333334 0,1.837778 -1.495556,3.333333 -3.333334,3.333333 -0.614444,0 -1.111111,0.497778 -1.111111,1.111112 0,0.613333 0.496667,1.111111 1.111111,1.111111 C 19.507778,17.555695 22,15.063472 22,12.000139 22,8.9368056 19.756667,6.4445834 17,6.4445834 Z M 7.8811111,12.325695 c -0.4344444,0.434444 -0.4344444,1.136666 0,1.571111 L 9.317778,15.333472 H 7 c -1.5322222,0 -2.7777778,-1.495555 -2.7777778,-3.333333 0,-1.837778 1.4955556,-3.3333334 3.3333334,-3.3333334 0.6144444,0 1.1111111,-0.4977778 1.1111111,-1.1111111 C 8.6666667,6.9423611 8.17,6.4445834 7.5555556,6.4445834 4.4922222,6.4445834 2,8.9368056 2,12.000139 c 0,3.063333 2.2433333,5.555556 5,5.555556 h 2.317778 l -1.4366669,1.436666 c -0.4344444,0.434445 -0.4344444,1.136667 0,1.571111 0.2166667,0.216667 0.5011111,0.325556 0.7855556,0.325556 0.2844444,0 0.5688893,-0.108889 0.7855553,-0.325556 l 4.118889,-4.118888 -4.118889,-4.118889 c -0.434444,-0.434445 -1.1366664,-0.434445 -1.5711109,0 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
40
nw/assets/icons/fallback/search_preserve-dark.svg
Normal file
@@ -0,0 +1,40 @@
|
||||
<?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"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 6.3499999 6.3500002"
|
||||
height="24"
|
||||
width="24">
|
||||
<g
|
||||
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;stroke-width:0.264583"
|
||||
id="text1549"
|
||||
aria-label="AB">
|
||||
<path
|
||||
id="path1551"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.251875;fill:#aeaeae;fill-opacity:1"
|
||||
d="M 0.52916667,4.8827979 H 1.1423606 L 1.397485,4.023431 H 2.588066 L 2.8431905,4.8827979 H 3.4832396 L 2.4045554,1.4552083 H 1.6660372 Z M 1.5675681,3.4554587 1.9972514,2.003425 2.4224589,3.4554587 Z" />
|
||||
<path
|
||||
id="path1553"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.25188;fill:#aeaeae;fill-opacity:1"
|
||||
d="m 3.4395834,4.8827979 h 1.1592928 c 0.7519737,0 1.2219572,-0.4099279 1.2219572,-1.0618613 0,-0.4296835 -0.2058975,-0.7408335 -0.5639802,-0.8840614 0.1969454,-0.1432278 0.3177984,-0.3951112 0.3177984,-0.6667501 0,-0.5284612 -0.389415,-0.8149168 -1.1055804,-0.8149168 H 3.4395834 Z M 4.0125157,1.9688528 h 0.4117952 c 0.3625587,0 0.5639802,0.1679223 0.5639802,0.4642557 0,0.1778 -0.076092,0.3160889 -0.2506578,0.4247445 H 4.0125157 Z m 0,2.4003005 V 3.3566809 h 0.6714051 c 0.3357025,0 0.5416002,0.2173112 0.5416002,0.5482168 0,0.3160889 -0.1745654,0.4642556 -0.5505523,0.4642556 z" />
|
||||
</g>
|
||||
<defs
|
||||
id="defs2" />
|
||||
<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>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
40
nw/assets/icons/fallback/search_preserve.svg
Normal file
@@ -0,0 +1,40 @@
|
||||
<?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"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 6.3499999 6.3500002"
|
||||
height="24"
|
||||
width="24">
|
||||
<g
|
||||
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;stroke-width:0.264583"
|
||||
id="text1549"
|
||||
aria-label="AB">
|
||||
<path
|
||||
id="path1551"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.251875;fill:#000000;fill-opacity:0.78039217"
|
||||
d="M 0.52916667,4.8827979 H 1.1423606 L 1.397485,4.023431 H 2.588066 L 2.8431905,4.8827979 H 3.4832396 L 2.4045554,1.4552083 H 1.6660372 Z M 1.5675681,3.4554587 1.9972514,2.003425 2.4224589,3.4554587 Z" />
|
||||
<path
|
||||
id="path1553"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke-width:0.25188;fill:#000000;fill-opacity:0.78039217"
|
||||
d="m 3.4395834,4.8827979 h 1.1592928 c 0.7519737,0 1.2219572,-0.4099279 1.2219572,-1.0618613 0,-0.4296835 -0.2058975,-0.7408335 -0.5639802,-0.8840614 0.1969454,-0.1432278 0.3177984,-0.3951112 0.3177984,-0.6667501 0,-0.5284612 -0.389415,-0.8149168 -1.1055804,-0.8149168 H 3.4395834 Z M 4.0125157,1.9688528 h 0.4117952 c 0.3625587,0 0.5639802,0.1679223 0.5639802,0.4642557 0,0.1778 -0.076092,0.3160889 -0.2506578,0.4247445 H 4.0125157 Z m 0,2.4003005 V 3.3566809 h 0.6714051 c 0.3357025,0 0.5416002,0.2173112 0.5416002,0.5482168 0,0.3160889 -0.1745654,0.4642556 -0.5505523,0.4642556 z" />
|
||||
</g>
|
||||
<defs
|
||||
id="defs2" />
|
||||
<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>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
31
nw/assets/icons/fallback/search_project-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg8301"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata8307">
|
||||
<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>
|
||||
<defs
|
||||
id="defs8305" />
|
||||
<path
|
||||
style="stroke-width:1.18357;fill:#aeaeae;fill-opacity:1"
|
||||
id="path8299"
|
||||
d="m 19.591431,11.061428 c -0.92437,-0.92437 -2.422771,-0.92437 -3.347141,0 l -1.877146,1.877144 V 4.367144 C 14.367144,3.059297 13.306664,2 12,2 10.692153,2 9.6328557,3.059297 9.6328557,4.367144 v 8.571428 l -1.877145,-1.877144 c -0.9243698,-0.92437 -2.4227719,-0.92437 -3.3471417,0 -0.9243697,0.924369 -0.9243697,2.422771 0,3.347141 L 12,22 19.591431,14.408569 c 0.92437,-0.92437 0.92437,-2.421588 0,-3.347141 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
31
nw/assets/icons/fallback/search_project.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
id="svg8301"
|
||||
viewBox="0 0 24 24"
|
||||
height="24"
|
||||
width="24"
|
||||
version="1.2">
|
||||
<metadata
|
||||
id="metadata8307">
|
||||
<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>
|
||||
<defs
|
||||
id="defs8305" />
|
||||
<path
|
||||
style="stroke-width:1.18357;fill:#000000;fill-opacity:0.77999997"
|
||||
id="path8299"
|
||||
d="m 19.591431,11.061428 c -0.92437,-0.92437 -2.422771,-0.92437 -3.347141,0 l -1.877146,1.877144 V 4.367144 C 14.367144,3.059297 13.306664,2 12,2 10.692153,2 9.6328557,3.059297 9.6328557,4.367144 v 8.571428 l -1.877145,-1.877144 c -0.9243698,-0.92437 -2.4227719,-0.92437 -3.3471417,0 -0.9243697,0.924369 -0.9243697,2.422771 0,3.347141 L 12,22 19.591431,14.408569 c 0.92437,-0.92437 0.92437,-2.421588 0,-3.347141 z" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.2 KiB |
49
nw/assets/icons/fallback/search_regex-dark.svg
Normal file
@@ -0,0 +1,49 @@
|
||||
<?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"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 6.3499999 6.3500002"
|
||||
version="1.1"
|
||||
id="svg8">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<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="fill:#aeaeae;fill-opacity:1"
|
||||
id="layer1"
|
||||
transform="translate(0,-290.64999)">
|
||||
<g
|
||||
aria-label=".*"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;letter-spacing:0px;word-spacing:0px;fill:#aeaeae;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
id="text817">
|
||||
<g
|
||||
id="g1606"
|
||||
style="fill:#aeaeae;fill-opacity:1">
|
||||
<path
|
||||
id="path1599"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#aeaeae;fill-opacity:1;stroke-width:0.264583"
|
||||
d="m 1.9550981,295.54478 c 0.2518833,0 0.4198055,-0.18274 0.4198055,-0.4198 0,-0.25189 -0.1679222,-0.43463 -0.4198055,-0.43463 -0.2568223,0 -0.4247445,0.18274 -0.4247445,0.43463 0,0.23706 0.1679222,0.4198 0.4247445,0.4198 z" />
|
||||
<path
|
||||
id="path1601"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93889px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;fill:#aeaeae;fill-opacity:1;stroke-width:0.264583"
|
||||
d="m 3.5108408,294.12732 h 0.5482167 l -0.1234722,-0.77541 0.6124222,0.49883 0.2568223,-0.43956 -0.7655278,-0.32103 0.7803444,-0.29139 -0.2518833,-0.43956 -0.6371167,0.48401 0.1284111,-0.8001 H 3.5108408 l 0.1382889,0.79516 -0.6223,-0.50377 -0.2518833,0.43956 0.7704667,0.31609 -0.7754056,0.30621 0.2469444,0.4445 0.6321778,-0.50376 z" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
48
nw/assets/icons/fallback/search_regex.svg
Normal file
@@ -0,0 +1,48 @@
|
||||
<?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"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 6.3499999 6.3500002"
|
||||
height="24"
|
||||
width="24">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<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
|
||||
transform="translate(0,-290.64999)"
|
||||
id="layer1">
|
||||
<g
|
||||
id="text817"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444494px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.26458335"
|
||||
aria-label=".*">
|
||||
<g
|
||||
style="fill:#000000;fill-opacity:0.78039217"
|
||||
id="g1606">
|
||||
<path
|
||||
d="m 1.9550981,295.54478 c 0.2518833,0 0.4198055,-0.18274 0.4198055,-0.4198 0,-0.25189 -0.1679222,-0.43463 -0.4198055,-0.43463 -0.2568223,0 -0.4247445,0.18274 -0.4247445,0.43463 0,0.23706 0.1679222,0.4198 0.4247445,0.4198 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93888903px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458335;fill:#000000;fill-opacity:0.78039217"
|
||||
id="path1599" />
|
||||
<path
|
||||
d="m 3.5108408,294.12732 h 0.5482167 l -0.1234722,-0.77541 0.6124222,0.49883 0.2568223,-0.43956 -0.7655278,-0.32103 0.7803444,-0.29139 -0.2518833,-0.43956 -0.6371167,0.48401 0.1284111,-0.8001 H 3.5108408 l 0.1382889,0.79516 -0.6223,-0.50377 -0.2518833,0.43956 0.7704667,0.31609 -0.7754056,0.30621 0.2469444,0.4445 0.6321778,-0.50376 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;font-size:4.93888903px;font-family:Cantarell;-inkscape-font-specification:'Cantarell, Bold';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-feature-settings:normal;text-align:start;writing-mode:lr-tb;text-anchor:start;stroke-width:0.26458335;fill:#000000;fill-opacity:0.78039217"
|
||||
id="path1601" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.7 KiB |
45
nw/assets/icons/fallback/search_word-dark.svg
Normal file
@@ -0,0 +1,45 @@
|
||||
<?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"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 6.3499999 6.3500002"
|
||||
height="24"
|
||||
width="24">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<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
|
||||
transform="translate(0,-290.64999)"
|
||||
id="layer1">
|
||||
<g
|
||||
id="text817"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
aria-label=".*">
|
||||
<g
|
||||
style="fill:#000000;fill-opacity:0.780392"
|
||||
id="g1606">
|
||||
<path
|
||||
id="rect1629"
|
||||
transform="matrix(0.26458334,0,0,0.26458334,0,290.64999)"
|
||||
d="m 2,11.5 v 4 1 2 h 20 v -3 -4 h -3 v 4 H 5 v -4 z"
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke:none;stroke-width:1.76363;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
45
nw/assets/icons/fallback/search_word.svg
Normal file
@@ -0,0 +1,45 @@
|
||||
<?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"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 6.3499999 6.3500002"
|
||||
height="24"
|
||||
width="24">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<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
|
||||
transform="translate(0,-290.64999)"
|
||||
id="layer1">
|
||||
<g
|
||||
id="text817"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:5.64444px;line-height:1.25;font-family:Roboto;-inkscape-font-specification:Roboto;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.264583"
|
||||
aria-label=".*">
|
||||
<g
|
||||
style="fill:#000000;fill-opacity:0.780392"
|
||||
id="g1606">
|
||||
<path
|
||||
id="rect1629"
|
||||
transform="matrix(0.26458334,0,0,0.26458334,0,290.64999)"
|
||||
d="m 2,11.5 v 4 1 2 h 20 v -3 -4 h -3 v 4 H 5 v -4 z"
|
||||
style="fill:#000000;fill-opacity:0.780392;stroke:none;stroke-width:1.76363;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
31
nw/assets/icons/fallback/settings-dark.svg
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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"
|
||||
version="1.2"
|
||||
width="24"
|
||||
height="24"
|
||||
viewBox="0 0 24 24"
|
||||
id="svg1989">
|
||||
<metadata
|
||||
id="metadata1995">
|
||||
<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>
|
||||
<defs
|
||||
id="defs1993" />
|
||||
<path
|
||||
d="M 8.3268645,20.0768 8.9719703,22.448 C 9.2032354,23.3008 10.175241,24 11.131598,24 h 1.738831 c 0.956356,0 1.928363,-0.6992 2.159627,-1.552 l 0.645108,-2.3712 c 0.231264,-0.8528 1.173709,-1.3536 2.091812,-1.1104 l 2.550866,0.672 c 0.91984,0.2416 2.06573,-0.1824 2.542169,-0.9456 l 0.869415,-1.3872 c 0.476441,-0.7632 0.307773,-1.8864 -0.380803,-2.4992 l -1.909236,-1.6976 c -0.688578,-0.6128 -0.688578,-1.6128 0.0017,-2.224 L 23.346891,9.1872 C 24.035507,8.5759996 24.205912,7.4527996 23.729472,6.6895996 L 22.858272,5.3024 C 22.380094,4.5392 21.235943,4.1152 20.317842,4.3568 l -2.550866,0.672 C 16.847134,5.2704 15.906428,4.7712 15.673424,3.9184 L 15.030056,1.5504 C 14.798792,0.69919996 13.826785,0 12.870429,0 H 11.131598 C 10.175241,0 9.2032354,0.69919996 8.9719703,1.552 L 8.3286034,3.92 C 8.0955994,4.7728 7.1548921,5.2736 6.2350507,5.032 L 3.684186,4.36 C 2.7643447,4.1168 1.6184552,4.5424 1.1420155,5.304 L 0.27260019,6.6912 c -0.47643954,0.7632 -0.307773,1.8864 0.38254277,2.4991996 L 2.5609015,10.8848 c 0.6868381,0.6128 0.6868381,1.6128 0,2.2256 L 0.65166536,14.808 c -0.68683817,0.6128 -0.85898242,1.736 -0.38080407,2.4992 l 0.87115421,1.3872 c 0.4764397,0.7632 1.6223292,1.1872 2.5421705,0.9456 l 2.5508647,-0.672 c 0.9181025,-0.2448 1.8605487,0.256 2.0918138,1.1088 z M 12.001014,8.8000004 c 1.919668,0 3.477662,1.4319996 3.477662,3.1999996 0,1.7664 -1.557994,3.2 -3.477662,3.2 -1.91967,0 -3.4776615,-1.4336 -3.4776615,-3.2 0,-1.768 1.5579915,-3.1999996 3.4776615,-3.1999996 z"
|
||||
id="path1987"
|
||||
style="fill:#aeaeae;fill-opacity:1;stroke-width:1.66797" />
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.2 KiB |