mirror of
https://github.com/Jermolene/TiddlyWiki5
synced 2024-08-24 10:36:50 +00:00
![Jeremy Ruston](/assets/img/avatar_default.png)
The change is to avoid confusion with the HTML 'title' attribute. The name 'tiddler' better emphasises the purpose of the attribute, too.
50 lines
2.4 KiB
Plaintext
50 lines
2.4 KiB
Plaintext
title: UsingSVG
|
|
modified: 201310281327
|
|
created: 201310281327
|
|
|
|
TiddlyWiki5 allows you to use SVG to display vector graphics in two ways:
|
|
|
|
* Tiddlers with the type `image/svg+xml` are interpreted as SVG images, and displayed and transcluded as self-contained `<img>` elements with the SVG embedded as a data URI in the `src` attribute.
|
|
** For examples of SVG images see [[Motovun Jack.svg]] and [[Tiddler Fishes.svg]]
|
|
* WikiText can also include inline SVG elements directly. See below for an example.
|
|
|
|
! Embedding SVG tiddlers
|
|
|
|
You can embed an SVG image tiddler using the ordinary transclusion syntax:
|
|
|
|
```
|
|
{{Motovun Jack.jpg}}
|
|
```
|
|
|
|
You can also use TypedBlockWikiText to embed an inline SVG tiddler.
|
|
|
|
The implications of the image being rendered within an `<img>` element are that it is sandboxed; it can't use CSS styles from the parent document, for example. Neither can the image use WikiText features like transclusion.
|
|
|
|
! Embedding SVG elements
|
|
|
|
The other way to use SVG is to embed the `<svg>` element directly. For example:
|
|
|
|
<svg width="150" height="100">
|
|
<circle cx="100" cy="50" r="40" stroke="black" stroke-width="2" fill="red" />
|
|
</svg>
|
|
|
|
Note that inline SVG elements don't need an `<?xml version="1.0"?>` directive.
|
|
|
|
! Including HTML or WikiText content in SVG images
|
|
|
|
You can include simple text strings in SVG images using the `<text>` element:
|
|
|
|
<svg width="100px" height="30px" viewBox="0 0 1000 300"><text x="250" y="150" font-family="Verdana" font-size="55">Hello, out there</text><rect x="1" y="1" width="998" height="298" fill="none" stroke-width="2" /></svg>
|
|
|
|
HTML or WikiText content can be included within inline SVG images using the `<foreignObject>` element. For example:
|
|
|
|
<svg width="260px" height="260px"><circle cx="150" cy="150" r="100" fill="blue" stoke="red"/><foreignObject x="70" y="110" width="150" height="180"><body style="background:#ddd;">Here is some text that requires a word wrap, and includes a [[link to a tiddler|HelloThere]].</body></foreignObject></svg>
|
|
|
|
! Transcluding SVG elements
|
|
|
|
When embedding SVG elements you can also use WikiText features like transclusion. For example, here is an SVG circle with the radius set to the value in the tiddler [[$:/SVGExampleRadius]]:
|
|
|
|
<svg width="150" height="150"><circle cx="75" cy="75" r={{$:/SVGExampleRadius}} stroke="black" stroke-width="2" fill="green"/></svg>
|
|
|
|
You can edit the value of the radius here: <$edit-text tiddler="$:/SVGExampleRadius" tag="input"/>
|