-
Notifications
You must be signed in to change notification settings - Fork 142
Closed
MarkBind/vue-strap
#120Description
Is your request related to a problem?
#889 - larger bundle size increases loading times, which can cause FOUC more frequently
Somewhat related:
#36 - would be a good time to tackle this, while still supporting deprecated attributes ( a quick script can also be written to convert old markbind documents to standardise all attributes )
Currently, the the client is responsible for rendering markdown provided as attributes in vue components ( e.g. modals, panels, popovers, tabs ).
Problems:
- This may be bloating the resulting bundle size ( yet to test impact ), exacerbating FOUC
- Impact on loading times due to more client side rendering, especially on large documents
- ( opinion ) Cohesion & consistency
3.1 Attribute rendering should be done only when building or purely in the client, not both. Currently, it is also done when building for panel headers for heading indexing. ( boxes if implemented similarly too - x of the dismissible boxes it not at the top-right corner #962 ) This can also make the code more difficult to understand for newer developers.
3.2 Markdown headers inserted using vue'sslotsare parsed in /markbind, but those inserted with attributes are not. - ❔
Other positive side effects:
- Easier to accomplish a rewrite for Migrate all MarkBind components from vue-strap to bootstrap-vue #814, with decoupling of /vue-strap from
markdown-it.
Describe the solution you'd like
Move all markdown parsing in /vue-strap to /markbind, aiming to remove markdown-it as a dependency from /vue-strap altogether.
Cons if moved:
- More per-component logic in
parser.js( though, it already has quite a bit ) - Slightly harder to add new components with attributes requiring markdown parsing
- Slight increase in build times ( though, it would likely be offsetted by the decrease in loading time due to lack of client-side rendering when using
markbind serve) - Potentially high initial risk of regressions
- ❔
Metadata
Metadata
Assignees
Labels
No labels