Úkol #3719
Aktualizováno uživatelem Ondřej Profant před asi 8 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