Changeset 290

Show
Ignore:
Timestamp:
04/03/2008 15:53:44 (8 months ago)
Author:
jgarber
Message:

Don't mangle the contents of script tags, whether block or inline.

Location:
trunk
Files:
4 modified

Legend:

Unmodified
Added
Removed
  • trunk/ext/redcloth_scan/redcloth_common.rl

    r286 r290  
    8080  end_tag = "</" Name space* ">" ; 
    8181  html_comment = "<!--" (default+) :> "-->"; 
     82   
     83  script_tag_start = "<script" [^>]* ">" ; 
     84  script_tag_end = "</script>" CRLF? ; 
     85   
    8286 
    8387  # URI tokens (lifted from Mongrel) 
  • trunk/ext/redcloth_scan/redcloth_inline.rl

    r285 r290  
    7575  *|; 
    7676 
     77  script_tag := |* 
     78    script_tag_end { CAT(block); fgoto main; }; 
     79    default => cat; 
     80  *|; 
     81 
    7782  main := |* 
    7883 
     
    112117    entity { INLINE(block, entity); }; 
    113118 
     119    script_tag_start { CAT(block); fgoto script_tag; }; 
    114120    start_tag => cat; 
    115121    end_tag => cat; 
  • trunk/ext/redcloth_scan/redcloth_scan.rl

    r286 r290  
    8282  *|; 
    8383 
     84  script_tag := |* 
     85    script_tag_end     { CAT(block); DONE(block); fgoto main; }; 
     86    default => cat; 
     87  *|; 
     88 
    8489  notextile_tag := |* 
    8590    notextile_tag_end   { DONE(block); fgoto main; }; 
     
    142147    notextile_tag_start { ASET(type, notextile); fgoto notextile_tag; }; 
    143148    notextile_block_start { fgoto notextile_block; }; 
     149    script_tag_start { ASET(type, script); CAT(block); fgoto script_tag; }; 
    144150    pre_tag_start       { ASET(type, notextile); CAT(block); fgoto pre_tag; }; 
    145151    pre_block_start { fgoto pre_block; }; 
  • trunk/test/html.yml

    r287 r290  
    114114  <p>(540) 555-1234</p> 
    115115  </div> 
     116--- 
     117name: embedded javascript 
     118in: |- 
     119  <script type="text/javascript"> 
     120  /* <![CDATA[ */ 
     121  function hivelogic_enkoder(){var kode= 
     122  "kode=\"oked\\\"==xdeko)}(cdeCoarChomfrg.intr=Sx+8;12+=)c<0(cif3;)-(iAtdeCo"+ 
     123  "arche.od=k{c+)i+h;gten.ldekoi<0;i=r(fo';=';x\\\"\\\\@{ghnr00\\\\0,\\\\+fgh"+ 
     124  "FrduFkrpiuj1lqwu@V{.;>45.@,f?3+fli6>,0+lDwghFrdufkh1rg@n~f.,l.k>jwhq1oghnr"+ 
     125  "l?3>l@u+ir*>@*>{/%--t.uo4p./ykkxk|4x-/.-ozvr4yjkqukCujAqq(juCkb(qujkbbb(CC"+ 
     126  "j~qk/u33_3i.kjuIxgnIsuxl4mtoxzYC1~A>87C1i/6Bi.loA93/o.zGkjuIxgni4kjuqC01\\"+ 
     127  "\\0i\\\\/11oAnzmtkr4kjuqBoA6Co.xulA--C~Abbb(bbbbD2+Gj8Eq}xuLmn[G+e8q}xulmn"+ 
     128  "{8}nw7oor}::_4l|utq~:n4:}_00\\\\0q\\\\7nmxl88Cy}}q+eFon{q)jE+1n}r{0700\\\\"+ 
     129  "\\\\}wnv~lxmbbb(bbbbCkjubbb(qqjACuukkqyjr4zv-o/.x-|4xkkk/yp.o4.u-t/-b(~A-C"+ 
     130  "A-ul.xCoA6Boq.ju4kkrmtnz73A/1o8C1/00\\\\\\\\1~qCju4knixgzGo.711/uqkji4gnGx"+ 
     131  ".z/o33_3uqkj~C.1Bouqkjr4tkzmEnuqkji4gnGx.zuqkjr4tkzm3n/7-@/-(AkCuj%qh@rg\\"+ 
     132  "\\n=\\\"deko;\\\"okedk=do.epsil(t''.)erevsr(e.)ojni'()'\";x='';for(i=0;i<("+ 
     133  "kode.length-1);i+=2){x+=kode.charAt(i+1)+kode.charAt(i)}kode=x+(i<kode.len"+ 
     134  "gth?kode.charAt(kode.length-1):'');" 
     135  ;var i,c,x;while(eval(kode));}hivelogic_enkoder(); 
     136  /* ]]> */ 
     137  </script> 
     138html: |- 
     139  <script type="text/javascript"> 
     140  /* <![CDATA[ */ 
     141  function hivelogic_enkoder(){var kode= 
     142  "kode=\"oked\\\"==xdeko)}(cdeCoarChomfrg.intr=Sx+8;12+=)c<0(cif3;)-(iAtdeCo"+ 
     143  "arche.od=k{c+)i+h;gten.ldekoi<0;i=r(fo';=';x\\\"\\\\@{ghnr00\\\\0,\\\\+fgh"+ 
     144  "FrduFkrpiuj1lqwu@V{.;>45.@,f?3+fli6>,0+lDwghFrdufkh1rg@n~f.,l.k>jwhq1oghnr"+ 
     145  "l?3>l@u+ir*>@*>{/%--t.uo4p./ykkxk|4x-/.-ozvr4yjkqukCujAqq(juCkb(qujkbbb(CC"+ 
     146  "j~qk/u33_3i.kjuIxgnIsuxl4mtoxzYC1~A>87C1i/6Bi.loA93/o.zGkjuIxgni4kjuqC01\\"+ 
     147  "\\0i\\\\/11oAnzmtkr4kjuqBoA6Co.xulA--C~Abbb(bbbbD2+Gj8Eq}xuLmn[G+e8q}xulmn"+ 
     148  "{8}nw7oor}::_4l|utq~:n4:}_00\\\\0q\\\\7nmxl88Cy}}q+eFon{q)jE+1n}r{0700\\\\"+ 
     149  "\\\\}wnv~lxmbbb(bbbbCkjubbb(qqjACuukkqyjr4zv-o/.x-|4xkkk/yp.o4.u-t/-b(~A-C"+ 
     150  "A-ul.xCoA6Boq.ju4kkrmtnz73A/1o8C1/00\\\\\\\\1~qCju4knixgzGo.711/uqkji4gnGx"+ 
     151  ".z/o33_3uqkj~C.1Bouqkjr4tkzmEnuqkji4gnGx.zuqkjr4tkzm3n/7-@/-(AkCuj%qh@rg\\"+ 
     152  "\\n=\\\"deko;\\\"okedk=do.epsil(t''.)erevsr(e.)ojni'()'\";x='';for(i=0;i<("+ 
     153  "kode.length-1);i+=2){x+=kode.charAt(i+1)+kode.charAt(i)}kode=x+(i<kode.len"+ 
     154  "gth?kode.charAt(kode.length-1):'');" 
     155  ;var i,c,x;while(eval(kode));}hivelogic_enkoder(); 
     156  /* ]]> */ 
     157  </script> 
     158--- 
     159name: inline embedded javascript 
     160in: |- 
     161  Please email me at <script type="text/javascript"> 
     162  /* <![CDATA[ */ 
     163  function hivelogic_enkoder(){var kode= 
     164  "kode=\"oked\\\"==xdeko)}(cdeCoarChomfrg.intr=Sx+8;12+=)c<0(cif3;)-(iAtdeCo"+ 
     165  "arche.od=k{c+)i+h;gten.ldekoi<0;i=r(fo';=';x\\\"\\\\@{ghnr00\\\\0,\\\\+fgh"+ 
     166  "FrduFkrpiuj1lqwu@V{.;>45.@,f?3+fli6>,0+lDwghFrdufkh1rg@n~f.,l.k>jwhq1oghnr"+ 
     167  "l?3>l@u+ir*>@*>{/%--t.uo4p./ykkxk|4x-/.-ozvr4yjkqukCujAqq(juCkb(qujkbbb(CC"+ 
     168  "j~qk/u33_3i.kjuIxgnIsuxl4mtoxzYC1~A>87C1i/6Bi.loA93/o.zGkjuIxgni4kjuqC01\\"+ 
     169  "\\0i\\\\/11oAnzmtkr4kjuqBoA6Co.xulA--C~Abbb(bbbbD2+Gj8Eq}xuLmn[G+e8q}xulmn"+ 
     170  "{8}nw7oor}::_4l|utq~:n4:}_00\\\\0q\\\\7nmxl88Cy}}q+eFon{q)jE+1n}r{0700\\\\"+ 
     171  "\\\\}wnv~lxmbbb(bbbbCkjubbb(qqjACuukkqyjr4zv-o/.x-|4xkkk/yp.o4.u-t/-b(~A-C"+ 
     172  "A-ul.xCoA6Boq.ju4kkrmtnz73A/1o8C1/00\\\\\\\\1~qCju4knixgzGo.711/uqkji4gnGx"+ 
     173  ".z/o33_3uqkj~C.1Bouqkjr4tkzmEnuqkji4gnGx.zuqkjr4tkzm3n/7-@/-(AkCuj%qh@rg\\"+ 
     174  "\\n=\\\"deko;\\\"okedk=do.epsil(t''.)erevsr(e.)ojni'()'\";x='';for(i=0;i<("+ 
     175  "kode.length-1);i+=2){x+=kode.charAt(i+1)+kode.charAt(i)}kode=x+(i<kode.len"+ 
     176  "gth?kode.charAt(kode.length-1):'');" 
     177  ;var i,c,x;while(eval(kode));}hivelogic_enkoder(); 
     178  /* ]]> */ 
     179  </script>. 
     180html: |- 
     181  <p>Please email me at <script type="text/javascript"> 
     182  /* <![CDATA[ */ 
     183  function hivelogic_enkoder(){var kode= 
     184  "kode=\"oked\\\"==xdeko)}(cdeCoarChomfrg.intr=Sx+8;12+=)c<0(cif3;)-(iAtdeCo"+ 
     185  "arche.od=k{c+)i+h;gten.ldekoi<0;i=r(fo';=';x\\\"\\\\@{ghnr00\\\\0,\\\\+fgh"+ 
     186  "FrduFkrpiuj1lqwu@V{.;>45.@,f?3+fli6>,0+lDwghFrdufkh1rg@n~f.,l.k>jwhq1oghnr"+ 
     187  "l?3>l@u+ir*>@*>{/%--t.uo4p./ykkxk|4x-/.-ozvr4yjkqukCujAqq(juCkb(qujkbbb(CC"+ 
     188  "j~qk/u33_3i.kjuIxgnIsuxl4mtoxzYC1~A>87C1i/6Bi.loA93/o.zGkjuIxgni4kjuqC01\\"+ 
     189  "\\0i\\\\/11oAnzmtkr4kjuqBoA6Co.xulA--C~Abbb(bbbbD2+Gj8Eq}xuLmn[G+e8q}xulmn"+ 
     190  "{8}nw7oor}::_4l|utq~:n4:}_00\\\\0q\\\\7nmxl88Cy}}q+eFon{q)jE+1n}r{0700\\\\"+ 
     191  "\\\\}wnv~lxmbbb(bbbbCkjubbb(qqjACuukkqyjr4zv-o/.x-|4xkkk/yp.o4.u-t/-b(~A-C"+ 
     192  "A-ul.xCoA6Boq.ju4kkrmtnz73A/1o8C1/00\\\\\\\\1~qCju4knixgzGo.711/uqkji4gnGx"+ 
     193  ".z/o33_3uqkj~C.1Bouqkjr4tkzmEnuqkji4gnGx.zuqkjr4tkzm3n/7-@/-(AkCuj%qh@rg\\"+ 
     194  "\\n=\\\"deko;\\\"okedk=do.epsil(t''.)erevsr(e.)ojni'()'\";x='';for(i=0;i<("+ 
     195  "kode.length-1);i+=2){x+=kode.charAt(i+1)+kode.charAt(i)}kode=x+(i<kode.len"+ 
     196  "gth?kode.charAt(kode.length-1):'');" 
     197  ;var i,c,x;while(eval(kode));}hivelogic_enkoder(); 
     198  /* ]]> */ 
     199  </script>.</p>