31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/deplate/mod/code-gvim.rb', line 31
def gvim_to_html(syntax, style, text)
unless @deplate.allow_external
return
end
gvim = %{#{Deplate::External.get_app('gvim')} -f +"syn on" +"let use_xhtml = 1" +"set ft=#{syntax}" +"colorscheme #{style || "default"}" +"run! syntax/2html.vim" +"wq" +"q" deplateGvim}
@deplate.in_working_dir(Dir.tmpdir) do
FileUtils.rm("deplateGvim.html") if File.exist?("deplateGvim.html")
Deplate::External.write_file(self, "deplateGvim") {|io| io.puts(text)}
IO.popen(gvim) {|io| puts io.gets until io.eof }
if File.exist?("deplateGvim.html")
rv = [%{<div class="code">}]
File.open("deplateGvim.html") do |io|
until io.eof?
line = io.gets
line.chomp!
if line =~ /^<pre>$/ .. line =~ /^<\/pre\>$/
line.gsub!(/<font (\w+)="(.+?)">(.*?)<\/font>/,
'<span style="\\1: \\2;">\\3</span>')
rv << line
end
end
end
rv << %{</div>}
return rv
else
log("Error when running gvim", :error)
end
end
return nil
end
|