* Bring changes to this branch. * Bring changes to this branch. * Add feature render and renderer. * Bring changes to this branch. * Migrate examples to Renderer. * Satisfy no any render. * Satisfy ssr. * Satisfy feature render. * Lint feature soundness. * Suppress tests. * Fix pr-flow, update docs. * Add a notice. * Adjust visibility. * Correctly feature gate tests. * make test scope available under feature render. * Fix CI. * Fix CI. * Restore tests module to its original place as well. * Make bundles crate private. * Make most bundle APIs private. * Adjust docs. * Adjust debug implementation. * Replace start_app with Renderer. * Adjust documentation. * Remove unused lint. * Remove start_app from docs. * DomBundle -> ReconcileTarget. * Adjust documentation. * Once render, now csr. * Fix docs as well.
Function Router Example
This is identical to the router example, but written in function components.
A blog all about yew. The best way to figure out what this example is about is to just open it up. It's mobile friendly too!
Running
While not strictly necessary, this example should be built in release mode:
trunk serve --release
Content generation can take up quite a bit of time in debug builds.
Concepts
This example involves many different parts, here are just the Yew specific things:
- Uses
yew-routerto render and switch between multiple pages.
The example automatically adapts to the --public-url value passed to Trunk.
This allows it to be hosted on any path, not just at the root.
For example, our demo is hosted at /router.
This is achieved by adding <base data-trunk-public-url /> to the index.html file.
Trunk rewrites this tag to contain the value passed to --public-url which can then be retrieved at runtime.
Take a look at Route for the implementation.
Improvements
- Use a special image component which shows a progress bar until the image is loaded.
- Scroll back to the top after switching route
- Run content generation in a dedicated web worker
- Use longer Markov chains to achieve more coherent results
- Make images deterministic (the same seed should produce the same images)
- Show posts by the author on their page (this is currently impossible because we need to find post seeds which in turn generate the author's seed)
- Show other posts at the end of a post ("continue reading")
- Home (
/) should include links to the post list and the author introduction - Detect sub-path from
--public-urlvalue passed to Trunk. See: thedodd/trunk#51