q@N?*$W==VpPikx(pkPN3KT*UJ-wS+)?jKdn?N?8
z85xuwD!8@LV5Tx#q|Hq9dm`8NqcGo%jc>A+>+(^}&CMd_(^(T0j|Ck#DrRf2OwSa$
zAh+m?5Zx>%lS08^mO2w=6EgXgd6=6dTyUHfMlZRO7H~dpHePQ26dhHmBqJ;99?JSA
zE1##Ke7XW&c%<|VspxfWh0c53HhVlK3`%fP@?4!(EwK?V-~~2UwurwXSDt!$eJSQ1
z16oj6<)M#10b&X+x^H=Tc{^dyqYx0{mru;8|6LS4+#H4W+6>y5z{2DyaAw-EVuNaA
zTZ!I?gksx3#w9cxZ#2%}(Dca*~cAkeU)jM&~er`xR
ztuDgZXvf3F?NVjBMn^}7>)ep-jN%c@(2_y-P*e?s5Z
zr9S|Q&LdWuuiZ^o)`6E*?TDtaWfDzZ0yg9BIJPT7QH4%dZi5~1Z0EPDQ>t#|gs&-N
zD)#8T7GjDM$SGdYy-sDoCv
z?9@l7=y+vir36KHcDEhGD#w37bYD1u5@mnu&J)dV!h)SZv5=|DMie-6)o>aZY$26L
z1F;nCf)8M7{Q*Cj_k~}tP8~wv#js7K>ic^pXOT1ltYn{CVu}WZTxp_k-Z}g(ba$Pz
zXI)T|@>*eD&I0wps9cu6eC^OzkWjl$A!~r=ucbDE($dnhqsLn0_U$ZxO-)VdvAtWL
z^xo(p5k+C73|w`fN{I>`9zdAj6hNtbOTzhy;xw(0Q91AgyyfZrJ<5dT=>|
zT*Akt5Y#mq8XppK0!OS3%zOXu&k*f){GLo99JC@Hb}!$&=|@AhM!5aN%Hbo33!7k#
zjPVG@v&k4f0f7XXd=F14c1uOS_%Bz0*PH<7w>;gqfCQ=;)qAMCDbMcI#csbi_~rNw
zblCm>gA2gC`C;x*3OS(LcW&Rl{zaUsAS=A;F7zNvc|$|`eFHN-LrtPMT=`9bb>2->
zq(QIoV7V^hJ*=F_S^9Yk?{1>pO(jx(Olcf3gjNboJ0Z;JPUlffRmr6;?{EDhN)nmh
zzxOWyi9S6$J9`9D!nLS*vpYfWOaWa!F+O}Ar)8vb_4oWd>GpU93)O)N5eco6#eEY#
zZ@Dq1XSOM&R4*`1*W<9jA(!+KTBZlh4UZOAVru^ZlMlQ8ZM)Q)dq4urt(y?(0T<^g
zCZ%0E8sF@&0-;0pNv!Ul#JX&WS^Y>469!EVdFz;+&lc!8o9fo~kz@!Gl$vQrC%2#y
z^>tY!0nU#;t!5xGgpN~nvJo^>xD_$676|Rkfw4psPb|u1V085Gdb?Sf%A#ofe`cUU
zI?ObkIY~+eQvTNc5n%nhGm#Mc{_2*0?bj+FFrpzsEVT=0jrBvV6O$}`?$v+G
z03GY`cogJ}jg6fuEP5Z8w8HL7eV#ee^P%gLqJ%1#o}=%$o_JG4EyVIgEVgN!sz@aN
zoQ&|imc1I1ytww(r}$N-^6WdsY?lXHSd1Vt5SgD5uto4;m*r$Md;^#07R!W_HW9zkvyMK6{};5?uIBEd%dCNbVw9NVKYR(ng=(BavN2YI&L$@$mg
zM2!fOKhm3>_yBn4q3L^pefFoOB9j8~M@?*B6VSp7+KypYcd1Od$RI|-Dl8q+03
zLqZ3j7HyNz3A+hAM&6N-kk|x`S@_?js6Z=&t=#~q58Uaq*MeNz6i^nA0=Tx0s~B32Jq!H#DQ`1ozGQZ*
zqLx<(y9Fvuepd`%%$kVXim@2Pd;)>bIkU&F5rp^c(0{SxPXf|&dIMRK;NwZcCqx)|E)Z
zH7GZN4i_PczO8fhxIm|rzF2GtKPK=~Jx{(dv|tEkdhkd{1Q>ucnwwArD+72BNnc
z$|@?H*eF40N)f0^yTvx3zcb$J#WNZs%8V+UbBvlCluCJ}r9H&t5Cpck*Tf9@&;{U+
zVQ!lf?%{Ho)FFx`>(GabpmE*?fn=!-NPqeJsulTZy~x2t5CovafN)Sk!(-NY!T8km
zqjuqw)IET{im?U4gWjJ)q#;!C1Y%EvQmLXiui$NxtK*|hBNz(z3tV=yLG}XGo5B{G
zTk4qkkN#@Xqj<)UkZ!gu4PD(%?Qi$|;29jgW{^040YTBI1wpP19=|dm1rUPl0i&hy
z4}6j#8!KyB%RrnW!Fx>$uZE?|u&tl=YEDW{Y`TS}$JNmXm-U+3iFTRg@NuJ|+6#$w
zQ6p*}QLUMtm&$`yyqc#NPcsS%Qtmq(5`bNjyJA^Lb@DYS-u?PvQ~CTAC8zggKxrKW
zi*-m=Ib{@zZ;n?iLxb%gnyo3!v}kqtav>BI8$UPG(IHQVLZy2zr+5mBpZy(tatTg)
zhh1whhK7bCfC0SxdlUI0px=HdBi9*WdDHat&g0n=jtk>q8Tx69T6ojpPM>Rr6_8f_gST8JX@}7@iNj+k|b*s(1q+||e
zHS8yAc1nQs{naQOrr6>EMQEp2U?z@PJUd6%#@|{0ojfYURL2i15aL(@U0q!twzjvo
zdG5%{LMiAJ^4J&~2hEV#4&H^bTQ2;kr=k+Yr{m15RUVsQ>p;XT5h3C4Teohpt2BWi
zteZx`pKl{;Az=bH{|&HYF)0Co*Wh5)e>^-6K(1ym(;hIlDI>_>PL%tckD|jQ=D*soBn{Lo_4uvGr(`O#{~53ICVW56LNB%r)X9@
z_&DWX4Jnuptn0Ze-!+YLKSp!onn!>5pf^;Ybysisk}6I^2X**Tg3fo_*@5nQGdG!kMSzy=D7jg7Tl
zC1uwgLw30E$>Ifn1XHu}CoHLV(IPuLd$)++iQ8{diGR_5U~#iv3h66Jt(%osqVo~&
zmWVSXMwy$5u_fP&`<)y>30nrvn=nk!Ep1}*aclmKL=&=JJ9^k#=ysp`PyBPZm_iV~
z{s@b@g`UHnyX*3~wCatHs_In(qv$)!m34oW_%JNXx78x3`uE;}MAPiKIT2q54ge7~
zH8pQ!sAi#xfS#OY!_w-E81tdB#{O=QjE(s;m#0Q7Q{44QNTGclNGVkM3*H&QhK!Q;
zvk)lf?m;VG7Oz3qd%`{imjBl)5
zlhEDNCvzo`Qe~=dXx73LPT}$dmF$#7HTg(SL7}rF7>{J)(g4XN3}PIf`0v@
zn^JhpyT@O@Cbr&GODwsCzsSOyEmUO%#+%3Aqp1mBZKcd#CM<5l`jK<0(gVJ1tid2T
zAOR25bvh^aBtL=zZ%aChXjpNA$P7cQDT3MtY_WO+&h(NU2BqMI_&4Vb|U=3!YAfx4iGj`fvY+piei?q;Wydi)EdG^
zi-?F+fx>wk_
zm=`C1S1Sf$&mY1fEi~+p802brSh5X!Yq5UDk*Z18E)=_E1d&Sm=PpS<2O9!zeT!q6KE~hn=s9f)jl*>mal9zIE;hB#RKsrF8sqQ+{OTdkS4OqGfkBm~;zV=w^I;e2E1MBc)Gnt3PLw
z%}y-I)4GpYuR+~VFV>des(zB9nk(YIrr8Fy!|AeJvGG5;r6kwG^!VW>W#LKbtB_Z?
zSd4Jw92d>XJZqv+CesaG9dn|MIPM+^(xM?_W4d2JPCl1bPzW!=-VD6KcJP(T==PU^
z&rddM8*it(_KtVxOC2*_F0YW&tYqV)0_ZYFSup+w>zQ`(`xW=K(kJ!by0}SFb?dbV&`g@tke}-6TBxC~@+|eGD4k*|4ej`S#x;!e^z?o$R@w4=
zP`-jkth@8)3+Y82WUY9Ua$fZw%eXF^N&lTPJ`>_GF0GVb-}scRm}PFX_7gu|lB4P@
zbJFzJb(PKtvF0Ftf6)5rPsQXhZtP-OCcEYp>D8#8+fK_FV3Yh)>r^UWFC>MfQ{cH7DZg0N4D_}_
z`E+POcQfjMuptb(FsDnu-^pq&Ln4nkp}UeXx!|BA^(ynL%NVM_)1S9yJb!NJ=q$cc
z`ro{o(aXy#txK#H89
zVqNnRu>uApHOwL;w;Hc(X1(DPv-LBVL?A)KgE0W3W`8kzaNew)d`ImbYI$~%Vll#K
zZgIS;i@v@-Ud3Fr@Wg0{!l(LOCjAG|)c;xhgZNx%axB=v-mO8n^DwMQg{x6@UFx>h
zhFqa&n--79hHk~UU25mvzhzbto%LPsQfGL$LA#OwTMl3Vw|T)3MMgHT1j?jQ9V8XS
z5kctSKr+lttTDn_&f3j|rKP355C1J=)AFH)9!$o5#s{PY>4F4sPS8n5C`>0*ode8u
z|yCn`}5
z*$*mUG(s;&%f7FqZzOR)9ye0
zW+8=gd6LrLx~vL$l?oTk%dXOc=Nv{&lbX7^HJV$vm$hmzS1sTGWWWBabi$fM9oO&I
zIt^JRAnw70;A*NcvDcfd^kYzxTyvchF%a}_zBJK>Lu9=X~493-GN(u_U?X`BuTLh_zA1_>^jV*vhjgR2T
z^6KE%bh`!$30QB}=4$4QnTF$#UnU5!C7+#cR_j1)@U|zHF9e3YFJP$FC?_|!Ul_1)
z+5Y-yweM~h3jtzKWV<04YRU_kItuejH4+55{C1^&BbKCqw;#;2P{A;&J;J%Mr%IFc
z&sCTeT$^sJr}&NEZwpW|A>OOzD$E9g{I_eVtv!<9VAvxoCnvrO{Nq9wOeC{=H~fJy
zJ6lu;jo4H=kmJmO_}h5Zm>-ewwL*^;*vwxr8B1CR{pye+6(yAlA%Y&g$2H5sbv+hUg>x9OP&@;&RB)omC+5{$ai;S4`ezI_LYo%ZgXT&$-s@1rh<5q?ky
zndDv{ea_2MsCsmd2!>ybfC~P!shkJ7g9YN48nhji2MdOPe^=EYuFlPxH2JoeXlYeG
zPxBNaR+Sp1qiF>z3m^fe!0MwSy$kbRN3-~mfkF@FcQs^ov`9-5Fxt1!QS;akHL3JM
z+?2X)ER}cKrh5ZMQ40pF{xvp`D>KJhLmYy)nzC@;bTC{q^dHjiRA1sU6fGX;|Wo
znSQdn6Y_p+<`|NhtgJ{Np-%t3x>s#G%2j~fl;k>!LX0$@pAae%h%`R!g
zpETdy2TMV?MBkE>nM)HG*+^9qc~|RAzrNH!+-&1|?Wf_{`vwOAL3yK+`7_7nGY=RA
z2xis-OYi5+(D>Eh=%gf?^^G^eDJ3gC+|6dLKA#o}nFS~A=FzTv>;DPx;?C;oDp&99
zbP((gKj8Zo6KlUl!d5(H!|Lj%ZHd>2kGuQ(XIh+-E%Sr!+)L`sacnvcl`H#1AiB+u
ztzAGe(d6fI0OPYqz77s0MZCyq8E7WopkQb}sdLM}@!KaIeg2|Merq7{X*|gjN`x-7
z!hiBoQqKo@Au8r5;Q|=wmY}eB1%Xx%XDTOocH6U&B0ZhU*)h8Z4t4`!E>NfP5bMbh?OxG{n4zB`oMy^c2w{b4CqkBsiB4JyU`3M*|o
zQQR&fy{la$hW&xpS{Jbb+Thf(|PAgPkawQog1<+}s2
zZvxt;(Wyp0jc+bjG83@n$q(p6XMnmXb|iWO6xq7%Z$<5shFGeEPQ(RIny|6ctphb3>an?
z?HwJZeLX$(tHq%({^AZaYkU}V(mNo~tAu3c%i_nl4bW;Ajr1gKXU84=o4Gif!4wWB
zUO|8)HGY}HpgRzb_!&|#{nJ|`?j(JDqATg1N!vSkdd+1JqGo_GH^Rn&@UN!#8DPTv
z`+xnS6&X+*ZL96Z-{NWvW}8G6sERn}j>i3ffweu0irS%~REVBdu
zcl^OekPxWg7i|!nyn<;*`VcX%GF}+F>)O;BERWMsGJ@YT;30CA<_Q89w!DfJ^oAsu
zUq5ENb7wK5`X*4?o=Xqy0NgoF|NUVdwM1p+tH1GHm3W2?Nlx2PvC>s1@>>?rx#ySh
zW3^lgkSy>|_xoX7*mr$>-Qbcq{=Gtu^IT0urS}HRL7u=PHH}lr(A8?I;(s3b85`lU
zKElZZ5Py5fW}kbzVNdl9VCVe}kPDaLxjA_{*xkGF7o4~UC!m&c`JEpx2T)N_4Lau>
zSLEe?LStSYR`0UgHddwL85}&8Bds48>Reu{yOaPcvbgK-+E4
z0UY%^Sl3;J(b3Tj_tXGV7&zQAn?T6+Dguoi0_-3I6(TVDqkrW6H(D`X4&T$FCmILQlcbK!o7-_pY!1IQ!!bUs7pDL_`P;5!D;X
z_u$!{tq!s6AQWIwJ~j$|<&B}$u^1ydf+DxrIIk4@{8pMEgIArcuLfau13$gqYEW+J
zcIk;CK*vlOB++aq(5dPe1eN&MZ@8PMknRr#LS!F9+Z|8&|;lNiPuoIj#Z7@ejZl
zZWUt`LV>}60*2fhV1`>C2gcshT+V7ouk{z4Gt*TYN}&4!Q?&U;VY5TM=0;&h%t-{#
zxS5lztF6#lzOf~%yxN5q;3<>=%dMX`%FD|KgAi4810Zn^mf(-y7$L^x)K(|#?qGkCD8x;n)dh#CLzEcjy(w3^2*MKe$O
zgx$Bre_&%}?U@Bs%-q=67z`*|Wnh41v$L^@LI39FqDc)->Ixwpgx7sKzZop*4dMD)
zaS?D4k9aCt^7k>3Tj1sY00ijSSzz@igP2l24hMnQkxI@xcPU9p`PG$`T*uB(NeUr7el26y*)aFW2P5SL0YyGkT
zt)z{bZ1=k+d&Mp=H!%Vf?jJY58O8_^d2f7fNJeAC)=3Tea>-`Aa}~1(D2mb>nXn0fX3aQ74h3ldU-@R@A{ZV
zS!gI;*yhhH8r}=zOYxPUU5=>o)ocQnj1`~+^WCQd(aq<#Ie0iZIf2W65(PF;>{Hd!
z>P0Clx1+!$5efY88UXiC_nU><#d_MNnaeQ$(=-~?5t1Hl4%%Lrzm%X9UxzPoA={4pkCZoL$*H-X2$_*iC7$wW-xeGwxYNG^8x0LjLU3?!C|J_Gp99Kf4}j?jo&Vm*z5(4yf330%y)VKj(o(S#8oIy|hx|<^-=9ykd@8o0wQ(^u!4*9yU`S#s6T!;m-bwLZR44izXBaYREav=X$F0C
z9OFcehT;!{CUg*l+Wf%K#p#5+U-ixP0#tYQVPy_{$6GTGYTMsjg9VMy>!EbMz?YaG
z3{*xx{f0kFj=1+wqU)#SW6emF0aeFE!n)t4yADcbBEo7GTi$Z;ntfS~De=XWy{gFx
z;kSz%^P5ikCg0+r(7PeSL-uRBIwn~i>n0aY@6Y4Mq+jmI$lZQ=X>sl{Zw^vS&FY
z)ENInttzODMxr5Fjk*YB>t)*9n
z)NT=0ZC1L<*Dcty5b(KCKV6F{*B*HBus?Y=O=#o>e?|dan>nfDi;MyvQm^xeSFh#B
zH))eTyV&}@=T26t!_O}6hGwWnnu~%b`n#%HxUxmfRA~bM1G+xV@GcLqBrhoPumrub
z(iP+uwBouUgh(p7N&Wh^V%yklMREVlDZ4TghUUF1CBFa~uk{D;Vyk_cJc?zt-Ck90
zrh{|rWrC&m=*XxdE7r3x6KcDsE)NkCKMu_*D5ayT?2(LY)T=^&C#lquLvLIkTo51!
zRfQD#^vz@@+rY<>O&l3+=7WW%gyjIOXus$(0p>P$4vMRbLc28yE6$L|v>Z;SH$h68
zIrhaliP_{%nS8pZJrh!2!Wu3RtS@DQ!Ls
zHB=sx&Z=se&+*|JDR#>D%bP?H?qltPw`45pl`nYJ_<4B9;CDTz&$=v05DH{Er&!_l>?)5an?$FVOddB8MN1#De;v#ak3~SL=ydZUsa?Ae9r*%W(6WNXrc+oH%C1+$$M`=NOo5-#)7r#Px7XS1Ui!t+
z*hR5qtGzGMe3_#98&PEUuNGqjLUo2$Rq4<80H2EBse7u0-b6cI8nO%J!*N^$HFhz_
zhCGkew0a`Lp
zkuS|4lV2kcbme%`R4{FKZC!UpNu4`R&tBMo{W$hm*^4^e>yO6;CL8-RxdkpIX<>-^
zR6`Ri_7|ym^{=uEVYUYfMoGPd@@LvUwXUnT!+s@1
zXJUQ)C!S+(6rI#~kB;beE*5#W4~++-!4|OV;v*#&q_TqLlf~%}v-zOl+?$UMY?3VpwAKSCxW>
zb-GLQ>(6YvCc;^jrZ+^Nh0{PyA9<9BsQ_dHUfyr###M($XggfZPK$r!@Xsqs1aU13
za#h8bO0n~x+#e1>Je<4e!Ys(QeJ%-Rr`Zj7YU*?9sGG_3Xv!r7Pc@lH1>w#K6H~)5
zI3;HvF3m462B-6Nf?qaVOg{Z?7dkcG$J5n&vv)6L%;z
zJpmD<@w@ZfO(>&miBwttIk9dC`Uu}e6YoRnT3UgV>jwsvR`xN*I1aGO_sm05zab9E
z&z}rdL;iz7{74sbmd4)*xmU~(j+z5=e3r2ZG;U~`+iX+5e3_r6NxHktp}s9TI9NBF
z3M!RfHjxvd0{v!~nnrVtJvH!+Zl%>bIm^B-j-3QrFori7MY22f}=v4
z9GD0`3{~2zi{K(ppMT~pdp_A!%qW{y2VPfSAFZyT(ev<&{e#mJL41EMpq!8GKFJ)x?brE5M{;Nk+_?08o8~vSLjUf
zo}Qdc&|DDltne*kK1a0CuShiN0pUDH$0NngfW#eYNZVv!`nSCM3-
zK~#90?Obb+T*Y<%y6>I0X7)8JtsW~;APE~|NkoNX91z$jam7CZwhPLxa{0fV5d6~#
zzny1Q3Oly>VgGXCBxNUn?5d=kN^D}vBvdGac@-Fp5CTc772ehE?7Z(i`Eg(Uy!Xyy
zB_KZ1&fI(YO!w*YopZWxch3O7p{q(Pt?;e~zOfA881u0c#GEUn(|dy$dBkxMz%!@5
z@`q=wVkYLNzx>UU%;66bVSl+;^ts~}87LJjvfe~2N+~n($-)Q7z%%nLf?*L^7^c3E
zK`xDm7y(}2V;*NjZ}{B5|It7DqyJRpB%|JQ&-Wbv(51iS-1*$X%zV96C>bi2HIq6W
z>qg4GQYLmPzBchmkrDVpyP{4ypA32^`eo^0sMF>ICh{@FkZo-c=)2CV&HKLp{d>Kr
zj7x%tE`7aNDt~@Yb9cR5EQ2wCF-S1QJOl;FeZXQ2U}0JKUoT6Fh3iC^2`?%?YFliV
z#Ud=xMUd6>5GqXCO3}ekr)rlp;&4%e@!fltN8Snzj>0o&ck~bch?zX
zhVVCdJY?@vqmvZ(P4&W9bQG`Gb;|PkSXPNhO*U^N2)bqyp~p5ieK!1Ll#b#EU=IIk
zb8f!QSmaAkBEaDBqDV3WMBgrHXxWmDXRgjhDkasHZQgvw=2lzF%F=&WdcELKM@%bgdD_(mk4YZ5CTBp
zE@w=PP}#_;p>05jMwJX;07x)QKCc(r6+mDn*)c(gTbcxf94Igb#)uUFWg05xV=EYG
zKv<2PD5rHSt;3RWvQv+!$JGGA$jczEGMMVO)&_)B4tq2t*AR?s^LhcO3A{0?
zXEYFmYnubW(6)t_1%fsR#|BmqNChHdi)98Q*o>0^l6*eX5TfiTAZR+-+m>`t^oeVf
zKsEEyK#&Jv(cprStsXBL+hzn&nH1xg4Iz6T6FN952$^lG^%?bnq>tR5nWwiWldH2-
zrNhf`JAfF4_XzKU7Z#Nf!fTn&&z%N;{z*6&-vS0b3>x$3FCT{YzT+rV>!3gqjD-tb
zENFwm3%;=icK&tn^QYl#uEFWHz`Gp~2)2^@|eJ~;n8N=qQ&!Y3wN3eF}HVi-V2^7k;1O(56bNU68o_zwv
zvoC=IDEU4r{T>RQ2TlYYx)cHM7{h=uwA~{5jsuT#bQYJ$UsL(`Gn*Uq1o?azTd~%>n~u(xmR)V#@o<4{&5t_)x_XJ!WVhsSR^_=3_Jz}
z1VPR)1dPyE24NA+G7|}z{M>02)-M^;j
zi)TTUSjISOQTl4)jWRP5QAq7?w4S3aqD2N5%VHS@_WYBW>2>0IX3AwOHyT*1R>4ej
zu`5h25tch`?0fq>_MiG12EY0R$V;5XHa#`*#Ei}qIhAMXxfKAW-kE?C=uLT1$?ETd;`bgtJLNNf@=U)Q8G^@0P=DU?DzK>?N
zjXgj4M|3vcj`>V;b4ac~-gpp@B?TEkhzsKzncl^Q7in%Vz-(&`#i#xq!+u98RTlH2
z*RjU~!z@SxLC8QP+Fy+Zyf-jl0QPh{*!SvFXrF&AS>wqu9+-I6@gO7_0Ml_i6A&=Q
zK>ibY?{IR7FhA&{`P7fl+qxX{$9+Cf<)pUaD+
zeX_6?#814m957=b%(Q(dv>gX4l`4AN!Rp)++H*VM)f(W8!Rcb|huGcg
zpz3+qm8K8_FgNI9@rB3H+Iua^)tP|Lpe)ou#Un117wQtH7D-wSjg8F=(Eu5UD@7h-
zc(YQ)M!AaD4j+fNd+E9gG+7F(Y_*0L4*@Y$WkKK!NANn}nsP2G2!2;m?ppWL+m(XclmZy~&1G1>2>G2_=1OUO<
z$#n)0)3mrkZ&s=}y?hw#gTIZP`wpU9tt-6{N$+&ATtngJlUV)0hjF%C9b1peaEO`9
ztLU`WgQ`t!kML}ulKdnbUZ{q)0YOoAn=&A6$H7LqhK(CPjD_6?P$-pkFN&_U&L`Jy
zp$PA`yRcQCLE9PcOP($OPCnTBMUXFd&e*mo*i6p`A;~F-bVDNr2o`$hdNzQz9G#2-5sOlQ
zFna%lQ83^feeS^De+Z5Fo#R&|^wl|d6vILZgE7Z~sy9S&^X+hHLP;!^C`gS6fuu1&
z`huGU2z3mY_CUPlI9Q!uLZ#LSW*xc7-czSgKx_Z|#!f>eB2-)J81}nKYZ*}>>Xa4*
z`dX0U@hT9~7-2(T0_t)Ho%vm;)YQ~tC+qkiTn~3&gRVQ?ZX72CW!)R
z5Kc=yMj(^{c^V^d-*G^-1`4I|bGA(3GfaIBeK-9epp7^H#~Z-+J=vC)0oTN^O;xqU
zI9uvbfl$GaWydEE02NDMjx!#f7H?zaD!i6RJGady8rey8OaFtz=^=3?>d{yOoE(pjN0g+j?9WWJ$EHK8TSOtxlBA-PT1B^rI
z&msClVHzc4fY1xF0HLKO3m6j{5i9$sp
zFx#+7Dn|oJZJ#mAAa*<_~D6B21}AjR-jcw2x1XOvcw1HdSzpWz(l=r6GMOB4rG)
zr5z&}6B0>alJKg?W!!H+O_qk_)zIiN?_exOg=zLQE*Yj(=>v0))HE#z8D%8TTD65C
z0#qQ71_T7}SHYNwNP1WGQl)J7+fJ!qDI#68ex>KVxiRZW*PBc~W&_5P_TG{&P`#&lJC4p381DiHCD493*R=-HHBepR9&
z>!H9dmU|3Pfr#oefiW>9lPZBBmm8Z(Nl(*Sh8T^qfzb|T1)s|RBD|1fqV}dnhLIr6
zyYmdpQ_*R3QU_v@l%t8EP!M5B{yUengINHKC*f3YHy+YrlkNs2
zYGh8VGy}i;j1Oo>69bjgjwB|RQK8UL+QwX~+t*rP8kpayWQl+bAPh3WP14s%`b>cF
zsoPq!6&whlObG>JTjSTQ9nJ-ieKyn}Bg*-uYJ42fSFGqGoqWbHESAF^v6POb8C@%<
zt27JBCiz?tNpHfv{Wyxu3;y*Mme322fb@MIz3`~GM}+nu`5LH7#De{XVYLD7xbk42
z{8`5dff-zGWB!>!)zXew)=4^p>ReHN|o7zh!eHypxCS*s?-aK2o@
znQK3YYJDzUYYQTp;el;4e7=D`yK((nlHo<#DTr9u5*3`gSiSvTTqsx2&v6`(09+^*
zadCDh`~x>&$4oOd{Upt+XHpf9-_8Ia?IK&$K%<=t3XPm~NDCmi`wrvWt)Il1YAucg
z6M2l`Y`KDSjRl;!>7$rk+ykdj(2Q#}wxWmX{M!)#S#^%GDU~cmga%{)w9R+X;7pf^
z-vp0i4hR3hEjUxzf$rmvpxW8Q{GgAL7aWfoGKP&p5nG(&%%r*f)Hflb`&|sDWG!gQJh~~#_+Z0u;c8@s9nAU?hVi>
zR*D^p*+6}I~SHvuGYu1ljouH)jvkR(}v;HY^V=m-S_bFIQ0X-%3G-X!(XCh
zshQusSUHtXAlkx<_6bX%hd+fZn+C{dk>;gZOHx3AZ;2-$qR^b>48WxQIZgqy$L_%3&MOCkX#B-%-jDk1qBI6+_RzWZ--kSMh`R;M+;n9?SmRtW{*IZ*`1!pbFdR=8JzfREn4Tn~lO|{KY}wETQ`^!~
z#$OZ(Gso`0;Lgu(8whKhW4$($YW!617YeoS35y;-5)e>~VMo25?cu32ZqJlE{o*55zF;V}qh&y3A!szKpG=B4dIp^m!zKN`3fVSsrJ){*BTEP&E
zDuE%$C*`_=W>7{a$92&-dLjm)=?#(ftzp&p!8{+xOgXCY6ShW%UrUiwkGAm=6^YqH
zO;3gtrHvOtno2v|n>qb7e@yKbh=NF{A31^EM?Zs0jtl$dD6q~s)@!o{<0lp8Hhzkp
z+R;QG^cqFe5;8K(rJbvtfK%fW&QzV#;
zA2^3K;-mzT?fFC?Vl)842=E-X!pZLesKg&q*Zapkq-8k1uAU_o#|*h#SKkyV<4}~2
zHps{7W8cG~H^i1|{6;gqy%eukI1-2
zK}ir$!H^Ws3Cg(SxGow;PGEyEto-a0dX+jhZ~lEW_g{}%qY1KZ?x^Zz7+)$T`2N6g
zx$`t2^y^c9^3Zc-Ub~Sa{D~O#DK&O-Cf!Sy5>J=2$%+hnxt)xnCZ-_`0)RIhpmq5Y
zdhJcrW)@JZ&zlDzEv4l5`pET$G(gweeC}Vq@`WRSFbMn1`%;hE50{zSU|=xq3j>D1
z7-K|*P@g$El1fcZVCiEHrkNbKfSHBez`|~89Y${#Zu1Sygzm7l;rsYf+;(*F(&PVn
z`u(?lV!uzr8ypmiNdzc6U=c|Uo-ZndxG)+s+t}J(S%&-wWQh)Ap}@)lKN%?rox#SI
z2k$$N{P`EZ5tU2RQ0LX=ecr)K=+MUJid3sR%!RfutWHmbo2;lv{Vstz){zMin;)hR
z%*ymVgHj}n5s_9NybfuA&Y-pFGy1#2E6w|Dy2W(&pML#LPR@e>4sf_W11~b3Bh_ZO
zaGrGXULo>9KD@r~4>
Date: Fri, 7 Aug 2020 23:06:35 +0200
Subject: [PATCH 21/21] Made another pass of editing of the entire
documentation
---
docs/source/export.rst | 48 +++++---
docs/source/index.rst | 7 +-
docs/source/interface.rst | 126 ++++++++++++-------
docs/source/introduction.rst | 54 ++++----
docs/source/notes.rst | 15 +--
docs/source/projects.rst | 113 ++++++++++-------
docs/source/started.rst | 26 ++--
docs/source/structure.rst | 177 +++++++++++++++------------
docs/source/technical.rst | 21 ++--
{docs/markdown => markdown}/style.md | 0
10 files changed, 349 insertions(+), 238 deletions(-)
rename {docs/markdown => markdown}/style.md (100%)
diff --git a/docs/source/export.rst b/docs/source/export.rst
index 7997934a..4a5fc7a2 100644
--- a/docs/source/export.rst
+++ b/docs/source/export.rst
@@ -13,8 +13,9 @@ The novelWriter project can be exported in various formats using the build tool
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. They are all on the format ``%keyword%``.
+The titles for the five types of titles (the chapter headings come in a numbered and unnumbered
+version) of story structure can be formatted collectively in the export tool. This is done through
+a series of keyword–replace steps. They are all on the format ``%keyword%``.
``%title%``
This keyword will always be replaced with the title text you put after the ``#`` characters in
@@ -52,6 +53,12 @@ This is done through a series of keyword–replace steps. They are all on the fo
export. However, heading levels 1 through 4 are converted to the correct heading level in the
respective output formats.
+**Example**
+
+* The format ``%title%`` just reproduces the title you set in the document file.
+* The format ``Chapter %ch%: %title%`` produces something like "Chapter 1: My Chapter Title".
+* The format ``Scene %ch%.%sc%`` produces something like "Scene 1.2" for scene 2 in chapter 1.
+
.. _a_export_scenes:
@@ -73,10 +80,8 @@ File Selection
Which files are selected for export can also be controlled from the options on the left side of the
dialog window. The switch for :guilabel:`Include novel files` will select any file that isn't
-classified as a note. That is, files with layout "Book", "Page", "Partition", "Chapet",
-"Unnumbered", or "Scene". The switch for :guilabel:`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.
+classified as a note. The switch for :guilabel:`Include note files` will select any file that *is*
+a note. This is allows for exporting just the novel, just your notes, or both, as you see fit.
In addition, you can select to export the synopsis comments, regular comments, keywords, and even
exclude the body text itself.
@@ -87,10 +92,10 @@ exclude the body text itself.
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 un-check the :guilabel:`Include when building
-project` option for each file in the project tree. An included file has a checkmark after the status
-icon in the :guilabel:`Flags` column. The :guilabel:`Build Novel Project` tool has a switch to
-ignore this flag if you need to collectively override these settings.
+out of your manuscript, but don't want to delete, you can un-check the :guilabel:`Include when
+building project` option for each file in the project tree. An included file has a checkmark after
+the status icon in the :guilabel:`Flags` column. The :guilabel:`Build Novel Project` tool has a
+switch to ignore this flag if you need to collectively override these settings.
.. _a_export_formats:
@@ -101,18 +106,21 @@ 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.
+ This produces an open document ``.odt`` file. The document produced has very little formatting,
+ and may require further editing afterwards. For a better formatted office document, you may get a
+ better result with exporting to HTML and the import that HTML document into your office word
+ processor. They are generally very good at importing HTML files.
PDF Format
- The PDF export is just a shortcut for print to file.
+ The PDF export is just a shortcut for print to file. For a better PDF result, you may instead
+ want to export HTML, and use a word processor to convert the HTML document to PDF.
novelWriter HTML
The HTML export format writes a single ``.htm`` file with minimal style formatting. The exported
HTML file is suitable for further processing by document conversion tools like Pandoc, for
- importing in word processors, or for printing from browser.
+ importing in word processors, or for printing from browser. It is generally the best formatted
+ export option and supports all features of novelWriter since it is entirely geenrated by the
+ application and doesn't depend on Qt library features.
novelWriter Markdown
This is simply a concatenation of the files selected by the filters. The files in the project are
@@ -121,8 +129,8 @@ novelWriter Markdown
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.
+ 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.
@@ -138,8 +146,8 @@ wrapped in a JSON file. The files will have a meta data entry and a body entry.
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.
+the order they appear in the project tree. Each file is then split up into a list as well, with one
+entry per paragraph in the document.
These files are mainly intended for scripted post-processing for those who want that option. A JSON
file can be imported directly into a Python dict object or a PHP array, to mentions a few options.
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 18336c21..da2335db 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -34,7 +34,12 @@ repository for robustness.
The plain text storage is suitable for version control software, and also well suited for file
synchronisation tools. The core project structure is stored in a project XML file. Other meta data
-is primarily saved in JSON files.
+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 already, and users have tested it on other
+platforms too. Since novelWriter is still under development, it is easier to run it if you are
+already familiar with how to run Python applications on your platform.
**Useful Links**
diff --git a/docs/source/interface.rst b/docs/source/interface.rst
index f7463f8f..2a04329e 100644
--- a/docs/source/interface.rst
+++ b/docs/source/interface.rst
@@ -4,7 +4,8 @@
User Interface
***************
-The user interface is kept as simple as possible to avoid distractions when writing.
+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:
@@ -16,12 +17,13 @@ project. It has four columns:
:guilabel:`Label`
The first column shows the item icon and its label. The labels can be edited from the menu, or by
- pressing :kbd:`F2` or :kbd:`Ctrl`:kbd:`E`.
+ pressing :kbd:`F2` or :kbd:`Ctrl`:kbd:`E`. The label is not the same as the title you set inside
+ the document, but it will appear in the header above the document text itself.
:guilabel:`Words`
The second column shows the word count of the file, or the sum of words in the child items if it
is a folder. If the counts seem incorrect, they can be updated by rebuilding the project index
- from the menu, or by pressing :kbd:`F9`.
+ from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
:guilabel:`Inc`
The third column indicates whether the file is included in the final project build or not. You
@@ -31,13 +33,14 @@ project. It has four columns:
:guilabel:`Flags`
The fourth column shows various meta data flags for the item. The first is an icon indicating the
importance or status of the file. These are colour coded status levels that you control and
- define. They can be changed in Project Settings. The first character after the icon indicates the
- class of the item, that is ``N`` for **Novel**, ``C`` for **Character**, etc (see
- :ref:`a_struct_tags`. The second character indicates the file layout type (see
- :ref:`a_proj_roots`).
+ define yourself. They can be changed in :guilabel:`Project Settings` from the :guilabel:`Project`
+ menu. The first character after the icon indicates the class of the item, that is ``N`` for
+ **Novel**, ``C`` for **Character**, etc (see :ref:`a_struct_tags`. The second character indicates
+ the file layout type (see :ref:`a_proj_roots`).
-Below the project tree is a small details panel showing the full information of the currently
-selected item. This panel also includes the latest paragraph and character counts.
+Below the project tree you will find a small details panel showing the full information of the
+currently selected item. This panel also includes the latest paragraph and character counts in
+addition to the word count.
.. _a_ui_edit:
@@ -46,16 +49,16 @@ Editing and Viewing Documents
=============================
To edit a document, double-click the file in the project tree, or press the :kbd:`Return` key while
-having it selected. This will open the document in the document editor. The editor uses a simplified
+having it selected. This will open the file in the document editor. The editor uses a simplified
markdown format. The format is described in the :ref:`a_ui_md` section below. The editor has a
maximise button (activates :guilabel:`Focus Mode`) and a close button in the top-right corner.
Any document in the project tree can also be viewed in parallel in a right hand side document viewer
To view a document, press :kbd:`Ctrl`:kbd:`R`, or select :guilabel:`View Document` in the menu. The
-document viewed does not have to be the same document currently being edited. If you *are* viewing
-the same document though, pressing :kbd:`Ctrl`:kbd:`R` again will update the document with your
+document viewed does not have to be the same document currently being edited. However, If you *are*
+viewing the same document, pressing :kbd:`Ctrl`:kbd:`R` again will update the document with your
latest changes. You can also press the little reload button in the top-right corner of the view
-panel next to the close button.
+panel next to the close button to achieve the same thing.
Both the document editor and viewer will show the label of the document in the header at the top of
the edit or view panel. Optionally, the full project path to the file can be shown. This can be set
@@ -68,15 +71,38 @@ and pressing :kbd:`Ctrl`:kbd:`Return`. In the viewer, the references become clic
Clicking them will replace the content of the viewer with the content of the document the reference
points to.
-At the bottom of the viewer's panel there is a :guilabel:`References` panel (click the icon if it is
-hidden) that will show links to all documents referring back to it. 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.
+At the bottom of the view panel there is a :guilabel:`References` panel. (If it is hidden, click the
+icon to reveal it.) This panel will show links to all documents referring back to it, if any has
+been defined. The :guilabel:`Sticky` button will freeze the content of the panel to the current
+document, even if you navigate to another document. This is convenient if you want to quickly look
+through all documents in the list in the :guilabel:`References` panel.
.. note::
The :guilabel:`References` panel relies on an up-to-date index of the project. If anything is
- missing, or seems wrong, the index can always be rebuilt from :guilabel:`Tools` >
- :guilabel:`Rebuild Index` or by pressing :kbd:`F9`.
+ missing, or seems wrong, the index can always be rebuilt by selecting :guilabel:`Rebuild Index`
+ from the :guilabel:`Tools` menu, or by pressing :kbd:`F9`.
+
+
+.. _a_ui_edit_auto:
+
+Auto-Replace as You Type
+========================
+
+A few auto-replace features are supported by the editor. You can control every aspect of the
+auto-replace feature from :guilabel:`Preferences`.
+
+.. tip::
+ If you don't like auto-replacement, all symbols inserted by this feature are also available in
+ the :guilabel:`Insert` menu, and via convenient :ref:`a_ui_shortcuts_ins`.
+
+The editor is able to replace two and three hyphens with short and long dashes, triple points with
+ellipsis, and replace straight single and double quotes with user-defined quote symbols. It will
+also try to determine whether to use the opening or closing symbol, but this feature isn't always
+accurate.
+
+.. tip::
+ If the editor changes a symbol when you did not want it to change, pressing :kbd:`Ctrl`:kbd:`Z`
+ immediately after the auto-replacement will undo it without undoing the character you typed.
.. _a_ui_md:
@@ -85,11 +111,11 @@ Markdown Format
===============
The document editor uses a simplified markdown format. That is, it supports basic formatting like
-emphasis (italic), strong emphasis (bold) and strikethrough text, as well as four levels of
+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/value sets used for tags and references.
+a synopsis tag, and a set of keyword and value sets used for tags and references.
.. _a_ui_md_head:
@@ -102,20 +128,24 @@ fit, but for all other file layouts used for the novel text itself, they indicat
level of the novel. See :ref:`a_struct_heads` for more details.
``# Title``
- Heading level one. The space after the # is mandatory. If the file is a novel file, the header
- level indicates the start of a new partition.
+ Heading level one. If the file is a novel file, the header level indicates the start of a new
+ partition. This heading level can also be used for the title page novel title.
``## Title``
- Heading level two. The space after the # is mandatory. If the file is a novel file, the header
- level indicates the start of a new chapter.
+ Heading level two. If the file is a novel file, the header level indicates the start of a new
+ chapter.
``### Title``
- Heading level three. The space after the # is mandatory. If the file is a novel file, the header
- level indicates the start of a new scene.
+ Heading level three. If the file is a novel file, the header level indicates the start of a new
+ scene.
``#### Title``
- Heading level four. The space after the # is mandatory. If the file is a novel file, the header
- level indicates the start of a new section.
+ Heading level four. If the file is a novel file, the header level indicates the start of a new
+ section.
+
+.. note::
+ The space after the ``#`` characters is mandatory. The syntaxhighlighter will change colour and
+ font size when the heading is correctly formatted.
.. _a_ui_md_emph:
@@ -123,21 +153,23 @@ level of the novel. See :ref:`a_struct_heads` for more details.
Text Emphasis
-------------
-In markdown it is often recommended to differentiate between strong emphasis and emphasis by using
-``**`` for strong emphasis and ``_`` for emphasis, although markdown generally supports also ``__``
-for strong emphasis and ``*`` fdr emphasis. However, since the differentiation makes the
-highlighting and conversion significantly simpler and faster, in novelWriter this is a rule, not
-just a recommendation. The following is therefore the only supported formatting syntax:
+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 emphasised text (bold).
+ The text is rendered as strongly important text (bold).
``~~text~~``
Strikethrough text.
+In markdown guides it is often recommended to differentiate between strong importance and emphasis
+by using ``**`` for strong and ``_`` for emphasis, although markdown generally supports also ``__``
+for strong and ``*`` fdr emphasis. However, since the differentiation makes the highlighting and
+conversion significantly simpler and faster, in novelWriter this is a rule, not just a
+recommendation. The following is therefore the only supported formatting syntax:
+
There are also some additional rules:
1. The emphasis and strikethrough formatting tags do not allow spaces between the words and the tag
@@ -157,7 +189,7 @@ Comments and Synopsis
In addition to these standard markdown features, novelWriter also allows for comments in the text
files. The text of the comment is ignored by the word counter and not exported or, optionally,
hidden when viewing the document. If the first word of a comment is ``Synopsis:`` (with the colon),
-the comment is treated specially, and will show up in the :ref:`a_ui_outline`.
+the comment is treated specially, and will show up in the :ref:`a_ui_outline` in a dedicated column.
``% text...``
A comment. The text is not exported by default (this can be overridden), seen in the Viewer, or
@@ -175,9 +207,9 @@ the comment is treated specially, and will show up in the :ref:`a_ui_outline`.
Tags and References
-------------------
-The document editor supports a minimal set of keywords used for setting tags and references between
-files. The tags and references can be set once per section defined by a heading. Using them multiple
-times under the same heading will just override the previous setting.
+The document editor supports a minimal set of keywords used for setting tags, and making references
+between files. The tags and references can be set once per section defined by a heading. Using them
+multiple times under the same heading will just override the previous setting.
``@keyword: value``
A keyword argument followed by a value, or a comma separated list of values.
@@ -190,8 +222,9 @@ The available tag and reference keywords are listed in the :ref:`a_struct_tags`
Additional Markdown and Non-Standard Features
---------------------------------------------
-The Editor and Viewer also supports markdown standard hard line breaks, and preserves non-breaking
-spaces if running with Qt 5.9 or higher.
+The editor and viewer also supports markdown standard hard line breaks, and preserves non-breaking
+spaces if running with Qt 5.9 or higher. For older versions, the non-breaking spaces are lost when
+the file is saved. This is unfortunately hard-coded in the Qt text editor.
* A hard line break is achieved by leaving two or more spaces at the end of the line. Alternatively,
the user can press :kbd:`Ctrl`:kbd:`K`, :kbd:`Return` to insert this.
@@ -213,11 +246,16 @@ 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.
+tree hierarchy of the elements of the novel, that is, the level 1 to 4 headings, not the files.
+
+The document file containing the heading can also be displayed as a separate column, as well as the
+line number where it occurs. Double-clicking an entry will open the corresponding file in the
+editor.
.. note::
Since the internal structure of the novel does not depend on the file structure of the project
- tree, these will not necessarily look the same. See the :ref:`a_struct` page for more details.
+ tree, these will not necessarily look the same, depending how you chose to organise your files.
+ See the :ref:`a_struct` page for more details.
Various meta data and information extracted from tags can be displayed in columns in the outline.
A default set of such columns is visible, but you can turn on or off more columns by right clicking
@@ -258,7 +296,7 @@ altering the colour of the word.
Keyboard Shortcuts
==================
-Most features are available as keyboard shortcuts. These are as following:
+Most features are available as keyboard shortcuts. These are as follows:
.. csv-table:: Keyboard Shortcuts
:header: "Shortcut", "Description"
diff --git a/docs/source/introduction.rst b/docs/source/introduction.rst
index 5466bf28..6ca43b5f 100644
--- a/docs/source/introduction.rst
+++ b/docs/source/introduction.rst
@@ -5,20 +5,20 @@ Introduction
************
novelWriter is a simple, multi-document plain text editor using a modified markdown syntax to apply
-simple formatting. It is designed for writing novels, and allow for the component documents to be
-ordered freely to create the desired structure of the novel project. This is covered on the
-:ref:`a_struct` page.
+simple formatting. It is designed for writing novels, and allows for the component documents to be
+ordered freely to create the desired structure of the novel. More details about how projects are
+structured is covered on the :ref:`a_struct` page.
In addition, the project can contain notes on the various plot elements, characters, locations, etc,
-that make up the story. These notes are organised in a set of category-specific folders, and each
-entry can be tagged and cross referenced from within the novel files and other notes. These tags
-make it possible to inter-link documents, and generate an overview of the entire novel project and
-how the various files and plot elements are interconnected. This is covered on the :ref:`a_proj` and
-:ref:`a_notes` pages.
+that make up the story. These notes are organised in a set of category-specific top-level folders,
+and each entry can be tagged and cross-referenced from within the novel files and other notes. These
+tags make it possible to inter-link documents, and generate an overview of the entire novel project
+and how the various files and plot elements are interconnected. This is covered on the :ref:`a_proj`
+and :ref:`a_notes` pages.
These additional features are not standard in markdown, but are available through special meta
keywords. Syntax highlighting is provided to make it easier to verify that the markdown tags are
-used correctly. This is covered on the :ref:`a_ui` page.
+used correctly. The syntax is covered on the :ref:`a_ui` page.
.. _a_intro_design:
@@ -31,8 +31,8 @@ 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 strikethrough
- text.
+ links, tables, and other complex structure and objects often needed for such document. Formatting
+ is limited to headers, and bold, italicised and strikethrough text.
The main window does not have a toolbar like most other applications do. This reduces clutter, and
since the documents are formatted with markdown tags, is more or less redundant. However, all
@@ -40,11 +40,14 @@ formatting features supported are available through convenient keyboard shortcut
available in the main menu. A full list of shortcuts can be found in the :ref:`a_ui_shortcuts`
section.
+In addition, novelWriter offers a :guilabel:`Focus Mode` where all the user interface elements other
+than the document editor itself are hidden away.
+
The colour scheme of the user interface defaults to that of the host operating system. In addition,
a dark theme is provided, and can be enabled in :guilabel:`Preferences` from the :guilabel:`Tools`
menu. A number of syntax highlighting themes are also available in :guilabel:`Preferences`. A set of
-icon themes in colour and greyscale is also offered. The icons are based on the Typicon_ icon set by
-Stephen Hutchings.
+icon themes in colour and greyscale are also offered. The icons are based on the Typicon_ icon set
+designed by Stephen Hutchings.
The main window is split in two, or optionally three, panels. The left-most contains the project
tree and all the files in your project. The second panel is the document editor, and the optional
@@ -53,6 +56,7 @@ third panel is a document viewer which can view any document in your project.
A second tab is also available on the main window. This is the :guilabel:`Outline` tab where the
entire novel structure can be displayed, with all the tags and references listed. Depending on how
you structure your novel project files, this outline can be quite different than your project tree.
+Your project tree lists files, your Outline tree lists the structure of the novel itself.
.. _Typicon: https://github.com/stephenhutchings/typicons.font
@@ -62,20 +66,21 @@ you structure your novel project files, this outline can be quite different than
Project Layout
==============
-You are free to structure your project files as you wish in subfolders and split between files. All
-that matters to novelWriter is the linear order they appear in the project tree (top to bottom). The
-chapters, scenes and sections of the novel are determined by the headings within those files.
+You are free to structure your project files as you wish in subfolders, and split the text between
+files in whatever way suits you. All that matters to novelWriter is the linear order the files
+appear at in the project tree (top to bottom). The chapters, scenes and sections of the novel are
+determined by the headings within those files.
The four heading levels (**H1** to **H4**) are treated as follows:
* **H1** is used for the book title, and for partitions.
* **H2** is used for chapter tiles.
-* **H3** is reserved for scene titles.
+* **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 considered on novel files. 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. See the :ref:`a_struct` page for more details.
+This header level structure is only taken into account for novel files. For the files designated as
+project notes, the header levels imply no structural meaning, and the user is free to do whatever
+they want. See the :ref:`a_struct` page for more details.
.. _a_intro_export:
@@ -89,11 +94,16 @@ 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.
+into Libre Office Writer and similar word processors.
It is also possible to export the content of the project to a JSON file. This is useful if you want
to write your own processing script in for instance Python as the entire novel can be read into a
-Python dictionary with a couple of lines of code. See the :ref:`a_export` page for more details.
+Python dictionary with a couple of lines of code.
+
+A number of filter options can be applied to the produced document, allowing you to export a draft
+manuscript, a reference document of notes, an outline based on chapter and scene titles with a
+synopsis each, and so on. See the :ref:`a_export` page for more details on export features and
+formats.
.. _a_intro_screenshots:
diff --git a/docs/source/notes.rst b/docs/source/notes.rst
index 5368cb6a..d2b3c502 100644
--- a/docs/source/notes.rst
+++ b/docs/source/notes.rst
@@ -4,9 +4,10 @@
Supporting Files (Notes)
************************
-Supporting files, or notes, are any file stored in root folders that are not a part of the novel
-story itself. These files are intended for summaries and outlines of the various plot elements,
-characters, locations, and so on, of the novel.
+novelWriter doesn't have a database and compicated forms to fill in all details about plot elements,
+characters, and all sorts of additional information that isn't a part of the novel text itself.
+Instead, all such information is saved in notes. The relation between all these additional elements
+is extracted from these files by the project indexer based on the tags and references you set.
These files are not required, but making at least minimal files for each such plot element, and add
a tag to them, makes it possible to use the :guilabel:`Outline` feature to see how each element
@@ -21,8 +22,8 @@ Tags in Notes
Each new heading in a note file can have a tag associated with it. The format of a tag is
``@tag: tagname``, where tagname is a unique identifier. Tags can then be referenced in the novel
-files, or other note files, and will show up in the outline view and in the back-reference panel
-when a document is being viewed.
+files, or cross-referenced in other note files, and will show up in the outline view and in the
+back-reference panel when a document is being viewed.
The syntax highlighter will alert the user that the keyword is correctly used and that the tag is
allowed, that is, the tag is unique. Duplicate tags should be detected as long as the index is up
@@ -34,10 +35,10 @@ there for the writer to use in whatever way they wish. Of course, the content of
exported if you want to compile a single document of all your notes, or include them in an outline.
A note file can also reference other note files in the same way novel files do. When the note file
-is opened in the view pane, these become clickable links, making it easier to follow connections in
+is opened in the view panel, these become clickable links, making it easier to follow connections in
the plot. Note files don't show up in the outline view though, so referencing between notes is only
meaningful if you want to be able to click-navigate between them.
.. tip::
If you cross-reference between notes as well, and export your project as an HTML file using the
- export tool, the cross-references also become clickable in the exported document.
+ export tool, the cross-references become clickable in the exported document.
diff --git a/docs/source/projects.rst b/docs/source/projects.rst
index fdfc3616..dbf90b6c 100644
--- a/docs/source/projects.rst
+++ b/docs/source/projects.rst
@@ -5,7 +5,7 @@ Novel Projects
**************
A novelWriter project requires a dedicated folder for storing its files on the local file system.
-See the :ref:`a_tech` page for further details.
+See the :ref:`a_tech` page for further details on how files are organised.
A new project can be created from the :guilabel:`Project` menu by selecting :guilabel:`New Project`.
A list of recently opened projects is maintained, and displayed in the :guilabel:`Open Project`
@@ -23,64 +23,77 @@ Project Roots
Projects are structured into a set of top level folders called *root folders*. They are visible in
the project tree at the left side of the main window.
-The core novel files go into a root folder of type "Novel". Other supporting files go into the other
-root folders. These other root folder types are intended for your notes on the various elements of
-your story. Using these is of course entirely optional.
+The core novel files go into a root folder of type :guilabel:`Novel`. Other supporting files go into
+the other root folders. These other root folder types are intended for your notes on the various
+elements of your story. Using these is of course entirely optional.
A new project will not have all of the root folders present, but you can add the ones you want from
:guilabel:`Create Root Folder` in the :guilabel:`Project` menu.
-The root folders are intended for the following use, but aside from the Novel folder, no
+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.
-.. note::
- The root folders correspond to the categories of tags that can be used.
- See the :ref:`a_struct` page for further details.
-
-Novel
+:guilabel:`Novel`
This is the root folder of all text that goes into the final novel. This class of files have
other rules and features than other files in the project. See the :ref:`a_struct` page for more
details.
-Plot
+:guilabel:`Plot`
This is the root folder where main plots can be outlined. It is optional, but adding at least
- dummy files can be useful in order to tag plot elements for the Outline View. Tags in this folder
+ dummy files can be useful in order to tag plot elements for the Outline view. Tags in this folder
can be references using the ``@plot`` keyword.
-Characters
+:guilabel:`Characters`
Character files go in this root folder. These are especially important if one wants to use the
- Outline View to see which character appears where, and which part of the story is told from a
+ Outline view to see which character appears where, and which part of the story is told from a
specific character's point-of-view. Tags in this folder can be references using the ``@pov``
keyword for point-of-view characters, or the ``@char`` keyword for other characters.
-Locations
+: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.
-Timeline
+:guilabel:`Timeline`
If the story has multiple plot timelines or jumps in time within the same plot, this class of
files can be used to track this. Tags in this folder can be references using the ``@time``
keyword.
-Objects
+: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.
-Entities
+: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.
-Custom
+: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.
-For more information about the tags listed, see :ref:`a_struct_tags`.
+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`.
-.. note::
- Deleted files will be moved into a special :guilabel`Trash` root folder. Files in the trash
- folder can then be deleted permanently, either individually, or by emptying the trash from the
- menu.
+.. tip::
+ You can rename root folders to whatever you want. The first character in the :guilabel:`Flags`
+ column will still indicate what type they are, and so will the icon if you are using one of the
+ Typicons icon sets.
+
+
+.. _a_proj_roots_del:
+
+Deleted Documents
+-----------------
+
+Deleted document files will be moved into a special :guilabel:`Trash` root folder. Files in the
+trash folder can then be deleted permanently, either individually, or by emptying the trash from the
+menu.
+
+Folders and root folders can only be deleted when they are empty. Recursive deletion is not
+supported.
+
+A document file or a folder can be deleted from the :guilabel:`project` menu, or by pressing
+:kbd:`Ctrl`:kbd:`Del`.
.. _a_proj_roots_orph:
@@ -97,7 +110,7 @@ Files that are discovered in the project folder, but not in the project, will be
project tree in a special :guilabel:`Orphaned Items` root folder next time the application is
started. These orphaned files will not have most of the meta data preserved, although novelWriter
will try to restore the file label it had in the project tree. Other information will have to be set
-again, and the files moved back to the correct location in the project.
+again, and the files moved back to the correct location in the project tree.
.. _a_proj_roots_lock:
@@ -107,18 +120,20 @@ 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 else novelWriter thinks the project is also 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 and orphaned files.
+project which has such a file present, you will be presented with a warning, and some information
+about where else novelWriter thinks the project is also open. You will be give the option to ignore
+this warning, and continue opening the project.
.. note::
If, for some reason, novelWriter crashes, the lock file may remain even if there are no other
instances keeping the project open. In such a case it is safe to ignore the lock file warning
when re-opening the project.
+.. warning::
+ If you choose to ignore the warning and continue opening the project, and multiple instances of
+ the project are in fact open, you are likely to cause inconsistencies and create diverging
+ project files, potentially resulting in loss of data and orphaned files.
+
.. _a_proj_roots_dirs:
@@ -127,11 +142,10 @@ Using Folders in the Project Tree
Folders, aside from root folders, have no structural significance to the project. When novelWriter
is processing the files in the novel, like for instance during export, these folders are ignored.
-Only the order of the text files themselves matter.
+Only the order of the document files themselves matter.
The folders are there purely as a way for the user to organise the files in meaningful sections and
-to be able to close them in the Project Tree when you're not working on those files, and thus reduce
-clutter.
+to be able to collapse and hide them in the project tree when you're not working on those files.
.. tip::
You can use folders to sort your scene files into chapters. You will then need to add a chapter
@@ -155,6 +169,7 @@ details.
You can also select whether the file is by default included when building the project. This setting
can be overridden in the :guilabel:`Build Novel Project` tool if you wish to include them anyway.
+This is covered in the :ref:`a_export_files` section.
.. _a_proj_files_counts:
@@ -167,7 +182,8 @@ file defined by a header. The word count, and change of words in the current ses
in the footer of any document open in the editor, and all stats are shown in the details panel below
the project tree for any file selected.
-The word counts are not updated in real time, but runs in the background every five seconds.
+The word counts are not updated in real time, but runs in the background every five seconds for as
+long as the document is being actively edited.
A total project word count is displayed in the status bar. The total count depends on the sum of the
values in the project tree, which again depend on an up to date index. If the counts seem wrong, a
@@ -187,16 +203,18 @@ The :guilabel:`Project Settings` can be accessed from the :guilabel:`Project` me
Settings Tab
------------
-The Settings tab holds the project title and author settings.
+The :guilabel:`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 throughput the project,
-otherwise the name of exported files and backup files may change too.
+The :guilabel:`Working Title` can be set to a different title than the :guilabel:`Book Title`. The
+difference between them is simply that the :guilabel:`Working Title` is used for the GUI (main
+window title) and for generating the backup files. The intention is that the :guilabel:`Working
+Title` should remain unchanged throughput the project, otherwise the name of exported files and
+backup files may change too.
-The Book Title amd Book Authors settings are currently not used for anything, so setting then is
-just for the benefit of the author. Future, planned features will be using them, and they are
-exported on some export formats in the Build Novel Project tool.
+The :guilabel:`Book Title` and :guilabel:`Book Authors` settings are currently not used for
+anything, so setting then is just for the benefit of the author. Future, planned features will be
+using them, and they are exported on some export formats in the :guilabel:`Build Novel Project`
+tool.
Details Tab
@@ -207,8 +225,8 @@ project is saved, how may times it has been saved, how many folders and files it
many words exist in the entire project.
-Status and Importance Tabs
----------------------------
+Status and Importance Tabs
+--------------------------
Each file of type "Novel" can be given a status level, signified by a coloured icon and each file of
the remaining types can be given an importance level. These are colour coded icons and labels that
@@ -244,7 +262,7 @@ Backup
======
An automatic backup system is built into novelWriter. In order to use it, a backup path to where the
-backup files are to be stored must to be provided in Preferences.
+backup files are to be stored must to be provided in :guilabel:`Preferences`.
Backups can be run automatically when a project is closed, which also implies it is run when the
application is closed. Backups are date stamped zip files of the entire project folder, and are
@@ -252,7 +270,8 @@ stored in a subfolder of the backup path with the same name as the project :guil
set in :ref:`a_proj_settings`.
The backup feature, when configured, can also be run manually from the :guilabel:`Tools` menu.
-It is also possible to dissable automated backup for a given project in :guilabel:`Project Settings`.
+It is also possible to dissable automated backup for a given project in :guilabel:`Project
+Settings`.
.. note::
For the backup to be able to run, the :guilabel:`Working Title` must be set in :guilabel:`Project
diff --git a/docs/source/started.rst b/docs/source/started.rst
index 92a83d25..549a57ef 100644
--- a/docs/source/started.rst
+++ b/docs/source/started.rst
@@ -8,6 +8,10 @@ This is a brief guide to how you can get novelWriter running on your computer. T
currently supported by the developer. Packages may also be available in other package managers, but
those are not managed by me.
+As novelWriter matures, more options for how to install it and get it running will be added. At the
+present time, the process is best suited for people used to work with Python projects from command
+line.
+
.. _a_started_install:
@@ -60,6 +64,8 @@ The following Python packages are required to run novelWriter:
* ``pyqt5``, needed for connecting with the Qt5 libraries.
* ``lxml``, needed full XML support.
+You can of course also install these packages from your operating system's package repository.
+
.. note::
Sometimes the SVG graphics package for PyQt5 must be installed separately. It is usually called
something like ``python3-pyqt5.qtsvg``.
@@ -68,8 +74,9 @@ PyQt/Qt should be at least 5.2.1, but ideally 5.10 or higher for nearly all feat
Exporting to standard Markdown, for instance, requires PyQt/Qt 5.14. Searching using regular
expressions requires 5.3, and for full Unicode support, 5.13.
-There are no known minimum 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.
+There are no known minimum version requirement for package ``lxml``, but the code was originally
+written with 4.2, which is therefore set as the minimum. It may work on lower versions. You have to
+test it.
The spell checking extension is optional, but recommended:
@@ -81,8 +88,8 @@ works fine.
.. _a_started_depend_docs:
-Building Documentation
-----------------------
+Building the Documentation
+--------------------------
If you installed novelWriter from a package, the documentation should be included. If you're running
novelWriter from the source code, a local copy of this documentation can be generated. It requires
@@ -107,12 +114,13 @@ from the root source folder.
The setup script will copy the generated files into the ``nw/assets/help`` folder, and novelWriter
will detect the presence of the files and redirect the menu help entry to open help locally instead
-of send the user to the website.
+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 to the website.
+ to redirecting you to the documentation website.
.. _a_started_running:
@@ -136,7 +144,7 @@ encountered. To list all options, run:
python novelWriter.py --help
-There are also a couple of install scripts in the assets folder which will assist in setting up
+There are also a couple of install scripts in the assets folder which will assist in setting up a
launch icon and the novelWriter project file mimetype for Gnome desktops on Linux. Currently,
there's one script for Debian and one for Ubuntu.
@@ -163,8 +171,8 @@ 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/
+If you don't have Python installed, you can download it from the python.org website. The installers
+for Windows are available at https://www.python.org/downloads/windows/
novelWriter should work with Python 3.6 or higher, and the executable installer is the easiest to
install.
diff --git a/docs/source/structure.rst b/docs/source/structure.rst
index d6ecceae..146f56e7 100644
--- a/docs/source/structure.rst
+++ b/docs/source/structure.rst
@@ -6,9 +6,8 @@ Novel 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.
+This section concerns files under the Novel type root folder only. There are some restrictions
+and features that only applies to these type of files.
.. _a_struct_heads:
@@ -17,37 +16,39 @@ 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 text files. Four levels of headings
-are supported, signified by the number of hashes preceding the title. See also the :ref:`a_ui_md`
-section.
+instead dictated by the heading level of the headers within the document files.
+
+Four levels of headings are supported, signified by the number of hashes preceding the title. See
+also the :ref:`a_ui_md` section for more details about the markdown syntax.
.. note::
- The header levels are not only important when generating the exported novel file, but they are
- also used by the indexer when building the outline tree in the :guilabel:`Outline` tab. Each
- heading also starts a new region where new references to tags can be set.
+ The header levels are not only important when generating the exported novel file, they are also
+ used by the indexer when building the outline tree in the :guilabel:`Outline` tab. Each heading
+ also starts a new region where new references to tags can be set.
The different header levels are interpreted as specific section types of the novel in the following
way:
``# Header1``
- Header level 1 signifies that the text refers to either the novel title or the name of a top
+ Header level one signifies that the text refers to either the novel title or the name of a top
level partition when you want to split the manuscript up into books, parts, or acts.
``## Header2``
- Header level 2 signifies a chapter level partition. Each time you want to start a new chapter,
- you must add such a heading. If you chose to split your manuscript up into one file per scene,
+ Header level two signifies a chapter level partition. Each time you want to start a new chapter,
+ you must add such a heading. If you choose to split your manuscript up into one file per scene,
you need a single chapeter file with just the heading. You can of course also add a synopsis and
- tags and references to the chapter file. If you want to open the chaper with a quote, this is
+ reference keywords to the chapter file. If you want to open the chaper with a quote, this is
also where you'd put the text for that.
``### Header3``
- Header level 3 signifies a scene level partition. The title itself can be replaced with a scene
- separator or just skipped entirely when you export your manuscript.
+ Header level three signifies a scene level partition. The title itself can be replaced with a
+ scene separator or just skipped entirely when you export your manuscript.
``#### Header4``
- Header level 4 signifies a sub-scene level partition (section). 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 the titles out of the final manuscript just like with
+ Header level four signifies a sub-scene level partition, usually called just a section in the
+ documentation und user interface. These can be useful if you want to change tag references
+ mid-scene, like if you change the point-of-view character. You are free to use sections as you
+ wish also in novel files, and can filter the titles out of the final manuscript just like with
scene titles.
There are multiple options of how to process novel titles when exporting the manuscript. For
@@ -60,53 +61,53 @@ a draft manuscript. See the :ref:`a_export` page for more details.
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 on
-the :guilabel:`Outline` tab of how the different parts of the novel are connected.
+Each text section indicated by a heading of any level, can contain references to tags set in the
+supporting files of the project. The references are gathered by the indexer and used to generate the
+outline view on the :guilabel:`Outline` tab of how the different parts of the novel are connected.
References and tags are also clickable in the document editor and viewer, making it easy to navigate
-reference notes while writing.
+between reference notes while writing. Clicked links are always opened in the view panel.
-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.
+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
- character type root folder.
+ :guilabel:`Character` type root folder.
``@char``
- Other characters in the current section. The target must be a note tag in a character type root
- folder. This should not include the point-of-view character.
+ Other characters in the current section. The target must be a note tag in a :guilabel:`Character`
+ type root folder. This should not include the point-of-view character(s).
``@plot``
- The plot or subplot touched by the current section. The target must be a note tag in a plot type
- root folder.
+ The plot or subplot advanced in the current section. The target must be a note tag in a
+ :guilabel:`Plot` type root folder.
``@time``
- The timelines touched by the current section. The target must be a note tag in a timeline type
- root folder.
+ The timelines touched by the current section. The target must be a note tag in a
+ :guilabel:`Timeline` type root folder.
``@location``
- The location the current section takes place in. The target must be a note tag in a locations
- type root folder.
+ The location the current section takes place in. The target must be a note tag in a
+ :guilabel:`Locations` type root folder.
``@object``
- Objects present in the current section. The target must be a note tag in a object type root
- folder.
+ Objects present in the current section. The target must be a note tag in an :guilabel:`Object`
+ type root folder.
``@entity``
- Entities present in the current section. The target must be a note tag in an entities type root
- folder.
+ Entities present in the current section. The target must be a note tag in an :guilabel:`Entities`
+ type root folder.
``@custom``
- Custom references in the current section. The target must be a note tag in a custom type root
- folder.
+ 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 mistake if the index of defined tags is out of date. If so, press :kbd:`F9`
+The highlighter may be mistaken if the index of defined tags is out of date. If so, press :kbd:`F9`
to regenerate it, or select :guilabel:`Rebuild Index` from the :guilabel:`Tools` menu. In general,
the index for a file is regenerated when a file is saved, so this shouldn't normally be necessary.
@@ -122,18 +123,19 @@ and page breaks. The layout for each file is indicated as the last set of charac
:guilabel:`Flags` column of the project tree.
Not all layout types are actually treated differently, but they also help to indicate what each file
-is for in your project. The "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.
+is for in your project. The :guilabel:`Book` layout is a generic novel file layout that is formatted
+identically to :guilabel:`Chapter` and :guilabel:`Scene` layout files, but may help to indicate what
+files do in your project.
-You can for instance lay out your project using Book files for each act, and then later split those
-into chapter or scene files by using the :guilabel:`Split Document` tool. Scenes can also be
-contained within chapter files, but you lose the drag and drop feature that comes with having them
-in separate files if you organise them this way.
+You can for instance lay out your project using :guilabel:`Book` files for each act, and then later
+split those into chapter or scene files by using the :guilabel:`Split Document` tool. Scenes can
+also be contained within :guilabel:`Chapter` type files, but you lose the drag and drop feature that
+comes with having them in separate files if you organise them this way.
-Some layouts *do* have implications on how the project is exported. Files with layout "Title" and
-"Partition" have all headings and text centred, while the "Unnumbered" layout disables the automatic
-chapter numbering feature for everything contained within it. The latter is convenient for Prologue
-and Epilogue type chapters.
+Some layouts *do* have implications on how the project is exported. Files with layout
+:guilabel:`Title Page` and :guilabel:`Partition` have all headings and text centred, while the
+:guilabel:`Unnumbered` layout disables the automatic chapter numbering feature for everything
+contained within it. The latter is convenient for Prologue and Epilogue type chapters.
All of the above layout formats are only usable in the Novel root folder. Files that are not a part
of the novel itself should have the Note layout. These files are not getting any special formatting,
@@ -142,42 +144,55 @@ in the project, also in the Novel root folder.
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.
+:guilabel:`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.
+: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.
-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.
+:guilabel:`Book`
+ This is the generic novel file format that in principle can be used for all novel files. Since
+ the internal structure of the novel is controlled by the heading levels, this file will produce
+ the same result as a collection of :guilabel:`Partition`, :guilabel:`Chapter` and
+ :guilabel:`Scene` type files. However, it does not provide the functionality of the
+ :guilabel:`Unnumbered` layout format.
-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.
+:guilabel:`Partition`
+ A partition can be used to split the novel into parts. Partition titles are indicated with a
+ level one heading. You can also add text and meta data to the page. The :guilabel:`Partition`
+ file layout will in addition force a page break before the heading, and centre all content on the
+ page.
-Chapter
- Signifies the start of a new chapter. If the text itself is contained in scene files, these files should only contain the title,
- comments, synopsis, and tag references for characters, plot, etc. The heading for chapters should be level two. If you need an
- opening text, like a quote or other leading text before the first scene, this is also where you'd want to add this text.
+:guilabel:`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.
+:guilabel:`Unnumbered`
+ Same as :guilabel:`Chapter`, but when exporting the files and automatic chapter numbering is
+ enabled, this file will not increment the chapeter number. It also has a separate title
+ formatting setting. This makes the layout suitable for Prologue and Epilogue type chapters.
-Scene
- A scene file. This file should have a header of level three. Further sections can have headers of level four, but there are no
- file layout specifically for sections.
+:guilabel:`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.
+:guilabel:`Note`
+ A generic file that is optionally ignored when the novel is exported. Use these files for
+ descriptions of content in the supporting root folders. Note files can also be added to the Novel
+ root folder if you need to insert notes there. Note file headers receive no special formatting
+ when building the project. They are always exported as-is.
.. note::
- The layout granularity is entirely optional. In principle, you can write the entire novel in a single file with layout "Book".
- You can also have a single file per chapter if that suits you better. The :guilabel:`Outline` will show your structure of
- chapters and scenes regardless of how your files are organised.
+ The layout granularity is entirely optional. In principle, you can write the entire novel in a
+ single file with layout :guilabel:`Book`. You can also have a single file per chapter if that
+ suits you better. The :guilabel:`Outline` will show your structure of chapters and scenes
+ regardless of how your files are organised.
+
+.. tip::
+ You can always start writing with a coarse file layout with one or a few files, and then later
+ use the split tool to automatically split the files into chapter and scene files.
diff --git a/docs/source/technical.rst b/docs/source/technical.rst
index 7ceb6593..7298f904 100644
--- a/docs/source/technical.rst
+++ b/docs/source/technical.rst
@@ -12,7 +12,9 @@ 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.
+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
@@ -32,8 +34,9 @@ this file backed up, either through the built-in backup tool, or your own backup
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, although a
-timesetamp is set in the meta section on line 2 each time the file is saved.
+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.
Project Documents
@@ -47,6 +50,7 @@ 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, select :guilabel:`Show File Details` from the :guilabel:`Document` menu when
having the document open, or look in one of the ``ToC`` files in the root of the project folder.
+The ``ToC`` files have a list of all document files in the project 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
@@ -56,13 +60,13 @@ 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.
+mangled when the file is 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.
+and will be added back the next time the file is saved in novelWriter.
The File Saving Process
@@ -71,5 +75,8 @@ 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.
+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. If the opening of a
+project file fails, novelWriter will automatically try to open the ``.bak`` file instead.
diff --git a/docs/markdown/style.md b/markdown/style.md
similarity index 100%
rename from docs/markdown/style.md
rename to markdown/style.md