Created
March 27, 2012 18:56
-
-
Save imathis/2219214 to your computer and use it in GitHub Desktop.
Edit Octopress post
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
desc "Edit a post (defaults to most recent)" | |
task :edit_post, :title do |t, args| | |
args.with_defaults(:title => false) | |
posts = Dir.glob("#{source_dir}/#{posts_dir}/*.*") | |
post = (args.title) ? post = posts.keep_if {|post| post =~ /#{args.title}/}.last : posts.last | |
if post | |
puts "Opening #{post} with #{editor}..." | |
system "#{ENV['EDITOR']} #{post} &" | |
else | |
puts "No posts were found with \"#{args.title}\" in the title." | |
end | |
end |
Pesonally I added a task to my Rakefile:
desc "Open newly generated post in Emacs"
task :edit, :filename do |t, args|
puts "Opening post in Emacs"
`emacsclient -n #{args.filename}`
end
You could replace emacsclient -n
with an editor variable at the top of the Rakefile
(like ssh_user
or deploy_branch
). Also adding the globbing as a default if there is no args.filename
would be easy, but personally I modified new_post
and added Rake::Task["edit"].invoke(filename)
.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@imathis Weird...I just have to hit Enter a time or two to get back to a clean prompt.
I believe that this would be a worthwhile addition. It doesn't take away the user's ability to run things manually if they still want to, but it could be welcome functionality for other users. Note that I am in the group of users for which this probably wouldn't work: within the _posts directory I have a directory called "published" for all my published things, and a "drafts" folder for all my drafts. I made a small hack to 'rake isolate' to handle directories. But since I keep all my work-in-progress in a separate folder--and since I don't have a ton of drafts--I don't have to wade through a bunch of extraneous posts to find what I want to work on. But I still think this would be a good idea, if it can be implemented correctly.