知识库从 vimwiki 切到以 markdown 为主来写

June 23, 2017

缘起

vimwiki 写了很多年了, 因为是它特有的 wiki 语法, 想把文章转到其他地方的时候总是不太方便, 语法和 markdown 有点差异

vimwiki 也能设置使用 markdown 语法, 但支持很弱, 没有办法 export 为 html

看来是下定决心把多年写的几千个 wiki 转为用 markdown 了

转换

转换 Vimwiki 为 Markdown里的脚本

但是作者没有考虑 wiki 文件名中有空格的情况, 把 sh 脚本改进一下:

#! /bin/bash
for x
do
  filename=$(echo $x|sed -e "s/\.wiki$/.md/")
  sed -f ex "$x" > "$filename"
  echo "$filename"
done

运行完后生成了 wiki 对应的 md 文件

搜索

知识库最重要的就是能快速检索, 以前嫌 vimwiki 自带的查找太慢, 写了一个 searchVimWiki 给 vim 调用.

现在换到 markdown 了, 自然也写一个对应的就行 markdown-search, install 以后, .vimrc 里加上

let g:md_path='/Users/bigzhu/Dropbox/blog/data/'
map <buffer> <c-f> :execute 'silent cd' md_path<cr>:SearchMD 
map <buffer> <c-g> 0v$gf 

"找 md 
if exists("*SearchMD")
else
    function! SearchMD(Name)
        "首先要设置运行路径,避免路径不同
        "execute 'silent cd' wiki.path
        :  echom "silent !markdown_search.py '".g:md_path."' '".a:Name."'"
        execute "silent !markdown_search.py '".g:md_path."' '".a:Name."'"
        execute ":redraw!"
        execute "open search.md"
    endfunction
endif

command! -buffer -nargs=1 SearchMD call SearchMD("<args>")

跳转

没有了 vimwiki 给做好跳转, 只能用 vim 自带的 gf 也就是 go file 来跳转了

但是也是不支持空格, 会从空格处当做单独的文件

官方说在 v 下选中, 再 gf, 可是很麻烦啊.

生成的 search 列表里都是一个文件名一行, 于是加了这句 map <buffer> <c-g> 0v$gf, 按下 ctrl+g 就能跳过去了.

文件不存在时生成

vimwiki 在跳到一个没有的 wiki 时会生成, 并打开给你编写, 这也是增加文件的方式

vim 升级后, gf 不能这样做了

官方建议用 map <leader>gf :e <cfile><cr> , 但 <cfile> 只是光标所在那个单词, 如果文章名有空格那就被断词了.

还是自已敲 :e xxxx.md 来生成吧

update:

参看 vim 获取选中的文字, v 模式选中想生成文章的内容以后, 按下 ctrl+g 就可以

如果不是在 v 模式, 按下 ctrl+g, 那么光标所在这一行的所有文字就做为选中标题

细节配置

关了 NERDTree

知识库里几千篇, 如果开着 NERDTree 打开, 那么结果就是卡在那里很久.

.vim/ftplugin 里增加文件 markdown.vim, 里面加上

let g:nerdtree_tabs_open_on_console_startup=0

打开预览

chrome 里加了 markdown 插件, 用来杳看和导出 pdf 都还行

markdown.vim 里加上

:nmap <f2> :!/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome "%" <cr>

插件

~~vim-markdown-toc ~~

没必要用了, 参看 升级 markdown_blog 的 makrdown 解析器 :GenTocGFM

生成文章目录

加入热键:

:nmap <f2> :GenTocGFM <cr>

vim-table-mode

解决表格的排版问题。

vim-kramdown-tab

解决 GitHub Pages 的列表缩进问题。

生成 blog

以前为 vimwiki 写了 vimblog, 同样不能用了

现在用了标准的 markdown, 有很多现成的, 也不用自已造了.

但是我发现在自已想当然了, 找了一圈下来, 没一个很好的支持静态 md 文件的 blog, 自已再造一个吧.

厌倦了各种很花哨的界面和 js 效果, css 效果, 对返璞归真的简单页面更有好感了

一个非常非常简单的, 只有数行代码的 blog markdown-blog

  • 简单: 只有一个 python 文件, 一个 html 模板
  • github 风的 css 样式, 虽然 github 老改样式, 就让我在这里怀念下不变的老样式吧
  • 简洁漂亮的代码高亮
  • 基于 google 的文章检索(上不了 google? 自已想办法)
  • 文章作者, 文章时间
  • 简单的响应式, 手机上也能看

没有..没有列表, 没有目录, 没有侧边栏

专注内容, 挺好的


comments powered by Disqus