Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: 14 days ago
JSON representation
Write blog in emacs with hexo/org-page/nikola
- Host: GitHub
- URL: https://github.com/xcodebuild/blog-admin
- Owner: xcodebuild
- License: gpl-2.0
- Created: 2016-01-28T13:43:44.000Z (almost 9 years ago)
- Default Branch: master
- Last Pushed: 2022-04-18T20:52:50.000Z (over 2 years ago)
- Last Synced: 2024-11-06T14:39:28.426Z (about 1 month ago)
- Topics: blog, emacs
- Language: Emacs Lisp
- Homepage:
- Size: 85.9 KB
- Stars: 229
- Watchers: 10
- Forks: 24
- Open Issues: 11
-
Metadata Files:
- Readme: README.org
- License: LICENSE
Awesome Lists containing this project
- my-awesome-github-stars - xcodebuild/blog-admin - Write blog in emacs with hexo/org-page/nikola (Emacs Lisp)
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.