38 lines
726 B
Ruby
38 lines
726 B
Ruby
|
require "liquid"
|
||
|
require "jekyll"
|
||
|
|
||
|
module Jekyll
|
||
|
module LynnesbianDotSpaceFilters
|
||
|
def ansi_colour(code)
|
||
|
"\u001b[38;5;#{code}m"
|
||
|
end
|
||
|
|
||
|
def ansi_bg(code)
|
||
|
"\u001b[48;5;#{code}m"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class AnsiResetTag < Liquid::Tag
|
||
|
def render(context)
|
||
|
"\u001b[0m"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class AnsiBoldTag < Liquid::Tag
|
||
|
def render(context)
|
||
|
"\u001b[1m"
|
||
|
end
|
||
|
end
|
||
|
|
||
|
class AnsiUnderlineTag < Liquid::Tag
|
||
|
def render(context)
|
||
|
"\u001b[4m"
|
||
|
end
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
Liquid::Template.register_filter(Jekyll::LynnesbianDotSpaceFilters)
|
||
|
Liquid::Template.register_tag('ansi_reset', Jekyll::AnsiResetTag)
|
||
|
Liquid::Template.register_tag('ansi_bold', Jekyll::AnsiBoldTag)
|
||
|
Liquid::Template.register_tag('ansi_underline', Jekyll::AnsiUnderlineTag)
|