diff --git a/README.md b/README.md
index f704f03..6d1329d 100644
--- a/README.md
+++ b/README.md
@@ -15,6 +15,13 @@ You can see a sample here: [read the initial blog post](https://web.archive.org/
Check out [other bashblog users](https://www.google.com/search?q=%22Generated+with+bashblog,+a+single+bash+script+to+easily+create+blogs+like+this+one%22)
+Install Note
+------------
+```bash
+sudo make install
+```
+to update the script in /usr/local/bin
+
Usage
-----
@@ -27,7 +34,7 @@ To create your first post, just run:
bb post
-It will try to use Markdown, if installed. To force HTML:
+It will use Markdown. To force HTML:
bb post -html
@@ -127,6 +134,7 @@ As a guideline, pull requests should:
Changelog
---------
+- 2.10 Add gopher and gemini support
- 2.9 Added `body_begin_file_index`
- 2.8 Bugfixes
Slavic language support thanks to Tomasz Jadowski
diff --git a/bb.sh b/bb.sh
index 8228eea..4227dbd 100755
--- a/bb.sh
+++ b/bb.sh
@@ -17,19 +17,19 @@ global_config=".config"
# by the 'global_config' file contents
global_variables() {
global_software_name="BashBlog"
- global_software_version="2.9"
+ global_software_version="2.10"
# Blog title
global_title="blog | ~$USER"
# The typical subtitle for each blog
- global_description="A blog about ~$USER"
+ global_description="a blog about ~$USER"
# The public base URL for this blog
global_url="https://envs.net/~$USER/blog"
# Your name
global_author="$USER"
# You can use twitter or facebook or anything for global_author_url
- global_author_url=""
+ global_author_url="https://envs.net/~$USER/"
# Your email
global_email="$USER@envs.net"
@@ -67,6 +67,13 @@ global_variables() {
archive_index="all_posts.html"
tags_index="all_tags.html"
+ # ignore gophermap file
+ gophermap="gophermap"
+
+ # ignore gemini generation script and gemini index
+ gemini_script="generate_gemini.sh"
+ gemini_index="index.gmi"
+
# Non blogpost files. Bashblog will ignore these. Useful for static pages and custom content
# Add them as a bash array, e.g. non_blogpost_files=("news.html" "test.html")
non_blogpost_files=()
@@ -112,7 +119,7 @@ global_variables() {
# "Read more..." (link under cut article on index page)
template_read_more="Read more..."
# "View more posts" (used on bottom of index page as link to archive)
- template_archive="View more posts"
+ template_archive="archive"
# "All posts" (title of archive page)
template_archive_title="All posts"
# "All tags"
@@ -395,7 +402,7 @@ is_boilerplate_file() {
done
case $name in
- ( "$index_file" | "$archive_index" | "$tags_index" | "$footer_file" | "$header_file" | "$global_analytics_file" | "$prefix_tags"* )
+ ( "$index_file" | "$archive_index" | "$gophermap" | "$gemini_index" | "$gemini_script" | "$tags_index" | "$footer_file" | "$header_file" | "$global_analytics_file" | "$prefix_tags"* )
return 0 ;;
( * ) # Check for excluded
for excl in "${html_exclude[@]}"; do
@@ -930,6 +937,61 @@ make_rss() {
chmod 644 "$blog_feed"
}
+# Generate gophermap
+make_gophermap() {
+ if [ ! -d "${HOME}/public_gopher" ]; then
+ printf "Creating gopher hole\\n"
+ mkdir "${HOME}/public_gopher"
+ fi
+
+ if [ ! -L "${HOME}/public_gopher/blog" ]; then
+ ln -s "${HOME}/public_html/blog/" "${HOME}/public_gopher/blog"
+ fi
+
+ if [ ! -f "${HOME}/public_gopher/blog/gophermap" ]; then
+ cat <<- 'EOF' > $HOME/public_html/blog/gophermap
+ #!/bin/bash
+ echo -e "my bashblog posts\n"
+ user=$(stat -c '%U' .)
+ for post in $(ls -t *.md); do
+ post=$(basename $post)
+ echo -e "0$post\t/~$user/blog/$post\ttilde.team\t70"
+ done
+ EOF
+ chmod +x $HOME/public_html/blog/gophermap
+ fi
+ chmod 644 *.md
+}
+
+# Generate gemini page
+make_gemini() {
+ if [ ! -d "${HOME}/public_gemini" ]; then
+ printf "Creating ~/public_gemini\\n"
+ mkdir "${HOME}/public_gemini"
+ fi
+
+ if [ ! -L "${HOME}/public_gemini/blog" ]; then
+ ln -s "${HOME}/public_html/blog/" "${HOME}/public_gopher/blog"
+ fi
+
+ if [ ! -f "${HOME}/public_gemini/blog/generate_gemini.sh" ]; then
+ cat <<- 'EOF' > $HOME/public_gemini/blog/generate_gemini.sh
+ #!/bin/bash
+ echo -e "my bashblog posts\n"
+ user=$(stat -c '%U' .)
+ for post in $(ls -t *.md); do
+ post=$(basename $post)
+ echo -e "=> /~$user/blog/$post $post"
+ done
+ EOF
+ chmod +x ${HOME}/public_gemini/blog/generate_gemini.sh
+ fi
+
+ echo -n "Generating gemini index "
+ ${HOME}/public_gemini/blog/generate_gemini.sh > index.gmi
+ echo ""
+}
+
# generate headers, footers, etc
create_includes() {
{
@@ -1118,6 +1180,13 @@ date_version_detect() {
# $1 command to run
# $2 file name of a draft to continue editing (optional)
do_main() {
+ # make sure we're in the right directory
+ [ $(pwd) != $HOME/public_html/blog ] &&
+ echo "you're not in your blog directory. moving you there now" && cd $HOME/public_html/blog
+ mkdir -p $HOME/public_html/blog
+ cd $HOME/public_html/blog
+ )
+
# Detect if using BSD date or GNU date
date_version_detect
# Load default configuration, then override settings with the config file