bytespeicher markdown cleanup
by mkzero
HTML
<textarea id="content">
Hallo Welt! In den Bytespeicher Notizen veröffentlichen wir regelmäßig Themen, die uns auf Treffen und in den verschiedenen Kommunikationskanälen in den zurückliegenden Wochen beschäftigt haben (Schlagworte und Links). Und hier ist die aktuelle Ausgabe, gültig für die 53. bzw. 1. Kalenderwoche des Jahres 2015/2016.
Wir hoffen ihr seid alle gut ins neue Jahr gerutscht. "Zwischen den Jahren" ist die Nachrichtenlage hauptsächlich vom 32C3 geprägt.
<!--more-->
## [Veranstaltungen der vergangenen Woche]
* <a href="https://pad.technikkultur-erfurt.de/p/foodhacking">Foodhacking Di-Mi</a>
* <a href="https://technikkultur-erfurt.de/bytespeicher:veranstaltungen:32c3">Congress Everywhere</a> (32C3) Mo-Mi
* Test
http://pad.technikkultur-erfurt.de/p/test
* Test2
http://bytespeicher.org/test
* http://www.test.de
* http://www.test2.de
* Test3
http://www.test3.de
## [Veranstaltungen der kommenden Woche]
## [32C3]
* Intel x86 considered harmful
http://blog.invisiblethings.org/2015/10/27/x86_harmful.html
* State considered harmful
http://blog.invisiblethings.org/2015/12/23/state_harmful.html
* rad1o++
https://media.ccc.de/v/32c3-7153-rad1o
* Beyond your cable modem
https://media.ccc.de/v/32c3-7133-beyond_your_cable_modem
## [BLOG]
## [WIKI]
## [IRC]
* Freiwurst steht für freie Wurst in der realen Welt
https://www.freiwurst.net/
* info-beamer - Rapid Anzeigetafeln Development
https://info-beamer.com/opensource
* Weltraumtheorie
https://de.wiktionary.org/wiki/Weltraumtheorie
* Brewing up a coffeemaker payment system with ATmega328
http://blog.atmel.com/2014/12/28/brewing-up-a-coffeemaker-payment-system-with-atmega328/
* 3D TSA "Travel Sentry" master keys
https://github.com/Xyl2k/TSA-Travel-Sentry-master-keys
## [HANGOUTS]
## [MAILINGLISTE]
## [TWITTER]
https://twitter.com/Chaos_99/status/681768525623595008
https://twitter.com/a_ka_es/status/682132908149223424
https://twitter.com/ahzf/status/682026255261241344
##...
JavaScript
var i = 0, j = 0,
lines = document.getElementById('content').innerHTML.split('\n'),
newdoc = [],
match = /(?:(http|ftp)(s|):\/\/)([a-z-.]+[a-z]+)/,
link = /(href="|>)((http|ftp)(s|):\/\/)([a-z-.]+[a-z]+)/,
excludeHosts = ['twitter.com'],
fullLinkHosts = ['technikkultur-erfurt.de', 'bytespeicher.org'],
hostname, content = '';
function fixAsterisk(c) {
if (c.indexOf('>* ') > -1) {
c = '* ' + c.replace('>* ', '>');
}
return c;
}
for (i = 0; i <= lines.length; i+=1) {
if (match.test(lines[i]) && !link.test(lines[i]) && !(new RegExp(excludeHosts.join("|")).test(lines[i]))) {
if (match.test(lines[i-1]) && !link.test(lines[i-1])) {
newdoc[j] = fixAsterisk('<a href="' + lines[i] + '">' + lines[i] + '</a>');
j += 1;
} else if (!(new RegExp(fullLinkHosts.join('|')).test(lines[i]))) {
hostname = match.exec(lines[i]);
hostname = hostname[hostname.length - 1];
newdoc[j-1] = lines[i-1].trimRight() + ' (<a href=' + lines[i] + '>' + hostname + '</a>)';
} else {
newdoc[j-1] = fixAsterisk('<a href=' + lines[i] + '>' + lines[i-1] + '</a>');
}
} else {
newdoc[j] = lines[i];
j += 1;
}
}
document.getElementById('newcontent').innerHTML = newdoc.join('\n');