blob: ecde9682a8c5effdeb02a19ec589f01be1a1b686 (
plain) (
tree)
|
|
#!/usr/bin/env bash
# (c) Evol Online 2016
# Author: Reid
function html_header {
sed -i '1i <!DOCTYPE html> \
<html><head> \
<title>'"$description"'</title> \
</head><body> \
<h1>'"$description"'</h1>' $output_location
}
function html_footer {
echo "</body></html>" >> $output_location
}
function html_formating {
sed -i 's/^[-]{39,40}$/<hr>/g' $output_location
}
function html_href {
for fun in $functions
do
sed -i "s/'$fun'/'<a href=\#$fun\>$fun<\/a>'/g" $output_location
done
}
function table_content {
sed -i \
'1i <a name=\"table_content\"><h2>Table of contents:</h2></a>' \
$output_location
sed -i '2i '"<ul>" $output_location
j=3
for fun in $functions
do
if [ "$previous_fun" != "$fun" ]
then
sed -i \
"$j"'i '"<li><a href=\#$fun\>$fun</a></li>" \
$output_location
((j++))
fi
previous_fun="$fun"
done
sed -i "$j"'i '"</ul>" $output_location
}
function document_indexed {
function_id=0
fun_line_to_skip=0
current_line=2
echo "<pre>" >> $output_location
while read unformatedline
do
line=`echo "$unformatedline" |
sed 's/\&/\&/g;s/</\</g;s/>/\>/g'`
if [ ${functions_number[$function_id]} == $fun_line_to_skip ] \
&& [ $fun_line_to_skip == $current_line ]
then
echo "<b>$line</b>" >> $output_location
fun_line_to_skip=$(($current_line+1))
if [ $(($function_id+1)) != ${#functions_number[@]} ]
then
((function_id++))
fi
elif [ ${functions_number[$function_id]} == $current_line ]
then
anchor=`echo "$line" |
tr ";(*\t" " " |
cut -d " " -f2`
echo \
"<a href=\"#table_content\">Return to the table of contents</a>
</pre>
<hr>
<pre>
<b><a name=\"$anchor\">$line</a></b>" >> $output_location
if [ $(($function_id+1)) != ${#functions_number[@]} ]
then
((function_id++))
fun_line_to_skip=$(($current_line+1))
fi
else
echo "$line" >> $output_location
fi
((current_line++))
done < $input_location
echo "</pre>" >> $output_location
}
function line_number_of_functions
{
grep -ne "^*[a-zAZ0-9_].*[);]$" < $input_location |
tr ":*" " " |
cut -d " " -f1
}
# Variables
description="Evol Online -- Hercules Script Commands"
herc_script_location="../../docs/server/scripts/script_commands.txt"
evol_script_location="../../docs/server/scripts/evol_script_commands.txt"
input_location="concat_file.txt"
output_location="script-doc.html"
cat $herc_script_location $evol_script_location > $input_location
functions_number=( `grep -ne "^*[a-zAZ0-9_].*[);]$" < $input_location |
tr ":*" " " |
cut -d " " -f1` )
functions=`grep -e "^*[a-zAZ0-9_].*[);]$" < $input_location |
tr ";(*\t" " " |
cut -d " " -f2`
# Remove the previous output file and concat both script command docs.
rm -f $output_location
# Table of content redirecting to each functions.
document_indexed
table_content
# Proper HTML formating.
html_header
html_footer
html_formating
html_href
# Remove the temp concat file.
rm -f $input_location
|