qstohtml
Created Tuesday 07 April 2020
#!/bin/bash # requires 'recode?' # CHANGE ME AS NEEDED # --- Title of Quiz --- title="LIS 5417 Quiz exercise" # --- the questions in the right format --- questionsfile="$1" # --- the html file that will be created output="./output.html" # -- the results page. -- output file above will link to this formaction="./results.php" # NOTE NOTE NOTE -- this will create a file, give it a good name ### THE FORMAT: # Do '!' for a section header # Prepend a new question with a '#', then do possible answers directly below, line by line -- NO NEWLINES BETWEEN (a newline will "reset" the question # Optionally, do '%' for text question, but these will not be "graded" in the system. # Set all counts to 0 qcount=0 acount="a" # function to print the questions and question-headers function printquestions() { while read line; do newline=$(echo $line | sed 's/&/\&/g; s/</\</g; s/>/\>/g; s/"/\"/g; s/'"'"'/\'/g' ) line=$newline if [ "$line" == "" ]; then # it's a blank line echo "<br><br>" acount="a" elif grep --quiet '^!' <<< $line ; then # its a heading and should be printed linetext=$(echo $line | tr "!" " ") echo "<h2> <b> $linetext </b></h2>" acount="a" elif grep --quiet '^#' <<< $line ; then # its a NEW question ((qcount++)) acount="a" qtext="$qcount. ${line:1}" echo "<b>$qtext</b><br>" elif grep --quiet '^@' <<< $line ; then # it's a fill-in-the-blank NEW QUESTION ((qcount++)) acount="a" qtext="$qcount. ${line:1}" echo "<b>$qtext</b><br>" echo "<input type='text' name='q$qcount'><br>" elif grep --quiet '^%' <<< $line ; then # it's LONGER ANSWER ((qcount++)) acount="a" qtext="$qcount. ${line:1}" echo "<b>$qtext</b><br>" echo "<textarea rows="4" cols="50" name='q$qcount' ></textarea>" else # its an answer choice BUT IM NOT USING IT NOW if [[ $acount == "a" ]]; then checked="checked='checked'" else checked="" fi echo "<input type='radio' name='q$qcount' value='$acount'>$acount. $line<br>" acount=$(echo "$acount" | tr "a-y" "b-z") fi done < $1 } # outputting the actual quiz # boilerplate cat "./quizstart.html" > $output echo "<h1> $title </h1>" >> $output # start of form echo "<form action='$formaction' method='post'>" >> $output # What s your name echo "<br>FSUID:<input type='text' name="fsuid" ></input><br>" >> $output # da questions, yall printquestions "$questionsfile" >> $output # end of form echo "<input type='submit' value='Submit'> </form>" >> $output cat "./quizend.html" >> $output