From 55e4a8f5cbbe71b6eb74998c31ecfe96903f7063 Mon Sep 17 00:00:00 2001 From: age Date: Sat, 22 Jul 2006 01:51:35 +0000 Subject: [PATCH] billiges Templatesystem geschrieben --- tmpl2html/README | 45 ++++++++ tmpl2html/example/content/index/1 | 6 + tmpl2html/example/content/index/2 | 6 + tmpl2html/example/content/kontakt/1 | 6 + tmpl2html/example/content/kontakt/2 | 6 + tmpl2html/example/gerippe.tmpl | 7 ++ tmpl2html/example/placeholder/footer | 9 ++ tmpl2html/example/placeholder/header | 11 ++ tmpl2html/example/placeholder/preheader | 12 ++ tmpl2html/example/placeholder/rightbar | 5 + tmpl2html/example/style/aph.jpg | Bin 0 -> 21064 bytes tmpl2html/example/style/aph2.jpg | Bin 0 -> 13622 bytes tmpl2html/example/style/aph3.jpg | Bin 0 -> 7962 bytes tmpl2html/example/style/body_bg.png | Bin 0 -> 203 bytes tmpl2html/example/style/body_bg2.png | Bin 0 -> 177 bytes tmpl2html/example/style/body_bg3.png | Bin 0 -> 206 bytes tmpl2html/example/style/content_sep.png | Bin 0 -> 133 bytes tmpl2html/example/style/metro01.css | 140 ++++++++++++++++++++++++ tmpl2html/example/style/tab_top_bg.gif | Bin 0 -> 112 bytes tmpl2html/example/style/title.jpg | Bin 0 -> 11618 bytes tmpl2html/example/style/title2.jpg | Bin 0 -> 20781 bytes tmpl2html/templatewriter.py | 64 +++++++++++ 22 files changed, 317 insertions(+) create mode 100644 tmpl2html/README create mode 100644 tmpl2html/example/content/index/1 create mode 100644 tmpl2html/example/content/index/2 create mode 100644 tmpl2html/example/content/kontakt/1 create mode 100644 tmpl2html/example/content/kontakt/2 create mode 100644 tmpl2html/example/gerippe.tmpl create mode 100644 tmpl2html/example/placeholder/footer create mode 100644 tmpl2html/example/placeholder/header create mode 100644 tmpl2html/example/placeholder/preheader create mode 100644 tmpl2html/example/placeholder/rightbar create mode 100644 tmpl2html/example/style/aph.jpg create mode 100644 tmpl2html/example/style/aph2.jpg create mode 100644 tmpl2html/example/style/aph3.jpg create mode 100644 tmpl2html/example/style/body_bg.png create mode 100644 tmpl2html/example/style/body_bg2.png create mode 100644 tmpl2html/example/style/body_bg3.png create mode 100644 tmpl2html/example/style/content_sep.png create mode 100644 tmpl2html/example/style/metro01.css create mode 100644 tmpl2html/example/style/tab_top_bg.gif create mode 100644 tmpl2html/example/style/title.jpg create mode 100644 tmpl2html/example/style/title2.jpg create mode 100755 tmpl2html/templatewriter.py diff --git a/tmpl2html/README b/tmpl2html/README new file mode 100644 index 0000000..18db344 --- /dev/null +++ b/tmpl2html/README @@ -0,0 +1,45 @@ +!Warnung: dieses Pythonscript ist ein ein riesen Haufen Stinkescheisse! +Ich hab mir damit nur laestige Schreibarbeit fuer die Erstellung einer +Webseite gespart. Ich wollte schon immer mal ein eigenes +Templatesystem schreiben 8] + + +Die Funktionsweise ist recht einfach und schnell eingaenglich anhand +eines Beispiels: (Das Beispiel laeuft nur, wenn es keine Verzeichnisse ausser den +erwaehnten gibt. Verzeichnisse wie ".svn" wirken z.B. aeusserst stoerend.) + +* in "gerippe.tmpl" kommen Platzhalter z.B. "" + * ins Verz. "placeholder" kommen Dateien mit gleichem Namen "foo", wie der Platzhalter + * der Inhalt der Datei "foo" wird spaeter den gleichnamigen Platzhalter ersetzen + * diese Ersetzungen finden fuer alle html Dateien statt, eignen sich also nur fuer Inhalte, die in jeder .html gleich sind + +* ins Verz. "content" kommt jeweils ein Unterverzeichnis z.B. "bar" + * daraus wird spaeter "bar.html" + * Grundlage fuer "bar.html" bilden gerippe.tmpl + placeholder + * im Verz. "bar" werden Dateien abgelegt, die nach Nummern benannt werden + * diese Dateien bilden spaeter einen Eintrag, im Content der jeweiligen html Datei + * die Nummerierung legt die Reihenfolge innerhalb der html Datei fest (1 ist der erste Eintrag) + + +* +|_ gerippe.tmpl +| +|_ placeholder + +| |_ header +| |_ footer +| |_ immergleicherkrempel +| +|_ content + + |_ index + + | |_ 1 + | |_ 2 + | + |_ kontakt + + | |_ 1 + | + |_ misc + + |_ 1 + |_ 2 + |_ 3 + + diff --git a/tmpl2html/example/content/index/1 b/tmpl2html/example/content/index/1 new file mode 100644 index 0000000..ae605e6 --- /dev/null +++ b/tmpl2html/example/content/index/1 @@ -0,0 +1,6 @@ +
+

