satysfi-base
satysfi-base copied to clipboard
add palette.satyg
color.satyhよりも提供する色を増やし、Gray, RGB, CMYKでそれぞれ提供するようにしました。 ファイル名については要議論かもしれません。
追加した色はLaTeXのxcolorパッケージで標準で提供されるものです
プルリクを出すときは自分でレビュワーに適当な人をassignしてもらえるとたすかります!
言い忘れていたのですがpalette.satygの中身はcolor-ext.satyhの中に全部入れてしまってもいいかなと思っています.
実装を大きめに変えてしまう提案なので議論をややこしくしてしまったら申し訳ないのですが、open Grayをつけて回る問題については、抽象的な色を扱うモジュールAbstractColor
module AbstractColor : sig
type t
val red : t
val green : t
val blue : t
...
end = struct
...
と、AbstractColor.tとcolorとの対応付けを行うモジュールColorSpace
module ColorSpace : sig
type t
val into : t -> AbstractColor.t -> color
val gray : t
val rgb : t
val cymk : t
end = struct
...
の二つを用意してやればいい気がします。下のコードのようにColorSpace.tの値を外から与えるようにすれば色空間を切り替えやりやすくなります。コードが長くなってしまうのが難点ですが…
let-inline ctx \todo color-space inner =
let ctx-todo = ctx |> set-text-color (AbstractColor.red |> ColorSpace.into color-space) in
read-inline ctx-todo {[TODO: #inner;]}