org-mode写cnblogs

*/-->

org-mode写cnblogs

Table of Contents

  • 1. 为什么用org-mode写博客
  • 2. 说明
  • 3. 配置方法

1 为什么用org-mode写博客

我最开始用Emacs, 是因为org-mode。这是一个专注于写,而让我忽略展示结果的一种写作方式。为
什么这么说?因为所有内容的格式都是可定制的。按照自己喜欢的格式编写一些格式化配置, 就可以
把org-mode写的内容输出到拥有特定格式的文件,比如html、pdf,这两种常用的文件类型。

除此外,org-mode还可以做计划(TODO list) 等等。这些对于日常的工作都是非常有帮助的。

我喜欢上了org-mode.

与此同时,我又写技术类博客,把自己总结的内容发布到网络上,以飨读者。而很多时候,为了在博客
上格式化自己的文档,又是一件让我兴奋到五体投地的事情。

我尝试把导出成html文件的内容直接copy进博客,发现有些内容无法copy,或者原本的格式已经面目全非。
然后就研究了下,怎么样能把org-mode的内容直接发布到博客,这样可以保持原有的简约格式。

说白了,最根本的原因就是: 我懒!我懒!我懒!重要的事情说三遍!我不想花太多的时间去对文字图片进行重复格式化

2 说明

org-mode 写博客园的方法,主要 是copy 了huwenbiao GITHUB 的代码, 而他的代码是在GITHUB:hexmode 的基础上
针对cnblogs进行了扩展开发。我按照自己的想法对Open__Source的代码做了一些简单的修改。

修改内容:

  1. 原代码,在每次连接cnblogs前,在设置cnblogs的个人信息时,都会像苍蝇一样问我,是不是要把

cnblogs里的博文下载下来,下载的博文是以博文ID命名的html内容文件。个人感觉没有太大的意义 。
而每次都得输入: no. 再次声明: 我懒! 所以我把下载博文的代码给删除了。

  1. 每次要发布博文之前,都要手动设置自己的博客信息(blog id/ 登录名/密码)。 就像老婆让我睡觉

前一定要洗澡一样烦(不会被老婆看到吧~哈哈), 所以我修改了原代码,将个人信息的相关变量单独配置,
以后每次写完org文件,直接 C-c c p 就可以直接发布,而不用每次都要先输入一次个人信息。而如果
没有配置,修改以后的程序会提醒你输入。

  1. 因为 "huwenbiao"已经很久没有更新代码,所以我从GITHUB:hexmode 上复制了最新的内容。

经过修改后,这个世界安静了。

3 配置方法

  • 下载文件
    打开github:huwenbiao, 下载cnblogs.el和metaweblog.el 两个文件,至于另外一个文件xml-rpc.el 请到
    GITHUB:hexmode 下载。
  • 如何加载
    这些是针对小白的。大牛忽略。

将这三个文件放到你的.emacs.d/cnblogs 中. 然后在init.el中 添加如下代码:

;; for cnblogs.
(add-to-list ‘load-path "~/.emacs.d/cnblogs/")
(require ‘cnblogs)
(add-hook ‘org-mode-hook (lambda () (cnblogs-minor-mode)))
(setq org-export-show-temporary-export-buffer nil) ;; 据说不加这一行的话,发布博客后光标会跳转到其他的buffer

这样,以后打开org文件时就会自动加载相关的配置。其中的cnblogs-minor-mode 就是用于发布博客的一个mode.

  • 配置个人信息

    打开cnblogs.el 文件,找到 通过defcustom定义的以下三个变量
    cnblogs-blog-id –> cnblogs 的blog id 比如网址:https://www.cnblogs.com/halberd-lee 的blog id 就是 halberd-lee
    cnblogs-user-name –> 登录cnblogs的用户名

cnblogs-user-passwd –> 登录 cnblogs的密码
三个变量后面的值都是Nil , 修改为自己的信息。

找到setq 定义的以上三个变量,并修改为如下内容:
将以上三个变量部分的代码改为如下:

(unless (stringp cnblogs-blog-id )
  (setq cnblogs-blog-id
        (read-string "Your blog ID:" nil nil)))
(unless (stringp cnblogs-user-name)
  (setq cnblogs-user-name
        (read-string "Your username:" nil nil)))
(unless (stringp cnblogs-user-passwd)
  (setq cnblogs-user-passwd
        (read-passwd "Your password:" nil )))
  • 将定义个人信息与发布命令整合至同一个快捷键

在cnblogs.el 中找到

