diff --git a/src/librustdoc/html/layout.rs b/src/librustdoc/html/layout.rs
index 896d070c155ee..46b89b3851526 100644
--- a/src/librustdoc/html/layout.rs
+++ b/src/librustdoc/html/layout.rs
@@ -12,6 +12,7 @@ use std::fmt;
use std::io;
use externalfiles::ExternalHtml;
+use html::markdown;
#[deriving(Clone)]
pub struct Layout {
@@ -20,6 +21,7 @@ pub struct Layout {
pub external_html: ExternalHtml,
pub krate: String,
pub playground_url: String,
+ pub use_mathjax: bool,
}
pub struct Page<'a> {
@@ -34,6 +36,10 @@ pub fn render(
dst: &mut io::Writer, layout: &Layout, page: &Page, sidebar: &S, t: &T)
-> io::IoResult<()>
{
+ // Reset state on whether we've seen math, so as to avoid loading mathjax
+ // on pages that don't actually *have* math.
+ markdown::math_seen.replace(Some(false));
+
write!(dst,
r##"
@@ -124,6 +130,7 @@ r##"
{play_js}
+ {mathjax_js}