Bu eklentiyi oldukça seviyorum ascii art şeklinde çizdiğiniz her türlü içeriği otomatik olarak resme dönüştürüp sayfanızda gösterebilmenize imkan tanıyor. ditaa’ya istediğinizi çizdirebilirsiniz. Tabi biraz yeteneğiniz olmalı çünkü oluşturana kadar biraz sıkıntı çekebilirsiniz. Otomatik oluşturan bir araç vs var mı bilmiyorum.
+--------+ +-------+ +-------+
| | --+ ditaa +--> | |
| Text | +-------+ |diagram|
|Document| |!magic!| | |
| {d}| | | | |
+---+----+ +-------+ +-------+
: ^
| Lots of work |
+-------------------------+
şimdi yukarıdaki güzel çekli çizdirmek istersek ilk önce sisteme ditaa
paketini ekleyeceğiz sonra eklentiyi _plugins
klasörüne atacağız ve sonrasında otomatik olarak çizdiğiniz artık her neyse otomatik olarak resme dönüşecek
apt-get install ditaa
Kurulum tamamlanınca artık hazırsınız ditaa
uygulaması java ile yazıldığı için yüklenecek paketler çok olabilir gözünüz korkmasın.
require 'fileutils'
require 'digest/md5'
module Jekyll
class DitaaBlock < Liquid::Block
def initialize(tag_name, markup, tokens)
super
@ditaa_exists = system('which ditaa > /dev/null 2>&1')
@result = True
if @ditaa_exists
# No cheesy separations and shadows
options = ' -E -S -o'
# There is always a blank line at the beginning, so we remove to get rid
# of that undesired top padding in the ditaa output
ditaa = @nodelist.to_s.gsub(/^$n/, '')
hash = Digest::MD5.hexdigest(@nodelist.to_s)
@png_name = 'assets/ditaa/ditaa-' + hash + '.png'
if not File.exists?(@png_name)
File.open('/tmp/ditaa-foo.txt', 'w') {|f| f.write(ditaa)}
@result = system('ditaa /tmp/ditaa-foo.txt ' + @png_name + options)
end
end
end
def render(context)
if @ditaa_exists and @result
'<figure><img src="/' + @png_name + '" /></figure>'
else
'<code><pre>' + super + '</pre></code>'
end
end
end
end
Liquid::Template.register_tag('ditaa', Jekyll::DitaaBlock)
Oluşturulan resimler assets/ditaa/
klasörüne atılacağını unutmayın.