diff --git a/CHANGELOG.md b/CHANGELOG.md index 1003ffc..9d7a561 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,34 +1,74 @@ # Changelog +## 0.3.0 - 2023-01-02 + +### 🎁 Features + +- **✨ More robust `aria` type checking - [SaraVieira], [I2]/[PR12], [I3]/[PR11]** + + `aria-sort` and `aria-orientation` now offer more robust type checking following the guidelines of MDN you can see in their pages: + + - [`aria-sort`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-sort) + - [`aria-orientation`](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Attributes/aria-orientation) + +[I2]: https://github.com/axodotdev/axohtml/issues/2 +[PR12]: https://github.com/axodotdev/axohtml/pull/12 +[I3]: https://github.com/axodotdev/axohtml/issues/3 +[PR11]: https://github.com/axodotdev/axohtml/pull/11 + +- **✨ Add twitter SEO tag support - [SaraVieira], [PR17]** + + Add support for meta tags used for twitter cards as showed in [their docs](https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup) + +[PR17]: https://github.com/axodotdev/axohtml/pull/17 + +### 🛠️ Fixes + +- **✨ Data Attributes now work with more than one hyphen - [SaraVieira], [PR10]** + + Our support for `data` attributes was limited in the way that it only supported one hyphen in said attributes, well, no more, use as many hyphens as your heart pleases + +[PR10]: https://github.com/axodotdev/axohtml/pull/10 + +- **✨ Allow `script` tags in HTML - [SaraVieira], [PR10]** + + We now allow you to add script tags in the HTML after the body as the HTML standards also allow + +- **✨ Allow unescaped text in`script`- [SaraVieira], [PR14]** + + Until now we were escaping the text passed down to the `script` tag and in the `script` tag is the only place we are sure we don't want to escape that so that's fixed and you can add `script` tags with unescaped text inside + +[PR14]: https://github.com/axodotdev/axohtml/pull/14 + ## 0.2.0 - 2022-12-19 ### 🎁 Features - **✨ New Attribute - `aria`** - [SaraVieira] - [`aria` attributes] are critical to making the web more accessible to - everyone, but most importantly, people with disabilities. These were a to-do - item from the original project, and so we to-did them. At least most of - them. There are a [few open issues] if you'd like to help us complete the - implementation. + [`aria` attributes] are critical to making the web more accessible to + everyone, but most importantly, people with disabilities. These were a to-do + item from the original project, and so we to-did them. At least most of + them. There are a [few open issues] if you'd like to help us complete the + implementation. [`aria` attributes]: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA [few open issues]: https://github.com/axodotdev/axohtml/issues?q=is%3Aissue+is%3Aopen+aria - **✨ New Attribute - `meta:property`** - [SaraVieira] - If you ask the internet why `meta` tags have a `property` attribute that - isn't in the spec, you won't get great answers. Although not formally - specified in HTML5, `property` attributes in `meta` tags are important for - SEO and [the Open Graph Protocol]. They *are* documented in [RDFa] which is - a formal W3C recommendation. + If you ask the internet why `meta` tags have a `property` attribute that + isn't in the spec, you won't get great answers. Although not formally + specified in HTML5, `property` attributes in `meta` tags are important for + SEO and [the Open Graph Protocol]. They _are_ documented in [RDFa] which is + a formal W3C recommendation. - It is outside the scope of this project to standardize standards bodies. We - needed to support the `property` attribute, and so we did. + It is outside the scope of this project to standardize standards bodies. We + needed to support the `property` attribute, and so we did. -[SaraVieira]: https://github.com/SaraVieira -[the Open Graph Protocol]: https://ogp.me/ -[RDFa]: https://en.wikipedia.org/wiki/RDFa +[saravieira]: https://github.com/SaraVieira +[the open graph protocol]: https://ogp.me/ +[rdfa]: https://en.wikipedia.org/wiki/RDFa ## 0.1.0 - 2022-12-16 diff --git a/macros/Cargo.toml b/macros/Cargo.toml index 7487439..3a29a69 100644 --- a/macros/Cargo.toml +++ b/macros/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "axohtml-macros" -version = "0.2.0" +version = "0.3.0" edition = "2018" authors = ["Axo Developer Co ", "Bodil Stokke "] build = "build.rs" diff --git a/typed-html/Cargo.toml b/typed-html/Cargo.toml index 474114c..a325db7 100644 --- a/typed-html/Cargo.toml +++ b/typed-html/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "axohtml" -version = "0.2.0" +version = "0.3.0" edition = "2021" authors = ["Axo Developer Co ", "Bodil Stokke "] license = "MPL-2.0+" diff --git a/typed-html/src/elements.rs b/typed-html/src/elements.rs index c02d38b..5068de3 100644 --- a/typed-html/src/elements.rs +++ b/typed-html/src/elements.rs @@ -499,3 +499,16 @@ fn test_js() { assert_eq!("", frag.to_string()); } + +#[test] +fn test_twitter_cards() { + use crate as axohtml; + use crate::{dom::DOMTree, html}; + + let frag: DOMTree = html!(); + + assert_eq!( + "", + frag.to_string() + ); +} diff --git a/typed-html/src/types/mod.rs b/typed-html/src/types/mod.rs index 8a5c00c..f978db4 100644 --- a/typed-html/src/types/mod.rs +++ b/typed-html/src/types/mod.rs @@ -252,6 +252,53 @@ pub enum Metadata { Robots, #[strum(to_string = "viewport")] Viewport, + // Twitter Social meta card tags -> https://developer.twitter.com/en/docs/twitter-for-websites/cards/overview/markup + #[strum(to_string = "twitter:card")] + TwitterCard, + #[strum(to_string = "twitter:site:id")] + TwitterSiteId, + #[strum(to_string = "twitter:site")] + TwitterSite, + #[strum(to_string = "twitter:creator:id")] + TwitterCreatorId, + #[strum(to_string = "twitter:creator")] + TwitterCreator, + #[strum(to_string = "twitter:description")] + TwitterDescription, + #[strum(to_string = "twitter:title")] + TwitterTitle, + #[strum(to_string = "twitter:image:alt")] + TwitterImageAlt, + #[strum(to_string = "twitter:image")] + TwitterImage, + #[strum(to_string = "twitter:player:width")] + TwitterPlayerWidth, + #[strum(to_string = "twitter:player:height")] + TwitterPlayerHeight, + #[strum(to_string = "twitter:player:stream")] + TwitterPlayerStream, + #[strum(to_string = "twitter:player")] + TwitterPlayer, + #[strum(to_string = "twitter:app:name:phone")] + TwitterAppNamePhone, + #[strum(to_string = "twitter:app:name:iphone")] + TwitterAppNameIphone, + #[strum(to_string = "twitter:app:id:iphone")] + TwitterAppIdIphone, + #[strum(to_string = "twitter:app:url:iphone")] + TwitterAppUrlIphone, + #[strum(to_string = "twitter:app:name:ipad")] + TwitterAppNameIpad, + #[strum(to_string = "twitter:app:id:ipad")] + TwitterAppIdIpad, + #[strum(to_string = "twitter:app:url:ipad")] + TwitterAppUrlIpad, + #[strum(to_string = "twitter:app:name:googleplay")] + TwitterAppNameGooglePlay, + #[strum(to_string = "twitter:app:id:googleplay")] + TwitterAppIdGooglePlay, + #[strum(to_string = "twitter:app:url:googleplay")] + TwitterAppUrlGooglePlay, } #[derive(EnumString, Display, PartialEq, Eq, PartialOrd, Ord, AsRefStr, IntoStaticStr)] @@ -262,10 +309,24 @@ pub enum MetadataProperties { Type, #[strum(to_string = "og:image")] Image, + #[strum(to_string = "og:image:alt")] + ImageAlt, + #[strum(to_string = "og:image:type")] + ImageType, + #[strum(to_string = "og:image:width")] + ImageWidth, + #[strum(to_string = "og:image:height")] + ImageHeight, + #[strum(to_string = "og:image:secure_url")] + ImageSecureUrl, #[strum(to_string = "og:url")] Homepage, #[strum(to_string = "og:audio")] Audio, + #[strum(to_string = "og:audio:type")] + AudioType, + #[strum(to_string = "og:audio:secure_url")] + AudioSecureUrl, #[strum(to_string = "og:description")] Description, #[strum(to_string = "og:determiner")] @@ -276,6 +337,16 @@ pub enum MetadataProperties { ParentSiteName, #[strum(to_string = "og:video")] Video, + #[strum(to_string = "og:video:alt")] + VideoAlt, + #[strum(to_string = "og:video:type")] + VideoType, + #[strum(to_string = "og:video:width")] + VideoWidth, + #[strum(to_string = "og:video:height")] + VideoHeight, + #[strum(to_string = "og:video:secure_url")] + VideoSecureUrl, #[strum(to_string = "og:locale:alternate")] ExtraLocales, }