From e52d96c5e3b640c33d4baf23ddb24f295375c4c8 Mon Sep 17 00:00:00 2001 From: Christian Genco Date: Mon, 6 Apr 2015 14:24:51 -0500 Subject: [PATCH] fix blockquote indentation --- generate.coffee | 29 +++++++++++++++++------------ guide.pdf | Bin 4514 -> 4617 bytes test.coffee.md | 10 +++++++++- todo.md | 7 +++---- 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/generate.coffee b/generate.coffee index be37224..2298465 100644 --- a/generate.coffee +++ b/generate.coffee @@ -32,9 +32,9 @@ styles = indent: 72/2 blockquote: indent: 0 + marginLeft: 72 color: 'red' font: 'Times-Italic' - marginLeft: 72 em: font: 'Times-Italic' strong: @@ -81,15 +81,21 @@ class Node # console.dir tree @type = tree.shift() - @attrs = {} + # @attrs = {} + @style = _.extend({}, styles.default, styles[@type]) if typeof tree[0] is 'object' and not Array.isArray tree[0] @attrs = tree.shift() # parse sub nodes @content = while tree.length - new Node tree.shift() + child = new Node tree.shift() + # blockquotes have an embedded paragraph; make sure the inner paragraph doesn't re-define + # its indentation + child.style?.indent = @style.indent if @style.indent? + child + console.log "content =", @content # console.log "type =", @type switch @type @@ -120,10 +126,6 @@ class Node @code = coffee.compile code if code @height = +@attrs.title or 0 - @style = _.extend({}, styles.default, styles[@type]) - # @style.continued = @attrs.continued if @attrs.continued? - # console.log @style - # sets the styles on the document for this node setStyle: (doc) -> if @style.font @@ -139,7 +141,10 @@ class Node # renders this node and its subnodes to the document render: (doc, continued = false) -> - console.log "rendering node: ", @ + # console.log "rendering node: ", @ + if @style.marginLeft + doc.x += @style.marginLeft + switch @type when 'hr' doc.addPage() @@ -161,10 +166,10 @@ class Node lastType = @type - if @style.marginTop - doc.y += @style.marginTop - # if @style.marginLeft - # doc.x += @style.marginLeft + if @style.marginBottom + doc.y += @style.marginBottom + if @style.marginLeft + doc.x -= @style.marginLeft # reads and renders a markdown/literate coffeescript file to the document render = (doc, filename) -> diff --git a/guide.pdf b/guide.pdf index 470c3c80f48827e8945f5716ee1400322b307a4b..26362aee9f5d1b9775b69f542d9dddcb6bfe09c0 100644 GIT binary patch delta 2803 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 FMhd}hc4+_r delta 2696 zcmV;33U~F1B%&j*L<0mcGBi1}NCUzF0x>z03%~lTMJ=i9DO!lFsdy5DeRBMTFPJd@btB+Eg>FOz&?ZW z0~yC&fdmp7iSMUw-EKPxn1zgHld-$oRj1CWI$1wB`uWDwKRAV9{_XPi{qpB8^YZiO zPs99iadQ7-{{8ay`NI!iJ}!S;{KKA4*9(RLy&sE9!}Wf7`!NhY4A=GYEi5q6Z^i_F znSK^}FTp|7&zLdLAr3qs23i?0!>rfo+Dvx}Oc-g`$}8h7ICS*c@jCEyeS#GhIbnfB zclkMyb}e*$reEY!?JT~|>yYA!VV2beGTlk~6p0~V?#^8Sg8Oc`{(AZ0dim*Z@&`;~ z@_uTs0}>eN`IBKV0dQP&K4XLQ{>~A9BT~$nqM-;mzM2)S_7vM)up}Umck*W-v;%jHHhk!6n)qJL7^C2{8fx-aTRrpYiVD|+u!$#8h&Z}%Or0J|;b#f)93l1z zJ1bm*Kmo4sUICDuoW!zAz!8v>p4>`2!Cj~m=!)lOF;EEh+$ia0Nmod~Af8KqIZx9F zp&W_7gPY4uPmcHq_F`aXEA^f8r${|=e4)<;yq!pAJt>>s^O70SmR^h|WyaXcTE;XA zDxPVBZLh4_b`z!|u(Jq27(;|30zoootRu4I3{$Hcu*^j0Oh=1#i$;ZK*~UF0O%_`F zC?ZI5&JHU=U=>Cw6JDdWBf2zyhgP{$`G+)?6kkgJ$h{_35Dpf!j4Im?SqF(ZTFYZb za794FheAsNdoUy=mHsR~O`&^)b#RB%lBnffE~ zVFWlfJ(MXW1IcF$cq~(rX;a~d zJ{D>N?qCjDDU?-x=ugIfHUsG;Ej1LYO|UF0nSZ51!207ZEh>IBwr}*QZ~@PhCDQmU zOtGVS}bV4FQC`8vtWf+B!w2x&W;=N7P@Yr{)@71Rm z1^fKIvdo14m_l;xmG*eVibuAnQ*{{>^%Txpoao#L4`(JXvqR;7DA>k#>qXVW&_qg% z0_xk$a`Iz0MNl9=$; z!jAhLI*`;~)79E`rgU&A&8p=KWCR2xQk)4c?x9?T306BlEn|j!i{8-P-0De#u*-McFqF z|37)WNTH_t_wfDTH)CIp2cbs1Z?lWd@pO3kof=QgaX9=O6L(zXl|2(DiJZyBj(WTb zC+<1$@Jn<2=kVL{@W+kSS$|?1y)X0MYMye;EmK~t7kog#5#cilAxMwcf^{i4y>@qHpQz1@ z<(XOvyhbMi5z$3Ck~1Vw4aHs*G22SfLkK;P>a9{q>oZm?)Xy@`MSq~W*2(4yzGp>~ zBWn!?ev_~S{PJu6-``#T=hrVy_kM5|{CoH9@bdNDH-EifO~~aYQEYPz*NZNk5kkj_ zwEQSN8*)f2PoZfdk`a19il`UA>Ff`OM=`YlY`+p>n2D0Dl!hAkI3N%Wh&~)ZaMFTw zcQMj(YiT|q=MY?5_Swdj<~%@<5N)U|F394o(6R!o3J zKZ}XI)?GOu+NlHH9cI&{n@B+Kn?>WYGIoEeU0a*RhhO==IL#dY0-vIz9&O8Tat3rASx<-;s7_i2yiwm#*hblf$$=pYWPh z=1j)ArKQy@00f|{u;41_oeVe?!{?yzun<}s`MRQt|I|;SHSz}5dEHhfv0ukJTLA+{ zrm>*cIZB!DEq_+qp{7m>N6}fPD{Ai*SQwhkGsQP}%2NBHZYwkmIW##jud zrdzB|gR#MD7^HRNkwKv*afKH%p{Lc5x>?zDmsG2>!^Z8#FrN?mt@aEQIR3;n87Q08 zVz;OiI9Z|fdpAk~S?+n{t{QZ)GheoINUEm}1Gnp~(pW0;hkb8qJG)cg7X zz_k&s)>*i#c0`ytp