- 14 Apr, 2019 1 commit
-
-
Leon Arnott authored
Closes #163.
-
- 12 Apr, 2019 1 commit
-
-
Leon Arnott authored
-
- 04 Oct, 2018 1 commit
-
-
Leon Arnott authored
I've decided the amount of alterations is major enough to justify this numeric increase. The "design history" section of the documentation is still not complete, so it's being commented out for now.
-
- 26 Jun, 2018 1 commit
-
-
Leon Arnott authored
Added documentation and tests for (click-goto:) etc, and fixed their interactions with (t8n-depart:) etc. Also fixed the UglifyJS npm dependency. Closes #139.
-
- 18 May, 2018 1 commit
-
-
Leon Arnott authored
Added infrastructure for "hook commands", a command which can have changers attached, as well as the "bind" datatype. * "bind" is a new unary operator designed to pass variables by reference to certain upcoming input element macros, like (cycling-link:). This solves, with some brutality, the long-standing issue of not being able to pass in variables by reference to macros, which was always necessary to add these much-sought macros to Harlowe. Try as I might to think of some less blunt way to specify this syntactically, I must now in my increasing age defer to this solution. * "hook commands" will be ordinary commands (which have a TwineScript_Print() method) but also have a TwineScript_Attach() method that allows changers to mutate it in-place before it's finally printed. This will solve the long-standing issue of not being able to attach (t8n:) macros, and other valuable changers, to links and (goto:) macros. * Also fixed a few minor issues here and there.
-
- 14 Apr, 2018 1 commit
-
-
Leon Arnott authored
Type names embedded in data structures will eventually be used with a "matches" operator, which will let concrete data match the abstract holes left by the type names inside the structure. Additionally, the version number has been raised.
-
- 15 Jan, 2018 1 commit
-
-
Leon Arnott authored
Also raised the Harlowe version number to its proper value.
-
- 25 May, 2017 1 commit
-
-
Leon Arnott authored
The current implementation erroneously appends each iteration of (link-repeat:) instead of replacing - but in the interests of backwards-compatibility, I can't change this until another major release. Also fixes a few places where old version numbers were recorded. Closes #92.
-
- 01 Nov, 2016 1 commit
-
-
Leon Arnott authored
Given that Babel inserts the pragma into its compiled output automatically, the pragmas aren't necessarily needed - however, for testing the raw ES6 in a browser without compilation, they still have to be there.
-
- 02 Aug, 2016 1 commit
-
-
Leon Arnott authored
Also specified that 1.2.3 requires jQuery 2.x.
-
- 27 Apr, 2016 1 commit
-
-
Leon Arnott authored
Sadly, the clunky sass.js doesn't work in Node 6 currently. Hopefully the addition of an error message to the makefile instructing one to install Sass will be sufficient. Also removed the -harmony_destructuring flag with Node 6.
-
- 18 Mar, 2016 1 commit
-
-
Leon Arnott authored
Also: * Fixed a bug where changer commands couldn't be added together more than once without the possibility of some of the added commands being lost. * Raised the version number to 1.2.3.
-
- 20 Feb, 2016 1 commit
-
-
Leon Arnott authored
Like aligner markup, column markup consists of single-line tokens indicating that the subsequent text should be separated into columns. They consist of a number of | marks, indicating the size of the column relative to the other columns, and a number of = marks surrounding it, indicating the size of the column's margins in CSS "em" units (which are about the width of a capital M). Separate each column's text with tokens like |=== and ==||, and end them with a final |==| token to return to normal page layout. Also altered the general CSS so that consecutive line breaks are now slightly shortened.
-
- 16 Feb, 2016 1 commit
-
-
Leon Arnott authored
While this is still slower than libsass, the latter sadly doesn't support OS X 10.6.
-
- 15 Feb, 2016 1 commit
-
-
Leon Arnott authored
-
- 31 Jan, 2016 1 commit
-
-
Leon Arnott authored
* Cranked up the version number in format.js and package.json. * Fixed a bug where ChangeDescriptor.update() didn't work when newTargets were present on the ChangeDescriptor. * Fixed some bugs that were present when "<html>" element selector strings were given to revision or enchantment macros. (Thinks: should <html> selectors be a separate datatype, akin to hook selectors, instead of taking up the string space? Maybe ?<html> ?)
-
- 02 Dec, 2015 1 commit
-
-
Leon Arnott authored
This fixes #12. Also: * The test HTML file has been updated to allow testing of both the raw ES6 source, the compiled harlowe-min.js, file and the concatenated format.js file. * Updated the license expression in the package.json file.
-
- 27 Nov, 2015 1 commit
-
-
Leon Arnott authored
The documentation generator script now includes a 'markup' section in the output. I've also decided to employ JS features that necessitate Node v5. Also altered the whitespace regex so that the Ogham space mark and Mongolian vowel separator are no longer considered whitespace.
-
- 24 Nov, 2015 1 commit
-
-
Leon Arnott authored
Also updated the version number to 1.2.2.
-
- 21 Nov, 2015 1 commit
-
-
Leon Arnott authored
Now, (count:) only accepts strings or arrays as the first argument, and uses structural equality to compare array values (so that changer commands, for instance, are compared correctly). Also added documentation for several more macros.
-
- 19 Nov, 2015 1 commit
-
-
Leon Arnott authored
-
- 17 Nov, 2015 1 commit
-
-
Leon Arnott authored
Also fixed some issues with the package.json file.
-
- 14 Nov, 2015 1 commit
-
-
Leon Arnott authored
Now, specific macros expecting a "where" lambda or a "to" lambda will produce an error if the other kind is supplied. Also improved the harlowedocs script so that it outputs finished HTML rather than Markdown, and filled in a few more macros' descriptions.
-
- 08 Nov, 2015 1 commit
-
-
Leon Arnott authored
This was formerly removed in 6f68c369ce69, because the change in 4022efc59d4c that made (set:) return a special object instead of a string can be leveraged to supply the debug notification without passing it directly to userland code. This is fortunate indeed. * Updated the README to list version 1.2 details, and changed the version numbers. * Removed the still-in-development (enchant:) macro for now.
-
- 17 Aug, 2015 1 commit
-
-
Leon Arnott authored
This toolshift should result in better running times for basic tasks, and a somewhat cleaner build script. Also, as a consequence, proper jshintrc files have been created in each codebase (the Harlowe source, and the test specs). However, due to the loss of grunt-contrib-jshint, a custom jshint reporter adapted from it must be included to retain its desirable reporting messages.
-
- 28 Jun, 2015 1 commit
-
-
Leon Arnott authored
These bugs had to do with Babel replacing certain 'this' occurrences with 'undefined'. This has been forcibly hammered down by using eval('this') in their place. Hrmm. Also confirmed the update to npm3 and its shallow node_modules directory, by changing a few build paths. Also added an experimental (enchant:) macro that enchants the given hooks or pseudo-hooks with the given changer. This will hopefully assist in the goal of producing an all-macro stylesheet API, one of Harlowe's long-term design goals.
-
- 21 Jun, 2015 1 commit
-
-
Leon Arnott authored
Now, the codebase uses the following ES6 features: block scoped variables, concise methods, object destructuring, shorthand properties and arrow functions. Other important features, like iterable destructuring, template strings, and so forth, are not yet present but can now be safely employed in future commits. This subset of features matches those available in Firefox, so rapid testing can be done on that browser without the very slow compile step. The test suite HTML file can detect Firefox and use the uncompiled ES6 source, or else use the most recently compiled JS file in the build directory.
-
- 17 May, 2015 1 commit
-
-
Leon Arnott authored
I decided that these macros don't really behave intuitively w/r/t HTML element flow (due to being based on position:absolute), so I don't want their API to be public at present. Also: * Added console.log existence checks to Utils, to prevent certain older browser crashes (albeit only known to be in IE9). * Added a requestAnimationFrame polyfill, to also prevent certain older browser crashes.
-
- 07 Mar, 2015 1 commit
-
-
Leon Arnott authored
That should fix some mysterious problems I've had with failing diffs lately. Also, some documentation comments were made for (set:), (put:), (a:), (range:), String, Boolean, Number, and some others.
-
- 18 Feb, 2015 1 commit
-
-
Leon Arnott authored
* Now, I can add preamble comments to the Macrolib modules which describe the macros for end-user consumption, and then run "grunt harlowedocs" to generate a basic Markdown file describing them, with various small blessings like inter-file hyperlinks between them. This is a somewhat cheesy solution to the issue of keeping my documentation updated, but I like it anyway. * Currently only 3 macros' comments now adhere to this format - (display:), (print:) and (goto:) - but more are on the way. * Also updated a few test cases based on the modified comments.
-
- 15 Feb, 2015 1 commit
-
-
Leon Arnott authored
Also upgraded the version number to 1.1.0 on the basis that macros have been added, rather than just bugfixes.
-
- 01 Jan, 2015 1 commit
-
-
Leon Arnott authored
* Added a "test" folder (separate from the "tests" folder, which is now essentially deprecated) housing a HTML file which runs Jasmine 2.0 via CDN. Future Harlowe tests will be Jasmine spec files in this folder. * Additional jshint tasks have also been added for the new tests, ensuring their correctness. * Fixed a somewhat long-standing bug where certain passage elements were improperly given transition attributes during rendering. Now, the only elements which can be given transition attributes by themselves are <tw-hook> and <tw-passage>. * Fixed a bug in the heading syntax which caused it to be present in the middle of lines rather than just the beginning. * Now, if text markup potentially creates empty HTML elements, these elements are not created. * Fixed a bug where Utils.storyElement could potentially be incorrectly set. * Updated the package.json version number.
-
- 06 Dec, 2014 1 commit
-
-
Leon Arnott authored
* Datamaps are ES6 Maps, safer versions of JS objects with a cleaner keyspace. They're the intended associative array type for Twine 2. (One concern, though, is that currently there's no means of setting an object in key position, let alone accessing said key's value later - hence defeating its primary advantage over using a null-object instead.) * Datasets are plain Sets - unordered collections with a uniqueness constraint. Spread syntax works with them, so it's easy to convert an array to a dataset and back. Incidentally, the "data" prefix is to help distinguish their names as nouns - "map" and especially "set" are common verbs. * Changed the syntax for property access from "." to "'s" - that is, you write "$array's 1st" instead of "$array.1st". This was a long time coming, but I didn't feel the need to pull the lever until Map property access was needed. * Also added "2nd-last" property sugar for array access - "$array's 2nd-last" maps to the Javascript "array[array.length-2]". * In order to access ES6 Map and Set, es6-shim was included as a dependency. While adding this, the lib folder and its ad-hoc collection of libraries was removed - the libs are now accessed from node_modules.
-
- 19 Oct, 2014 1 commit
-
-
Leon Arnott authored
The file had gotten a tad unwieldy to navigate. Now, built-in macros are categorised as "values" (value macros), "sensors" (sensor macros), "styleChangers" (changers concerned with CSS) and "enchantments". One issue with the latter is that revision macros like (replace:) must be included with the enchantments as well, due to combos such as (click-replace:) being computed there. Also: altered the grunt-sass version in package.json to fix a build bug in OS X.
-
- 08 Aug, 2014 1 commit
-
-
Leon Arnott authored
This was a long time coming, but the writability advantages of nested SCSS are too good to ignore. Currently, only the debugmode.css file has been rewritten in SCSS - the others remain pure CSS (which is, as you know, a SCSS subset).
-
- 19 Jan, 2014 1 commit
-
-
Leon Arnott authored
* State.save now uses lz-string (https://github.com/pieroxy/lz-string) to compress and serialise the state object. * The Permalink icon now uses State.save to make a hash-link representation of the current state, as per Twine 1.
-
- 29 Oct, 2013 2 commits
-
-
Leon Arnott authored
* Insert a '==>' on its own line for right-justified text from then on. A '=><=' produces centered text. A '<==>' produces full-justified text. '<==' switches back to left-aligned. * Gruntfile: compiled HTML is now put in the 'dist' folder. * Fixed a bug that prevented Marked errors from displaying.
-
Leon Arnott authored
* Also added grunt-contrib-cssmin, for CSS minification. * Fixed bug where <</click-replace>> was incorrectly considered the end tag of <</click>>. * Fixed other bugs. * Due to the large number of indent changes, I've taken the opportunity to finally convert the whole codebase to K&R braces. :P
-
- 22 Oct, 2013 1 commit
-
-
Chris Klimas authored
-