rendered paste body// 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
//