HTML Fragments¶
This module defines a HTML fragment class, which holds a piece of HTML. This is primarily used in browser-based notebooks, though it might be useful for creating static pages as well.
-
class
sage.misc.html.HTMLFragmentFactory¶ Bases:
sage.structure.sage_object.SageObject-
eval(s, locals=None)¶ Evaluate embedded <sage> tags
INPUT:
s– string.globals– dictionary. The global variables when evaluatings. Default: the current global variables.
OUTPUT:
A
HtmlFragmentinstance.EXAMPLES:
sage: a = 123 sage: html.eval('<sage>a</sage>') <script type="math/tex">123</script> sage: html.eval('<sage>a</sage>', locals={'a': 456}) <script type="math/tex">456</script>
-
iframe(url, height=400, width=800)¶ Generate an iframe HTML fragment
INPUT:
url– string. A url, either with or without URI scheme (defaults to “http”), or an absolute file path.height– the number of pixels for the page height. Defaults to 400.width– the number of pixels for the page width. Defaults to 800.
OUTPUT:
A
HtmlFragmentinstance.EXAMPLES:
sage: pretty_print(html.iframe("sagemath.org")) <iframe height="400" width="800" src="http://sagemath.org"></iframe> sage: pretty_print(html.iframe("http://sagemath.org",30,40)) <iframe height="30" width="40" src="http://sagemath.org"></iframe> sage: pretty_print(html.iframe("https://sagemath.org",30)) <iframe height="30" width="800" src="https://sagemath.org"></iframe> sage: pretty_print(html.iframe("/home/admin/0/data/filename")) <iframe height="400" width="800" src="file:///home/admin/0/data/filename"></iframe> sage: pretty_print(html.iframe('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA' ....: 'AUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBA' ....: 'AO9TXL0Y4OHwAAAABJRU5ErkJggg=="')) <iframe height="400" width="800" src="http://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO9TXL0Y4OHwAAAABJRU5ErkJggg==""></iframe>
-
-
class
sage.misc.html.HtmlFragment¶ Bases:
str,sage.structure.sage_object.SageObjectA HTML fragment.
This is a piece of HTML, usually not a complete document. For example, just a
<div>...</div>piece and not the entire<html>...</html>.EXAMPLES:
sage: from sage.misc.html import HtmlFragment sage: HtmlFragment('<b>test</b>') <b>test</b>
-
_rich_repr_(display_manager, **kwds)¶ Rich Output Magic Method
See
sage.repl.rich_outputfor details.EXAMPLES:
sage: from sage.repl.rich_output import get_display_manager sage: dm = get_display_manager() sage: h = sage.misc.html.HtmlFragment('<b>old</b>') sage: h._rich_repr_(dm) # the doctest backend does not support html OutputPlainText container
-
-
sage.misc.html.html(obj)¶ Construct a HTML fragment
INPUT:
obj– anything. An object for which you want a HTML representation.
OUTPUT:
A
HtmlFragmentinstance.EXAMPLES:
sage: h = html('<hr>'); pretty_print(h) <hr> sage: type(h) <class 'sage.misc.html.HtmlFragment'> sage: pretty_print(html(1/2)) <script type="math/tex">\frac{1}{2}</script> sage: pretty_print(html('<a href="http://sagemath.org">sagemath</a>')) <a href="http://sagemath.org">sagemath</a>
-
sage.misc.html.math_parse(s)¶ Replace TeX-
$with Mathjax equations.Turn the HTML-ish string s that can have $$ and $’s in it into pure HTML. See below for a precise definition of what this means.
INPUT:
s– a string
OUTPUT:
A
HtmlFragmentinstance.Do the following:
- Replace all
$ text $’s by<script type="math/tex"> text </script> - Replace all
$$ text $$’s by<script type="math/tex; mode=display"> text </script> - Replace all
\ $’s by$’s. Note that in the above two cases nothing is done if the$is preceeded by a backslash. - Replace all
\[ text \]’s by<script type="math/tex; mode=display"> text </script>
EXAMPLES:
sage: pretty_print(sage.misc.html.math_parse('This is $2+2$.')) This is <script type="math/tex">2+2</script>. sage: pretty_print(sage.misc.html.math_parse('This is $$2+2$$.')) This is <script type="math/tex; mode=display">2+2</script>. sage: pretty_print(sage.misc.html.math_parse('This is \\[2+2\\].')) This is <script type="math/tex; mode=display">2+2</script>. sage: pretty_print(sage.misc.html.math_parse(r'This is \[2+2\].')) This is <script type="math/tex; mode=display">2+2</script>.