Další skoro hotový článek z kategorie MTG mě přiměl konečně pořešit to linkování karet. Nejdřív jsem hledal nějakou databázi obrázků, abych na ně mohl automaticky odkazovat jenom v nějakém tvaru www.databaze-karet.com/Jméno karty, ovšem nic takového jsem nenašel... 

Chvíle googlení mi přinesla plugin do Wordpressu, který toto řeší automaticky, a tak jsem se rozhodl si ho stáhnout a trochu prozkoumat. Čímž jsem se dostal na stránku http://deckbox.org/, jejíž JavaScriptový plugin automaticky převede veškeré odkazy na jejich stránku v náhledový obrázek. Krásné a jednoduché. Stačilo už jenom napsat pár řádků JavaScriptu, které mi převedou plain text do odkazů a měl jsem hotovo.

Akorát dám tabulce třídu, rozparsuji podle řádků a vše, co je na daném řádku za číslem převedu na odkaz. Tím se psaní článků nádherně zjednoduší, a tak budu moci konečně rozšířit svůj blog o pár dalších článků na téma Magic: the Gathering. Pro zajímavost uvádím jednoduché parsování buněk tabulky na odkaz. Za čtvrt hodinky hotové a do budoucna ušetřena hromada času.

if($('table.deck').size()){
	$('table.deck').each(function(){
		$(this).find('td').each(function(){
			var html = $(this).html();
				html = str_replace('<br>', '\n', html);
				html = html.split('\n');
			
			var output = '';
			for(i=0; i<html.length;i++){
				var data = html[i];
					data = trim(str_replace('&nbsp;',' ',html[i]));
				var card = data.replace(/^([0-9]+) (.*)/, '$2');
				var numb = data.replace(/^([0-9]+) (.*)/, '$1');
				
				if(parseInt(numb)){
					output+= numb+' <a target="_blank" href="http://deckbox.org/mtg/'+card+'">'+card+'</a>\n';
				}else{
					output+= html[i]+'\n';
				}
			}
output = str_replace('\n','<br>', output); $(this).html(output); }); }); }

Funkce str_replace je ze stránek phpjs.org, kde jsou dostupné JavaScriptové ekvivalenty spousty PHP funkcí. Ukázka používá knihovnu jQuery.