forked from mynyml/nanotest
-
Notifications
You must be signed in to change notification settings - Fork 1
/
markdown.watchr
executable file
·38 lines (31 loc) · 891 Bytes
/
markdown.watchr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#!/usr/bin/env watchr
require 'pathname'
require 'rdiscount'
# --------------------------------------------------
# Helpers
# --------------------------------------------------
class ::String
def md2html
RDiscount.new(self).to_html
end
def save_as(path)
Pathname(path).open('w') {|f| f << self }
end
end
default_action do
md = Pathname('README.md').expand_path
html = Pathname('doc/README.html').expand_path
puts "Translating #{md.basename} (file://#{html})"
md.read.md2html.save_as(html)
end
# --------------------------------------------------
# Watchr Rules
# --------------------------------------------------
watch( '^README\.md' )
# --------------------------------------------------
# Signal Handling
# --------------------------------------------------
# Ctrl-\
Signal.trap('QUIT') { default_action.call }
# Ctrl-C
Signal.trap('INT') { abort("\n") }