Merge remote branch 'upstream/master'
diff --git a/aliases/jekyll.aliases.bash b/aliases/jekyll.aliases.bash
index a5078e3..11922d6 100644
--- a/aliases/jekyll.aliases.bash
+++ b/aliases/jekyll.aliases.bash
@@ -1,27 +1,27 @@
-# Open the root of your site in your vim or cd to it
+# Open the root of your site in your vim or builtin cd to it
 
 if [[ $EDITOR = "vim" ]]
-then alias newentry="cd $JEKYLL_LOCAL_ROOT && $EDITOR ."
-else alias newentry="cd $JEKYLL_LOCAL_ROOT"
+then alias newentry="builtin cd $JEKYLL_LOCAL_ROOT && $EDITOR ."
+else alias newentry="builtin cd $JEKYLL_LOCAL_ROOT"
 fi
 
 # Open the _posts/ directory for making a new blog post (seperate from above alias because not everyone uses jekyll for a blog)
 
 # if [ $editor = "vim" ]
 # then
-# 	alias newpost="cd $jekyll_local_root/_posts && $editor ."
+# 	alias newpost="builtin cd $jekyll_local_root/_posts && $editor ."
 # else
-# 	alias newpost="cd $jekyll_local_root"
+# 	alias newpost="builtin cd $jekyll_local_root"
 # fi
 
 # Build and locally serve the site
 
-alias testsite="cd $JEKYLL_LOCAL_ROOT && jekyll --server --auto"
+alias testsite="builtin cd $JEKYLL_LOCAL_ROOT && jekyll --server --auto"
 
 # Build but don't locally serve the site
 
-alias buildsite="cd $JEKYLL_LOCAL_ROOT && rm -rf _site/ && jekyll"
+alias buildsite="builtin cd $JEKYLL_LOCAL_ROOT && rm -rf _site/ && jekyll"
 
 # Rsync the site to the remote server
 
-alias deploysite="cd $JEKYLL_LOCAL_ROOT && rsync -rz _site/ $JEKYLL_REMOTE_ROOT"
+alias deploysite="builtin cd $JEKYLL_LOCAL_ROOT && rsync -rz _site/ $JEKYLL_REMOTE_ROOT"
diff --git a/plugins/base.plugin.bash b/plugins/base.plugin.bash
index 9eceaf9..9c8cb92 100644
--- a/plugins/base.plugin.bash
+++ b/plugins/base.plugin.bash
@@ -30,6 +30,10 @@
   ri -T "${1}" | open -f -a $PREVIEW
 }
 
