~aleteoryx/lfm_embed

214547738d429bb4c8f8475a21ff21b9a66b2bac — alyx 1 year, 1 month ago 9b5bd90
Add todo list
1 files changed, 27 insertions(+), 0 deletions(-)

A TODO.md
A TODO.md => TODO.md +27 -0
@@ 0,0 1,27 @@
# Future plans for this project:

## Custom Fonts
For ease-of-inclusion this should probably be handled by internal code, and provided as a set of properties on `lfm_embed::ctx::model::Data`.

There are 3 main kinds of fonts we should support.
- User-hosted fonts. These would be loaded directly from a link to a TTF,WOFF2,etc font file.
- Google fonts fonts. In theory, we'd proxy these, but that's not 100% necessary.
- Named fonts. e.x. 'serif', 'sans-serif', 'monospace'. Browser will handle these.

There is no good way to expose a typed enum with the current wizard UI, and the resulting UI from this could allow added user flexibility.

I propose the following API:

- `?font=foo` corresponds directly with `* { font-family: 'foo' }` in the CSS.
- `?font=foo&include-font=https://example.com/font.otf` will additionally append `@font-face { font-family: 'foo' src: url('https://example.com/font.otf') }`.

There will also be a `?include-stylesheet` parameter, allowing for general custom styles, including google fonts et. al.


## Move more things internal

Of the crates currently relied on, the following appear too feature-packed should be replaced with simpler internal code.

- duration-str
- htmlize
- urlencoding