From 589e181c22b4ac3e6160143e465e45ba93ad3afd Mon Sep 17 00:00:00 2001 From: Shamus Hammons Date: Tue, 10 Jan 2017 17:02:05 -0600 Subject: [PATCH] Added automagically generated Table of Contents. --- munge | Bin 15544 -> 16392 bytes munge.cpp | 43 +++++++++++++++++++++++++++++++++---------- source/css/app.css | 31 +++++++++++++++++-------------- source/index.html | 2 +- 4 files changed, 51 insertions(+), 25 deletions(-) diff --git a/munge b/munge index 1d4393115dddb73099990780e6a12aab3a81ff9b..3a9d3f504f0c42b9fdb801d392ae4d28d9c49eb6 100755 GIT binary patch literal 16392 zcmcIr4Rlo1oxg7;32%~+giMeKRGvx{KQajc5&4`D1}BO_E!e2V$7DW|DU+F;`3Rsz zQUlgmiYD!1J-b?=AC|5?J@o9_WfeoHZX#4q~yVNV^I_)lZCBd#PydtIb_@!yZ>6w3T!b`nUh_@ z=CBeV#kibYLe$7fIwV|6stP?TXc6Tt0rcmhl;1Fmw1_&h=rYbRCaJXhJnSgW&zh=)VnZm{zGz`X$X6cT>AxrJ;GjdP4m1Dz@IL`Z%CuBo`naoKTA$3^KvTr+S@!BvBc zQY|hS3kUwrO*D0u28{)318R2~Q#M?sxG0t3qWCIsRpP3~^=WN%Lg;~HrANV$eQu)I zwOkPVoC5e5@O*wgE`Wcn0De~i{3iwQmkQtufNQvN)2jgT#ra_Yd>wENS8jS2Kt4au z7QkZ#@P`WEy#??G3*dh!fPc3D{x1da;|1{73g8USSuF1JUUd~cTZ@>kcXUO4%5{FA8Uvnh;_6#NB2<(!e28N?$GO))v_zi2b5@#mc81DS>dPIHe?<)Y_J zxR|OrK5D|veomTj^Lyx&2{+F%VY)5@$@Q8 zHFEw+;%TU)G|pc_JPnal73XIXPp`}r<9s#oG*nXKp8%*UC7y;z>J;ZK#M977jdK1k zHQ;GTq=q>EKJhdZQinMIHt{vY@8|sQiJwk znS11z#>vRTwh4#^La!bbO3-;)lGePVSd$KA)qR=Sm8_e-C|r)RvCNpF>N;KwMxclmXQ zpCzVkMCoH;G|;Bu;>!RjC@v>Il0kZOQ|d0*P#z;vb0>F< zx%arn+{ux#CR8%%IzQt2nBq>ohT9(3$8PT^S5QVPf6A6=iRoF`Fsn};%BSeOXK|Jy z8Q;EhZWgv@BfOt*@7Xx!R!&s@w7Tzvc7N3wUzQHpZNBG%N!VRGEoYWYLL2gEUI)#p zEX`r2_qje+fGu^Mul)K9w8!yhd5e7Yoz1_iWXWfKbkTU)oqTdXk-fVQfjrea)5-pW z7M^G-ck-1F+~0R6-*+d^SN?lxAgQ|dIxX(Kw^#;Qt&<(K;5PQ%kJIqsdfwf)<9U{- zIa*8Lod6G`ymYDl>n+7S z;yOwBR0;$PG0KG%6g;7`#!H24FQLc(4McMnzWz8A*5 zJKkdP68L0iKDWnp{wmkGr0d8Y*OBD#(I=qJhwWJUFX{B~?*6OB(+s4+APYe96@AO! zE4tVyde^tnSnj=h`!A)Q-Pb>dcQCKPVIxSR;9H?iRe*f(KSlKI+(qIdvg78v`!AdK_>~5rDRfP@D|4w)rUd30U|{sCaB1nxPP517i_7$3-KHpQStfWB}`d^tIehTmOI!-VTdpXZ#T;wA{qqDCo78P z#Gg=!r0bA-53b2`(A~l%wJkIT+s*#M!XHMI(Y~Lf0BL-YYL{8Hg;etwQ7c4)JIn^v z8H16rHxXmXj@glhMdj{q7V4jGQ(Y$d=QI!RN!~vKd;6j4?u<>?Z-n0eW)J#&=N5q1NP|set|F0-CwazJ3%SV$ANGfsZo5 zXF8{zu%zoCd>+ixIltv5a!4G^?wpr|zkHo@FuQXeC)NB#+$}`eos-BIjEuD+pX$Lx zM$cvC?htZvn98o;bE-l%62Vizn?rQY7+HvhS!s06@62tN_z<>zJ5I8AIpRD?!?RgjM;|~+cSZDY+YxXgp8|*duY#*t>)zBcDX?k2Age6`3skW$1rZ;s1KZ$bpKSeYDATB;7)R6=zS*JeW)(=bm zha?+ujgsz}izONZn*13!G{$i9)v*Pn)#n;j0FAnrx*q<@FAd?y*g=!?M+|2t$yw$t zV~+7@qjZW9o+m9yLS&zrgidCUI9@;0Ip2sonLXkbazDHK@nSK}9Q2w&xr2+%Eo?Kw z=h5UWb$*Lr`_D9_j$kbDx58Xwknm|p7tUJD&W=#^#2Ty@d8}XlacCD7F`r;`(mP=I z==IP)Ozkta?)?d6uVFYuJ@iG&XOG6!fVk1|XD2=muwHNeVskRxd~0j+qvnmR$zL{a zSi85byI8{~!`^zLUs!v^>G{8=ugS3=o`u(Af3wCfgx%WY+iQ~_t%hy7<~Q!XXBGE# zXA*DI2j(4{n!nV%srk-k9bX8HJ~#Qd=;TjNs=}uxMeL(|s$v0!DC_djrc=Ey;&sHg z#id$HBoXpy;YeJg?IX=l(x9Zx%Qm<|3j{;{i`iDDcX`4IPpF}>QIEq}XS^%Ka@=fK z*CN#G>+AV8Mm!h~`Il(TQC}nx)%fO?771uAk#O7}j>k$FDe^nh=GFN$>{9zx`}ZotQ%WtEEx8N5nMe7=yd^*r&olPq; zMs=}e4d4-B%xD5p!#dPuA}A^gMcrLjr+GVrAzu`2TvxXPHLZ&^NWT=arY-B%g1+V6 zPER+wX@v;rvT%E>d#Q0>=FvK%{=o7}8pt-*aLEda!LwpnLpKjY`ZK~2O3>piq9MTn zN{A)eMIpjnT`c3NJ*qXpmuOtLz(yh()u;upN$L7%#OuetrBAC18olH&?^B89pF|on zNb5u{lWlF4+16X7IFn(wN+EJGi=4=|wn>XjhP6pG$cY!YZV>-P7v}rt@{t@VEOcpPY9N#1KRd+Q$9u{I* zL>nWNl)G+W%C;(HR{0dQUzt)x_-tIK-b<&iBn6T3>oYbNa?*FA{BHPV6;*30YHz44 z+p6}ml{1%KxnS-kGysS1kbav$Js#CQj+>f|}O7rG1ENtEQCp!^+h z7DtWWlPEh=@Q1LCLy6jp5KY!95GP3{W-m=^i9V>BiJ&BJBUdAoUvvIA7^0Da@A?T3M z$0sf4W&2_naK1;#h57$Gk-xX*7PQFbMbI|| z{YcP~Qlp#;1iehqMS`vo^j1Lwg7ye{pP;$%U*FQQM4PuJ5spV9+Cs;5js^A61y>k3 zb~Ut(epb2NePZzMEz5Od@M(;`BA!*1dKeb%Mz`$-kk8OUL)r2&O;lEO%AG_M^#d4K zEmP(aDVpNtV9AFZEG{FDMaB5_2L{DoA!}UB+DFftcdbh{u||M)l0F3 zRs0F%HMNwANmG8F?Lo>jg_uU$THK2j&MdaQLX3qoPTRGlR>T>%?Hu_n=FEEAQm5Pv(r-IVHV$Pkn1^jgiD}@>e%mlH zjhs1Xdy$y=oH=BBnV2SpN;qr_lIw*$wjtZENwP@!D#&xJ^hpx^)08yyYK!+%CDr>$ z;Q(csT1(>ZP<2)Hb;>{94!DYys19HyD)nI*buEQmejhS~Qg3o}K%#aUCtD%Jh`0@8 z>Pp;{Dl(S?lD~2YeWVoqS`i3CPF-jjXsi5&80|#}fl^h7Db?-BSOz*P4+!ChTm)f| zDK&;L1ZdhtaHq^AfPOKc#NS?^$|DEym{b>K6p98OdB$1&2BKExlBj5){~2fHAz|hb zs~CF(VJMgVm@Djm#%aHY_<7HPw+)w$m>{%JSC) z@3g-`){-A_+8-r;g^>TkX+Lh}Uv=8&lD(9_?zC?;^KUur7m@zTcGS-@5VBuN^>i9s zr@e-%Dmb6rMVg$m4*Y1R{a?vZv!S}#UQVil`;y&e;@a$YkmjoQPzB4t7wy+l5iL|- z%YfVdU2?iwg#SmUJw>{b|C7_c!_23h_P>y|lz*++P7jUZ67~-^+ZEE6{I{CzKPLaK z4~^z~thwfVg%cKx(XgUa0ZA48)~sx42WuTTxRcfVPnDBoYyifT7LZar(9M+Z8~wB& zO53ZQT=;-cYRf1+V<H`J;1FW`_B6RYJ`gfWAj zL<57CGEJ$gu$NgYW>rj6s;5-VK%o~fYsHeXrDd)770x=Bm6ff49OGPMG3ypr0>wj2 zgtVsE6>CLV85t>H)u|Z|i=k!{Y;mid*iz{qF)B){oh-^PX07%H2&X!fl@}Vthj~QK z+J{zMNGj+ut7?R0!D^(k453$Jxl*+-3!gUOpw&(q83)yHAnHX9?65PjHHJSbX*v(4 z1g*p~Xu=s3Cz|bDw4a6jGjfXZ*NUmQD>MwKa~l$|C>@S!=T=6myI{aJPGsjJYq2KY=g19M&p*|q zCM=E`wXx^119W@(fchBzzLQ9(H{N*P?P}sC^;}1AKy@Y(+tkEb^_=DM8ns6~f$Nfv z;~nbqjuWZ`_5(a%xw5vyGT+{z-q!J^y6aVSSLXq>@3iGoySh^CvoudvPpb(OaO73> z2*_<}&3+Qs8{&n9#M2Ycz^P?!je03}kWg>?;K*a@6TBX6B?q2<`h|>Jcm`}$ze9Ch z@g=SjC`nk4-=jWdeOgiPRaZQHBtbgGw^=OcUR{p_0(uTgcQ4Mj z#DaJEA)*}yY+GQJqsKZU(Rh0zz{38mYp~0~Zt`sLQzq=`qBA(_bO`l!4^GYCXikU5 zZ;5a$*b&BeFfEj5Ph!o@CMkgposlkoL#)%&m54ROufk?`6~L$yaDA*P2S-Yp`cChU) zWR!*GYxj7!B)X06gWSs|c6$&U1}SwW`Uj7}M4#|jm?O5m3+)3Mj~cX7=FoWlXg70U zo6zrQUe#J3_jE8vrzh6Q9KP*g7#bAMm;+O$qX+$gfs@7PkVX9=4;hGDcPP#r!Eg}w zI5m?a00y#%&lC4Bhrd$~MDYOXoj%w~&aluu(Wqy;VIlKh_CgKbJzYUBijKe`ZVq0G z;jujyV-9bm3;S~r`uy#Q4j6kdV*@wXU^ozwc~5(L)ZZgHnlEG?4MX$$rz9)Q`xfUU zEh}CEv-9Fs=FE#1W%d=!&aC(llKT(YcnQn*-EPH+T=~79t*z=dO4Dq}b zyF$Hrak*=iZDP&rR^{SyS1T8voec=i%05>Bzi1Lp%cUZAmOdpXrF=M+gc$vk+u>qv zJ#A9^Hwiqqzg*nU`u4>b`m3y(@ z0t##p~ zyiO|vTma)+0@#mTQ{x1-{;W4GrHiD5XPC*Tl`=%#dbGj4^HeWLKvn@_=_`ORw z)HpYBlk>eq<|BiRm5ja9;snRAZsmmin?c0S6WCJ9;jaZxYXceod5aSq{cgqyqy1D$ zR0hQ^?XmI0(@Na2Z<4W>>tBAd9=QCyjVt4pTmS2U(QjR{e7R2U!L|{lg$BvQFZCp) zy?y%aO!9I)eMs1A!ag^C0W&W$)TYv2uDeHty{xBf_uTr^I)-Gca8Z)$^D$vBe=j5* zYUf=0t-z>FgnDKje_klggv^{|91@EnW44#;ea&WQ@ZX@NGH8{^OS%KR*`8n1T{R@^Pl@`|^Fv9-FUQX>fSJpe-(UO1CyUhQ z#wL4-zno()ztav1`{$*hpwdp#*K+LT_eb{}!$8I<-AFsh{{b1oWc}rLU$3yw)fden z&Dj`ogf(UmBO~o|zv!gBq-TYFjyZc&l%MNY+GX?sOu`_1QP^AM#3BrGb;}FbkJcFm zjvRv=mdz|+|H);B{n;FY9F|=s>~rh+$9aZ*lkAwB_@y8E2dEqsu6gm*hQWNPm}4(k s-ga{Ckr>f7`Y{)2F}<9TF2+SoBFBS#FVOs!ul#=T;yRn-JSQCXzhRPaM*si- delta 6150 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 S=CA{0rB+vgD!n40+y4QY%W4V$ diff --git a/munge.cpp b/munge.cpp index 81bc38d..e8c095d 100644 --- a/munge.cpp +++ b/munge.cpp @@ -11,7 +11,6 @@ #include #include // For mkdir() #include -//#include void MakeFilename(char * fn) @@ -26,6 +25,8 @@ void MakeFilename(char * fn) fn[i] |= 0x20; else if (fn[i] >= 'a' && fn[i] <= 'z') ; + else if (fn[i] >= '0' && fn[i] <= '9') + ; else fn[i] = '_'; } @@ -40,13 +41,22 @@ int main(int argc, char * argv[]) if (master == NULL) { - printf("Could not open master doc file!\n"); + printf("Could not open master doc (master-doc.txt) file!\n"); + return -1; + } + + FILE * toc = fopen("_manual/00_toc.html", "w"); + + if (toc == NULL) + { + printf("Could not open TOC file!\n"); + fclose(master); return -1; } - // Remove contents of _manual before writing into it... -// remove("./_manual/*.html"); -// return 0; + fprintf(toc, "---\n"); + fprintf(toc, "title: Ardour Table of Contents\n"); + fprintf(toc, "---\n\n"); char buffer[1024000], keyword[1024], token[1024]; char title[1024], shortTitle[1024], inclFile[1024], style[1024]; @@ -56,6 +66,7 @@ int main(int argc, char * argv[]) bool first = true; FILE * newFile = NULL; char level1File[1024], level2File[1024], level3File[1024], temp[1024]; + char partFN[1024], chapterFN[1024], scLink[4096]; while (!feof(master)) { @@ -73,7 +84,7 @@ int main(int argc, char * argv[]) printf(" (%d lines)\n", sectionLineCount); } - // Reset the "short" title + // Reset the "short" title, include file & sytle shortTitle[0] = 0; inclFile[0] = 0; style[0] = 0; @@ -123,9 +134,6 @@ int main(int argc, char * argv[]) { // We hit the end of our keyword block, now do something // about it... :-P -// for(int i=0; iPart %s: %s\n", roman[part], title); + // Make the file expected at this level... sprintf(temp, "%s.html", level1File); FILE * tfp = fopen(temp, "w"); @@ -166,6 +179,11 @@ int main(int argc, char * argv[]) MakeFilename(temp); sprintf(level2File, "%s/%02d_%s", level1File, chapter, temp); mkdir(level2File, 0777); + + // Set up the "chapter" part of the TOC link + sprintf(chapterFN, "%s", temp); + fprintf(toc, "

Ch. %d:  %s

\n", chapter, partFN, chapterFN, title); + // Make the file expected at this level... sprintf(temp, "%s.html", level2File); FILE * tfp = fopen(temp, "w"); @@ -189,6 +207,10 @@ int main(int argc, char * argv[]) if (newFile != NULL) fclose(newFile); + // Make the link + sprintf(scLink, "/%s/%s/%s/", partFN, chapterFN, temp); + fprintf(toc, " %s
\n", scLink, title); + if (strlen(inclFile) > 0) { // Copy the include file to the appropriate spot... @@ -229,13 +251,14 @@ int main(int argc, char * argv[]) else { if ((level == 2) && (newFile != NULL)) - fprintf(newFile, "%s\n", buffer);//*/ + fprintf(newFile, "%s\n", buffer); } } printf("\n\nProcessed %i lines.\n", lineCount); fclose(master); + fclose(toc); if (newFile) fclose(newFile); diff --git a/source/css/app.css b/source/css/app.css index 114abf3..6fa18f9 100644 --- a/source/css/app.css +++ b/source/css/app.css @@ -322,7 +322,20 @@ kbd.mouse { } */ -kbd.menu,kbd.option,kbd.optoff { +kbd.optoff, kbd.option { + border:none; + background-color:transparent; +} + +kbd.optoff:after { + content:url('/images/checkbox-unchecked.png'); +} + +kbd.option:after { + content:url('/images/checkbox-checked.png'); +} + +kbd.menu { border:none; background-color:transparent; font-weight:bold; @@ -330,22 +343,10 @@ kbd.menu,kbd.option,kbd.optoff { white-space:normal; } -kbd.option:after,kbd.optoff:after { - font-family:mono; - font-weight:lighter; - text-align:center; - border:solid 1px black; - margin-left:0.3em; -} -kbd.option:after { - content:'X'; -} kbd.osc { } -kbd.optoff:after { - content:' '; -} + kbd.fader, kbd.knob, kbd.button { @@ -534,5 +535,7 @@ samp:after { } } +#chapter { padding-top: 1em; padding-left: 1em; } +#subchapter { padding-left: 4em; } diff --git a/source/index.html b/source/index.html index d961baa..5778a12 100644 --- a/source/index.html +++ b/source/index.html @@ -1,6 +1,6 @@ - + -- 2.37.2