Úkol #3719
uzavřenýDlouhodobý úkol #3274: Informační systémy (aplikace)
Dlouhodobý úkol #3277: Jekyll weby
Úkol #3382: Webařský tým - celostátní web
Konverzní skript článků doku => markdown
90%
Popis
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