", before=before, classes=classes, after=after)
}).into_owned()
}
+
+fn add_playpen_pre(html: String) -> String {
+ let regex = Regex::new(r##"((?s)]?class="([^"]+)".*?>(.*?)
)"##).unwrap();
+ regex.replace_all(&html, |caps: &Captures| {
+ let text = &caps[1];
+ let classes = &caps[2];
+ let code = &caps[3];
+
+ if classes.contains("language-rust") && !classes.contains("ignore") {
+ // wrap the contents in an external pre block
+
+ if text.contains("fn main") {
+ format!("{}
", text)
+ } else {
+ // we need to inject our own main
+ format!("# #![allow(unused_variables)]
+#
+#fn main() {{
+{}
+#}}
", classes, code)
+ }
+ } else {
+ // not language-rust, so no-op
+ format!("{}", text)
+ }
+ }).into_owned()
+}