diff options
Diffstat (limited to 'platform/bin/doku2md.sh')
-rwxr-xr-x | platform/bin/doku2md.sh | 248 |
1 files changed, 168 insertions, 80 deletions
diff --git a/platform/bin/doku2md.sh b/platform/bin/doku2md.sh index a3f0a13..a7839e8 100755 --- a/platform/bin/doku2md.sh +++ b/platform/bin/doku2md.sh @@ -1,116 +1,204 @@ #!/bin/bash +# USO : ./doku2md.sh ../../content/illich/contents/books/deschooling/en.txt +# Genera un .md en la misma carpeta del archivo. Luego ese .md se puede usar dentro de la carpeta book para generar un PDF. +# ./contents_compile.sh <collection> <type> <item> +# ./contents_compile.sh illich book abc ### Script para dejar listo los .txt de Doku para hacerlos markdown -url='https://illich.test/' -IFS=$'\n' -# Arregla footnotes +cd `dirname $0` - dir=`dirname $1` - name=`echo $1 | sed 's/\.txt//g'` - lang=${name: -2} - ## Corta el archivo en dos, empezando por la linea de la primera footnote +COLLECTION=$1 +TYPE=$2 +ITEM=$3 - n=`grep -n -m 1 ':]' $1 |sed 's/\([0-9]*\).*/\1/'` +AUTHOR=`cat ../../content/$COLLECTION/conf/local.php | grep author | cut -d "'" -f4` - csplit -s $1 $n -f $1.tmp. +FOLDER="../../content/$COLLECTION/contents/$TYPE/$ITEM" +URL=`cat ../../platform/www/conf/farm.ini | grep basedomain | cut -d '"' -f 2` + +IFS=$'\n' - ## Agrega saltos de linea y elimina corchete final +DIR=$FOLDER +name=$ITEM - grep ':]' $1.tmp.01 | perl -p -e 's/\n/\n\n/' > $1.footer.tmp - sed -i 's/]$//g' $1.footer.tmp +# +# echo "URL: $URL" +# +# echo "DIR: $DIR" +# echo "NAME: $name" +# +# read - ## Unifica todo y corrige corchete de apertura +cd $DIR - cat $1.tmp.00 > $1.tmp +LANGS=("en" "es") +for lng in ${LANGS[@]}; do - cat $1.footer.tmp >> $1.tmp + FILE="$lng.txt" + # Arregla footnotes + ## Corta el archivo en dos, empezando por la linea de la primera footnote + if [ -f $FILE ]; then + echo "---- File $FILE exists." - sed 's/:]/]:/g' $1.tmp > $name.body.tmp + n=`grep -n -m 1 ':]' $FILE |sed 's/\([0-9]*\).*/\1/'` - ## Borra temporales + if [ -z "$n" ]; then + cat $FILE > $lng.body.tmp + else + csplit -s $FILE $n -f $lng.tmp. + ## Agrega saltos de linea y elimina corchete final + grep ':]' $lng.tmp.01 | perl -p -e 's/\n/\n\n/' > $lng.footer.tmp + sed -i 's/]$//g' $lng.footer.tmp -# agregar cabecera para pandoc! + ## Unifica todo y corrige corchete de apertura -if test -f "$dir/index.txt"; then - echo "hay index" - yaml_title=`head -n1 "$dir/index.txt" | sed 's/# //g'` - yaml_date=`grep 'LANG_publicationdate' "$dir/index.txt" | cut -d ':' -f2 | sed 's/ //'` - yaml_author=`grep 'LANG_author' "$dir/index.txt" | cut -d ':' -f2 | sed 's/ //'` - if [ -z "$yaml_author" ] - then - yaml_author="Ivan Illich" - else - case $lang in - en) - yaml_author=`echo $yaml_author | sed 's/, / and /g'` - ;; - es) - yaml_author=`echo $yaml_author | sed 's/, / y /g'` - ;; - esac - fi + cat $lng.tmp.00 > $lng.tmp - meta=`echo "$name.changes" | sed 's/pages/meta/'` - # el numero de revision es un unix timestamp - revision=`cat $meta | tail -n1 | cut -f1` + cat $lng.footer.tmp >> $lng.tmp - # ../../content/data/pages/es/book/gender/es - # http://illich.test/es:book:gender:es?rev=1620353793 - webpage=`echo $name | sed 's/^.*pages\///'| sed 's/\//:/g'` + sed 's/:]/]:/g' $lng.tmp > $lng.body.tmp + # cat $lng.body.tmp - echo " ---- -title: \"$yaml_title\" -author: \"$yaml_author\" -abstract: \"$url$webpage?rev=$revision\" -date: \"$yaml_date\" -lang: \"$lang\" -titlepage: true -titlepage-color: \"FFFFFF\" -titlepage-text-color: \"000000\" -titlepage-rule-color: \"CCCCCC\" -titlepage-rule-height: 4 ---- - " > $name.head.tmp -fi + fi -## Hay que cambiar los titulos -sed -i 1d $name.body.tmp -sed -i 's/^## /# /g' $name.body.tmp -sed -i 's/^### /## /g' $name.body.tmp -sed -i 's/^#### /### /g' $name.body.tmp -sed -i 's/^##### /#### /g' $name.body.tmp -sed -i 's/^###### /##### /g' $name.body.tmp + ## Borra temporales -cat $name.head.tmp > $name.md -cat $name.body.tmp >> $name.md -# Mas https://github.com/alexeygumirov/pandoc-for-pdf-how-to -# --- -# title: "Towards Illich's 'legibility'" -# subtitle: "Returning to Ivan through the Mirror of the Past" -# author: "Le Goliard[^fb42]" -# date: "2020-11-29 / Version 1.3[^b840]" -# # abstract: "The important thing is love" -# keywords: "Illich, JIS" -# bibliography: "illich_legibility-en.bib" -# lang: "es-ES" -# rights: "This work is published under the terms of the license 'Do What the Fuck You Want to Public License 2.0' (WTFPL 2.0). For more information see: https://en.wikipedia.org/wiki/WTFPL" -# --- + # agregar cabecera para pandoc! + if test -f "index"; then + echo "hay index" + LANGORIG=`cat "index" | grep langorig | cut -d "@" -f 4 | cut -d "_" -f 3` + + if [[ $lng == $LANGORIG ]]; then + echo "Se procesa en idioma original" + yaml_title=`grep 'LANG_titleorig' "index" | cut -d '_' -f3 | sed s/\"/\'/g` + else + echo "No se procesa en idioma original" + yaml_title=`head -n1 $FILE | sed s/\#\ // | sed s/\"/\'/g` + fi + + + yaml_date=`grep 'LANG_publicationdate' "index" | cut -d ':' -f2 | sed 's/** //'` + if [[ $yaml_date == "*YEAR*" ]]; then + # If the Year is not defined, we try to take it from the path + yaml_date=`echo $PWD/$FILE | cut -d "-" -f 1 | rev | cut -d '/' -f1 | rev` + fi + yaml_author=`grep 'LANG_author' "index" | cut -d ':' -f2 | sed 's/ //'` + if [ -z "$yaml_author" ] + then + yaml_author=$AUTHOR + else + case $lng in + en) + yaml_author=`echo $yaml_author | sed 's/, / and /g'` + ;; + es) + yaml_author=`echo $yaml_author | sed 's/, / y /g'` + ;; + esac + fi + + # meta=`echo "$name.changes" | sed 's/pages/meta/'` + # # el numero de revision es un unix timestamp + # revision=`cat $meta | tail -n1 | cut -f1` + # + # # ../../content/data/pages/es/book/gender/es + # # http://illich.test/es:book:gender:es?rev=1620353793 + # webpage=`echo $name | sed 's/^.*pages\///'| sed 's/\//:/g'` + + case $TYPE in + book) + echo "--- + title: \"$yaml_title\" + author: \"$yaml_author\" + date: \"$yaml_date\" + lang: \"$lng\" + documentclass: book + classoption: + - oneside + geometry: margin=1.75in + fontsize: 12pt + fontfamily: ebgaramond-maths + newtxmathoptions: + - cmintegrals + - cmbraces + toc: true + colorlinks: true + linkcolor: RoyalBlue + urlcolor: RoyalBlue +titlepage: true +---" > $lng.head.tmp + ;; + article) + echo "--- + title: \"$yaml_title\" + author: \"$yaml_author\" + date: \"$yaml_date\" + lang: \"$lng\" + documentclass: article + geometry: margin=1.75in + fontsize: 12pt + fontfamily: ebgaramond-maths + colorlinks: true + linkcolor: RoyalBlue + urlcolor: RoyalBlue +---" > $lng.head.tmp + ;; + #... + *) + comandos + ;; + esac + + + fi + echo "" + echo "" + + # cat $lng.head.tmp + + ## Hay que cambiar los titulos + + sed -i 1d $lng.body.tmp + sed -i 's/^## /# /g' $lng.body.tmp + sed -i 's/^### /## /g' $lng.body.tmp + sed -i 's/^#### /### /g' $lng.body.tmp + sed -i 's/^##### /#### /g' $lng.body.tmp + sed -i 's/^###### /##### /g' $lng.body.tmp + + cat $lng.head.tmp > $lng.md + cat $lng.body.tmp >> $lng.md + + + # Mas https://github.com/alexeygumirov/pandoc-for-pdf-how-to + # --- + # title: "Towards Illich's 'legibility'" + # subtitle: "Returning to Ivan through the Mirror of the Past" + # author: "Le Goliard[^fb42]" + # date: "2020-11-29 / Version 1.3[^b840]" + # # abstract: "The important thing is love" + # keywords: "Illich, JIS" + # bibliography: "illich_legibility-en.bib" + # lang: "es-ES" + # rights: "This work is published under the terms of the license 'Do What the Fuck You Want to Public License 2.0' (WTFPL 2.0). For more information see: https://en.wikipedia.org/wiki/WTFPL" + # --- + rm *tmp* + else + echo "---- File $FILE not exists." + fi -rm $dir/*.tmp -rm $dir/*.tmp.* +done |