User Tools

Site Tools


This is an old revision of the document!

Twine 1.4.1 is not released yet.

Here are the fixes:


Development program

  • Fixed the Windows VC++ runtime problem
  • Fixed external link syntax highlighting.
  • Fixed syntax highlighting for shorthand «print» macros.
  • Removed the “Delete Passage” menu item in the Story menu, due to an identical entry being in the Edit menu.
  • External links and variable links are no longer considered broken links in the IDE.
  • Fixed annotation passages being drawn too dark in smooth drawing mode.
  • Fixed the monospace font using the normal font's size instead of its own.
  • The StorySettings passage is no longer converted to all-lowercase at build time. This should make HTML exporting/importing more symmetrical.
  • Improved speed of HTML importing.
  • Fixed an error when trying to replace a passage with one from animported file.
  • Fixed importing from HTML sometimes failing to read passagescorrectly.

Game engine

  • Fixed HTML tables in passages not being constructed correctly.
  • Altered Sugarcane's browser state-saving to avoid a crash in Firefox caused by having lots of variables in your story.
  • Fixed TiddlyWiki emdashes not being rendered correctly.
  • Fixed the «nobr» macro inserting zero-width space characters into contained macro tags, thus breaking them.
  • Fixed the [img] syntax used in CSS stylesheets inserting a terminating semicolon, preventing further attributes from being used on the same line.
  • Added “vertical-align:bottom” to images to compensate for a line-height difference between XHTML Transitional and HTML5. Why is there a line-height difference? The person who can answer that is not on this Earth, but in Heaven.
  • Fixed the «nobr» macro not working if any text follows it.
  • Fixed «choice». Now, clicking a «choice» disables all .choice links in the passage, not just itself. This returns it to 1.3.5 behaviour.
  • Fixed variables used as array indexes not being parsed correctly.
  • Restored the left positioning of the Sugarcane sidebar.
  • Added support for “javascript:” and “data:” URIs in external links.
  • You can now use external links in the simple link syntax, such as [[]].
  • Possibly broken pretty-links (as in, links with a separate link text and destination) are now no longer assumed to be external URIs unless they contain a protocol (like “http:”), or the symbols . / \ or #. This should make link debugging a bit easier.
  • Fixed the shorthand «display» macro tag's title sometimes being incorrectly parsed as its first argument.
  • Shorthand «display»: Attempting to access a parameter() that wasn't supplied will no longer throw an error, on the newly considered basis that it would make “variadic passages” (passages that can take multiple optional variables) difficult.
  • Fixed a bug where backslashes would be incorrectly converted to arbitrary letters if passage obfuscation was being used.
  • «back» now works better when Undo is off in Sugarcane. Previously it would mess up the variable state in cases when link variables were in use.
  • «back» and «return» now work when restoring a Jonah state via bookmark.
  • «back» also now works when clicked in a past Jonah passage - previously it would act as if it was in the present passage.
  • Fixed Jonah scrolling in IE 8.
  • Now, only the StoryTitle passage's text content will be used for the window title, instead of its raw code.
  • Now, if a story has no StoryTitle, or the StoryTitle has no text content, it will default to the name of the .tws file used to build it, instead of just “Untitled Story”.
  • Added a sanity check in case a script overrides History.prototype.display() but doesn't pass enough arguments (since in 1.4 it takes 4 arguments instead of 3).
  • Formatting syntax inside link text is once again no longer parsed.
  • Added the CSS “word-break: break-all” to #sidebar li, to keep unnaturally long words from overflowing the sidebar.


Development program

  • IDE tag colours now vary between shades of orange based on the hash of the tags, to help differentiate dissimilarly tagged passages from a distance.
  • Added a Preferences option for showing the faint connector arrows for image and stylesheet passages.
  • Passages displayed via the shorthand «display» syntax now result in connector arrows being drawn.

Game engine

  • Added the tags() function, which takes one or more strings and returns an array of the tags of the given passage (or the current passage if no name is supplied).
  • Added passage(), which simply holds the name of the current passage (If a passage is being «display»ed by another, passage() is the name of the other passage.)
  • Added visitedTag(), which returns the number of times passages with the given tag have been visited. Provide multiple tags to only search for passages that contain both.
  • Added 'header' and 'footer' elements to Jonah's .passage elements, to provide a bit more symmetry with Sugarcane's DOM layout.
  • The CSS selector “:link” in stylesheets is now converted to [class*=Link] at runtime. This is to provide backwards-compatibility for people who used “a:link” to refer to Twine links (which is no longer usable as internal links no longer have href attributes). It's a mean sight of a hack, but so be it - I shan't be adding back the “javascript:void(0)” href no matter what you say.
  • Added the “visitedLink” class, which is applied to passage links that link to already visited passages. “:visited” is converted to “.visitedLink” much like the above. This provides a surprising amount of power - you can give .visitedLink “display:none”, for instance, to make links to all visited passages disappear automatically.
  • Re-implemented «textinput». It creates an <input> text element which, when a <button> element is pressed, sets the variable to its string contents. It may also have an additional parameter, a link expressed in link syntax, which is used to create a <button> next to it. Examples: <<textinput $name>>, <<textinput $name [[Submit|Next passage]]>>.
  • The previous 1.3.6 «textinput» behaviour of triggering the passage change via pressing the Enter key has been removed for now.
  • Added «radio». Its arguments are a variable, and a number of strings for each option. When a <button> is pressed, the label of the selected radio button is put into the variable. Example: <<radio $feel "Strongly agree" "Strongly disagree">>. If you have multiple «radio» macros that refer to the same variable, they're treated as part of the same set.
  • Added «checkbox». It's similar to «radio», having identical syntax - but it sets the variable to an array value containing all of the checked boxes' labels as strings. Example: <<checkbox $weapons "Pistol" "Newspaper" "Letter opener">>.
  • Added «button», a macro that takes a link as its argument and creates a <button> element. Use it for passages which use «radio» or «checkbox», or a «textinput» set. Example: <<button [[Let's go!|armoury]]>>
  • Built HTML files are now timestamped.
twine_1.4.1_release_notes.1388675428.txt.gz · Last modified: 2017/10/09 20:38 (external edit)