Release notes
2.6.8 April 14, 2017
-
riot
- Fix security patch agains XSS injections riot#2315
2.6.7 November 6, 2016
- riot
2.6.5 October 31, 2016
2.6.4 October 15, 2016
2.6.3 October 9, 2016
-
riot
- Fix serverside nested tags import issue riot#1998 thanks to @prateekbh
- Add
riot.renderAsync
method for async server side rendering more info
2.6.2 September 18, 2016
-
riot
- Fix child tags always inheriting functions and properties from parent tags outside of loop riot#1982
2.6.1 August 25, 2016
2.6.0 August 20, 2016
-
riot
- Fix bug in nested loops templates riot#1646
- Fix server rendering issues riot#1850 riot#1839
- Fix inherit problem in loops riot#1897 thanks to @5angel
- Fix options correctly passed to the compiler riot#1801
- Fix svg xlink attributes riot#1922
- Add support for getters setters in mixins riot#1888 thanks to @5angel
-
riot-observable
- BREAKING CHANGE: riot observable will no longer support events namespaces, this feature brings performance drawback and router issues more info
-
riot-tmpl
- Fix wrong context bug riot#1916
-
riot-route
- Fix relative links issues riot#1916
2.5.0 July 3, 2016
- riot
-
riot-compiler
- Add support for es6 “import” inside tags compiler#71
-
riot-cli
- Add better error messages in case of missing dependencies
2.4.1 May 22, 2016
-
riot
- Fix unable to render server-side SVG riot#1780
- Fix object detection in the loops riot#1790
- Add throw errors in case of unregistered mixins initialization riot#1796 thanks to @juodumas
- Add support for class (function) mixins riot#1800 thanks to @ashleybrener
- Fix
yield
replacing issue riot#1786 - Fix protect the internal “tags” attribute from being externally overridden riot#1803
- Removed useless
riot+compiler.csp.js
bundle riot#1799
2.4.0 May 7, 2016
-
riot
- Fix Chrome Content Security Policy issues riot#1076, we provide special riot builds (
riot.csp
) to solve this problem - Fix multiple global mixin riot#1699 - thanks to @wintercounter
- Add better support for the svg tags riot#1199
- Fix Chrome Content Security Policy issues riot#1076, we provide special riot builds (
-
observable
- Now 30% faster observable#18 - thanks to @Ke-
- Add events namespace support observable#15 - thanks again to @Ke-
-
cli
- Add the
--new
option to easily create new riot components - Fix symlinks issues thanks to the
shelljs@0.7.0
upgrade cli#14
- Add the
-
compiler
- Add the
pug
parser,jade
will be deprecated in the next riot major release - Add the possibility to pass custom parsers options directly via the
compiler.compile
method through theparserOptions: {js: {}, template: {}, style: {}}
key compiler#64 - Fix un-escape parser options in html compiler#63
- Add the
2.3.18 April 2, 2016
-
riot
- Add the possibility to debug the internal tags cache exposed in
riot.vdom
- Fix nested virtual tag unmount issue riot#1652
- Fix select reset on the onchange event riot#1667
- Fix using the new
data-is
attribute the custom tag css are not applied riot#1666 - Update enable the overriding of the riot internal methods riot#1616
- Add the possibility to debug the internal tags cache exposed in
-
route
- Fix subroute context riot-route#52
2.3.17 March 9, 2016
-
riot
- Add support for
data-is
(together withriot-tag
) attribute to bind riot tags to existing DOM elements more info - Fix regression of the input values update patch introduced to fix riot#1612. This fix is a breaking change and we are discussing whether to introduce it in riot 3.0.0
- Fix checkbox update issue riot#1647
- Fix problem with looped
<option>
riot#1374 - Fix all the tags will be lowercase riot#1622
- Add support for
2.3.16 February 27, 2016
-
riot
- Update project copyright more info see also riot#1545
- Add global mixins feature more info
- Fix server side each bug on using the tables riot#1628
- Fix override of the
root
protected property in loops riot#1627 - Fix textarea bug on IE11 riot#1625
- Fix wrong input behavior on update riot#1612
- Fix IE loop performances issues riot#1599
- Fix weird loop bug riot#1581
-
cli
- Fix path issue on Windows riot#1605
2.3.15 January 31, 2016
- riot
-
compiler
- Fix use the
defer
attribute on the<script>
tags to load them in runtime 1492 - Fix riot#1511 : Escape Quotes - They may be some issues to fix
- Regression of logic to parse style and script tags, due to loss of performance and other issues
- Removed the “compress” option of the
less
parser, which is deprecated and generates warnings in the console - Removed the useless CSS parser
stylus
from the browser version - Refactorization of all the code, with more comments in preparation for the automatic documentation of the API
- Various tweaks to increase performance and reduce (~55%) memory consumption
- Files to preprocess are moved from “lib” to the “src” directory, now “lib” has the required node.js files only
- Fix use the
-
tmpl
- Refactorization, now
tmpl
andbrackets
are ~5% faster - Removed unused
tmpl.isRaw
function (internal) - Changes to comments
- Files to preprocess are moved from the “lib” to the “src” directory, “lib” was removed
- Refactorization, now
2.3.13 January 11, 2016
- riot
-
observable
- Fix the issue with the errors swallowed in the callbacks more details, you no longer need
tag.on('error', cb)
to catch them - Change the
all
method replaced with*
to provide a more consistent api more info
- Fix the issue with the errors swallowed in the callbacks more details, you no longer need
-
compiler
- Fix riot#1495 : Warning of input tag value - Avoids warnings for date/datetime/time/month/email/color types with expression in its value.
- Fix riot#1488 : Cannot read property ‘replace’ of undefined when compiling in Node a tag with an import in its less stylesheet – Thanks to @jrx-jsj
- Fix riot#1448 : Riot compiler parses and removes content from string declaration. This is partial fix, you need to write
<\/script>
for closing script tags within quoted strings. - Revised regex that matches
<pre>
tags.
-
tmpl
- Fix issues with double quotes.
-
cli
- Fix for the
watch
task in case of errors, it will keep running re-starting a new subprocess forever on any error - Add better
version
output showing only theriot-compiler
and theriot-cli
version currently in use
- Fix for the
-
route
- Add server side support more details
- Add replaceState support more details
2.3.12 December 15, 2015
-
compiler
- Fix issues on IE 9/10 and other minor issues
- Add the
exclude
to remove singularly portions of your tags from the output likecss
,js
orhtml
- Add
url
as third parameter to thecompile
method to better debug the output
-
route
- Fix important issues on IE and safari
- Fix a regression api bug
-
cli
- Add the
--config
option to load your cli options and parsers from an external es6 config file more details - Add better support for
babel 6
if combined with our babel-preset-es2015-riot
- Add the
-
riot
- Add multi transclusion more details
- Fix loops containing null items
2.3.11 November 22, 2015
-
compiler
- Gets rid of the zero-indentation restriction for custom tags, now you can indent these tags, but the opening and closing tag must have exactly the same indentation (length and type). All the tag will be unindented by this amount.
- Support for
src
andcharset
attributes in<script>
tags for reading JavaScript sources from the file system - riot#507 - The
compile
function can return separate parts by setting the newentities
option. These parts have unescaped newlines. - New attribute
options
forscript
andstyle
tags will append/overwrite attributes in the default configuration object of the parser at tag level. - Fix riot#1261:
<pre>
tag does not preserve neither\n
nor\t
. Now whitespace within<pre>
tags is always preserved. - Fix riot#1358: Empty style in tag (scoped) breaks.
- Fix riot#1306: Compiler preserves newlines in class objects, causing “Unterminated String Constant” errors.
- Fix riot#1314:
settings.brackets
no longer works.
-
riot
- Fix support for
riot.render
on the old node versions - Fix loop small issues using
- Fix
riot.route
will not block not registered links withevent.preventDefault
- Add
error
event on all theriot.observable
instances to catch all the possible errors thrown in the callbacks
- Fix support for
-
cli
- Add better error messages if a parser is not locally installed
- Add the
export
option to extract singularly just portions of your tags likecss
,js
orhtml
- Add the
style
option to chose the default preprocessor for your tags style - Add built-in css preprocessor support for
sass
,scss
andless
2.3.1 November 10, 2015
- Add the
babel
parser to support the brand new babel 6 release, usees6
if you still want to use the previous babel releases - Update
riot.route.start(autoExec)
start listening the url changes and also exec routing on the current url. - Remove
compiler.js
compiler.min.js
from the project root, please use alwaysriot+compiler.js
instead - Fix the broken
modular
option in theriot-cli
- Fix the broken
riot.render
method
2.3.0 November 5, 2015
This major release is a big step forward for riot and it fixes many issues organizing the code base in several modules. Riot was split in 6 different modules:
Here the list of our biggest changes:
- Add html5 history router please check the documentation
- Add new rewritten versions of the compiler, template engine and the command line
- Deprecate
riot.mountTo
- Change
tag._id
totag._riot_id
you should not use riot internal “private” properties anyway - Fix the use of
yield
on the server - Fix memory leak in
riot.render
- Fix the use of dynamic attributes such as
name
id
- Update loop behaviour, they will be a bit slower but more reliable you can use the
no-reorder
option if you want to enable a faster rendering algorithm more details
2.2.4 August 12, 2015
- Fix the remaining core bugs before the bigger 2.3.0 release more details
- Add support for multiple style blocks in the same component
- Fix bugs related to the context lost in the nested loops
- Added more tests to the codebase
- NOTE: This is the last stable release before dropping the IE8 support
- Short-term roadmap
2.2.3 August 4, 2015
- Fix many bugs more details
2.2.2 July 5, 2015
- New child components will inherit properties from the parent also in a loop
- New riot is able to compile attributes also on the top level tag more details
- Improve the loop performances and fix many bugs
- Improve the AMD/commonjs compatibility
- Fix the error thrown in the compiler for the tags using type=text/javascript attribute
- Fix parent variables not exposed to the loop children, now all the children in a loop will inherit the parent properties/methods more details
- Fix the error thrown trying to override read only events properties
- Fix the riot cli combined with the –modular flag when no output file is specified
2.2.1 June 28, 2015
- Fix the options are not correctly passed to the children in a loop more details here
2.2.0 June 27, 2015
- New super fast loop logic ( the DOM nodes will be no longer reordered more details here )
- Re-enable the
use strict
mode - Re-enable the
coffescript
mode for the nostalgics - Fix inconsistencies using loop with empty or null arrays
- Fix the
mount
in the loop children - Increase the code coverage
- Add the possibility to specify where riot will inject the custom tags css in the DOM
List of bug fixes and details can be found here
2.1.0 May 20, 2015
- Mixins
- Ability to define attributes for the root element on the tag definition
- Split the node compiler from the browser compiler
- Simplify the build script using smash
- Add Saucelabs tests hooks for crossbrowser testing
- Add Coveralls coverage hooks to check the code coverage on any pull request
List of bug fixes and details can be found here
2.0.15 Apr 23, 2015
- A new
<yield>
core tag allowing html transclusion - A new riot-tag attribute to use standard HTML elements as mount nodes
-
tag.unmount(flag)
to decide whether the parent should be removed or not from the DOM -
riot.route.start()
andriot.route.stop()
methods to start and stop the Riot router. These methods allow the use of a different router on your application. - The server side compiler now supports AMD and CommonJS modules with
--modular
or-m
command line option - Numerous bug fixes
- Special thanks to @GianlucaGuarini for this release
2.0.14 Apr 8, 2015
2.0.13 Mar 11, 2015
- A large bug fix release consisting of pull requests from the community only. Thank you!
- Larger test suite
2.0.12 Mar 2, 2015
- Support for Scoped CSS
- Direct access to nested tags and their API via
tags
variable. For example:tags.my_timer.clear()
- The custom tags are now constructed on parse time and initialized on mount time. This is preliminary work for the upcoming plugin system and allows plugins to do their thing before initialization as well.
-
--whitespace
compiler option to preserve newlines and whitespace on the generated output. Good with nestedpre
andtextarea
elements. - Using Karma for cross browser testing
-
WARNING the deprecated
riot.mountTo
will be removed on the next release
2.0.11 Feb 23, 2015
-
riot.mount
now accepts the same parameters asriot.mountTo
, which is now deprecated - New
riot.mount(selector, tagName, opts)
allows you to mount a certain tag to any selection of HTML elements -
riot.unmount
followed withriot.mount
now correcly replaces the earlier tag - Test suite v1. Expect this to grow in size and functionality. Thanks to @GianlucaGuarini
2.0.10 Feb 19, 2015
- Todo MVC example
- Array items can be sorted and reordered and the view updates accordingly. Thanks to @pakastin!
- Nested
style
tags are automatically inject into<head>
to avoid duplicate definitions - Ability to define tags on the same line:
<tag></tag>
- Single line ES6 style methods:
foo() { this.bar = 'baz' }
- No illegal server requests with images:
<img src={ src }>
- Fix compiler to support custom brackets
-
this.update()
is no longer needed when defining tags manually withriot.tag
. This method is now automatically called after an event handler is executed - Contributing guidelines
2.0.9 Feb 13, 2015
- LiveScript support
- Ability to set
if
,show
andhide
attributes for a custom tag - Multiple class shortcut:
{ 'foo bar': baz }
- Took away
children
property, which was designed for theoretical need mostly. - A memory leak fix on
riot.observable
. Thanks to @GianlucaGuarini for the hard debug work and everyone else on this pull request
2.0.8 Feb 9, 2015
- New
unmount()
method andchildren[]
property for tag instances - One way data flow: updates and unmounts always propagate downwards from parent to children
- The
if
attribute now works as expected by adding or removing the root node from DOM - Compiler API exposed to the public
- Global variables are supported in expressions, e.g.
{ location }
- Customizable
.tag
extension, e.g.riot --ext html
-
Customizable brackets, e.g.
riot.settings.brackets = '${ }'
- Ability to print the current version with:
riot --version
- The semi-hidden
riot._tmpl()
is now completely hidden and not part of the globalriot
object - Reorganized source code. The former big
view.js
is now split into multiple files
2.0.7 Jan 29, 2015
- Super fast in-browser compilation for:
<script type="riot/tag">
- Built-in Typescript support
- Ability to plug in a HTML pre-processor (along with JS processor)
- Built-in Jade support
- Ability to define custom parsers for router.
- Markup can be written with valid XML and HTML5 void tags are not self-closed
- Allow definition of empty placeholder tags. Good on development phase.
-
riot.observable()
now returns a new observable when called without the argument - Compiler is now called like this:
var riot = require('riot')
var js_string = riot.compile(tag_source_string)
2.0.5 Jan 27, 2015
- An ability to plug in a JavaScript pre-processor
- Built-in CoffeeScript support
- Built-in EcmaScript 6 support
2.0.2 Jan 26, 2015
- CommonJS and AMD support
- Component support
- Bower support
-
npm install
now works under io.js and node 0.11 -
require('riot')
now returns riot.js (plays nicely with Browserify etc.) -
require('riot/compiler')
returns the compiler -
riot.js
andriot.min.js
are now found on the repository root - hosted on cdnjs and jsdelivr
2.0 Jan 22, 2015
A React- like, 2.5KB user interface library
A significant non- backwards compatible update.
1.0 April 15, 2014
Removal of jQuery dependency.
0.9 November 01, 2013
The 1kb client-side MVP library
The initial release.