blog-admin
https://github.com/CodeFalling/blog-admin/issues Write blog in emacs with hexo, org-page or nikola.
Preview
Install
Melpa
Manual
git clone https://github.com/CodeFalling/blog-admin /path/to/blog-admin -b master
(add-to-load-path "/path/to/blog-admin")
(require 'blog-admin)
- 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)
(blog-admin :location (recipe
:fetcher github
:repo "codefalling/blog-admin"))
in your layer’s packages, then
(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)
))
Usage
(require 'blog-admin)
firstM-x blog-admin-start
to start this.d
to delete current postw
to write new posts
to switch between draft and categories
Open post after create new post
(add-hook 'blog-admin-backend-after-new-post-hook 'find-file)
hexo
orgmode & markdown
Both orgmode
or markdown
works well.You can even use them at the same time.But this plugin do nothing about render.If you want to make orgmode work with hexo,you’d better use hexo-renderer-org.
configure
(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
org-page
org-page is pure emacs static blog generator.
configure
(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
nikola
Nikola is Python based static blog generator that supports org-mode posts with a bunch of other formats.
To be able to use blog-admin on your Nikola site, you will need to install the tags plugin and Nikola >= 7.7.9.
configure
(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
Thanks
- I stole idea that operating posts in table from org-octopress.
- The table build on a awesome library: emacs-ctable.
- Thanks for s and f who provide a modern API for emacs.