14 releases

0.3.4 Aug 11, 2020
0.3.3 Jul 28, 2020
0.3.2 May 31, 2020
0.2.0 Nov 17, 2018
0.1.7 Oct 13, 2018

#976 in Web programming


Used in tachyons

MIT/Apache

23KB
173 lines

html-index

crates.io version build status downloads docs.rs docs

Generate an HTML index.

Why?

Over the years the HTML spec has added lots of new capabilities in a backwards compatible fashion. This means that even if something from the 90's might still work in today's browsers, it might not always be the most efficient.

This crate makes it easy to build performant HTML without needing to remember all boilerplate involved.

Examples

Basic

extern crate html_index;

pub fn main() {
  let res = html_index::Builder::new()
    .raw_body("<body>hello world</body>")
    .script("/bundle.js")
    .style("/bundle.css")
    .build();
  println!("{}", res);
}

Which generates:

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="preload" as="style" href="/bundle.css" onload="this.rel='stylesheet'">
    <script src="/bundle.js" defer></script>
  </head>
  <body>hello world</body>
</html>

Installation

$ cargo add html-index

Safety

This crate uses #![deny(unsafe_code)] to ensure everything is implemented in 100% Safe Rust.

Contributing

Want to join us? Check out our "Contributing" guide and take a look at some of these issues:

References

None.

License

MIT OR Apache-2.0

Dependencies

~6MB
~135K SLoC