(defun cnblogs-new-post ()
  (interactive)

在(interactive) 下方添加下面一行:

(cnblogs-setup-blog)

这样就将设置个人信息与发布新博客的命令整合到了一起。

再次声明,*我懒!我懒!我懒!* 能用就行了。我就不去改原来的cnblogs了。

Author: halberd.lee

Created: 2019-06-07 Fri 23:27

Validate

原文地址:https://www.cnblogs.com/halberd-lee/p/10989567.html

时间: 2024-11-08 20:26:14

org-mode写cnblogs的相关文章

使用org-mode写cnblogs博客

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

使用emacs写cnblog

*/--> 使用emacs写cnblog Table of Contents 1. 前言 2. 使用 3. 定制化 1 前言 本文使用的opensource的cnblog插件. 2 使用 在如原文配置好插件后,M-x cnblogs-setup-blog 设置blog. 注意这里的user id为你blog的名字,而 username为你的登录名. 3 定制化 (defun cnblogs-get-template() "Get template for cnblogs" (in

cnblogs和org2blog使用总结

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

Emacs25.1之后UrlHttpError

.title { text-align: center; margin-bottom: .2em } .subtitle { text-align: center; font-size: medium; font-weight: bold; margin-top: 0 } .todo { font-family: monospace; color: red } .done { font-family: monospace; color: green } .priority { font-fami

emacs使用记录

在不同的电脑上都配置过emacs,换了电脑之后需要重新配置一遍,有些步骤都 记不太清楚了,于是写下来,以便换电脑之后有个参考. Table of Contents 1 配置.emacs.d目录 2 配置.emacs 配置.emacs.d目录 无意间看见一片博文 ,emacs配置最好照抄大神的,使用emacs的大神众多,他们的配置也比较好,参考了Eric Schulte 的 Emacs-starter-kit 的配置. 首先git下来,放到.emacs.d目录下边. 配置.emacs 首先将.em

EF的泛型封装 写的很好 转自Fly_Elephant http://www.cnblogs.com/xiaofeixiang/p/4188600.html?utm_source=tuicool

Entity Framework本身的增删改查其实 已经很方便了,不过做项目的时候用的多了也就觉得有点累了,每个业务实体基本上都涉及到到了增删改查这四个基本的要素,至于封装每个公司可能都不一样,接口,设计模式都用的眼花缭乱,我闲来没事就搞个简单的封装Helper,Github上也有关于EF的扩展Libray,具体没有用过,公司的有自己的封装,自己也没怎么弄,具体地址:https://github.com/loresoft/EntityFramework.Extended. 首先来看段代码,mod

JVM学习(2)——技术文章里常说的堆,栈,堆栈到底是什么,从os的角度总结--转载http://www.cnblogs.com/kubixuesheng/p/5202561.html

转载自---http://www.cnblogs.com/kubixuesheng/p/5202561.html 俗话说,自己写的代码,6个月后也是别人的代码--复习!复习!复习!涉及到的知识点总结如下: 堆栈是栈 JVM栈和本地方法栈划分 Java中的堆,栈和c/c++中的堆,栈 数据结构层面的堆,栈 os层面的堆,栈 JVM的堆,栈和os如何对应 为啥方法的调用需要栈 属于月经问题了,正好碰上有人问我这类比较基础的知识,无奈我自觉回答不是有效果,现在深入浅出的总结下: 前一篇文章总结了:JV

高质量的工程代码为什么难写 (转)

http://kb.cnblogs.com/page/558087/ 之所以想起写这篇文章,是因为最近看到的一个著名的开源项目在内部使用时的各种问题,不得不说,很多的开源的东西思想是不错的,但离真正工程化都有不小的距离,所以没什么商业公司采用的开源产品如果要引入的话一定要慎重,通常会有N多的坑等着你去填,而比较成功的开源项目的背后多数都会有商业公司在背后不断的改进. 遥想我2000年开始学习写asp代码时,觉得写代码也不难呀,无非就是学学语法规则.库就可以写出来,记得有一次我实习面试的时候是让我

.NET跨平台:在Mac上跟着错误信息一步一步手写ASP.NET 5程序

今天坐高铁时尝试了一种学习ASP.NET 5的笨方法,从空文件夹开始,根据运行dnx . kestrel命令的错误信息,一步一步写代码,直至将一个最简单的ASP.NET程序运行起来. 尝试的具体步骤如下. 新建一个空文件夹HelloCnblogs: mkdir HelloCnblogs && cd $_ 在这个空HelloCnblogs文件夹中运行 dnx . kestrel 命令(基于CoreCLR的dnx),运行结果是如下的出错信息: System.InvalidOperationEx