Skip to content

v1.60

Latest

Choose a tag to compare

@viresh-ratnakar viresh-ratnakar released this 18 Feb 22:48
· 59 commits to master since this release
e45a539

Version: Exolve v1.60: February 18, 2025

  • Add support for non-standard cell shapes via exolve-shaped-cell, which
    specifies the cell shape using SVG and also indicates where the cell label
    (if any) should be placed. In the grid, a cell can be marked to have
    shape #k (k = 1, 2, ...) by suffixing it with [k]. It can also be moved
    to a desired (x,y) instead of its implied position, by using the suffix
    [k,x,y]. Shaped cells are assumed to be disconnected from all their
    neighbours and can only be included in nodir lights.
  • Shaped cells typically need to be marked with bars/lines/curves to "block
    them off" in certain directions. We add the notion of exolve-cell-decorator
    that can be used to add arbitrary SVG decoration to any cell. The decorator
    is specified by listing one or more SVG element specs, optionally prefixed
    by the word "non-clickable" if the separator does not naturally belong to
    the cell it is in (and hence clicking it should not activate that cell).
  • In the grid, a cell can be marked to contain separators numbered k1, k2, ..
    (1-based) by suffixing it with {k1,k2,...}.
  • To help with arrow-key-navigation in grids with shaped cells, we add this
    small tweak: if there is no light cell in the direction of the arrow, but
    there is a light cell immediately diagonally (on either side), then we
    navigate to that cell.
  • Add exolve-grid-spacing and exolve-grid-bounds to help with creating
    grids with shaped cells. Overriding spacings is useful for shapes such
    as diamonds and hexagons. Overriding bounds is useful when cells are
    placed arbitrarily (not along a grid).
  • Update README.md with details on all the above.

