<?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>Class: FeedParser::HTML2TextParser</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <meta http-equiv="Content-Script-Type" content="text/javascript" /> <link rel="stylesheet" href="../.././rdoc-style.css" type="text/css" media="screen" /> <script type="text/javascript"> // <![CDATA[ function popupCode( url ) { window.open(url, "Code", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=150,width=400") } function toggleCode( id ) { if ( document.getElementById ) elem = document.getElementById( id ); else if ( document.all ) elem = eval( "document.all." + id ); else return false; elemStyle = elem.style; if ( elemStyle.display != "block" ) { elemStyle.display = "block" } else { elemStyle.display = "none" } return true; } // Make codeblocks hidden by default document.writeln( "<style type=\"text/css\">div.method-source-code { display: none }</style>" ) // ]]> </script> </head> <body> <div id="classHeader"> <table class="header-table"> <tr class="top-aligned-row"> <td><strong>Class</strong></td> <td class="class-name-in-header">FeedParser::HTML2TextParser</td> </tr> <tr class="top-aligned-row"> <td><strong>In:</strong></td> <td> <a href="../../files/lib/feedparser/html2text-parser_rb.html"> lib/feedparser/html2text-parser.rb </a> <br /> </td> </tr> <tr class="top-aligned-row"> <td><strong>Parent:</strong></td> <td> <a href="SGMLParser.html"> SGMLParser </a> </td> </tr> </table> </div> <!-- banner header --> <div id="bodyContent"> <div id="contextContent"> <div id="diagram"> <map id="map" name="map"> <area shape="rect" coords="1435,5,1600,53" href="../RuntimeError.html" alt="RuntimeError" /> <area shape="rect" coords="1364,161,1671,209" href="UnknownFeedTypeException.html" alt="UnknownFeedTypeException" /> <area shape="rect" coords="887,136,1340,235" href="FeedItem.html" alt="FeedItem\n[lib/feedparser/feedparser.rb\nlib/feedparser/html-output.rb\nlib/feedparser/text-output.rb]" /> <area shape="rect" coords="987,283,1104,331" href="AtomItem.html" alt="AtomItem" /> <area shape="rect" coords="1128,283,1235,331" href="RSSItem.html" alt="RSSItem" /> <area shape="rect" coords="79,161,220,209" href="SGMLParser.html" alt="SGMLParser" /> <area shape="rect" coords="48,283,251,331" href="HTML2TextParser.html" alt="HTML2TextParser" /> <area shape="rect" coords="409,136,863,235" href="Feed.html" alt="Feed\n[lib/feedparser/feedparser.rb\nlib/feedparser/html-output.rb\nlib/feedparser/text-output.rb]" /> <area shape="rect" coords="399,100,1681,341" href="../FeedParser.html" alt="lib/feedparser/feedparser.rb" /> <area shape="rect" coords="60,125,372,220" href="../FeedParser.html" alt="lib/feedparser/sgml-parser.rb" /> <area shape="rect" coords="27,247,388,341" href="../FeedParser.html" alt="lib/feedparser/html2text-parser.rb" /> <area shape="rect" coords="16,64,1692,352" href="../FeedParser.html" alt="FeedParser" /> </map> <img src="../../dot/m_8_0.png" usemap="#map" border="0" alt="dot/m_8_0.png"> </div> <div id="description"> <p> this class provides a simple SGML parser that removes HTML tags </p> </div> </div> <div id="method-list"> <h3 class="section-bar">Methods</h3> <div class="name-list"> <a href="#M000059">close</a> <a href="#M000062">entities</a> <a href="#M000057">handle_data</a> <a href="#M000055">new</a> <a href="#M000056">next_img_index</a> <a href="#M000061">unknown_charref</a> <a href="#M000060">unknown_endtag</a> <a href="#M000063">unknown_entityref</a> <a href="#M000058">unknown_starttag</a> </div> </div> </div> <!-- if includes --> <div id="section"> <div id="constants-list"> <h3 class="section-bar">Constants</h3> <div class="name-list"> <table summary="Constants"> <tr class="top-aligned-row context-row"> <td class="context-item-name">HTML_ENTITIES</td> <td>=</td> <td class="context-item-value">{ "quot" => 34, "amp" => 38, "lt" => 60, "gt" => 62, "apos" => 39, "nbsp" => 160, "iexcl" => 161, "cent" => 162, "pound" => 163, "curren" => 164, "yen" => 165, "brvbar" => 166, "sect" => 167, "uml" => 168, "copy" => 169, "ordf" => 170, "laquo" => 171, "not" => 172, "shy" => 173, "reg" => 174, "macr" => 175, "deg" => 176, "plusmn" => 177, "sup2" => 178, "sup3" => 179, "acute" => 180, "micro" => 181, "para" => 182, "middot" => 183, "cedil" => 184, "sup1" => 185, "ordm" => 186, "raquo" => 187, "frac14" => 188, "frac12" => 189, "frac34" => 190, "iquest" => 191, "Agrave" => 192, "Aacute" => 193, "Acirc" => 194, "Atilde" => 195, "Auml" => 196, "Aring" => 197, "AElig" => 198, "Ccedil" => 199, "Egrave" => 200, "Eacute" => 201, "Ecirc" => 202, "Euml" => 203, "Igrave" => 204, "Iacute" => 205, "Icirc" => 206, "Iuml" => 207, "ETH" => 208, "Ntilde" => 209, "Ograve" => 210, "Oacute" => 211, "Ocirc" => 212, "Otilde" => 213, "Ouml" => 214, "times" => 215, "Oslash" => 216, "Ugrave" => 217, "Uacute" => 218, "Ucirc" => 219, "Uuml" => 220, "Yacute" => 221, "THORN" => 222, "szlig" => 223, "agrave" => 224, "aacute" => 225, "acirc" => 226, "atilde" => 227, "auml" => 228, "aring" => 229, "aelig" => 230, "ccedil" => 231, "egrave" => 232, "eacute" => 233, "ecirc" => 234, "euml" => 235, "igrave" => 236, "iacute" => 237, "icirc" => 238, "iuml" => 239, "eth" => 240, "ntilde" => 241, "ograve" => 242, "oacute" => 243, "ocirc" => 244, "otilde" => 245, "ouml" => 246, "divide" => 247, "oslash" => 248, "ugrave" => 249, "uacute" => 250, "ucirc" => 251, "uuml" => 252, "yacute" => 253, "thorn" => 254, "yuml" => 255, "fnof" => 402, "Alpha" => 913, "Beta" => 914, "Gamma" => 915, "Delta" => 916, "Epsilon" => 917, "Zeta" => 918, "Eta" => 919, "Theta" => 920, "Iota" => 921, "Kappa" => 922, "Lambda" => 923, "Mu" => 924, "Nu" => 925, "Xi" => 926, "Omicron" => 927, "Pi" => 928, "Rho" => 929, "Sigma" => 931, "Tau" => 932, "Upsilon" => 933, "Phi" => 934, "Chi" => 935, "Psi" => 936, "Omega" => 937, "alpha" => 945, "beta" => 946, "gamma" => 947, "delta" => 948, "epsilon" => 949, "zeta" => 950, "eta" => 951, "theta" => 952, "iota" => 953, "kappa" => 954, "lambda" => 955, "mu" => 956, "nu" => 957, "xi" => 958, "omicron" => 959, "pi" => 960, "rho" => 961, "sigmaf" => 962, "sigma" => 963, "tau" => 964, "upsilon" => 965, "phi" => 966, "chi" => 967, "psi" => 968, "omega" => 969, "thetasym" => 977, "upsih" => 978, "piv" => 982, "bull" => 8226, "hellip" => 8230, "prime" => 8242, "Prime" => 8243, "oline" => 8254, "frasl" => 8260, "weierp" => 8472, "image" => 8465, "real" => 8476, "trade" => 8482, "alefsym" => 8501, "larr" => 8592, "uarr" => 8593, "rarr" => 8594, "darr" => 8595, "harr" => 8596, "crarr" => 8629, "lArr" => 8656, "uArr" => 8657, "rArr" => 8658, "dArr" => 8659, "hArr" => 8660, "forall" => 8704, "part" => 8706, "exist" => 8707, "empty" => 8709, "nabla" => 8711, "isin" => 8712, "notin" => 8713, "ni" => 8715, "prod" => 8719, "sum" => 8721, "minus" => 8722, "lowast" => 8727, "radic" => 8730, "prop" => 8733, "infin" => 8734, "ang" => 8736, "and" => 8743, "or" => 8744, "cap" => 8745, "cup" => 8746, "int" => 8747, "there4" => 8756, "sim" => 8764, "cong" => 8773, "asymp" => 8776, "ne" => 8800, "equiv" => 8801, "le" => 8804, "ge" => 8805, "sub" => 8834, "sup" => 8835, "nsub" => 8836, "sube" => 8838, "supe" => 8839, "oplus" => 8853, "otimes" => 8855, "perp" => 8869, "sdot" => 8901, "lceil" => 8968, "rceil" => 8969, "lfloor" => 8970, "rfloor" => 8971, "lang" => 9001, "rang" => 9002, "loz" => 9674, "spades" => 9824, "clubs" => 9827, "hearts" => 9829, "diams" => 9830, "OElig" => 338, "oelig" => 339, "Scaron" => 352, "scaron" => 353, "Yuml" => 376, "circ" => 710, "tilde" => 732, "ensp" => 8194, "emsp" => 8195, "thinsp" => 8201, "zwnj" => 8204, "zwj" => 8205, "lrm" => 8206, "rlm" => 8207, "ndash" => 8211, "mdash" => 8212, "lsquo" => 8216, "rsquo" => 8217, "sbquo" => 8218, "ldquo" => 8220, "rdquo" => 8221, "bdquo" => 8222, "dagger" => 8224, "Dagger" => 8225, "permil" => 8240, "lsaquo" => 8249, "rsaquo" => 8250, "euro" => 8364</td> </tr> </table> </div> </div> <div id="attribute-list"> <h3 class="section-bar">Attributes</h3> <div class="name-list"> <table> <tr class="top-aligned-row context-row"> <td class="context-item-name">savedata</td> <td class="context-item-value"> [R] </td> <td class="context-item-desc"></td> </tr> </table> </div> </div> <!-- if method_list --> <div id="methods"> <h3 class="section-bar">Public Class methods</h3> <div id="method-M000062" class="method-detail"> <a name="M000062"></a> <div class="method-heading"> <a href="#M000062" class="method-signature"> <span class="method-name">entities</span><span class="method-args">()</span> </a> </div> <div class="method-description"> <p><a class="source-toggle" href="#" onclick="toggleCode('M000062-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000062-source"> <pre> <span class="ruby-comment cmt"># File lib/feedparser/html2text-parser.rb, line 138</span> 138: <span class="ruby-keyword kw">def</span> <span class="ruby-constant">HTML2TextParser</span>.<span class="ruby-identifier">entities</span> 139: <span class="ruby-keyword kw">return</span> <span class="ruby-constant">HTML_ENTITIES</span> 140: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000055" class="method-detail"> <a name="M000055"></a> <div class="method-heading"> <a href="#M000055" class="method-signature"> <span class="method-name">new</span><span class="method-args">(verbose = false)</span> </a> </div> <div class="method-description"> <p><a class="source-toggle" href="#" onclick="toggleCode('M000055-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000055-source"> <pre> <span class="ruby-comment cmt"># File lib/feedparser/html2text-parser.rb, line 9</span> 9: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">verbose</span> = <span class="ruby-keyword kw">false</span>) 10: <span class="ruby-ivar">@savedata</span> = <span class="ruby-value str">''</span> 11: <span class="ruby-ivar">@pre</span> = <span class="ruby-keyword kw">false</span> 12: <span class="ruby-ivar">@href</span> = <span class="ruby-keyword kw">nil</span> 13: <span class="ruby-ivar">@links</span> = [] 14: <span class="ruby-ivar">@imgs</span> = [] 15: <span class="ruby-ivar">@img_index</span> = <span class="ruby-value str">'@'</span> 16: <span class="ruby-keyword kw">super</span>(<span class="ruby-identifier">verbose</span>) 17: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <h3 class="section-bar">Public Instance methods</h3> <div id="method-M000059" class="method-detail"> <a name="M000059"></a> <div class="method-heading"> <a href="#M000059" class="method-signature"> <span class="method-name">close</span><span class="method-args">()</span> </a> </div> <div class="method-description"> <p><a class="source-toggle" href="#" onclick="toggleCode('M000059-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000059-source"> <pre> <span class="ruby-comment cmt"># File lib/feedparser/html2text-parser.rb, line 93</span> 93: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">close</span> 94: <span class="ruby-keyword kw">super</span> 95: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@links</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> 96: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n\n"</span> 97: <span class="ruby-ivar">@links</span>.<span class="ruby-identifier">each_index</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> 98: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"[#{i+1}] #{@links[i]}\n"</span> 99: <span class="ruby-keyword kw">end</span> 100: <span class="ruby-keyword kw">end</span> 101: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@imgs</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">></span> <span class="ruby-value">0</span> 102: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n\n"</span> 103: <span class="ruby-ivar">@imgs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">i</span><span class="ruby-operator">|</span> 104: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"[#{i[0]}] #{i[1]}\n"</span> 105: <span class="ruby-keyword kw">end</span> 106: <span class="ruby-keyword kw">end</span> 107: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000057" class="method-detail"> <a name="M000057"></a> <div class="method-heading"> <a href="#M000057" class="method-signature"> <span class="method-name">handle_data</span><span class="method-args">(data)</span> </a> </div> <div class="method-description"> <p><a class="source-toggle" href="#" onclick="toggleCode('M000057-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000057-source"> <pre> <span class="ruby-comment cmt"># File lib/feedparser/html2text-parser.rb, line 26</span> 26: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">data</span>) 27: <span class="ruby-comment cmt"># let's remove all CR</span> 28: <span class="ruby-keyword kw">if</span> <span class="ruby-keyword kw">not</span> <span class="ruby-ivar">@pre</span> 29: <span class="ruby-identifier">data</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/\n/</span>, <span class="ruby-value str">' '</span>) 30: <span class="ruby-identifier">data</span>.<span class="ruby-identifier">gsub!</span>(<span class="ruby-regexp re">/( )+/</span>, <span class="ruby-value str">' '</span>) 31: <span class="ruby-keyword kw">end</span> 32: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-identifier">data</span> 33: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000056" class="method-detail"> <a name="M000056"></a> <div class="method-heading"> <a href="#M000056" class="method-signature"> <span class="method-name">next_img_index</span><span class="method-args">()</span> </a> </div> <div class="method-description"> <p><a class="source-toggle" href="#" onclick="toggleCode('M000056-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000056-source"> <pre> <span class="ruby-comment cmt"># File lib/feedparser/html2text-parser.rb, line 19</span> 19: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">next_img_index</span> 20: <span class="ruby-identifier">n</span> = <span class="ruby-ivar">@img_index</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">+</span> <span class="ruby-value">1</span> 21: <span class="ruby-ivar">@img_index</span> = <span class="ruby-value str">" "</span> 22: <span class="ruby-ivar">@img_index</span>[<span class="ruby-value">0</span>] = <span class="ruby-identifier">n</span> 23: <span class="ruby-keyword kw">return</span> <span class="ruby-ivar">@img_index</span> 24: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000061" class="method-detail"> <a name="M000061"></a> <div class="method-heading"> <a href="#M000061" class="method-signature"> <span class="method-name">unknown_charref</span><span class="method-args">(ref)</span> </a> </div> <div class="method-description"> <p><a class="source-toggle" href="#" onclick="toggleCode('M000061-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000061-source"> <pre> <span class="ruby-comment cmt"># File lib/feedparser/html2text-parser.rb, line 134</span> 134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unknown_charref</span>(<span class="ruby-identifier">ref</span>) 135: <span class="ruby-identifier">handle_data</span>([<span class="ruby-identifier">ref</span>.<span class="ruby-identifier">to_i</span>].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'U*'</span>)) 136: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000060" class="method-detail"> <a name="M000060"></a> <div class="method-heading"> <a href="#M000060" class="method-signature"> <span class="method-name">unknown_endtag</span><span class="method-args">(tag)</span> </a> </div> <div class="method-description"> <p><a class="source-toggle" href="#" onclick="toggleCode('M000060-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000060-source"> <pre> <span class="ruby-comment cmt"># File lib/feedparser/html2text-parser.rb, line 109</span> 109: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unknown_endtag</span>(<span class="ruby-identifier">tag</span>) 110: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">tag</span> 111: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'ul'</span> 112: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n"</span> 113: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'b'</span> 114: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'*'</span> 115: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'strong'</span> 116: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'*'</span> 117: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'em'</span> 118: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'*'</span> 119: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'u'</span> 120: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'_'</span> 121: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'i'</span> 122: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'/'</span> 123: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'pre'</span> 124: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n\n"</span> 125: <span class="ruby-ivar">@pre</span> = <span class="ruby-keyword kw">false</span> 126: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'a'</span> 127: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@href</span> 128: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"[#{@links.length}]"</span> 129: <span class="ruby-ivar">@href</span> = <span class="ruby-keyword kw">nil</span> 130: <span class="ruby-keyword kw">end</span> 131: <span class="ruby-keyword kw">end</span> 132: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000063" class="method-detail"> <a name="M000063"></a> <div class="method-heading"> <a href="#M000063" class="method-signature"> <span class="method-name">unknown_entityref</span><span class="method-args">(ref)</span> </a> </div> <div class="method-description"> <p><a class="source-toggle" href="#" onclick="toggleCode('M000063-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000063-source"> <pre> <span class="ruby-comment cmt"># File lib/feedparser/html2text-parser.rb, line 401</span> 401: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unknown_entityref</span>(<span class="ruby-identifier">ref</span>) 402: <span class="ruby-keyword kw">if</span> <span class="ruby-constant">HTML_ENTITIES</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">ref</span>) 403: <span class="ruby-identifier">handle_data</span>([<span class="ruby-constant">HTML_ENTITIES</span>[<span class="ruby-identifier">ref</span>]].<span class="ruby-identifier">pack</span>(<span class="ruby-value str">'U*'</span>)) 404: <span class="ruby-keyword kw">else</span> 405: <span class="ruby-identifier">handle_data</span>(<span class="ruby-identifier">ref</span>) 406: <span class="ruby-keyword kw">end</span> 407: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> <div id="method-M000058" class="method-detail"> <a name="M000058"></a> <div class="method-heading"> <a href="#M000058" class="method-signature"> <span class="method-name">unknown_starttag</span><span class="method-args">(tag, attrs)</span> </a> </div> <div class="method-description"> <p><a class="source-toggle" href="#" onclick="toggleCode('M000058-source');return false;">[Source]</a></p> <div class="method-source-code" id="M000058-source"> <pre> <span class="ruby-comment cmt"># File lib/feedparser/html2text-parser.rb, line 35</span> 35: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unknown_starttag</span>(<span class="ruby-identifier">tag</span>, <span class="ruby-identifier">attrs</span>) 36: <span class="ruby-keyword kw">case</span> <span class="ruby-identifier">tag</span> 37: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'p'</span>, <span class="ruby-value str">'h4'</span> 38: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n\n"</span> 39: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'h1'</span> 40: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n\n "</span> 41: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'h2'</span> 42: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n\n "</span> 43: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'h3'</span> 44: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n\n "</span> 45: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'br'</span> 46: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n"</span> 47: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'ul'</span> 48: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n"</span> 49: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'li'</span> 50: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n - "</span> 51: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'b'</span> 52: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'*'</span> 53: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'strong'</span> 54: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'*'</span> 55: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'em'</span> 56: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'*'</span> 57: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'u'</span> 58: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'_'</span> 59: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'i'</span> 60: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">'/'</span> 61: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'pre'</span> 62: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-value str">"\n\n"</span> 63: <span class="ruby-ivar">@pre</span> = <span class="ruby-keyword kw">true</span> 64: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'a'</span> 65: <span class="ruby-comment cmt"># find href in args</span> 66: <span class="ruby-ivar">@href</span> = <span class="ruby-keyword kw">nil</span> 67: <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> 68: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'href'</span> 69: <span class="ruby-ivar">@href</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">1</span>] 70: <span class="ruby-keyword kw">end</span> 71: <span class="ruby-keyword kw">end</span> 72: <span class="ruby-keyword kw">if</span> <span class="ruby-ivar">@href</span> 73: <span class="ruby-ivar">@links</span> <span class="ruby-operator"><<</span> <span class="ruby-ivar">@href</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^("|'|)(.*)("|')$/</span>,<span class="ruby-value str">'\2'</span>) 74: <span class="ruby-keyword kw">end</span> 75: <span class="ruby-keyword kw">when</span> <span class="ruby-value str">'img'</span> 76: <span class="ruby-comment cmt"># find src in args</span> 77: <span class="ruby-identifier">src</span> = <span class="ruby-keyword kw">nil</span> 78: <span class="ruby-identifier">attrs</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span><span class="ruby-operator">|</span> 79: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">a</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">==</span> <span class="ruby-value str">'src'</span> 80: <span class="ruby-identifier">src</span> = <span class="ruby-identifier">a</span>[<span class="ruby-value">1</span>] 81: <span class="ruby-keyword kw">end</span> 82: <span class="ruby-keyword kw">end</span> 83: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">src</span> 84: <span class="ruby-identifier">idx</span> = <span class="ruby-identifier">next_img_index</span> 85: <span class="ruby-ivar">@imgs</span> <span class="ruby-operator"><<</span> [ <span class="ruby-identifier">idx</span>, <span class="ruby-identifier">src</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp re">/^("|'|)(.*)("|')$/</span>,<span class="ruby-value str">'\2'</span>) ] 86: <span class="ruby-ivar">@savedata</span> <span class="ruby-operator"><<</span> <span class="ruby-node">"[#{idx}]"</span> 87: <span class="ruby-keyword kw">end</span> 88: <span class="ruby-keyword kw">else</span> 89: <span class="ruby-comment cmt"># puts "unknown tag: #{tag}"</span> 90: <span class="ruby-keyword kw">end</span> 91: <span class="ruby-keyword kw">end</span> </pre> </div> </div> </div> </div> </div> <div id="validator-badges"> <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p> </div> </body> </html>