Read about our upcoming Code of Conduct on this issue

  1. 26 Nov, 2020 1 commit
  2. 25 Nov, 2020 2 commits
    • Leon Arnott's avatar
      Altered the syntax highlighting to add a dotted line indicating when changers... · d1b0b20b62cd
      Leon Arnott authored
      Altered the syntax highlighting to add a dotted line indicating when changers and variables will attach to hooks, eliminating whitespace.
      
      This is by no means perfect, but is still, in my mind, better than having no visual indication whatsoever. This also brings along two tooltips related to changer attachment.
      
      Also added some syntax highlighting colours for a few common operators.
      d1b0b20b62cd
    • Leon Arnott's avatar
      Added (button:), a styling changer for links, as well as added an optional... · d2716f3f6368
      Leon Arnott authored
      Added (button:), a styling changer for links, as well as added an optional "unavailable" text string argument to (link-storylet:).
      
      Having a drop-in styling option for links that makes them more closely resemble other contemporary IF engines' links has been something I've gradually accepted as desirable. That being said, getting this working with every kind of "link" in this engine has forced me to use a CSS class name (a namespace I'm loathe to use unnecessarily).
      
      I feel a bit more positive about (link-storylet:) now that the optional argument and the aformentioned changer are available.
      
      Also fixed a bug where (align:) would override (box:)'s width with its max-width.
      d2716f3f6368
  3. 22 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added a (meter:) command macro, used for creating a videogame bar-graph meter... · 7dffab3fe719
      Leon Arnott authored
      Added a (meter:) command macro, used for creating a videogame bar-graph meter that's bound to a numeric variable.
      
      I'm rather satisfied with this implementation of meters. The only concern right now is that it's the only "interface" macro in the documentation.
      
      Also fixed a bug with (enchant:) where errors produced by the given lambda wouldn't be reported.
      7dffab3fe719
  4. 19 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added a "itself + value" and "variable + value" input interface to the Var... · 98e0788c9907
      Leon Arnott authored
      Added a "itself + value" and "variable + value" input interface to the Var panel of The Harlowe Toolbar.
      
      This essentially "completes" the Var panel, as it allows variables to not just be created, but updated, too. Still a few tweaks are left to be made, though.
      
      Also tweaked the "fidget" (text-style:) animation.
      98e0788c9907
  5. 15 Nov, 2020 1 commit
  6. 14 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added (link-storylet:). Also, link changers now accept an optional changer as... · 86ae1865d162
      Leon Arnott authored
      Added (link-storylet:). Also, link changers now accept an optional changer as their second argument, which is used to style the link and not the hook.
      
      After normalising the behaviour of the (link:) family of changers and other changers combined with them, I'd been stressing out about how to make (link:) links alterable with changers. This solution, the most direct one available, is a little uncomfortable to me because of how much further it differs from the command links' behaviour (as in, (link-goto:)). However, since those already have significant syntactic differences due to being commands rather than changers, I wonder if this divergence of usage might also assist in understanding how unalike they are.
      
      I don't feel very optimistic about (link-storylet:)'s behaviour when no storylet matches the given condition - just printing nothing - and might rework its arguments to make it easier to control what exactly it prints in any situation.
      86ae1865d162
  7. 09 Nov, 2020 1 commit
  8. 08 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added column headers to the Debug Mode table panels, and added "Urgency" and... · 1f92a3d6dd16
      Leon Arnott authored
      Added column headers to the Debug Mode table panels, and added "Urgency" and "Exclusivity" columns to the Storylet panel.
      
      Also:
       * Altered the pseudo-element CSS for (click:), (mouseover:) and (mouseout:) to work correctly with the (box:) macro.
       * Markup that's inside the verbatim markup will no longer be syntax-highlighted as if it was outside it.
       * Fixed a few documentation mistakes.
      1f92a3d6dd16
  9. 04 Nov, 2020 1 commit
    • Leon Arnott's avatar
      Added (urgency:) and (exclusivity:) metadata macros, which affect the... · d5c3f19208db
      Leon Arnott authored
      Added (urgency:) and (exclusivity:) metadata macros, which affect the (open-storylets:) array's contents when they are used in an open storylet.
      
      I plan to add a command macro or two to provide slightly easier consumption of the storylet array than just (open-storylets:), and an increase in accessibility will mean convenience macros like these will be helpful.
      d5c3f19208db
  10. 02 Nov, 2020 2 commits
  11. 30 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added two interface macros, (icon-counter:) and (checkbox:), as well as a changer, (opacity:). · 0defb9d609c6
      Leon Arnott authored
      (icon-counter:) is designed as a built-in solution to putting UI displays in the sidebar, which authors have tended to do over the years. Being a mere display element instead of a clickable icon, it doesn't have the same default opacity as the other icons. (opacity:) had to be added in order to make the default opacity of sidebar icons alterable, if one wanted to bring them all into line with each other.
      
      (checkbox:) has been a long-time obvious addition to bring in from SugarCube. It also makes me want to add (checkbox-fullscreen:), as a counterpart to the link form of fullscreen activation.
      
      Also fixed a 2bind-related bug with (input-box:).
      0defb9d609c6
  12. 27 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added (str-nth:). Also, the icons produced by the icon command macros can now... · b2aa5e6ccc3b
      Leon Arnott authored
      Added (str-nth:). Also, the icons produced by the icon command macros can now have optional text labels added.
      
      These optional text labels are a string argument alongside the optional Unicode glyph string. They are differentiated solely by length, which results in a somewhat unusual type signature for these macros, but one which isn't too bothersome.
      
      The naming of (str-nth:) compared to (nth:) is also something that's a little unfortunate, but I don't think (str-nth:) is quite as useful on the whole as (nth:) is, so I assume it'll be fine given there's not as much chance of confusing the latter for the former.
      b2aa5e6ccc3b
  13. 26 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added two value macros, (plural:) and (trunc:). · 45cc28361d53
      Leon Arnott authored
      Adding some extra string and number utilities has been on my mind for awhile, but I've been less inclined to them until now due to the dry nature of implementing them. More will come soon, I believe.
      45cc28361d53
  14. 24 Oct, 2020 1 commit
  15. 19 Oct, 2020 1 commit
  16. 17 Oct, 2020 1 commit
  17. 16 Oct, 2020 1 commit
  18. 15 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added (icon-undo:), (icon-redo:), (icon-fullscreen:) and (icon-reload:), and... · 7aac8094cf1d
      Leon Arnott authored
      Added (icon-undo:), (icon-redo:), (icon-fullscreen:) and (icon-reload:), and removed the fullscreen icon from the sidebar.
      
      I decided, as expected, that the fullscreen icon tends to stick out quite a bit when it was constantly visible by default. The addition of these macros permits the author to selectively add the fullscreen icon if they wish, using existing macros.
      
      Also fixed a bug where (link:) attached to commands would cause a crash, introduced not long ago.
      7aac8094cf1d
  19. 13 Oct, 2020 1 commit
  20. 11 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Added (link-style:), (line-style:) and (char-style:) as shorthands for using... · 51820c1210f5
      Leon Arnott authored
      Added (link-style:), (line-style:) and (char-style:) as shorthands for using (enchant-in:) with ?Link, ?page's lines, and ?page's chars.
      
      I'd lately begun to feel that it was pretty silly that such useful functionality for line and char styling was locked behind such awkwardly esoteric devices as these hook data names. More relevantly, the arrival of (enchant-in:) resulted in some messy idioms resulting from it (You can't say "this hook's lines", for instance, and instead must specify the equivalent of "the page's lines which are in this hook") and those dearly needed some alternative.
      
      Also:
       * Fixed a bug where a "lines" enchantment would often cause text nodes within lines, such as the text of a (link:) link, to be transplanted out of any elements containing them.
       * Fixed a bug in the syntax highlighter (introduced a few commits ago) where whitespace at the start of a line would be incorrectly highlighted as an error even if it was inside a macro call.
      51820c1210f5
  21. 04 Oct, 2020 1 commit
    • Leon Arnott's avatar
      Improved the variables panel of The Harlowe Toolbar by adding specific... · 1141db623ddd
      Leon Arnott authored
      Improved the variables panel of The Harlowe Toolbar by adding specific elements for inputting numbers, booleans, strings or expressions.
      
      I'm much more satisfied with this, in that it captures the three most common data types and provides affordances for them in a way that just the expression input did not.
      1141db623ddd
  22. 30 Sep, 2020 1 commit
    • Leon Arnott's avatar
      Built out the variables panel in The Harlowe Toolbar. · b20084b32755
      Leon Arnott authored
      This can only create basic (set:) calls, and doesn't provide many affordances for writing correct expressions for the resulting data beyond lexing it and checking for unmatched "text" tokens, but it'll have to do, I guess.
      
      Also performed these tweaks:
      
       * Text tokens inside macro tokens are now coloured as errors by the syntax highlighter.
       * Fixed a bug in the tooltip delay code.
       * Fixed a couple of labels.
       * Fixed a bug in the Link panel's code generation.
      b20084b32755
  23. 28 Sep, 2020 1 commit
    • Leon Arnott's avatar
      Added (link-fullscreen:), a macro to create a fullscreen mode toggle link, and... · 33deb183008b
      Leon Arnott authored
      Added (link-fullscreen:), a macro to create a fullscreen mode toggle link, and a fullscreen sidebar button.
      
      I've done some thinking about fullscreen functionality lately, and I've decided that there isn't THAT much reason to give the author a good degree of control over the fullscreen state. Not only is it true that most browsers nowadays only allow fullscreen mode to be entered in rather specific circumstances, but, from a UX perspective, fullscreen mode should just be a user display option, and not a necessary narrative device that must be enabled to experience the story, and which can be enabled and disabled arbitrarily - which is how it is in most all desktop games. So, I've given up plans to add fullscreen utilities more precise that these.
      
      I don't feel very comfortable about the fullscreen button, and am likely to change it or make it optional/conditionally appendable (by the addition of explicit "icon" command macros that replicate sidebar buttons).
      
      Also made the syntax highlighter tooltips only appear after 90 milliseconds, so as to keep from cluttering the view as you type.
      
      Closes #35.
      33deb183008b
  24. 26 Sep, 2020 2 commits
  25. 25 Sep, 2020 1 commit
  26. 23 Sep, 2020 1 commit
    • Leon Arnott's avatar
      Added (split:) and (joined:), two basic string macros. · 265909dfd9cc
      Leon Arnott authored
      The reason I'd been reticent to add (split:) for so long is that I needed to see exactly what string patterns would resemble before committing to this macro's type signature. Probably overprudent in retrospect, given how straightforward it ultimately is, but nevertheless, that is how it went. That being said, I also wonder if I should a "via" lambda to (joined:)'s signature as an alternative first parameter.
      
      Also:
      
       * Fixed a bug where (click:) and its ilk would cause a crash when given to (enchant:), similar to (link:) formerly.
       * Corrected some large factual errors in (folded:)'s documentation, as well as added some clarification.
      
      Closes #15.
      265909dfd9cc
  27. 21 Sep, 2020 1 commit
    • Leon Arnott's avatar
      Reimplemented the link changers, so that only the hook is affected by changers combined with it. · a1021bbbd5f7
      Leon Arnott authored
      For a long time, the interaction between (link:) and other changers combined with it has been terribly inconsistent, with some changers applying to just the link, others to just the revealed hook, and most of them applying to both. I've decided after much heart-rending that I need to change this to a single hard-and-fast rule: changers combined with (link:) will only apply to the revealed hook, NOT the link. This is to allow (t8n:), (box:), (live:) and other hook-specific changers to interact with (link:) as expected, and also to make (link:) links more consistent with (click:) links.
      
      Sadly, of course, this means that (hover-style:), whose example usage involved combining it with (link:), has now had to have its intended uses rewritten. Also, the current means of applying changers to just the link is now limited to just (enchant:) and (enchant-in:), both of which are somewhat cumbersome. Possibly an (enchant-link:) or (enchant-link-in:) macro may need to be added to make this easier.
      
      Also fixed a bug where (for:) couldn't be attached to commands.
      a1021bbbd5f7
  28. 18 Sep, 2020 1 commit
  29. 13 Sep, 2020 2 commits
    • Leon Arnott's avatar
      Transferred all of the de-structuring functionality of (set:) and (put:) into... · bfb797b13c2d
      Leon Arnott authored
      Transferred all of the de-structuring functionality of (set:) and (put:) into a new (unpack:) macro, and renamed de-structuring to "unpacking", on the basis that it's simply too complicated a concept to have to saddle onto the basic (set:) macro and its documentation.
      
      I feel pretty satisfied with this - not just in the transferral of functionality, but also in the "unpack" name, which was what I'd been shopping for to make this concept more digestible to Harlowe end-users.
      
      Also fixed a couple of tests, and bugs in the previous commits.
      bfb797b13c2d
    • Leon Arnott's avatar
      Added (enchant-in:), a changer variation of (enchant:) which limits the... · 003478bb9e33
      Leon Arnott authored
      Added (enchant-in:), a changer variation of (enchant:) which limits the enchantment to just the attached hook.
      
      I don't like this as the only source of restricted-effect enchantments/changes/revisions, mainly because it seems to illuminate that the hook selection syntax (?hook + ?hook, ?hook's 1st, etc.) needs to be extended to have the same flexibility as CSS selectors, at least. However, that will have to be left unconsidered for now, due to the weight of more pressing issues.
      
      I also am tempted to rename this to (enchant-here:), simply because the "in" doesn't have very smooth readability along with the arguments. But, "here" might not really suggest that it's a changer instead of a command, and the incompleteness of "in" does help with that...
      
      Also:
       * Fixed (source:)'s interaction with (text-colour:).
       * Added the "fade" (transition:), as an alias for "dissolve".
       * Added "New" badges to macros new to 3.2.0 in the documentation.
       * Worked on a few more tooltips for the syntax highlighter.
      003478bb9e33
  30. 09 Sep, 2020 1 commit
  31. 08 Sep, 2020 1 commit
    • Leon Arnott's avatar
      Altered the Makefile to inject metadata from the Metadata script into a new... · b93f2715c1af
      Leon Arnott authored
      Altered the Makefile to inject metadata from the Metadata script into a new module, ShortDefs, used by the rest of the CodeMirror mode.
      
      This replaces the former Makefile injection of macro definitions into TwineMarkup, and allows the Tooltips to access macro definitions, as well as an "abstract" from the opening of each macro's article.
      
      Also:
      
       * Continued working on the Tooltips' underlying display code.
       * Removed the -webkit-transform and -webkit-animation prefixed properties from the generated Harlowe CSS, as well as all flexbox-related prefixes other than -ms-.
      b93f2715c1af
  32. 05 Sep, 2020 1 commit
    • Leon Arnott's avatar
      Preliminary work for the new "tooltip" feature for the syntax highlighter. · 0272c2ef2cd9
      Leon Arnott authored
      A lot of work still needs to be done, mainly involving extracting the necessary definition text summaries from harloweDocs at compile time, as well as adding a lot of logic to decide which description certain tokens, like macros, should have in the tooltip.
      
      Also:
      
       * Renamed the 'newline' data name to 'linebreak', for consistency with how the rest of Harlowe's documentation describes newlines.
       * Added 'fade-up', 'fade-down', 'fade-left' and 'fade-right' transitions, which combine dissolves and slight shifts. You may notice an inconsistency between the word 'fade' and the 'dissolve' transition. I'm still musing on that one.
      0272c2ef2cd9
  33. 29 Aug, 2020 1 commit
    • Leon Arnott's avatar
      Added unclosed collapsing whitespace markup. · 28c2b78018dd
      Leon Arnott authored
      This was added for consistency with hook markup, which offers a similar syntactic feature. I've also added a collapsing whitespace panel to The Harlowe Toolbar that uses this for code generation (though I wonder if it could be expanded a little to support (collapse:).)
      28c2b78018dd
  34. 28 Aug, 2020 2 commits
  35. 27 Aug, 2020 1 commit