Explorar el Código

edit markdown posts

usage:
  bb.sh edit article.md
to edit previously posted article (for which markdown source was saved),
and repost it (under the same name or not)
Alexey Shpakovsky hace 11 años
padre
commit
f3fa14dc5a
Se han modificado 1 ficheros con 18 adiciones y 10 borrados
  1. 18 10
      bb.sh

+ 18 - 10
bb.sh

@@ -258,7 +258,7 @@ test_markdown() {
 # Parse a Markdown file into HTML and return the generated file
 markdown() {
     out="$(echo $1 | sed 's/md$/html/g')"
-    while [ -f "$out" ]; do out="$(echo $out | sed 's/\.html$/\.'$RANDOM'\.html')"; done
+    while [ -f "$out" ]; do out="$(echo $out | sed 's/\.html$/\.'$RANDOM'\.html/')"; done
     $markdown_bin $1 > $out
     echo $out
 }
@@ -360,16 +360,24 @@ edit() {
         $EDITOR "$1"
         filename="$1"
     else
-        # Create the content file
-        TMPFILE="$(basename $1).$RANDOM.html"
-        # Title
-        echo "$(get_post_title $1)" > "$TMPFILE"
-        # Post text with plaintext tags
-        get_html_file_content 'text' 'text' <$1 | sed "/^<p>$template_tags_line_header/s|<a href='$prefix_tags\([^']*\).html'>\\1</a>|\\1|g" >> "$TMPFILE"
-        rm $1
-        $EDITOR "$TMPFILE"
+        if [[ "${1##*.}" == "md" ]]; then
+            # editing markdown file
+            $EDITOR "$1"
+            TMPFILE="$(markdown "$1")"
+            filename="${1%%.*}.html"
+        else
+            # Create the content file
+            TMPFILE="$(basename $1).$RANDOM.html"
+            # Title
+            echo "$(get_post_title $1)" > "$TMPFILE"
+            # Post text with plaintext tags
+            get_html_file_content 'text' 'text' <$1 | sed "/^<p>$template_tags_line_header/s|<a href='$prefix_tags\([^']*\).html'>\\1</a>|\\1|g" >> "$TMPFILE"
+            $EDITOR "$TMPFILE"
+            filename="$1"
+        fi
+        rm "$filename"
         if [ "$2" = "keep" ]; then
-            parse_file "$TMPFILE" "$edit_timestamp" "$1"
+            parse_file "$TMPFILE" "$edit_timestamp" "$filename"
         else
             parse_file "$TMPFILE" "$edit_timestamp" # this command sets $filename as the html processed file
         fi