Skip to content

Latest commit

 

History

History
849 lines (654 loc) · 37.7 KB

CHANGELOG.md

File metadata and controls

849 lines (654 loc) · 37.7 KB

Changelog

Version: Exolve v1.07 February 27 2021

  • When scaling for available width, do not change the font size of the main body of text. Use the computed letterSize only within the grid. This should make clues/preambles look better in mobile devices.

Version: Exolve v1.06 February 26 2021

  • Display the puzzle id and Exolve version after clicking the Tools link.
  • Add an exolve-maker multiline section in which construction software (like Exet) can place some metadata. Such maker info, if found, is also displayed under the Exolve version after clicking the Tools link.
  • Add exolve-maker sections when converting from ipuz/puz.
  • Save the parsed enum part from each clue within the clue object (in case it is scrubbed with an asterisk, for Exet to grab it).
  • Show the Exolve version as a tooltip when hovering on the "Exolve on GitHub" link.

Version: Exolve v1.05 February 19 2021

  • A couple of printing tweaks: do not print the current clue displayed above the grid, add a bit more margin under the preamble, and add a class called xlv-dont-print.
  • Bug-fix: allow check/reveal to go to single-cell mode with a long click even when the cell is a diagramless blocked cell.

Version: Exolve v1.04 February 11 2021

  • In two-column layout, render clues panels to the right if clues-panel-lines option has been used.
  • Also add an option (clues-at-right-in-two-columns) to force this behaviour.
  • Add a "Layout" section in the README file.

