1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-12-26 01:50:28 +00:00
Commit Graph

4562 Commits

Author SHA1 Message Date
Carlo Colombo
a93a499684
Add commands command to run commands returned from a filter (#7073) 2022-12-04 10:59:59 +00:00
jeremy@jermolene.com
2c33502a4a Exclude drafts from the advanced search filter dropdown
Fixes #7083
2022-12-03 17:53:42 +00:00
lin onetwo
451a3454b5
Optionally allow click outside to close modals (#7072)
* feat: option to allow click on modalBackdrop to close modal

* feat: allow switcher modals closable

* feat: allow use caption field as modal title

* refactor: make maskClosable a variable

* fix: use "true"

* fix: code style

* docs: add description about maskClosable

* fix: convention is to have double quotes for strings in the TW core

* refactor: using a "mask-closable" field on the modal tiddlers instead of as a message parameter

* docs: move to modal tid

* Update WidgetMessage_ tm-modal.tid
2022-12-03 17:26:44 +00:00
Mohammad Rahmani
45a7eb1c03
Add new focus attribute to $select widget (#7081)
* Add focus attribute to $select widget

This address https://github.com/Jermolene/TiddlyWiki5/issues/7070

* Update SelectWidget.tid

Update the documentation for $select widget to include the new attribute: focus
2022-12-03 08:22:21 +00:00
FlashSystems
3918e59cc1
Fixed PR to fix popup position if popup is triggered from within an offsetParent element (#7013)
* Fix popup location for tables

This commit introduces the `popupAbsCoords` option to the $button widget
and implements an absolut coordinate format.

Coordinates for popups are stored in the format `(x,y,w,h)`. These
coordinates are relative to the offset parent of the element that
defines the popup.

This commits adds a second format `@(x,y,w,h)`. Coordinates specified in
this format a relative to the pages root element.

The `popupAbsCoords` option of the $button widget enables the use of
this coordinates.

* Unify the declaration of the RegEx for parsing the popup-position

The regular expression was declared in three locations with the same
content. This commit supplies a new function `parseCoordinates` in
`popup.js`. This function returns the parsed coordinates and understands
the classic/absolute coordinates.

This function is used in `reveal.js` and `action-popup.js` to parse the
coordinates.

* Add documentation for coordinate systems

* Consolidate creating coordinate strings

The Popup object now contains a `buildCoordinates` method that can be
used to build coordinate strings. It takes an "enum" for the coordinate-
system to use. This makes everything easily extensible and prevents the
use of magic values.

* Add tests for `parseCoordinates` and `buildCoordinates`

* Add `tv-popup-abs-coords` to `collectDOMVariables`

This will make the absolute coordinates available for the
`DraggableWidget` and the `EventCatcherWidget`.

* Add documentation for the `tv-popup-abs-coords`

... to the `DraggableWidget` and the `EventCatcherWidget`.

* Fix crash when generating a static version of the TW

The Popup class is not initialized in `startup.js` if `$tw.browser` is
not true. After having consolidated the facilities for parsing
coordinate strings into `popup.js` this breaks because the static build
needs to parse coordinate stings even if no Popup module is initialized.
This commit solves this problem by making `readPopupState`,
`parseCoordinates` and `buildCoordinates` static methods of `popup.js`.
It also adds a comment to these functions to show that these can be called
safely even if the Popup-Class is not initialized.
2022-12-01 21:16:44 +00:00
lin onetwo
f7ccba4c25
Add "code" and "key" to propogateKeydownEvent's cloneEvent (#7071)
* feat: add key

* feat: add code
2022-11-30 10:17:10 +00:00
Mario Pietsch
319d7fbe9c
Add hidden option to make "More" sidebar tabs be horizontal (#7063)
* make more sidebar tabs configurable vertical or horizontal

* more sidebar tabs orientation German translation

* remove language specific texts for more-horizontal setting

* Add More -> tabs horizontal setting to Hidden Settings
2022-11-30 09:57:14 +00:00
Cameron Fischer
856aca2f92
Linked-List refactor (#6056)
* Added failing linked-list test for #7059

* Fixed linked-list remove bug #7059

* Added failing linked-list test for #7059

* Switched LinkedList to use Map

* Removed this.last from LinkedList

* Removed this.first from LinkedList

* Switching to deleting old LinkedList entries

* LinkedList rewritten to be better

* Using null as LinkList ends to reduce hashing

* Using adhoc map... cause it's better than ECMA6 Map

* compliance with TiddlyWiki coding conventions

* Made link-list tests confirm the prev links

Co-authored-by: btheado <brian.theado@gmail.com>
2022-11-27 17:48:08 +00:00
jeremy@jermolene.com
b5e4b21707 Merge branch 'master' into parameterised-transclusions 2022-11-27 12:40:51 +00:00
btheado
bea1a6b14f
Fix issue with linked list remove (#7065)
* Added failing linked-list test for #7059

* Fixed linked-list remove bug #7059
2022-11-26 15:05:10 +00:00
jeremy@jermolene.com
32a033bb50 Fix advanced search keyboard shortcut navigation
Fixes #7008
2022-11-26 11:22:24 +00:00
jeremy@jermolene.com
d707e6f825 Add Mastodon icon 2022-11-25 15:28:12 +00:00
jeremy@jermolene.com
00927d2e13 Add parsermode pragma
Fixes #7058
2022-11-23 22:35:32 +00:00
Mario Pietsch
882e040e62
Refactor import preview to not use a hidden table row (#7057) 2022-11-23 21:53:21 +00:00
jeremy@jermolene.com
026739e2e0 Revert "Revert "add table utility classes and some docs how to use them. fix problem with control-panel basics tab shown in story river (#7039)""
See https://github.com/Jermolene/TiddlyWiki5/pull/7057#issue-1461608206

This reverts commit fba9efcf4a.
2022-11-23 21:52:36 +00:00
jeremy@jermolene.com
52592a4dbc Add support for named end markers for procedures, functions and widgets 2022-11-23 16:30:20 +00:00
jeremy@jermolene.com
778b8dec7f Merge branch 'master' into parameterised-transclusions 2022-11-23 09:01:42 +00:00
jeremy@jermolene.com
fba9efcf4a Revert "add table utility classes and some docs how to use them. fix problem with control-panel basics tab shown in story river (#7039)"
See #7056

This reverts commit b8a30091ee.
2022-11-23 08:28:06 +00:00
Jeremy Ruston
cb0d0cfa6d
Support nested macro definitions (#7004)
* First commit

* Switched to \end <name> instead of all those repeated backslashes

Thanks @kookma. See https://github.com/Jermolene/TiddlyWiki5/pull/7004#issuecomment-1286429236

* Docs update
2022-11-22 17:10:37 +00:00
jeremy@jermolene.com
45958db074 Merge branch 'master' into parameterised-transclusions 2022-11-22 16:29:45 +00:00
Maurycy Zarzycki
d32d559f93
Add Timestamp to DateFormat (#7043)
* add Timestamp to DateFormat

* improve TIMESTAMP documentation
2022-11-21 16:13:34 +00:00
Maurycy Zarzycki
4f7b10e055
CSV parser improvements (#7042) 2022-11-20 17:51:01 +00:00
Mario Pietsch
b8a30091ee
add table utility classes and some docs how to use them. fix problem with control-panel basics tab shown in story river (#7039) 2022-11-20 17:48:10 +00:00
Maurycy Zarzycki
6955f14c3c
add a hidden config to disable Syncer logging to the console (#7049) 2022-11-20 17:26:14 +00:00
jeremy@jermolene.com
4e3566745e Merge branch 'master' into parameterised-transclusions 2022-11-15 11:46:04 +00:00
jeremy@jermolene.com
368963def0 Revert "Allow $:/core/ui/ControlPanel/Basics to work in the story river + some docs about utility classes (#6912)"
This reverts commit 10cb585dae.
2022-11-15 11:41:55 +00:00
jeremy@jermolene.com
70930e16b2 Merge branch 'master' into parameterised-transclusions 2022-11-15 10:39:29 +00:00
Mario Pietsch
ea3503e30c
Allow users to overwrite TOC default icons (#6913)
* Allow users to overwrite TOC default icons

* Fix docs as requested
2022-11-14 22:04:30 +00:00
Mario Pietsch
5e116d2a57
Add data-tags and data-tiddler-title attributes to preview area (#6939) 2022-11-14 17:48:00 +00:00
Mario Pietsch
aa5183a08e
Add indentation to $:/TagManager (#6923) 2022-11-14 17:42:17 +00:00
Mario Pietsch
10cb585dae
Allow $:/core/ui/ControlPanel/Basics to work in the story river + some docs about utility classes (#6912)
* allow $:/core/ui/ControlPanel/Basics to work in the story river + some docs about utility classes

* apply changes suggested by twMat

* fix some typos and change the base padding for tables

* fix a typo and remove whitespace

* remove TODO in base CSS
2022-11-14 17:36:01 +00:00
Mario Pietsch
832868ecae
Allow user defined setting for retain-story-order button in ControlPanel (#6863)
* allow user defined setting for retain-story-order button in ControlPanel

* improve hidden setting wording

* adjust all languages with new "ControlPanel DefaultTiddlers BottomHint

* fix typos and snippet filename
2022-11-14 17:30:13 +00:00
Mario Pietsch
7f48b6c6ce
Make timeline macro more customisable (#5947)
* make the timeline-macro more customizable

* changed comment as requested
2022-11-14 17:11:26 +00:00
jeremy@jermolene.com
e8148ff978 Missed off 965bd090a9
Thanks @pmario @saqimtiaz
2022-11-05 09:41:43 +00:00
jeremy@jermolene.com
965bd090a9 list-links macro: add "field" parameter
See https://talk.tiddlywiki.org/t/choosing-what-field-to-show-with-list-links/5039?u=jeremyruston
2022-11-05 09:10:31 +00:00
Cameron Fischer
3be9b13814
Fix for #4767: lazy-loading deletes tiddler bodies (#7014) 2022-11-02 17:26:08 +00:00
jeremy@jermolene.com
478b585a8c Merge branch 'master' into parameterised-transclusions 2022-11-02 08:21:17 +00:00
jeremy@jermolene.com
f54ecc23f3 Fix wikification of tiddler titles in advanced search filter dropdown
Closes #7017

Thanks @ericshulman
2022-10-31 12:03:47 +00:00
jeremy@jermolene.com
38ac1e4bfd Merge branch 'master' into parameterised-transclusions 2022-10-30 21:21:21 +00:00
Saq Imtiaz
3f55f827a6
Extend page template with filter assigned classes (#6976)
* Extend page template with filter assigned classes

* feat: added dynamic class support for tiddler templates and documentation
2022-10-28 12:58:58 +01:00
jeremy@jermolene.com
9f42007899 Filter run prefixes should use widget.makeFakeWidgetWithVariables 2022-10-25 14:13:38 +01:00
jeremy@jermolene.com
b9d27e9fd5 Revert "Fix popup position if popup is triggered from within an offsetParent element (#6887)"
This reverts commit 5b85786f73.
2022-10-22 13:22:15 +01:00
FlashSystems
5b85786f73
Fix popup position if popup is triggered from within an offsetParent element (#6887)
* Fix popup location for tables

This commit introduces the `popupAbsCoords` option to the $button widget
and implements an absolut coordinate format.

Coordinates for popups are stored in the format `(x,y,w,h)`. These
coordinates are relative to the offset parent of the element that
defines the popup.

This commits adds a second format `@(x,y,w,h)`. Coordinates specified in
this format a relative to the pages root element.

The `popupAbsCoords` option of the $button widget enables the use of
this coordinates.

* Unify the declaration of the RegEx for parsing the popup-position

The regular expression was declared in three locations with the same
content. This commit supplies a new function `parseCoordinates` in
`popup.js`. This function returns the parsed coordinates and understands
the classic/absolute coordinates.

This function is used in `reveal.js` and `action-popup.js` to parse the
coordinates.

* Add documentation for coordinate systems

* Consolidate creating coordinate strings

The Popup object now contains a `buildCoordinates` method that can be
used to build coordinate strings. It takes an "enum" for the coordinate-
system to use. This makes everything easily extensible and prevents the
use of magic values.

* Add tests for `parseCoordinates` and `buildCoordinates`

* Add `tv-popup-abs-coords` to `collectDOMVariables`

This will make the absolute coordinates available for the
`DraggableWidget` and the `EventCatcherWidget`.

* Add documentation for the `tv-popup-abs-coords`

... to the `DraggableWidget` and the `EventCatcherWidget`.
2022-10-22 13:13:39 +01:00
jeremy@jermolene.com
b426724f35 Fix macrocall refresh issue
It turns out that this.transcludeTitle is always truthy, even if we are transcluding a variable

Fixes #7001
2022-10-20 15:08:05 +01:00
jeremy@jermolene.com
ffc2594fef Add parenthesis to the visible transclusion definition
Parenthesis were made mandatory in 5194b24108

Fixes #6998
2022-10-19 15:35:43 +01:00
jeremy@jermolene.com
32710ef9e6 Merge branch 'master' into parameterised-transclusions 2022-10-18 17:23:57 +01:00
Rob Hoelz
24dbf69180
Fix [is[variable]] operator doesn't work for "fake" variables #6303 (#6996)
* Add tests for [is[variable]] and "faked" variables

See GH #6303

* Make is[variable] and variables[] operators resilient to fake widgets

Co-authored-by: jeremy@jermolene.com <jeremy@jermolene.com>
2022-10-18 17:08:04 +01:00
jeremy@jermolene.com
5194b24108 Parameter parenthesis should be mandatory in function/procedure/widget definitions
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1280404387
2022-10-17 08:31:07 +01:00
jeremy@jermolene.com
b531984f50 Restore "Add default settings for styled inline SPANs (#6877)"
This reverts commit 6f98edd6bd.
2022-10-16 17:28:36 +01:00
jeremy@jermolene.com
8f079e2d45 Fix handling of orderedattributes when adding classes/styles
Fixes issue referred to in https://github.com/Jermolene/TiddlyWiki5/pull/6877#issuecomment-1277590200
2022-10-16 17:27:46 +01:00
Maurycy Zarzycki
cfd894e6fb
allow select widget class to update if it uses a filter and is output changes (#6987)
* allow select widget class to update if it uses a filter and the filter output changes

* rewrite code to be more idiomatic + updates local property
2022-10-15 12:26:21 +01:00
jeremy@jermolene.com
3a4589dc79 Transcluding functions: fix missing parameters passed as undefined
Thanks @btheado – see https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1276187372
2022-10-12 17:15:39 +01:00
jeremy@jermolene.com
6f98edd6bd Revert "Add default settings for styled inline SPANs (#6877)" because of failed tests
This reverts commit 23e0eeb556.
2022-10-07 18:43:09 +01:00
Mario Pietsch
23e0eeb556
Add default settings for styled inline SPANs (#6877)
* add default settings for styled inline SPANs

* change color names in palettes and vanilla-base

* change parser behaviour if custom class is used

* tc-inline-style will only be set if no other custom setting is appliead

* Add tests for inline-styles

* add one more test

* remove space after if
2022-10-07 18:05:49 +01:00
Maurycy Zarzycki
f33c7e2aef
Allow global keyboard shortcuts to override all other shortcuts by providing a special field (#6735)
* allow global keyboard shortcuts to override all other shortcuts by providing a special field

* rework the global shortcuts taking priority

* replace bool option with options object in KeyboardManager's keydown handler

* update keyboard shortcut documentation to add information about the new priority setting

* add support for priority global keyboard shortcuts to code mirror

* update the feature's docs to point out it was/will be introduced in 5.2.4

* rollback unnecessary change
2022-10-07 17:31:04 +01:00
jeremy@jermolene.com
12a87840fd Merge branch 'master' into parameterised-transclusions 2022-10-07 16:57:54 +01:00
jeremy@jermolene.com
93100a1c8f Remove support for conditional definitions
It was introduced for use cases associated with the global mechanism that was dropped in e3d13696c8
2022-10-03 14:39:45 +01:00
jeremy@jermolene.com
4007610d52 Prefer "modal" over "wizard" in the core
See https://github.com/Jermolene/TiddlyWiki5/discussions/6965#discussioncomment-3754315
2022-10-02 18:59:05 +01:00
jeremy@jermolene.com
fb34df84ed New image shortcut should not add journal tags
Fixes #6968
2022-10-02 18:55:26 +01:00
jeremy@jermolene.com
36896c3db8 Use view template body when opening tiddler in new window 2022-10-02 17:22:48 +01:00
jeremy@jermolene.com
1841b0fa4f Fix tests 2022-10-01 14:05:13 +01:00
jeremy@jermolene.com
0a309f4865 Merge branch 'master' into parameterised-transclusions 2022-10-01 10:18:34 +01:00
jeremy@jermolene.com
47f80339b2 Update transclude widget to use error widget
Missed off #6970
2022-10-01 10:15:14 +01:00
Jeremy Ruston
db6abb9703
Improve recursion detection for transclusion and filters (#6970) 2022-10-01 10:13:40 +01:00
jeremy@jermolene.com
1df4c29d73 Relax the restriction on the let widget being unable to create variables starting with a dollar 2022-10-01 09:47:26 +01:00
jeremy@jermolene.com
668168dfea Some widget.js cleanups 2022-09-27 08:58:10 +01:00
Jeremy Ruston
4e9267ea58
Introduce genesis widget (#6961)
* Initial Commit

* Fix version number

* Fix docs date
2022-09-24 14:07:42 +01:00
jeremy@jermolene.com
e3d13696c8 Remove implementation of $:/globals/
Performance with this implementation is inherently poor because of the need to perform a wiki lookup for each child widget created.
2022-09-24 12:56:06 +01:00
jeremy@jermolene.com
1aba8a1f65 Slight optimisation to user defined widgets 2022-09-24 12:41:28 +01:00
jeremy@jermolene.com
fddaa9fdb1 Merge branch 'master' into parameterised-transclusions 2022-09-24 11:07:53 +01:00
jeremy@jermolene.com
81ac987484 Optimise variable prototype chain handling
With this improvement and 53d229592d I'm measuring a 10-15% performance improvement between v5.2.3 and master using https://github.com/Jermolene/tiddlywiki-performance-test-rig
2022-09-24 08:28:16 +01:00
jeremy@jermolene.com
0a00da6db9 Optimise fake dom
Object.setPrototypeOf() appears to be significantly faster
2022-09-23 18:09:45 +01:00
jeremy@jermolene.com
166a156584 Fix typo: Safe mode should prevent globally disabling parser rules 2022-09-23 18:08:28 +01:00
Robin Munn
51bdf60ee8
Fix bug when using built-in list field as listField parameter to checkbox widget (#6897)
* Fix bug with checkbox widget and `list` field

The `list` field is stored as a list and frozen against modifications,
and getFieldList() returns it directly without creating a copy. So
before we modify it, we need to make a copy so we're not modifying a
frozen list. This bug doesn't manifest with custom fields, which are
stored as strings, only with the built-in `list` field.

* Fix checkboxes referencing non-existent tiddlers

This fixes the "tiddler is undefined" error when a checkbox's listField
property references a tiddler that doesn't (yet) exist.

* Better logic for checkbox listField handling

If the field contains an array, then it's almost certainly referenced
elsewhere and needs a defensive copy made. If it contained a string,
then it's safe to modify without making a defensive copy.
2022-09-22 18:52:55 +01:00
jeremy@jermolene.com
0196844f17 Merge branch 'master' into parameterised-transclusions 2022-09-21 09:33:24 +01:00
jeremy@jermolene.com
3090bb104e Fix visible transclude 2022-09-16 16:07:44 +01:00
jeremy@jermolene.com
8f9d5cabaa Missing tests for parameters widget 2022-09-16 16:07:32 +01:00
Cameron Fischer
debfd42d51
Log message not to have spaces and <empty string> (#6947) 2022-09-15 12:10:33 +01:00
jeremy@jermolene.com
fa86631d2e Improve indentation
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#discussion_r967655251
2022-09-13 16:29:09 +01:00
jeremy@jermolene.com
cc7b276787 Remove negation from function operator
This implementation was not useful.
2022-09-11 10:48:37 +01:00
jeremy@jermolene.com
68a1d61f33 Update function operator to return the input list if the function is missing 2022-09-11 10:48:05 +01:00
jeremy@jermolene.com
ecd467496d Add custom view template body for globals, and a new sidebar tab under "more"
And also a custom view template title that greys out the $:/global/ part of the title
2022-09-10 11:03:40 +01:00
jeremy@jermolene.com
580e33d30f Merge branch 'master' into parameterised-transclusions 2022-09-10 11:01:45 +01:00
jeremy@jermolene.com
d825f1c875 Use view template body cascade for the default preview 2022-09-10 11:01:29 +01:00
jeremy@jermolene.com
977a133028 Tweak comments 2022-09-09 14:16:08 +01:00
jeremy@jermolene.com
b751f7e793 Parameters widget: protect against negative $depth 2022-09-09 12:04:50 +01:00
jeremy@jermolene.com
82b22523aa Rejig genesis widget to be easier to use 2022-09-09 10:37:39 +01:00
jeremy@jermolene.com
e3697e29bb When transcluding functions, pass an empty item list to the filter, and just return the first item 2022-09-09 10:22:06 +01:00
jeremy@jermolene.com
7b465888c8 Revert "WIP"
This reverts commit 8654dfc679.
2022-09-04 16:43:40 +01:00
jeremy@jermolene.com
8654dfc679 WIP 2022-09-04 16:41:25 +01:00
jeremy@jermolene.com
5c860ed39b Fix error in 25312b3e32 2022-09-04 16:26:47 +01:00
jeremy@jermolene.com
25312b3e32 Refactor filter recursion detection to avoid an unneeded wrapper function 2022-09-04 16:23:49 +01:00
jeremy@jermolene.com
11e0c66a4c Transcluded functions should operate on the entire store 2022-09-03 20:11:45 +01:00
jeremy@jermolene.com
a439cb58be Fix caching of parse variables/macros/procedures 2022-09-03 20:11:23 +01:00
jeremy@jermolene.com
966707ea1c More comments 2022-09-03 16:57:38 +01:00
jeremy@jermolene.com
1b08cd40bf Coding style tweak 2022-09-03 16:36:36 +01:00
jeremy@jermolene.com
00b6645c94 Disable overriding core widgets in safe mode 2022-09-03 12:58:10 +01:00
Jeremy Ruston
35b9faaa89
JSON Filter Operators (Revised Attempt) (#6936)
* First commit

Cherry-picked from #6666

* Adjust release version number

Just in case we decide to make a release before we merge #6666
2022-09-02 18:15:45 +01:00
jeremy@jermolene.com
d852123f61 Tweak semantics of JSON operators to match #6932
This allows us to later bring in the optimisations without breaking backwards compatibility.
2022-09-02 17:14:50 +01:00
jeremy@jermolene.com
54e1083dd6 Merge branch 'master' into parameterised-transclusions 2022-09-01 09:00:57 +01:00