|  | <!doctype html> | 
						
						
							|  | <html> | 
						
						
							|  | <head> | 
						
						
							|  |   <title>Network | Multifont Labels</title> | 
						
						
							|  | 
 | 
						
						
							|  |   <script type="text/javascript" src="../../../dist/vis.js"></script> | 
						
						
							|  |   <link href="../../../dist/vis-network.min.css" rel="stylesheet" type="text/css" /> | 
						
						
							|  | 
 | 
						
						
							|  |   <style type="text/css"> | 
						
						
							|  |     #mynetwork { | 
						
						
							|  |       width: 600px; | 
						
						
							|  |       height: 400px; | 
						
						
							|  |       border: 1px solid lightgray; | 
						
						
							|  |     } | 
						
						
							|  |     code { | 
						
						
							|  |       font-size: 15px; | 
						
						
							|  |     } | 
						
						
							|  |     p { | 
						
						
							|  |       max-width: 600px; | 
						
						
							|  |     } | 
						
						
							|  |     .indented { | 
						
						
							|  |       margin-left: 30px; | 
						
						
							|  |     } | 
						
						
							|  |     table { | 
						
						
							|  |       border-collapse: collapse; | 
						
						
							|  |       font-family: sans-serif; | 
						
						
							|  |     } | 
						
						
							|  |     table code { | 
						
						
							|  |       background: #dddddd; | 
						
						
							|  |     } | 
						
						
							|  |     th, td { | 
						
						
							|  |       border: 1px solid #aaaaaa; | 
						
						
							|  |       text-align: center; | 
						
						
							|  |       padding: 5px; | 
						
						
							|  |       font-weight: normal; | 
						
						
							|  |     } | 
						
						
							|  |   </style> | 
						
						
							|  |   <script src="../../googleAnalytics.js"></script> | 
						
						
							|  | </head> | 
						
						
							|  | 
 | 
						
						
							|  | <body> | 
						
						
							|  | 
 | 
						
						
							|  | <p>Node and edge labels may be marked up to be drawn with multiple fonts.</p> | 
						
						
							|  | 
 | 
						
						
							|  | <div id="mynetwork"></div> | 
						
						
							|  | 
 | 
						
						
							|  | <p>The value of the <code>font.multi</code> property may be set to <code>'html'</code>, <code>'markdown'</code> or a boolean.</p> | 
						
						
							|  | <table class="indented"> | 
						
						
							|  |   <tr><th colspan='4'>Embedded Font Markup</th></tr> | 
						
						
							|  |   <tr><th rowspan=2>font mod</th><th colspan=3><code>font.multi</code> setting</th></tr> | 
						
						
							|  |   <tr><th><code>'html'</code> or <code>true</code></th><th><code>'markdown'</code> or <code>'md'</code></th><th><code>false<code></th></tr> | 
						
						
							|  |   <tr><th>bold</th><td><code><b></code> ... <code></b></code></td><td><code> *</code> ... <code>* </code></td><td>n/a</td></tr> | 
						
						
							|  |   <tr><th>italic</th><td><code><i></code> ... <code></i></code></td><td><code> _</code> ... <code>_ </code></td><td>n/a</td></tr> | 
						
						
							|  |   <tr><th>mono-spaced</th><td><code><code></code> ... <code></code></code></td><td><code> `</code> ... <code>` </code></td><td>n/a</td></tr> | 
						
						
							|  | </table> | 
						
						
							|  | 
 | 
						
						
							|  | <p> | 
						
						
							|  | The <code>html</code> and <code>markdown</code> rendering is limited: bolds may be embedded in italics, italics may be embedded in bolds, and mono-spaced may be embedded in bold or italic, but will not be altered by those font mods, nor will embedded bolds or italics be handled. | 
						
						
							|  | The only entities that will be observed in html are <code>&lt;</code> and <code>&amp;</code> and in <code>markdown</code> a backslash will escape the following character (including a backslash) from special processing. | 
						
						
							|  | Any font mod that is started in a label line will be implicitly terminated at the end of that line. | 
						
						
							|  | While this interpretation may not exactly match <i>official</i> rendering standards, it is a consistent compromise for drawing multifont strings in the non-multifont html canvas element underlying vis. | 
						
						
							|  | </p> | 
						
						
							|  | 
 | 
						
						
							|  | <p>This implies that four additional sets of font properties will be recognized in label processing.</p> | 
						
						
							|  | <p class="indented"><code>font.bold</code> designates the font used for rendering bold font mods. | 
						
						
							|  | <br/><code>font.ital</code> designates the font used for rendering italic font mods. | 
						
						
							|  | <br/><code>font.boldital</code> designates the font used for rendering bold-<b><i>and</i></b>-italic font mods. | 
						
						
							|  | <br/><code>font.mono</code> designates the font used for rendering monospaced font mods.</p> | 
						
						
							|  | <p>Any font mod without a matching font will be rendered using the normal <code>font</code> (or default) value.</p> | 
						
						
							|  | 
 | 
						
						
							|  | <p>The <code>font.multi</code> and extended font settings may be set in the network's <code>nodes</code> or <code>edges</code> properties, or on individual nodes and edges. | 
						
						
							|  | Node and edge label fonts are separate.</p> | 
						
						
							|  | 
 | 
						
						
							|  | <script type="text/javascript"> | 
						
						
							|  |   var nodes = [ | 
						
						
							|  |     { id: 1, label: 'This is a\nsingle-font label', x: -120, y: -120 }, | 
						
						
							|  |     { id: 2, font: { multi: true }, label: '<b>This</b> is a\n<i>default</i> <b><i>multi-</i>font</b> <code>label</code>', x: -40, y: -40 }, | 
						
						
							|  |     { id: 3, font: { multi: 'html', size: 20 }, label: '<b>This</b> is an\n<i>html</i> <b><i>multi-</i>font</b> <code>label</code>', x: 40, y: 40 }, | 
						
						
							|  |     { id: 4, font: { multi: 'md', face: 'georgia' }, label: '*This* is a\n_markdown_ *_multi-_ font* `label`', x: 120, y: 120}, | 
						
						
							|  |   ]; | 
						
						
							|  | 
 | 
						
						
							|  |   var edges = [ | 
						
						
							|  |     {from: 1, to: 2, label: "single to default"}, | 
						
						
							|  |     {from: 2, to: 3, font: { multi: true }, label: "default to <b>html</b>" }, | 
						
						
							|  |     {from: 3, to: 4, font: { multi: "md" }, label: "*html* to _md_" } | 
						
						
							|  |   ]; | 
						
						
							|  | 
 | 
						
						
							|  |   var container = document.getElementById('mynetwork'); | 
						
						
							|  |   var data = { | 
						
						
							|  |     nodes: nodes, | 
						
						
							|  |     edges: edges | 
						
						
							|  |   }; | 
						
						
							|  |   var options = { | 
						
						
							|  |     edges: { | 
						
						
							|  |       font: { | 
						
						
							|  |         size: 12 | 
						
						
							|  |       } | 
						
						
							|  |     }, | 
						
						
							|  |     nodes: { | 
						
						
							|  |       shape: 'box', | 
						
						
							|  |       font: { | 
						
						
							|  |         bold: { | 
						
						
							|  |           color: '#0077aa' | 
						
						
							|  |         } | 
						
						
							|  |       } | 
						
						
							|  |     }, | 
						
						
							|  |     physics: { | 
						
						
							|  |       enabled: false | 
						
						
							|  |     } | 
						
						
							|  |   }; | 
						
						
							|  |   var network = new vis.Network(container, data, options); | 
						
						
							|  | </script> | 
						
						
							|  | 
 | 
						
						
							|  | </body> | 
						
						
							|  | </html>
 |