pub struct HtmlIntegration<'m> { /* private fields */ }Available on crate feature
html only.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: Box<dyn Manifest<'m> + Sync + Send>) -> HtmlIntegration<'m>
pub fn new(manifest: Box<dyn Manifest<'m> + Sync + Send>) -> HtmlIntegration<'m>
Create new HtmlIntegration builder.
Takes DynManifest (boxed Manifest) and returns HtmlIntegration.
Sourcepub fn import(self, chunk: &str) -> HtmlIntegration<'m>
pub fn import(self, chunk: &str) -> HtmlIntegration<'m>
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,
) -> HtmlIntegration<'m>
pub fn preload( self, as_filetype: &'static str, chunk: &str, ) -> HtmlIntegration<'m>
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) -> HtmlIntegration<'m>
pub fn stylesheet(self, chunk: &str) -> HtmlIntegration<'m>
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.impl HtmlIntegration<'_>
This impl block contains no public items.
Internal functions for HtmlIntegration.
Trait Implementations§
Source§impl Clone for HtmlIntegration<'_>
impl Clone for HtmlIntegration<'_>
Source§fn clone(&self) -> HtmlIntegration<'_>
fn clone(&self) -> HtmlIntegration<'_>
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreAuto 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