Difference between revisions of "Dynamic Content Playground"
Jump to navigation
Jump to search
| (5 intermediate revisions by the same user not shown) | |||
| Line 1: | Line 1: | ||
Playground for creating dynamic content on MediaWiki 1.34+ | Playground for creating dynamic content on MediaWiki 1.34+ | ||
| + | |||
| + | Programmatically generated static output for wiki pages in written in LUA. The Lua script resides in a Wiki Module, and functions can be called with #invoke: | ||
| + | |||
| + | [https://en.wikiversity.org/wiki/Lua Tutorial] | ||
[[Module:Playground]] | [[Module:Playground]] | ||
| Line 5: | Line 9: | ||
{{#invoke:Playground|functions}} | {{#invoke:Playground|functions}} | ||
| + | Truely dynamic and interactive content can be created with the Graph extension. "Graphs" are programmed in [https://github.com/vega/vega/wiki VEGA2] | ||
<graph mode=interactive> | <graph mode=interactive> | ||
{ | { | ||
// We want to use Vega 2, and specify image size | // We want to use Vega 2, and specify image size | ||
| − | "version": 2, "width": 300, "height": 80, | + | "version": 2, |
| + | "width": 300, "height": 80, | ||
// Set padding to the same value on all sides | // Set padding to the same value on all sides | ||
"padding": 12, | "padding": 12, | ||
| Line 23: | Line 29: | ||
] | ] | ||
}, | }, | ||
| + | { | ||
| + | "name": "scaledHandlePosition", | ||
| + | "streams": [ | ||
| + | { | ||
| + | "type": "mousemove[isDragging]", | ||
| + | "expr": "eventX()", | ||
| + | "scale": {"name": "yearsScale","invert": true} | ||
| + | } | ||
| + | ] | ||
| + | }, | ||
| + | { | ||
| + | "name": "currentYear", | ||
| + | "init": 2000, | ||
| + | "expr": "clamp(parseInt(scaledHandlePosition),1960,2013)" | ||
| + | } | ||
| + | ], | ||
| + | |||
| + | "scales": [ | ||
| + | { | ||
| + | "name": "yearsScale", | ||
| + | "type": "linear", | ||
| + | "zero": false, | ||
| + | "domain": [1960, 2013], | ||
| + | "range": "width" | ||
| + | } | ||
], | ], | ||
"marks": [ | "marks": [ | ||
| + | { | ||
| + | // draw the year label in the upper left corner | ||
| + | "name": "yearLabel", | ||
| + | "type": "text", | ||
| + | "properties": { | ||
| + | "enter": { | ||
| + | "x": {"value": 0}, | ||
| + | "y": {"value": 25}, | ||
| + | "fontSize": {"value": 32}, | ||
| + | "fontWeight": {"value": "bold"}, | ||
| + | "fill": {"value": "steelblue"} | ||
| + | }, | ||
| + | "update": {"text": {"signal": "currentYear"} } | ||
| + | } | ||
| + | }, | ||
{ | { | ||
// Draw a horizontal line | // Draw a horizontal line | ||
| Line 47: | Line 93: | ||
"properties": { | "properties": { | ||
"enter": { | "enter": { | ||
| − | |||
"y": {"value": 40}, | "y": {"value": 40}, | ||
// path syntax is the same as SVG's path tag | // path syntax is the same as SVG's path tag | ||
| Line 54: | Line 99: | ||
"strokeWidth": {"value": 2.5} | "strokeWidth": {"value": 2.5} | ||
}, | }, | ||
| − | "update": {"fill": {"value": "#fff"} }, | + | "update": { |
| + | "x": {"scale": "yearsScale","signal": "currentYear"}, | ||
| + | "fill": {"value": "#fff"} | ||
| + | }, | ||
// Change fill color of the object on mouse hover | // Change fill color of the object on mouse hover | ||
"hover": {"fill": {"value": "#f00"} } | "hover": {"fill": {"value": "#f00"} } | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
} | } | ||
} | } | ||
] | ] | ||
| − | } | + | } |
</graph> | </graph> | ||
Latest revision as of 09:11, 9 March 2020
Playground for creating dynamic content on MediaWiki 1.34+
Programmatically generated static output for wiki pages in written in LUA. The Lua script resides in a Wiki Module, and functions can be called with #invoke:
- Fahrenheit to Celsius
- 0 °F is -17.8 °C
- 10 °F is -12.2 °C
- 20 °F is -6.7 °C
- 30 °F is -1.1 °C
- 40 °F is 4.4 °C
- 50 °F is 10.0 °C
- 60 °F is 15.6 °C
- 70 °F is 21.1 °C
- 80 °F is 26.7 °C
- 90 °F is 32.2 °C
- 100 °F is 37.8 °C
- Celsius to Fahrenheit
- 0 °C is 32.0 °F
- 10 °C is 50.0 °F
- 20 °C is 68.0 °F
- 30 °C is 86.0 °F
- 40 °C is 104.0 °F
- 50 °C is 122.0 °F
- 60 °C is 140.0 °F
- 70 °C is 158.0 °F
- 80 °C is 176.0 °F
- 90 °C is 194.0 °F
- 100 °C is 212.0 °F
Truely dynamic and interactive content can be created with the Graph extension. "Graphs" are programmed in VEGA2