Project Awesome project awesome

blog-admin

Write blog in emacs with hexo/org-page/nikola.

Package 228 stars GitHub

[[https://travis-ci.org/CodeFalling/blog-admin][https://travis-ci.org/CodeFalling/blog-admin.svg]] [[https://github.com/syl20bnr/spacemacs][https://cdn.rawgit.com/syl20bnr/spacemacs/442d025779da2f62fc86c2082703697714db6514/assets/spacemacs-badge.svg]]

  1. git clone https://github.com/CodeFalling/blog-admin /path/to/blog-admin -b master
  2. (add-to-load-path "/path/to/blog-admin")
  3. (require 'blog-admin)
  4. You may have to install s f ctable as depends ** Spacemacs If you use a private spacemacs layer, just add blog-admin in your package.el then add below code into your private-layer-name/init-blog-admin

If you use a standalone .spacemacs file, just add blog-admin in your dotspacemacs-additional-packages, then add below code into dotspacemacs/user-config()

If installing from github(not melpa) #+BEGIN_SRC emacs-lisp (blog-admin :location (recipe :fetcher github :repo "codefalling/blog-admin")) #+END_SRC in your layer's packages, then

#+BEGIN_SRC emacs-lisp (use-package blog-admin :init (progn ;; your config (setq blog-admin-backend-type 'hexo) (setq blog-admin-backend-path "~/codefalling.com") (setq blog-admin-backend-new-post-in-drafts t) (setq blog-admin-backend-new-post-with-same-name-dir t) )) #+END_SRC

  • Usage
  • (require 'blog-admin) first
  • M-x blog-admin-start to start this.
  • d to delete current post
  • w to write new post
  • s to switch between draft and categories

** Open post after create new post #+BEGIN_SRC emacs-lisp (add-hook 'blog-admin-backend-after-new-post-hook 'find-file) #+END_SRC

#+BEGIN_SRC emacs-lisp (setq blog-admin-backend-path "~/blog") (setq blog-admin-backend-type 'hexo) (setq blog-admin-backend-new-post-in-drafts t) ;; create new post in drafts by default (setq blog-admin-backend-new-post-with-same-name-dir t) ;; create same-name directory with new post (setq blog-admin-backend-hexo-config-file "my_config.yml") ;; default assumes _config.yml #+END_SRC

  • org-page

[[https://github.com/kelvinh/org-page][org-page]] is pure emacs static blog generator.

** configure #+BEGIN_SRC emacs-lisp (setq blog-admin-backend-type 'org-page) (setq blog-admin-backend-path "~/code/blog") (setq blog-admin-backend-new-post-in-drafts t) (setq blog-admin-backend-new-post-with-same-name-dir t) (setq blog-admin-backend-org-page-drafts "_drafts") ;; directory to save draft (setq blog-admin-backend-org-page-config-file "/path/to/org-page/config.el") ;; if nil init.el is used #+END_SRC

To be able to use blog-admin on your Nikola site, you will need to install the [[https://plugins.getnikola.com/#tags][tags plugin]] and Nikola >= 7.7.9.

** configure #+BEGIN_SRC emacs-lisp (setq blog-admin-backend-type 'nikola) (setq blog-admin-backend-path "/code/blog") (setq blog-admin-backend-new-post-in-drafts t) (setq blog-admin-backend-nikola-executable "/.venvs/nikola/bin/nikola") ;; path to nikola executable (setq blog-admin-backend-nikola-config-file "my_conf.py") ;; conf.py is default #+END_SRC

  • Thanks
  1. I stole idea that operating posts in table from [[https://github.com/yoshinari-nomura/org-octopress][org-octopress]].
  2. The table build on a awesome library: [[https://github.com/kiwanami/emacs-ctable][emacs-ctable]].
  3. Thanks for [[https://github.com/magnars/s.el][s]] and [[https://github.com/rejeep/f.el][f]] who provide a modern API for emacs.
Back to Emacs