pub struct HtmlIntegration { /* 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 and `<link rel="preload" ...>` preloads for dependencies.Implementations§
Source§impl HtmlIntegration
impl HtmlIntegration
Sourcepub fn new(manifest: DynManifest<'static>) -> Self
pub fn new(manifest: DynManifest<'static>) -> 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 !RefUnwindSafe for HtmlIntegration
impl !UnwindSafe for HtmlIntegration
impl Freeze for HtmlIntegration
impl Send for HtmlIntegration
impl Sync for HtmlIntegration
impl Unpin for HtmlIntegration
impl UnsafeUnpin for HtmlIntegration
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