// DumbQuotes // version 0.4 BETA! // 2005-05-02 // Copyright (c) 2005, Mark Pilgrim // Released under the GPL license // http://www.gnu.org/copyleft/gpl.html // // -------------------------------------------------------------------- // // This is a Greasemonkey user script. To install it, you need // Greasemonkey 0.3 or later: http://greasemonkey.mozdev.org/ // Then restart Firefox and revisit this script. // Under Tools, there will be a new menu item to "Install User Script". // Accept the default configuration and install. // // To uninstall, go to Tools/Manage User Scripts, // select "DumbQuotes", and click Uninstall. // // -------------------------------------------------------------------- // // ==UserScript== // @name DumbQuotes // @namespace http://diveintomark.org/projects/greasemonkey/ // @description straighten curly quotes and apostrophes, simplify fancy dashes, etc. // @include * // ==/UserScript== // // -------------------------------------------------------------------- // // This script is dedicated to Cory Doctorow, who will know why. // var replacements, regex, key, textnodes, node, s; replacements = { "ass": "***", "asshole": "*******", "bitch": "*****", "bullshit": "********", "cocksucker": "**********", "cunt": "****", "damn": "****", "fuck": "****", "fucking": "*******", "fucker": "******", "piss": "****", "shit": "****", "shitty": "******", "tits": "****"}; regex = {}; for (key in replacements) { regex[key] = new RegExp("\\b" + key + "\\b", 'gi'); } textnodes = document.evaluate( "//text()", document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null); for (var i = 0; i < textnodes.snapshotLength; i++) { node = textnodes.snapshotItem(i); s = node.data; for (key in replacements) { s = s.replace(regex[key], replacements[key]); } node.data = s; } // // ChangeLog // 2005-05-02 - 0.4 - MAP - remove anon function wrapper, require GM 0.3 // 2005-04-21 - 0.3 - MAP - linted // 2005-04-18 - 0.2 - MAP - tidy code //