src/Pure/Thy/present.scala
changeset 67253 93b4333f33bb
parent 67251 573077aa2826
child 67256 ce7d856680d1
--- 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))