nnelgxorz / qwik-city-content Goto Github PK
View Code? Open in Web Editor NEWLicense: MIT License
License: MIT License
Currently, we use Serde to deserialize yaml and to serialize JSON.
Because we perform manipulations on the Page struct, it may be an unnecessary allocation. Further, if we replace the yaml deserialization with a custom option tailored to our use case, Serde could be completely dropped as dependency.
This would reduce the size of our binaries and likely result in performance boosts.
Investigate if there is way to override the type for RouteParams with the generated type, removing the need to import and cast route params.
No more of this, for example:
import {RouteParams} from './generated'
export default component$(() => {
const params = useLocation().params as RouteParams;
//...
})
Currently we use serde to deserialze yaml. It deserializes into a BTreeMap which is not an ideal data structure. Serde_yaml also doesn't support zero copy deserialization, so we are allocating anytime we deserialize.
Ideally, we can parse yaml into a flat data structure and only reference the &str source, without copying/allocating anything.
This is something that must be done for every content page, so it would be a big win for performance.
Once MVP features are stable, begin performance profiling with an eye toward:
Implement for feature parity with current Qwik City
https://docs.rs/pulldown-cmark/latest/pulldown_cmark/struct.Options.html
Allow users to mark content as a draft using draft: true
to remove a piece of content from the output.
Implement for feature parity with current Qwik City.
Using the Merge helper type is a cool trick, but Typescript starts to choke on larger collections.
Ideally, we can generate types for each collection manually to prevent any bottlenecks on larger content collections.
Currently our error handling is very sloppy. Ideally, we would have our own Error enum and the ability to early return using ? from functions instead of checking for errors and console logging them.
Currently, for simplicity, we just support markdown and output a single html string. This will not work for mdx that imports Qwik components.
Investigate options for the optimal pre-processing.
Implement for feature parity with current Qwik City.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.