首页 > Markdown 新建头部信息疑问

Markdown 新建头部信息疑问

需求:打算在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

【热门文章】
【热门文章】