diff --git a/example/entries/entries.sh b/example/entries/entries.sh deleted file mode 100755 index 0479d96..0000000 --- a/example/entries/entries.sh +++ /dev/null @@ -1,45 +0,0 @@ -#!/bin/sh - -# add a special header to all entries -cat << EOF - - - - - $1 - - -

my blog

-EOF - -# make this page be the index if it is called with no arguments -[ -z "$1" ] && { - cat << EOF -

blog entries

- -EOF - -} || { - # convert the markdown page to html text - md2html $1 - - # add a back button - cat << EOF -go back to list -EOF -} - -# and a footer -cat << EOF - - -EOF - diff --git a/example/entries/entry1.md b/example/entries/entry1.md deleted file mode 100755 index 82917c7..0000000 --- a/example/entries/entry1.md +++ /dev/null @@ -1,13 +0,0 @@ -#!./entries.sh - -# first blog entry - -hello welcome to my test blog. here i will be talking about blah - -## something else - -i probably have something else to say here - -## conclusion - -this is the conclusion, thank you diff --git a/example/entries/entry2.md b/example/entries/entry2.md deleted file mode 100755 index 54b978d..0000000 --- a/example/entries/entry2.md +++ /dev/null @@ -1,9 +0,0 @@ -#!./entries.sh - -# day 2 - -this is a second entry to my blog - -i learned how to make text **bold** and *italic* - -wow isnt that ***cool???*** diff --git a/install.sh b/install.sh deleted file mode 100755 index 9c8a653..0000000 --- a/install.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/bin/sh - -# installs m2html and shblg to the system path - -PREFIX=${PREFIX:-/usr} - -install -m755 src/md2html.sh ${PREFIX}/bin/md2html -install -m755 src/shblg.sh ${PREFIX}/bin/shblg diff --git a/src/md2html.sh b/src/md2html.sh index 846498a..590cdaa 100755 --- a/src/md2html.sh +++ b/src/md2html.sh @@ -6,19 +6,6 @@ cat () { while IFS= read -r line; do printf "%s\n" "$line"; done < "$1" } -# remove a shebang from the start of the file -_remove_shebang () { - IFS= read -r line - case "$line" in - "#!"*) ;; - *) printf "%s\n" "$line" - esac - - while IFS= read -r line; do - printf "%s\n" "$line" - done -} - # remove traling whitespace from empty lines # _pre_strip () { @@ -409,8 +396,7 @@ _squash () { # convert the markdown from stdin into html # md2html () { - _remove_shebang \ - | _pre_strip \ + _pre_strip \ | _code \ | _pre_emph \ | _blockquote \ @@ -428,7 +414,8 @@ md2html () { | _h 3 \ | _h 2 \ | _h 1 \ - | _squash + | _squash \ + | _html } [ -z "$*" ] \ diff --git a/src/shblg b/src/shblg new file mode 100644 index 0000000..ff10250 --- /dev/null +++ b/src/shblg @@ -0,0 +1,23 @@ +#!/bin/sh + +INPUT_DIR=blog +OUTPUT_DIR=dist +PAGE_TEMPLATE=blog/template.html + +while getopts ":o:i:t:" opt; do + case "$opt" in + o) + OUTPUT_DIR=$(realpath $OPTARG) + ;; + i) + INPUT_DIR=$(realpath $OPTARG) + ;; + t) + PAGE_TEMPLATE=$(realpath $OPTARG) + ;; + esac +done + +for f in ${INPUT_DIR}/*.md; do + md2html "$f" > ${OUTPUT_DIR}/$f +done diff --git a/src/shblg.sh b/src/shblg.sh deleted file mode 100755 index 226216c..0000000 --- a/src/shblg.sh +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh - -INPUT_DIR=blog -OUTPUT_DIR=dist -PAGE_TEMPLATE=blog/template.html - -while getopts ":o:i:t:" opt; do - case "$opt" in - o) - OUTPUT_DIR=$OPTARG/ - mkdir -p $OUTPUT_DIR - OUTPUT_DIR=$(realpath $OUTPUT_DIR) - ;; - i) - INPUT_DIR=$(realpath $OPTARG) - ;; - t) - PAGE_TEMPLATE=$(realpath $OPTARG) - ;; - esac -done - -# process a file to -process () { - path="${1#$INPUT_DIR}" - dirpath="${1%${1##*/}}" - out_file="${OUTPUT_DIR}${path}" - - [ -d "$1" ] && { - mkdir -p "$out_file" - for f in "$1"/*; do - process "$f" - done - return 0 - } || [ -x "$1" ] && { - # execute the file - cd $dirpath - "$1" > "${out_file%.*}.html" - cd - - return 0 - } || { - # just output the file as is - while IFS= read -r line; do printf "%s\n" "$line"; done < "$1" > "$out_file" - return 0 - } -} - -process "$INPUT_DIR" diff --git a/example/index.md b/src/test.md old mode 100755 new mode 100644 similarity index 97% rename from example/index.md rename to src/test.md index 1be4e1f..203d425 --- a/example/index.md +++ b/src/test.md @@ -1,5 +1,3 @@ -#!/usr/bin/env md2html - # This is a test md file hello This is *italics* this is **bold** this is ***both*** wow (this is in brackets ssh) and [this is in square brackets not a anchor lol]