diff --git a/js/macros/slider.js b/js/macros/slider.js index 0f40e3cd7..9e5443c47 100644 --- a/js/macros/slider.js +++ b/js/macros/slider.js @@ -19,7 +19,8 @@ exports.macro = { state: {byPos: 0, type: "tiddler"}, targetTiddler: {byPos: 1, type: "tiddler"}, label: {byPos: 2, type: "text"}, - tooltip: {byPos: 3, type: "text"} + tooltip: {byPos: 3, type: "text"}, + content: {byName: true, type: "text"} }, events: { click: function(event) { @@ -38,18 +39,22 @@ exports.macro = { }, execute: function() { var isOpen = this.params.state ? this.store.getTiddlerText(this.params.state,"").trim() === "open" : true, - target = this.params.targetTiddler; + target = this.params.targetTiddler, + sliderContent; + if(this.params.hasOwnProperty("content")) { + sliderContent = this.store.parseText("text/x-tiddlywiki",this.params.content).tree; + } else { + sliderContent = [Renderer.MacroNode( + "tiddler", + {target: target}, + null, + this.store)]; + } var content = Renderer.SliderNode(this.params.state, this.params.label ? this.params.label : target, this.params.tooltip, isOpen, - [ - Renderer.MacroNode( - "tiddler", - {target: target}, - null, - this.store) - ]); + sliderContent); content.execute(this.parents,this.store.getTiddler(this.tiddlerText)); return [content]; }, diff --git a/tiddlywiki5/tiddlers/SliderTests.tid b/tiddlywiki5/tiddlers/SliderTests.tid index 54f345505..0f6232b11 100644 --- a/tiddlywiki5/tiddlers/SliderTests.tid +++ b/tiddlywiki5/tiddlers/SliderTests.tid @@ -5,5 +5,8 @@ The status of this slider is stored in the tiddler JackSlider: And here's another slider that is also keyed to JackSlider (<>), this time inline. -And here's another slider that contains a video: +And here's another slider that contains a video, with the state stored in VideoSlider (currently <>): <> + +And here's a slider that works with text, rather than a separate tiddler. +<>