Version: Exolve v1.03 February 3 2021

  • Reduce a bit of vertical spacing. Make some fonts (such as in the Tools/Report Bug/... line) smaller. The goal was to avoid the appearance of a vertical scrollbar for a basic 15x15 puzzle without a preamble, in a normal (i.e., mine!) laptop screen with width > about 1900px and height > about 975px.
  • Printing (using the browser's "Print" command or ctrl-P) now lays out the puzzle in a newspaper-like 2-column layout. The across clues panel starts out in the left panel itself, under the grid, and the two columns are of roughly equal height. This is done using CSS "column" layout.
  • Add a new option, columnar-layout. When this option is specified, we render the puzzle in a newspaper-like columnar layout, using CSS "column"s (like in the printing layout described above). The number of columns is determined by the current width of the viewport (we assume that all of it is available to the crossword) and is adjusted if the window is resized. The number of columns can only be one of the following: 1 (which is the same as what we get without the columnar-layout option, when the available width is too small), 2, or 3.
  • In the clues-panel-lines option, set style.maxHeight, not style.height.

Version: Exolve v1.02 January 30 2021

  • Make all clue list boxes (class "xlv-clues-box") have the same width (set to the max width among them). This looks nicer and makes sure there is vertical alignment when one of the clue list boxes (say Down) has shorter clues than the other (say Across).
  • Add CSS so that we also show clues panels one under the other to the right of the grid if there is space (previously the clue panels would appear under the grid even if there was space for a single-column layout to the right of the grid).

Version: Exolve v1.01 January 24 2021

  • Extend the responsive rendering to smaller displays by allowing even smaller grid square dimensions (and with some CSS tweaks).
  • Keep clues table headings in a separate div. This is especially useful when using the clues-panel-lines option, as now the heading will not scroll away with the clues.
  • Allow "nodir" clues table as well as extra clue tables created using --- to have their own headings. The heading is specified right after exolve-nodir: or ---.
  • When there is saved state in the URL as well as in the local storage, prompt the user to ask if they want to override the local storage state.

Version: Exolve v1.00 January 20 2021

  • Stop saving state in cookies. Stop including state in URL (but still provide URL for saving.sharing). Change the name of the addStateToUrl constructor param to the now-more-apt provideStateUrl.
  • Create a saveState constructor param, defaulting to true. Can be set to false for creating throwaway grids such as previews.
  • Provide an interface to see all the local-storage-saved states and delete some of them if needed. The interface also shows the amount of local storage used up in saved Exolve states.

Version: Exolve v0.99 January 2 2021

  • Save puzzle state in the browser's local storage (in addition to cookies).
  • Make exolve-player create the puzzle id from a hash of puz/ipuz file contents for these formats. This + the above change means that we now save and recover state for these formats, when loading in exolve-player.
  • Turn off URL-saving in exolve-player as it does not make sense.

Version: Exolve v0.98 December 15 2020

  • New file: exolve-from-puz.js: support for reading .puz
  • New file: exolve-player.html: drag and drop any exolve/ipuz/puz file
  • Put a * immediately after an enum to hide it.

Version: Exolve v0.97 December 10 2020

  • Make all lines <= 80 chars long (a step towards linting!).
  • Allow exolve puzzle ids be arbitrary strings.
  • Add support for reading the ipuz format.

Version: Exolve v0.96 October 18 2020

  • Minor changes: do not append a script element to the whole document for every Exolve puzzle. Instead append/modify to the frame element for that puzzle.
  • Return status boolean from ClearAll() to know whether the user went ahead (for use in Exet).

Version: Exolve v0.95 October 10 2020

  • Skip the confirmation step if the confirmation message has been set to an empty string via exolve-relabel.
  • Add sections exolve-force-hyphen-right, exolve-force-hyphen-below, exolve-force-bar-right, and exolve-force-bar-below. Each such section is a single-line section that contains a list of cells. This allows you to force the creation of separator hyphens/bars even if not indicated by the enums.

Version: Exolve v0.94 October 4 2020

  • Bug fix: in-clue-annos were not getting rendered properly in the current clue above the grid.

Version: Exolve v0.93 October 4 2020

  • A couple of quick fixes/updates:
  • If there already are span tags in a clue, don't give up on in-clue-annos!
  • s/darkblue/darkgreen/
  • Add a do-not-erase param to checkAll()

Version: Exolve v0.92 October 4 2020

  • All "in-clue annos": "28 Replace bottles containing {questionable medicine} (7)" will underline "questionable medicine" as the definition when the solver clicks on "Reveal this/all".
  • You can provide a custom class name to toggle for the in-clue anno.
  • Create a javaScript API to add arbitrary text within a cell, addCellText()

Version: Exolve v0.91 September 13 2020

  • Very minor changes, all needed for the first release of Exet.
  • Add an optional maxDim parameter to the Exolve constructor, to dictate displayed grid-sizing. Useful for creating smaller "preview" crosswords even when the available space is larger.
  • Do not convert everything tyoed in the scratch pad to upper case.

Version: Exolve v0.90 September 8 2020

  • Add functionality to limit checking/revealing to just the current cell rather than the whole current light. This is done when there is a long click (500+ms) on "Check this" or "Reveal this." Caveat; this does not work on phones and tablets (I only tested on Android) as they deal with long-presses in some special way that I'll try to work with, at some point.
  • Change the default background color of the current clue strip (shown above the grid) to 'white' instead of 'mistyrose' (the active clues in the clues lists still get the 'mistyrose'). This results in a more relaxed appearance (I should have realized this and made this change earlier!). Of course this can be customized too (exolve-option: color-currclue:mistyrose will restore the current colour scheme). When the current clue is an orphan, its background continues to be shown as 'linen' (which can be changed with exolve-option: color-orphan:white, for example).
  • When there are multiple Exolve puzzles, use a running variable to set the index of a new one, rather than using the # of existing puzzles, as we might also need to destroy puzzles from a web page (for example, to show a preview).
  • Allow under-construction grids to specify '?' as the letter in a cell. This is treated just like '0', except that a '0' signifies that the grid has cells where the solution has not been provided, but a '?' does not.
  • Bug-fix: when the enum specified hyphenation in a child clue, and that child clue did not exist in the clues lists, we were hitting an uninitialized property.
  • Separately track the solution to display for a clue from the anno to display. Wrao displayed anno in its own span. Wrap the text of the clue in its own span.
  • Remove weird extra space between prev/next buttons in te current clue strip.
  • When typing in the grid, let space-bar advance to the next cell.
  • When typing in the grid, if an invalid character (such as punctuation) is typed, we were deleting the current entry. Don't do that (delete only with space or backspace or a new valid entry).

Version: Exolve v0.89 August 31 2020

  • Add "conf" parameter defaulting to true, to revealAll(), checkAll(), clearAll(). Useful for programmatically revealing/checking/clearing all cells without creating a confirmation dialog.
  • Follow the order used in the puzzle specs among across/down/nodir clue lists for rendering them. Also use that order for choosing the direction when toggling.
  • Allow some across/down clues to be "deleted" in the sense that they will not get highlighted as we go through the clues. The use-case is for omitting some across/down clues that are completely subsumed by some nodir clues (See exolve/issues/37). To mark a clue as deleted, specify it as * after its clue number.
  • Add more indentation space for clue labels that are not numbers/digits/letters.
  • Bug-fix: setting the "left" attr of curr-clue-parent was getting skipped in a corner case.

Version: Exolve v0.88 August 19 2020

  • Make all messages/labels/hover-texts customizable through exolve-relabel.
  • Add decorator "~" that marks as cell as "skipped-number" cell. This should be used to not assign the normal number to a cell that starts an across or down clue (that number will get assigned to the next cell that starts a clue). Can be used to to create specialty grids with unclued lights or lights clued in special ways. This can also be used to create non-numerically- labelled lights, as an alternative to hide-inferred-clue-numbers.
  • Better clue panel scrolling when clues-panel-lines is used: instead of scrollIntoView(), we just scroll the clues panel by the needed amount.

Version: Exolve v0.87 August 16 2020

  • Some CSS protections for styles that get inherited when embedding. In particular, box-sizing for the clue number column TD in clues lists should not have 'box-sizing: border-box' as we want to exclude the padding from its 2ch max-size.
  • When keeping the current clue visible while scrolling, allow for fixed/sticky-positioned navbars at the top by adding a visTop param to the constructor, that clients can optionally pass as the height of any sticky nav bar at the top.
  • Fixed bug in option clues-panel-lines.

Version: Exolve v0.86 August 15 2020

  • When going to next/prev clue from small-button clicks on the current clue strip, don't jump focus to a placeholder input in the clues list.
  • After dialogs (etc.), set focus back to gridInput based upon whether gridInputWrapper.style.display is not 'none' (rather than from usingGnav: we could be !usingGnav but still have some active cells).
  • Add a CSS style rule for setting font family and font size (same as grid letter) for the outermost .xlv-frame element, so that when embedding we do not inherit weird fonts unintentionally.

Version: Exolve v0.85 August 12 2020

  • Increase font size of clue numbers in grid cells by 1 point.
  • Don't use sonme random keycode to represent "shift-tab": pass a boolean to indicate "shift"
  • Diagramless bug fix: active clues were not getting shown even in the non-diagramless parts of the puzzle, even when their start cells were specified.
  • Complain about invalid chars if found in grid spec.
  • Found and fixed another couple of Diagramless corner case bugs:
    • extendsDiagramlessA/D() were incorrectly ignoring whether the previous cell ended in a bar.
    • Tab-navigation with non-diagramless adjoining diagramless was broken
    • Simplified diagramless gnav: it now happens in units of consecutive cells when possible, instead of single cells.
  • Found and fixed a bug in jigsaw "reveal this" from the clues list side that had sneaked in probably with v0.84.
  • Shorten "Diagramless" to "Dgmless"

Version: Exolve v0.84 August 7 2020

  • Major refactoring to address the following problems that were roadblocks in getting Exolve used within arbitrary websites without conflicting with the site's own JavaScript and HTML:

    • There were lots of globals in the JavaScript.
    • HTML ids and class names were not distinctive.
    • You could only have one puzzle within a single web page.
  • With this release:

    • There are only the following globals created or used by the JavaScript code, all but one having a distinctive name unlikely to collide with anything: Exolve, exolvePuzzles, createExolve, customizeExolve, and createPuzzle.
      • createPuzzle() has been retained (though marked deprecated) as it is used by all existing old Exolve puzzle files.
    • All HTML ids and class names begin with "xlv".
    • You can have multiple puzzles within the same web page.
      • You can place a puzzle within a specific container (such as a DIV) by passing the container's HTML id at puzzle creation time.
      • Or you can just have create puzzles get appended to the end of the page.
      • Each puzzle on a page can use its own oprions (such as colours) and can have its own customization, if needed.
  • Existing puzzle files should continue to work, with one exception: if you used customizePuzzle() in the past, and/or you added supplemental CSS rules, you would have to update those things.

    • Use customizeExolve(puzzle) now, instead of customizePuzzle. The puzzle object has all the components of the puzzle (instead of them being globals). Some of the names of the puzzle components have changed (mostly shortenings of very long names).
    • For updating CSS rules, please note that all class names and HTML ids now begin with xlv. Class names are simply the old names prefixed by "xlv-". Use class names in CSS rules instead of ids, preferably. The ids are puzzle-specific and use prefixes like "xlv1-", "xlv2-", etc.
  • Bug-fix: for languages with multi-character compound letters (such as Hindi), automatically inferred clue solutions were not getting set correctly.

  • Add some space between exolve-credits-generated lines via CSS.

Version: Exolve v0.83 August 3 2020

  • Refactoring, essentially no change in functionality. About 1500 fewer bytes.

Version: Exolve v0.82 August 2 2020

  • With Exolve puzzles embedded inline (not via iframes) in sites, we have to deal with location-hash-parts that are not Exolve state. Modified state parsing to now try the cookie if there is a location hash but its parsing fails.

Version: Exolve v0.81 July 30 2020

  • Move the current clue strip up a bit to clear the top of the grid or top of the active cell (depending upon whether it is in its normal position or scrolled position).
  • Set font family for small-print (otherwise it gets inherited and looked bad in Blogger).
  • Do not set location-hash state when used in an iframe widget.

Version: Exolve v0.80 July 20 2020

  • Supporting code and documentation for creating Exolve widgets.
  • Set some cookie attributes to allow websites to use Exolve code served by a different site.
  • Some crossrefs in README.md.

Version: Exolve v0.79 July 10 2020

  • Changes to make puzzles more responsive on mobile devices.
    • Set the grid size and clues panel sizes depending upon the viewport size.
    • Most of the time, the user will not have to "pinch" to size, the UI should be correctly sized already.
  • If the 'outermost-stack' div already exists (old html file, likely), replace it with current HTML.

Version: Exolve v0.78 June 30 2020

  • If an HTML element with the id "exolve" is present, insert the puzzle within it.

Version: Exolve v0.77 June 20 2020

  • In puzzles with solutions, we now automatically add to the anno (or create an anno consisting of) the solution to the clue, derived from the grid letters and the enum (for spaces, hyphens, etc.). For orphan clues, the solution gets placed inside the placeholder blank slot instead of the head of the anno.

  • This would have meant that if in an older grid the the solution was explicitly included in the anno, it would have got duplicated. So, the code does check to see if the solution string (punctuation/markup notwithstanding) is present at the head of the anno, and avoids duplicating it if so. If the solver wants to present the solution in some other way, they can suppress the automatic addition of the solution to the anno by adding this line to the puzzle specs: exolve-option: no-auto-solution-in-anno This option only suppresses the solution getting added to the anno appearing after the clue. The solution does still get added to the placeholder blank slot of an orphan clue, upon "Reveal this," even with this option.

  • If a clue does not provide its enum (using "(?)" or "(one word)" for eg), the setter can still provide its correct solution in square brackets, at the beginning of the anno. For example, "[A] Lack of understanding (?) [NO CLUE]"

  • For orphan clues (such as in a jigsaw puzzle), if the solver is navigating in the clues list having clicked there last (rather than the grid), then we now make "Reveal this" reveal the current clue rather than the current light in the grid.

  • The styling of the anno is now normal monospace instead of italic. The solution text within the anno is bold monospace (and has the class name "solution" for use in css overrides if desired).

  • Backspace now does not go back beyond a light boundary (except in linked clues).

Version: Exolve v0.76 June 13 2020

  • Allow 'exolve-preamble' as an alias for 'exolve-prelude' as "preamble" is more commonly used in crosswordese.
  • Add 'exolve-postscript' section to add a section at the bottom of the puzzle panel. This can be used, for example, to add nav links.
  • Add option to allow exolve-question to not convert all answer letters into uppercase (for long-form answers, for example). This is done by optionally including the phrase "[lowercase-ok]" (without the quotes) immediately after the enum specified in the question.
  • When exolve-submit is specified, allow submitting partial solutions too, but with an extra warning in the confirmation dialog.

Version: Exolve v0.75 May 28 2020

  • Add support to completely customize the colour scheme of the puzzle by using options like "exolve-option: color-button:blue".
  • Add support for specifying orphan-clue to grid-clue (and/or or grid-cells) mappings: eg., in a nodir clue like "[P] Some clue (4) [4d]"
  • Tweak linked clue indentation a little for non-numeric labels and for Firefox.
  • Bug fix: HTMLCollection is not iterable on Edge, fixed in displayNinas()

Version: Exolve v0.74 May 26 2020

  • The latest version of Chrome adds a black outline on focus to #grid-input, which does not look that great. Add css to counteract.

Version: Exolve v0.73 May 25 2020

  • Bug fix: "catch" needs a paramter (IE/Edge require it strictly).
  • Make the grid-input text invisible, as not matter how much I tweak its alignment with the underlying svg text in the cell, there is still some doubling effect seen in some platforms.

Version: Exolve v0.72 May 14 2020

  • No functionality change. Only some optimizations: use object references when possible, instead of deindexing arrays with the same indices repeatedly.
  • Change the example crossword in exolve.html and exolve-m.html to something smaller and simpler.

Version: Exolve v0.71 May 7 2020

  • Bug-fix: Unicode property escapes in regexpes (added to the code in v0.70) do not work on some browsers such as Firefox (support is coming soon though). Exolve was failing on Firefox because of this, even for English. Fixed so that it only fails for non-English, and that too with a useful error message.

Version: Exolve v0.70 May 7 2020

  • Added support for non-English languages:
    • exolve-language: <language-code> <Script:gt; [<max-char-codes-per-letter>]
    • Required significant changes (but everything should be backward-compatible) in how we check inputs, how we specify the grid, how we save and restore state.
  • Non-English languages made a known issue slightly worse: the current grid letter was getting rendered in a slightly blurry way, because of a slight position mismatch between the cell-text and grid-input. Tweaked a bit to improve.
  • Added an exolve-relabel section that can let you change the text of any button (and any HTML element with an id). This should be particularly useful for non-English crosswords.

Version: Exolve v0.69 May 5 2020

  • When a non-numerically labeled across/down clue or a nodir clue can be ascertained to point to an unclued light (because its start cell or all its cell locations have been provided), we coalesce them now.
  • Documentation tweaks.
  • Typing answers takes the focus away from the grid now, allowing tab navigation.
  • We start out without usingGnav=true now.

Version: Exolve v0.68 May 1 2020

  • Bug fix: on Safari, setting selectionEnd moved focus. When setting up the placeholder for an orphan clue at the top, we should not set selectionEnd in the placeholder in the clue in the clues table.

Version: Exolve v0.67 April 18 2020

  • Bug fix: For a non-numeric clue label (say, "P") with specified grid-position, there were a couple of places where the code tried to deindex a non-existent clue index like 'AP' or 'DP'.
  • Now allow "regular" clue numbers like 16a, 42a, 5d, and 17D in exolve-colour and exolve-nina (apart from A16 and D17 as previously allowed).

Version: Exolve v0.66 April 16 2020

  • The chessboard notation breaks down when there are more than 26 columns. Extend it to allow squares to also be specified using an explicit row number and column number, like "r12c33" or "c33r12" (both are allowed). Row numbers are counted starting from the bottom row at 1, going upwards. Column numbers are counted starting from the leftmost column at 1, going towards the right.
  • In exolve-nina and exolve-colour, also allow entire lights to be specified, like "A12" and "D42".

Version: Exolve v0.65 April 15 2020

  • Create all the puzzle HTML in the init() function, so that the HTML file looks much simpler. Future HTML changes are going to be made through js. But keep the code backwards compatible (if the html already has an 'outermost-stack' element, just use it).

Version: Exolve v0.64 April 13 2020

  • Allow grids without any clues at all.

Version: Exolve v0.63 April 6 2020

  • Mention that placeholders will be cleared in the second "clear all" in the confirmation dialog for the first click on "clear all"
  • Allow enums to also use periods.

Version: Exolve v0.62 April 5 2020

  • Add an input handler for answers (otherwise we were stealing focus to the last answer on Safari).
  • Fix cursor jumping in the scratch-pad.

Version: Exolve v0.61 April 2 2020

  • Clicking/tabbing in placeholders in clues table now keeps the focus there.
  • "Clear this" now respects crossers even when the current grid light does not have a clue.
  • Add tooltip to "Clear this" to let users know about the second click for needed for clearing full crossers.
  • Placeholders can be forcibly cleared with a second click on 'Clear all' when there any orphan clues with placeholders. And for such puzzles, a tooltip on 'Clear all' lets the user know of this functionality.

Version: Exolve v0.60 April 1 2020

  • For orphan clue placeholders, use middle dots (···) instead of question marks (???) so that filled placeholders can more readily be visually distinguished from unfilled ones.
  • Minor bugfixes for linked clue number rendering, when the linked numbers are non-numeric.

Version: Exolve v0.59 April 1 2020

  • Do proper styling of clue numbers for linked clues: let them spill into the clue column, and indent the clue column.
  • Enable 'clear this' button if there is an anno (just like 'reveal this')
  • In 'reveal/clear this' set/reset clue solved state and colour even for orphan clues.

Version: Exolve v0.58 March 26 2020

  • Go back to using old var names such as currentRow, as some customizePuzzle() scripts depend on them.
  • Add a test (test-customize-puzzle.html) to make sure we do not change these names going forward.
  • Increase max allowed grid size to 100.
  • Add the following new exolve-options:
    • grid-background:[html clolor]
    • offset-left:[x]
    • offset-top:[y] The offset-left and offset-top options allow you to move the position of the grid (for example, if you want to paint additional artwork around the grid, using customizePuzzle().
  • Add an exolve-credits section (repeatable).
  • Expose numCelldFilled as a global (numCellsToFill is already there)

Version: Exolve v0.57 March 25 2020

  • Only allow manually setting/unsetting a clue's "solved" state for clues that do not have all cell locations known.
  • When clicking on a black cell or the title (to unhighlight active cells), also unhighlight active clues.

Version: Exolve v0.56 March 23 2020

  • Mainly a revamp of tab navigation, to take into account various cases involving diagramless cells, clues without cells specified, etc.
  • When on a diagramless cell or a cell without a known clue, the clues strip will now cycle through only "orphan clues" with the < and > buttons in it.
  • Darken the current cell more than the rest of the active cells.
  • Add small triangles to indicate the current direction. Unobtrusive and harmless (perhaps reassuring) normally, and quite useful on diagramless cells.
  • Allow clicking on clue numbers in the clues lists, to manually toggle "solved" state (i.e., the light-blue colour). Useful for jigsaw puzzles.

Version: Exolve v0.55 March 9 2020

  • Add prev/next clue buttons in the current clue strip, helping navigation on mobile devices where tab/shift-tab is not doable.

Version: Exolve v0.54 March 5 2020

  • Bugfix: focus on placeholder in a clue only if it actually exists!

Version: Exolve v0.53 March 5 2020

  • Turn on orphan-clue placeholder enrtry areas even if diagramless cells are present--just turn off the copy-from-placeholder buttons (as only one cell will be active if it is diagramless).

Version: Exolve v0.52 March 4 2020

  • Bugfix: tab-navigation in the clues list also moves focus to the placeholder input area, if present.
  • Add hide-copy-placeholder-buttons option to not show copy placeholder buttons if desired.

Version: Exolve v0.51 March 3 2020

  • Allow tab/shift-tab for lights even when they do not have a known clue associated.
  • Use a shorter separator string for saving state (but support the older one too).
  • For nodir clues without cells specified, create placeholder text-entry areas. Also add buttons to transfer into active cells.
  • Bugfix: only if a tab/shift-tab is usable for navigation do we now prevent default browser behaviour.
  • Bugfix: When entering answers, do not make the cursor jump to the end.

Version: Exolve v0.50 February 24 2020

  • Bug fix: revealAll() did not work properly for non-square grids.

Version: Exolve v0.49 February 17 2020

  • Handle tab and shift-tab across clue directions (including nodir).
  • Allow backspacing across linked clues.

Version: Exolve v0.48 February 14 2020

  • Bugfix: Handle the case of a linked clue ending and ressuming on the same cell.

Version: Exolve v0.47 February 12 2020

  • Minor bugfix: activateCell() could make one unnecessary call to itself through toggleCurrentDirection() (making the activeCells array sometimes go bad).

Version: Exolve v0.46 February 8 2020

  • If an entry is fully prefilled, reveal its anno upon first rendering the puzzle.

Version: Exolve v0.45 January 3 2020

  • Bugfix: number-of-cells-filled computation had become buggy with v0.44.

Version: Exolve v0.44 January 2 2020

  • Allow crosswords with single-digit numeric entries. To do this, the exolve-option, "allow-digits" must be specified.
  • For a crossword with solutions, it cannot be the case that all solutions are 0s (even if allow-digits is specified). Such a grid is correctly given the better interpretation: that it is a grid without solutions provided.

Version: Exolve v0.43 December 1 2019

  • Bug fix: mark linked child clues as filled by looking at their parent.

Version: Exolve v0.42 December 1 2019

  • Bug fix: when there is a linked clue but the linked child clue is not explicitly provided (as "13 See 10" or something like that), there was a bug that disallowed typing beyond the first letter of the child clue.

Version: Exolve v0.41 November 20 2019

  • Bug fixes in clearCurrent(), checkCurrent(), revealCurrent(): corner cases for when to show clues state as filled/not-filled.
  • Bug fix to enable reveal button when there is available anno, even for an orphan clue.

Version: Exolve v0.40 November 19 2019

  • Bugfix: updateClueState() had a bug with orphan clues.

Version: Exolve v0.39 November 19 2019

  • When a light is filled in fully, change the colour of its clue-number. The colour is chosen to be a light shade of blue so that:
    • unsolved clues show with darker numbers
    • shade of blue not green as green may be construed as "correct" and we're not checking correctness
    • using a checkmark instead of changing the colour has tedious issues (either shift the clue text to make room, or worry about clipping/eclipsing).
  • Minor tweak to the width of the current clue shown atop the grid, done to make sure that it is not too narrow in smaller puzzles. When too narrow, long clues for the top grid rows were obscuring the top rows.

Version: Exolve v0.38 November 13 2019

  • Bug fix: Don't use parses enum-len == 0 to test if we should set successors in linkd clues.
  • Set wordEndAfter/Under, hyphenAfterUnder even at grid edges, if the setter has done that
  • Render wordendAfter/Under bars only when there is a next light
  • Render only half hyphens at grid edges

Version: Exolve v0.37 November 10 2019

  • Adding a line between clues that starts with --- starts rendering a new table of clues
  • Support for 3d (and 4d!) puzzles:
    • In a nodir clue, allow all cells that comprise the clue to be specified
    • Generalize the notion of 'current direction': it can now be 'A' or 'D' or the clueIndex of a nodir clue

Version: Exolve v0.36 October 22 2019

  • Fixing a slight/silly issue from v0.34: need to set "max-width" (not "width") for #clues, so that we do not force that size on mobile.

Version: Exolve v0.35 October 22 2019

  • Functionality fix: Now, the "Clear this" button at first only clears letters that do not cross other fully filled lights, if there are any. If there are none (i.e., if all remaining letters in the current light also cross other fully filled lights), only then will these remaining letters get cleared.

Version: Exolve v0.34 October 22 2019

  • Make "Clear this" behave incrementally, clearing non-crossing squares first, if there are any.
  • Set a css width for #clues. Only impacts the rare case (but one that I am running into for a grid) when there is an across section, a down section, and a no-dir section. In that case, the specified width will make the no-dir section wrap over (otherwise the entire clues panel wraps over and goes under the grid).

Version: Exolve v0.33 October 16 2019

  • Retain the order of clues provided within Across/Down/Nodir sections (even if the order is weird: the setter probably intends it).
  • Allow non-clue filler lines in Across/Down/Nodir sections (any lines that cannot be parsed as clues and that precede a clue). These lines are simply displayed—they can be used as headings of subsections within clues, or extra notes/instructions, for example.

Version: Exolve v0.32 October 14 2019

  • Bug fix for an edge case: if a clue contains html tags that close beyond the enum part (eg, "5. <b>Clue (4)</b>"), then the closing tag should be a part of the clue text, and it should not be misconstrued as the beginning of an anno.

Version: Exolve v0.31 October 13 2019

  • Remove <hr/> and one <br/> from under grid-panel.
  • Allow comments in the puzzleText area (anything starting with "# ").
  • Ignore blank lines in puzzleText.
  • Switch to a CHANGELOG.md file instead of adding release notes to README.md.

Version: Exolve v0.30 October 10 2019

  • Add code in createPuzzle() that calls the function customizePuzzle() if such a function exists. This can be used by setters to add custom functionality as well as custom look-and-feel (for example, insert some html elements). Such customization will be easier to maintain in the face of newer Exolve versions, as opposed to hard-coded changes to the html.

Version: Exolve v0.29 October 8 2019

  • Do not render any conrols/buttons/questions when printing: try to get the grid and all the clues fit on one page.
  • Use the "zoom" css attribute (non-standard, but works on Chrome and Edge, I think), to slso try to fit on one page when printing.
  • Minor fix: add spaces around the slash introduced for replacing <br> in v0.28.

Version: Exolve v0.28 October 7 2019

  • If the clue contains <br> tags, replace them with "/" for use in the "current clues" strip (which has limited available vertical space).

Version: Exolve v0.27 October 7 2019

  • Add a scratchpad, along with an option to shuffle its contents (or the selected text in it, if something has been selected).
  • Rename the "Controls" toggle to "Tools." The scratchpad is also now toggled with this link.

Version: Exolve v0.26 September 29 2019

  • For long answers, use textarea instead of text.
  • Change colour of prefilled entries to blue: easier to distinguish from black, and also consistent with the colour of hyphens and word-breaks.
  • In a prefilled cell, any input now moves to the next square.

Version: Exolve v0.25 September 28 2019

  • "Check this" and "Check all" now behave (respectively) like "Reveal this" and "Reveal all" if no errors are found.
  • Add "!" as a cell decorator, indicating that the cell should have its solution letter pre-filled (and not editable).

Version: Exolve v0.24 September 26 2019

  • Stop auto-jumping to the next light after finishing entry in one.
  • Provide tab and shift-tab to navigate to the next/prev. clue in the current direction.
  • Provide a Controls link to toggle list of keyboard controls.
  • Hit Enter to toggle current direction.
  • Reveal/Clear This now also show/hide anno for the current clue.

Version: Exolve v0.23 September 19 2019

  • Move the copyright etc. line to go under the light "saving" text and be left- instead of right-aligned for the following reasons:
    • It was cluttered when this was right between the grid and the control buttons, making accidental clicks more likely.
    • The cluttered view also looked, well, cluttered.
    • Right-aligning while not being a child of the grid made it hard to right-justify flush under the grid, making it look odd for non-15x15-sized grids in particular. Now it fits nicely, and also makes it more likely that people will read the "saving" text that is now right above it.
  • Also fix buf where the initial rendering of the current clue was sometimes too narrow.

Version: Exolve v0.22 September 14 2019

  • Only put "Orphan" clues in what was called the "all clues bowser." Orphan clues are those covering diagramless cells, or whose grid location has not been specified.

Version: Exolve v0.21 September 14 2019

  • Add feature (exolve-colour/exolve-color) that lets you colour specific cells.
  • Reduce bar width slightly, in barred grids.
  • Bug fix in barred grids (light spans could be incorrect in certain cases).
  • Bug fix when using clues-panel-lines, scrolling the clue into view used to scroll the current light out of view sometimes.
  • In a barred grid, there is no background visible to click on. You can click on the grid title to unhighlight the current clue now (for printing, for example).

Version: Exolve v0.20 September 2 2019

  • Move clue numbers one pixel up and one pixel to the left, to clear them away more from entered letters.

Version: Exolve v0.19 August 25 2019

  • Ignore a trailing period after a clue number as just a punctuation mark.

Version: Exolve v0.18 August 23 2019

  • Fix bug that did not let you click on circled squares.

Version: Exolve v0.17 August 23 2019

  • Always save the state in the URL. There are some reports of cookie-based state getting lost, unfortunately, so relying more explicitly on URL-based state seems like a good thing.
  • Move the copyright div outside of grid-parent, so that when it gets too wide it does not move the grid. Also, make the text in the copyright div wrap around.

Version: Exolve v0.16 August 17 2019

  • Load state from url-hash first, so that even if cookie is lost, you can recover state. Add explicit note about state getting saved automatically, and also provide a URL that includes the current state in url-hash as a fallback.
  • In exolve-question, allow enums to be followed by the asterisk (like "Enter your name: (40)*") to indicate the size needed for the answer box without actually displaying the enum.