--- a/src/Pure/Thy/present.scala Fri Dec 22 13:51:20 2017 +0100
+++ b/src/Pure/Thy/present.scala Fri Dec 22 14:27:59 2017 +0100
@@ -101,6 +101,28 @@
}
+ /** preview **/
+
+ def preview(fonts_dir: String, snapshot: Document.Snapshot, plain: Boolean = false): String =
+ {
+ require(!snapshot.is_outdated)
+
+ val name = snapshot.node_name
+ if (name.is_bibtex && !plain) Bibtex.present(snapshot)
+ else {
+ val (heading, body) =
+ if (name.is_theory && !plain)
+ ("Theory " + quote(name.theory_base_name), pide_document(snapshot))
+ else ("File " + quote(name.path.base_name), text_document(snapshot))
+
+ HTML.output_document(
+ List(HTML.style(HTML.fonts_css(HTML.fonts_dir(fonts_dir)) + File.read(HTML.isabelle_css)),
+ HTML.title(heading)),
+ List(HTML.chapter(heading), HTML.source(body)))
+ }
+ }
+
+
/* theory document */
private val document_span_elements =
@@ -127,7 +149,7 @@
XML.Text(Symbol.decode(text))
}
- def theory_document(snapshot: Document.Snapshot): XML.Body =
+ def pide_document(snapshot: Document.Snapshot): XML.Body =
make_html(snapshot.markup_to_XML(Text.Range.full, document_span_elements))