commit c6390aa10b37c005a1f57006fbc381b4f8a45ce4 Author: Pauline Emily Date: Mon Oct 2 02:32:21 2017 +0200 Initial repo diff --git a/mediawiki2ency.sh b/mediawiki2ency.sh new file mode 100755 index 0000000..5d6b4a2 --- /dev/null +++ b/mediawiki2ency.sh @@ -0,0 +1,58 @@ +#! /bin/sh +# Konwertuje artykuły z Micropedii i SclaviniaWiki na format +# Encyklopedii Wandejskiej. +# Copyright © 2017 Paulina Laura Emilia +# +# This program is free software. It comes without any warranty, to +# the extent permitted by applicable law. You can redistribute it +# and/or modify it under the terms of the Do What The Fuck You Want +# To Public License, Version 2, as published by Sam Hocevar. See +# http://www.wtfpl.net/ for more details. + +show_usage=0 +source= + +# Sprawdź czy pandoc jest zainstalowany. +if ! pandoc --version > /dev/null 2>&1; then + printf '%s: %s\n' "$0" 'Nie zainstalowano narzędzia pandoc.' >&2 + exit 1 +fi + +# Jeżeli zadeklarowano źródło inne niż Micropedia. +case $1 in +--*) + source=${1#--} + shift +esac + +# Sprawdź czy podano wszystkie parametry. +if [ -z "$1" ]; then + printf '%s: %s\n' "$0" 'Musisz podać nazwę pliku źródłowego.' >&2 + show_usage=1 +fi + +if [ -z "$2" ]; then + printf '%s: %s\n' "$0" 'Musisz podać tytuł strony źródłowej.' >&2 + show_usage=1 +fi + +if [ $show_usage -eq 1 ]; then + printf 'Użycie: %s [--sclavinia] nazwa_pliku tytuł_strony\n' "$0" >&2 + exit 1 +fi + +# Skonwertuj plik wejściowy ze znaczników MediaWiki na znaczniki Markdown-SSW. +sed -Ee 's/\[\[[^]]+\]\]/&<\/nowiki>/g' "$1" | \ + pandoc --from=mediawiki --to=markdown_phpextra+auto_identifiers \ + --base-header-level=2 --wrap=none | \ + sed -Ee 's/\\\[\\\[([^]]+)\\\]\\\]/[[::\1]]/g' -e 's/^-\s+/* /' + +# Dodaj informację o źródle strony i licencji. +urlname=$(printf '%s\n' "$2" | sed -e 's/ /_/g') +case $source in +sclavinia) + printf '\n### Źródła\n\n_Strona zawiera materiał pochodzący z artykułu **[%s](http://vonthorn.sarmacja.org/wiki/index.php/%s)** ([lista autorów](http://vonthorn.sarmacja.org/wiki/index.php?title=%s&action=history)) w [Sclavinia Wiki](http://vonthorn.sarmacja.org/wiki/), udostępnionego na licencji [GNU FDL 1.2](https://www.gnu.org/licenses/old-licenses/fdl-1.2.html)._\n' "$2" "$urlname" "$urlname" + ;; +*) + printf '\n### Źródła\n\n_Strona zawiera materiał pochodzący z artykułu **[%s](http://micropedia.wikia.com/wiki/%s)** ([lista autorów](http://micropedia.wikia.com/wiki/%s?action=history)) w [Micropedii](http://micropedia.wikia.com/), udostępnionego na licencji [CC BY-SA 3.0](http://creativecommons.org/licenses/by-sa/3.0/deed.pl)._\n' "$2" "$urlname" "$urlname" +esac