Newer
Older
#!/bin/bash
# preproc_staff.sh
# Preprocessor for staff keys in .md topic file
# Replaces key fgabel by "Fabian Gabel, M.Sc." according to Webpage content
# If Build_dir is passed, titles are appended to corresponding files
# Note: mat.tuhh.de uses WINDOWS-1252 character encoding
# processing command line arguments
if [ $# -lt 2 ]
then
RESEARCH_BUILD=`pwd`"/build"
echo -e "No building directory was specified."
else
RESEARCH_BUILD="$2"
fi
mkdir -p $RESEARCH_BUILD
echo -e "Building into directory $RESEARCH_BUILD ..."
filename=$(basename -- "$1")
baseurl='https://www.mat.tuhh.de'
#make output copy
echo "Preprocessing $filename..."
if [ -f "$RESEARCH_BUILD/$filename" ]
then
echo "File exists, performing preprocessing in place"
else
cp $1 $RESEARCH_BUILD/$filename
fi
#extract title of topic
echo "Extracting title of $1..."
title=`$RESEARCH_ROOT/bin/extract_title.sh $RESEARCH_BUILD/$filename`
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
echo "Title of Topic: $title"
# start preprocessing
# -- leave original untouched, only work with copy in $RESEARCH_BUILD
echo "Preprocessing collaborators in file $RESEARCH_BUILD/$filename ..."
namelist=`grep -h -i -m 1 -r "###\s*Collaborators (MAT):" $RESEARCH_BUILD/$filename | sed -e 's/^###\s*Collaborators (MAT):\s*//I' -e 's/\s*,\s*/\n/g' | sort -u`
echo "Found the following keys: " $namelist
echo "Replacing collaborator keys ..."
for name in $namelist
do
# pipeline to get full name of staff-member from mat-homepage
# -> wget the staff homepage of $name
# -> grep the line with the <h1>-tag, something like <h1>Fabian Gabel, M. Sc.</h1><div class='staffIntro'><p><img src='/home/fgabel/images/portrait.png' title='Foto von Fabian Gabel, M. Sc.' class='staffPicture'></p><div class='staffContact'>
# -> strip the string such that only the portion between <h1></h1> remains
# -> remove leading spaces
wget -qO- $baseurl/home/$name/?homepage_id=$name > page.html
iconv -f WINDOWS-1252 -t UTF-8 ./page.html > ./utf.html
fullname=`grep h1 ./utf.html | sed -e "s/<h1>\s*\(.*\)<\/h1>.*$/\1/g" | sed -e 's/^[ \t]*//'`
rm -rf {utf,page}.html
echo "Found collaborator $fullname"
# replace name in .md file
sed -i "s;$name;\[$fullname\]($name.html);g" $RESEARCH_BUILD/$filename
#sed -i "s;$name;\[$fullname\]($baseurl/home/$name);g" $RESEARCH_BUILD/$filename #uncomment this line for linking the mat.tuhh.de webpage
# delete external collaborators if left empty
sed -i -e '/###\s*Collaborators (External):\s*$/ d' $RESEARCH_BUILD/$filename
if [ $# -gt 1 ]
then
# append research to staffile
echo -e "\n$title\n" >> $RESEARCH_BUILD/$name.md
fi
done
# adpat img path (prefix a dot)
sed -i "s;\](/img/;\](./img/;g" $RESEARCH_BUILD/$filename