summaryrefslogtreecommitdiff
path: root/platform/bin/contents_compile.sh
diff options
context:
space:
mode:
Diffstat (limited to 'platform/bin/contents_compile.sh')
-rwxr-xr-xplatform/bin/contents_compile.sh345
1 files changed, 345 insertions, 0 deletions
diff --git a/platform/bin/contents_compile.sh b/platform/bin/contents_compile.sh
new file mode 100755
index 0000000..e9979f5
--- /dev/null
+++ b/platform/bin/contents_compile.sh
@@ -0,0 +1,345 @@
+ #!/usr/bin/env bash
+# Contents compilee
+# ./contents_compile.sh <collection> <type>
+# ./contents_compile.sh illich article
+start=`date +%s%N`
+
+cd `dirname $0`
+
+COLLECTION=$1
+TYPE=$2
+
+cd ../../content/$COLLECTION/contents/$TYPE
+
+AUTHOR=`cat ../../conf/local.php | grep author | cut -d "'" -f4`
+COPYRIGHT=`cat ../../conf/local.php | grep copyright | cut -d "'" -f4`
+SITE=`cat ../../conf/local.php | grep title | cut -d "'" -f4`
+CODENAME=`cat ../../conf/local.php | grep codename | cut -d "'" -f4`
+UNIVERSE=`cat ../../conf/local.php | grep universe | cut -d "'" -f4`
+BASEURL=`cat ../../../../platform/www/conf/farm.ini | grep basedomain | cut -d '"' -f 2`
+
+
+echo "#### STARTING TO COMPILE! Collection: $1 Type: $2. Press a key to proceed..."
+read
+
+# Clean previous files
+rm index*
+echo "" > index.txt
+
+# Define languages to generate
+LANGS=("en" "es")
+for lng in ${LANGS[@]}; do
+ echo "Generating files for lang: $lng"
+ echo "" > index.$lng.txt
+ rm -rf ../../data/pages/$lng/$TYPE/*
+ cd ../../data/pages/$lng/$TYPE/
+ ln -s ../../../../contents/$TYPE/index.$lng.txt index.txt
+ cd $OLDPWD
+done
+
+
+
+echo "" > index.es.txt
+for i in `ls -d */`; do
+ echo ""
+ echo ""
+ echo ""
+ echo "#### PROCESSING: $i"
+
+ FOLDER=$i
+ YEAR=`echo $i | cut -d '-' -f1`
+ cd $i
+ rm *.md *.pdf *.info
+ LANGORIG=`cat index | grep langorig | cut -d "@" -f 4 | cut -d "_" -f 3`
+ # echo $LANGORIG
+ TITLEORIG=`cat index | grep titleorig | cut -d "_" -f3`
+ # echo $TITLEORIG
+
+ # echo "************************"
+ # echo "LANGORIG: $LANGORIG"
+ # echo "TYPE: $TYPE"
+ # echo "i: $i"
+ # echo "************************"
+ # echo "************************"
+ # read
+
+
+ if [[ -f $LANGORIG.txt ]]
+ then
+ echo "The version in the original language is already processed"
+ for j in `ls *.txt`; do
+ LANG=`echo $j | cut -d '.' -f1`
+ echo "**** $LANG"
+
+ # Creates the $TYPE directory
+ if [[ ! -d ../../../data/pages/$LANG/$TYPE/$i ]]
+ then
+ echo "Create the $TYPE directory for $i in $LANG"
+ mkdir ../../../data/pages/$LANG/$TYPE/$i
+ fi
+
+ TAGS=()
+ TAGLIST=""
+ EXTRATAGS=""
+
+
+ # Creates the index file
+ echo "Regenerate the index for $i in $LANG"
+ INDEX="../../../data/pages/$LANG/$TYPE/$i/index.txt"
+ TITLE_MD=`head -n1 $LANG.txt`
+ TITLE=`echo $TITLE_MD | sed s/\#\ //`
+ head -n1 $LANG.txt > $INDEX
+ echo "" >> $INDEX
+ TITLELANG=`head -n1 $LANG.txt | sed s/\#\ //`
+ cat index >> $INDEX
+
+ if [[ -f LANG.notes ]]
+ then
+ cat $LANG.notes >> $INDEX
+ fi
+
+
+ if [[ $TYPE != "book" ]]
+ then
+ sed -i "s/\*YEAR\*/$YEAR/g" $INDEX
+ fi
+
+ if [ $(grep -c "LANG_authors" $INDEX) -eq 1 ]
+ # if grep "LANG_authors" $INDEX
+ then
+ sed -i "s/LANG_authors@#:\*\*/LANG_authors\@\#:\*\* $AUTHOR;/g" $INDEX
+ AUTHORS=`grep "LANG_authors" $INDEX | cut -d '*' -f6 | sed s/\;/\ and/g | sed s/^\ // | sed s/:\ //`
+ else
+ # only main author
+ AUTHORS=$AUTHOR
+ fi
+
+ if [ $(grep -c "LANG_publicationdate" $INDEX) -eq 1 ]
+ # if grep "LANG_publicationdate" $INDEX
+ then
+ PUBDATE=`grep "LANG_publicationdate" $INDEX | cut -d '*' -f6 | sed s/\;/\ and/g | sed s/^\ //`
+ else
+ # Use year if full date is not defined
+ PUBDATE=$YEAR
+ fi
+ if [[ $TYPE == "book" ]]
+ then
+ YEAR=$PUBDATE
+ fi
+
+
+ if grep "LANG_translators" $INDEX
+ then
+ TRANSLATORS=`grep "LANG_translators" $INDEX | cut -d '*' -f6 | sed s/\;/\ and/g | sed s/^\ // | sed s/:\ //`
+ else
+ # no translators
+ TRANSLATORS=""
+ fi
+ KEY=`echo $FOLDER | sed 's/\///'`
+ # http://illich.acerv.uz/en:$TYPE:1900-testing:index
+ URL="https://$CODENAME.$BASEURL/$LANG/$TYPE/$KEY:index"
+ URLDATE=`date +"%Y-%m-%d"`
+ echo "" >> $INDEX
+ echo "@ARTICLE{$UNIVERSE-$CODENAME-$KEY-$LANG,
+ author = {$AUTHORS},
+ title = {$TITLE},
+ year = {$YEAR},
+ date = {$PUBDATE},
+ origdate = {$PUBDATE},
+ language = {$LANG},
+ origlanguage = {$LANGORIG},
+ translator = {$TRANSLATORS},
+ url = {$URL},
+ urldate = {$URLDATE}
+}" > $LANG.bib
+ echo "Generated $LANG.bib"
+ cat $LANG.bib >> ../index.$LANG.bib
+ echo "" >> ../index.$LANG.bib
+ echo "\`\`\`" >> $INDEX
+ cat $LANG.bib >> $INDEX
+ echo "\`\`\`" >> $INDEX
+ echo "~~NOTOC~~" >> $INDEX
+
+ echo "
+* Authors: $AUTHORS
+* Rights holder: $COPYRIGHT
+* Original publication: $YEAR
+* Original language: $LANGORIG
+* Translator: $TRANSLATORS
+
+-----
+
+* URL: $URL
+* Generated: $URLDATE
+" > $LANG.md.info
+
+
+ LINES=`wc -l $LANG.txt`
+ if [[ $LINES > 2 ]]; then
+ # If the files contains more than one line, we consider the original $TYPE is complete and not pending
+ TAGS=("${TAGS[@]}" available)
+ else
+ TAGS=("${TAGS[@]}" pending)
+ fi
+
+ for j in "${TAGS[@]}"
+ do
+ if [ -z "$TAGLIST" ]
+ then
+ TAGLIST="$j"
+ else
+ TAGLIST="$TAGLIST $j"
+ fi
+ done
+
+ # Add tags in the tags file in the object folder
+ if [[ -f tags ]]
+ then
+ EXTRATAGS=`cat tags | awk '{print}' ORS=' '`
+ fi
+ echo "{{tag>$TAGLIST $EXTRATAGS}}" >> $INDEX
+
+
+ # Creates the link to the text in the specific language
+ cd ../../../data/pages/$LANG/$TYPE/$i
+ if [[ ! -f text.txt ]]
+ then
+ ln -s ../../../../../contents/$TYPE/$i$LANG.txt text.txt
+ fi
+
+ if [[ ! -f notes.txt ]]
+ then
+ ln -s ../../../../../contents/$TYPE/$i$LANG.notes notes.txt
+ fi
+
+ if [[ ! -f index.bib ]]
+ then
+ ln -s ../../../../../contents/$TYPE/$i$LANG.bib index.bib
+ fi
+
+
+ cd -
+
+ if [[ $TITLELANG == $TITLEORIG ]]
+ then
+ echo "* [[$LANG:$TYPE:$FOLDER:index|$YEAR - $TITLELANG]]" >> ../index.$LANG.txt
+
+ else
+ echo "* [[$LANG:$TYPE:$FOLDER:index|$YEAR - $TITLELANG]] (*$TITLEORIG*)" >> ../index.$LANG.txt
+ fi
+
+
+ done
+ #echo "* $YEAR - $TITLEORIG" >> ../index.txt
+ echo "* [[$LANGORIG:$TYPE:$FOLDER:index|$YEAR - $TITLEORIG]]" >> ../index.txt
+
+ # Creates the $TYPE directory
+ else
+ echo "La version en el idioma original NO esta procesada, entonces marcamos como pendiente y creamos un index"
+
+ echo "LANGORIG: $LANGORIG"
+ echo "TYPE: $TYPE"
+ echo "i: $i"
+
+ # read
+
+ if [[ ! -d ../../../data/pages/$LANGORIG/$TYPE/$i ]]
+ then
+ echo "Create the $TYPE directory for $i in $LANGORIG"
+ mkdir ../../../data/pages/$LANGORIG/$TYPE/$i
+ fi
+
+
+ # Creates the index file
+ echo "Creates the index file for $i in $LANGORIG"
+ INDEX="../../../data/pages/$LANGORIG/$TYPE/$i/index.txt"
+ echo $INDEX
+
+ # TITLEORIG=`cat index | grep titleorig | cut -d "_" -f3`
+ echo "# $TITLEORIG" > $INDEX
+ echo "" >> $INDEX
+ cat index >> $INDEX
+ cat $LANGORIG.notes >> $INDEX
+ echo "" >> $INDEX
+ echo "~~NOTOC~~" >> $INDEX
+ sed -i "s/\*YEAR\*/$YEAR/g" $INDEX
+ sed -i "s/LANG_authors@#:\*\*/LANG_authors\@\#:\*\* $AUTHOR;/g" $INDEX
+
+ TAGS=("${TAGS[@]}" available)
+ for j in "${TAGS[@]}"
+ do
+ if [ -z "$TAGLIST" ]
+ then
+ TAGLIST="$j"
+ else
+ TAGLIST="$TAGLIST $j"
+ fi
+ done
+ # Add tags in the tags file in the object folder
+ if [[ -f tags ]]
+ then
+ EXTRATAGS=`cat tags | awk '{print}' ORS=' '`
+ fi
+ echo "{{tag>$TAGLIST $EXTRATAGS}}" >> $INDEX
+
+ echo "* **[[$LANGORIG:$TYPE:$FOLDER:index|$YEAR - $TITLEORIG]]**" >> ../index.txt
+
+ fi
+
+ echo "*** I will generate the MD files"
+ ../../../../../platform/bin/doku2md.sh $COLLECTION $TYPE $i
+
+ echo "*** I will generate the PDF files"
+ # read
+ cp *.md "../../../../../platform/bin/pandoc/$TYPE"
+ cp *.info "../../../../../platform/bin/pandoc/$TYPE"
+
+ ../../../../../platform/bin/pandoc/$TYPE/run.sh
+ cp ../../../../../platform/bin/pandoc/$TYPE/*.pdf .
+
+ rm ../../../../../platform/bin/pandoc/$TYPE/*.pdf
+ rm ../../../../../platform/bin/pandoc/$TYPE/*.md
+
+ cd ..
+ echo ""
+done
+
+echo "Running decades... "
+
+IFS=$'\n'
+
+case $TYPE in
+ book)
+ for file in `ls index*.txt`; do
+ sort -n -t '|' -k2 -o $file $file
+ sed -i 's/$/\n/' $file
+ done
+ ;;
+ *)
+ for file in `ls index*.txt`; do
+ mv $file $file.old
+ echo "***** $file"
+ for name in `cat $file.old`; do
+ YEAR=`echo $name | cut -d ':' -f 3 | cut -d '-' -f 1`
+ DECADE=${YEAR:0:3}
+ #echo "YEAR: $YEAR"
+ #echo "DECADE: $DECADE"
+
+ if [[ $DECADE_PRE != $DECADE ]]; then
+ echo "" >> $file
+ echo '### '$DECADE'0' >> $file
+ echo "" >> $file
+ fi
+ echo $name >> $file
+ DECADE_PRE=$DECADE
+ echo "" >> $file
+
+ done
+ done
+ rm *.old
+
+ ;;
+esac
+
+end=`date +%s%N`
+echo "Execution time was `expr $end - $start` nanoseconds."