diff options
author | Carlos Fenollosa <carlos.fenollosa@gmail.com> | 2014-02-11 11:14:40 +0100 |
---|---|---|
committer | Carlos Fenollosa <carlos.fenollosa@gmail.com> | 2014-02-11 11:14:40 +0100 |
commit | 72b32a918f2f0fcd028fd0a48832b6f65d713e0f (patch) | |
tree | 0bbebccd73aba3b40e473eb1f5ef4b77b326d2ae /README.md | |
parent | 04bba75ce59009a11a8bef9e1fc2497c55f8a2c5 (diff) | |
parent | 4aaae26e927a593df9bed97142074233704f348e (diff) |
Merge branch 'master' of github.com:carlesfe/bashblog
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 95 |
1 files changed, 60 insertions, 35 deletions
@@ -1,65 +1,90 @@ bashblog ======== -A Bash script that handles blog posting. +A single Bash script to create blogs. -Some would say it's a CMS, but I don't like that word. It's just a script that lets you write a blog post with your favorite editor, puts all the posts together into an index, and creates an RSS file and a list of posts. +I created it because I wanted a very, very simple way to post entries to a blog by using a public folder on my server, without any special requirements and dependencies. Works on GNU/Linux, OSX and BSD. -I created it because I wanted a very, very simple way to post entries to a blog by using a public folder on my server, without any special requirements and dependencies. +You can see it live here: [read the initial blog post](http://mmb.pcb.ub.es/~carlesfe/blog/creating-a-simple-blog-system-with-a-500-line-bash-script.html). My blog has been 100% generated using bashblog, no additional tweaking. + + +Features +-------- + +- No installation required. Download `bb.sh` and start blogging. +- Ultra simple usage: Just type a post with your favorite editor and the script does the rest. No templating. +- All content is static. You only need shell access to a machine with a public web folder. + *Tip: advanced users could mount a remote public folder via `ftpfs` and run this script locally* +- Allows drafts, includes a simple but clean stylesheet, generates the RSS file automatically. +- Support for Markdown, Disqus comments, Twitter, Feedburner, Google Analytics. +- GNU/Linux, BSD and OSX compatible out of the box (no need for GNU `coreutils` on a Mac) +- Everything stored in a single 700-line bash script, how cool is that?! ;) -You can read [the initial blog post](http://mmb.pcb.ub.es/~carlesfe/blog/creating-a-simple-blog-system-with-a-500-line-bash-script.html) for more information and as a demo, as my site has been 100% generated using bashblog. Usage ----- -You only need SSH access to a server which allows its users to run shell scripts. - -Copy bb.sh into a public folder of yours and run it: +Copy bb.sh into a public folder (for example, `$HOME/public_html/blog`) and run ./bb.sh This will show the available commands. If the file is not executable, you can either `chmod +x bb.sh` or run it with `bash bb.sh` -**Before creating a blog post, edit `bb.sh` and modify the variables in the `global_variables()` function or create a `.config` file with your configutation values** +**Before creating your first post, you may want to configure the blog settings (title, author, etc). +Read the Configuration section below for more information** -To create your first post, make sure `$EDITOR` is set, and then just do: +To create your first post, just run: ./bb.sh post -When you're done, access the public URL for that folder and you should see the index -file and a new page for that post! +When you're done, access the public URL for that folder (e.g. `http://server.com/~username/blog`) +and you should see the index file and a new page for that post! -Features --------- -- Simple creation and edition of the posts with your favorite text editor -- **NEW** Markdown support via a third-party library (e.g. +Configuration +------------- + +Configuration is not required for a test drive, but if you plan on running your blog with bashblog, you will +want to change the default titles, author names, etc, to match your own. + +There are two ways to configure the blog strings: + +- Edit `bb.sh` and modify the variables in the `global_variables()` function +- Create a `.config` file with your configuration values (useful if you don't want to touch the script) + +The software will load the values in the script first, then overwrite them with the values in the `.config` file. +This means that you don't need to define all variables in the config file, only those which you need to override +from the defaults. + +The format of the `.config` file is just one `variablename="value"` per line, just like in the `global_variables()` +function. **Please remember:** quote the values, do not declare a variable with the dollar sign, do not use +spaces around the equal sign. + +bashblog uses the `$EDITOR` environment value to open the text editor. + + +Detailed features +----------------- + +- A simple but nice and readable design, with nothing but the blog posts +- **NEW on 2.0** Markdown support via a third-party library (e.g. [Markdown.pl](http://daringfireball.net/projects/markdown/)). Use it via `./bb.sh post -m`. The third party library must support an invokation like `markdown_bin in.html > out.md` as the code calls it that way. - Post preview -- Save posts as drafts and resume later -- Transformation of every post to its own html page, using the title as the URL -- Generation of an index.html file with the latest 10 posts -- Generation of an RSS file! Blog's magic is the RSS file, isn't it...? -- Generation of a page with all posts, to solve the index.html pagination problem -- Rebuilding the index files without the need to create a new entry -- By default, comments are delegated to Twitter. Can be configured for Disqus -- Google Analytics support -- Feedburner support -- Auto-generated CSS support +- Save posts as drafts and resume editing later +- HTML page for each post, using its title as the URL +- Configurable number of posts on the front page +- Automatic generation of an RSS file, feedburner support +- Additional page containing an index of all posts +- Rebuild all files while keeping the original data +- Comments delegated to Twitter, with additional Disqus support +- Google Analytics code support +- Contains its own CSS so that everything is reasonably styled by default - Headers, footers, and in general everything that a well-structured html file needs +- Support to add extra content on top of every page (e.g. banners, images, etc) - xhtml validation, CSS validation, RSS validation by the w3c -- Backup of the site every time you post -- Everything contained in a single 700-line bash script! -- A simple but nice and readable design, with nothing but the blog posts +- Automatic backup of the site every time you post (stored as `.backup.tar.gz`) Read the CHANGELOG section of the script header for more updates - -Future ideas ------------- - -This software is still maintained, however, it can be considered more or less finished. -It has been used by many people and no bugs have been found, but if you happen to find one, -please report it. |