Ú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
Aktualizováno uživatelem Ondřej Profant před asi 8 roky(ů)
- Přiřazeno nastaven na Michal Ketner
- Popis aktualizován (rozdíl)
Aktualizováno uživatelem Michal Ketner před asi 8 roky(ů)
- Typ práce nastaven na Programování
- Stav změněn z Nový na Čeká se na řešitele
- Kategorie nastaven na Wiki
Už se tomu věnuju Krtka skript na překlad mi nejel tak jsemto zas udělal takhle
#!/usr/bin/env bash
article_dir="articles"
function download_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 rename() {
cd articles
ls | while read soubor; do
mv $soubor "${soubor}.txt"
done
cd ..
}
function convert_articles() {
cd articles
ls | while read soubor; do
sed -i 's/~~NOTOC~~//g' "$soubor";
sed -i 's/~~READMORE~~//g' "$soubor";
sed -i 's/===== BOX:related =====//g' "$soubor";
done
convert_bin="../DokuWiki-to-Markdown-Converter/convert.php";
echo $convert_bin
php "${convert_bin}" "${clanky}";
# 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;
rename;
convert_articles;
Je potřeba ještě vyřešit odkazy na soubory a nezvládá to některé vnořené seznamy a občas další řádek.
Aktualizováno uživatelem Ondřej Profant před asi 8 roky(ů)
Chtěl jsem doimplementovat stahování obrázků, ale v bashy už mě to opravdu štvalo. Nakonec jsem to celé napsal v pythonu 3. Myslím, že nám to dává výrazně větší flexibilitu:
https://github.com/pirati-cz/docuscraper/blob/master/docuscraper/__main__.py
Co je potřeba dodělat:
- Export, zatím to jen data stáhne. Takže je třeba udělat funkci, která články v md s metadaty hodí do složky a do další složky hodí obrázky.
- článek má v návzu datum a webalize nazev
- metadata jsou v úvodní bloku odděle
---
- úvodní obrázek je v metadatech jen jako název
- Report, při běhu to vypisuje chyby konverteru. Bylo by dobré je někde přehledně mít. Ať se s nimi dá pracovat. Popř. ať se dají předat administrativní síle, která dané články ručně opraví
- obrázky uprostřed textu nebudou mít perzistetní url
- Testování, code review (je to první verze)
- imho jsem neimplementoval řádek 31
Aktualizováno uživatelem Ondřej Profant před více než 7 roky(ů)
- Stav změněn z Čeká se na řešitele na Dokončen