Cj-bc / asciiart-hs

A Haskell library to manipulate Ascii art as Graphics
Other
0 stars 0 forks source link

バージョンの一新 #6

Open Cj-bc opened 3 years ago

Cj-bc commented 3 years ago

現状、かなり詰まっていて先が見通せず、進む気配がない。 それなら、もっと単純な内容にしてしまってリリース、v2で改善する方がマシな気がした。 なので、v1は「一種類の文字を使って構成される図形」に限定しようと思う。

Cj-bc commented 3 years ago

IsASCIIが提供されているので、MonoVectorMonoRasterとしてv1を実装するのが良いかもしれない。 MonoはRenderでも使われるのでややこしいかも


data MonoRaster = MonoRaster { monoRasterLines :: [Text] }

instance IsAsciiart MonoRaster where
    fromData :: ByteString -> Maybe a
    fromData = ...

    toData :: a -> ByteString
    toData = ...

    render :: a -> [String]
    render = 
    -- | Render without attributes
    renderMono :: a -> [String]

    -- | Generate Asciiart data from Plain Text
    --
    -- To generate Asciiart data from Plain-text-ASCIIart
    generateFrom :: [String] -> a

    -- | Convert to 'Graphics.Vty.Image.Image'
    toImage :: a -> Image

    -- | Convert to 'Brick.Types.Widget'
    toWidget :: a -> Widget n
    toWidget = raw . toImage
    {-# MINIMAL fromData, toData, renderMono, generateFrom, toImage #-}