SugarCube v2.37.3 has been published.
Downloads & documentation for all Twine/Twee compilers: https://www.motoslave.net/sugarcube/2/
v2.37.3 Changelog highlights:
- Fix primitive revival for
undefinedandInfinity.
v2.37.2 Changelog highlights:
- Fix
<<createplaylist>>.
v2.37.1 Changelog highlights:
- Fix legacy autoload code.
- Fix legacy
Config.saves.autosavewhen using an array of tags. - Fix styling issues.
- Fix documentation.
v2.37.0 Changelog highlights:
- Fix issue with builds that affected ancient browsers.
- Fix issue with icon font styling.
- Fix issue with event triggering where native listeners would not always receive custom events.
- Fix issue with external link identification.
- Fix issue with leftover event handlers.
- Fix issue with media activation triggering events.
- Fix issue with session delta coding where arrays were being ignored.
- Update
ConfigAPI:- Fix issue with
Config.passages.transitionOutwhen its value was a CSS property name where outgoing passage elements were not being removed. - Update
Config.cleanupWikifierOutputsetting:- Fix it affecting things it should not.
- Fix it emitting empty paragraphs.
- Add
Config.enableOptionalDebuggingsetting. - Deprecate
Config.macros.ifAssignmentErrorin favor ofConfig.enableOptionalDebugging.
- Fix issue with
- Update
StoryInterfacecode passage:- Fix
data-init-passageattributes being processed too early. - Fix included passages being processed for
data-passageattributes.
- Fix
- Update TwineScript:
- Fix object property names that look like story/temporary variables being erroneously treated as such.
- Add support for JavaScript’s spread/rest syntax.
- Update
ArrayAPI extensions:- Rename
<Array>.delete()instance method to<Array>.deleteAll(). Added<Array>.delete()alias for compatibility. - Add
<Array>.deleteFirst()instance method. - Add
<Array>.deleteLast()instance method. - Add
<Array>.toShuffled()instance method. - Add
<Array>.toUnique()instance method.
- Rename
- Update
DialogAPI:- Fix
Dialog.close()where user specifiedonClosecallbacks were not called when manually invoked. - Fix resizing when contents were dynamically changed.
- Fix failing to render
<body>inert while open when usingStoryInterface. - Add
Dialog.create()static method. DeprecateDialog.setup()static method. - Add
Dialog.empty()static method. - Add
Dialog.wikiPassage()static method.
- Fix
- Update
jQueryAPI plugins:- Update
<jQuery>.ariaDisabled()method to affect thetabindexattribute. - Add
tabindexoption to the<jQuery>.ariaClick()method. - Add
jQuery.wikiPassage()static method. - Add
<jQuery>.wikiPassage()instance method.
- Update
- Update
SaveAPI:- Complete API rewrite.
- Improve performance for large counts and sizes of saves.
- Allow configuration of auto save count.
- Add ability to easily continue from most recent save, regardless of type.
- Add ability to export all browser saves as a bundle that can be imported.
- Update
SettingAPI:- Add
Setting.addValue()static method. - Add
Setting.getValue()static method. - Add
Setting.setValue()static method.
- Add
- Update
UIAPI:- Update Saves dialog to address
SaveAPI changes. - Add
UI.update()static method. - Deprecate
UI.jumpto()static method andbookmarkspecial tag. - Deprecate
UI.share()static method.
- Update Saves dialog to address
- Update
UIBarAPI:- Fix derpiness in UI bar history and toggle controls.
- Deprecate
UIBar.update()static method.
- Update
DebugBar:- Update variable watches to periodically update.
- Add passage navigation control.
- Update macros:
- Fix issue with various link/button macros allowing invalid link text content.
- Fix issue with input macros autofocus failing under various circumstances.
- Fix
<<if>>macro assignment error to ignore string internals during its checks and update it to default to opt-in, rather than opt-out. - Update
<<for>>macrorangesyntax to accept a integer as the collection expression and made the value variable optional. - Update
<<type>>macro to be compatible with<<capture>>. - Update
<<unset>>macro to be able to delete object properties in addition to variables—i.e.,<<unset $pc.armor>>now attempts to remove thearmorproperty from$pc. - Update
<<back>>and<<return>>macros to accept an optional passage name argument in their separate argument forms. - Update widgets’
_argsspecial temporary variable to include anameproperty—i.e.,_args.name. - Rename
<<silently>>macro to<<silent>>. Added a<<silently>>alias for compatibility. - Add
<<do>>and<<redo>>macros. - Deprecate
<<actions>>and<<choice>>macros.
- Update markup:
- Update horizontal rule markup to allow trailing whitespace.
- Update
<style>element image markup parsing to accept TwineScript.
- Update loadscreen to block full startup until dismissed.
- Add
SerialAPI. This removes JSON extensions. - Add utility functions:
- Add
triggerEvent().
- Add
- Add
:uiupdatesystem event. - Add
application-name&versionmetadata to document head. - Extensive refactoring.
- Various documentation updates.
- Update bundled icon font and documented it.
- Update bundled libraries:
jQueryto v3.7.1.lz-stringto v1.5.0.