starting v2
authorDaniel Liu <mr.picklepinosaur@gmail.com>
Wed, 6 Jan 2021 03:50:01 +0000 (22:50 -0500)
committerDaniel Liu <mr.picklepinosaur@gmail.com>
Wed, 6 Jan 2021 03:50:01 +0000 (22:50 -0500)
README.md
pb

index 3afba86..f62b3f1 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,5 +1,7 @@
 All you really need is just the pb file, the others are there for demonstration purposes, you can just download that file by itself if you don't want the extra garbage.
 
 All you really need is just the pb file, the others are there for demonstration purposes, you can just download that file by itself if you don't want the extra garbage.
 
+This project was inspired by Luke's [lb](https://github.com/LukeSmithxyz/lb). I found it a bit annoying to have to edit the html snippet that gets inserted for new blog posts, so this project abstracts the snippet out as a template file that the user can edit. Of course, that means that this is much more bloated.
+
 # 'Installation'
 Before running the script, open it up and change the variables at the top of the file to your liking.
 
 # 'Installation'
 Before running the script, open it up and change the variables at the top of the file to your liking.
 
@@ -7,12 +9,12 @@ You need a couple of things to get the script:
 - A blog index file (a page with a list of all of your posts)
 - A rolling blog file (a feed of posts will be placed here)
 - A rss file
 - A blog index file (a page with a list of all of your posts)
 - A rolling blog file (a feed of posts will be placed here)
 - A rss file
+- A template for each blog entry
 
 In each of these files, you need to include the comments:
 ```
 <!-- BLOG START -->
 <!-- BLOG END -->
 
 In each of these files, you need to include the comments:
 ```
 <!-- BLOG START -->
 <!-- BLOG END -->
-
 ```
 
 # Usage
 ```
 
 # Usage
@@ -25,9 +27,6 @@ Publishes a draft, which means that it takes the html snippet you wrote and shov
 ### d / delete
 Deletes an already published blog post, this does not delete your draft.
 
 ### d / delete
 Deletes an already published blog post, this does not delete your draft.
 
-### b / backup
-Simply copies all draft and published blog entries into the backup directory.
-
 ### r / refresh (planned)
 Used when you change the template file and want to keep all blog entries consistent. It deletes all html files and republishes them all.
 
 ### r / refresh (planned)
 Used when you change the template file and want to keep all blog entries consistent. It deletes all html files and republishes them all.
 
@@ -38,4 +37,4 @@ You can use certain keywords that will be substituted in:
 - {{TITLE}} for the title of the blog post
 - {{DATE}}
 - {{URL}} pointing to that post
 - {{TITLE}} for the title of the blog post
 - {{DATE}}
 - {{URL}} pointing to that post
-- {{BODY}} the html of that post
+- {{BODY}} the html body of the blog post
diff --git a/pb b/pb
index 5f85f3c..13201c2 100755 (executable)
--- a/pb
+++ b/pb
 #!/bin/sh
 #!/bin/sh
-# pinosaur's blog script
+# pinosaur's blog script v2!
 
 data_dir="blog"
 
 data_dir="blog"
-website_url="https://www.youtube.com/watch?v=oHg5SJYRHA0/" # no ending slash
-blog_index_file="blogindex.html"
+website_url="https://www.youtube.com/watch?v=oHg5SJYRHA0/" 
 rolling_file="rolling.html"
 rolling_file="rolling.html"
+blog_index_file="blogindex.html"
 rss_file="rss.xml"
 blog_template="template.html"
 rss_file="rss.xml"
 blog_template="template.html"
