Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/xcodebuild/blog-admin

Write blog in emacs with hexo/org-page/nikola
https://github.com/xcodebuild/blog-admin

blog emacs

Last synced: about 2 months ago
JSON representation

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

Awesome Lists containing this project

README

        

[[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.