Comments (3)
Which build tool are you using? Judging by the output I'm guessing Trunk, right?
While you could open an issue in the Trunk repo, I really think it's just a matter of using a relative import in a JS file and not using a JS bundler. But then again, I do everything I can to avoid JS and its bundling ecosystem, so I'm not really sure.
I do not think this has anything to do with Leptos.
from leptos.
Which build tool are you using? Judging by the output I'm guessing Trunk, right?
While you could open an issue in the Trunk repo, I really think it's just a matter of using a relative import in a JS file and not using a JS bundler. But then again, I do everything I can to avoid JS and its bundling ecosystem, so I'm not really sure.
I do not think this has anything to do with Leptos.
Ty for the timely reply. I ended up declaring a dummy extern js and log it in the use_effect of component, which tricked trunk to include the relatively imported file in the final bundle.
I definitely agree with the idea of avoiding js...but I don't know the proper UI libraries that help with highlighting/animation and other UI manipulations, so I fall back to use highlight.js in the project but there're SO many gotchas b/c of it messing up the DOM, and I ended up having a complex & inelegant code that
- having a singleton list with its key cloned each time to force the dom re-render
- use a provider and derived signals to handle the update logic
- declare all extern js and invoke them in use_effect
Do you know any Rust libraries that provide a more neat and elegent solution?
from leptos.
I don't have any advice on the particular topic of highlighting/a replacement for highlight.js. What you're describing (gotchas because of it messing with the DOM) makes it sound like it would be a hard library to integrate with any framework. In general in those cases (the JS library wants to modify the DOM in ways it can't tell the framework about) it's fine to use them, you just can't integrate them with any kind of reactive change -- i.e., you can say "Ok, highlight.js, you're going to take over this <div>
," and know that you can never reactively update anything in that div because the framework no longer owns it." ("Owns" might be a good word there -- this can't be enforced by the compiler of course but it's similar to the Rust ownership concept, you are giving ownership over those DOM nodes to the other library.)
from leptos.
Related Issues (20)
- DX regression in view macro for rust-analyzer 2024-03-18 (v0.3.1885) and newer HOT 6
- Access environment variables in CSR HOT 1
- There is a bug in Safari browser where signals cannot be transmitted properly HOT 1
- DynChild is populated as a single Child in the components' children property HOT 4
- Breaking change in view macro between 0.6.10 and 0.6.11
- Allow custom derive for server_fns with custom encoding HOT 3
- Add Trigger::dispose
- leptos_macro 0.6.11 leptos::view! breaks with some comments
- Non-'static signals
- the format!() bug in <a href={format!()}> HOT 2
- Effects/Memos should't be able to "own" a signal HOT 4
- Nested Suspense ignores SSR Mode and breaks Hydration HOT 2
- Error when running server function inside spawn_local HOT 5
- Click events are registered twice when two leptos custom elements are on a page HOT 4
- about mobile support
- Recursive effects never run after recursing HOT 5
- Clippy warnings in some components with rust 1.78 HOT 1
- rkyv, avoid the copy to byte ? HOT 4
- Check ActionForm input names at compile time HOT 4
- Allow server components in islands architecture to call code behind ssr without need for #[server] HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from leptos.