-index_template="index_entry.html"
-rolling_template="rolling_entry.html"
-rss_template="rss_entry.html"
-
-[ ! -z "$EDITOR" ] && EDITOR="vim"
+database_file="$data_dir/database"
+index_template="$data_dir/templates/index_entry.html"
+rolling_template="$data_dir/templates/rolling_entry.html"
+rss_template="$data_dir/templates/rss_entry.html"
 
 init() {
     read -p "Initialize blog here? [y/n] " ask
 
 init() {
     read -p "Initialize blog here? [y/n] " ask
-    [ "$ask" != "y" ] && echo "Cancelled init" && exit 0
+    [ "$ask" != "y" ] && printf "Initialization cancelled.\n" && exit 0
 
 
-    mkdir -p "$data_dir/drafts" "$data_dir/published" "$data_dir/html" "$data_dir/templates" "$data_dir/backups"
-    echo '<a href="{{URL}}">{{TITLE}}</a>' >> "$data_dir/templates/$index_template"
-    echo -e '<div>\n<h2>{{TITLE}}</h2>\n<p>{{DATE}}</p>\n<p>{{BODY}}</p>\n</div>' >> "$data_dir/templates/$rolling_template"
-    echo -e '<item>\n<title>{{TITLE}}</title>\n<link></link>\n<description><\description>\n<\item>' \
-        >> "$data_dir/templates/$rss_template"
+    mkdir -p "$data_dir/drafts" "$data_dir/published" "$data_dir/html" "$data_dir/templates" 
 
 
-    echo "Successfully created blog files."
-}
-refresh() {
-    read -p "Are you sure you want to refresh? [y/n] " ask
-    [ "$ask" != "y" ] && echo "Aborting..." && exit 0
-
-    echo -e "$blog_index_file\n$rolling_file\n$rss_file" | xargs sed -i "/<!-- BLOG START -->/,/<!-- BLOG END -->/{/<!-- BLOG START -->/!{/<!-- BLOG END -->/!d}}"
-    echo "Successfully refreshed."
-}
+    printf '<li><a href="{{URL}}">{{DATE}} - {{TITLE}}</a></li>' > "$index_template"
+    printf '<div>\n<h2>{{TITLE}}</h2>\n<p>{{DATE}}</p>\n<p>{{BODY}}</p>\n</div>\n' > "$rolling_template"
+    printf '<item>\n<title>{{TITLE}}</title>\n<link>{{URL}}</link>\n<description></description>\n{{BODY}}\n</item>\n' > "$rss_template"
+    touch "$database_file"
 
 
-backup() {
-    backup_name=`mktemp --tmpdir="$data_dir/backups" -d "backup_$(date +'%b-%d')_XXX"`
-    echo "Creating backup, will be placed in $backup_name"
-    cp -r "$data_dir/drafts/" "$backup_name"
-    cp -r "$data_dir/published/" "$backup_name"
+    printf 'Successfully initialized pb.\n'
 }
 
 new() {
 }
 
 new() {
-    [ -z "$1" ] && echo "Please give your blog post a name (you should put it inside quotations)" && exit 1 
-    sanitized=`echo -n "$1" | sed -e 's/[^A-Za-z0-9 _-]//g'`
-    [ -f "$data_dir/drafts/$sanitized.draft.html" ] && echo "Blog of that name already exists." && exit 1
-    $EDITOR "$data_dir/drafts/$sanitized.draft.html"
-}
-
-sub() {
-    cat - |\
-        sed "1i <!-- ID:$1 START -->" |\
-        sed  "\$a <!-- ID:$1 END -->" |\
-        sed "s|{{TITLE}}|$1|g;
-            s|{{DATE}}|`date +'%a, %b %d %H:%M'`|g;
-            s|{{URL}}|$website_url/blog/html/$1.html|g" |\
-        sed "/{{BODY}}/r $data_dir/drafts/$1.draft.html" |\
-        sed "/{{BODY}}/d" 
-}
-
-# $1 is directory
-choose() { 
-    options=`ls -1 "$1" | sed 's/\.draft\.html$//;s/\.html$//'` 
-    [ -z "$options" ] && echo "No drafts to publish" && exit 0
-    echo "$options" | nl
-    read -p 'Choose an entry by number > ' choice
-    chosen=`ls -1 "$1" | sed -n "$choice p"`
-    [ -z "$chosen" ] && echo "Invalid choice" && exit 1
+    printf 'new\n' 
 }
 
 publish() {
 }
 
 publish() {
-    choose "$data_dir/drafts"
-    to_publish=${chosen%.draft.html}
-
-    cat $blog_template | sub "$to_publish" > "$data_dir/html/$to_publish.html" 
-
-    # make this part less horrendous
-    temp_index="$(mktemp)" 
-    cat "$data_dir/templates/$index_template" | sub "$to_publish" >> $temp_index
-    temp_rolling="$(mktemp)" 
-    cat "$data_dir/templates/$rolling_template" | sub "$to_publish" >> $temp_rolling
-    temp_rss="$(mktemp)" 
-    cat "$data_dir/templates/$rss_template" | sub "$to_publish" >> $temp_rss
-
-    # Add new entry to blog index (do something about indent??)
-    sed -i "/<!-- BLOG START -->/r $temp_index" "$blog_index_file"
-    sed -i "/<!-- BLOG START -->/r $temp_rolling" "$rolling_file"
-    sed -i "/<!-- BLOG START -->/r $temp_rss" "$rss_file"
-
-    mv "$data_dir/drafts/$to_publish.draft.html" "$data_dir/published/"
-    echo "Successfully published $to_publish"
+    printf 'publish\n' 
 }
 
 delete() {
 }
 
 delete() {
-    choose "$data_dir/published"
-    to_delete=${chosen%.draft.html}
-
-    mv "$data_dir/published/$to_delete.draft.html" "$data_dir/drafts/" &&\
-        rm "$data_dir/html/$to_delete.html"
-
-    # remove entries from files 
-    echo -e "$blog_index_file\n$rolling_file\n$rss_file" | xargs sed -i "/<!-- ID:$to_delete START -->/,/<!-- ID:$to_delete END -->/ d"
-
-    echo "Successfully deleted $to_delete"
+    printf 'delete\n' 
 }
 
 }
 
-# check to see if all required files are present
-[ -f $blog_index_file ] && [ -f $rolling_file ] && [ -f $blog_template ] && [ -f $rss_file ] || { echo "You are missing a file, please check that you have $blog_index_file, $blog_template, $rolling_file and $rss_file in your home directory" && exit 1; }
+[ -f $blog_index_file ] && [ -f $rolling_file ] && [ -f $rss_file ] && [ -f $blog_template ] || { echo "You are missing a file, please check that you have $blog_index_file, $blog_template, $rolling_file and $rss_file in your home directory" && exit 1; }
+
+[ -f $blog ]
 
 
-# check if blog dir exists
-[ ! -d $data_dir ]  && init && exit 0
+[ ! -d $data_dir ] && init && exit 0
 
 case $1 in
 
 case $1 in
-    n|new) new "$2";;
+    n|new) new;;
     p|publish) publish;;
     d|delete) delete;;
     p|publish) publish;;
     d|delete) delete;;
-    b|backup) backup;;
-    r|refresh) refresh;;
-    h|*) echo -e "=-=-=-=-=-=-= Pb =-=-=-=-=-=-=\nAvailable commands:\nn - new blog post\np - publish existing blog post\nd - deletes published post\nb - creates a backup";;
+    r|refresh) printf 'refresh\n';;
+    h|*) printf 'help\n';;
 esac
 esac
+
+
+