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 innodirlights. - Shaped cells typically need to be marked with bars/lines/curves to "block
them off" in certain directions. We add the notion ofexolve-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-spacingandexolve-grid-boundsto 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.jsto 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/crosswords/exolve$ head CHANGELOG.md
vratnakar@vratnakar-glaptop3:
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 innodirlights. - Shaped cells typically need to be marked with bars/lines/curves to "block
them off" in certain directions. We add the notion ofexolve-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-spacingandexolve-grid-boundsto 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.jsto 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 someexolve-alternativesgroups 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-alternativeswhen 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.
- Click to dismiss warnings persistently (appropriate options
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 bothexolve-colourandexolve-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-printclass (mirroring the existing
xlv-dont-printclass 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 aclearAllHander()that calls
clearAll(), allowing users to overrideclearAllinspite 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 withexolve-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).
- With this option set, pressing Shift while entering a letter lets you place
-
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-slotsto 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. Addexolve-option: no-smart-colouringto 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 settingzoomto 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.