From 4eb6954c7d7b5327c59dfbd86cebfc3ea10c1033 Mon Sep 17 00:00:00 2001 From: Maximilian Hils Date: Tue, 20 Mar 2018 23:41:24 +0100 Subject: [PATCH] various docs improvements - add clickable anchors for headers - add "outdated" warning for archived docs - add "edit on github" button - beautify template --- docs/build-archive | 5 + docs/{build => build-current} | 3 +- docs/ci | 2 +- docs/src/content/_index.md | 1 + docs/src/layouts/_default/single.html | 14 +-- docs/src/layouts/index.html | 10 -- docs/src/layouts/partials/add-anchors.html | 1 + docs/src/layouts/partials/edit-on-github.html | 9 ++ docs/src/layouts/partials/outdated.html | 9 ++ docs/src/layouts/partials/sidebar.html | 38 ++++--- docs/src/static/logo-docs.png | Bin 9746 -> 9166 bytes .../themes/mitmproxydocs/static/css/style.css | 49 +++++---- docs/style/style.scss | 96 ++++++++++-------- docs/upload-archive | 2 +- docs/upload-stable | 2 +- 15 files changed, 143 insertions(+), 98 deletions(-) create mode 100755 docs/build-archive rename docs/{build => build-current} (58%) delete mode 100644 docs/src/layouts/index.html create mode 100644 docs/src/layouts/partials/add-anchors.html create mode 100644 docs/src/layouts/partials/edit-on-github.html create mode 100644 docs/src/layouts/partials/outdated.html diff --git a/docs/build-archive b/docs/build-archive new file mode 100755 index 000000000..bd11d86e0 --- /dev/null +++ b/docs/build-archive @@ -0,0 +1,5 @@ +#!/bin/sh +set -e + +cd src +DOCS_ARCHIVE=true hugo diff --git a/docs/build b/docs/build-current similarity index 58% rename from docs/build rename to docs/build-current index 53721eb1f..a78acab4b 100755 --- a/docs/build +++ b/docs/build-current @@ -1,4 +1,5 @@ #!/bin/sh set -e -cd src; hugo +cd src +hugo diff --git a/docs/ci b/docs/ci index b2f2252f3..107e8370e 100755 --- a/docs/ci +++ b/docs/ci @@ -3,7 +3,7 @@ set -e # This script gets run from CI to render and upload docs -./build +./build-current # Only upload if we have defined credentials - we only have these defined for # trusted commits (i.e. not PRs). diff --git a/docs/src/content/_index.md b/docs/src/content/_index.md index a977e2db2..44d41611e 100644 --- a/docs/src/content/_index.md +++ b/docs/src/content/_index.md @@ -1,5 +1,6 @@ --- title: "Introduction" +layout: single menu: overview: weight: 1 diff --git a/docs/src/layouts/_default/single.html b/docs/src/layouts/_default/single.html index 4a8baf53f..801b63411 100644 --- a/docs/src/layouts/_default/single.html +++ b/docs/src/layouts/_default/single.html @@ -1,10 +1,12 @@ -{{ partial "header.html" . }} -
-
- {{ partial "sidebar.html" . }} +{{ partial "header" . }} +
+ -
- {{.Content}} +
+ {{ partial "outdated" . }} + {{ partial "edit-on-github" . }} + {{ partial "add-anchors" .Content}}
{{ partial "footer.html" . }} diff --git a/docs/src/layouts/index.html b/docs/src/layouts/index.html deleted file mode 100644 index 4a8baf53f..000000000 --- a/docs/src/layouts/index.html +++ /dev/null @@ -1,10 +0,0 @@ -{{ partial "header.html" . }} -
-
- {{ partial "sidebar.html" . }} -
-
- {{.Content}} -
-
-{{ partial "footer.html" . }} diff --git a/docs/src/layouts/partials/add-anchors.html b/docs/src/layouts/partials/add-anchors.html new file mode 100644 index 000000000..f7050f7fb --- /dev/null +++ b/docs/src/layouts/partials/add-anchors.html @@ -0,0 +1 @@ +{{ . | replaceRE "()(.+?)" "${1}#  ${3}" | safeHTML }} diff --git a/docs/src/layouts/partials/edit-on-github.html b/docs/src/layouts/partials/edit-on-github.html new file mode 100644 index 000000000..d2c3098c2 --- /dev/null +++ b/docs/src/layouts/partials/edit-on-github.html @@ -0,0 +1,9 @@ +{{ if and .IsPage (not (getenv "DOCS_ARCHIVE")) }} + + Edit on GitHub + +{{ end }} + diff --git a/docs/src/layouts/partials/outdated.html b/docs/src/layouts/partials/outdated.html new file mode 100644 index 000000000..5b3dd6ed5 --- /dev/null +++ b/docs/src/layouts/partials/outdated.html @@ -0,0 +1,9 @@ +{{- if (getenv "DOCS_ARCHIVE") -}} +
+
+ You are not viewing the most up to date version of the documentation. + Click here + to view the latest version. +
+
+{{- end -}} diff --git a/docs/src/layouts/partials/sidebar.html b/docs/src/layouts/partials/sidebar.html index ef853fc6b..5ea41c122 100644 --- a/docs/src/layouts/partials/sidebar.html +++ b/docs/src/layouts/partials/sidebar.html @@ -1,24 +1,22 @@ - \ No newline at end of file + + {{ partial "sidemenu" (dict "ctx" . "menuname" "howto") }} + + + {{ partial "sidemenu" (dict "ctx" . "menuname" "tutes") }} + diff --git a/docs/src/static/logo-docs.png b/docs/src/static/logo-docs.png index b37dbd852b311cb57b31be62dc70e517a04bf143..a46016ddc6c0f42d6a7d0831a5e11fa70a8c349d 100644 GIT binary patch delta 9013 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 delta 9598 zcmY*fWmMGBw^czp1qqQ7q&p-eL_pM`yHiA^hGvNQ5rZ_NBHbb&At7A@45`S_4Fdy6 zNDVR60P}qB{ojYTzuddlIqR-{?uUEt-shsUK52hQ1TeQbsY&@XkV0lRZt#}B&`>iD zoZHO_2xHWo>nnG8E!_&zjo{+?beCSA_+cyynb0T$F|nGeG|9wcN#QSHaU70Mlofi2 zdTxBn|D>jGPW}?*@S>G+ux~cw`Z^G(x0RFL*@@$FQ6?zO*V;@jPMYA}2W`6-QT-o) z|4bgdcb{)?7j`Dy&1awJHw{)eQKl&QwV(S2r8n~DKRM7yzZS8zJ3VIP50!O$wAWDpSdDF#`$l#BP@sm1|{{f*;pl+ad zg@fA~XveNjlZgYZAo<#c>LJ1vfl1{Zd5JDPnjns;^Fl&W1OlE5$l0Bx#UZO6F?+PX zkYA^FI$&e@hs(R*Uv6_F5l3wb$nF#Jr3g)192BG6NFm;=6 z{)7i}I0@Tc;96Lb!aS0NiL>aQ(<5u=C_Cn?0(&I^%(AZ&=6_aYxn#~x4Knt_pbc2o zY+#YJWL1?9Lxu_D)9VBT1uE!eP^fDYxQGVXj-bmOXNw0av0ZEjyu6hBo__r|{+ri7 zW)Crp6-6pc(4c(mfmswS*KULp9qU__6G2>$CMBq^lu}5^*>8L@@3rFMxS1 zAdu^l09xw&hh;a7nw&A+@HAtiGe}^%U7$%WHj*fc`Fr89s`~UjS=+M(W>~#zd!H(d zA&U|(Ou-pLkG3X7XwUvK_3yjoEC{mrtFY@WUN`V3K;N|mI|KEQi{lGhWmU8| zfiv^9^(jDwJce6{)LZu*=&!0tO2{99lg1IPQPZ`@L9Ue2y2FOB+?Z$^?rhKmK7tuG zydCV_g+7L0wwga{RlE2x+iucBKW?6fGr&B1QqcSsf%3P2!+V&VVeYeL6qEQVqy!vN zP`>zccm6h?TNQxULG@%nrgd!>p_?v@#~3DA1x_ZZdevO13Iy&9w&&2w^PQ1(8rYj zX`0u|&U={MsClO9L|>=9Mt)n9+<3#U4HxBF({Mci{6Rj(60a?ZDHSAvoBdFSqmgd& zsCu~nqWi|2^lpdpSv-54^lqqf4cDrz9J`#9{5&qiQ4CRhrF9z?N~9;Y+~4shTRy1G zer~CA`FHoj|AFsV#J*IoH1hZu%?bgSM?mW=obkV+F*C%S4s%oJ2=?$ zeuw~u!`Q2d;=Wz-<&h7cTgaQ61l~E#32EMLNuvlp_VOHeh$nRkesuXfaPcPQ6dR+_ z%f!8G)kJ)mxUS5?k_}3D^lmrGV+Dh*;l^8&UZ`YIVv^=zoWGe*;L76xukG#av1Z{_F#yBeC0fnSi&iWw5otk7(O+dI z*u{J~_}hd}99s`K@4e;!v^Jz|Tx)_Y9N*va#q$q&QtK zP=|aQYy^1AFO}r^ziby-ICo(D+FiM7<8smb@3_?M+>;I^BKcTAcGFJIsEH>cWL5;z z3qc*-OQcDfMSFXcwx}O1&gVlUyTF@8^ zs(kney4RLt7%2~Dq2SCQHDM@lL%ZyqqP(Z@NOA&wQYLc$N`ZR`w=jx*aIKuap}Q)Y zf@x<2=N&V|Q^gC-116kt1(sZERT`nrMeLD-3-hAt!b+ocR!TUCukp)pvErxd@a^x} zy3G|tZMk*H!ZT5mA8txHi0sd}hxQQ#EF6=~89p`n~tUr%Nl+Xs!(0$)lfHYCJ*WQrKCc33iG zc3pXJ+KTh4nWv`j62W_+$l1p{mBXyvb;f(D*G_wfgZhyd^$|3dHxC)vncMH z4G{o79m!Av-SRi#UNXDIl>s(Y0=_Gd@gmOGKSZr@@xHD81!1(xomREt?JKRw!h1*d zPT3ph(`Ef%8XwZs0@Xnml?hp)buF1pjo-3W3D6Y#-k{7GU-RJ1+OEl*r^+37Il5tn z2Mj4C#ouUD zjdc?3`v45EWV&Nh)xUZ^$^oB_S~3JOIe9k6)5%DO7{&D3qbRz=M{rx@s^yhfWMdJ# zR)@BB9H?OQ&1nm^J)t8LPNtQz0kf9R4x0o(I-ZoyM`$zug2l6jZWO6HvnNvHa>NNq zT}78vuq4bl%)lqas6h$+blMeC`FDhtL(Sps%huk}rAgV!4WokXY3Z0eXiF4SCiS!q zwsDM+3~9^7nk2yK7y8YjBDi*7Z~xuOChLP;#CvjxLTsVH2>gR$>m7=vWg29bFiY1TDOVh=s6<^eC)lt z0sgE06L+eR>lV+zpXOJlt;-wa&iFXJe18VPWL58QDr$Q8l z3Dva=&Qud#<`XAc{=X3%gR}`{`{MXT3`Vak(ZBTf>B&w4{zcAe^MsWdFjT*8)^hzx zO;v?u5%X6LtzDX1h)8^F4eh=`j55z{qZMBU6P3J98}4bpX?hy%%HpCWdIcaAc-P*7 zAsC3J4jp~LUGlJ8O-#(5NLym8;;DkJ+rE(bvXV%mrsREiG(i-@wOd2kwdoRJl-Bas zDc>saMj3Zt)c1jBCa&b% z=SGe1#}cz~Fv2@KayA0`e}p8&a%FArY=S~9$C~o8P7H-%Wrs?`1?eOP=0CPN@PV8s zpCoVv0)bm{8{MM%_9q4DNq&hPV*)|LW63Fw#&4FN;zl@R(+9*# zg+dal6q3MqkFG#x1_L6`@sFv$`cZ;v+JIX3Zfx{jyfsU&+k(h|xGOUlUeu}s<_;6=-%MZKI787Abt=5qU4Yg)tNg(}0ZA8C{j(#wCgROWz_AB8mbtgA#9E zafqAHcf~*5=Qpr+a5L{A<5>n3e3G$Ggvh1#JrbQEVXB1uQ!4Z49c8@reVJEP1w!SY z6}3{joUoBSm&h&#Go5nLzEEz8QG`}A(xV9pG@z}cPrjj7Dlf^J3?p;kq z9lzs|0cP88gq;X;m+=M_kL(@2K^aD2&QlkMgFjqcj12Fb_{79d2@fQBR!g;V*w&jf z(%nUpj$&9d!XKE&#zJrGLnJApqw>cpm!3+{&&iRW_GxN28tc?KB4H&D-5>I;DPo@) z_pw2M%0=zZsYyC91_f#z)vO)tTeL>UIQp>Bx!xFI`Phe1ByIh5W-vTjq(a)*axNwJ z>(j`SfiA!AqQ}q7$C}%sxy`{#jYVi72Q-{yb>vx1X?W+w@k>lg;KZ*b?vU(%g@E}E zp!=Gbmb}$90jr#oA}y}dO?4k1eKRi zmuKi!dpoQz&+r0nwFgLm#H;LY$k435n4~atPbC4=Mt3AF1I0OR;|71`71CKg87BbV z))X(2M^Q)DNnzLEs%p~^9(PYl&CU*WdA(puXi`Op`AxgbB+CqPcVVKRPsepV2E#^D zQ=pP>?wvPjC^z*aXEa5!%AAE@8Yqp!E%UDtZAGe1wmHG$Ul5cW3L)xljaRFbh$Y5^ z*7NtL6OgG_^~JMMLU!Lx4sPoa7mfo-4|mf|B`>!BJ+ng)M}`DcFRNZXdQAMKpMKRh zb!~l{jQrwJ`pcbu(?*RsiCb*UjcMeP8!EZcOIAx3szQYw0g%H((ahdn@ny6;Z2+=3o1TnD?6-Yg2<+rhNsigR=DXrPz#?dItW^ z56J)0deVm}t2HmHrpFpAc*@+`?$pMxC)Dobff|ZiW4$sG`Nf!MBen2M2l;2|VP7EV z!istiHR*w4pR1DifGZXypk@NdigK*pqBLvgWVEPqau2|p($|qj|MX%fw)mWzR;^DI z=-5}gHj+VD8X8-eUf8-|#1Jz!MtjAkz5cnZ;;3?ByVh2oLiRgPi`=g7QlB9R-U(dBl}Mmq{2=t!lG6M^-H)eG79`5%?1rzEEzx$iFrv9YRV z)O1KkdB%d?(_>@b-1mB;G-M9SDz||t#%$X7c^~`AQZm>mb(p=)7aM}^+egki?LubX zk~a42knhY$^VFEE*!lrU8xYy%S*5#$ily2`#t}b09}3nFSAMx?H!qBx?OJPsRxP*` z?YFxaG@gZ*B?Q@&?gmoLt-d|Wy~%3LfVpZ3&p&qfXtEKt+nusKYd!Wppy0>RNS~vj zbeshobq-%1QHyA>wcN7$eep(|&1A6*wNDu*P$F7mSQaP{dgu=b-Z8Q1kBqnAn9;6y zRQcAbpCm!pAryWX4b7YD-Mt4eRlc5NdZyNJ@F9CyFy{C|Bt>9XVZ;@^ciLUkFtV#G zQRzNumqIlsh4ijDke`)4ziM!tDv2!7XJG_|{9R3Ep8Mt3SL2H%*$v+3qR$V&ipFyU zGPUND>GZ1~&*}jM+dAE~vizE7fj*IXKruh`^A5`mhC-)vof zanj`w^PqO1+iIF%YVi++CsbS0SJy}6<8kc{xp@zZk?AbN!5@#zybAJ?i%7Cg-)zrB zG{#$DN}r~SF(kV74~7Y_{8Ft0Nxe*=YH=l;W*Sz!G@S*0nV$bLJQvD;SxOwySMfnM z@bh;X;k=i|tiP)67&p8Wns8sW!4Xh7e;-xqQ^rrk4~oGzuR2qg%mD7o%GIxTCJ*QD zrS8pGhVg#R7b}8hrF$j54L5rw@hc;um7M`(Jm@+6eO{*(x%yH+&9FlU9JBz7pQCP) z?=q?UI`3?0*4?x6Bfu*xLj`IS(Fw+wLfs*KADQzV0TUfU`3D7_?nz z-|14J>IzYf>&Ea$+3}f+Zqz4l?53-?XEaSz^%AAfiM^qdd4{!xg_$R~`n$T~@ZhpO z^%n(8kx)Xf$yvABbm4{^kbZQG)58UN6KVc_R`3HbA3M4)V&PXp;~;X@X@p|CjH|D8 zuw)p+T$>oz&}n#mODqQ(%tYb)c9KOW(o=0`HFs-Mbq`3&alZl|hw7_c7o)sHfwIzf z<|_5Y7IrBmQ)TH9ZYGly-zICbg0oC6A8d5P?&jK+7u971QN_0~Rrc(g&+iWVix8p~ z!q9+eK^_~ZZw#-9gZ1^Wy|SNn1wE!)`;b(W4v$t>#*udL6A?uky)O(zKXdvi=Yn8~ z;)?4vI#`ph*#Z9U&RsE(xPs3KVH;HsIePkfK8Vn+X6|bwfFk^dRt1mcl*dJ#=}3Zp zYFzZnpGzjo28j2Yjc}f9T3?+SwD_l68UUScO1CToq)4$LYk-xt8Su~0xNqi2Q@KL? z%|6PrL!pi4-x-#4Gd*pXapv1JJhW2~jcnOJvkh1UpbHdj zgO?Tk;xjnXsiwrp8q~V5h+0;&5sUSXZIW;7cya#8vhSaFT0&pYkGsW)XBD_m#}0gV z0Oo^bGdg`9WbOaR(Cc_5Siy7DJ4pmfYenhtJ^RM+e%vDh!F0DJduYRq@Rh6-E4m&^ z%g3~A5aGPf$1*ZCip7Wox3hl$7H{{P8>S~dy*QI~Bh6-b+d;PaMfF!Ep4-}I(mYwO zBJiDMzaB~RfqN7@;ZUYZf(91xL3bVpr_*h^i^6Ax1!wEQm6$Fo`!i^X44ieh;{8QZYrRUma{vj@Wub?s4Bev{C5s+@$$GtIlpgvo{|MfFqCWT2Kdt12=mj7)Z-4TtY3f;6Kv{D6E4u|z0hJr%&a+Dkm9wytjuCBx(;HW_Oe91RmEn959m&~;@YKKrA<4; z7h-#!J(kE$tph~cY*ty7gdHHFRk-=RGj{Cc$JBtJ547W|e#mfvcFGFSS6ogt=NKeh zVJ83)ra@#tW?0nmU}Nrv2Scc3)YZ`Ltm)x^HYWJY%?+hfN%Q-30Vnp^p@~nZCe=1K zTt5sXDyuGU<4HNF1o7B)lK$@UOLa=3VXu31_u^tB5zuab>Re8`vpD}_ViQ*PGEc0$ zRmt8W)o%?4YA4uKZrrFGhR(5y7_1!|k^saDpeN<1W9lpT6aGW40h28_?-hFU?0G>| zq0#Q&U3E67OFOUekBkyV)(t4b9~7js`)H~6`uKv^9P*i1erdJ&sG2x{HFqFd!a5Zp z7KbbV7#i%}=c+P0R=YXn1!$qWg{F+z4mpaeseJ;rj28Cx;11vAHF1@`?9tM`zE7F2 zu9?e>A{os~(y0SN+e3ANGvh6Z2(?{{sNSS&@f9a&SFiA;Vm55ZG`XVRS2W2}iXm@i za^U&-O}DCfO^JCB!z->eYRdLq-p&&`Wm-m{SSZ(Wf=GeX+}a95nrk}x_fg8&xk|YY ztBKYS)K*YdyL1|y5WQ3M^UeQ{}j>*GH^4+QLc;yWXU^~Ui-Wz4toy90C9W=sG73ZwBd(xyvFjyK*Aef zJ9NNGow?;sZwS|hIQPe);6(+8hKa{OvQ!?5?Tb+k!6t=F zWi1IcNbg2}p=9N`uQ__Kwdl~haD@Z2F#8L7XiVr@%E)IzQm06y)^cxXh;N~U+Ry!X)bzKA?Q1WYzWEosjgHw^ z@SSNl=%9tz`_ILv<6?@;cx3^x;4H?*aO${788haN@a4}=T5HP8)mdE+0xkg(@1=ba zhg<2Y!fqnTKa}=OwC$S%#+Ra*4Z=~wBc|Vo1YMHpdA9_ruQN+FAcxWNRaWmc%o?jt zlnE}mApTbh;@X-)lg{*?j(v|DY7^n^`66MxdRSNVR`W~B(P^Q8Wpf*WNssLG z4A~f);NXMPV_6_ zQC&oi%Wy4cld28W(_j#iyUw>yA+6crtU$H3KFjvkF*PXF2xR>){uFBPqP zX=_dob7E;4BH;FfCiRz+{}y~g__MN@Y4o#8mVY)?_t+0!_-HV(SqM&AAdQ#I$k&wx=f z3E$OG4P6NV_T*IlwEgULUmCbrJWoij=h*OzY+3xPIg^JfS;#^KO^w@$o8N6&{Dq^- zwHmTOtsf2FT;F~Y`Ji&RiT07VY3)86ra?R!0o69aoZ5a-I_zCnxOEjbOJhcf&&b33 z`q)IAz0Odc z`I{W!dlrq`@1c!(hc4aNu6<`*qZIpgvT9z>F?(_CmTlzwK=vX9GPY6WM z^CAjJN9f-+=GrkU1LRVFD6g#ApKCOAUD?rf+E(vGxQCE_0c3;M z%omylg4&A%-BN*UIvp~u8gHrN&ES2ydw3v&3PWvf?4Qo@$3Yaryrg>;Q?K2T^kUPr z=eFNtr>)ms1i>Z^=JytnzmbM)aM0vn@bCNOapdf<^=wtXgPMfhHJXkO_yi|}e#m{^ zoef7nb2jqQ!=LqtD7fHI(GoE@QH#FT=f2*+^AkZr*2ZC)S1^@&RT1!%kl6hLz6!A2 zj-`hpjwDhS6;q#y@qP zs~1WL2z`-qe^9P~ka~&k@v{+}B9Ietk9OF=`ft@19M~HEs&(=DAYt=ioy^5Fk}9^+ zE2lqs%Djy4w5k!)x>sNW}W{39eO53GSCB}5LyA&)V)n|`cH=>STt%OO>}xpz@C6!2a1GlB#~M0nTRsM_wn zVLFfDd&Blq4W>>XnX!203Wzndw0fGLrDu%7*Hw?OEpcC7*CT;uaSBg@VH3aWPHyV! z2eR@x61T1aN{`5AXHg{?0WrOs#?x(jk*cy!1J)FiVX9wwHdGR#tZmQSBRDEAU&tRA zw04SBQyQYJDF$-c!TgF-b3``W#-?hAk5F+_^>OvoQvd{tV~Hr$ln#nUn-#m=v0a$0mam>k0PZLgLY1< zwDr-!#Ln!qzQy~$m#e~!I2u_kr9~sd_MXVB>yTYft-{J5G%0KRT*rQV@AgIHidO_% z1AmlcTz?QUp~gK!Tca0x+hAP!`5VdTAVa@rRZe^ciCuX&Q3rR*eRRjGe10l5ut!aK zIA84Mv7t^afXqe7$@6y$XgSz8-#^m?tO%ZKNv~bSKMym?A-<6)cE{uSm*^vZvNRXG z8kHdalDFkKkJ^xK1M3y?9qyPKIhXf$AcD-2QiV_lSp-9za6&_}# zN1_r6qEhn468|qe#1#~Ijt)M~qJG|QZ@hl%=By|#F7EE(EAEt> Y#3MnMHd%80FZIR?O