Projekt

Obecné

Profil

Úkol #3719

Aktualizováno uživatelem Ondřej Profant před více než 7 roky(ů)

Připravit automatické konvertování článků z daného namespace dokuwiki do markdownu včetně metadat v YAML. Čili konverzi obsahu dokuwiki do jekyll webu. 

 Problém je, že současné konvertory si neporadí s pluginy, které v dokuwiki máme, čili je bude třeba dodatečné customizace. Také je důležité stáhnout všechny zdroje (obrázky) a zkontrolovat platnost linků. 

 Skript je požadován v Pythonu / BASHy 

 Pro zkoušku lze konvertovat staré články z Prahy a přidat je na praha.pirati.cz 

 S Krtkovou pomocí jsem se dostal v bashi ke skriptu (v komentáři je popsáno, co je třeba dodělat): 

 ``` 
 #!/usr/bin/env bash 

 article_dir="articles" 

 function dowload_articles() { 
	 ns="regiony:praha:tiskove-zpravy" 
	 # 1. curl downloads rss feed of given namespace 
	 # 2. grep raw links to articles 
	 # 3. first sed replace start of tag and replace usual link to the export link 
	 # 4. second sed replace end of tag 
	 # 5. wget download every argument (article) 
	 cd articles 
	 wget $(curl "https://www.pirati.cz/feed.php?mode=list&linkto=current&ns=${ns}" | grep item\ rdf:about | sed 's@      <item rdf:about="https://www.pirati.cz/@https://www.pirati.cz/_export/raw/@' | sed 's@">$@@') 
	 cd - 
 } 

 function convert_articles() { 
	 clanky="${article_dir}/*"; 
	 convert_bin="DokuWiki-to-Markdown-Converter/convert.php"; 
	 php "${convert_bin}" "${clanky}"; 
	 sed    -i 's/~~READMORE~~//g' "${article_dir}/*.md"; 
	 sed    -i 's/~~NOTOC~~//g'      "${article_dir}/*.md"; 
	 # Obrázky ve formátu:  
	 # {{den_tripodu.jpg?380 }} 
	 # {{<nazev>.jpg?<number>}} 

	 # Zbudou věci typu ~~readmore~~ 	
 } 

 mkdir -p "${article_dir}/"; 
 rm -rf "${article_dir}/*"; 
 download_articles; 
 convert_articles; 
 ``` 

 A samotný konvertor: https://github.com/ludoza/DokuWiki-to-Markdown-Converter.git TODO: příklady

Zpět