* Add XLSX import spec for demo real estate spreadsheets
* Fix fieldname
* Improve map pin
* RealEstate demo: Set lat, long, price fields to be numeric
* Clean up Flickr demo
* Update geomap widget to refresh properly
* Add Leaflet MasterCluster plugin
* Setup the marker cluster plugin
* Rearrange real estate demo
* Reduce default cluster radius
* Beginnings of real estate demo
* Fix interpretation of HTTP status codes
* Real estate demo: Make columns hideable
* Real estate demo: sortability
* Real estate demo: search and limit
* Fix typo
* Fix lat long transposition
* Fix startup ordering
* Add geolookup operator
* Real Estate Demo: Add support for computed columns
* Real estate demo: Increase result limit
* Remove demo data
* Track map pan and zoom state in a state tiddler
* WIP
* Use geojson extension for geojson file
* Use geojson extensions for another geojson file
* Split demo from the geospatial plugin into its own edition
* Add build targets required by ./bin/site-build.sh...
... when building the geospatial edition as the main edition, making it easier to find on Vercel
* CI Fixes
* Fix default tab
* Rearranging geospatial plugin vs. edition
* More refactoring between demo and plugin
* Start of plugin docs
* Display GeoJSON properties on click
* Fix layer lookup demo
* Restore XLSX Utils plugin and dependencies
* Cleanup docs
* Remove 5.2.8 release note
* Remove 5.2.8 release note
* Docs update
* Fix minor refreshing bug for geomap widget
* Docs updates
* Add jsonset operator
* Add geonearestpoint operator
* jsonset: support for other data types and documentation
* Add logo
* Add link to preview build
* jsonset: add support for assigning JSON strings
* Fix nonstandard initialisation code for fill/parameter/slot widgets
* Introduce testcase widget so that we can reuse testcases as documentation examples
There's still a bit to do: adding tabs to the source panel of the testcase display, and tweaking the CSS.
* Update logo
* Testcasewidget: Add tabs for switching between source tiddlers
* Testcase appearance tweaks
* Switch to fluid-fixed layout
* Docs for the testcase-transclude and testcase-view widgets
* Split docs into separate tabs
* Extend testcase-view to be able to view other fields
* Extend default testcase template to show all fields of payload tiddlers
* Add some geomap examples
* Fix testcase rounded corners
* Add a geomap layer demo
* Add favicon
* Switch from building the geospatial plugin as the main build back to tw5.com
To make it easier to get to the documentation for the new features
* Remove obsolete comment
* Remove geospatial plugin from tw5.com build
* Fix build link
* Add note about core enhancements included in this branch
* Refactor data widget implementation
To avoid code duplication
* Integrate test cases with the docs
* Remove erroneously pasted docs material
* Remove erroneously copied olc-encode tests within old-decode test case
* Refactor compound tiddler handling into data widget
And add some tests for the data widget
* Default test case template tweaks
* Move Flickr macros into geospatial plugin from the demo edition
* FlickrDemo: Simplify UI
* FlickrMacros: Use a template to define photo tiddler fields
* Remove geospatial plugin from prerelease default tiddlers
* Extend Flickr helpers to support photoTiddlerTemplate parameter
* Update modification times of doc tiddlers
So that they are at the top of the recent tab
* Update 5.3.0 release note
* Remove custom CI step for this branch
* Restore standard sitetitle
* Flickr macro docs
* Rename $:/tags/GeoLayer to $:/tags/GeoFeature
And make sure that it works with all GeoJSON features, not just polygons
* More test data (from leaflet.js)
* Captions should be transcluded, not viewed raw
* Make HTTP handler use wiki of widget that sent the message
* Switch testcase widget to use an intrinsic template
Makes things much simpler
* Complete Flickr demos
* Extend geonearestpoint operator to work with feature collections
* Extend realestate demo to show data on nearest volcano
* Flickr macros: fix pagination after first page
Make sure that the widget we create to run the actions also has access to the event handlers attached to the rootwidget.
* Real estate demo: Fix nearest volcano
* Testcase docs update
* Testcase template: put title at the top and remove header row
* Docs correction
* New geonearestpoint test case
* Make test cases editable
* Test case default template: Always put "Output" tab first
* Initial Commit
* HttpClient object shouldn't need to know about events
* Add support for cancelling HTTP requests
* Make the number of outstanding HTTP requests available in a state tiddler
* Add a network activity button
Click it to cancel outstanding requests
* WIP
* Fix typo
Thanks @btheado
Co-authored-by: btheado <brian.theado@gmail.com>
* Data widget: parse carriage returns in compound tiddlers
* Fix crash when cancelling more than one HTTP request
Thanks @saqimtiaz
* Further fixes to cancelling outstanding HTTP requests
* Don't have data widget rendering its own JSON
Making the data widget render its raw JSON (introduced in 683ec33004) was a bad idea as it messes up the innerwiki use of the data widget. Instead we use the testcase widget with a special template to render the raw JSON of the payload of a testcase, thus giving us a way to test the data widget
* Fix missed docs update
* Introduce geolayer widget for specifying layers for geomap
* Fix breaking tests
* Remove docs references to obsolete widgets
* Tests for geounion, geointersect and geodifference
* Support for multiple base layers
* Make the layers control visible which allows the base layer to be chosen, and individual overlay layers to be hidden
* Add tiddlers tagged $:/tags/GeoBaseLayer to define some useful map base layers
* Add geobaselayer widget to define base layers
* Add a satellite base layer and another terrain base layer
* Add a note where to get more base layers
* Docs update
* Geomap widget: fix default base layer rendering
* Add startPosition and layersPanel attributes to geomap widget
* Update geolayer widget docs with missing attributes
* Add interactive demos for geounion, geodifference, geointersection
* Open geofeature and geomarker maps on the bounds of their content
* Move settings from demo into plugin
Because now the Flickr macros are part of the plugin
* Icon for geospatial plugin
* Fix missing body
* Flickr Demo typo
* Docs update
* Add support for draggable markers
* Removed accidentally committed file
* Remove unwanted log
* Add support for tm-request-geolocation message
* Fix typo
* Fix bug when fitting to non-extistent bounds
* Update main wiki greeting
* Use "Flickr helpers" instead of "Flickr macros"
* File renames for 05d3271603
* Fix testcase widget example
Thanks @btheado
* Fix testcase widget refreshing
* Fix failing tests from 03b6413c7a
* Docs: Clarify that template must be in the payload
* Testcase widget: Exclude tab state tiddlers
See https://github.com/Jermolene/TiddlyWiki5/pull/7406#discussion_r1327971965
Thanks @btheado
* Remove obsolete setquerystring operator
Instead we have the query- parameters to the http request message
* Remove obsolete change to --setfield command
* Fix tiddler name typo
* Initial Commit
* Add note to preview build
* Fix whitespace and indenting
Thanks @pmario
* Fix crash with unset $tiddler attribute on <$data> widget
Thanks @CodaCodr
* Remove Stamen baselayers
They have stopped making them available for free - see https://maps.stamen.com/stadia-partnership/
* Disable test that won't run in browser CI
* Disable broken tests
* Update olc-encode.tid (#7885)
Correct spelling
* Don't duplicate "description" field in test cases
* Use different background colours for nested testcase widgets
* Extend the testcase widget to run tests
* Add testcases to control panel
* Add a view template body template to render testcase tiddlers
* Test edition should display testcases
* Whitespace fixes
* Make testcase tiddler tempalte link to itself
* Styling tweaks
* Docs improvements
* Styling tweaks
* Run the new tw5.com testcases in the test edition
* Update data widget to display its content in JSON
* Add testcase convenience procedure
* Clearer testcases for data widget, and docs tweaks
* Don't expect our intentionally failing test to pass
* Extend testcase default template so that the display format can be chosen
It is selected by setting the variable "displayFormat"
* DataWidget docs typo
* Mark Geospatial plugin as experimental
* Update to Leaflet v1.9.4
* Remove unneeded template
Left over from when the testcase widget was first implemented
* Don't hide the volcanoes of the world data set
* Update Flickr demo docs
* Fix subtle typo that was preventing popups from working correctly
* Go back to hiding the volcanoes of the world by default
Too much data for a small device now that the markers are displayed correctly
* Clarify docs for tm-request-location
* Update modified testcase from master
* Prepare for merging
---------
Co-authored-by: btheado <brian.theado@gmail.com>
Co-authored-by: Drevarr <drevarr@gmail.com>
* Introduced preliminary idea for infinite recurse exception
* Better handling of infinite recursion
But it could be better still...
* the TransclusionError is a proper error
Moved the magic number to be on the error's class. Not sure if that's
a great idea.
* Fixed minor minor issue that came up in conflict
The minor fix to the jasmine regexp that escaped a '+' somehow
broke some random test.
* Initial Commit
* Fix plugin library URL
* Need to set plugin library location for prerelease
* Styling tweaks
* Docs
* Add tests that the core plugins all have a valid stability field
* Initial Commit
* Add note to preview build
* Fix whitespace and indenting
Thanks @pmario
* Fix crash with unset $tiddler attribute on <$data> widget
Thanks @CodaCodr
* Don't duplicate "description" field in test cases
* Use different background colours for nested testcase widgets
* Extend the testcase widget to run tests
* Add testcases to control panel
* Add a view template body template to render testcase tiddlers
* Test edition should display testcases
* Whitespace fixes
* Make testcase tiddler tempalte link to itself
* Styling tweaks
* Docs improvements
* Styling tweaks
* Run the new tw5.com testcases in the test edition
* Update data widget to display its content in JSON
* Add testcase convenience procedure
* Clearer testcases for data widget, and docs tweaks
* Don't expect our intentionally failing test to pass
* Extend testcase default template so that the display format can be chosen
It is selected by setting the variable "displayFormat"
* DataWidget docs typo
* Fix data widget not refreshing
* Links in testcase output switch to the tab containing that tiddler
Thanks to @btheado for the suggestion
* Docs update for 648855e8a5
* Wording tweak
* Add support for narrative tiddlers in test cases
* Documentation improvements
* Cleanup comments
* Remove obsolete code comments
* Simplify template
* Docs update
* Rename $:/core/ui/testcases/DefaultTemplate/SourceTabs from $:/core/ui/testcases/DefaultTemplate/Source
* Use the view template body for failing tests
* Don't reference the geospatial plugin
* "Test case" should be two words
* Fix handling of currentTiddler variable
Fixes problem reported by @btheado in https://github.com/Jermolene/TiddlyWiki5/pull/7817#issuecomment-2103704468
* Prepare for merging
* Start on some tests for <$action-deletefield />
* Only update modified field if we actually delete a field
…in the <$action-deletefield /> widget.
Fixes a bug where <$action-deletefield foo /> would update the modified field
if the "foo" field wasn't present on a tiddler.
* action-deletefield: Test when modified does and doesn't exist
* Add $timestamp argument to action-deletefield
To make it more consistent with other tiddler-manipulating action widgets
* Add docs for action-deletefield $timestamp
* feat: add transcludes and backtranscludes filter and its relying indexer
* feat: add test about backtranscludes
* docs: add doc about transcludes and backtranscludes Operator
* refactor: merge backlinks and backtranscludes indexer
* fix: test not executed
* fix: latest transclude use $tiddler instead of tiddler
* feat: A tiddler transclude with template will still use the tiddler as result.
* docs: wrong comment
* Added some passing macro definition parsing tests
* Added two failing tests to illustrate bug #3460
* Allow \end to end an whitespace only/empty macro definition. Fixes#3460
* Added some passing procedure definition tests
* Added two failing procedure tests to illustrate bug #3460
* Allow \end to end a whitespace only/empty procedure/function/widget definition. Fixes#3640
* Fixed wording of comment
* Add join attribute to list widget
* Use new join attribute in HTML saving templates
This simplifies the logic involved in saving tiddlers in JSON format
into TW html files, and should also slightly speed up the saving process
depending on how often that list widget gets refreshed.
* Unit tests for list widget's new join attribute
* Add `<$list-join>` widget
Allows specifying complicated join text more easily than an attribute
* Add data attribute support to button widget
* Fix typo
* Refactor ready for making mechanism more generic
* Apply more generic implementation to multiplate widgets
* Refactor to use existing widget.assignAttributes() method
* Fix typo
* Clarify docs
* Update docs
* Update select widget to support style.* attributes
* Remove obsolete comment
* Fixes refresh issues for checkbox and links widgets for data attributes (#7846)
* fix: refresh issues with checkbox and links widgets
* fix: indenting
* Feat: add support for data attributes to Draggable and Droppable widgets (#7845)
* Docs clarification
* docs: add style and data attributes to Draggable and Droppable widget docs (#7850)
* Refactors Select widget to directly create DOM node (#7848)
* fix: refactored SelectWidget to directly create DOM nodes
* fix: refactored SelectWidget to directly create DOM nodes
* fix: improve refresh handling for select widget
* Fixes issues in the PR "Button widget data attributes" (#7852)
* fix: fixed ordered attributes handling and improved tests to catch event attributes
* fix: clean up code from testing
* fix: more tests and refactoring
* fix: use lowercase when checking for event attribute prefix
* fix: use lowercase when checking for event attribute prefix
* fix: changed comment wording
* fix: minor refactoring
* refactor: for brevity
---------
Co-authored-by: Saq Imtiaz <saq.imtiaz@gmail.com>
* Add unit tests for negative indexes in json ops
* Allow negative indexes in JSON operators
Negative indexes will be treated as counting from the end, so -1 means
last item of the array, -2 means next-to-last item, and so on.
* Add documentation for negative indexes
* Fix encodebase64 and decodebase64 filters
The documentation for encodebase64 says that the input is treated as
binary data, but in fact the input is being treated as text data, with
an extra UTF-8 encoding step being performed first.
Likewise, the decodebase64 documentation says that it outputs binary
data, but in fact it will do a UTF-8 decoding step before producing
output, which will in fact garble binary data.
This commit changes the behavior of encodebase64 and decodebase64 to
match what the documentation says they do. It also adds an optional
`text` suffix to both filters to keep the current behavior.
Finally, an optional `urlsafe` suffix is added to both filters to allow
them to use the "URL-safe" variant of base64 (using `-` instead of `+`
and `_` instead of `/`).
* Try to fix failing test
Turns out a little more than this is going to be needed.
* Fix binary base64 encoding, including unit tests
* Update base64 filter documentation
* Can't use replaceAll, too new
Have to use String.replace with a global regex instead
* Replace uses of window.btoa() in rest of code
Since window.btoa() is not available under Node.js, we'll replace all
uses of it with the $tw.utils.base64encode() function that now works
correctly for binary data.
* Add link to UTF-8 glossary definition at MDN
* Passing test
* Failing test
* Fix test
It still fails, but now fails correctly
* Fix refreshing transcluded functions (#7755)
We store the previous result of the filter function and recalculate it
when the transclude widget needs to be refreshed, refreshing the widget
if the result is different.
---------
Co-authored-by: Jeremy Ruston <174761+Jermolene@users.noreply.github.com>
Co-authored-by: Robin Munn <rmunn@pobox.com>
* Initial Commit
* Update docs
* Add support for elseif blocks
* Another test
* WIP
* Change from `{%if%}` to `<%if%>`
See discussion here - https://talk.tiddlywiki.org/t/proposed-if-widget/7882/64
* Don't use the widget body as the template if a list-empty widget is present
See discussion here - https://github.com/Jermolene/TiddlyWiki5/pull/7710#issuecomment-1717193296
* List widget should search recursively for list-template and list-empty
* Allow block mode content within an if/then/else clause
* Update docs
* Add from-version tag to docs
* Add failing test for list widget with counter-last
The failing test appends a value to a list without changing the rest of
the list, and the counter-last value doesn't get updated correctly when
that happens. Also added another test, which passes, testing removing
the last item of the list, just in case of a regression.
* Improve unit tests for counter-last list widget bug
The unit tests were looking very similar to each other, so I factored
out the common code and made them into simple data-driven tests.
* Fix bug where counter-last fails in list widget
The only scenario that was failing was when counter-last was used, but
the list was strictly appended to with no other changes made. The one
unit test that was failing now passes with this fix.
* Improve bugfix to list widget counter-last
Now we only refresh the last item if it was truly necessary.
* Refactor parse mode out of getTransclusionTarget
* Refactor missing transclusion target
* Add a test to avoid regressions on the handling of macros vs procedures
* Refactor condition logic
* Preparing to split getTransclusionTarget into two separate functions
* Split getTransclusionTarget into getTransclusionTargetIncludingParseTreeNodes
* Resolve another inefficiency
The transclusion target was sometimes being parsed twice when transcluding as text/plain
Associated test results are also made more consistent
* Simplify method naming
* Neatening up
* Added failing test for #7604
* Fix attribute substitution regexp
Use the same regexp in wiki.getSubstitutedText as is used in
Widget.prototype.substituteVariableReferences. Fixes#7604.
* Added a test for a variable name containing spaces
* Initial commit
* Replace previous result only when non-empty
* Add doc tiddler
* Small change in rp-output description
* Update FRP title
lowercase with colon prefix
* Integrate with other doc tiddlers
* Add two doc-styles for reuse
* Add tests
* Add another test
* Correct indentation in stylesheet
* Change title and tags, add example to doc tiddler
* Replace leading spaces with tabs
* Improve docs text and structure
* feat: new text substitution support, first pass
* fix: use the widget method instead of evaluating a filter
* revert to earlier implementation that emulates macro syntax
* fix: capitalize comments
* feat: add support for triple backticks for substituted attributes
* docs: added docs for substitute operator
* chore: more docs tweaks
* docs: substituted attributes, refactored docs for widget attributes
* docs: fixed typo
* docs: more examples for substituted attributes
* docs: updated prior documentation on concatenating text and variables
* docs: documentation corrections
* Update editions/tw5.com/tiddlers/filters/examples/substitute Operator (Examples).tid
Co-authored-by: btheado <brian.theado@gmail.com>
---------
Co-authored-by: btheado <brian.theado@gmail.com>
* Disable camelcase by default
* New parse rule for ~CamelCase
For backwards compatibility with text that includes ~ to suppress camelcase links
* Enable CamelCase for main documentation wikis
Will take us a bit longer to convert all the links over
* Fix tests
* Release note update
* feat: added deserialize operator, tests and documentation
* fix: correct typo in lingo file
* fix: remove test that fails on node but succeeds in browser due to different availability of DOM deserializer
* Checkbox widget should not affect date fields
If a date field like `created` or `modified` is passed as the listField
attribute of the checkbox widget, it will be left unchanged and actions
on the checkbox widget will *not* fire.
Includes unit tests to ensure that the "created" and "modified" fields
will not be touched by checkboxes and will continue to be Date objects.
* Replace const with var in checkbox tests
* Create timestamp.js
Taken verbatim from @ericshulman.
* Add description of the timestamp suffix
* Add an example for timestamp use
I also snuck it a couple of cosmetic corrections, because I was too lazy to open a new PR. 😢
* Correct example 4 to use the right date formats
* Correct description of the default date format
* Add a test for the timestamp suffix
* Add more format:timestamp tests
* Drop invalid input
* Update version tag in docs
---------
Co-authored-by: jeremy@jermolene.com <jeremy@jermolene.com>
* Initial Commit
* Change of mind: Do not blank thisTiddler within macros
* Revert previous implementation
* Somewhat simpler implementation
* Add docs
* Add docs version tag