Minor Version: Exolve v1.59.4: January 29, 2025

  • If in-clue solutions are provided, but not in-grid, then try to copy
    the in-clue solutions to the grid.
  • Use the above in exolve-from-text.js to enable auto-inferring grids
    with solutions if any clue text past the enum contain the solution
    in square brackets.
  • Add a simple mechanism to augment clue texts (parsed by exolve-from-text.js
    with sections containing solutions (instead of Exolve's square-brackets
    convention, which may get tedious to create):
  Across solution[s][:]
  1 ...
  ...
  Down solution[s][:]
  1 ...
  ...
  • The above format is case-insensitive. The word "solution" must appear
    either as a standalone-heading, or as part of the "Across/Down solution"
    heading.
    vratnakar@vratnakar-glaptop3:/crosswords/exolve$ vi exolve-to-plain.sh
    vratnakar@vratnakar-glaptop3:
    /crosswords/exolve$ head CHANGELOG.md

Changelog

Version: Exolve v1.60: February 18, 2025

  • Add support for non-standard cell shapes via exolve-shaped-cell, which
    specifies the cell shape using SVG and also indicates where the cell label
    (if any) should be placed. In the grid, a cell can be marked to have
    shape #k (k = 1, 2, ...) by suffixing it with [k]. It can also be moved
    to a desired (x,y) instead of its implied position, by using the suffix
    [k,x,y]. Shaped cells are assumed to be disconnected from all their
    vratnakar@vratnakar-glaptop3:~/crosswords/exolve$ head -1000 CHANGELOG.md

Changelog

Version: Exolve v1.60: February 18, 2025

  • Add support for non-standard cell shapes via exolve-shaped-cell, which
    specifies the cell shape using SVG and also indicates where the cell label
    (if any) should be placed. In the grid, a cell can be marked to have
    shape #k (k = 1, 2, ...) by suffixing it with [k]. It can also be moved
    to a desired (x,y) instead of its implied position, by using the suffix
    [k,x,y]. Shaped cells are assumed to be disconnected from all their
    neighbours and can only be included in nodir lights.
  • Shaped cells typically need to be marked with bars/lines/curves to "block
    them off" in certain directions. We add the notion of exolve-cell-decorator
    that can be used to add arbitrary SVG decoration to any cell. The decorator
    is specified by listing one or more SVG element specs, optionally prefixed
    by the word "non-clickable" if the separator does not naturally belong to
    the cell it is in (and hence clicking it should not activate that cell).
  • In the grid, a cell can be marked to contain separators numbered k1, k2, ..
    (1-based) by suffixing it with {k1,k2,...}.
  • To help with arrow-key-navigation in grids with shaped cells, we add this
    small tweak: if there is no light cell in the direction of the arrow, but
    there is a light cell immediately diagonally (on either side), then we
    navigate to that cell.
  • Add exolve-grid-spacing and exolve-grid-bounds to help with creating
    grids with shaped cells. Overriding spacings is useful for shapes such
    as diamonds and hexagons. Overriding bounds is useful when cells are
    placed arbitrarily (not along a grid).
  • Update README.md with details on all the above.

Minor Version: Exolve v1.59.4: January 29, 2025

  • If in-clue solutions are provided, but not in-grid, then try to copy
    the in-clue solutions to the grid.
  • Use the above in exolve-from-text.js to enable auto-inferring grids
    with solutions if any clue text past the enum contain the solution
    in square brackets.
  • Add a simple mechanism to augment clue texts (parsed by exolve-from-text.js
    with sections containing solutions (instead of Exolve's square-brackets
    convention, which may get tedious to create):
  Across solution[s][:]
  1 ...
  ...
  Down solution[s][:]
  1 ...
  ...
  • The above format is case-insensitive. The word "solution" must appear
    either as a standalone-heading, or as part of the "Across/Down solution"
    heading.
  • Similarly, annotations can be provided using similar sections (just replace
    "solution" above with "annotation". Theses solutions/annotations sections
    can only appear after the clues.

Minor Version: Exolve v1.59.3: January 8, 2025

  • Add some more fields to the list of expected ones, as we want
    to make sure that these fields are always present in Exolve
    puzzle structures.

Minor Version: Exolve v1.59.2: December 30, 2024

  • When parsing, if "#" is preceded by a non-space char, then do not
    treat it as a comment marker. Update test-15x15-unsolved.html to
    have examples of when # is and isn't treated as a comment marker.

Minor Version: Exolve v1.59.1: December 26, 2024

  • Re-add the getCellsEntry() function that was deleted by the last
    version (it is used by Webifi).
  • Add getCellsEntry() to the list of expected functions in the test.

Version: Exolve v1.59: December 22, 2024

  • Add support for alternative solutions:
  • exolve-alternatives: <cell>:<letter> says that <letter> is an
    alternative solution for the cell identified by <cell>.
  • We disallow specifying the same cell in more than one exolve-alternatives
    section. The reason is to avoid the possibility of puzzles where the solver
    may reach a dead-end conflict in choices from two groups. Dealing with such
    conflicts would have required adding code complexity as well as user interface
    complexity.
  • The above way of specifying alternatives means that you cannot specify more
    than one alternative for a cell.
  • Revealed in-clue solutions will include all possible solutions for a clue.
    The solutions where some exolve-alternatives groups are used will be
    shown with a superscript that is a comma-separated list of all group numbers
    used in crafting that alternative.
  • We disallow using exolve-alternatives when there ar diagramless cells or
    when any cell does not have a solution. We disallow more than 3 distinct groups
    of alternatives within any single clue.
  • Bug-fix: rebus cells were not working with digits or special chars.
  • Fix documentation for Spacebar semantics in diagramless cells. It does not
    toggle the addition of a block, it only adds (deletion can be done with
    backspace/delete key).

Minor Version: Exolve v1.58.8: December 16, 2024

  • Fix the Enter keyboard shortcut to switch directions.

Minor Version: Exolve v1.58.7: December 11, 2024

  • 'Check this' and 'Check all!' used to behave like 'Reveal this' and
    'Reveal all!' respectively if they found no mistakes: they would reveal
    any clue annos available. This was not intuitive and could be an unnecessary
    spoiler. Removed this behaviour (solvers can always click explicity on
    'Reveal this' and 'Reveal all!' if they want to).
  • When showing a warning (mismatched enum or missing clue, currently), save
    the options that can be used to get rid of these warnings, in a Exolve
    member array (optionsForWarningFixes).
  • In exolve-player, do not just always use options to ignore warnings. Show
    the warnings by default. For the "dismiss" X button, override the hover-text
    to say this:
    • Click to dismiss warnings persistently (appropriate options
      will be added to Exolve specs for this crossword)
      And if the user does click to dismiss, then save the needed options in
      the Exolve specs so that the warning do not reappear the next time the user
      reloads. If the user copies specs from the player, these options to ignore
      will or won't be there in the specs depending on whether the user has not
      dismissed or dismissed the warning.

Minor Version: Exolve v1.58.6: September 9, 2024

  • Deal with a clue-parsing corner case: Eg.:
Across
...
26, 26 Some clue (5,5)

Here, the second 26 now correctly gets interpreted as 26D.

Minor Version: Exolve v1.58.5: August 1, 2024

  • Tweak to the colour-only-cell-bottom option: remove the small 2 pixel
    gap around the bar, and increase its opacity slighlty.
  • Update version numbers in test files.

Minor Version: Exolve v1.58.4: July 29, 2024

  • Add exolve-option: colour-only-cell-bottom. This is applicable to
    cells coloured with both exolve-colour and exolve-nina. It makes
    exolve colour only a bar at the bottom of the cell, instead of colouring
    the whole cell. This option can be useful for creating print-outs, as
    overlaid colours tend to blur the printed text in the cell. This option
    is ignored in 3d, for now (a bit too much more trig needs to be thought
    through :-)).

Minor Version: Exolve v1.58.3: July 20, 2024

  • Add a "force-grid-scale" print setting.

Minor Version: Exolve v1.58.2: July 19, 2024

  • Rename "urls-as-qrcodes*" and "urls-to-qrcodes*" to "url-qrcodes*"
  • Make the url-qrcodes heading "Links" customizable.
  • Add more left-padding for url-qrcode images.

Minor Version: Exolve v1.58.1: July 15, 2024

  • Add a printing option to convert URLs in the Explanations section
    to QR codes. The option is only shown if there are any links in
    the Explanations section.

Version: Exolve v1.58: July 10, 2024

  • Several changes to printing and printing options. Add a prominent
    menu in the print settings that lets you print:
    • Grid and clues
    • Only grid
    • Only clues
      My motivation is to create PDFs that I can stitch together to create
      a book of crosswords, but hopefully others will find other uses as well.
  • A couple of printing options go away. I do not think anyone used them:
    printing a page-break agter the grid (never really wored on most
    platforms), and printing the preamble below the grid.
  • The "Inksaver" printing option moves up to go to the top line in the
    printing panel.
  • Instead of specifying just a single common margin, you can now specify
    four numbers (all in inches), for the top/right/bottom/left margins,
    respectively. You can also specify just 1 or 2 or 3 numbers (missing
    values will be copied from their symmetric counterparts, and if that's
    missing too, then from the last available value).
  • Add options to selectively exclude any of these elements from printing:
    title, setter, preamble, explanations, copyright, questions.
  • Add textarea inputs to allow specifying a header and/or a footer. These
    can be arbitrary HTML snippets. They get stuffed inside DIVs at the beginning
    and end, respectively.
  • Make QR-code location choices be "bottom-right of the page" and
    "bottom-left of the page." (killing the "to the right of the preamble"
    option).
  • Bug-fix: if a clue panel is completely emptied out during printing
    (because of balancing heights), then hide it, so that it does not add
    a vertical margin.
  • In "only-grid" mode, print the copyright string under the grid, to
    the right.

Minor Version: Exolve v1.57.5: June 21, 2024

  • Replace the deprecated googlecharts QR-code web service with quickchart.io.

Minor Version: Exolve v1.57.4: June 4, 2024

  • Add links to the new discussion group
    "Exolve-Exet-Etc"
    to the documentation as well as the Exolve info panel.
  • Change these link anchors to be hyphenated: "Report-bug" and
    "Exolve-on-GitHub" to improve readability. Add hover-text for
    "Report-bug".

Minor Version: Exolve v1.57.3: May 4, 2024

  • Same as 1.57.2, but for xlv-button: use css width 'inherit', to
    override weird default button styling in some blogs.

Minor Version: Exolve v1.57.2: May 4, 2024

  • Make xlv-small-button use css width 'inherit', to override
    weird default button styling in some blogs.

Minor Version: Exolve v1.57.1: May 2, 2024

  • On Firefox, innerText can create spurious newlines as \n<br> in
    the HTML becomes \n\n. This created weird looking text from
    'Email notes'. Fixed by replacing consecutinve newlines with a single
    one, in the 'Email notes' code.

Version: Exolve v1.57: May 1, 2024

  • Allow one or more hints to be added to any clue. The hints can be
    progressively revealed when a clue is the current clue above the grid,
    by clicking on a lightbulb that shows up if there are any unrevealed
    hints left.
  • Clicking on the hints dismisses them.
  • The styling can be customized through exolve-relabel and exolve-colour.

Minor Version: Exolve v1.56.7: April 9, 2024

  • Call getElementsByClassName() only on the current puzzle element, instead
    of calling on document, as that's buggy when multiple puzzles might be
    present (for example, in Exet when showing a preview for selecting a
    previous revision).

Minor Version: Exolve v1.56.6: March 18, 2024

  • Allow placeholder text to contain multi-character letters separated
    by spaces (for languages such as Hindi).

Minor Version: Exolve v1.56.5: February 5, 2024

  • If Shift-click is used on a grid cell, do not toggle direction. This is
    useful to come back to the grid from some other input element (such as
    Jotter or Notes).

Minor Version: Exolve v1.56.4: January 24, 2024

  • When parsing enums like "(one word)", we were allowing arbirary words
    ending in "w" inside the parens. Fix that (to some extent).

Minor Version: Exolve v1.56.3: December 5, 2023

  • Add the notion of an xlv-only-print class (mirroring the existing
    xlv-dont-print class for any elements that make sense only in the
    printed version.

Minor Version: Exolve v1.56.2: November 25, 2023

  • Make "Your Puzzle Title" be the example title in exolve-m-simple.html

Minor Version: Exolve v1.56.1: November 20, 2023

  • Make revealAll() also return false if the user did not confirm.
  • Like revealAllHandler(), create a clearAllHander() that calls
    clearAll(), allowing users to override clearAll inspite of the bound
    handler.

Version: Exolve v1.56: November 19, 2023

  • Add support for "rebus cells"—cells in which the solution may contain multiple
    letters with exolve-option: rebus-cells.

    • With this option set, pressing Shift while entering a letter lets you place
      multiple letters into a cell.
    • Double-clicking on a cell also activates multi-letter entry (useful for
      phones).
    • If a cell already has multiple letters, then entering more letters into it
      is directly possible (without having to press Shift or to double click).
  • Reduce font-size automatically to fit multiple letters in rebus cells..

  • For scripts with multi-char letters (such as Devanagari), enable the entry of

  • Move the right-arrow triangle (and the left-arrow triangle in reversed
    lights) in the current cell to go under the letters rather than to the right,
    when rebus-cells are present. This creates more available space for letters.
    multiple characters via the same Shift/double-click mechanism as used in
    rebus cells (previously it was always activated, which meant there was never
    any auto-advancing, which was a bit annoying).

  • Disallow rebus cells if the script has multi-char letters, or if the crossword
    has diagramless cells (to keep the code simpler).

  • Add support for "letter maths" in the Jotter scratchpad. This is a feature
    that lets the solver test whether a bunch of fodder words can be anagrammed
    to get the solution they are thinking of, and to see what if any letters
    might be missing. If you type "Astronomer - moon starer =" into the
    scratchpad, then it will cleared away as soon as you type the equals sign.
    If you type "Asterix Obelix Dogmatix - Vitalstatistix =" then it will be
    replaced by "er Obex Dogmx - Vtst".

  • When placeholder blanks are placed after a clue (indicated through one or
    more underscores just beyond the enum), make the number of blanks be the
    max of the count of underscores and the placeholder dots-pattern implied by
    the enum (e.g., "... (3,4)" implies "··· ····").

  • Get rid of any extraneous width in placeholder blanks by applying a
    max-width style.

  • Allow the placeholder text to be overridden. So, instead of the dots-pattern
    implied by the enum, you can have any arbitrary text. This overriding text
    should be specified in square brackets just beyond the underscore(s). E.g.:

      What the sign said (3,2) _ [Munch!?]
    
  • Minor bug-fix: call updateActiveCluesStatea() in the Delete-key handler.

Minor Version: Exolve v1.55.1: November 14, 2023

  • Added support for delete key to erase contents of highlighted cell.

Version: Exolve v1.55: November 1, 2023

  • Add exolve-option: add-extraction-slots to add a column of
    inputs in front of the clues.
  • Minor clean-ups and refactorings.

Minor Version: Exolve v1.54.6: October 31, 2023

  • Add some more error reporting to exolve-embedder.js.

Minor Version: Exolve v1.54.5: October 3, 2023

  • Parse enums like (5 6) too.
  • In exolve-from-text, allow there to be a period or
    colon after the clue number.

Minor Version: Exolve v1.54.4: October 2, 2023

  • Add an Inksaver option to printing.

Minor Version: Exolve v1.54.3: October 1, 2023

  • Allow the QR code to be printed at the bottom-right of the whole
    puzzle (and make that the default option).
  • Styling tweaks: don't set styles for "table", make a class called
    "xlv-clues-table" and use that.
  • Change the way darl-mode-only/light-mode-only colour options are
    specified: colour-light- conflicts with a few already existing
    light- options. Use "colour-light." and
    "colour-dark." instead.

Minor Version: Exolve v1.54.2: September 26, 2023

  • Make exolve-from-text.js normalize a couple more common pdf-pasting flaws:
    remove end-of-line hyphens, and insert missing spaces before enums.

Minor Version: Exolve v1.54.1: September 17, 2023

  • When exolve-option: color-name:c is specified, override both light/dark
    mode colors. Override only ligh/dark mode if
    exolve-option: color-light/dark=name:c is specified.

Version: Exolve v1.54: September 17, 2023

  • Tweak dark mode code: allow exolve-options to tweak the colour choices used
    in dark mode, using options like
    exolve-option: colour-dark-active-clue:khaki.
  • Move the code that sets the bg colour of the top clue to be the same as
    that of the puzzle parent (if sufficiently contrastive). Now this is done
    even in light mode. Add exolve-option: no-smart-colouring to suppress
    this.
  • Do not fire a completion event when reloading from saved state.

Version: Exolve v1.53: September 15, 2023

  • Roll back the addition of explicit colours for 'active-clue-text'
    and 'currclue-text'. Too complex, better to inherit. We do deal
    better with dark-mode now, anyway.
  • If the text font color is sufficiently bright (>= 200), then
    we enter dark-mode. We override a few colour choices in dark-mode.
    But we do not tinker with any colour set explicitly with an exolve-option.
  • Introduce another div inside "curr-clue" called "curr-clue-inner". This
    now allows us to let the user specify a small amount of pixel clearance
    between the top of the grid and the bottom of the curr-clue.
  • Allow this clearance to be specified with exolve-option top-clue-clearance.

Version: Exolve v1.52: September 14, 2023

  • Add more CSS overrides to fight blog-styling, this time to counter
    CSS from "ghost" hosting.
  • Set enumLen in clues to be the number of cells if no enum is
    provided (eg, in American-style crosswords), unless the puzzle
    has diagramless cells.
  • Add colours explicitly for currclue-text and active-clue-text
  • Set curr-clue-width and control-panel-width to be the same
    to avoid some jumpy behaviour on small width displays.
  • Tweaks to rendering of answers, scratchpad, links.

Minor Version: Exolve v1.51.1: September 10, 2023

  • Refactor exolve-embedder.html into exolve-embedder.js and a tiny
    HTML file.

Version: Exolve v1.51: September 9, 2023

  • Add exolve-embedder.html, which is a way to directly serve
    .puz and .ipuz files.
  • Several new printing features and some printing tweaks:
    • Option to print a QR code.
    • Option to print the preamble below the grid.
    • Option to print the clues on a separate page.
    • Get smaller-page-widths to print correctly, at least in Chrome,
      by setting zoom to 70% if available printing width is less than or equal
      to 7 inches.
    • Deprecate exolve-option: columnar-layout: it never worked reliably,
      and getting rid of it simplified the code.

Minor Version: Exolve v1.50.6: August 30, 2023

  • Expose the scratch pad (renamed "Jotter") in the main menu.
  • Remove underlines from main menu links (they show up on hovering).

Minor Version: Exolve v1.50.5: August 7, 2023

  • When there is a copyright message, include it in printing as well.

Minor Version: Exolve v1.50.4: July 25, 2023

  • Move the "Your entries are auto-saved..." message to appear in
    the Exolve sub-section, reducing clutter under the crossword.

Minor Version: Exolve v1.50.3: July 15, 2023

  • Make exolve-from-puz.js also read the "Notes" section and set it
    as exolve-preamble if it is nonempty.

Minor Version: Exolve v1.50.2: July 7, 2023

  • Make sure that .xlv-small-buton is not displayed when printing
    (by using a more specific CSS selector).

Minor Version: Exolve v1.50.1: June 7, 2023

  • Bug fix: When deleting older entries while managing local storage,
    first collect the entries to be deleted, then delete them. Otherwise
    we only delete partially, as window.localStorage is a live list.