// ==UserScript== // @id heise.de-8280af0b-4f9b-487e-95b3-45fff377348e // @name heise.de Easy Reading // @name:de heise.de Easy Reading // @version 1.2.5 // @namespace // @author SpineEyE // @description Makes reading heise news a little more comfortable // @description:de Macht heise lesen etwas angenehmer // @include http://www.heise.de/* // @run-at document-idle // @grant GM_addStyle // @downloadURL none // ==/UserScript== // heise.de Cleaner user script // Copyright 2011-2015, SpineEyE // Released under the GPL license // http://www.gnu.org/copyleft/gpl.html // // ----------------------------------------------------------------------------- // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by // the Free Software Foundation; either version 2 of the License, or // (at your option) any later version. // // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // // You should have received a copy of the GNU General Public License // along with this program. If not, see . // // changelog // v1.2.5 - 12.02.2015: Fix: lead image anti popup // v1.2.4 - 18.12.2014: Clicking the article's lead image ("aufmacherbild") will redirect to full size image instead of heise's container page for it (only some pictures are actually inserted downsized). // v1.2.3 - 18.12.2014: Fix: Links at the top werent clickable // v1.2.2 - 14.10.2014: Compatibility fix for Greasemonkey // v1.2.1 - 22.03.2014: Fixed meldung_wrapper text content to have // the new style as well // v1.2 - 01.03.2014: Now uses GM_addStyle to change article style. // Text in
 tags is readable in whole width
// v1.1.1 - 16.11.2013: fixed h2-link-construction 
//

(function () { // function wrapper for Opera
//console.log("starting");

// change font

if (document.getElementsByClassName('meldung_wrapper').length > 0) {
	GM_addStyle(
		'.meldung_wrapper, .meldung_wrapper p, .meldung_wrapper h5 {' +
			'font-family: Georgia,"Times New Roman",serif;' +
			'line-height: 155%;' +
			'padding: 0.5em 0;' +
			'font-size: 1em !important;' +
			'letter-spacing: 0.2px;' +
		'}'
	);
}

if (document.getElementsByClassName('artikel_content').length > 0) {
	GM_addStyle(
		'.artikel_content article p {' +
			'font-family: Georgia,"Times New Roman",serif;' +
			'line-height: 155%;' +
			'padding: 0.5em 0;' +
			'font-size: 1em !important;' +
			'letter-spacing: 0.2px;' +
		'}'
	);
}

/* remove top margin */

document.getElementById("container_content").style.top = 0;
document.getElementById("container").removeChild(document.getElementById("bannerzone"));

/* fix to make text in 
 tags visible over the whole width */

GM_addStyle(
	'pre {' +
		'position: relative;' +
		'z-index: 1;' +
		'background-color: #FFFFFF;' +
	'}' +
	'pre:hover {' +
		'display: table-caption;' +
		'margin-top: 0' +
	'}'
);
/* prevent image popups, rather insert normal hyperlink 
	bild_links, bild_rechts
 **/
var inlineImages = document.evaluate('//span[starts-with(@class,"bild_")]', document, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null),
	i, span, img, a, bigImageURL;
for(i = 0; i < inlineImages.snapshotLength; i++) {
console.log("Snapshot item " + i);
	span = inlineImages.snapshotItem(i);
	img = span.children[0];
	
	a = document.createElement('a');
	bigImageURL = img.getAttribute('data-zoom-src');
	if (!bigImageURL) continue;
	a.href = bigImageURL;
	
	// cloning a node removes all event listeners, so the popup as well
	a.appendChild(img.cloneNode(false));
	
	span.insertBefore(a, img);
	span.removeChild(img);
}

/* link to full size picture for aufmacherbild */

var aAufmacher   = document.getElementsByClassName("aufmacherbild")[0].children[0];
var imgAufmacher = aAufmacher.children[0];

a = document.createElement('a');

// class for the zoom overlay image in the bottom right corner
a.setAttribute('class', 'image_zoom');
// console.log(imgAufmacher.src.replace(/\/scale.*?\/imgs\//i, "/imgs/"));
a.href = imgAufmacher.src.replace(/\/scale.*?\/imgs\//i, "/imgs/");

// cloning a node removes all event listeners, so the popup as well
a.appendChild(imgAufmacher.cloneNode(false));

document.getElementsByClassName("aufmacherbild")[0].insertBefore(a, aAufmacher)
document.getElementsByClassName("aufmacherbild")[0].removeChild(aAufmacher);

	
})(); // function wrapper for Opera