Blux

Blux is an offline blog manager that lets you manage your blog posts offline and publish them to any blog engine that supports AtomPub.

install

gem install Blux

That's it!

configuration

Blux reads its configuration info from ~/.bluxrc. The first time you run blux, it will create this file for you, but will immediately complain about missing configuration items. Use the following configuration example for a Wordpress blog and edit each line as needed:

editor: vim

blog: myWordpressBlog
author_name: Mr. Author
user_name: my_user_id
password: my_password

editor: this is the shell command that will be executed to launch your editor of choice

blog: this is your Wordpress blog ID

author_name: the name of the author

user_name: your Wordpress user name that Blux will use to publish your posts

password: your Wordpress password

Blux from command line

Blux is a command line tool that currently operates without a GUI of any sort. Here are a few of the commands you can use:

$ blux -n (--new)

this command launches your text editor. As soon as you quit the editor, it will create a draft in the Blux draft folder in ~/.blux/draft

$ blux -s (--set) --latest title "a title"

this command sets a title on the latest created draft

$ blux -s -f draft1.23 title "a title"

the -f option can be used to tell Blux to operate on a specific draft by use the draft's filename (without the path)

$ blux -s --title "old title" title "new title"

use --title to tell Blux to operate on a draft with a specific title. In this case, blux will change the title of the "old title" draft to "new title"</p> <blockquote> <p>$ blux -l (--list)</p> </blockquote> <p>this command will list all your drafts, showing each draft by filename</p> <blockquote> <p>$ blux -l --with-preview</p> </blockquote> <p>use --with-preview when you want to show a small snippet of each draft during the listing</p> <blockquote> <p>$ blux -l --details -f draft1.23</p> </blockquote> <p>user --details to see each draft filename followed by the drafts attributes in JSON format when listing</p> <blockquote> <p>$ blux -o (--out) -f draft1.23</p> </blockquote> <p>this command will output the content of your draft to stdin</p> <blockquote> <p>$ blux -c (--convert) --latest</p> </blockquote> <p>this command will invoke the specified converter to convert your post to html</p> <blockquote> <p>$ blux -e (--edit) --title "title 1"</p> </blockquote> <p>use this command to edit a draft</p> <blockquote> <p>$ blux -e -f draft1.23 --verbose</p> </blockquote> <p>when using the --verbose option, Blux will output a lot of extra information to the screen as it works</p> <blockquote> <p>$ blux -p (--publish) [--latest, --title <a title>, --file <filename>]</p> </blockquote> <p>this command will publish your draft. It will publish either the latest draft, or a draft with a specific title, or a draft with a specific filename, as specified in the command.</p> <blockquote> <p>$ blux -u (--update) [--latest, --title <a title>, --file <filename>]</p> </blockquote> <p>this command will update an exisiting published blog post. It will update either the latest draft, or a draft with a specific title, or a draft with a specific filename, as specified in the command.</p> <blockquote> <p>$ blux -d (--delete) [--latest, --title <a title>, --file <filename>]</p> </blockquote> <p>this command will delete a published blog post and mark the associated draft as deleted. The draft will still exist, but Blux will not take it into consideration anymore.</p> <h2 id="community">community</h2> <p>feel free to post your comments or questions to the Blux Google group here: <a href="mailto:blux_manager@googlegroups.com">blux_manager@googlegroups.com</a> </p> </div></div> <div id="footer"> Generated on Sat Nov 23 04:29:02 2024 by <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a> 0.9.36 (ruby-3.3.5). </div> <script> window.yard_library_name = 'Blux'; window.yard_library_version = '0.0.5'; </script> <script> (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-7172246-5', 'auto'); ga('send', 'pageview'); </script> </div> </body> </html><script src="/cdn-cgi/scripts/7d0fa10a/cloudflare-static/rocket-loader.min.js" data-cf-settings="39aff4697c334d50ad106ad8-|49" defer></script>