Folders and files
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Repository files navigation
[[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]] * blog-admin https://github.com/CodeFalling/blog-admin/issues Write blog in emacs with hexo, org-page or nikola. * Preview [[https://cloud.githubusercontent.com/assets/5436704/12700452/1aa686ea-c81e-11e5-92c6-5cd5e810ba35.gif]] * Install ** Melpa ** Manual 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 * 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 [[https://github.com/CodeFalling/hexo-renderer-org][hexo-renderer-org]]. ** configure #+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 * nikola [[https://getnikola.com/][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 [[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.