Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.

63 wiersze
2.4 KiB

  1. #! /bin/sh
  2. # Konwertuje artykuły z Micropedii i SclaviniaWiki na format
  3. # Encyklopedii Wandejskiej.
  4. # Copyright © 2017 Paulina Laura Emilia <vilene@posteo.net>
  5. #
  6. # This program is free software. It comes without any warranty, to
  7. # the extent permitted by applicable law. You can redistribute it
  8. # and/or modify it under the terms of the Do What The Fuck You Want
  9. # To Public License, Version 2, as published by Sam Hocevar. See the
  10. # COPYING file for more details.
  11. show_usage=0
  12. source=
  13. # Sprawdź czy pandoc jest zainstalowany.
  14. if ! pandoc --version > /dev/null 2>&1; then
  15. printf '%s: %s\n' "$0" 'Nie zainstalowano narzędzia pandoc.' >&2
  16. exit 1
  17. fi
  18. # Jeżeli zadeklarowano źródło inne niż Micropedia.
  19. case $1 in
  20. --*)
  21. source=${1#--}
  22. shift
  23. esac
  24. # Sprawdź czy podano wszystkie parametry.
  25. if [ -z "$1" ]; then
  26. printf '%s: %s\n' "$0" 'Musisz podać nazwę pliku źródłowego.' >&2
  27. show_usage=1
  28. fi
  29. if [ "$source" != nosrc ] && [ -z "$2" ]; then
  30. printf '%s: %s\n' "$0" 'Musisz podać tytuł strony źródłowej.' >&2
  31. show_usage=1
  32. fi
  33. if [ $show_usage -eq 1 ]; then
  34. printf 'Użycie: %s [--nosrc|--sclavinia] nazwa_pliku tytuł_strony\n' \
  35. "$0" >&2
  36. exit 1
  37. fi
  38. # Skonwertuj plik wejściowy ze znaczników MediaWiki na znaczniki Markdown-SSW.
  39. sed -Ee 's/\[\[[^]]+\]\]/<nowiki>&<\/nowiki>/g' "$1" | \
  40. pandoc --from=mediawiki --to=markdown_phpextra+auto_identifiers \
  41. --base-header-level=2 --wrap=none | \
  42. sed -Ee 's/\\\[\\\[([^]]+)\\\|([^]]+)\\\]\\\]/[[::\1|\2]]/g' \
  43. -e 's/\\\[\\\[([^]]+)\\\]\\\]/[[::\1]]/g' -e 's/^-[[:space:]]+/* /'
  44. # Dodaj informację o źródle strony i licencji.
  45. urlname=$(printf '%s\n' "$2" | sed -e 's/ /_/g')
  46. case $source in
  47. nosrc)
  48. ;;
  49. sclavinia)
  50. 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"
  51. ;;
  52. *)
  53. printf '\n### Źródła\n\n*Strona zawiera materiał pochodzący z artykułu **[%s](https://micropedia.fandom.com/wiki/%s)** ([lista autorów](https://micropedia.fandom.com/wiki/%s?action=history)) w [Micropedii](https://micropedia.fandom.com/), udostępnionego na licencji [CC BY-SA 3.0](http://creativecommons.org/licenses/by-sa/3.0/deed.pl).*\n' "$2" "$urlname" "$urlname"
  54. esac