Request Method: | GET |
---|---|
Request URL: | http://hackermojo.com/mt-static/archives/2005/07/public-storage.html |
Exception Type: | UnicodeDecodeError |
Exception Value: | 'ascii' codec can't decode byte 0xc3 in position 33: ordinal not in range(128) |
Exception Location: | /internet/toolkit/python/BeautifulSoup.py in renderContents, line 442 |
/internet/appserv/DjangoTrunk/django/core/handlers/base.py
in get_response
Variable | Value |
---|---|
callback | <function by_slug at 0x1366230> |
callback_args | () |
callback_kwargs | {'slug': 'public-storage'} |
debug | <module 'django.views.debug' from '/internet/appserv/DjangoTrunk/django/views/debug.pyc'> |
e | <exceptions.UnicodeDecodeError instance at 0x2c8ebd8> |
exceptions | <module 'django.core.exceptions' from '/internet/appserv/DjangoTrunk/django/core/exceptions.pyc'> |
mail_admins | <function mail_admins at 0x7f98921826e0> |
middleware_method | <bound method XViewMiddleware.process_view of <django.middleware.doc.XViewMiddleware object at 0xd67510>> |
request | <WSGIRequest
GET:<MultiValueDict: {}>,
POST:<MultiValueDict: {}>,
COOKIES:{},
META:{'CONTENT_LENGTH': '0',
'DOCUMENT_ROOT': '/internet/hosts/www.hackermojo.com/html',
'HTTP_ACCEPT': '*/*',
'HTTP_HOST': 'hackermojo.com',
'HTTP_USER_AGENT': 'claudebot',
'PATH_INFO': '/mt-static/archives/2005/07/public-storage.html',
'QUERY_STRING': '',
'REMOTE_ADDR': '35.175.174.36',
'REMOTE_PORT': '45082',
'REQUEST_METHOD': 'GET',
'REQUEST_URI': '/mt-static/archives/2005/07/public-storage.html',
'SCGI': '1',
'SCRIPT_NAME': '',
'SCRIPT_URI': 'http://hackermojo.com/mt-static/archives/2005/07/public-storage.html',
'SCRIPT_URL': '/mt-static/archives/2005/07/public-storage.html',
'SERVER_ADDR': '208.78.103.181',
'SERVER_ADMIN': '[no address given]',
'SERVER_NAME': 'hackermojo.com',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'Apache/2.2.14 (Ubuntu)',
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7f9895923210>,
'wsgi.input': <cStringIO.StringO object at 0x7f9895933328>,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}> |
resolver | <django.core.urlresolvers.RegexURLResolver object at 0xdd0f90> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f98957d6690> |
settings | <django.conf.LazySettings object at 0x7f989247f710> |
urlconf | 'urls' |
urlresolvers | <module 'django.core.urlresolvers' from '/internet/appserv/DjangoTrunk/django/core/urlresolvers.pyc'> |
/internet/hosts/www.hackermojo.com/hm/apps/blog/views.py
in by_slug
Variable | Value |
---|---|
c | [{'LastABTestScenario': 'top', 'request': <WSGIRequest
GET:<MultiValueDict: {}>,
POST:<MultiValueDict: {}>,
COOKIES:{},
META:{'CONTENT_LENGTH': '0',
'DOCUMENT_ROOT': '/internet/hosts/www.hackermojo.com/html',
'HTTP_ACCEPT': '*/*',
'HTTP_HOST': 'hackermojo.com',
'HTTP_USER_AGENT': 'claudebot',
'PATH_INFO': '/mt-static/archives/2005/07/public-storage.html',
'QUERY_STRING': '',
'REMOTE_ADDR': '35.175.174.36',
'REMOTE_PORT': '45082',
'REQUEST_METHOD': 'GET',
'REQUEST_URI': '/mt-static/archives/2005/07/public-storage.html',
'SCGI': '1',
'SCRIPT_NAME': '',
'SCRIPT_URI': 'http://hackermojo.com/mt-static/archives/2005/07/public-storage.html',
'SCRIPT_URL': '/mt-static/archives/2005/07/public-storage.html',
'SERVER_ADDR': '208.78.103.181',
'SERVER_ADMIN': '[no address given]',
'SERVER_NAME': 'hackermojo.com',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'Apache/2.2.14 (Ubuntu)',
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7f9895923210>,
'wsgi.input': <cStringIO.StringO object at 0x7f9895933328>,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}>, 'recengines': 'top', 'LastABTest': 'recengines'}, {'LANGUAGES': (('ar', 'Arabic'), ('bn', 'Bengali'), ('bg', 'Bulgarian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('el', 'Greek'), ('en', 'English'), ('es', 'Spanish'), ('es_AR', 'Argentinean Spanish'), ('fi', 'Finnish'), ('fr', 'French'), ('gl', 'Galician'), ('hu', 'Hungarian'), ('he', 'Hebrew'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ko', 'Korean'), ('kn', 'Kannada'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('nl', 'Dutch'), ('no', 'Norwegian'), ('pl', 'Polish'), ('pt', 'Portugese'), ('pt-br', 'Brazilian'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sr', 'Serbian'), ('sv', 'Swedish'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tr', 'Turkish'), ('uk', 'Ukrainian'), ('zh-cn', 'Simplified Chinese'), ('zh-tw', 'Traditional Chinese')), 'LANGUAGE_BIDI': False, 'LANGUAGE_CODE': 'en-us'}, {}, {'perms': <django.core.context_processors.PermWrapper object at 0x252f510>, 'messages': [], 'user': <django.contrib.auth.models.AnonymousUser object at 0x252f050>}, {'request': <WSGIRequest
GET:<MultiValueDict: {}>,
POST:<MultiValueDict: {}>,
COOKIES:{},
META:{'CONTENT_LENGTH': '0',
'DOCUMENT_ROOT': '/internet/hosts/www.hackermojo.com/html',
'HTTP_ACCEPT': '*/*',
'HTTP_HOST': 'hackermojo.com',
'HTTP_USER_AGENT': 'claudebot',
'PATH_INFO': '/mt-static/archives/2005/07/public-storage.html',
'QUERY_STRING': '',
'REMOTE_ADDR': '35.175.174.36',
'REMOTE_PORT': '45082',
'REQUEST_METHOD': 'GET',
'REQUEST_URI': '/mt-static/archives/2005/07/public-storage.html',
'SCGI': '1',
'SCRIPT_NAME': '',
'SCRIPT_URI': 'http://hackermojo.com/mt-static/archives/2005/07/public-storage.html',
'SCRIPT_URL': '/mt-static/archives/2005/07/public-storage.html',
'SERVER_ADDR': '208.78.103.181',
'SERVER_ADMIN': '[no address given]',
'SERVER_NAME': 'hackermojo.com',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'Apache/2.2.14 (Ubuntu)',
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7f9895923210>,
'wsgi.input': <cStringIO.StringO object at 0x7f9895933328>,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}>, 'entries': [<MtEntry: Public Storage Warning>]}] |
entries | [<MtEntry: Public Storage Warning>] |
exposures | {'Life': 1} |
isotope | 'Life' |
referer | None |
request | <WSGIRequest
GET:<MultiValueDict: {}>,
POST:<MultiValueDict: {}>,
COOKIES:{},
META:{'CONTENT_LENGTH': '0',
'DOCUMENT_ROOT': '/internet/hosts/www.hackermojo.com/html',
'HTTP_ACCEPT': '*/*',
'HTTP_HOST': 'hackermojo.com',
'HTTP_USER_AGENT': 'claudebot',
'PATH_INFO': '/mt-static/archives/2005/07/public-storage.html',
'QUERY_STRING': '',
'REMOTE_ADDR': '35.175.174.36',
'REMOTE_PORT': '45082',
'REQUEST_METHOD': 'GET',
'REQUEST_URI': '/mt-static/archives/2005/07/public-storage.html',
'SCGI': '1',
'SCRIPT_NAME': '',
'SCRIPT_URI': 'http://hackermojo.com/mt-static/archives/2005/07/public-storage.html',
'SCRIPT_URL': '/mt-static/archives/2005/07/public-storage.html',
'SERVER_ADDR': '208.78.103.181',
'SERVER_ADMIN': '[no address given]',
'SERVER_NAME': 'hackermojo.com',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'Apache/2.2.14 (Ubuntu)',
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7f9895923210>,
'wsgi.input': <cStringIO.StringO object at 0x7f9895933328>,
'wsgi.multiprocess': True,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}> |
slug | 'public-storage' |
t | <django.template.Template object at 0x2d2f450> |
tpath | 'entry.html' |
/internet/hosts/www.hackermojo.com/hm/apps/blog/views.py
in highlight_code
Variable | Value |
---|---|
html | '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r\n\t"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r\n\n\n<html>\r\n<head>\r\n<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>\r\n<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />\n<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />\r\n<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r\n<meta name="author" content="Glenn Franxman" />\r\n<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />\r\n<meta name="keywords" content="django mintcache hacker python knoxville" />\r\n<meta name="description" content="Glenn Franxman\'s thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />\r\n\n \n <link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />\n \n<script src="http://www.google.com/jsapi"></script>\n<script src="/media/js/jquery-1.2.6.min.js"></script>\n<script type="text/javascript">\n $(document).ready(function() {\n // I love you jquery\n var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;\n var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;\n $(window).scroll( function() { \n console.log( "scrolled" ) ; \n var window_top = $(window).scrollTop() ;\n var window_bottom = window_top + $(window).height() ;\n floater_top = $(".floaterspacer").offset({ scroll: false }).top ;\n var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;\n\n var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;\n /*\n console.log( "window top:" + window_top ) ; \n console.log( "window bottom:" + window_bottom ) ; \n console.log( "floater top:" + floater_top ) ;\n console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;\n console.log( "floater height:" + floater_height ) ;\n console.log( "content bottom:" + content_bottom ) ;\n console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;\n */\n //if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {\n if( window_top + floater_height > content_bottom ) {\n //console.log( "limiting scrolldown" ) ;\n\t\t $(".floater").css("position", "absolute");\n var new_top = content_bottom - floater_height ;\n //console.log( "new top:" + new_top ) ;\n\t\t $(".floater").css("top", new_top );\n\t\t}\n else if( window_top > floater_top ) {\n\t\t $(".floater").css("position", "fixed");\n\t\t $(".floater").css("top", "0");\n\t\t}\n\n\t\telse if( window_top <= floater_top ) {\n\t\t $(".floater").css("position", "relative");\n\t\t $(".floater").css("top", $(".floaterspacer").offset);\n floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;\n\t\t}\n } ) ;\n } ) ;\n</script>\n\n\n</head>\r\n<body>\r\n\r\n<div id="hdrimg">\r\n<span class="validation">\r\n<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>\r\n<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>\r\n</span>\r\n<br/><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>\r\n<p>\n<br/><span class="left">Ceci n\'est pas une blog</span>\n<br/><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>\n<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->\n</p>\n\n<ul id="nav">\n <li><a href="http://hackermojo.com/" title="home" >home</a></li>\n <li><a href="/mt-static/archives/" title="blog" id="current" >archives</a></li>\n <li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>\n <li><a href="http://franxman.com/" title="contact">contact</a></li>\n <li><a href="/links/" title="links">links</a></li>\n</ul>\n\n<ul id="rnav">\r\n <li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == \'Search\' )this.value=\'\';" onchange="javascript:document.location=\'/search/\'+this.value;1;"/></li>\n</ul>\r\n</div>\t<!-- end of hdr img -->\r\n\r\n\n</div>\n\n\r\n<div class="watermark"></div>\n\n<div class="rowcontainer">\n\n <div class="halfcolumn">\n <h1>Public Storage Warning</h1>\n <p>\n<script type="text/javascript"><!--\ngoogle_ad_client = "pub-7995148183567273";\ngoogle_ad_width = 400; //728;\ngoogle_ad_height = 15;\ngoogle_ad_format = "728x15_0ads_al";\ngoogle_ad_channel = "";\n//-->\n</script>\n<script type="text/javascript"\n src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\n</script>\n</p>\n <p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>\n <p></p>\n <p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>\n\n<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>\n\n<p>A Knoxville, Tenn., woman told a \xc3\xa2\xe2\x82\xac\xc5\x936 On Your Side\xc3\xa2\xe2\x82\xac? TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>\n\n<p>The water apparently leaked from cracks in the pavement. The reporter\xc3\xa2\xe2\x82\xac\xe2\x84\xa2s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. \xc3\xa2\xe2\x82\xac\xc5\x93Store at your own risk,\xc3\xa2\xe2\x82\xac? the reporter advised viewers.</p>\n <p></p>\n \n <hr/>\n\n\n \n\n \n \n\n\n\n \n\n\n\n <h2 id="comments"><a name="comments">Comments</a></h2>\n \n\n\n\n <h2><a name="post">Post a comment</a></h2>\n\n \n\n<!-- ghf -->\n<script>\n/*\n * This is the function that actually highlights a text string by\n * adding HTML tags before and after all occurrences of the search\n * term. You can pass your own tags if you\'d like, or if the\n * highlightStartTag or highlightEndTag parameters are omitted or\n * are empty strings then the default <font> tags will be used.\n */\nfunction doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag) \n{\n // the highlightStartTag and highlightEndTag parameters are optional\n if ((!highlightStartTag) || (!highlightEndTag)) {\n highlightStartTag = "<font style=\'color:blue; background-color:yellow;\'>";\n highlightEndTag = "</font>";\n }\n \n // find all occurences of the search term in the given text,\n // and add some "highlight" tags to them (we\'re not using a\n // regular expression search, because we want to filter out\n // matches that occur within HTML tags and script blocks, so\n // we have to do a little extra validation)\n var newText = "";\n var i = -1;\n var lcSearchTerm = searchTerm.toLowerCase();\n var lcBodyText = bodyText.toLowerCase();\n \n while (bodyText.length > 0) {\n i = lcBodyText.indexOf(lcSearchTerm, i+1);\n if (i < 0) {\n newText += bodyText;\n bodyText = "";\n } else {\n // skip anything inside an HTML tag\n if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {\n // skip anything inside a <script> block\n if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {\n newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;\n bodyText = bodyText.substr(i + searchTerm.length);\n lcBodyText = bodyText.toLowerCase();\n i = -1;\n }\n }\n }\n }\n \n return newText;\n}\n\n\n/*\n * This is sort of a wrapper function to the doHighlight function.\n * It takes the searchText that you pass, optionally splits it into\n * separate words, and transforms the text on the current web page.\n * Only the "searchText" parameter is required; all other parameters\n * are optional and can be omitted.\n */\nfunction highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)\n{\n // if the treatAsPhrase parameter is true, then we should search for \n // the entire phrase that was entered; otherwise, we will split the\n // search string so that each word is searched for and highlighted\n // individually\nalert("marking " + searchText ) ;\n if (treatAsPhrase) {\n searchArray = [searchText];\n } else {\n searchArray = searchText.split(" ");\n }\n \n if (!document.body || typeof(document.body.innerHTML) == "undefined") {\n if (warnOnFailure) {\n alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");\n }\n return false;\n }\n \n var bodyText = document.body.innerHTML;\n for (var i = 0; i < searchArray.length; i++) {\n bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);\n }\n \n document.body.innerHTML = bodyText;\n return true;\n}\n\nfunction get_sel() {\nd=window.getSelection()+\'\';\nif( d.length ) { highlightSearchTerms( d, true, true, \'<b>\',\'</b>\' ); }\n}\n\n\n\n</script>\n<form action="/comments/postfree/" method="post">\n<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>\n<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>\n<p>\n<input type="hidden" name="options" value="ip" />\n<input type="hidden" name="target" value="17:195" />\n<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />\n<input type="submit" name="preview" value="Preview comment" />\n<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->\n</p>\n</form>\n\n\n <div class="contentbtm"></div>\n </div>\n\n <div class="halfcolumn">\n <div class="floaterspacer"></div>\n <div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3" >\n <table>\n <tr>\n <td>\n <p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What\'s the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben\'s first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( \'search_terms\' ) --></p>\n </td>\n <td>\n <script type="text/javascript"><!--\n google_ad_client = "pub-7995148183567273";\n google_ad_width = 200;\n google_ad_height = 200;\n google_ad_format = "200x200_as";\n google_ad_type = "image";\n google_ad_channel = "";\n //-->\n </script>\n <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>\n </td>\n </tr>\n </table>\n </div>\n <div class="floaterspacerbtm"></div>\n </div>\n</div>\r\n\n\n\n \n\n\n\r\n<div id="bttmbar">\n <span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />\r\n </span>\n <p>\n <br/>\n <!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->\n hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.\n powered by: <a href="http://djangoproject.com/">django</a>.\n written in: <a href="http://python.org/">python</a>.\n controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.\n <!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->\n monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.\n </p>\n <p>You\'ve been exposed to: {\'Life\': 1}</p>\n</div><!-- end of bttmbar -->\r\n\n\n<!-- stats -->\n\t<script type="text/javascript">\n\t\tvar gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");\n\t\tdocument.write(unescape("%3Cscript src=\'" + gaJsHost + "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));\n\t</script>\n\t<script type="text/javascript">\n\t\tvar pageTracker = _gat._getTracker("UA-4052584-1");\n\t\tpageTracker._initData();\n\t\tpageTracker._trackPageview();\n\t</script>\n<!-- /stats -->\n\n</body>\r\n</html>\n' |
orig_html | '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r\n\t"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r\n\n\n<html>\r\n<head>\r\n<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>\r\n<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />\n<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />\r\n<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\r\n<meta name="author" content="Glenn Franxman" />\r\n<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />\r\n<meta name="keywords" content="django mintcache hacker python knoxville" />\r\n<meta name="description" content="Glenn Franxman\'s thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />\r\n\n \n <link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />\n \n<script src="http://www.google.com/jsapi"></script>\n<script src="/media/js/jquery-1.2.6.min.js"></script>\n<script type="text/javascript">\n $(document).ready(function() {\n // I love you jquery\n var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;\n var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;\n $(window).scroll( function() { \n console.log( "scrolled" ) ; \n var window_top = $(window).scrollTop() ;\n var window_bottom = window_top + $(window).height() ;\n floater_top = $(".floaterspacer").offset({ scroll: false }).top ;\n var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;\n\n var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;\n /*\n console.log( "window top:" + window_top ) ; \n console.log( "window bottom:" + window_bottom ) ; \n console.log( "floater top:" + floater_top ) ;\n console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;\n console.log( "floater height:" + floater_height ) ;\n console.log( "content bottom:" + content_bottom ) ;\n console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;\n */\n //if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {\n if( window_top + floater_height > content_bottom ) {\n //console.log( "limiting scrolldown" ) ;\n\t\t $(".floater").css("position", "absolute");\n var new_top = content_bottom - floater_height ;\n //console.log( "new top:" + new_top ) ;\n\t\t $(".floater").css("top", new_top );\n\t\t}\n else if( window_top > floater_top ) {\n\t\t $(".floater").css("position", "fixed");\n\t\t $(".floater").css("top", "0");\n\t\t}\n\n\t\telse if( window_top <= floater_top ) {\n\t\t $(".floater").css("position", "relative");\n\t\t $(".floater").css("top", $(".floaterspacer").offset);\n floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;\n\t\t}\n } ) ;\n } ) ;\n</script>\n\n\n</head>\r\n<body>\r\n\r\n<div id="hdrimg">\r\n<span class="validation">\r\n<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>\r\n<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>\r\n</span>\r\n<br/><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>\r\n<p>\n<br/><span class="left">Ceci n\'est pas une blog</span>\n<br/><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>\n<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->\n</p>\n\n<ul id="nav">\n <li><a href="http://hackermojo.com/" title="home" >home</a></li>\n <li><a href="/mt-static/archives/" title="blog" id="current" >archives</a></li>\n <li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>\n <li><a href="http://franxman.com/" title="contact">contact</a></li>\n <li><a href="/links/" title="links">links</a></li>\n</ul>\n\n<ul id="rnav">\r\n <li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == \'Search\' )this.value=\'\';" onchange="javascript:document.location=\'/search/\'+this.value;1;"/></li>\n</ul>\r\n</div>\t<!-- end of hdr img -->\r\n\r\n\n</div>\n\n\r\n<div class="watermark"></div>\n\n<div class="rowcontainer">\n\n <div class="halfcolumn">\n <h1>Public Storage Warning</h1>\n <p>\n<script type="text/javascript"><!--\ngoogle_ad_client = "pub-7995148183567273";\ngoogle_ad_width = 400; //728;\ngoogle_ad_height = 15;\ngoogle_ad_format = "728x15_0ads_al";\ngoogle_ad_channel = "";\n//-->\n</script>\n<script type="text/javascript"\n src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\n</script>\n</p>\n <p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>\n <p></p>\n <p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>\n\n<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>\n\n<p>A Knoxville, Tenn., woman told a \xc3\xa2\xe2\x82\xac\xc5\x936 On Your Side\xc3\xa2\xe2\x82\xac? TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>\n\n<p>The water apparently leaked from cracks in the pavement. The reporter\xc3\xa2\xe2\x82\xac\xe2\x84\xa2s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. \xc3\xa2\xe2\x82\xac\xc5\x93Store at your own risk,\xc3\xa2\xe2\x82\xac? the reporter advised viewers.</p>\n <p></p>\n \n <hr/>\n\n\n \n\n \n \n\n\n\n \n\n\n\n <h2 id="comments"><a name="comments">Comments</a></h2>\n \n\n\n\n <h2><a name="post">Post a comment</a></h2>\n\n \n\n<!-- ghf -->\n<script>\n/*\n * This is the function that actually highlights a text string by\n * adding HTML tags before and after all occurrences of the search\n * term. You can pass your own tags if you\'d like, or if the\n * highlightStartTag or highlightEndTag parameters are omitted or\n * are empty strings then the default <font> tags will be used.\n */\nfunction doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag) \n{\n // the highlightStartTag and highlightEndTag parameters are optional\n if ((!highlightStartTag) || (!highlightEndTag)) {\n highlightStartTag = "<font style=\'color:blue; background-color:yellow;\'>";\n highlightEndTag = "</font>";\n }\n \n // find all occurences of the search term in the given text,\n // and add some "highlight" tags to them (we\'re not using a\n // regular expression search, because we want to filter out\n // matches that occur within HTML tags and script blocks, so\n // we have to do a little extra validation)\n var newText = "";\n var i = -1;\n var lcSearchTerm = searchTerm.toLowerCase();\n var lcBodyText = bodyText.toLowerCase();\n \n while (bodyText.length > 0) {\n i = lcBodyText.indexOf(lcSearchTerm, i+1);\n if (i < 0) {\n newText += bodyText;\n bodyText = "";\n } else {\n // skip anything inside an HTML tag\n if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {\n // skip anything inside a <script> block\n if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {\n newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;\n bodyText = bodyText.substr(i + searchTerm.length);\n lcBodyText = bodyText.toLowerCase();\n i = -1;\n }\n }\n }\n }\n \n return newText;\n}\n\n\n/*\n * This is sort of a wrapper function to the doHighlight function.\n * It takes the searchText that you pass, optionally splits it into\n * separate words, and transforms the text on the current web page.\n * Only the "searchText" parameter is required; all other parameters\n * are optional and can be omitted.\n */\nfunction highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)\n{\n // if the treatAsPhrase parameter is true, then we should search for \n // the entire phrase that was entered; otherwise, we will split the\n // search string so that each word is searched for and highlighted\n // individually\nalert("marking " + searchText ) ;\n if (treatAsPhrase) {\n searchArray = [searchText];\n } else {\n searchArray = searchText.split(" ");\n }\n \n if (!document.body || typeof(document.body.innerHTML) == "undefined") {\n if (warnOnFailure) {\n alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");\n }\n return false;\n }\n \n var bodyText = document.body.innerHTML;\n for (var i = 0; i < searchArray.length; i++) {\n bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);\n }\n \n document.body.innerHTML = bodyText;\n return true;\n}\n\nfunction get_sel() {\nd=window.getSelection()+\'\';\nif( d.length ) { highlightSearchTerms( d, true, true, \'<b>\',\'</b>\' ); }\n}\n\n\n\n</script>\n<form action="/comments/postfree/" method="post">\n<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>\n<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>\n<p>\n<input type="hidden" name="options" value="ip" />\n<input type="hidden" name="target" value="17:195" />\n<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />\n<input type="submit" name="preview" value="Preview comment" />\n<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->\n</p>\n</form>\n\n\n <div class="contentbtm"></div>\n </div>\n\n <div class="halfcolumn">\n <div class="floaterspacer"></div>\n <div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3" >\n <table>\n <tr>\n <td>\n <p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What\'s the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben\'s first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( \'search_terms\' ) --></p>\n </td>\n <td>\n <script type="text/javascript"><!--\n google_ad_client = "pub-7995148183567273";\n google_ad_width = 200;\n google_ad_height = 200;\n google_ad_format = "200x200_as";\n google_ad_type = "image";\n google_ad_channel = "";\n //-->\n </script>\n <script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>\n </td>\n </tr>\n </table>\n </div>\n <div class="floaterspacerbtm"></div>\n </div>\n</div>\r\n\n\n\n \n\n\n\r\n<div id="bttmbar">\n <span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />\r\n </span>\n <p>\n <br/>\n <!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->\n hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.\n powered by: <a href="http://djangoproject.com/">django</a>.\n written in: <a href="http://python.org/">python</a>.\n controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.\n <!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->\n monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.\n </p>\n <p>You\'ve been exposed to: {\'Life\': 1}</p>\n</div><!-- end of bttmbar -->\r\n\n\n<!-- stats -->\n\t<script type="text/javascript">\n\t\tvar gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");\n\t\tdocument.write(unescape("%3Cscript src=\'" + gaJsHost + "google-analytics.com/ga.js\' type=\'text/javascript\'%3E%3C/script%3E"));\n\t</script>\n\t<script type="text/javascript">\n\t\tvar pageTracker = _gat._getTracker("UA-4052584-1");\n\t\tpageTracker._initData();\n\t\tpageTracker._trackPageview();\n\t</script>\n<!-- /stats -->\n\n</body>\r\n</html>\n' |
soup | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>
<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />
<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Glenn Franxman" />
<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />
<meta name="keywords" content="django mintcache hacker python knoxville" />
<meta name="description" content="Glenn Franxman's thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />
<link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />
<script src="http://www.google.com/jsapi"></script>
<script src="/media/js/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// I love you jquery
var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
$(window).scroll( function() {
console.log( "scrolled" ) ;
var window_top = $(window).scrollTop() ;
var window_bottom = window_top + $(window).height() ;
floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;
var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;
/*
console.log( "window top:" + window_top ) ;
console.log( "window bottom:" + window_bottom ) ;
console.log( "floater top:" + floater_top ) ;
console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;
console.log( "floater height:" + floater_height ) ;
console.log( "content bottom:" + content_bottom ) ;
console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;
*/
//if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {
if( window_top + floater_height > content_bottom ) {
//console.log( "limiting scrolldown" ) ;
$(".floater").css("position", "absolute");
var new_top = content_bottom - floater_height ;
//console.log( "new top:" + new_top ) ;
$(".floater").css("top", new_top );
}
else if( window_top > floater_top ) {
$(".floater").css("position", "fixed");
$(".floater").css("top", "0");
}
else if( window_top <= floater_top ) {
$(".floater").css("position", "relative");
$(".floater").css("top", $(".floaterspacer").offset);
floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
}
} ) ;
} ) ;
</script>
</head>
<body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body>
</html>
|
/internet/toolkit/python/BeautifulSoup.py
in __unicode__
Variable | Value |
---|---|
self | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>
<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />
<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Glenn Franxman" />
<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />
<meta name="keywords" content="django mintcache hacker python knoxville" />
<meta name="description" content="Glenn Franxman's thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />
<link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />
<script src="http://www.google.com/jsapi"></script>
<script src="/media/js/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// I love you jquery
var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
$(window).scroll( function() {
console.log( "scrolled" ) ;
var window_top = $(window).scrollTop() ;
var window_bottom = window_top + $(window).height() ;
floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;
var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;
/*
console.log( "window top:" + window_top ) ;
console.log( "window bottom:" + window_bottom ) ;
console.log( "floater top:" + floater_top ) ;
console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;
console.log( "floater height:" + floater_height ) ;
console.log( "content bottom:" + content_bottom ) ;
console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;
*/
//if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {
if( window_top + floater_height > content_bottom ) {
//console.log( "limiting scrolldown" ) ;
$(".floater").css("position", "absolute");
var new_top = content_bottom - floater_height ;
//console.log( "new top:" + new_top ) ;
$(".floater").css("top", new_top );
}
else if( window_top > floater_top ) {
$(".floater").css("position", "fixed");
$(".floater").css("top", "0");
}
else if( window_top <= floater_top ) {
$(".floater").css("position", "relative");
$(".floater").css("top", $(".floaterspacer").offset);
floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
}
} ) ;
} ) ;
</script>
</head>
<body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body>
</html>
|
/internet/toolkit/python/BeautifulSoup.py
in __str__
Variable | Value |
---|---|
attrs | [] |
close | '' |
closeTag | '</[document]>' |
indentIncrement | None |
needUnicode | 1 |
self | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>
<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />
<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Glenn Franxman" />
<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />
<meta name="keywords" content="django mintcache hacker python knoxville" />
<meta name="description" content="Glenn Franxman's thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />
<link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />
<script src="http://www.google.com/jsapi"></script>
<script src="/media/js/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// I love you jquery
var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
$(window).scroll( function() {
console.log( "scrolled" ) ;
var window_top = $(window).scrollTop() ;
var window_bottom = window_top + $(window).height() ;
floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;
var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;
/*
console.log( "window top:" + window_top ) ;
console.log( "window bottom:" + window_bottom ) ;
console.log( "floater top:" + floater_top ) ;
console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;
console.log( "floater height:" + floater_height ) ;
console.log( "content bottom:" + content_bottom ) ;
console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;
*/
//if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {
if( window_top + floater_height > content_bottom ) {
//console.log( "limiting scrolldown" ) ;
$(".floater").css("position", "absolute");
var new_top = content_bottom - floater_height ;
//console.log( "new top:" + new_top ) ;
$(".floater").css("top", new_top );
}
else if( window_top > floater_top ) {
$(".floater").css("position", "fixed");
$(".floater").css("top", "0");
}
else if( window_top <= floater_top ) {
$(".floater").css("position", "relative");
$(".floater").css("top", $(".floaterspacer").offset);
floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
}
} ) ;
} ) ;
</script>
</head>
<body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body>
</html>
|
showStructureIndent | None |
/internet/toolkit/python/BeautifulSoup.py
in renderContents
Variable | Value |
---|---|
c | <html>
<head>
<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>
<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />
<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Glenn Franxman" />
<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />
<meta name="keywords" content="django mintcache hacker python knoxville" />
<meta name="description" content="Glenn Franxman's thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />
<link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />
<script src="http://www.google.com/jsapi"></script>
<script src="/media/js/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// I love you jquery
var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
$(window).scroll( function() {
console.log( "scrolled" ) ;
var window_top = $(window).scrollTop() ;
var window_bottom = window_top + $(window).height() ;
floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;
var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;
/*
console.log( "window top:" + window_top ) ;
console.log( "window bottom:" + window_bottom ) ;
console.log( "floater top:" + floater_top ) ;
console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;
console.log( "floater height:" + floater_height ) ;
console.log( "content bottom:" + content_bottom ) ;
console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;
*/
//if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {
if( window_top + floater_height > content_bottom ) {
//console.log( "limiting scrolldown" ) ;
$(".floater").css("position", "absolute");
var new_top = content_bottom - floater_height ;
//console.log( "new top:" + new_top ) ;
$(".floater").css("top", new_top );
}
else if( window_top > floater_top ) {
$(".floater").css("position", "fixed");
$(".floater").css("top", "0");
}
else if( window_top <= floater_top ) {
$(".floater").css("position", "relative");
$(".floater").css("top", $(".floaterspacer").offset);
floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
}
} ) ;
} ) ;
</script>
</head>
<body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body>
</html> |
needUnicode | 1 |
s | [u'<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"\r\n\t"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">\r\n\n\n'] |
self | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html>
<head>
<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>
<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />
<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Glenn Franxman" />
<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />
<meta name="keywords" content="django mintcache hacker python knoxville" />
<meta name="description" content="Glenn Franxman's thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />
<link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />
<script src="http://www.google.com/jsapi"></script>
<script src="/media/js/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// I love you jquery
var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
$(window).scroll( function() {
console.log( "scrolled" ) ;
var window_top = $(window).scrollTop() ;
var window_bottom = window_top + $(window).height() ;
floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;
var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;
/*
console.log( "window top:" + window_top ) ;
console.log( "window bottom:" + window_bottom ) ;
console.log( "floater top:" + floater_top ) ;
console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;
console.log( "floater height:" + floater_height ) ;
console.log( "content bottom:" + content_bottom ) ;
console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;
*/
//if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {
if( window_top + floater_height > content_bottom ) {
//console.log( "limiting scrolldown" ) ;
$(".floater").css("position", "absolute");
var new_top = content_bottom - floater_height ;
//console.log( "new top:" + new_top ) ;
$(".floater").css("top", new_top );
}
else if( window_top > floater_top ) {
$(".floater").css("position", "fixed");
$(".floater").css("top", "0");
}
else if( window_top <= floater_top ) {
$(".floater").css("position", "relative");
$(".floater").css("top", $(".floaterspacer").offset);
floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
}
} ) ;
} ) ;
</script>
</head>
<body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body>
</html>
|
showStructureIndent | None |
text | None |
/internet/toolkit/python/BeautifulSoup.py
in __str__
Variable | Value |
---|---|
attrs | [] |
close | '' |
closeTag | '</html>' |
indentIncrement | None |
needUnicode | 1 |
self | <html>
<head>
<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>
<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />
<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Glenn Franxman" />
<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />
<meta name="keywords" content="django mintcache hacker python knoxville" />
<meta name="description" content="Glenn Franxman's thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />
<link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />
<script src="http://www.google.com/jsapi"></script>
<script src="/media/js/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// I love you jquery
var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
$(window).scroll( function() {
console.log( "scrolled" ) ;
var window_top = $(window).scrollTop() ;
var window_bottom = window_top + $(window).height() ;
floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;
var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;
/*
console.log( "window top:" + window_top ) ;
console.log( "window bottom:" + window_bottom ) ;
console.log( "floater top:" + floater_top ) ;
console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;
console.log( "floater height:" + floater_height ) ;
console.log( "content bottom:" + content_bottom ) ;
console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;
*/
//if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {
if( window_top + floater_height > content_bottom ) {
//console.log( "limiting scrolldown" ) ;
$(".floater").css("position", "absolute");
var new_top = content_bottom - floater_height ;
//console.log( "new top:" + new_top ) ;
$(".floater").css("top", new_top );
}
else if( window_top > floater_top ) {
$(".floater").css("position", "fixed");
$(".floater").css("top", "0");
}
else if( window_top <= floater_top ) {
$(".floater").css("position", "relative");
$(".floater").css("top", $(".floaterspacer").offset);
floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
}
} ) ;
} ) ;
</script>
</head>
<body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body>
</html> |
showStructureIndent | None |
/internet/toolkit/python/BeautifulSoup.py
in renderContents
Variable | Value |
---|---|
c | <body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body> |
needUnicode | 1 |
s | [u'\n',
u'<head>\n<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>\n<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />\n<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />\n<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />\n<meta name="author" content="Glenn Franxman" />\n<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />\n<meta name="keywords" content="django mintcache hacker python knoxville" />\n<meta name="description" content="Glenn Franxman\'s thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />\n<link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />\n<script src="http://www.google.com/jsapi"></script>\n<script src="/media/js/jquery-1.2.6.min.js"></script>\n<script type="text/javascript">\n $(document).ready(function() {\n // I love you jquery\n var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;\n var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;\n $(window).scroll( function() { \n console.log( "scrolled" ) ; \n var window_top = $(window).scrollTop() ;\n var window_bottom = window_top + $(window).height() ;\n floater_top = $(".floaterspacer").offset({ scroll: false }).top ;\n var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;\n\n var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;\n /*\n console.log( "window top:" + window_top ) ; \n console.log( "window bottom:" + window_bottom ) ; \n console.log( "floater top:" + floater_top ) ;\n console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;\n console.log( "floater height:" + floater_height ) ;\n console.log( "content bottom:" + content_bottom ) ;\n console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;\n */\n //if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {\n if( window_top + floater_height > content_bottom ) {\n //console.log( "limiting scrolldown" ) ;\n\t\t $(".floater").css("position", "absolute");\n var new_top = content_bottom - floater_height ;\n //console.log( "new top:" + new_top ) ;\n\t\t $(".floater").css("top", new_top );\n\t\t}\n else if( window_top > floater_top ) {\n\t\t $(".floater").css("position", "fixed");\n\t\t $(".floater").css("top", "0");\n\t\t}\n\n\t\telse if( window_top <= floater_top ) {\n\t\t $(".floater").css("position", "relative");\n\t\t $(".floater").css("top", $(".floaterspacer").offset);\n floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;\n\t\t}\n } ) ;\n } ) ;\n</script>\n</head>',
u'\n'] |
self | <html>
<head>
<title> Public Storage Warning by Glenn Franxman at HackerMojo.com</title>
<link rel="alternate" type="application/rss+xml" title="RSS" href="/mt-static/index.rdf" />
<link rel="stylesheet" type="text/css" href="/media/fluidity.css" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="author" content="Glenn Franxman" />
<meta name="copyright" content="Copyright (c) GFranxman 2003,2004,2005,2006,2007,2008" />
<meta name="keywords" content="django mintcache hacker python knoxville" />
<meta name="description" content="Glenn Franxman's thoughts and experiments on django, python, technology, family and life from Knoxville, TN" />
<link rel="alternate" type="application/rss+xml" title="Entry RSS" href="/mt-static/story_comments/public-storage.rdf" />
<script src="http://www.google.com/jsapi"></script>
<script src="/media/js/jquery-1.2.6.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
// I love you jquery
var floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
$(window).scroll( function() {
console.log( "scrolled" ) ;
var window_top = $(window).scrollTop() ;
var window_bottom = window_top + $(window).height() ;
floater_top = $(".floaterspacer").offset({ scroll: false }).top ;
var content_bottom = $(".contentbtm").offset({ scroll: false }).top ;
var window_minus_contentbtm = window_top + $(window).height() - content_bottom ;
/*
console.log( "window top:" + window_top ) ;
console.log( "window bottom:" + window_bottom ) ;
console.log( "floater top:" + floater_top ) ;
console.log( "floater bottom:" + $(".floaterspacerbtm").offset({ scroll: false }).top ) ;
console.log( "floater height:" + floater_height ) ;
console.log( "content bottom:" + content_bottom ) ;
console.log( "window_minus_contentbtm:" + window_minus_contentbtm ) ;
*/
//if( window_minus_contentbtm > $(".floaterspacerbtm").offset({ scroll: false }).top ) {
if( window_top + floater_height > content_bottom ) {
//console.log( "limiting scrolldown" ) ;
$(".floater").css("position", "absolute");
var new_top = content_bottom - floater_height ;
//console.log( "new top:" + new_top ) ;
$(".floater").css("top", new_top );
}
else if( window_top > floater_top ) {
$(".floater").css("position", "fixed");
$(".floater").css("top", "0");
}
else if( window_top <= floater_top ) {
$(".floater").css("position", "relative");
$(".floater").css("top", $(".floaterspacer").offset);
floater_height = $(".floaterspacerbtm").offset({ scroll: false }).top-floater_top ;
}
} ) ;
} ) ;
</script>
</head>
<body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body>
</html> |
showStructureIndent | None |
text | None |
/internet/toolkit/python/BeautifulSoup.py
in __str__
Variable | Value |
---|---|
attrs | [] |
close | '' |
closeTag | '</body>' |
indentIncrement | None |
needUnicode | 1 |
self | <body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body> |
showStructureIndent | None |
/internet/toolkit/python/BeautifulSoup.py
in renderContents
Variable | Value |
---|---|
c | <div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div> |
needUnicode | 1 |
s | [u'\n',
u'<div id="hdrimg">\n<span class="validation">\n<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>\n<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>\n</span>\n<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>\n<p>\n<br /><span class="left">Ceci n\'est pas une blog</span>\n<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>\n<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->\n</p>\n<ul id="nav">\n<li><a href="http://hackermojo.com/" title="home">home</a></li>\n<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>\n<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>\n<li><a href="http://franxman.com/" title="contact">contact</a></li>\n<li><a href="/links/" title="links">links</a></li>\n</ul>\n<ul id="rnav">\n<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == \'Search\' )this.value=\'\';" onchange="javascript:document.location=\'/search/\'+this.value;1;" /></li>\n</ul>\n</div>',
u'\t<!-- end of hdr img -->\r\n\r\n\n',
u'\n',
u'<div class="watermark"></div>',
u'\n'] |
self | <body>
<div id="hdrimg">
<span class="validation">
<a href="http://jigsaw.w3.org/css-validator/check/referer"><img src="/media/images/fluidcss.gif" alt="validate the css" /></a>
<a href="http://validator.w3.org/check?uri=referer"><img src="/media/images/fluidxhtml1.1.gif" alt="validate the xhtml" /></a>
</span>
<br /><h1><a href="/"><strong>HackerMoJo</strong>.com</a></h1>
<p>
<br /><span class="left">Ceci n'est pas une blog</span>
<br /><span class="right">by <a href="http://franxman.com/">Glenn Franxman</a>, Django Developer / Stunt Programmer.</span>
<br /><!-- % load twittertags %"<a href="http://twitter.com/glenn1you0">% last_tweet glenn1you0 % Wassup?</a>" -->
</p>
<ul id="nav">
<li><a href="http://hackermojo.com/" title="home">home</a></li>
<li><a href="/mt-static/archives/" title="blog" id="current">archives</a></li>
<li><a href="#http://franxman.com" title="about" onclick="showSlidingAd()">about</a></li>
<li><a href="http://franxman.com/" title="contact">contact</a></li>
<li><a href="/links/" title="links">links</a></li>
</ul>
<ul id="rnav">
<li><input type="text" id="search" name="search" value="Search" size="10" onfocus="javascript:if( this.value == 'Search' )this.value='';" onchange="javascript:document.location='/search/'+this.value;1;" /></li>
</ul>
</div> <!-- end of hdr img -->
<div class="watermark"></div>
<div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div>
<div id="bttmbar">
<span id="copyright">Copyright © 2003,2004,2005,2006,2007,2008 GFranxman. All Rights Reserved<br />
</span>
<p>
<br />
<!-- design: <a href="http://www.davereederdesign.com/">davereederdesign.com</a>. -->
hosting: <a href="https://manage.slicehost.com/customers/new?referrer=88269359">slicehost.com</a>.
powered by: <a href="http://djangoproject.com/">django</a>.
written in: <a href="http://python.org/">python</a>.
controlled by: <a href="http://bazaar-vcs.org/">bzr</a>.
<!-- managed by: <a href="http://www.sixapart.com/movabletype/">MovableType</a>. -->
monsters by: <a href="http://www.splitbrain.org/go/monsterid">monsterID</a>.
</p>
<p>You've been exposed to: {'Life': 1}</p>
</div><!-- end of bttmbar -->
<!-- stats -->
<script type="text/javascript">
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
var pageTracker = _gat._getTracker("UA-4052584-1");
pageTracker._initData();
pageTracker._trackPageview();
</script>
<!-- /stats -->
</body> |
showStructureIndent | None |
text | None |
/internet/toolkit/python/BeautifulSoup.py
in __str__
Variable | Value |
---|---|
attrs | ['class="rowcontainer"'] |
close | '' |
closeTag | '</div>' |
indentIncrement | None |
key | 'class' |
needUnicode | 1 |
self | <div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div> |
showStructureIndent | None |
val | 'rowcontainer' |
/internet/toolkit/python/BeautifulSoup.py
in renderContents
Variable | Value |
---|---|
c | <div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div> |
needUnicode | 1 |
s | [u'\n'] |
self | <div class="rowcontainer">
<div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div>
<div class="halfcolumn">
<div class="floaterspacer"></div>
<div class="floater" id="floater_1" _style="position:absolute;top:200px;;z-index:3">
<table>
<tr>
<td>
<p></p><p>Based upon your reading habits, might I recommend: <ul><li><a href="/mt-static/archives/2008/11/diy-castle-bed.html">What's the best possible bed for a boy?</a></li> <li><a href="/mt-static/archives/2006/12/will-it-ben.html">Will it Ben?</a></li> <li><a href="/mt-static/archives/2007/07/the-pixies-and-tivo.html">The Pixies and Tivo</a></li></ul></p> <p>Or, you might like: <ul><li><a href="/mt-static/archives/2008/05/books-from-my-childhood.html">Books from my childhood</a></li> <li><a href="/mt-static/archives/2005/01/bens-first-week.html">Ben's first week</a></li> <li><a href="/mt-static/archives/2006/03/rota-virus.html">Rota virus</a></li></ul></p> <!-- error searching for none ( 'search_terms' ) -->
</td>
<td>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 200;
google_ad_height = 200;
google_ad_format = "200x200_as";
google_ad_type = "image";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"></script>
</td>
</tr>
</table>
</div>
<div class="floaterspacerbtm"></div>
</div>
</div> |
showStructureIndent | None |
text | None |
/internet/toolkit/python/BeautifulSoup.py
in __str__
Variable | Value |
---|---|
attrs | ['class="halfcolumn"'] |
close | '' |
closeTag | '</div>' |
indentIncrement | None |
key | 'class' |
needUnicode | 1 |
self | <div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div> |
showStructureIndent | None |
val | 'halfcolumn' |
/internet/toolkit/python/BeautifulSoup.py
in renderContents
Variable | Value |
---|---|
c | <p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p> |
needUnicode | 1 |
s | [u'\n',
u'<h1>Public Storage Warning</h1>',
u'\n',
u'<p>\n<script type="text/javascript"><!--\ngoogle_ad_client = "pub-7995148183567273";\ngoogle_ad_width = 400; //728;\ngoogle_ad_height = 15;\ngoogle_ad_format = "728x15_0ads_al";\ngoogle_ad_channel = "";\n//-->\n</script>\n<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">\n</script>\n</p>',
u'\n',
u'<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>',
u'\n',
u'<p></p>',
u'\n',
u'<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>',
u'\n',
u'<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>',
u'\n'] |
self | <div class="halfcolumn">
<h1>Public Storage Warning</h1>
<p>
<script type="text/javascript"><!--
google_ad_client = "pub-7995148183567273";
google_ad_width = 400; //728;
google_ad_height = 15;
google_ad_format = "728x15_0ads_al";
google_ad_channel = "";
//-->
</script>
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</p>
<p><small>posted: 2005-07-10 12:12:57 <a href="/mt-static/archives/2005/07/public-storage.html">perma-link</a>, <a href="/mt-static/story_comments/public-storage.rdf">RSS comments feed</a></small></p>
<p></p>
<p><a title="Inside Self-Storage Magazine: Media Monitor" href="http://www.insideselfstorage.com/articles/571media.html">Inside Self-Storage Magazine: Media Monitor</a></p>
<p>TV Viewers Warned of Mold in Storage Units<br />From WATE.com, 4.13.05</p>
<p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p>
<p>The water apparently leaked from cracks in the pavement. The reporter’s camera showed mud infested with squirming larvae and boxes stuck to the floor with mold. The manager said the facility bears no responsible for water, theft, fire or vandalism damage and renters must get their own insurance as well as alert management to leaks. “Store at your own risk,� the reporter advised viewers.</p>
<p></p>
<hr />
<h2 id="comments"><a name="comments">Comments</a></h2>
<h2><a name="post">Post a comment</a></h2>
<!-- ghf -->
<script>
/*
* This is the function that actually highlights a text string by
* adding HTML tags before and after all occurrences of the search
* term. You can pass your own tags if you'd like, or if the
* highlightStartTag or highlightEndTag parameters are omitted or
* are empty strings then the default <font> tags will be used.
*/
function doHighlight(bodyText, searchTerm, highlightStartTag, highlightEndTag)
{
// the highlightStartTag and highlightEndTag parameters are optional
if ((!highlightStartTag) || (!highlightEndTag)) {
highlightStartTag = "<font style='color:blue; background-color:yellow;'>";
highlightEndTag = "</font>";
}
// find all occurences of the search term in the given text,
// and add some "highlight" tags to them (we're not using a
// regular expression search, because we want to filter out
// matches that occur within HTML tags and script blocks, so
// we have to do a little extra validation)
var newText = "";
var i = -1;
var lcSearchTerm = searchTerm.toLowerCase();
var lcBodyText = bodyText.toLowerCase();
while (bodyText.length > 0) {
i = lcBodyText.indexOf(lcSearchTerm, i+1);
if (i < 0) {
newText += bodyText;
bodyText = "";
} else {
// skip anything inside an HTML tag
if (bodyText.lastIndexOf(">", i) >= bodyText.lastIndexOf("<", i)) {
// skip anything inside a <script> block
if (lcBodyText.lastIndexOf("/script>", i) >= lcBodyText.lastIndexOf("<" + "script", i)) {
newText += bodyText.substring(0, i) + highlightStartTag + bodyText.substr(i, searchTerm.length) + highlightEndTag;
bodyText = bodyText.substr(i + searchTerm.length);
lcBodyText = bodyText.toLowerCase();
i = -1;
}
}
}
}
return newText;
}
/*
* This is sort of a wrapper function to the doHighlight function.
* It takes the searchText that you pass, optionally splits it into
* separate words, and transforms the text on the current web page.
* Only the "searchText" parameter is required; all other parameters
* are optional and can be omitted.
*/
function highlightSearchTerms(searchText, treatAsPhrase, warnOnFailure, highlightStartTag, highlightEndTag)
{
// if the treatAsPhrase parameter is true, then we should search for
// the entire phrase that was entered; otherwise, we will split the
// search string so that each word is searched for and highlighted
// individually
alert("marking " + searchText ) ;
if (treatAsPhrase) {
searchArray = [searchText];
} else {
searchArray = searchText.split(" ");
}
if (!document.body || typeof(document.body.innerHTML) == "undefined") {
if (warnOnFailure) {
alert("Sorry, for some reason the text of this page is unavailable. Searching will not work.");
}
return false;
}
var bodyText = document.body.innerHTML;
for (var i = 0; i < searchArray.length; i++) {
bodyText = doHighlight(bodyText, searchArray[i], highlightStartTag, highlightEndTag);
}
document.body.innerHTML = bodyText;
return true;
}
function get_sel() {
d=window.getSelection()+'';
if( d.length ) { highlightSearchTerms( d, true, true, '<b>','</b>' ); }
}
</script>
<form action="/comments/postfree/" method="post">
<p><label for="id_person_name">Your name:</label> <input type="text" id="id_person_name" name="person_name" /></p>
<p><label for="id_comment">Comment:</label><br /><textarea name="comment" id="id_comment" rows="10" cols="60"></textarea></p>
<p>
<input type="hidden" name="options" value="ip" />
<input type="hidden" name="target" value="17:195" />
<input type="hidden" name="gonzo" value="303c2a81ee7e9c1cf99c6922c32f3ed9" />
<input type="submit" name="preview" value="Preview comment" />
<!-- <p onMouseDown="get_sel();">Annotate selected text</p> -->
</p>
</form>
<div class="contentbtm"></div>
</div> |
showStructureIndent | None |
text | None |
/internet/toolkit/python/BeautifulSoup.py
in __str__
Variable | Value |
---|---|
attrs | [] |
close | '' |
closeTag | '</p>' |
indentIncrement | None |
needUnicode | 1 |
self | <p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p> |
showStructureIndent | None |
/internet/toolkit/python/BeautifulSoup.py
in renderContents
Variable | Value |
---|---|
c | 'A Knoxville, Tenn., woman told a \xc3\xa2\xe2‚\xac\xc5“6 On Your Side\xc3\xa2\xe2‚\xac? TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.' |
needUnicode | 1 |
s | [] |
self | <p>A Knoxville, Tenn., woman told a “6 On Your Side� TV reporter about losing treasured possessions she stored at Cedar Bluff/Middlebrook Mini Warehouse due to water damage. The woman, who rented the space in 2004, recently noticed a musty smell. At the back of the unit, she discovered water leaking through a cinder-block wall that appeared to be mended with white glue.</p> |
showStructureIndent | None |
text | None |
Traceback (most recent call last):
|
No GET data
No POST data
No cookie data
Variable | Value |
---|---|
CONTENT_LENGTH | '0' |
DOCUMENT_ROOT | '/internet/hosts/www.hackermojo.com/html' |
HTTP_ACCEPT | '*/*' |
HTTP_HOST | 'hackermojo.com' |
HTTP_USER_AGENT | 'claudebot' |
PATH_INFO | '/mt-static/archives/2005/07/public-storage.html' |
QUERY_STRING | '' |
REMOTE_ADDR | '35.175.174.36' |
REMOTE_PORT | '45082' |
REQUEST_METHOD | 'GET' |
REQUEST_URI | '/mt-static/archives/2005/07/public-storage.html' |
SCGI | '1' |
SCRIPT_NAME | '' |
SCRIPT_URI | 'http://hackermojo.com/mt-static/archives/2005/07/public-storage.html' |
SCRIPT_URL | '/mt-static/archives/2005/07/public-storage.html' |
SERVER_ADDR | '208.78.103.181' |
SERVER_ADMIN | '[no address given]' |
SERVER_NAME | 'hackermojo.com' |
SERVER_PORT | '80' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'Apache/2.2.14 (Ubuntu)' |
wsgi.errors | <open file '<stderr>', mode 'w' at 0x7f9895923210> |
wsgi.input | <cStringIO.StringO object at 0x7f9895933328> |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | (('Glenn Franxman', 'gfranxman@gmail.com'),) |
ADMIN_FOR | () |
ADMIN_MEDIA_PREFIX | '/admin_media/' |
AKISMET_API_KEY | 'cf9a924f00a9' |
ALLOWED_INCLUDE_ROOTS | () |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ('django.contrib.auth.backends.ModelBackend',) |
BANNED_IPS | () |
CACHE_BACKEND | 'file:///var/tmp/django/hackermojo' |
CACHE_MIDDLEWARE_KEY_PREFIX | '' |
COMMENTS_ALLOW_PROFANITIES | False |
COMMENTS_BANNED_USERS_GROUP | None |
COMMENTS_FIRST_FEW | 0 |
COMMENTS_MODERATORS_GROUP | None |
COMMENTS_SKETCHY_USERS_GROUP | None |
DATABASE_ENGINE | 'mysql' |
DATABASE_HOST | '' |
DATABASE_NAME | 'movable_type' |
DATABASE_OPTIONS | {} |
DATABASE_PASSWORD | '********************' |
DATABASE_PORT | '' |
DATABASE_USER | 'mt' |
DATETIME_FORMAT | 'N j, Y, P' |
DATE_FORMAT | 'N j, Y' |
DEBUG | True |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_CONTENT_TYPE | 'text/html' |
DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
DISALLOWED_USER_AGENTS | () |
EMAIL_HOST | 'localhost' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | '' |
EMAIL_PORT | 25 |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_USE_TLS | False |
FIXTURE_DIRS | () |
IGNORABLE_404_ENDS | ('mail.pl', 'mailform.pl', 'mail.cgi', 'mailform.cgi', 'favicon.ico', '.php') |
IGNORABLE_404_STARTS | ('/cgi-bin/', '/_vti_bin', '/_vti_inf') |
INSTALLED_APPS | ['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.admin',
'apps.categories',
'apps.blog',
'apps.utils',
'apps.muchonada',
'apps.abtesting',
'django.contrib.comments'] |
INTERNAL_IPS | () |
JING_PATH | '/usr/bin/jing' |
LANGUAGES | (('ar', 'Arabic'),
('bn', 'Bengali'),
('bg', 'Bulgarian'),
('ca', 'Catalan'),
('cs', 'Czech'),
('cy', 'Welsh'),
('da', 'Danish'),
('de', 'German'),
('el', 'Greek'),
('en', 'English'),
('es', 'Spanish'),
('es_AR', 'Argentinean Spanish'),
('fi', 'Finnish'),
('fr', 'French'),
('gl', 'Galician'),
('hu', 'Hungarian'),
('he', 'Hebrew'),
('is', 'Icelandic'),
('it', 'Italian'),
('ja', 'Japanese'),
('ko', 'Korean'),
('kn', 'Kannada'),
('lv', 'Latvian'),
('mk', 'Macedonian'),
('nl', 'Dutch'),
('no', 'Norwegian'),
('pl', 'Polish'),
('pt', 'Portugese'),
('pt-br', 'Brazilian'),
('ro', 'Romanian'),
('ru', 'Russian'),
('sk', 'Slovak'),
('sl', 'Slovenian'),
('sr', 'Serbian'),
('sv', 'Swedish'),
('ta', 'Tamil'),
('te', 'Telugu'),
('tr', 'Turkish'),
('uk', 'Ukrainian'),
('zh-cn', 'Simplified Chinese'),
('zh-tw', 'Traditional Chinese')) |
LANGUAGES_BIDI | ('he', 'ar') |
LANGUAGE_CODE | 'en-us' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_URL | '/accounts/logout/' |
MANAGERS | (('Glenn Franxman', 'gfranxman@gmail.com'),) |
MEDIA_ROOT | '' |
MEDIA_URL | '' |
MIDDLEWARE_CLASSES | ('qr.middleware.QRCodeMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware',
'apps.abtesting.middleware.ABTestResultsMiddleware') |
MONTH_DAY_FORMAT | 'F j' |
PREPEND_WWW | False |
PROFANITIES_LIST | '********************' |
ROOT_URLCONF | 'urls' |
SECRET_KEY | '********************' |
SEND_BROKEN_LINK_EMAILS | False |
SERVER_EMAIL | 'root@localhost' |
SESSION_COOKIE_AGE | 31536000 |
SESSION_COOKIE_DOMAIN | '.hackermojo.com' |
SESSION_COOKIE_NAME | 'sessionid' |
SESSION_COOKIE_SECURE | False |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_SAVE_EVERY_REQUEST | False |
SETTINGS_MODULE | 'settings' |
SITE_ID | 1 |
TEMPLATE_CONTEXT_PROCESSORS | ('django.core.context_processors.auth',
'django.core.context_processors.debug',
'django.core.context_processors.i18n',
'django.core.context_processors.request') |
TEMPLATE_DEBUG | True |
TEMPLATE_DIRS | ('/internet/hosts/www.hackermojo.com/hm/templates/',
'/internet/hosts/www.hackermojo.com/hm/templates/fluidity') |
TEMPLATE_LOADERS | ('django.template.loaders.filesystem.load_template_source',
'django.template.loaders.app_directories.load_template_source') |
TEMPLATE_STRING_IF_INVALID | '' |
TEST_DATABASE_NAME | None |
TEST_RUNNER | 'django.test.simple.run_tests' |
TIME_FORMAT | 'P' |
TIME_ZONE | 'America/Kentucky/Louisville' |
TRANSACTIONS_MANAGED | False |
URL_VALIDATOR_USER_AGENT | 'Django/0.96pre (http://www.djangoproject.com)' |
USE_ETAGS | False |
USE_I18N | True |
YEAR_MONTH_FORMAT | 'F Y' |
You're seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard 500 page.