使用blog-mode管理笔记


Table of Contents

blog-mode, 一个基于tabulated-list的emacs笔记管理插件

前言

很早之前我一直在使用blog-admin作为博客笔记的管理工具, 虽然没有用社区维护的 CodeFalling/blog-admin, 而是用我自己修改的honmaple/blog-admin, 毕竟我使用的pelican, 是一个很小众的静态博客生成工具, 为了适应pelican, 也为了适应自己平时的使用, 所以自己修改了一个版本

但最近一是闲来没事,二是blog-admin使用的是ctable,中英文对齐上有些问题(虽然早就解决了), 三是觉得blog-admin有很多我不需要的代码, 而且看到那一长串的配置。。。

(setq blog-admin-backend-type 'pelican
      blog-admin-backend-new-post-in-drafts t ;; create new post in drafts by default
      blog-admin-backend-new-post-with-same-name-dir nil ;; create same-name directory with new post
      blog-admin-backend-path "~/git/pelican"
      blog-admin-backend-pelican-config-file "pelicanconf.py"
      blog-admin-backend-pelican-posts-dir "content/org"
      blog-admin-backend-pelican-org-mode-dir "content/org"
      blog-admin-backend-pelican-markdown-dir "content/markdown"
      blog-admin-backend-pelican-drafts-dir "content/draft")
(add-hook 'blog-admin-backend-after-new-post-hook 'find-file)

(maple/add-hook 'blog-admin-mode-hook
  :if (display-graphic-p)
  ;; (set-face-attribute 'variable-pitch nil :font "-Sony-Sony Fixed-normal-normal-normal-*-16-*-*-*-c-80-iso10646-1")
  (set-face-attribute 'variable-pitch nil :font "Inconsolata 12")
  (buffer-face-mode))

查找资料后锁定了tabulated-list, 毕竟默认的emacs包管理器使用的就是tabulated-list, 最终参考package.el.gz, 自己写了一个blog-mode

配置

(use-package blog-mode
  :load-path "site-lisp/blog-mode"
  :commands blog-start
  :config
  (setq blog-root-path "~/git/pelican"   ;; 文章根目录
        blog-org-path "content/org"      ;; org文件保存目录
        blog-md-path "content/markdown"  ;; markdown文件保存目录
        blog-draft-path "content/draft"));; 草稿文件保存目录

快捷键

  • w 新建文章

    新建文章以.org.md结尾, 默认会保存在blog-draft-path目录下

  • r 刷新列表
  • s 发布与未发布切换

    这个其实是目录的切换, 未发布的放到blog-draft-path目录下, 已发布的org文件放到blog-org-path目录, markdown文件放到blog-md-path目录

  • D 删除当前文章
  • f 筛选文章

    筛选titlecategory

  • RET (鼠标左键)
    • 点击title: 打开文件
    • 点击publish: 发布与未发布切换
    • 点击category: 筛选当前分类