<?xml version="1.0" encoding="utf-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htmlxmlns="http://www.w3.org/1999/xhtml"xml:lang="en"lang="en"><head><metahttp-equiv="Content-Type"content="text/html; charset=utf-8"/><metaname="generator"content="Docutils 0.9.1: http://docutils.sourceforge.net/"/><title>Eric's bits of code</title><style type="text/css">/*:Author: David Goodger (goodger@python.org):Id: $Id: html4css1.css 7434 2012-05-11 21:06:27Z milde $:Copyright: This stylesheet has been placed in the public domain.Default cascading style sheet for the HTML output of Docutils.See http://docutils.sf.net/docs/howto/html-stylesheets.html for how tocustomize this style sheet.*//* used to remove borders from tables and images */.borderless,table.borderlesstd,table.borderlessth{border:0}table.borderlesstd,table.borderlessth{/* Override padding for "table.docutils td" with "! important". The right padding separates the table cells. */padding:00.5em00!important}.first{/* Override more specific margin styles with "! important". */margin-top:0!important}.last,.with-subtitle{margin-bottom:0!important}.hidden{display:none}a.toc-backref{text-decoration:none;color:black}blockquote.epigraph{margin:2em5em;}dl.docutilsdd{margin-bottom:0.5em}object[type="image/svg+xml"],object[type="application/x-shockwave-flash"]{overflow:hidden;}/* Uncomment (and remove this text!) to get bold-faced definition list termsdl.docutils dt { font-weight: bold }*/div.abstract{margin:2em5em}div.abstractp.topic-title{font-weight:bold;text-align:center}div.admonition,div.attention,div.caution,div.danger,div.error,div.hint,div.important,div.note,div.tip,div.warning{margin:2em;border:mediumoutset;padding:1em}div.admonitionp.admonition-title,div.hintp.admonition-title,div.importantp.admonition-title,div.notep.admonition-title,div.tipp.admonition-title{font-weight:bold;font-family:sans-serif}div.attentionp.admonition-title,div.cautionp.admonition-title,div.dangerp.admonition-title,div.errorp.admonition-title,div.warningp.admonition-title{color:red;font-weight:bold;font-family:sans-serif}/* Uncomment (and remove this text!) to get reduced vertical space in compound paragraphs.div.compound .compound-first, div.compound .compound-middle { margin-bottom: 0.5em }div.compound .compound-last, div.compound .compound-middle { margin-top: 0.5em }*/div.dedication{margin:2em5em;text-align:center;font-style:italic}div.dedicationp.topic-title{font-weight:bold;font-style:normal}div.figure{margin-left:2em;margin-right:2em}div.footer,div.header{clear:both;font-size:smaller}div.line-block{display:block;margin-top:1em;margin-bottom:1em}div.line-blockdiv.line-block{margin-top:0;margin-bottom:0;margin-left:1.5em}div.sidebar{margin:000.5em1em;border:mediumoutset;padding:1em;background-color:#ffffee;width:40%;float:right;clear:right}div.sidebarp.rubric{font-family:sans-serif;font-size:medium}div.system-messages{margin:5em}div.system-messagesh1{color:red}div.system-message{border:mediumoutset;padding:1em}div.system-messagep.system-message-title{color:red;font-weight:bold}div.topic{margin:2em}h1.section-subtitle,h2.section-subtitle,h3.section-subtitle,h4.section-subtitle,h5.section-subtitle,h6.section-subtitle{margin-top:0.4em}h1.title{text-align:center}h2.subtitle{text-align:center}hr.docutils{width:75%}img.align-left,.figure.align-left,object.align-left{clear:left;float:left;margin-right:1em}img.align-right,.figure.align-right,object.align-right{clear:right;float:right;margin-left:1em}img.align-center,.figure.align-center,object.align-center{display:block;margin-left:auto;margin-right:auto;}.align-left{text-align:left}.align-center{clear:both;text-align:center}.align-right{text-align:right}/* reset inner alignment in figures */div.align-right{text-align:inherit}/* div.align-center * { *//* text-align: left } */ol.simple,ul.simple{margin-bottom:1em}ol.arabic{list-style:decimal}ol.loweralpha{list-style:lower-alpha}ol.upperalpha{list-style:upper-alpha}ol.lowerroman{list-style:lower-roman}ol.upperroman{list-style:upper-roman}p.attribution{text-align:right;margin-left:50%}p.caption{font-style:italic}p.credits{font-style:italic;font-size:smaller}p.label{white-space:nowrap}p.rubric{font-weight:bold;font-size:larger;color:maroon;text-align:center}p.sidebar-title{font-family:sans-serif;font-weight:bold;font-size:larger}p.sidebar-subtitle{font-family:sans-serif;font-weight:bold}p.topic-title{font-weight:bold}pre.address{margin-bottom:0;margin-top:0;font:inherit}pre.literal-block,pre.doctest-block,pre.math,pre.code{margin-left:2em;margin-right:2em}pre.code.ln{/* line numbers */color:grey;}.code{background-color:#eeeeee}span.classifier{font-family:sans-serif;font-style:oblique}span.classifier-delimiter{font-family:sans-serif;font-weight:bold}span.interpreted{font-family:sans-serif}span.option{white-space:nowrap}span.pre{white-space:pre}span.problematic{color:red}span.section-subtitle{/* font-size relative to parent (h1..h6 element) */font-size:80%}table.citation{border-left:solid1pxgray;margin-left:1px}table.docinfo{margin:2em4em}table.docutils{margin-top:0.5em;margin-bottom:0.5em}table.footnote{border-left:solid1pxblack;margin-left:1px}table.docutilstd,table.docutilsth,table.docinfotd,table.docinfoth{padding-left:0.5em;padding-right:0.5em;vertical-align:top}table.docutilsth.field-name,table.docinfoth.docinfo-name{font-weight:bold;text-align:left;white-space:nowrap;padding-left:0}h1tt.docutils,h2tt.docutils,h3tt.docutils,h4tt.docutils,h5tt.docutils,h6tt.docutils{font-size:100%}ul.auto-toc{list-style-type:none}</style></head><body><divclass="document"id="ericfromcanada-bitbucket-org"><h1class="title">ericfromcanada.bitbucket.org</h1><p>Various pieces of code I've written, in case someone else finds them useful.</p><p><aclass="reference external"href="https://bitbucket.org/EricFromCanada/ericfromcanada.bitbucket.org/src/">Browse all files</a></p><divclass="section"id="applescript"><h1>AppleScript</h1><dlclass="docutils"><dt><aclass="reference external"href="https://bitbucket.org/EricFromCanada/ericfromcanada.bitbucket.org/raw/default/applescript/close%20Safari%20Web%20Inspector.applescript">close Safari Web Inspector script</a></dt><dd>Before Safari 6, the Web Inspector shortcut would only open it. Attach
this AppleScript to another shortcut to make it closeable.</dd></dl></div><divclass="section"id="bash"><h1>bash</h1><dlclass="docutils"><dt><aclass="reference external"href="https://bitbucket.org/EricFromCanada/ericfromcanada.bitbucket.org/raw/default/bash/keyputter.sh">keyputter.sh</a></dt><dd>Handy if you have a bunch of servers you need to install your SSH key onto and
don't have ssh-copy-id.</dd><dt><aclass="reference external"href="https://bitbucket.org/EricFromCanada/ericfromcanada.bitbucket.org/raw/default/bash/svn-user-htdigest.sh">svn-user-htdigest.sh</a></dt><dd>Use this to generate an htdigest file of users from an svnserve passwd file.
Useful if you have a Trac installation using HTTPAuth and you need to grant
your SVN users access.</dd></dl></div><divclass="section"id="bbedit"><h1>BBEdit</h1><dlclass="docutils"><dt><aclass="reference external"href="https://bitbucket.org/EricFromCanada/ericfromcanada.bitbucket.org/raw/default/bbedit/reStructuredText.plist">reST codeless language module</a></dt><dd><pclass="first">Language module for BBEdit and TextWrangler which highlights elements
in reStructuredText files and lists section titles in the function pop-up
menu. Recognizes both standard reST directives and Sphinx additions.</p><pclass="last">I recommend also setting these options for editing reStructuredText: enabling
auto-indent and auto-expand tabs, setting tab width to 3 spaces, disabling
soft wrap text, and setting the page guide to 80 characters.</p></dd></dl></div><divclass="section"id="javascript"><h1>JavaScript</h1><dlclass="docutils"><dt><aclass="reference external"href="https://bitbucket.org/EricFromCanada/ericfromcanada.bitbucket.org/raw/default/javascript/touch-menus-plus.js">touch-menus-plus.js</a></dt><dd><pclass="first">Makes navigation links with drop-down menus usable on iOS by only enabling
the link if its submenu is visible. This is only required if JavaScript is
used to hide and show submenus, since iOS accounts for CSS-based menus by
preventing a <ttclass="docutils literal">:hover</tt> region's links from activating until any divs it'll
reveal are displayed.</p><pclass="last"><aclass="reference external"href="http://www.treefrog.ca/">See it in action</a></p></dd><dt><aclass="reference external"href="https://github.com/isagalaev/highlight.js">Lasso lexer for highlight.js</a></dt><dd>Contributed a lexer for the Lasso programming language for <aclass="reference external"href="http://softwaremaniacs.org/soft/highlight/en/">highlight.js</a>, a
JS-based syntax highlighter. Expect to see it in the next release.</dd></dl></div><divclass="section"id="lasso"><h1>Lasso</h1><dlclass="docutils"><dt><aclass="reference external"href="https://bitbucket.org/EricFromCanada/ericfromcanada.bitbucket.org/raw/default/lasso/sphinxifier.lasso">sphinxifier.lasso</a></dt><dd>Script for generating API documentation for Sphinx directly from Lasso code.
(Mostly a proof-of-concept at this point.)</dd></dl></div><divclass="section"id="python"><h1>Python</h1><dlclass="docutils"><dt><aclass="reference external"href="https://bitbucket.org/EricFromCanada/ericfromcanada.bitbucket.org/raw/default/python/restview/">restview (improved)</a></dt><dd>My branch of the excellent <aclass="reference external"href="http://mg.pov.lt/restview/">restview</a>, a tool for previewing reST documents
in a web browser, with some improvements I made to the CSS, syntax highlighting,
and request handling components.</dd><dt><aclass="reference external"href="https://bitbucket.org/EricFromCanada/pygments-main">Lasso lexer for Pygments</a></dt><dd>Contributed a lexer for the Lasso programming language for the <aclass="reference external"href="http://pygments.org/">Pygments</a>syntax highlighter. It's included in Pygments 1.6.</dd></dl><p>Find me on <aclass="reference external"href="https://twitter.com/EricFromCanada">Twitter</a>.</p></div></div></body></html>