├── .gitmodules ├── index.js ├── src ├── bus.js ├── commands │ ├── confirm.js │ ├── prompt.js │ ├── break.js │ ├── while.js │ ├── localize.js │ ├── global.js │ ├── globalize.js │ ├── set_vars.js │ ├── wait.js │ ├── fn.js │ ├── goto.js │ ├── alert.js │ ├── restart.js │ ├── do.js │ ├── trigger.js │ ├── sub.js │ ├── with.js │ ├── line.js │ └── var.js ├── dataSources.js ├── functions.js ├── assets.js ├── engine.js ├── extensions │ ├── get-backtrace.js │ ├── hello.js │ ├── button.js │ ├── side-images.js │ └── colored-rectangle.js ├── assets │ ├── Character.js │ ├── Curtain.js │ └── Background.js ├── dataSources │ └── LocalStorage.js ├── tools │ ├── compile.js │ └── reveal.js ├── commands.js ├── loader.js └── LoadingScreen.js ├── tests ├── multiple_game_files │ ├── scenes2.xmugly │ ├── assets.xmugly │ ├── scenes1.xmugly │ ├── settings.xmugly │ ├── game.xmugly │ └── index.html ├── composites │ ├── bg.png │ ├── blue.png │ ├── brown.png │ ├── green.png │ ├── pink.png │ ├── yellow.png │ ├── index.html │ └── game.xml ├── audio │ ├── chaos-circus.mp3 │ ├── chaos-circus.ogg │ ├── index.html │ └── game.xml ├── shake_command │ ├── index.html │ └── game.xmugly ├── extensions_sideImages │ ├── index.html │ └── game.xml ├── ui_commands │ ├── index.html │ └── game.xml ├── choice_command │ └── index.html ├── flash_command │ ├── index.html │ └── game.xml ├── move_command │ └── index.html ├── while_command │ ├── index.html │ └── game.xml ├── with_command │ ├── index.html │ └── game.xml ├── custom_loading_screen │ ├── index.html │ └── game.xml ├── show_hide_commands │ └── index.html ├── var_choice_commands │ ├── index.html │ └── game.xml ├── restart_command │ ├── index.html │ └── game.xml ├── line_command │ ├── index.html │ └── game.xml └── xml_embedded │ └── index.html ├── docs ├── reference │ ├── elements │ │ ├── easing_attribute.md │ │ ├── conditionals.md │ │ ├── triggers.md │ │ ├── group.md │ │ ├── ws.md │ │ ├── displayname.md │ │ ├── settings.md │ │ ├── source.md │ │ ├── scenes.md │ │ ├── set_vars.md │ │ ├── image.md │ │ ├── track.md │ │ ├── when.md │ │ ├── nametemplate.md │ │ ├── assets.md │ │ ├── else.md │ │ ├── start.md │ │ ├── fn.md │ │ ├── play.md │ │ ├── background.md │ │ ├── pause.md │ │ ├── stop.md │ │ ├── tag.md │ │ ├── stage.md │ │ ├── localize.md │ │ ├── globalize.md │ │ ├── alert.md │ │ ├── restart.md │ │ ├── while.md │ │ ├── with.md │ │ ├── global.md │ │ ├── shake.md │ │ ├── trigger_command.md │ │ ├── confirm.md │ │ ├── flash.md │ │ ├── prompt.md │ │ ├── set.md │ │ ├── goto.md │ │ ├── option.md │ │ ├── break.md │ │ ├── flicker.md │ │ ├── choice.md │ │ ├── transform.md │ │ ├── scene.md │ │ ├── character.md │ │ ├── clear.md │ │ ├── imagepack.md │ │ ├── wait.md │ │ ├── composite.md │ │ ├── move.md │ │ ├── curtain.md │ │ ├── trigger.md │ │ ├── sub.md │ │ ├── do.md │ │ ├── var.md │ │ ├── line.md │ │ ├── audio.md │ │ ├── show.md │ │ ├── hide.md │ │ ├── textbox.md │ │ └── animation.md │ ├── language.md │ ├── structure.md │ ├── syntax.md │ └── elements.md ├── development.md ├── examples.md ├── index.md ├── documentation.md ├── community.md ├── downloads.md ├── games.md └── web-servers.md ├── story ├── assets │ └── images │ │ ├── logo.png │ │ ├── jack │ │ ├── grin.png │ │ ├── meh.png │ │ ├── neutral.png │ │ ├── scold.png │ │ ├── smile.png │ │ ├── betweter.png │ │ ├── head-smile.png │ │ └── about.txt │ │ ├── Rainbow_A_01.jpg │ │ ├── cecile │ │ ├── sad.png │ │ ├── shock.png │ │ ├── smile.png │ │ ├── crying.png │ │ ├── head-smile.png │ │ ├── pleading.png │ │ ├── eyes-closed.png │ │ ├── smile-blush.png │ │ ├── amused-smiling.png │ │ ├── shy-or-surprise.png │ │ ├── relieved-or-sighing.png │ │ ├── shy-or-surprise-without-blush.png │ │ └── about.txt │ │ ├── muffin-dot-dat.png │ │ ├── sunsetintheswamp.png │ │ ├── Evening_clouds_C_01.jpg │ │ └── daytime_clouds_A_01.jpg ├── story │ ├── game.xmugly │ ├── settings.xmugly │ ├── assets.xmugly │ └── scenes.xmugly └── index.html ├── .gitignore ├── index.md ├── docs.json ├── package.js ├── package.json ├── README.md ├── LICENSE.md └── scripts.json /.gitmodules: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | 2 | window.WSE = require("./src/engine"); 3 | -------------------------------------------------------------------------------- /src/bus.js: -------------------------------------------------------------------------------- 1 | 2 | var DataBus = require("databus"); 3 | 4 | module.exports = new DataBus(); 5 | -------------------------------------------------------------------------------- /tests/multiple_game_files/scenes2.xmugly: -------------------------------------------------------------------------------- 1 | . scene #scene2 : 2 | (( n: This is scene 2. )) 3 | -- -------------------------------------------------------------------------------- /tests/composites/bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/tests/composites/bg.png -------------------------------------------------------------------------------- /tests/multiple_game_files/assets.xmugly: -------------------------------------------------------------------------------- 1 | . textbox name tb, cssid tb 2 | . character name n, textbox tb -------------------------------------------------------------------------------- /tests/composites/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/tests/composites/blue.png -------------------------------------------------------------------------------- /tests/composites/brown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/tests/composites/brown.png -------------------------------------------------------------------------------- /tests/composites/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/tests/composites/green.png -------------------------------------------------------------------------------- /tests/composites/pink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/tests/composites/pink.png -------------------------------------------------------------------------------- /docs/reference/elements/easing_attribute.md: -------------------------------------------------------------------------------- 1 | 2 | # [attribute] easing 3 | 4 | *Not documented yet, sorry!* 5 | -------------------------------------------------------------------------------- /story/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/logo.png -------------------------------------------------------------------------------- /tests/audio/chaos-circus.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/tests/audio/chaos-circus.mp3 -------------------------------------------------------------------------------- /tests/audio/chaos-circus.ogg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/tests/audio/chaos-circus.ogg -------------------------------------------------------------------------------- /tests/composites/yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/tests/composites/yellow.png -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | releases/**/* 2 | node_modules/* 3 | .vscode/* 4 | build/dependencies.js 5 | export/* 6 | packages/* 7 | -------------------------------------------------------------------------------- /docs/development.md: -------------------------------------------------------------------------------- 1 | 2 | # Development 3 | 4 | You can find documentation for engine developers here -- someday. 5 | -------------------------------------------------------------------------------- /src/commands/confirm.js: -------------------------------------------------------------------------------- 1 | 2 | var ui = require("../tools/ui"); 3 | 4 | module.exports = ui.makeInputFn("confirm"); 5 | -------------------------------------------------------------------------------- /src/commands/prompt.js: -------------------------------------------------------------------------------- 1 | 2 | var ui = require("../tools/ui"); 3 | 4 | module.exports = ui.makeInputFn("prompt"); 5 | -------------------------------------------------------------------------------- /story/assets/images/jack/grin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/jack/grin.png -------------------------------------------------------------------------------- /story/assets/images/jack/meh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/jack/meh.png -------------------------------------------------------------------------------- /docs/reference/elements/conditionals.md: -------------------------------------------------------------------------------- 1 | 2 | # Conditional attributes 3 | 4 | *This still needs to be documented, sorry!* 5 | -------------------------------------------------------------------------------- /story/assets/images/Rainbow_A_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/Rainbow_A_01.jpg -------------------------------------------------------------------------------- /story/assets/images/cecile/sad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/sad.png -------------------------------------------------------------------------------- /story/assets/images/cecile/shock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/shock.png -------------------------------------------------------------------------------- /story/assets/images/cecile/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/smile.png -------------------------------------------------------------------------------- /story/assets/images/jack/neutral.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/jack/neutral.png -------------------------------------------------------------------------------- /story/assets/images/jack/scold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/jack/scold.png -------------------------------------------------------------------------------- /story/assets/images/jack/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/jack/smile.png -------------------------------------------------------------------------------- /story/assets/images/cecile/crying.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/crying.png -------------------------------------------------------------------------------- /story/assets/images/jack/betweter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/jack/betweter.png -------------------------------------------------------------------------------- /story/assets/images/muffin-dot-dat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/muffin-dot-dat.png -------------------------------------------------------------------------------- /docs/examples.md: -------------------------------------------------------------------------------- 1 | 2 | # WebStory Engine Examples 3 | 4 | *Here will be some examples of what you can do with WebStory Engine soon.* 5 | -------------------------------------------------------------------------------- /story/assets/images/cecile/head-smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/head-smile.png -------------------------------------------------------------------------------- /story/assets/images/cecile/pleading.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/pleading.png -------------------------------------------------------------------------------- /story/assets/images/jack/head-smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/jack/head-smile.png -------------------------------------------------------------------------------- /story/assets/images/sunsetintheswamp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/sunsetintheswamp.png -------------------------------------------------------------------------------- /story/assets/images/Evening_clouds_C_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/Evening_clouds_C_01.jpg -------------------------------------------------------------------------------- /story/assets/images/cecile/eyes-closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/eyes-closed.png -------------------------------------------------------------------------------- /story/assets/images/cecile/smile-blush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/smile-blush.png -------------------------------------------------------------------------------- /story/assets/images/daytime_clouds_A_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/daytime_clouds_A_01.jpg -------------------------------------------------------------------------------- /story/assets/images/cecile/amused-smiling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/amused-smiling.png -------------------------------------------------------------------------------- /story/assets/images/cecile/shy-or-surprise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/shy-or-surprise.png -------------------------------------------------------------------------------- /tests/multiple_game_files/scenes1.xmugly: -------------------------------------------------------------------------------- 1 | . scene #start : 2 | . show @tb 3 | (( n: This is scene 1. )) 4 | . goto scene scene2 5 | -- -------------------------------------------------------------------------------- /story/assets/images/cecile/relieved-or-sighing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/relieved-or-sighing.png -------------------------------------------------------------------------------- /story/assets/images/cecile/shy-or-surprise-without-blush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/iiyo/WebStory-Engine/HEAD/story/assets/images/cecile/shy-or-surprise-without-blush.png -------------------------------------------------------------------------------- /story/assets/images/cecile/about.txt: -------------------------------------------------------------------------------- 1 | These sprites were made by Lemmasoft forum user Anna and released to the public domain: 2 | http://lemmasoft.renai.us/forums/viewtopic.php?f=52&t=16129 3 | -------------------------------------------------------------------------------- /story/assets/images/jack/about.txt: -------------------------------------------------------------------------------- 1 | These sprites were made by Lemmasoft forum user Anna and released to the public domain: 2 | http://lemmasoft.renai.us/forums/viewtopic.php?f=52&t=16129 3 | -------------------------------------------------------------------------------- /src/dataSources.js: -------------------------------------------------------------------------------- 1 | 2 | var LocalStorageDataSource = require("./dataSources/LocalStorage"); 3 | 4 | var dataSources = { 5 | LocalStorage: LocalStorageDataSource 6 | }; 7 | 8 | module.exports = dataSources; 9 | -------------------------------------------------------------------------------- /tests/multiple_game_files/settings.xmugly: -------------------------------------------------------------------------------- 1 | . stage width 1366px, height 768px, +create, +center, +resize 2 | . triggers : 3 | . trigger name game_menu_key_trigger, event keyup, key ESCAPE, function savegames 4 | -- -------------------------------------------------------------------------------- /story/story/game.xmugly: -------------------------------------------------------------------------------- 1 | 2 | . ws : 3 | . file type settings, url story/settings.xmugly 4 | . file type assets, url story/assets.xmugly 5 | . file type scenes, url story/scenes.xmugly 6 | -- 7 | -------------------------------------------------------------------------------- /tests/multiple_game_files/game.xmugly: -------------------------------------------------------------------------------- 1 | 2 | 3 | . file type settings, url settings.xmugly 4 | . file type assets, url assets.xmugly 5 | . file type scenes, url scenes1.xmugly 6 | . file type scenes, url scenes2.xmugly 7 | 8 | -------------------------------------------------------------------------------- /docs/index.md: -------------------------------------------------------------------------------- 1 | 2 | # WebStory Engine - Web-based Visual Novel Engine 3 | 4 | WebStory Engine lets you write visual novels that run directly in your browser. Yes, like this one: 5 | 6 | 7 | Read the source code 8 | -------------------------------------------------------------------------------- /docs/reference/elements/triggers.md: -------------------------------------------------------------------------------- 1 | 2 | # [setting] triggers 3 | 4 | Container element that holds the [trigger](trigger.md) declarations. 5 | 6 | This element must be unique. 7 | 8 | 9 | ## Attributes 10 | 11 | * none 12 | 13 | 14 | ## Parents 15 | 16 | * [settings](settings.md) 17 | 18 | 19 | ## Children 20 | 21 | * [trigger](trigger.md) 22 | -------------------------------------------------------------------------------- /docs/reference/elements/group.md: -------------------------------------------------------------------------------- 1 | 2 | # [element] group 3 | 4 | An animation group of commands executed in parallel. 5 | 6 | ## Usage 7 | 8 | See [animation](animation.md). 9 | 10 | ## Attributes 11 | 12 | * none 13 | 14 | ## Parents 15 | 16 | * [animation](animation.md) 17 | 18 | ## Children 19 | 20 | * [do](do.md) 21 | * [transform](transform.md) 22 | -------------------------------------------------------------------------------- /docs/reference/elements/ws.md: -------------------------------------------------------------------------------- 1 | 2 | # [root element] ws 3 | 4 | The root element for WebStories. It contains all other elements. 5 | 6 | Must be unique in the WebStory. 7 | 8 | 9 | ## Attributes 10 | 11 | * none 12 | 13 | 14 | ## Parents 15 | 16 | * none 17 | 18 | 19 | ## Children 20 | 21 | * [settings](settings.md) 22 | * [assets](assets.md) 23 | * [scenes](scenes.md) 24 | 25 | -------------------------------------------------------------------------------- /docs/reference/elements/displayname.md: -------------------------------------------------------------------------------- 1 | 2 | # [element] displayname 3 | 4 | A character's display name. See [character](character.md) for details. 5 | 6 | ## Usage 7 | 8 | * See [character](character.md) for usage examples. 9 | 10 | ## Attributes 11 | 12 | * none 13 | 14 | ## Parents 15 | 16 | * [character](character.md) 17 | 18 | ## Children 19 | 20 | * none; it is supposed to contain only text. 21 | -------------------------------------------------------------------------------- /docs/reference/elements/settings.md: -------------------------------------------------------------------------------- 1 | 2 | # [setting] settings 3 | 4 | The settings section element. 5 | 6 | This element is unique in a WebStory. 7 | 8 | ## Attributes 9 | 10 | * none 11 | 12 | ## Parents 13 | 14 | * [ws](ws.md) 15 | 16 | ## Children 17 | 18 | * [stage](stage.md) 19 | * [triggers](triggers.md) 20 | 21 | ## Other Sections 22 | 23 | * [scenes](scenes.md) 24 | * [assets](assets.md) 25 | 26 | -------------------------------------------------------------------------------- /src/commands/break.js: -------------------------------------------------------------------------------- 1 | 2 | function breakFn (command, interpreter) { 3 | 4 | interpreter.bus.trigger( 5 | "wse.interpreter.commands.break", 6 | { 7 | interpreter: interpreter, 8 | command: command 9 | }, 10 | false 11 | ); 12 | 13 | return { 14 | doNext: false, 15 | wait: true 16 | }; 17 | } 18 | 19 | module.exports = breakFn; 20 | -------------------------------------------------------------------------------- /docs/reference/elements/source.md: -------------------------------------------------------------------------------- 1 | 2 | # [element] audio/track/source 3 | 4 | One source for a [track](track.md) on an [audio](audio.md) asset. 5 | 6 | ## Usage 7 | 8 | See [audio](audio.md). 9 | 10 | ## Attributes 11 | 12 | * **href:** The URL of the source file. 13 | * **type:** The codec type. See [audio](audio.md) for details. 14 | 15 | ## Parents 16 | 17 | * [track](track.md) 18 | 19 | ## Children 20 | 21 | * none 22 | -------------------------------------------------------------------------------- /docs/reference/elements/scenes.md: -------------------------------------------------------------------------------- 1 | 2 | # [section] scenes 3 | 4 | Element for the scenes section containing one or more [scenes](scene.md). 5 | 6 | There can only be one element in each WebStory. 7 | 8 | ## Attributes 9 | 10 | * none 11 | 12 | ## Parents 13 | 14 | * [ws](ws.md) 15 | 16 | ## Children 17 | 18 | * [scene](scene.md) 19 | 20 | ## Other Sections 21 | 22 | * [settings](settings.md) 23 | * [assets](assets.md) 24 | -------------------------------------------------------------------------------- /src/functions.js: -------------------------------------------------------------------------------- 1 | 2 | var functions = { 3 | 4 | savegames: function (interpreter) { 5 | interpreter.toggleSavegameMenu(); 6 | }, 7 | 8 | stageclick_disable: function (interpreter) { 9 | interpreter.game.unsubscribeListeners(); 10 | }, 11 | 12 | stageclick_enable: function (interpreter) { 13 | interpreter.game.subscribeListeners(); 14 | } 15 | 16 | }; 17 | 18 | module.exports = functions; 19 | -------------------------------------------------------------------------------- /docs/reference/elements/set_vars.md: -------------------------------------------------------------------------------- 1 | 2 | # [command] set_vars 3 | 4 | The `set_vars` command sets the values of many variables at once. 5 | 6 | ## Usage 7 | 8 | ```xml 9 | . set_vars names "x, y, xAnchor, yAnchor", values "0%, 0%, 0%, 0%" 10 | ``` 11 | 12 | ## Parents 13 | 14 | * [scene](scene.md) 15 | * [while](while.md) 16 | * [`when`](when.md) 17 | * [else](else.md) 18 | 19 | ## Children 20 | 21 | * none 22 | 23 | ## See also 24 | 25 | * [var](var.md) 26 | -------------------------------------------------------------------------------- /docs/reference/elements/image.md: -------------------------------------------------------------------------------- 1 | 2 | # [element] imagepack/image 3 | 4 | Describes one single image in an imagepack. 5 | 6 | ## Usage 7 | 8 | See [imagepack](imagepack.md). 9 | 10 | ## Attributes 11 | 12 | * **src:** The URL/path where the image can be found. 13 | * **name:** A name for the image by which it is referenced on an imagepack using the 14 | [set](set.md) command. 15 | 16 | ## Parents 17 | 18 | * [imagepack](imagepack.md) 19 | 20 | ## Children 21 | 22 | * none -------------------------------------------------------------------------------- /src/commands/while.js: -------------------------------------------------------------------------------- 1 | 2 | function whileCommand (command, interpreter) { 3 | 4 | interpreter.index -= 1; 5 | interpreter.currentElement -= 1; 6 | interpreter.pushToCallStack(); 7 | interpreter.currentCommands = command.childNodes; 8 | interpreter.scenePath.push(interpreter.index+1); 9 | interpreter.index = -1; 10 | interpreter.currentElement = -1; 11 | 12 | return { 13 | doNext: true 14 | }; 15 | } 16 | 17 | module.exports = whileCommand; 18 | -------------------------------------------------------------------------------- /docs/reference/elements/track.md: -------------------------------------------------------------------------------- 1 | 2 | # [element] audio/track 3 | 4 | Describes one track of an [audio](audio.md) asset. It needs to contain at least one 5 | [source](source.md) element for the track to work. 6 | 7 | 8 | ## Usage 9 | 10 | See [audio](audio.md). 11 | 12 | 13 | ## Attributes 14 | 15 | * **title:** The track's title by which it can be referenced on the `