Eine kleine Hilfe für alle Leser der c’t, welche einfach(er) einige Artikel archivieren wollen: Das verlinkte Script unten sortiert das Inhaltsverzeichnis im Archiv nach Seitenzahl wenn man auf “aktuell” klickt.
// ==UserScript== | |
// @name c't Inhaltsverzeichnis sortieren | |
// @namespace http://www.pdark.de/ | |
// @version 1.0 | |
// @description Sortiert das Inhaltsverzeichnis der c't nach Seitenzahl, wenn man auf "aktuell" klickt | |
// @match https://www.heise.de/artikel-archiv/ct/* | |
// @copyright 2014+, Aaron Digulla | |
// @grant unsafeWindow | |
// ==/UserScript== | |
var $ = unsafeWindow.jQuery; | |
var jQuery = unsafeWindow.jQuery; | |
var console = unsafeWindow.console; | |
function sortBySeitenzahl() { | |
var rows = $('td.seitenzahl').parent(); | |
var bySeitenzahl = function(a,b) { | |
var keyA = $('td.seitenzahl', a).text(); | |
var keyB = $('td.seitenzahl', b).text(); | |
return parseInt(keyA) – parseInt(keyB); | |
} | |
rows.sort(bySeitenzahl); | |
var table = $($(rows[0]).parents('table')[0]); | |
$.each(rows, function (index, row) { table.append(row); }); | |
} | |
function setup() { | |
var rows = $('td.seitenzahl').parent(); | |
var table = $($(rows[0]).parents('table')[0]); | |
var th = $($('th', table)[0]); | |
// Ein Mal sortieren, wenn auf den Kopf der Tabelle geklickt wird | |
th.one('click', sortBySeitenzahl); | |
// Aktuelle Zeile in der Tabelle besser hervorheben | |
table.addClass('toc'); | |
$('<style>').attr('style', 'text/css').text('.toc tr:hover { background-color: #ffff99 }').appendTo($('head')); | |
// Deutlich machen, wie man das Script aktiviert | |
th.css({'color': 'blue', 'text-decoration': 'underline', 'cursor': 's-resize'}); | |
} | |
setup(); | |
console.log('Auf "aktuell" klicken, um das Inhaltsverzeichnis zu sortieren'); |