+quiet() {
+	$* &> /dev/null &
+}
+
 banish-cookies() {
 	rm -r ~/.macromedia ~/.adobe
 	ln -s /dev/null ~/.adobe
diff --git a/plugins/git.plugins.bash b/plugins/git.plugins.bash
index ad21591..5f4cc51 100644
--- a/plugins/git.plugins.bash
+++ b/plugins/git.plugins.bash
@@ -17,4 +17,40 @@
 # Adds files to git's exclude file (same as .gitignore)
 function local-ignore() {
   echo "$1" >> .git/info/exclude
-}
\ No newline at end of file
+}
+
+# get a quick overview for your git repo
+function git_info() {
+    if [ -n "$(git symbolic-ref HEAD 2> /dev/null)" ]; then
+        # print informations
+        echo "git repo overview"
+        echo "-----------------"
+        echo
+
+        # print all remotes and thier details
+        for remote in $(git remote show); do
+            echo $remote:  
+            git remote show $remote
+            echo
+        done
+
+        # print status of working repo
+        echo "status:"
+        if [ -n "$(git status -s 2> /dev/null)" ]; then
+            git status -s
+        else
+            echo "working directory is clean"
+        fi
+
+        # print at least 5 last log entries
+        echo 
+        echo "log:"
+        git log -5 --oneline
+        echo 
+
+    else
+        echo "you're currently not in a git repository"
+
+    fi
+}
+
diff --git a/plugins/jekyll.plugins.bash b/plugins/jekyll.plugins.bash
index 1933f07..9b0d5c1 100644
--- a/plugins/jekyll.plugins.bash
+++ b/plugins/jekyll.plugins.bash
@@ -1,13 +1,55 @@
+#!/bin/bash
+
 newpost() {
 
-	# 'cd' into the local jekyll root
+	# 'builtin cd' into the local jekyll root
 
-	cd "$JEKYLL_LOCAL_ROOT/_posts"
+	builtin cd "$JEKYLL_LOCAL_ROOT/_posts"
 
 	# Get the date for the new post's filename
 
 	FNAME_DATE=$(date "+%Y-%m-%d")
 
+	# If the user is using markdown formatting, let them choose what type of post they want. Sort of like Tumblr. 
+
+	OPTIONS="Text Quote Image Audio Video"
+	
+	if [ $JEKYLL_FORMATTING = "markdown" -o $JEKYLL_FORMATTING = "textile" ]
+	then
+		select OPTION in $OPTIONS
+		do
+			if [[ $OPTION = "Text" ]] 
+			then
+				POST_TYPE="Text"
+				break
+			fi
+
+			if [[ $OPTION = "Quote" ]]
+			then
+				POST_TYPE="Quote"
+				break
+			fi
+		
+			if [[ $OPTION = "Image" ]]
+			then
+				POST_TYPE="Image"
+				break
+			fi
+
+			if [[ $OPTION = "Audio" ]]
+			then
+				POST_TYPE="Audio"
+				break
+			fi
+
+			if [[ $OPTION = "Video" ]]
+			then
+				POST_TYPE="Video"
+				break
+			fi
+		done
+	fi
+
 	# Get the title for the new post
 
 	read -p "Enter title of the new post: " POST_TITLE
@@ -50,6 +92,68 @@
 	echo "---" >> $FNAME
 	echo >> $FNAME
 
+	# Generate template text based on the post type
+
+	if [[ $JEKYLL_FORMATTING = "markdown" ]]
+	then
+		if [[ $POST_TYPE = "Text" ]]
+		then
+			true
+		fi
+
+		if [[ $POST_TYPE = "Quote" ]]
+		then
+			echo "> Quote" >> $FNAME
+			echo >> $FNAME
+			echo "— Author" >> $FNAME
+		fi
+
+		if [[ $POST_TYPE = "Image" ]]
+		then
+			echo "![Alternate Text](/path/to/image/or/url)" >> $FNAME
+		fi
+
+		if [[ $POST_TYPE = "Audio" ]]
+		then
+			echo "<html><audio src=\"/path/to/audio/file\" controls=\"controls\"></audio></html>" >> $FNAME
+		fi
+
+		if [[ $POST_TYPE = "Video" ]]
+		then
+			echo "<html><video src=\"/path/to/video\" controls=\"controls\"></video></html>" >> $FNAME
+		fi
+	fi
+
+	if [[ $JEKYLL_FORMATTING = "textile" ]]
+	then
+		if [[ $POST_TYPE = "Text" ]]
+		then
+			true
+		fi
+
+		if [[ $POST_TYPE = "Quote" ]]
+		then
+			echo "bq. Quote" >> $FNAME
+			echo >> $FNAME
+			echo "&mdash; Author" >> $FNAME
+		fi
+
+		if [[ $POST_TYPE = "Image" ]]
+		then
+			echo "!url(alt text)" >> $FNAME
+		fi
+
+		if [[ $POST_TYPE = "Audio" ]]
+		then
+			echo "<html><audio src=\"/path/to/audio/file\" controls=\"controls\"></audio></html>" >> $FNAME
+		fi
+
+		if [[ $POST_TYPE = "Video" ]]
+		then
+			echo "<html><video src=\"/path/to/video\" controls=\"controls\"></video></html>" >> $FNAME
+		fi
+	fi
+
 	# Open the file in your favorite editor
 
 	$EDITOR $FNAME
diff --git a/plugins/vagrant.plugins.bash b/plugins/vagrant.plugins.bash
new file mode 100644
index 0000000..17aff4e
--- /dev/null
+++ b/plugins/vagrant.plugins.bash
@@ -0,0 +1,50 @@
+#!/bin/bash
+_vagrant()
+{
+    cur="${COMP_WORDS[COMP_CWORD]}"
+    prev="${COMP_WORDS[COMP_CWORD-1]}"
+    commands="box destroy halt help init package provision reload resume ssh ssh_config status suspend up version"
+
+    if [ $COMP_CWORD == 1 ]
+    then
+      COMPREPLY=($(compgen -W "${commands}" -- ${cur}))
+      return 0
+    fi
+
+    if [ $COMP_CWORD == 2 ]
+    then
+        case "$prev" in
+            "box")
+              box_commands="add help list remove repackage"
+              COMPREPLY=($(compgen -W "${box_commands}" -- ${cur}))
+              return 0
+            ;;
+            "help")
+              COMPREPLY=($(compgen -W "${commands}" -- ${cur}))
+              return 0
+            ;;
+            *)
+            ;;
+        esac
+    fi
+
+    if [ $COMP_CWORD == 3 ]
+    then
+      action="${COMP_WORDS[COMP_CWORD-2]}"
+      if [ $action == 'box' ]
+      then
+        case "$prev" in
+            "remove"|"repackage")
+              local box_list=$(find $HOME/.vagrant/boxes/* -maxdepth 0 -type d -printf '%f ')
+              COMPREPLY=($(compgen -W "${box_list}" -- ${cur}))
+              return 0
+              ;;
+            *)
+            ;;
+        esac
+      fi
+    fi
+
+}
+complete -F _vagrant vagrant
+
diff --git a/themes/base.theme.bash b/themes/base.theme.bash
index 9ae5d0e..e77d1d2 100644
--- a/themes/base.theme.bash
+++ b/themes/base.theme.bash
@@ -50,7 +50,7 @@
 }
 
 function git_prompt_info {
-  if [[ -n $(git status -s 2> /dev/null) ]]; then
+  if [[ -n $(git status -s 2> /dev/null |grep -v ^# |grep -v "working directory clean") ]]; then
       state=${GIT_THEME_PROMPT_DIRTY:-$SCM_THEME_PROMPT_DIRTY}
   else
       state=${GIT_THEME_PROMPT_CLEAN:-$SCM_THEME_PROMPT_CLEAN}
@@ -81,4 +81,4 @@
     rvm=$(rvm tools identifier) || return
     echo -e "$RVM_THEME_PROMPT_PREFIX$rvm$RVM_THEME_PROMPT_SUFFIX"
   fi
-}
\ No newline at end of file
+}
diff --git a/themes/minimal/minimal.theme.bash b/themes/minimal/minimal.theme.bash
index e70165d..2f9b926 100644
--- a/themes/minimal/minimal.theme.bash
+++ b/themes/minimal/minimal.theme.bash
@@ -7,3 +7,5 @@
 }
 
 PROMPT_COMMAND=prompt_setter
+
+export PS3=">> "