use super::prelude::*;
use crate::tree::Embed;
pub fn render_embed(ctx: &mut HtmlContext, embed: &Embed) {
debug!(
"Rendering embed (variant '{}', url '{}')",
embed.name(),
embed.direct_url(),
);
ctx.html()
.div()
.attr(attr!(
"class" => "wj-embed",
))
.inner(|ctx| match embed {
Embed::Youtube { video_id } => {
let url = format!("https://www.youtube.com/embed/{video_id}");
ctx.html().iframe().attr(attr!(
"src" => &url,
"frameborder" => "0",
"allow" => "accelerometer; autoplay; "
"clipboard-write; encrypted-media; "
"gyroscope; picture-in-picture",
"allowfullscreen",
));
}
Embed::Vimeo { video_id } => {
let url = format!("https://player.vimeo.com/video/{video_id}");
ctx.html().iframe().attr(attr!(
"src" => &url,
"frameborder" => "0",
"allow" => "autoplay; fullscreen; picture-inpicture",
"allowfullscreen",
));
}
Embed::GithubGist { username, hash } => {
let url = format!("https://gist.github.com/{username}/{hash}.js");
ctx.html().script().attr(attr!("src" => &url));
}
Embed::GitlabSnippet { snippet_id } => {
let url = format!("https://gitlab.com/-/snippets/{snippet_id}.js");
ctx.html().script().attr(attr!("src" => &url));
}
});
}