Greasemonkey script for quotations and line-height

// May 28th, 2010 // Code

It’s been bothering me for such a long time that so many sites have forgotten/ignored to set their line-height which makes their sites unreadable. After some googling I found an excellent typography script by Josefec.

It didn’t include line-height to paragraphs and, god forbid, div’s (text should be in p tags, not div tags!). Here is my modified version of it.

function getElementsByClass(tag,theClass) {
  var allTags = document.getElementsByTagName(tag);
  var classArray = [];
  for(var k=0;k"/g,">");
  tag = tag.replace(/\n"/g,"\n“");
  tag = tag.replace(/([^ >\n])"/g,"$1”");
  tag = tag.replace(/"/g,"“");
 
  if (tag.search(/'/)==0) {tag = tag.replace(/'/,'‘'); }
 
  tag = tag.replace(/='([^']*)'/g,"=\\$1\\");
  tag = tag.replace(/ '/g,' ‘');
  tag = tag.replace(/'s/g,'’s');
  tag = tag.replace(/' /g,'’ ');
  tag = tag.replace(/\('/g,'(‘');
  tag = tag.replace(/>'/g,'>‘');
  tag = tag.replace(/\n'/g,'\n‘');
  tag = tag.replace(/([^ >\n])'/g,'$1’');
  tag = tag.replace(/=\\([^\\]*)\\/g,"='$1'");
 
  for (l=0;tag.search(/=×([^×§]*)§([^×§]*)§([^×]*)×/)!=-1;l++) {
    tag = tag.replace(/=×([^×§]*)§([^×§]*)§([^×]*)×/g,"=×$1'$2'$3×");
  }
  for (m=0;tag.search(/=×([^×]*)×/)!=-1;m++) {
    tag = tag.replace(/=×([^×]*)×/g,"=\"$1\"");
  }
  tags[i].innerHTML = tag;
  }
}
 
function set_line_height(tags) {
  for(var i=0; i < tags.length; i++) {
    tags[i].style.lineHeight = '1.5em';
  }
}
 
var title = document.getElementsByTagName('title');
var ps = document.getElementsByTagName('p');
var lis = document.getElementsByTagName('li');
var dls = document.getElementsByTagName('dl');
var h1s = document.getElementsByTagName('h1');
var h2s = document.getElementsByTagName('h2');
var h3s = document.getElementsByTagName('h3');
var as = document.getElementsByTagName('a');
var spans = document.getElementsByTagName('span');
var divs = document.getElementsByTagName('div');
var tds = document.getElementsByTagName('td');
var is = document.getElementsByTagName('i');
var blockquotes = document.getElementsByTagName('blockquote');
var tdsMboxText = getElementsByClass('td','mbox-text');
var dablink = getElementsByClass('div','dablink');
 
repair(title);
repair(ps);
repair(lis);
repair(dls);
repair(h1s);
repair(h2s);
repair(h3s);
repair(as);
repair(spans);
repair(tds);
repair(is);
repair(blockquotes);
repair(tdsMboxText);
repair(dablink);
 
set_line_height(ps);
set_line_height(divs);

Install and enjoy.

Comments are closed.