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
HtmlFragment
instance.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
HtmlFragment
instance.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.SageObject
A 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_output
for 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
HtmlFragment
instance.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
HtmlFragment
instance.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>.