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)
