mirror of
https://github.com/srid/ema.git
synced 2024-11-29 09:25:14 +03:00
74 lines
3.7 KiB
Markdown
74 lines
3.7 KiB
Markdown
# Revision history for ema
|
|
|
|
## Unreleased
|
|
|
|
- Websocket API: Add `ema.switchRoute` to switch to other routes in live server.
|
|
- Helpers
|
|
- `Ema.Helpers.PathTree` moved to separate package *pathtree*.
|
|
- `Ema.Helpers.FileSystem` moved to separate package *unionmount*.
|
|
- `Ema.Helpers.Markdown` moved to separate package *commonmark-simple*.
|
|
|
|
## 0.4.0.0 -- 2022-01-19
|
|
|
|
- Pin TailwindCSS to 2.x, because the 3.x broke our CDN url
|
|
- Remove unused Cabal deps (#61)
|
|
- `Tailwind.layoutWith`: don't hardcode `<body>` attrs
|
|
- Tailwind: module revamped and renamed to `Tailwind.Helper.Blaze`
|
|
- `runEma` and friends:
|
|
- return the monadic's action's return value or generated files (dependent type)
|
|
- CLI: add `run` subcommand that takes `--host` and `--port` (and remove environment hacks of $HOST and $PORT)
|
|
|
|
## 0.2.0.0 -- 2021-11-21
|
|
|
|
- TODO(doc) runEma's action gets the `CLI.Action` as argument, to prevent the `gen` command from needing to monitoring files.
|
|
- Live Server
|
|
- Avoid unncessary DOM patch on page load
|
|
- Handle invalid routes gracefully without breaking websocket
|
|
- Re-add `<script>` tags on hot reload
|
|
- Scroll to top on route switches
|
|
- Use secure websockets when on HTTPS
|
|
- Bind to loopback (127.0.0.1) for security reasons
|
|
- Do not handle target=_blank links in websocket route switch
|
|
- `Asset` type
|
|
- Introduce the `Asset` type to distinguishing between static files and generated files. The later can be one of `Html` or `Other`, allowing the live server to handle them sensibly.
|
|
- `Ema` typeclass:
|
|
- Drop `staticAssets` in favour of `allRoutes` (renamed from `staticRoutes`) returning all routes including both generated and static routes.
|
|
- Drop `Slug` and use plain `FilePath`. Route encoder and decoder deal directly with the on-disk path of the generated (or static) files.
|
|
- Make the render function (which `runEma` takes) return a `Asset LByteString` instead of `LByteString` such that it can handle all routes, and handle static files as well as generation of non-HTML content (eg: RSS)
|
|
- Allow copying static files anywhere on the filesystem
|
|
- `routeUrl`:
|
|
- Unicode normalize as well URI encode route URLs
|
|
- now returns relative URLs (ie. without the leading `/`)
|
|
- Use the `<base>` tag to specify an explicit prefix for relative URLs in generated HTML. This way hosting on GitHub Pages without CNAME will continue to have functional links.
|
|
- Fix: prevent encoding of non-HTML paths
|
|
- Now takes the `model` type as argument, inasmuch as `encodeRoute` takes it as as well (to accomodate scenarios where route path can only be computed depending on model state; storing slug aliases for instance)
|
|
- Add `routeUrlWith` for non-pretty URLs
|
|
- `Ema.Slug`
|
|
- Add `Ord`, `Generic`, `Data` and Aeson instances to `Slug`
|
|
- Unicode normalize slugs using NFC
|
|
- Add `decodeSlug` and `encodeSlug`
|
|
- Add default implementation based on Enum for `allRoutes`
|
|
- Warn, without failing, on missing static assets during static generation
|
|
- Static generation
|
|
- Use block buffering to prevent logging from slowing down site generation
|
|
- Write .nojekyll
|
|
- CLI
|
|
- Removed `-C` argument (orthogonal to Ema)
|
|
- Helpers
|
|
- Helpers.FileSystem
|
|
- Add Union mount support; re-exported from `unionmount` library
|
|
- enrich FileAction type to distinguish between existance and new and update states
|
|
- Helpers.Tailwind
|
|
- add overflow-y-scroll to body
|
|
- Add twind shim *before* application's head
|
|
- CDN: Use latest version always.
|
|
- Helpers.Markdown
|
|
- add helpers to parse markdown; `parseMarkdownWithFrontMatter` and `parseMarkdown`
|
|
- Examples
|
|
- ~~Remove Ex03_Documentation.hs (moved to separate repo, `ema-docs`)~~ Back to ./docs, but using Emanote.
|
|
- Add Ex03_Basic.hs example
|
|
|
|
## 0.1.0.0 -- 2021-04-26
|
|
|
|
* First version. Released on an unsuspecting world.
|