Skip to content

Instantly share code, notes, and snippets.

@romuald
Last active April 14, 2016 12:11
Show Gist options
  • Save romuald/6a9601bf04ffd79c4436e06ff3423721 to your computer and use it in GitHub Desktop.
Save romuald/6a9601bf04ffd79c4436e06ff3423721 to your computer and use it in GitHub Desktop.
Add some color to quotes in pipermail archives
// ==UserScript==
// @name Pipermail color!
// @namespace http://chivil.com/
// @version 0.1
// @description Colorize quoted text in pipermail
// @author Romuald Brunet
// @match http://*/pipermail/*.html
// @match https://*/pipermail/*.html
// @grant none
// ==/UserScript==
/* jshint -W097 */
'use strict';
function main(){
var colors = ['green', 'blue', 'orange', 'red'];
if (! document.querySelectorAll) { return; }
var elements = document.querySelectorAll('pre > i'),
l = elements.length;
for (var i =0; i < l; i++) {
var element = elements[i];
var prev = element.previousSibling;
var content = prev.textContent;
var match = /(>+)$/.exec(content);
if (!match) { return; }
var len = match[1].length;
var index = len - 1;
var parent = element.parentNode;
var color = colors[index % colors.length];
// Previous "paragraph", up to > (not colored)
var part1 = prev.cloneNode();
part1.textContent = content.substring(0, content.length - len);
// The ">" part (colored)
var part2 = document.createElement("span");
part2.textContent = match[1];
part2.setAttribute('style', "color: " + color);
parent.replaceChild(part2, prev);
parent.insertBefore(part1, part2);
element.setAttribute('style', "color: " + color);
}
}
main();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment