All pastes #984712 Raw Edit

Untitled

public text v1 · immutable
·published 2008-04-14 14:40 UTC
rendered paste body
INSERT INTO `content` VALUES('caudium.net', '/developer/pikeref/ex/predef_3A_3A/
Parser/HTML.html', 'very simple HTML->Text (DeHTML.pike): \r\n\r\n<phl>\r\nint d
eHTML(string html) {\r\n        object p=Parser.HTML();\r\n        p->_set_tag_c
allback(tag_cb);\r\n        p->_set_data_callback(data_cb);\r\n        p->add_co
ntainer("head",container_cb);\r\n        p->add_container("script",container_cb)
;\r\n        p->add_container("style",container_cb);\r\n        p->add_container
("title",container_cb);\r\n        p->finish(html);\r\n        return(p->read())
;\r\n}\r\nmixed container_cb(Parser.HTML p, mapping args, string content, mixed 
... extra)\r\n{ return ""; }\r\n\r\nmixed data_cb(Parser.HTML p, string text,mix
ed ... extra) {\r\n        if( text && sizeof(text) ) {\r\n                text=
replace(text,({"\\n"}),({""}));\r\n        }\r\n        return ({ text });\r\n}\
r\n\r\nmixed tag_cb(Parser.HTML p, mapping args,mixed ... extra ) {\r\n        s
tring tag=p->tag_name();\r\n        switch(tag) {\r\n                case "br":\
r\n                case "p":\r\n                case "/h1":\r\n                c
ase "/h2":\r\n                case "/h3":\r\n                case "/h4":\r\n    
            case "/h5":\r\n                case "/h6":\r\n                  retu
rn ({ "\\n" });\r\n                  break;\r\n                case "hr":\r\n   
               return ({ "\\n---------------------------------------------------
-------------------\\n" });\r\n                  break;\r\n        }\r\n        
return "";\r\n}\r\n</phl>', '2006-01-05 13:13:11', NULL, 461);