Browse Source

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 11 năm trước cách đây
mục cha
commit
f3fa14dc5a
1 tập tin đã thay đổi với 18 bổ sung10 xóa
  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