pub struct HtmlIntegration<'m> { /* private fields */ }Expand description
HTML integration.
Builds links, preloads for specified chunks.
// Create `HtmlIntegration` struct:
let html = HtmlIntegration::new(MyViteStatic.boxed())
// add imports of chunks: (<script> tags)
.import("src/main.tsx")
// add preloads of assets (fonts, images, etc).
// arguments: (preload's as="..." attribute, chunk input filename),
.preload("image", "src/images/500GB_image.png")
// add stylesheets
.stylesheet("src/style.scss")
// and then, you can build `String` of HTML (tags, joined by '\n')
.build();
// or you can build array of tags/lines
// .build_lines();
// The result will contain `<script>` tags, `<link rel="stylesheet" ...>` for CSS,
// `<link rel="preload" ...>` for image and <link rel="modulepreload" ...> for dependencies.Implementations§
Source§impl<'m> HtmlIntegration<'m>
impl<'m> HtmlIntegration<'m>
Sourcepub fn new(manifest: DynManifest<'m>) -> Self
pub fn new(manifest: DynManifest<'m>) -> Self
Create new HtmlIntegration builder.
Takes DynManifest (boxed Manifest) and returns HtmlIntegration.
Sourcepub fn import(self, chunk: &str) -> Self
pub fn import(self, chunk: &str) -> Self
Import ESM ManifestChunk by key (input filename).
This function:
- adds
<script type="module" ...>for specified chunk; - adds module preloads for all script dependencies.
ⓘ
.import("src/main.tsx")
.import("src/components/MyCoolComponent.tsx")
.import("src/or/some/styles.scss")§Panics
This function will panic if:
- Failed to find chunk by specified key
- Failed to find dependency (AKA imported chunk)
Sourcepub fn preload(self, as_filetype: &'static str, chunk: &str) -> Self
pub fn preload(self, as_filetype: &'static str, chunk: &str) -> Self
Preload ManifestChunk as type by key (input filename).
ⓘ
.preload("font", "src/assets/CoolFancyFont.ttf")
.preload("image", "src/assets/500GB_image.png")
.preload("script", "src/importantScript.js")§Panics
This function will panic if specified chunk was not found.
Sourcepub fn stylesheet(self, chunk: &str) -> Self
pub fn stylesheet(self, chunk: &str) -> Self
Sourcepub fn build_lines(self) -> Vec<String>
pub fn build_lines(self) -> Vec<String>
Builds HTML and returns array of lines.
let html_lines = HtmlIntegration::new(MyViteStatic.boxed())
.import("src/main.tsx")
.build_lines();
assert_eq!(html_lines.len(), 3);
// `src/main.tsx` script tag, `src/shared.ts` preload and `src/style.scss` stylesheet.Trait Implementations§
Auto Trait Implementations§
impl<'m> !RefUnwindSafe for HtmlIntegration<'m>
impl<'m> !UnwindSafe for HtmlIntegration<'m>
impl<'m> Freeze for HtmlIntegration<'m>
impl<'m> Send for HtmlIntegration<'m>
impl<'m> Sync for HtmlIntegration<'m>
impl<'m> Unpin for HtmlIntegration<'m>
impl<'m> UnsafeUnpin for HtmlIntegration<'m>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more