需求:打算在vim中创建一个md的文件,就自带头部信息,省得每次都去编辑(之前用haroopad,常拷贝头部信息)
实际: 我现在查到两种方式能自建头部信息
rake page name="testpage.md" (用不上 / 用不来)
rake post title="testpost" (可以,但是出了点问题,它会如下所示)
1 ---
2 layout: post
3 title: "testpost"
4 categories:
5 -
6 tags:
7 -
8
9
10 ---
这虽然没什么,手动调整下就是,但还是难免让人觉得别扭。
除此之外,我还打算在头部信息里面加上自定义的 thread: int
信息,该怎么整合呢?请有经验的大大们帮助下小弟。谢谢大家
error log:
处理 /home/mugya/.vimrc 时发生错误:
第 113 行:
E492: 不是编辑器的命令: snippet head "for markdown" b
第 114 行:
E16: 无效的范围: ---
第 115 行:
E492: 不是编辑器的命令: layout: ${1:post}
第 116 行:
E492: 不是编辑器的命令: title: "${2:title}"
第 117 行:
E492: 不是编辑器的命令: categories:
第 119 行:
E488: 多余的尾部字符: tags:
第 121 行:
E16: 无效的范围: ---
第 122 行:
E492: 不是编辑器的命令: endsnippet
rake
命令执行的是目录中Rakefile
文件里定义的task
。
我在这里举一个例子,是我搭建的Jekyll-Bootstrap的Blog。
# Usage: rake post title="A Title" [date="2012-02-09"] [tags=[tag1,tag2]] [category="category"]
desc "Begin a new post in #{CONFIG['posts']}"
task :post do
abort("rake aborted: '#{CONFIG['posts']}' directory not found.") unless FileTest.directory?(CONFIG['posts'])
title = ENV["title"] || "new-post"
tags = ENV["tags"] || "[]"
category = ENV["category"] || ""
slug = title.downcase.strip.gsub(' ', '-').gsub(/[^\w-]/, '')
begin
date = (ENV['date'] ? Time.parse(ENV['date']) : Time.now).strftime('%Y-%m-%d')
rescue => e
puts "Error - date format must be YYYY-MM-DD, please check you typed it correctly!"
exit -1
end
filename = File.join(CONFIG['posts'], "#{date}-#{slug}.#{CONFIG['post_ext']}")
if File.exist?(filename)
abort("rake aborted!") if ask("#{filename} already exists. Do you want to overwrite?", ['y', 'n']) == 'n'
end
puts "Creating new post: #{filename}"
open(filename, 'w') do |post|
post.puts "---"
post.puts "layout: post"
post.puts "title: \"#{title.gsub(/-/,' ')}\""
post.puts 'description: ""'
post.puts "category: \"#{category.gsub(/-/,' ')}\""
post.puts "tags: #{tags}"
post.puts "---"
post.puts "{% include JB/setup %}"
end
end # task :post
以上这个task
就对应命令$ rake post xxx
,其中
open(filename, 'w') do |post|
post.puts "---"
post.puts "layout: post"
post.puts "title: \"#{title.gsub(/-/,' ')}\""
post.puts 'description: ""'
post.puts "category: \"#{category.gsub(/-/,' ')}\""
post.puts "tags: #{tags}"
post.puts "---"
post.puts "{% include JB/setup %}"
end
对应的就是Markdown的文件头,你可以根据需要自行修改。
不是ruby用户,是vim用户,你可以试试用vim的代码片段插件Ultisnips插件,写一个snipet,很省事
snippet head "for markdown" b
---
layout: ${1:post}
title: "${2:title}"
categories:
-
tags:
-
---
endsnippet