mirror of
https://github.com/ralsina/tartrazine.git
synced 2024-09-20 07:21:22 +00:00
Added test binary, code to read base16 themes
This commit is contained in:
parent
a2394a7313
commit
94bc221545
@ -6,11 +6,13 @@ authors:
|
|||||||
|
|
||||||
targets:
|
targets:
|
||||||
tartrazine:
|
tartrazine:
|
||||||
main: src/tartrazine.cr
|
main: src/main.cr
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
base58:
|
base58:
|
||||||
github: crystal-china/base58.cr
|
github: crystal-china/base58.cr
|
||||||
|
sixteen:
|
||||||
|
github: ralsina/sixteen
|
||||||
|
|
||||||
crystal: ">= 1.13.0"
|
crystal: ">= 1.13.0"
|
||||||
|
|
||||||
|
@ -66,7 +66,3 @@ module Tartrazine
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
lexer = Tartrazine.lexer("crystal")
|
|
||||||
theme = Tartrazine.theme("catppuccin-macchiato")
|
|
||||||
puts Tartrazine::Html.new.format(File.read(ARGV[0]), lexer, theme)
|
|
||||||
|
5
src/main.cr
Normal file
5
src/main.cr
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
require "./**"
|
||||||
|
|
||||||
|
lexer = Tartrazine.lexer("crystal")
|
||||||
|
theme = Tartrazine.theme("catppuccin-macchiato")
|
||||||
|
puts Tartrazine::Html.new.format(File.read(ARGV[0]), lexer, theme)
|
@ -1,3 +1,4 @@
|
|||||||
|
require "sixteen"
|
||||||
require "xml"
|
require "xml"
|
||||||
|
|
||||||
module Tartrazine
|
module Tartrazine
|
||||||
@ -78,6 +79,41 @@ module Tartrazine
|
|||||||
parents
|
parents
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# Load from a base16 theme name using Sixteen
|
||||||
|
def self.from_base16(name : String) : Theme
|
||||||
|
t = Sixteen.theme(name)
|
||||||
|
# The color assignments are adapted from
|
||||||
|
# https://github.com/mohd-akram/base16-pygments/
|
||||||
|
|
||||||
|
t.styles["Background"] = Style.new(color: t["base05"], background: t["base00"])
|
||||||
|
t.styles["Text"] = Style.new(color: t["base05"])
|
||||||
|
t.styles["Error"] = Style.new(color: t["base08"])
|
||||||
|
t.styles["Comment"] = Style.new(color: t["base03"])
|
||||||
|
t.styles["CommentPreProc"] = Style.new(color: t["base0f"])
|
||||||
|
t.styles["CommentPreProcFile"] = Style.new(color: t["base0b"])
|
||||||
|
t.styles["Keyword"] = Style.new(color: t["base0e"])
|
||||||
|
t.styles["KeywordType"] = Style.new(color: t["base08"])
|
||||||
|
t.styles["NameAttribute"] = Style.new(color: t["base0d"])
|
||||||
|
t.styles["NameBuiltin"] = Style.new(color: t["base08"])
|
||||||
|
t.styles["NameBuiltinPseudo"] = Style.new(color: t["base08"])
|
||||||
|
t.styles["NameClass"] = Style.new(color: t["base0d"])
|
||||||
|
t.styles["NameConstant"] = Style.new(color: t["base09"])
|
||||||
|
t.styles["NameDecorator"] = Style.new(color: t["base09"])
|
||||||
|
t.styles["NameFunction"] = Style.new(color: t["base0d"])
|
||||||
|
t.styles["NameNamespace"] = Style.new(color: t["base0d"])
|
||||||
|
t.styles["NameTag"] = Style.new(color: t["base0e"])
|
||||||
|
t.styles["NameVariable"] = Style.new(color: t["base0d"])
|
||||||
|
t.styles["NameVariableInstance"] = Style.new(color: t["base08"])
|
||||||
|
t.styles["Number"] = Style.new(color: t["base09"])
|
||||||
|
t.styles["Operator"] = Style.new(color: t["base0c"])
|
||||||
|
t.styles["OperatorWord"] = Style.new(color: t["base0e"])
|
||||||
|
t.styles["Literal"] = Style.new(color: t["base0b"])
|
||||||
|
t.styles["String"] = Style.new(color: t["base0b"])
|
||||||
|
t.styles["StringInterpol"] = Style.new(color: t["base0f"])
|
||||||
|
t.styles["StringRegex"] = Style.new(color: t["base0c"])
|
||||||
|
t.styles["StringSymbol"] = Style.new(color: t["base09"])
|
||||||
|
end
|
||||||
|
|
||||||
# Load from a Chroma XML file
|
# Load from a Chroma XML file
|
||||||
def self.from_xml(xml : String) : Theme
|
def self.from_xml(xml : String) : Theme
|
||||||
document = XML.parse(xml)
|
document = XML.parse(xml)
|
||||||
|
Loading…
Reference in New Issue
Block a user