Der erste Starteintrag

+

+ Dies ist kein Blog! +

+
diff --git a/tmpl2html/example/content/index/2 b/tmpl2html/example/content/index/2 new file mode 100644 index 0000000..bb85ecc --- /dev/null +++ b/tmpl2html/example/content/index/2 @@ -0,0 +1,6 @@ +
+

Nummer Zwo

+

+ ist aber aehnlich aufgebaut +

+
+

Kontakt

+

+ ruf mich an +

+ diff --git a/tmpl2html/example/content/kontakt/2 b/tmpl2html/example/content/kontakt/2 new file mode 100644 index 0000000..b3a9693 --- /dev/null +++ b/tmpl2html/example/content/kontakt/2 @@ -0,0 +1,6 @@ +
+

blafasel

+

+ Haelt mich denn niemand vom Schreiben ab? +

+
diff --git a/tmpl2html/example/gerippe.tmpl b/tmpl2html/example/gerippe.tmpl new file mode 100644 index 0000000..6423c03 --- /dev/null +++ b/tmpl2html/example/gerippe.tmpl @@ -0,0 +1,7 @@ + + +
+ +
+ + diff --git a/tmpl2html/example/placeholder/footer b/tmpl2html/example/placeholder/footer new file mode 100644 index 0000000..0a66a4d --- /dev/null +++ b/tmpl2html/example/placeholder/footer @@ -0,0 +1,9 @@ + + + + + + + diff --git a/tmpl2html/example/placeholder/header b/tmpl2html/example/placeholder/header new file mode 100644 index 0000000..7664548 --- /dev/null +++ b/tmpl2html/example/placeholder/header @@ -0,0 +1,11 @@ + + + diff --git a/tmpl2html/example/placeholder/preheader b/tmpl2html/example/placeholder/preheader new file mode 100644 index 0000000..a2004ea --- /dev/null +++ b/tmpl2html/example/placeholder/preheader @@ -0,0 +1,12 @@ + + + +Schachtspringer + + + + +
+
+
+ diff --git a/tmpl2html/example/placeholder/rightbar b/tmpl2html/example/placeholder/rightbar new file mode 100644 index 0000000..b609901 --- /dev/null +++ b/tmpl2html/example/placeholder/rightbar @@ -0,0 +1,5 @@ + +
+ +
+ diff --git a/tmpl2html/example/style/aph.jpg b/tmpl2html/example/style/aph.jpg new file mode 100644 index 0000000000000000000000000000000000000000..220c6ccb6e6a14a7c4974c185fe8de2e31517678 GIT binary patch literal 21064 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%0Ag3?#CeMl*KmF4r|F9RKrs~O!??8{_p z2?Y{+;>R72kK?{=si!a$Gi(}J?uPb}XIW=_+F_jV(QSlSlSOr{7&D?J)dWk$kGbfR zmkbtnq+59lC3Fg(v^Dav>=*39U~|7jt5OaNJf^$$_g^~P_Hm?_p@Gfk%L;#Fx@8~b z)`M+T8UCDBz=P7sy=2!f4wz7KPkB8JTj{mhWzuMbZ5Uf~#tVs!WpQX;l?iZ64CByH z=MC{#Gi4{IkCqB!G4e3?mmZ7J&_BF1nI>0J%r&>YSK@|U5*T|~lI6%;hY!ObfLFRd z`J=6TDw+IsG9G=(IcrfH!~>m4#jKq!pVIuoMM3^1+|6I8!#<_XPM!R;a`)9 z#yQdQKRUGjop#=cx$I>H7<_bhgl!Hv#JXd`<*#c0)O|n>Rp(pTL|^m@aalV|T~NAn z%K8?>8PCMNSD2=w`?f|8G+Okbp-}W(_y60BoNTnY8N_=hc{7nL>zj`K`ug)@Y5Ly) zCQUO7SJ;ZXw-_o#)hVv%UP~G}S-%*UBEv+o4rSo|6sbdS&e*#l6#iti{fBN_`LFqOBP{IOnRki1|g zq)1D0wonPv+0Gb@L(ZfdWFqlXNYhCvvFK3#rx&i*KK%_?v#4+X^v;=iC&I#vU0uAq zn>-J%CU6zGUzV`J#;z(2lj~kSr-MYYf7*i~V38Hagy|bZHWwXaZ@~KtZbH_NQ*)-b zd;P_T>>ZaHa?kAUvBZLu`1U<`M8nTCFRdNp{$@| z^!CZf{oRkq*(`5t>e|E;TRJ1Y87V!s`8cevvHHP&S#}f`&#w}9p~XG9EbdG(Y2O%L z`=o40R3D>PoOT!A@Lfr5MijnoRCh!WJe| z!YmoCOzGp{o?cV{?yzBVX1vmn=!dN-878?8{xBdsNsh$E9X8}oz1CHHyU@9tYluc7 z83F54GQW>9-Yu+7 zA%4K{$)gBX{`C2DYZv^Nn6j$x_-R?lESuP| zIs1Enx$KHX+_H3shrMnn1RqA*P($|Ovme?cp*)t@rQX%=v`@=|;~_?6+1z{1Jo*#@ ziAmMt50;boKJl`VSZ}9CW>VVgE_Rp1&Ql+FhfF$Zuv7ws9AnzqfGfG=2J~K z?8(z)i*(8k5vUcQyu9xMZM#)lWjp*s0ZUxr-nrW(-VM*~;j8{U6nMY=V4M4Rq(scpeFsCb2HC6yd zG$F_}Y_=fkMFc^75A1!>i&!}hT6G+Uh9}&MLFy0D==T339r$yqKpAPQ7*I@xjXJRi zAuYm+lMhTtx{;z9_@@1XlJ82-aKnTqHEz_3=_hk@OZ=UwM+X|FSPd318~yVCdNNH1)o@cAtcdbD#X z5gAw(Oa&G7$;fcFf8gm+{_QN`wt`jYp1jv{ALyDLvo6KMoDYO!LM@K*!;2VoY=bUE zR_p?aZEG}J;PjU!(yTUF{3N(A=waw@0LI_}LR-_H^?v>5O&ADDR6eIHle!fP9&CER zDsL7*qU?z-d6iF;Mli+*EoWVBq?M*y3U$9eI!%eRohxn^-cmy;A7Pe)++WO2GoCq~ zkM<+JKaWI>r&smZy3Z`xRc=p?W~NSJUW5(7l;ajohIkfU#-SH1g74J$hnFc|9EX@= z`;@|XhCMl$X1lj^2g$>73e|`pF48Q4^8k~3vKUpMuLtD17+Ny9nSzjM$20u~IHgpt z82KpCBKv5F@6qo5OmZH`t<;&!G+DKEF`jU*M_64WK|})muC~9IaIVYZdG+*Hd)U95 zBk%GFDCCyS@>JgLJ`0#5<7SlAjRS7Z#bC|!nmzkrrL&370c)l`R5Nfdz8i98T4sM6 zwKuKu!41i&N%_h)VmBp9`KjM{c&=IS3wmh@fS01yEJ|BpTs-@FoOFpneGHBb$k*6T z?@Mpk37>T7gkj1S^Quq)4)Yr@nrA`$l)}K{4x2#YBTcg?n?j{%+K!utau~R$7O6VJMfdvH zrPNjipP90460R&^$5@YL_`AL%CrY}nfcV_3G6ko}cRQ|!ErW7GhI2NwxEsjDo&|L> z1USjw{#Ay10D5J=XuC98=fI)kqCpfWR!RS%yL3Eqdk|j?Wk1iP>?v)?9M%k)Dg0qz zfDn5z5Ss?wEA(9$&kosB)n}rWkxh8~PPbJh-6N5uLyWdPy9q>|nVOaOqKQtI^UE34 zi$}MoNGfqzpEmn*ka?`UfM7mEbP--9k zsIC7gj{P6cWUddmMS^P?idjF;JjEi&yf}e|U*J z{X5(Pf0>B9O9H|GftBcnjqD5BYJGsxrv-)sj&W^5Q8|R0aTcjDV?WBwZg-+~85t3Q zN}&LBKt(3y7t$A$vAFcPRApb`0QK2T@b5A)>$uD^jK6%d4Mj8r4%SOdQUg|IYUa$E zi;zR|j>L%`loBFAteU)3+S&G@^81n(Z7W2k2)FtQD z`i-F_cAW~*;gJQ2r;(RnpqN4I2==A><L$2W*9CD;r1Plv%EC)OvKPsi9v4dBmRh93CqgJ*vBuZ1^2nwjja*y1&r1Sj z1u5i8!fj$9^@U3X5NA_k6GN9Q6XhM@s&#g@6+OJLN?m#X?K4QANcBWx%6vaXrI@50V9J$Eu9j=P6y!Tq0EwMukhK>dBH<@R9_Z4 z@fMwfXkyJ~6Stfc5?_MuubCY`MBx|(Phf>|HgP>VzZ-IRsG znDTa_mBBM^<4~3K(M1HpXH&KBA}D<=9DSAgt=1~bUBJiSaB}6Q%9C#r3Z8s74K~E&qMpc9(H7@&3ulB3 zC7`BOl4$fMgy{4Y$24Dsm@nxxdJZJcsSMPke~!M7RbdUu=|~uybhuhygJZ9B@Dv&k zls6;LRJwJS8e2{mU_`XfpJfv1iJFyP!$$P0KoTwv%zV}Vm`5eB&)?Ld`3;n~SMPz< z_c9HRjXCcnstj=JgZwZ-?ib14FK#hHd7#c)R~Fg%k;BkV(FT)Zu$rV7C)+woPuDBa zX?Vh3pNcj8|IN+)nOXa*>x)r%FO!z*EnFUjR~Wnb4hmc}zW9a8C2b5w@hb}FWvc&O zTI8Sr-O)zRSC?CVIr|RlR6GxqG??8?3m%;cX8T}Ql zvV+X2ft%ZV#d#y=>hgC;WB0)#A@6=JSHQ|lsYYv6+lqB?N)stcuS+r>2=D_yx9|x0 zzTLW?sadg06CHkxVF?^2SiapvU_w~j_hIZ|=GIKMc#n2n znMLu~eFKU&v9-%7bkMsjpW@T+6Q@Rcg@~6w`NyMto+U6B;8qpxr}H!1238KCZhh-A zZprFLHbs&hrk4SXkv15+Q~iOB3hQy@1b*W}U9kSOCllVyblT~-ogMNLRhI6&hwyZt zRIrEQU^BcuRgG^f3UQ0QqhWjl;$0g5y~@gF5|p)kUufI>rf%7cMkyA9&MCatFIjX+ zX_h%eR&yKPtWz@Hxv6upsk zejtq!I=@G<{X*bd2STqdr05KRo%`BQW0;VN(^vs45tLO`m>EoUE)5kUec+bOn+#oB z=Dg`16u~EE?0}qN!j1JNfgrf7*7&-e&97NDp?8S7!P8ccWZ&V9&(&$vD#t69?hkUn z8Y2j;65YH$a}zE8CjI4l*RyC7pwP=T#~ng#(`Vjy)@d|#_o-R)PK60ei1FbEsaFTlHJ?wfZCORBwDPXlUcP?) z@Ng>_kfEn4q8Y6!T8+G2x$3|$JUAtjDE#zpht7P+D<{^aJ3*mogr1Gw0C$JV#i>xp z$(VZ4>h8Gy)ra36sfu(s%NKsH&G2;OA+eWVdX0?NxJhNHd=bP?$mj81O?LXR)PB>X z&$6-Ez_ay?BroXJvi_ZKh^M1L?b9T^Wf(p|;m(X3ar{1U6G8`vk1 z-$_^;_zW*lPYFM&^s<8oNFKu9DUC~}ME3N2q~JJSBbj_`AM#M#%w)dM^EH#zuXwb@ z^<$BHTN~|zx8C0E=m0eS5xk&>O_4d~bk!2)CRDo34Srea)nDj+-P%~n#a~RNndMF6 zd9WFh{~bR6FXt&)^SM_TSOJ^D8%FtZ)cXG}t{v;xC(vYLS;aOIeix+Yf(i}<9XMzX zFXwzHawK7lY&6ut{MUP6{qi{unLc_|il}5C3$_i;XO*GFmt7dq!#b(B{S7@n` zDai4|b2*9C|1B@U@)TaCn-R|w{rqy&Oz48u^Xy7SYPe{WwK??(iC~+!Y0=Crh18o; z(HcwlH$e`aOHZ&}Dr0RZYv{vb&})(z)#}%-m5$37XO^o5FGL3L%$Ldn6&MxwOOHL22f6JjD{&DdDl%L&(C@ise$Lz>DU~hPBpEAyy{A3Ad71d; z-s8RgdR^rwk2`rTj2)cvS^o>+#OJ{CzmR;(Xh*{o8Ete;aMR>;-v|ml9+xzL{!J}g9yBhE zKiaSo?QJ4^KoAtF4!Fpuvn*;DpLS zJh_Sq?XN_bb#>|yT@BoIFF3>;u~@rU0T+GdBILnIx(>v5VJHII^wL z9IofSp~OP#)Zs|!?sX+|5FmJuFE|&SH=kx3c#moUf*1`zUYp$0`SI8JI$P zaF`LEIqvGiX1Af>=;BHpGd(_m#bpM$H)L4Ds@fM2jHYd1u1#&4MYI-vMtMbkyK z?&s2sr^m)Y57w-%lMR(DGw2DNZC!2Zu%hq~q6qs^NnLy4YQs56=o{@rd(Mnh;vRXL zYKQ+Eax>aq2vo)$uUPhbwM?iil z&+E)eaA|PSDGsZx7>QsTuDzHnyv>xvYsVeEU6(UoIM7*>dhH$2v<#cH)cYtfJh9Qi z0+{tILc_^MMch7(R2|Xvtwv}qla}=-kK}A2#p9JT3|9ffHfKJ{hm+9X`dC5~4F`|z zI?$2_V)1@aCVF?7ADbd1G0S&)xV%^^pWiXhgHFbJZ+b^1{v8(ZRa5Lgf9oC*P^v;C zJvjtg&U>Ig00${}dLmZ-YW=HJ4c;#TMH^C{_ubXrbSOr_#!7QO@!^7ij-Io!KG@aQ zqMKMxsB>80#trxk$~nF1O2qzzHgU8|fUCJ&+{Xr|=I3~7yb<^(Syt3ZUA}+cd^i}O z5@R!fxkoz8%}TqcG+Q}|y-@094+bZ+Yp9~vy>1&csM-P5!BO9{D@-%g=@uQ!KMZNb zV30wEp;iZ8$aErIVBHRo4pN_;2aWRh2d$+S@&|m+L&^Pa9xPE^sz?2e%Yg#XYy;?2GsUXvckHf5It@y60$MxL3y|R7+-QQN8$; z-|;`LMDSjkk6U#Q)CnAmoqrNG9XWj&xcCQZ(Vr8Y`=_Q>JG*KPnPC8V=;6kh9(=vf zEYv>MZUeC{l-k=^Nfv(Zv#L4w*0o1Tm%k4OaBM%_Ya;w`87RrE81DzO0I{#z!bfu& z?Yr&5CKOYW(cagJWOU)Kjmk6}SL?qe8KsuFs(|cAD61^mPDIw_srAKOObimBF5Z`U%hr@h8Qh{i#rY|Gh`zdc_L!ITJ@_4_PW=?JZdt zsM_S}fV0UN6p#}yq5Lb%`tXvHnspkYU@~lyoA31x-~^E^;dtNq0WR7uNVkBQvAkqg z@qPk=sh3t_=AjlX7!22Ru;G0NShjhSmyN`u`|a&@z|3q^#CaaSJbaem zCoyk$`BZB2fUJ0C(N-3?p;PD&Q*X6E%+Hg>0hxpY5n+N~>_~+Pz>kFm* zS?+2v7vZbkf(&ve9k44($XDk>p_#4+j(qsm zaM_1xkL?_v+1QdWik;0qtuV*_bF?Nb^P$3&KkeZFxXsVhY$ob;EI@lOy#Kd9(5qt= zOnYD9zNGbbmC)_NwR`zpp*NwQe+i#T#aG3Cs%*b?DI16~139mmzU4m(WX0Il zJXxF<)_YA?v|Q}kOwfMrJNnVpAOsD0CM1U_Ax2y-(?=s;3il?7;v1(JMS1IfX&^8_ z_64wGz^%ylDv7c&#|a!x>|XpiS8wcKu5Omml*swRX!Q?W9}IjLfMuU#qRcD~bG^sz z*GjJk<}irk)y9%|J*shk^vNe7Lpx0++R1X~${o#=sH}i1Qlk+UKPSKudx7|TXBp?U zG{DfaSYaDy`G6I@*ENl=>>pZ!veK0`n4~#t;E&He#2HtgW1VA6v&g5$WiR)2MtOL5 zqZ=ZsK~(cI&ih(lQS*&a%pJck3zSJ^N8#I#`M02Il_ZN)YuP5_BH}fFOw|Koekfj4 zLD8l9I;=-I-+Sj)0K@Kp+EU-`otec@Y*A%zjTebQId1G;y(aL&&p)xF)V^mW%-BW8 zePmEu5!N>1KdHRXAd9LIc0JMgz3g@Ir(X>T9?Gl3cOS8{TU~rN_REbg1s=&|qDiH` zzB?Y}!7|FH^t`;D^Dt$NCiMSKyts)8Onnuj7wRzLLa0v zX4l#1{HIP3(ZAaB1a1Vh;_De=e=SBP!P8Jdz#ZvPWb@Q2(dcWiiUW^bprQ+SvHq5~ zgN#t{tX7edJ;(DjQjZjDFBJ7C7N9VnnJQPb*SEaemU<*3Y9@f{W09hjsdNwwxuymxAK!Xw!p6fz~i| zl&XfY+v1P;n0oC7TB^TAxO;2&-l5)vhVh>IH>LZ%)YdVT;=4^D&+$*=B2_gmq~Oo4 zYTw|im)7E++=(~A3?tGgD=3S$~=OH4$G3@S)aoX?tz4 z(`n_y=#wNT>BcrSLJDpLedzHg#TM16!*1yh6*#)r+YR~}qGocQMmUwVYAPQ*Oh|Mn zV^;t%+gjH>{CID$s~Nf3p+isMru8RPbZN4Y`+gZ+kIrU!W!_-U73$v|=7bbrq;)n{ zpsTaHZu2iKQs0n|=0%H@AbuY+Z?|YSrjJ>)G^@GgHG*DDr6j%G?N)$>Q}k6l(RwV> zb(4@?&p$5+Ag5XbKkm6X-s_G>%jGHY7+;J~mIq1XF3FFT2Rnd@Ef1X#>Y%or`72b> z6gG2)ZlQGF@I)zd29R|k9CV7+{O6$2+6kSu5 z9kMMgX^N9xe`P;mHbnA<_9f_{I^Ox{Dp4?HO3F#hk&;nrF|0TIZvFlIQ-{ov$S1d} ZCXcPArjq!1Bl3It>p?&NSGW7}{C~0P0|)>B literal 0 HcmV?d00001 diff --git a/tmpl2html/example/style/aph2.jpg b/tmpl2html/example/style/aph2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..09642b663702441a20c7d1cd5fdf68accfae4163 GIT binary patch literal 13622 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 literal 0 HcmV?d00001 diff --git a/tmpl2html/example/style/aph3.jpg b/tmpl2html/example/style/aph3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..930b62a2be133f8b1416537465f24a791a606a2f GIT binary patch literal 7962 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 E2jP0;$^ZZW literal 0 HcmV?d00001 diff --git a/tmpl2html/example/style/body_bg.png b/tmpl2html/example/style/body_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..6bc11475a7b8742930945256f2a247708be09e77 GIT binary patch literal 203 zcmeAS@N?(olHy`uVBq!ia0vp^8bEBr!2~2{-_G9-q*&4&eH|GX)}JtE?Rp91OP07s zlmzFem6RtIr7}3CA_Z?84-HW=_QZ(#X&HSeKF-E;1)w$BYqbFyxK zIpLBPVj#i8)_m~6#5ta!e}k@mU0q)Pc$HL6So6UI@s5d{K&gZe<<}nVdiO_*U#OdL Vk;&GxSAk|Tc)I$ztaD0e0sx!XJQn}} literal 0 HcmV?d00001 diff --git a/tmpl2html/example/style/body_bg3.png b/tmpl2html/example/style/body_bg3.png new file mode 100644 index 0000000000000000000000000000000000000000..55b699f8665a861a0dc78424a3753fbf7068bd1e GIT binary patch literal 206 zcmeAS@N?(olHy`uVBq!ia0vp^8bEBr!2~2{-_G9-q&N#aB8wRqxP?KOkzv*x37{Z* ziKnkC`!#k^A$HT-EZkRtLb;wUjv*0;-(EW?*r34Ua`DZfyWOo3Ora6`!}YHv2s^p` zxP4$Y=NYwIwB-6 literal 0 HcmV?d00001 diff --git a/tmpl2html/example/style/content_sep.png b/tmpl2html/example/style/content_sep.png new file mode 100644 index 0000000000000000000000000000000000000000..a4b946cb8480b2429fa6803b1d39544479b92c48 GIT binary patch literal 133 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrH!2~4l?*DWZNU@|l`Z_W&tUqDS+Vv91mn?CO zC<)F_D=AMbN@Z|N$xljE@XSq2PYp^DT}N_Luiof1e>C eA;G}J!=Ss1b>6(2n9}E)(2x|2p^m-O`Wmx)3BJ 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 R)T3o@|DEYATGM|^{|AlUcfbGu literal 0 HcmV?d00001 diff --git a/tmpl2html/example/style/title2.jpg b/tmpl2html/example/style/title2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..182ce9e48517a9c8e56c896bb2cd3605bd855d84 GIT binary patch literal 20781 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 BrUn22 literal 0 HcmV?d00001 diff --git a/tmpl2html/templatewriter.py b/tmpl2html/templatewriter.py new file mode 100755 index 0000000..1f19325 --- /dev/null +++ b/tmpl2html/templatewriter.py @@ -0,0 +1,64 @@ +#!/usr/bin/env python + +import string, os + +class TemplateWriter: + templatefile = "gerippe.tmpl" + tmpldir = "./placeholder" + contentdir = "./content" + tmplfileext = ".tmpl" + outfileext = ".html" + + def __init__(self): + pass + + def string_replace(self, infile, outfile): + template = open(infile).read() + open(outfile,"w").write(template) + text = {} + for tmpl in os.listdir(self.tmpldir): + tmplfile = str(self.tmpldir+"/"+tmpl) + if not os.path.isfile(tmplfile): + print " str.repl: cancelling "+tmplfile+" - not a file" + else: + template = open(outfile).read() + print " str.repl: using "+tmplfile + newcontent = open(tmplfile).read() + text[tmpl] = string.replace(template,"",newcontent) + open(outfile,"w").write(text[tmpl]) + return + + def build_sites(self): + '''use all files ending with .tmpl''' + for tmplfile in os.listdir("./"): + if tmplfile.rfind(self.tmplfileext) >= 1: + infile = tmplfile + (tmplfilename, tmplfileext)=os.path.splitext(tmplfile) + outfile = tmplfilename + self.outfileext + print "building: "+tmplfile+" -> "+outfile + self.string_replace(infile, outfile) + return + + def build_sites_from_gerippe(self): + print "Let's build some html files from: "+self.templatefile + for html in os.listdir(self.contentdir): + print " building: "+html+self.outfileext + entries = "" + for entry in os.listdir(self.contentdir+"/"+html): + print " adding entry: "+entry + entries += open(self.contentdir+"/"+html+"/"+entry).read() + + template = open(self.templatefile).read() + text = string.replace(template,"",entries) + infile = html+".tmp" + open(infile,"w").write(text) + outfile = html+self.outfileext + self.string_replace(infile, outfile) + return + + +if __name__ == "__main__": + foo = TemplateWriter() + foo.build_sites_from_gerippe() + #foo.string_replace("gerippe.tmpl", "gerippe.html) # for single tests + #foo.build_sites() # oldfashiond version