Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/noredink/elm-formatted-text-19
A type for representing formatted text in Elm 0.19
https://github.com/noredink/elm-formatted-text-19
Last synced: about 2 months ago
JSON representation
A type for representing formatted text in Elm 0.19
- Host: GitHub
- URL: https://github.com/noredink/elm-formatted-text-19
- Owner: NoRedInk
- License: bsd-3-clause
- Created: 2018-11-14T00:13:00.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2018-11-14T00:15:53.000Z (about 6 years ago)
- Last Synced: 2024-05-08T23:24:39.856Z (8 months ago)
- Language: Elm
- Size: 24.4 KB
- Stars: 1
- Watchers: 3
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# FormattedText
The `FormattedText` type represents some text with markup applied to it. The goal of this library is to make working with such text as easy as working with strings.
## Creating FormattedText
You can create a FormattedText in a number of ways.- Use `formattedText` to combine a string with some formatting ranges. Ranges are allowed to overlap.
- Use `fromString` to turn a string into an unformatted FormattedText.
- Use `unchunk` to create a FormattedText from a list of chunks, pieces of text with homogeneous formatting.## Manipulating FormattedText
Anything you can do with Strings you can do with FormattedText too,
because this lib comes with equivalents of all functions from the core String and Regex modules.## Rendering FormattedText
The easiest way to render `FormattedText` into Html is using the `trees` function, which builds a markup tree from your `FormattedText`.```elm
import FormattedText exposing (..)
import Html exposing (Html)type Markup = Bold | Italic
view : FormattedText Markup -> Html msg
view formattedText =
Html.p [] (trees Html.text viewMarkup)viewMarkup : Markup -> List (Html msg) -> Html msg
viewMarkup markup children =
case markup of
Bold ->
Html.strong [] childrenItalic ->
Html.i [] children
```