1. 14 Apr, 2019 1 commit
  2. 12 Apr, 2019 1 commit
  3. 04 Oct, 2018 1 commit
  4. 26 Jun, 2018 1 commit
  5. 18 May, 2018 1 commit
    • Leon Arnott's avatar
      Added infrastructure for "hook commands", a command which can have changers... · 04f96b39de1f
      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.
      04f96b39de1f
  6. 14 Apr, 2018 1 commit
  7. 15 Jan, 2018 1 commit
  8. 25 May, 2017 1 commit
    • Leon Arnott's avatar
      Changed (link-repeat:)'s documentation to match current behaviour. · 476a743d3003
      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.
      476a743d3003
  9. 01 Nov, 2016 1 commit
  10. 02 Aug, 2016 1 commit
  11. 27 Apr, 2016 1 commit
    • Leon Arnott's avatar
      Reverted replacement of Ruby Sass dependency with sass.js · a81b9543a7cb
      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.
      a81b9543a7cb
  12. 18 Mar, 2016 1 commit
  13. 20 Feb, 2016 1 commit
    • Leon Arnott's avatar
      Added column markup syntax. · eb5060542352
      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.
      eb5060542352
  14. 16 Feb, 2016 1 commit
  15. 15 Feb, 2016 1 commit
  16. 31 Jan, 2016 1 commit
    • Leon Arnott's avatar
      Fixed bugs related to ChangeDescriptors and element selectors. · 12d214e8878a
      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> ?)
      12d214e8878a
  17. 02 Dec, 2015 1 commit
  18. 27 Nov, 2015 1 commit
    • Leon Arnott's avatar
      Began entering documentation for Harlowe markup structures. · 86f080b7f728
      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.
      86f080b7f728
  19. 24 Nov, 2015 1 commit
  20. 21 Nov, 2015 1 commit
    • Leon Arnott's avatar
      Fixed a few aspects of (count:). · ec0eff6fb749
      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.
      ec0eff6fb749
  21. 19 Nov, 2015 1 commit
  22. 17 Nov, 2015 1 commit
  23. 14 Nov, 2015 1 commit
    • Leon Arnott's avatar
      Tightened lambda type-signatures. · c63806799848
      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.
      c63806799848
  24. 08 Nov, 2015 1 commit
    • Leon Arnott's avatar
      Reinstated the debug notification for the (set:) macro · 2e3cd53e25b4
      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.
      2e3cd53e25b4
  25. 17 Aug, 2015 1 commit
    • Leon Arnott's avatar
      Migrated build tools from Grunt to Make. · 6f8f191a159b
      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.
      6f8f191a159b
  26. 28 Jun, 2015 1 commit
    • Leon Arnott's avatar
      Fixed bugs preventing the story format from loading in TwineJS. · 3234ca0f1a8a
      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.
      3234ca0f1a8a
  27. 21 Jun, 2015 1 commit
    • Leon Arnott's avatar
      Converted the codebase to ES6 with a Babel compile step. · 502749034f14
      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.
      502749034f14
  28. 17 May, 2015 1 commit
    • Leon Arnott's avatar
      Removed (position-x:) and (position-y:) for now, pending further work. · fceeb5f986ae
      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.
      fceeb5f986ae
  29. 07 Mar, 2015 1 commit
    • Leon Arnott's avatar
      Converted most all files to LF line endings. · 71a70170e0fe
      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.
      71a70170e0fe
  30. 18 Feb, 2015 1 commit
    • Leon Arnott's avatar
      Added a Grunt task to generate author macro documentation from comments. · a79db2405488
      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.
      a79db2405488
  31. 15 Feb, 2015 1 commit
  32. 01 Jan, 2015 1 commit
    • Leon Arnott's avatar
      Began adding automated Jasmine tests, and fixed some markup bugs. · 79d95fe047d6
      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.
      79d95fe047d6
  33. 06 Dec, 2014 1 commit
    • Leon Arnott's avatar
      Added (datamap:) and (dataset:), wrappers for the ES6 Maps and Sets. · 38b6d339323a
      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.
      38b6d339323a
  34. 19 Oct, 2014 1 commit
    • Leon Arnott's avatar
      Split Macrolib into several smaller files. · b67e1ef1f574
      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.
      b67e1ef1f574
  35. 08 Aug, 2014 1 commit
    • Leon Arnott's avatar
      Begun converting the base CSS files to SCSS. · aad226df7d84
      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).
      aad226df7d84
  36. 19 Jan, 2014 1 commit
  37. 29 Oct, 2013 2 commits
    • Leon Arnott's avatar
      Added new aligned text syntax. · 3800a408e511
      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.
      3800a408e511
    • Leon Arnott's avatar
      Reintegrated RequireJS, and combined it with Grunt. · df00ef63e331
      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
      df00ef63e331
  38. 22 Oct, 2013 1 commit