Org2Blog v1.0.0 Released!

Seven years ago today @punchagan made the first commit 4f41f5c on Org2Blog. He started what has grown to be a loved and adored Emacs package. Combining the power of Org-Mode with the gargantuan wealth of WordPress, Org2Blog unites the two creating one of the worlds most elegant blogging systems ever. Thousands of users around the world use it daily with big smiles on their faces.

Thank you @punchagan, contributors, issue and feature reporters, Org-Mode team, Emacs team and the Philosophy of the GNU Project for sharing this gift with the world.

After seven years of development, maintenance, support and new features along with years of stable use, Org2Blog is ready for a major release at v1.0.0.

By the way, it is exactly seven years today and I absolutely did not plan this timing at all!

Maybe The Four Most Important Key-Bindings For High-Speed Org-Mode Literate Programming

Ever watched an Org-Mode Literate Programming program at all? How about progam quickly? I have. I mean I have done both, myself. Can you believe that you can navigate the document, all of its source blocks and fly between editing the source buffer and returning to the host buffer just as fast as a working within a normal code file? You should. Some day I’ll make a screencast proving it. Until then try out these bindings and you will see how quickly you can do Literate Programming fast while having fun:

(define-key org-mode-map (kbd "s-j") #'org-babel-next-src-block)
(define-key org-mode-map (kbd "s-k") #'org-babel-previous-src-block)
(define-key org-mode-map (kbd "s-l") #'org-edit-src-code)
(define-key org-src-mode-map (kbd "s-l") #'org-edit-src-exit)

Auto-Loading Org2Blog Mode

Org2Blog enables you to blog from an Org-Mode document straight into a WordPress post or page. My blog has an individual file for every post or page for example. You can also keep them all in a single file if you like. Everybody uses Org2Blog differently.

Some people like to use org2blog/wp-mode when they are working on their posts. The trouble is that they have got to start the mode manually every time. That is because Org2Blog files are plain old Org-Mode files. So there is no obvious way to automatically enable org2blog/wp-mode. There are a lot of ideas on how to automatically enable it and this is the one that got implemented. Here is how it works:

  • Add org2blog/wp-org-mode-hook-fn to org-mode-hook
  • So that org2blog/wp-mode is automatically enabled when #+ORG2BLOG: is present
  • Add code like this somewhere after you load Org-Mode and org2blog

    (add-hook 'org-mode-hook #'org2blog/wp-org-mode-hook-fn)
    
  • Add #+ORG2BLOG: to your file
    • When you create a new entry it is automatically created

Emacs' Buffer: The Ultimate Idea

Do you ever struggle to explain Emacs’ astounding power to other non-Emacsers?

Usually I do, but in this post is the first time that I ever felt that I did it some justice. But that is just a feeling and I want to know your take on it.

It is raw and unrefined, but, if you can read it just from one Emacser to another Emacser then want to hear your take on it, too. Your time is precious and this is something near and dear to my heart so I appreciate you spending your time to share your feedback and ideas.

Here is my response to the question What are the pros and cons of Emacs’ everything is a buffer approach and how does Atom compare in this regard?

Continue reading “Emacs' Buffer: The Ultimate Idea”

Keybinding To The Same Letter Both Lowercase And Uppercase

This post explains how to keybind to the same letter both lowercase and uppercase by using vector format. Key detail:

You must use the same syntax for both keybindings!

This always works correctly.

(global-set-key [(control meta ?p)] #'help/insert-datestamp)
(global-set-key [(control meta shift ?p)] #'help/insert-timestamp*-no-colons)

This only sometimes works correctly which is the worst kind of working: don’t do it!

(global-set-key (kbd "C-M-p") #'help/insert-datestamp)
(global-set-key [(control meta shift ?p)] #'help/insert-timestamp*-no-colons)

Send Line To Any REPL

Send the current line to the REPL, evaluate it and move to the next line. Works for lots of languages and does the right thing navigating to the next line.

If you learned this in ESS then you already love it. If you didn’t then you probably will now

Continue reading “Send Line To Any REPL”

Start An Emacs Configuration Startup Debugging Instance Like This

Whether you use Org-Mode Literate Programming to manage your Emacs startup or not, you will enjoy testing your configuration files changes in another Emacs instance:

alias ets="emacs --debug-init --no-init-file --no-splash --background-color white --foreground-color black --vertical-scroll-bars --eval '(switch-to-buffer \"*Messages*\")' --name TEST --title TEST --load ~/src/help/.emacs.el &"

For Sun workstation bootup nostalgia the buffer has black text on a white background.

Maybe Include This Info With Your Org-Mode ECM

(message "ECM Information Follows")
(message "Org-Version:")
(message (org-version))
(message "Org-Git-Version:")
(message (org-git-version))
(message "Emacs-Version:")
(message (emacs-version))
(message "org-babel-default-header-args")
(princ org-babel-default-header-args)