* refactor: use files to add prefix
* fix: always use $tw.sjcl
* refactor: move sjcl to lib/sjcl
* fix: require sjcl in lib/
* refactor: move sjcl.js back into /boot
* 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
* Update chinese language files
* Add chinese translations for the new `<$testcase>` widget
* Update chinese language files
* Add chinese translations for the new <$testcase> widget
* 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
* fix parsing error with spaces before reEndString, update docs to clarify block mode inside block quotes.
* additional advanced example
* oops, convert spaces back to tabs.
* reset indentation
* final tabs
* missed some
* wikitext classes are appended to other leading wikitext, no need to skip whitespace here.
* Make month and weekday names lowercase
* Replace AM and PM with Polish words
* Adhere to recommendations wrt short weekday names
https://sjp.pwn.pl/poradnia/haslo/dni-tygodnia-i-inne-roznosci;1788.html
* Fix a typo
* Inflect month names
I assume they're always used as part of the full date,
and in this case months are always inflected in Polish.
* Use roman numerals in place of short month names
I could not find any actual use of short month names in Polish.
The only mentions are from people trying to translate English
conventions into Polish - typically in software.
In https://sjp.pwn.pl/poradnia/haslo/dni-tygodnia-i-inne-roznosci;1788.html
Mr. Bańko answered (translation mine):
Abbreviations of month names are less common, numbers are used instead.
Such abbreviations can be created [...]. However, one must take into account
that the reader will not understand them.
I decided to go with a convention that's in actual use, rather than to
force an English convention which is alien to non-software dev Poles.
APIs especially use 2XX response codes outside of 200, 201, 204 for responding to responses. Treat all "Successful" response codes (i.e. anything between 200-299) as successes, and pass the responseText.
* first pass at fixing bug 7878, needs testing
* clarify default behaviour in comment
* fix property typo, tested and works as intended
* remove debugger
* 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
* Create a `refresh` keyboard shortcut
This creates a `refresh` keyboard shortcut that refreshes the page.
In TiddlyDesktop <kbd>ctrl-R</kbd> doesn't work
* Update refresh.tid
* Update shortcuts-not-mac.multids
* Update shortcuts-mac.multids
* Update ShortcutInfo.multids
* tag-picker add Examples
* tag-picker - use new v5.3.x wikitext syntax
* tag-picker - more inline docs
* tag-picker - fix add button
* rename local functions: tag, userInput to _tf.getTag and _tf.getUersName to make the code and variable scopes more understandable
* tag-picker - move local variables definitions into one place: tag-picker macro
* tag-picker - replace reveal-widget with conditional IF syntax
* tag-picker - remove logs and test tag-picker - actions parameer -> OK
* tag-picker - add tag-picker Macro docs
* tag-picker docs - change \define -> \procedure
* tag-picker -- fix problem with focus loss if elements selected by mouse click
* tag-picker -- add tf. prefix only to new function definition names for backwards compatibility.
* tag-picker -- update example docs
* re-add tags: $:/tags/Macro
* add tc-tag-missing or tc-tag-exists to tag pills including docs
* changes as requested
* macros not needed anymore - so remove
* fix the tag Macro docs
* add theme font size settings to Open in New Window CSS
* add DOCTYPE html to New Window startup template
* fix merge typo
* fix merge typo one more time
human readable in preparation to add data-title=<<listItem>>
for better UX defining a "read only" theme
Changes to be committed:
modified: core/ui/EditTemplate/controls.tid
modified: core/ui/PageControls.tid
modified: core/ui/PageControls/more-page-actions.tid
modified: core/ui/ViewTemplate/title.tid
modified: core/ui/ViewToolbar/more-tiddler-actions.tid
modified: plugins/tiddlywiki/menubar/items/pagecontrols.tid
* Update draggable.js - rename updateDomNodeClasses to assignDomNodeClasses
If I'm not wrong then the "updateDomNodeClasses" is unused and the "assignDomNodeClasses" is missing
This renames "updateDomNodeClasses" to "assignDomNodeClasses"
* Use "updateDomNodeClasses"
* docs: abount modern frameworks
(cherry picked from commit 783547bac2d1bfaa20def3eeda0dc10b6b465d8d)
* docs: modified time
(cherry picked from commit c8db907fe273a414768f5292f61986800e092dfe)
This avoids breaking existing code that expects to be able to import the core macros with just $:/tags/Macro
@pmario - I suggest that future updates use the same approach
Thanks to @ericshulman for reporting the problem
This PR attempts to modernize the tag-picker macros as procedures, as @Jermolene suggested in [#7548 (comment)](https://github.com/Jermolene/TiddlyWiki5/pull/7548#issuecomment-1825458523).
What I changed:
* rewrote macros as procedures/replaced text substitutions with variables
* replaced nested $set and $var widgets with $let widgets/functions
* minor rewrites to reduce redundant code
* some additional linebreaks for clarity
*This is functionally identical to my initial PR, [#7880](https://github.com/Jermolene/TiddlyWiki5/pull/7880)*, minus the extra file I'd accidentally added. Thank you for bearing with me as I learn to navigate GitHub.
* 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
* $:/core/ui/EditTemplate/tags - rewrite to use v5.3.x syntax
* tag-macro -- change tag-styles function to make it more readable
* tags EditTemplate - improve code readability
* tags EditTemplate -- use hardcoded style colours as requested
* Use qualified-preview-state to reuse in preview button
Somehow the editor-body template and the preview button don't qualify the same showeditpreview anymore
* Update preview.tid to use qualified-preview-state
* Update preview.tid
* Update default.tid
* Update preview.tid
This removes `overflow: auto` from the tiddler preview.
I'm not sure anymore why it was added.
It causes some problems in the preview with popups for example, see screenshots
* Improve Filter Syntax documentaion / navigation
* update links and missing diagrams
* rename legacy prefix to shortcut prefix
* Update editions/tw5.com/tiddlers/filters/Filter Operators.tid
Co-authored-by: yaisog <m@rcuswinter.de>
* Update editions/tw5.com/tiddlers/filters/syntax/And Filter Run Prefix.tid
Co-authored-by: yaisog <m@rcuswinter.de>
* Update editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid
Co-authored-by: yaisog <m@rcuswinter.de>
* Update editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid
Co-authored-by: yaisog <m@rcuswinter.de>
* Update editions/tw5.com/tiddlers/filters/syntax/Sort Filter Run Prefix.tid
Co-authored-by: yaisog <m@rcuswinter.de>
* Update editions/tw5.com/tiddlers/filters/syntax/Cascade Filter Run Prefix.tid
Co-authored-by: yaisog <m@rcuswinter.de>
* Update editions/tw5.com/tiddlers/filters/syntax/And Filter Run Prefix.tid
Co-authored-by: yaisog <m@rcuswinter.de>
* add most changes a suggested by yaisog
* fix copy / paste from-version
* replace operand with parameter in the docs
* fix typo
* fix typos and improve railroad diagrams consistency
* move "new from version" info for filter run prefixes below the table
* fix typo transclusion and substitution
* Move Filters tiddler to the top level in the TOC
* wip-breadcrumbs
* breadcrumbs & breadcrumbsList macro final
* remove files that do not belong to this PR
* restore release banner
* add simple / story mode to breadcrumbs
* .breadcrumbs macro update comments
* new breadcrumbs CSS, woks with small screens
* make CSS configurable using hidden-settings
* improve CSS fro small screens
* remove the initial: recursiveParentTag macro
* improve location info for breadcrumbs nav. add "alt-text" for Edge ::after element
* breadcrumbs add mode=field
* bc add initial docs
* breadcrumbsField will also respect the story ordering
* add configurable global filterMode setting
* improve arrow CSS for browser zooming
* add bc links use bc-caption if caption field is non-empty
* breadcrumbs improve comments
* breadcrumbs aria-lable uses caption if there is one
* breadcrumbs improve documentation
* breadcrumbs improve docs for sort param
* fix showArrows docs
* remove .bc-link aria-label .. it's not needed if caption is resolved properly
* use subfilter instead of enlist to evaluate the "excluded" variable. Be consistent with toc-macros
* remove breadcrumbs macros - they have their own PR now
* resolve conflict
* add back doc-macros tiddler
* integrate :then filter run prefix
* remove .breadcrumbs macros and their config tiddlers
* fix typos as requested
---------
Co-authored-by: yaisog <m@rcuswinter.de>
* First commit
* Typo
* Add support for delay parameter
* Add confetti widget
* Add tour plugin
* Add element spotlight to dynannotate plugin
Useful for highlighting on screen elements for the user
* More and bigger confetti by default
* Use new element spotlight to provide hints
* Adjust hint selectors for create tiddler tour step
* Include confetti plugin in prerelease
* Clarify wording of confetti demo
* Don't link TiddlyWiki in the tour panel
* Tweaks to tour buttons
* Mark dependents of the tour plugin
* Add full screen section of tour and tour edition
* Remove Anna Freud references from welcome tiddler
* Build the tour edition in the preview
* Fix typo in build script
* Populate tour edition with solar system data
From Simple English Wikipedia
* Missing tag
* Add page control button to start tour
Also make the tour controls visible in full screen mode
* Refactor to use global procedures to control the tour
* Change "startup-actions" field to "enter-actions" to avoid confusion
* Add a tour logo
* Refactor to allow multiple tours to be loaded at once
* Remove wikification from welcome tour step
* Update docs
* Simplify styles for top bar
* Tours should have a $:/tags/Tour tag
* Tour should autostart in the tour edition, but not in the main wiki
* Better labelling for the main preview
* Fix build process
We build a separate tour.html wiki, but can include the tour in other wikis too
* Remove obsolete text
* Add "using tags" as a separate tour
* Remove old debugging code
* Add tour chooser
* Ensure that the current tour isn't listed as an option in the final step
* Use whitespace trim
Note that the setting is inherited by procedure and widget definitions
* Simplify tour step format
* Remove obsolete state tiddler
Not needed because now we initialise it in startup actions
* Fix gap between navigation buttons
* Clean up tiddler titles within the introduction tour
* Finish allowing the name "TiddlyWiki" to be customised
Some of the code was in the previous commit. Next we'll wire up the user interface
* Clarify docs
* Add a settings pane giving a birds eye view of a tour
* Avoid having to embed confetti in the final step
* Update docs
* Tweak styling of tour chooser dropdown
* Add a button to launch tour steps directly, and give them captions
* Expose custom tour settings
* Use the tour step caption as the heading
* Fix initialisation when jumping to a tour step
* Introduce step about tags
* Improve wording
* Improve styling of task call-to-action and nav buttons
* Adopt new conditional shortcut syntax
* Wording and ordering tweaks
* Fix typos
Thanks @pmario
* Simplify styling of tour overlay
* Use custom palette colours
Makes it easier for people to use their own colour scheme for the tour
* More custom colours
* Tour wording tweaks
* Extends the tour plugin with a condition field (#7861)
* feat: support condition field to determine whether a step should be shown
* feat: add support for overriding the hint text using the field 'hint' from the step tiddler
* fix: roll back tour display procedure for now until an override mechanism has been discussed
* fix: renamed advance-criterion field and associated variables to step-success-filter
* fix: renamed hint field to hint-text and selector to hint-selector
* refactor: to create function to get all tour tiddlers filtered by their condition field
* refactor: rename globals tiddlers to variables and avoid making any of the tour procedures global
* fix: also rename globals.tid file to variables.tid
* docs: cover all tour steps tiddler fields
* fix: improve spacing in Tour HUD
* WIP
---------
Co-authored-by: Jeremy Ruston <174761+Jermolene@users.noreply.github.com>
Co-authored-by: Saq Imtiaz <saq.imtiaz@gmail.com>
* 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
* Initial commit
* Put SVG back into a span
Needed in case this is targeted in CSS; DOM structure should not be changed.
* Fix the fix
Do it once, do it right.
* Update ViewWidget.tid to include common varients
The provision of common variates to the view widget provides new an experience user examples of the different variants of the ViewWidget. The copy to clipboad method allows each variant to be quickly accessed and pasted into their wiki.
To facilitate this a new macro wikitext-example-compact has being added to
$:/editions/tw5.com/wikitext-macros
* Update ViewWidget.tid
Two colons added to maintain indenting in new content.
Adding the line
Use the [[ActionDeleteTiddlerWidget]] to delete a named tiddler without getting the "Do you wish to delete the tiddler" prompt.
However If someone knows how to make "WidgetMessage: tm-delete-tiddler" do this please explain.
* 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>
* Modify SetWidget to include use to set global variables.
* Make sample variables easier to read.
* Change text to indicate use of pragma whitespace trim.
* Make compliant with 5.3.1 (?) release
* Add usemap attribute to image macro
Allow for a usemap attribute on the $image macro call which is passed through to the resulting img tag. This makes the use of HTML image maps [1] possible.
[1]: <https://www.w3schools.com/html/html_images_imagemap.asp>
* Document new usemap attribute in ImageWidget
* Update version docs
---------
Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
* add archive HTML wikis, add index.html + css
* only build archive for release version
* tested and add more docs
* fix indent
* fix spacing
* add $TW5_BUILD_OUTPUT_ARCHIVE env variable for testing
* use $TW5_BUILD_OUTPUT_ARCHIVE to check if archive should be built
* use TW5_BUILD_ARCHIVE as requested
* Simplify Permalink/Permaview URLs
* Fix lint warnings by removing arrow functions
* Remove commented sample code
* Remove post-ES5 code
* Add many more allowable non-percent-encodedcharacters
* Fix more ES6+ stuff, add end-of-sentence padding character.
* Fix to match standards
* Move the new code from boot to util
* Change from custom map/filter to $tw.utils.each
* Make `each` blocks multi-line
* Move the permalink handling to its own file
* Remove auto-navigation
* Revert "Remove auto-navigation"
This reverts commit ca1e5cf387.
* 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
When wikiparser parses text looking for a pragma block, it skips
whitespace before looking for the next pragma. If no pragma is found,
we should return the parse position to the original location so that the
skipped whitespace can be parsed as a text node. This allows the
attribute `join=" and "` to parse as " and " rather than "and ".
* Alternate fix for inconsistent list template syntax
First attempt, which fails on the ListWidget/WithMissingTemplate test.
* Make WithMissingTemplate test pass, inefficiently
Unfortunately, this ends up being very inefficient, because the
clone-and-mutate logic is repeated for every list item. Not ideal.
* More efficient way to do it
This also makes the failing test pass, but far more efficiently.
* Improve performance of list template discovery
Since parse tree nodes never change after widget creation (whereas
attribute values *can* change), we can safely search for the explicit
list templtaes only once, at widget creation time. This saves time as
the search doesn't have to be done on each re-render, and also allows us
to safely do a clone-and-mutate step to extract the list widget's body
(if any) without any `$list-empty` or other items. That, in turn, allows
using the list widget's body as the template even if `$list-empty` is
specified inside the widget body.
* Add support for running in-browser tests via playwright in GitHub CLI
* `ci.yml` was updated to store the report so that it can be inspected on failure
* `ci-test.sh` was added as an expansion to `test.sh` which installs and runs playwright
* `playwright.spec.js` does the actual verification of opening the test TW edition in browser, waiting for the tests to finish and then verifying it has indeed passed
* `playwright.config.js` Playwrifht configuration
* Add support for running in-browser tests via playwright in GitHub CLI
* `ci.yml` was updated to store the report so that it can be inspected on failure
* `ci-test.sh` was added as an expansion to `test.sh` which installs and runs playwright
* `playwright.spec.js` does the actual verification of opening the test TW edition in browser, waiting for the tests to finish and then verifying it has indeed passed
* `playwright.config.js` Playwrifht configuration
* Fix file permissions for `ci-test.sh`
* Increased node version for github actions to support playwright
* Add installation of the required @playwright/test library during CI test execution
* 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
* make toolbar, editor and preview display: grid
* correct display of bitmap editor
* grid-area: toolbar not only when preview is shown
* use dedicated classes and tc-grid and no brittle CSS selectors
* no need for width: 100%
* cleanup style definitions
* use semantic classnames
* feat: add modifier info
* feat: replace image and attachment with [img[] and [[]]
* feat: import as wikitext tid
* fix: a few resources don't have title
* fix: use hash as random name for images
* fix: Firefox's DOMParser have problem in some cases
* fix: bad char in title, and useless xmlns
* Update sample-enex-with-image.xml.enex
* Update enex-deserializer.js
* Update readme.tid
* fix: some dont have modified
* 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
* Change favicon format from ICO to PNG
* Revert renaming `./favicon.ico`
Keep the backwards compatible file name `./favicon.ico` (though they will actually be in PNG format now).
* Add SVG template for creating favicons
Add `favicons.svg`, the template for creating the current PNG favicons, along with some helpful information about it in `favicons.svg.md`.
* Add source Inkscape SVG
Add source Inkscape SVG as an example of image tiddler in tw-com
* Fix offline upgrade download link
In Firefox (92.0.1) `href="#"` does not allow to start downloading of `upgrade.html` (Chrome has no such problem). Making href completely empty fixes the issue.
* Update plugins/tiddlywiki/upgrade/UpgradeWizard.tid
Both flexbox and grid layouts need the container div to be the direct
parent of the children it lays out. To enable that, we need a class that
can select the direct parent of the list widget in PageTemplate.tid so
that that class can have `display: flex` or `display: grid` applied to
it. The `tc-page-container` div is not suitable, because it contains
a `<$dropzone>` inside it, and the dropzone widget creates a div so
tc-page-container is no longer the direct parent of the list. Instead,
a tc-page-container-inner class is added to the dropzone widget in
addition to its existing tc-dropzone class, so that grid or flexbox
layouts can target tc-page-container-inner for setting the appropriate
CSS `display` property.
* 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.
The `all` filter operator has shortcuts to optimise common patterns like
`[all[shadows+tiddlers]]` or `[all[tiddlers]]`. In those cases, the
filter operator function returns early and never uses the `result`
linked list that was created, so it's immediately garbage-collected.
Let's delay creating it until we know it's actually going to be used.
If we don't delete the typeInputTiddler with the click on the "delete" button then the dropdown stays filtered - but the text input seems to be empty. This PR corrects this behavior
Currently I'm building these files myself for use on tiddlyhost.com.
I'm thinking it would be nicer if they were built and distributed by
TiddlyWiki's own build automation, so this is a step towards that.
The two new files that are created, "empty-external-core.js" and
"tiddlywikicore-<version>.js" will appear alongside the existing
"empty.html" and "empty.hta" when the TiddlyWiki site is deployed.
I noticed these inconsistencies in the tiddlywiki.info json files
while working on the previous commit and thought I'd fix them for
the sake of neatness and tidiness.
This contains whitespace changes only, so git diff -b should be
empty.
Includes:
- Remove some trailing whitespace in several files
- Fix incorrect indenting in one file
- Add end of file newlines in two files
the tiddler gets transcluded in the stylesheets like so:
```
font-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};
```
note - the semicolon at the end
So this semicolon is superfluous
* Update _Timimi_ Extension and executable by Riz.tid
Include the line
* The native host requires a component installed on the host computer, outside the browser.
So it is clearer there are two components to be installed and access to the local machine is implied.
* Update _Timimi_ Extension and executable by Riz.tid
Added blank line
* Use 'translink' macro on widget attribute 'subtiddlers' to make it browsable by scrolling
* Avoid the styling of the translink macro by directly transcluding
---------
Co-authored-by: btheado <btheado@mailinator.com>
* Factored out variable invocation tiddlers into separate tiddlers
* Document the variable attribute value behavior more completely
---------
Co-authored-by: btheado <btheado@mailinator.com>
* Update Widgets in WikiText.tid
Added Minimalist link to [[Substituted Attribute Values]] so the new method is also listed.
* Update Widgets in WikiText.tid
removed see also
* 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
* fix drag and drop from chrome-like browsers to FireFox
* test feature matchMedia function
* implement new borwser sniffing functions as utilities
* use $tw.browser structure for isMobileChrome detection
With a demo courtesy of https://random.dog/
@rmunn you recently worked on the base64 utilities. I tried to use $tw.utils.base64Encode instead of window.btoa, but found that it didn't work. It's concerning because we expose that utility method as a filter operation, and it would be frustrating if we were not base64encoding things properly.
1. Update comments
2. Refactor use of parseTreeNodes so that they are not referenced unnecessarily
3. getTransclusionTarget doesn't need to return the parser object
* 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
Fixing error in
* [[a transclusion of a macro/variable|Transcluded Attribute Values]]
Which should be;
* [[a transclusion of a macro/variable|Variable Attribute Values]]
Previously, the implicit sort ordering of modules ensured that the "plugins" startup module ran before the "startup" startup module. That no longer holds when experimenting with alternate stores that might use a subtly different collation order (eg $:/core/modules/startup.js vs. $:/core/modules/startup/commands.js), so it's more robust to explicitly specify the dependency
* add option explodeplugins
refactor
Maintain Parameter Compatibility
change let to var
Refactoring the code
add conditional judgment
use === to avoid type-casting errors
refactor use <path> [<name>=<value>]
delete redundant code
backward compatibility support
easier to use
improve code
add documentation
* Update Notes
* Improve the code
* fr-FR translation for network activity button
* fr-FR translation of error strings related to the deserialise operator
* fr-FR translation of the error string related to text nodes in Story View interaction
* fr-FR additions and corrections of core field descriptions
* fr-FR translation of Layout Switcher strings
* fr-FR addition of the --commands help file
* Better fr-FR description of the subtitle and footer core fields
* 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>
* Adopt Google Analytics 4 tag code
* Fix typo
* Temporarily add Google Analytics tracking to tw5.com
So that we can test everything is working with the Vercel preview
* Remove test configuration
* Add Polish translations for strings introduced in 2221b8e08a
* Add Polish translations for strings changed in 98e72558d0
* Add Polish translations for strings changed in d1f90f075f
* Add support for \dir pragma
* Add "dir" attribute to reveal, edit, edit-text and edit-codemirror widgets
* Add $:/config/DefaultTextDirection hidden setting
* Revert accidentally commited test data
This reverts some of commit b83c1d160f.
* Remove Codemirror plugin from Prerelease
Makes it easier to test things
* Fix framed text editor directionality in Firefox
* Add direction attribute for edit body template
* Missed closing brace
* Add docs for \dir pragma
* Templates should set text direction from a variable, not a transclusion
* Updates to framed.js in the light of PRs that have been merged since this
* Restore whitespace trim
* Docs dates
* Fix typo
* Clarify docs
* Update ShadowTiddlers.tid
main change is added section about "overriding shadow tids"
* The word "extracted" might be confusing
---------
Co-authored-by: jeremy@jermolene.com <jeremy@jermolene.com>
* Request the browser to never evict the persistent storage
* Store browser storage persisted state in a tiddler
* Factor out some code into helper functions
* Display status of persistence request in the settings page
* toc make exclude a proper macro parameter using subfilter instead of enlist
* add exclude parameter to TOC documentation tiddler
* add exclude parameter to toc-tabbed-xx macros
* add from-version to exclude parameter
* 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
* Fix typo
Thanks @btheado
Co-authored-by: btheado <brian.theado@gmail.com>
* Fix crash when cancelling more than one HTTP request
Thanks @saqimtiaz
* Further fixes to cancelling outstanding HTTP requests
* Fix missing body
---------
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
* fix: CJK in header has to be urlEncoded
* refactor: use $tw.utils.decodeURIComponentSafe
* docs: about chagne in this field
* docs: update
* docs: use less "field"
* Update ParametersWidget and add Examples
This PR updates the ParametersWidget.tid and adds several examples
* Update Procedure and Parameters Pragma
This PR improve documentation for using parameters inside procedures
* Update Pragma_ _procedure.tid
A caution when use parameters inside procedures
* Resolved conversation
All comments by Jeremy were implemented.
* 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
* Improve translink macro
Changes:
- Change styles to adapt colours to the current palette, instead of hard-coded white inside black box with grey borders.
- Simplify the design to a single div (inspired by the Community links on tiddlywiki.com), instead of two nested contrasting divs.
Comments:
- I found pre-border and pre-background to be the most consistently readable across the default palettes (better than relying on e.g. tiddler-border, tiddler-background, page-background, code-border, code-background). Cupertino Dark, Gruvbox Dark, Nord, Solar Flare, Spartan Day, Spartan Night, Spartan Day, and Twilight have same or very similar pre-border and pre-background colours, so if the macro is nested (translinking a tiddler that contains a translink), the inner frames are not distinguishable, but I think it's an acceptable edge case.
- Padding is defined separately for block and inline modes of the macro to make it appear consistent.
* Update translink macro
Change the `<h1>` styling so that it is only applied to the transcluded tiddler's title and not to any potential `<h1>` in its text.
* Update translink macro
Change the class-constructing filter so that the empty message is displayed with consistent padding in block mode.
* Update translink.tid
* Add styles for translink macro to vanilla/base.tid
Split `pre` element styling, to allow part of it be reused with `.tc-pre-border` (used by translink macro).
Add `.tc-big-bold` class under Other utility classes (used by translink macro).
* Update base.tid
Add `.tc-big-bold` class under Other utility classes (used by translink macro).
* Update translink.tid
Update `tc-pre-border` class name to match the one in vanilla/base.tid
* Update translink.tid
Simplify by always wrapping transclusion in `<p>` element (adjusts padding when inline mode or tiddler missing).
* Update translink.tid
Localise missing tiddler message (`$:/language/MissingTiddler/Hint`)
* Update vanilla/base.tid
- Modify class `tc-pre-background`, so that it can be applied to elements other than `pre`. The styling of `pre` remains unchanged, it is only split into two parts, for one part to be reused in the `tc-pre-background` class (used e.g. in translink macro).
- Add `tc-big-v-gap` and `tc-big-bold` in the *Other utility classes* section (used e.g. in translink macro).
* Update translink.tid
Improve styling to depend only on classes specified in vanilla/base.tid
* Update base.tid
Update class `tc-translink` and CSS selectors to make styling the translink macro easier
* Update translink.tid
Change the classes of elements, so that changing the style is possible by modifying the stylesheet only
* Update base.tid
Add selectors to support new inline mode in translink macro
* Update translink.tid
Change behaviour of the inline mode, now the whole macro is inline, not just the transcluded text.
* Update base.tid
Fix padding of tc-translink class to account for multiline inline content.
* Update base.tid
Remove pseudo-element parentheses from inline translink macro
* Update translink.tid
Add parentheses around inline macro
* Update Using Excise.tid
Rephrase the last paragraph (note).
Fix some minor formatting.
* Update WidgetMessage_ tm-edit-text-operation.tid
Add link to `translink Macro`
* Create TranslinkMacro.tid
* Create translink.tid
* First Pass Implementation
* Fix Check
* Fix Style
* Update drag-drop interop example to support copy tiddlers to clipboard
---------
Co-authored-by: jeremy@jermolene.com <jeremy@jermolene.com>
* feat: inform child widget to do some custom cleanup
* fix: type
* refactor: restore old removeChildDomNodes
* refactor: make destroy() a separate method
* refactor: make destroy call removeChildDomNodes
* refactor: call destroy instead of removeChildDomNodes in each core widgets
* fix: refreshSelf does not mean destroy
* refactor: use old var insteadof const
* docs: about subclass
* Run modules in one new context
* Fix polyfill running on require
* Add code to check for global assignments
* Allow globals in separate context
This lets the caller request a separate context which may be polluted.
* Jasmine needs to pollute the global
* Formatting
* Add polyfill and cleanup code
* Convert to ES5
* One bug fix
* Some formatting
* Remove console.log line!
* Cleanup
* revert css-escape-polyfill.js to hopefully remove it from the PR
* Remove JSDOC directives
* Initial commit
* Correct the over-estimation of my abilities
* Add fallback and move code to dom.js
* Use new function for tm-focus-selector
* Replace other uses of querySelector*
* Undo rash replacements of querySelector()
* Initial commit
* Update StoryTiddlerTemplate.tid
* Extend cascades hint to help in case of problems
* Remove note about debugging from docs
I think that this brief note is more confusing than anything else
---------
Co-authored-by: jeremy@jermolene.com <jeremy@jermolene.com>
* 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>
If a tiddler is only a shadow tiddler, then do not save it
to local storage. Otherwise when installing a plugin, each
individual tiddler will be expanded and saved individually.
In order to uninstall such a plugin, the plugin tiddler and
each tiddler needs to be deleted.
This can be prevented by including a run like `-[is[shadow]!is[tiddler]]`
in the save filter, but that has the side effect of preventing
overwritten shadow tiddlers from being deleted from local storage.
* Initial Commit
* Change of mind: Do not blank thisTiddler within macros
* Revert previous implementation
* Somewhat simpler implementation
* Add docs
* Add docs version tag
* external-js file naming adjusted. import docs form tw5.com. make external-js more visible
* add comment about doc usage in server-external-js edition
* add changes suggested by cdruan
* change modifed date to start vercel rebuild process
* Add searchModes: literal, some and words
* Add additional search modes
Description of selection tracker config tiddlers was also changed.
* Update simple.tid
* Improve View Template examples
Transcludes a sample tiddler for demonstration instead of the dynannotate view template code.
Adds an example for usage with $genesis to add state tiddler controlled per-tiddler highlights.
* Make search highlights not case sensitive
* Remove created and modified fields
* Add another example text (Searching in Tiddlywiki)
* Add dynannotate for vercel deployment
This should probably not be merged...
* Create LegacySelectionTracker.tid
* Create SelectionTracker.tid
* Revert putting the SelectionTracker config titles in code blocks
* Replace inline styles with CSS class
* Add class for view template examples
Class name is tc-dynannotate-example-frame.
* Remove some <br> line breaks.
* Remove first example transclusion and fix some tab spacing
* Add class to override control panel table layout
* Add class to settings table
* More tab shenanigans
Great Scott!
* Add explanatory comment to example macro
* Change defaults to match widget behavior
* Make previous macro comment more concise
* Change example to transclude CP tiddler
$:/core/ui/ControlPanel/TiddlerFields
* Delete unnecessary example tiddler
* Add 'filepath' source attribute to tiddlywiki.files
Adds a new source attribute to facilitate importing subdirectories with
the `searchSubdirectories` attribute.
The `filepath` atttribute is like `filename` except it includes the full
pathname relative to the directory path. Consequently it only works with
`directories` sections (not `tiddlers`).
* Add `subdirectories` source attribute to tiddlywiki.files
Adds another new source attribute to facilitate importing subdirectories
with the `searchSubdirectories` attribute.
The `subdirectories` source attribute is only usable with `directories`
sections (not `tiddlers`). It resolves to an array containing all the
directories in the file's path relative to the directory path. Eg, if
the directory path is `files`, `{ source: 'subdirectories' }` for a file
in `files/images/photos` would resolve to `['images', 'photos'].
This commit also adds an example to the "tiddlywiki.files Files"
documentation tiddler that demonstrates using the `filepath` and
`subdirectories` source attributes to import and auto-tag image files
as external-image tiddlers.
* Initial commit
Everything is draft.
* Fix test execution
* Fix and test missing target handling
* Use the ubertransclude widget for the wikitext transclusion syntax
* Changed transclude widget in binary parser to ubertransclude
* Add a test for custom action widgets
* Don't worry about ordered attributes
The changes in 0bffae2108 mean that we don't need to explicitly maintain the ordered attributes
* Remove need to explicitly clear widget mapping variable when invoking overridden widget
* Use ts- prefix for system slot names
* Add a definition for the value widget just so that it doesn't cause errors
Of course, it doesn't actually need to be a JS widget, it could be a wikitext widget...
* Add support for positional parameters
* Ubertransclusion positional parameters should be based on name, not position
* Add support for shortcut syntax for positional transclusion parameters
* Importvariables should skip parameters widgets
* Refactor transclude widget before uberfying it
* Refactor ubertransclude functionality into transclude widget
* Replace ubertransclude widget with transclude widget
* Add wikitext shortcut for new-style function definitions
* Allow brackets to be omitted for function definitions with no parameters
* Add pragma rule for parameters declarations
* Remove erroneous "tag" property
* Add support for accessing function parameters as name/value pairs
* Be as permissive as possible with parameter names
Previously restricted to upper and lower case, digits and dash and underscore
* Rewrite some tests to use the shortcut syntaxes
* Mustn't allow commas in parameter names
* Fix crash when transcluding an undefined variable
Thanks @pmario
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1114692359
* Unquoted parameters should not eat a succeeding comma
Fixes#6672
* Remove extraneous code
* Allow the let widget to create variables starting with $
* Fix addAttributeToParseTreeNode handling of ordered attributes
* Reuse attribute objects when executing custom widgets
* Fix importing of function definitions
* Fix parameter handling
* Introduce genesis widget for dynamically creating widgets
See the "RedefineLet" test for a contrived example of usage
* Change tiddler separator used in wikitext tests
Underscore looked ambiguous; I kept typing dashes by accident
* Cache parse trees when transcluding variables
* Fix bug with empty strings ignored in $tw.utils.stringifyList/parseStringArray
I will pull this out into a separate PR. Fixing it doesn't cause problems for the core but I imagine it might cause issues for 3rd party code.
* Fixes to enable the transclude widget itself to be overridden
There are two big changes here:
Replace the previous "ts-wrapper" mechanism, which we had been using to redefine custom widgets inside their definitions to prevent recursive calls. Now we've got the genesis widget we can instead control recursion through a new "$remappable" attribute that allows the custom widget mechanism to be skipped.
We also extend the slot widget to allow a depth to be specified; it then reaches up by the indicated number of transclusion widgets to find the one from which it should retrieve the slot value.
* Fix genesis widget example
* Use enlist:raw to preserve duplicates
* Don't create variables with value undefined for missing parameters
* Fix variable retrieval bug with test harness
* Improve recursion detection
While retaining backwards compatibility
* Experimental support for custom filter operators
Just as we can define custom widgets we can also define custom parameterised filter operators
* Add visible transclusions component and demo
Very useful to see transclusions explicitly
Makes a good demo of a super-complicated widget override.
* Genesis widget should pass raw attributes onto child widget...
...so that it can more efficiently handle refreshing itself.
* Use consistent parse tree node property for params
* Extend transclude widget to work with old-style macros and use it for the macrocall shortcut syntax
* Clarify that the recent changes allow functions to be invoked with the double bracket syntax
In other words, the transclude widget distinguishes between functions and macros and handles the parameters appropriately
* Make the macrocall widget delegate to the transclude widget
* Switch to using \procedure to define new-style macros, and \function for custom filter operator functions
I now need to update the OP!
* Fix visible transclusion example
* Remove obsolete code
Left over after refactoring
* Better backwards compatibility for legacy recursion marker
Fixes the problem with tag dropdowns @btheado
* Fix stringifying/parsing string arrays containing newlines
A very old bug.
Fixes the ActionListOpsWidget problem @btheado
* Transclude: replace paramNames/paramValues with more robust JSON payload
More details at https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1123719153
* Rename internal "unknown" filter operator so that users cannot invoke it
* Detect recursion by tracking widget tree depth
The old recursion marker approach was very slow, and didn't catch test cases like editions/test/tiddlers/tests/data/transclude/Recursion.tid
* Use \widget for custom widget definitions, and remove need for angle brackets
Need to do some refactoring of all those isFunctionDefinition/isProcedureDefinition/isWidgetDefinition flags into a single property
* Rename <$value> widget to <$fill>
* Require $$ for custom widgets, and that overridden JS widgets must exist
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1133637763
* Fix invocation of JS macros
* Experimental update of the parse-tree preview visualisation
An experiment to try out using the new JSON operators for rendering the JSON parse tree that we get back from the wikify widget.
As usual with these experiments, this one is going to require quite a lot more work to finish up:
* The formatting is via direct styles rather than classes
* The formatting for attributes and properties is not yet completed
* The same thing needs to also be done to the widget tree preview
* Procedures and widgets inherit whitespace trim setting from their definition
* Missed off 22e7ec2381
* Require period prefix for custom filter operator functions
To ensure that custom filter operators cannot clash with future core operators.
* Allow custom functions to be invoked as attributes
* WIP
* Remove unneeded test tiddler
* Make is[variable] and variables[] operators resilient to fake widgets
* Fix importvariables to work with setvariables as well as set (they are aliases)
* Add support for $:/tags/Global
* Remove accidental commit 6cc99fcbe3
* Add utility function for parsing macro parameter definitions
* Introduce true global variables
The basic idea is that if we don't find a variable `foo` then we fallback to retrieving the value from the tiddler `$:/global/foo`, if it exists.
This allows us to replace the usual importvariables-based mechanism for global definitions, avoiding cluttering up the variable namespace with every macro.
In order to permit subprocedures to be overridden, we also introduce a mechanism for conditional definitions: preceding the word definition|procedure|function|widget with a + causes the definition only to occur if the specified variable doesn't already exist. In the next commit we'll apply this mechanism to the tabs macro
* Convert the tabs macro into a global
So far it appears to be totally backwards compatible... In practice, I think maybe this and the conversion of the other macros should go into a separate subsequent PR.
* Change to `?` for conditional definitions
* Fix tabs global so it doesn't crash when viewed directly
* Test showing how to un-override a core widget
* Cleaning up after f636349007
* Minor cleanups
* Clean up unknown filter
* Introduce function operator for calling functions
Can invoke any functions, not just those start with a period. And can pass zero parameters (in contrast when invoked as a custom filter operator there's no way to omit the first parameter).
* Use underscores for new system fields for global variable tiddlers
For consistency with `_canonical_uri`; unlike many system fields, the behaviour of these fields is baked into the core JS code.
* Refactor $parameters widget
The objective is to add a $depth attribute so that it is possible to reach up to retrieve the parameters of ancestor transclusions. However, doing so requires changing the encoding of parameter names so that it is not possible for a user parameter to clash with an attribute like $depth. So now we have to double up dollars on any attribute names seen by the parameters widget, just like with the transclude widget itself.
* Fix refreshing of global variables
Global variables access within attributes will automatically trigger a refresh if the attribute text changes, but that wasn't happening for transclusions.
* Remove support for $:/tags/Global
It is not needed now that we have true global variables
* Typo from f513b403fe
* Make slot fill data available to transclusions
Allows transcluded content to dynamically process <$fill> widgets within the calling transclusion
* Mark docs as v5.3.0
* Simplify metaparameters implementation
* Fix typo
* Adjust naming of transclusion metaparameter
* Fix up handling of slot/fill for custom widgets
Previously we were wrapping the body in an implicit `<$fill $name="ts-body">` widget
* Add format:json operator
I've been finding this useful for debugging, and it kind of goes with the JSON operators
* Docs: JSON operators and tweaks to genesis widget
* Docs: format:json
Also tweak to the behaviour of format:json if the input string is not valid JSON
* Fix#6721
* Revert "Fix #6721"
This reverts commit b216579255 which was committed to the wrong branch
* Fix new selection tracker to return relative coordinates
* Make use of type attribute consistent
* Docs: Transclude widget
* Simplify the fill widget
We can rely on the default processing in the base class
* Slot widget: be more defensive about negative depth values
* Parameters widget: Be defensive about negative depths
* Protect against excessively recursive functions
* FIx transcluding of functions
This first implementation concatenates the results of the filter (with no separator) and then wikifies the result.
The test in this commit is quite interesting...
* Tweak semantics of JSON operators to match #6932
This allows us to later bring in the optimisations without breaking backwards compatibility.
* Revert obsolete changes to boot.js
* Fix inadvertent whitespace change
* Remove tests related to obsolete changes to boot.js
Should have been part of 2f494ba152
* Revert changes to parse tree preview
This implementation requires #6666
* Add test to show that global widgets need not use the _parameters field
* Disable overriding core widgets in safe mode
* Coding style tweak
* More comments
* Fix caching of parse variables/macros/procedures
* Transcluded functions should operate on the entire store
* Refactor filter recursion detection to avoid an unneeded wrapper function
* Fix error in 25312b3e32
* WIP
* Revert "WIP"
This reverts commit 8654dfc679.
* When transcluding functions, pass an empty item list to the filter, and just return the first item
* Rejig genesis widget to be easier to use
* Parameters widget: protect against negative $depth
* Docs updates
* Docs updates
* Tweak comments
* 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
* Update function operator to return the input list if the function is missing
* Remove negation from function operator
This implementation was not useful.
* Tests and docs for function operator
* Docs tweaks
* Improve indentation
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#discussion_r967655251
* Missing tests for parameters widget
* Fix visible transclude
* Docs update
* Docs typo
* Huge Documentation Update
Not quite finished, but definitely on the home stretch
* Slight optimisation to user defined widgets
* 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.
* Docs clarification
* Docs update
* Some widget.js cleanups
* Remove support for conditional definitions
It was introduced for use cases associated with the global mechanism that was dropped in e3d13696c8
* Docs updates
* Revert change to setwidget docs
* Docs update
* Docs updates
* Clarify/simplify some tests
* More docs updates
* Fix doc file locations
* Docs updates
* Revert modified date of docs that have only had minor tweaks
* Docs typo
https://github.com/Jermolene/TiddlyWiki5/pull/6666#discussion_r990811220
Thanks @btheado
* Transcluding functions: fix missing parameters passed as undefined
Thanks @btheado – see https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1276187372
* Parameter parenthesis should be mandatory in function/procedure/widget definitions
See https://github.com/Jermolene/TiddlyWiki5/pull/6666#issuecomment-1280404387
* Attempt to build this branch with CI
* Add release note etc for 5.3.0
* Temporary new release banner for v5.3.0
* New New Release Banner
* New test for undefined parameters
* Adjust modified times of docs tiddlers to make them easier to find
* Update release note
* Add parenthesis to the visible transclusion definition
Parenthesis were made mandatory in 5194b24108Fixes#6998
* Fix macrocall refresh issue
It turns out that this.transcludeTitle is always truthy, even if we are transcluding a variable
Fixes#7001
* Filter run prefixes should use widget.makeFakeWidgetWithVariables
* Docs typo
Thanks @twMat
* Docs: clarify function operator invocation
See discussion at https://github.com/Jermolene/TiddlyWiki5/issues/6991#issuecomment-1301703599
* Docs: Update \define pragma to cover named ends
* Docs: move tiddlers to correct directory
* Add support for named end markers for procedures, functions and widgets
* Docs note about nested macro definitions
* Rename test
* Fix detection of empty transclusions
See https://talk.tiddlywiki.org/t/exploring-default-tiddler-links-hackability-in-v5-3-0/5745/25?u=jeremyruston
* New test missed off a45349cc99
* Refactor wikified function tests
* Refactor function invocation
* Introduce new widget helper function to evaluate variables.Functions are evaluated as parameterised filter strings, macros as text with textual substitution of parameters and variables, and procedures and widgets as plain text
* Refactor the function operator and unknown operator to use the new helper
* Use the new helper to evaluate variables within filter strings, thus fixing a bug whereby functions called in such a way were being returned as plain text instead of being evaluated
* Refactor the transclude widget to use the new helper
* Update tests
* Fix positional parameters in widget.evaluateVariable()
This should clear up the remaining anomalies in #7009, let me know how you get on @btheado
* Remove 5.2.8 release note
* Fix nonstandard initialisation code for fill/parameter/slot widgets
* 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
* Restructure and optimize `CheckboxWidget` docs
* Minor improvements
* Use new tab macros and some reformatting
* Fix bug in widget-attr-link tooltip
* Minor layout tweaks
* First try at a Widget Documentation Style Guide
* Add new tabs-related macros to overview
* Update CSS, add tm-scroll and rename macros
* Avoid RSoE with tm-scroll, improve CSS for tab-links
* Handle doc-tab-links within tab tiddlers better
* Reflect macro name changes in their docs
* Update Widget Doc Style Guide
The list-links by default show caption of listed tiddlers instead of their title. So in the example here
```
<$macrocall
$name="wikitext-example-without-html"
src="""<$set name="digit-pattern" value="[0-9]{2}">
<<list-links "[regexp:title<digit-pattern>]" field:"title">>
</$set>"""/>
```
you need to use field:"title" to see the correct results visually.
* Initial Commit
* Fix crash with invalid patches
See https://github.com/Jermolene/TiddlyWiki5/pull/7290#issuecomment-1453155311
Thanks @yaisog
* Add words and lines options to makepatches (#7326)
* Prevent infinite loop for single-word texts (#7327)
* Add docs and examples for the new operators (#7328)
* Create makepatches Operator.tid
* Improve wording
* Doc and examples for the new operators
---------
Co-authored-by: yaisog <m@rcuswinter.de>
* Changed headings under Content
Made them H2 and changed the wording a bit.
* Move the list of filters to another tiddler
There is a tiddler for Extended Listops Filters, and the list should go there, so that the Widget tiddler does not get too overcrowded.
* Rework comparison to ActionSetFieldWidget
* Add notes on de-duplication
* Update link to Extended Listops Filters
* Updated link to Extended Listops Filters
* Update link to Extended Listops Filters
Duh. This was the most important one.
* Remove repeated links to widgets within one section
* Re-create original tiddler with a redirect notice
* Excised the examples into a separate tiddler
Also created an "examples" subdirectory under tw5.com/tiddlers/widgets.
* improve Formatting in Wikitext
* formatting add more info about semantic meaning
* back to 1 tiddler Formatting in Wikitext
* single backtics are used for code - fix typo
* feat: allow deleteTiddler to not modify fs
* refactor: add new function that merely delete file in cache, and let old func calls it
* fix: self is undefined
* add alert when zoomin error occurs plus protection to avoid TW getting stuck when it happens
* Reverted additional logging and made the zoomin just silently and safely ignore the issue
* Add description of field date format
* Add description of field date format and improvements
Due to the re-creation of the PR all changes to this file got mushed together.
* Improve 'Formatting in WikiText.tid'
Add highlight formatting example.
Simplify code formatting example to be single line without nested list.
Improve bold, italic, and underscore formatting examples to be consistent with others.
* Improve 'Styles and Classes in WikiText.tid'
Add more examples, including the default highlight styling when no style or class is defined, as introduced in #6877
* Add initial tm-import-tiddler test
* Add failing test for tm-import-tiddlers importTitle #7234
* Add failing test for tm-import-tiddlers autoOpenOnImport #7234
* Use event.paramObject instead of event to access tm-import-tiddlers options. Fixes#7234.
* Added a clarifying comment
* Allow mixing tm-import-tiddler params in both event and event.paramObject
* Added import test using tv-auto-open-on-import variable
* Removed stray punctuation
* Update BrowseWidget.tid
Made sure all references to use of the `<$browse>` widget were changed to `<$browse/>`
Which possibly caused this problem, now closed https://github.com/Jermolene/TiddlyWiki5/issues/7223
If not closed other widgets may work
* To documentation standard
Replaced `The content of the `<$browse>` widget is ignored.`
`The content of the <<.wid BrowseWidget>> widget is ignored.`
To restore documentation standards as per @Jermolene
* correction of the toc and toc-body macro: tiddler without toc-link field can now be overriden + nested the macros
* reverted macro nesting
.. to be able to override the toc-body macro
* reverted tabs to spaces
* Allow boot code to remain as tiddlers
* Sync up with tiddlywiki5.html
* Add \whitespace trim
* Add download-full-wiki button
* Simplify ExportTiddlyWikiCore code
No longer needs the if-boot-code-is-missing part of the code.
* Replace space btw icon and button text with CSS
* Add automatic sync of tiddler changes in browswer-storage on restoration of server connection in tiddlywebadaptor
* Fix issue with new tiddlers not being synced.
* Fix issue with new tiddlers not being synced.
* Added logging
* Modified browser-storage plugin. Refactored into utility class.
* Modified browser-storage plugin. Refactored into utility class.
* Fix: browser storage config tiddler created on load only if not already exists
* Fix: Removed extra indent in util.js
* Rename markdown to markdown-legacy
* Change how default renderWikiTextPragma value is displayed
To prevent out-of-sync, dynamically display the default value of
renderWikiTextPragma from the shadow tiddler instead of hard coding
the text in the "usage.tid".
* Repackage remarkable-based markdown plugin as markdown-legacy
- Rename plugin title to $:/plugins/tiddlywiki/markdown-legacy
- Add support for "text/markdown" MIME type and set that as the default
when creating new markdown tiddlers
* Create new markdown plugin
* add support to text/markdown MIME type
* remove linkify and linkNewWindow config options
- linkify feature should be controlled by "extlink" TW parser rule;
enabling markdown's linkify option will interfere with parsing
- remove the possibility to open external links in the same tab/window
to match TW's behavior
* Ignore latex-parser wikirule in rednerWikiTextPragma
* Prevent camel-case link text from generating a link
* Update editions/markdowndemo
* Produce better parse tree
* Improve markdown/tiddlywiki integration
- widget block should not interrupt paragraph
- ignore tw-syntax links inside markdown-syntax links
- remove repeated renderWikiTextPragma parsing
- more efficient findNextMatch when examining tw rules
* Update user docs
* Replace includes() with indexOf() for legacy browsers
Remove [[Open Collective]] from the tags of itself.
This breaks the heirachy of the TOC and produces an entry that will not open its own list see HelloThere > Open Collective
* Added failing tests for #7155
* Pass getVariable options through to the widget method. Fixes#7155
* Whitespace fix
* Added tests to verify macro parameters work inside filter, reduce, and sortsub operators
* Fixed and enhanced italian translation
* Fixed and enhanced italian translation
* Delete type: text/vnd.tiddlywiki
* Delete type: text/vnd.tiddlywiki
* Update and rename application%2Fjavascript.tid to application_javascript.tid
* Update and rename application%2Fjson.tid to application_json.tid
* Update and rename application%2Fx-tiddler-dictionary.tid to application_x_tiddler_dictionary.tid
* Update and rename image%2Fgif.tid to image_gif.tid
* Update and rename image%2Fjpeg.tid to image_jpeg.tid
* Update and rename image%2Fpng.tid to image_png.tid
* Update and rename image%2Fsvg%2Bxml.tid to image_svg_xml.tid
* Update and rename image%2Fx-icon.tid to image_x-icon.tid
* Update and rename text%2Fcss.tid to text_css.tid
* Update and rename text%2Fhtml.tid to text_html.tid
* Update and rename text%2Fplain.tid to text_plain.tid
* Update and rename text%2Fvnd.tiddlywiki.tid to text_vnd.tiddlywiki.tid
* Update and rename text%2Fx-tiddlywiki.tid to text_x-tiddlywiki.tid
* Fixed and enhanced italian translation
* Fixed and enhanced italian translation
* Changed en-GB to ''en-GB''
* Fixed and enhanced italian translation
* Fixed and enhanced italian translation
* Fixed and enhanced italian translation
* Fixed and enhanced italian translation
* Update NewJournal.multids
* Create NewJournalTags.tid
* Delete Advanced/Matches
* Update SideBar.multids
* Fixed and enhanced italian translation
* Fixed and enhanced italian translation
* convert rendertiddler(s) in sever .info
* Conversion of rendertiddler(s) in tiddlywiki.info for editions/empty
Conversion of rendertiddler(s) in tiddlywiki.info for editions/empty
* Conversion of rendertiddler(s) in tiddlywiki.info for editions\server-external-js
Conversion of rendertiddler(s) in tiddlywiki.info for editions\server-external-js
* Convert Rendertiddler(s) in tiddlywiki.info in tw5.com, tw5.com-doc
Convert Rendertiddler(s) in tiddlywiki.info in tw5.com, tw5.com-doc
* Convert rendertiddler(s) editions\twitter-archivist\tiddlywiki.info
Convert rendertiddler(s) editions\twitter-archivist\tiddlywiki.info
* Convert rendertiddler(s) in editions\katexdemo\tiddlywiki.info
Convert rendertiddler(s) in editions\katexdemo\tiddlywiki.info
* Correct for extra space in editions\katexdemo\tiddlywiki.info
* Convert rendertiddler(s) editions\highlightdemo\tiddlywiki.info
* Convert rendertiddler(s) in editions\tw.org\tiddlywiki.info
Convert rendertiddler(s) in editions\tw.org\tiddlywiki.info
The content is still there since there are links to it from various
places, but let's not have its card appear in the list of savers
shown in the "Saving" tiddler any more.
Removing just the "Saving" tag would have been sufficient, but I
think it makes sense to remove the other tags as well.
* fix table overflow for small screens
* add PRE word-break for Chrome and Safari on mobile
* remove comment, since it looks better for all browsers now
* add 1 space to trigger the new automatic build
* change small screen settings only for tiddler frame
* Fix Bug #7054: Reuse of $:/core/ui/EditTemplate/fields broken
This fixes Bug #7054 by creating a new variable
`safeNewFieldValueTiddlerPrefix` that is always set to a valid,
temporary prefix. This variable is used within `$action-deletetiddler`.
If the passed `newFieldValueTiddlerPrefix` variable is empty a new
prefix will be generated by the same logic that creates the original
`newFieldValueTiddlerPrefix` variable.
To be even more defensive, the prefix-filter was prepended with another
prefix filter that limits matches to `$:/temp/NewFieldValue`. This
prevents a bogus but non empty value in `newFieldValueTiddlerPrefix`
to delete arbitrary tiddlers.
* Add a default for `newFieldValueTiddlerPrefix`
This fixes a problem that was identified while fixing bug #7054. If the
tiddler `$:/core/ui/EditTemplate/fields` is transcluded directly and
`newFieldValueTiddlerPrefix` is not set, it will be generated. This
makes sure that this value is defined. It can not be redefined
unconditionally because if this tiddler is transcluded from
`EditTemplate.tid` these two tiddlers must agree on the same prefix
because the clean-up is duplicated between `EditTemplate.tid` and
`fields.tid`.
This would make `safeNewFieldValueTiddlerPrefix` obsolete, but I leave
it in there to make the macros safe and prevent any problems if the
`newFieldValueTiddlerPrefix` is unset by a later change.
* 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
* 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
* 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.
* 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
* 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>
* pluginlibrary - minimal test server
* changes suggested by Jeremy
* use tmp instead of the files directory
* new tmp-route
* rename edition to test-pluginlibrary
* fix .gitignore
* remove StoryList tiddler
* improve GettingStarted text
* rename edtion test-pluginlibrary back to pluginlibrary
* remove 2 tiddlers that shouldn't be there
* 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
* 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
* 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`.
* 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>
This just brings the documentation for these commands more inline with
other deprecations, plus offers a link to the recommended alternative
as well as the explanation for deprecation
* 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
* 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
* add polish translations to changes introduced in two commits:
* ca762ab7a6
* a453121e96
* add polish translations to changes introduced in d7b9e6fb02
* add polish translations to changes introduced in 0b1fc8e574
* 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.
* Update to the fr-FR translation of the render command
* Add a Caption entry to the fr-FR translation of EditTemplate strings
* updates to the fr-FR translation of the default command help
* Add a Caption to the fr-FR translation of SideBar-related strings
* Update to fr-FR translation strings for Control Panel
* Update to Misc fr-FR translations strings
* Updates to the Fields-related fr-FR translation strings
Since https://github.com/nodejs/node/issues/40537 users are more likely to encounter IPv6 connections.
IPv6 URLs require square brackets around raw addresses.
With this change VS Code correctly hyperlinks the message `Serving on http://[::1]:8080`
* Added description and examples comparing :map vs. :map:flat
* Make it clear :flat is just a suffix on the :map filter run
* Reword the description comparing :map and :map:flat
* Swap the :map and :map:flat columns in the examples table
* Removed mention of how to express ':map' in terms of ':map:flat'
Now both the insertafter and insertbefore filter operators have similar
wording in their documentation tiddlers, making it more clear that the
"start" and "end" suffixes are only available in the two-parameter form.
- Add translations for untranslated items
- Unification of terms (translations differed by multiple translators)
- Add signature of `author` (Includes translation assistance for dajya-ranger. I also added his signature)
It's a lot of updates, but I've tested it on my TiddlyWiki.
Help etc. are still lacking.
* Implement insertafter operator (like insertbefore)
Currently, the behavior of insertafter if the target is not found is to
append the inserted tiddler to the end of the list, like insertbefore
does. In the next commit, we'll add a suffix to customize what both
insertafter and insertbefore do when the target is not found.
* Add failing tests for insertafter suffixes
Also includes tests for insertbefore suffixes (start/end), since we'll
be implementing both of those at the same time.
* Add start/end suffixes for insertafter/before
The tests that exercise the start/end suffixes now pass.
* feat: update snippet fields
https://github.com/Jermolene/TiddlyWiki5/discussions/6670
* chore: upgrade files
* docs: update readme
* fix: usage of mhchem
* fix: add back katex.without-font-face.min.css
https://github.com/Jermolene/TiddlyWiki5/pull/6671#issuecomment-1116287404
* style: format json with 4 space
* style: format json with 1 space
* style: restore old format
* feat: update css by using new one and delete font face
* update developer info
* move implementation notes to plugin
* update TW style tiddler
* update katexdemo edition
* chore: delete unused files
* Update developer.tid
* Update developer.tid
Co-authored-by: pmario <pmariojo@gmail.com>
* this commit should fix#6731. It trims field and tag whitespace
* this commit increases tag space visibility as mentioned in 002d47b4d9
* fix a missing HTML end tag
* fix $:/Manager select element max width
* Add `main` and `article` roles to stories and story.
* Support `role` and \aria-checked` in buttons, and integrate with sidebar tabs.
* Add `region` role to sidebar, and set caption as `aria-label`.
* Add accessibility roles and labels to static templates.
* Update test fixtures with new ARIA tab attributes.
These improvements rely on the new JSON operators to be useful. Those improvements were originally in #6522 but now there's an updated version in #6666. Managing things is simpler if I merge these changes now
* feat: expose isMobile to info
* feat: allow access browser info from $tw.browser
* fix: adapt typo
* refactor: only export selected properties
Jermolene 5 hours ago
The trouble is that the properties of bowser.browser are not under our direct control, and so subsequent updates to Bowser might overwrite important properties of our own. I'd rather explicitly import the properties that we choose to support.
* refactor: put things into `is`
* Fix for Bug #6618
This Commit fixes Bug #6618. It is a little bit more complicated than
using one tiddler to store the new value for a field. Because the
following can happen:
* The user types "not-a-date" into the field value of a simple text field.
* The user now selects a field name that uses a HTML5 date editor. The
Editor will show no date because the value cannot be parsed.
* The user saves the tiddler by clicking the checkmark.
Now the date-field contains the value "not-a-date" but the user was not
aware that this will be added. The edit control showed no date (because
the value was invalid) and the user assumed the field was empty and
won't be added to the tiddler.
To prevent this, every kind of field editor gets its own storage tiddler.
Its name is derived from the SHA256-hash of the name of the tiddler that
is returned by the Field Editor Cascade. That way every editor in the
cascade is only seeing its input. As long as the default setup (with one
default editor) is used, everything works like in 5.2.1.
This commit also fixes the bug that the after adding a field the
field-type input box was not focused again.
* Update Documentation for Field Editor Cascade
The fix for bug #6618 makes the handling of the tiddler backing the edit
operation much more complicated. See previous commit "Fix for Bug #6618"
for more details.
* Fix: eventcatcher widget - variables can be undefined
* Fix: selectedNode can be an svg where offsetLeft ... are undefined
* Make check for offsetLeft short
* remove second collectDOMNodeVariables
* Fix lazy all template with user defined macro cause error
Fixes https://github.com/Jermolene/TiddlyWiki5/issues/6637
* fix: exclude the SJCL library when saving
@Jermolene said:
The construction -[type[application/javascript]library[yes]] is used in the core as a rather clumsy way to exclude the SJCL library when saving. The same construction is in the usual $:/core/save/all filter too.
It's possible that we should review unintended side effects of that behaviour, but here we should leave it alone.
A user was wondering how to add a background image to the password screen of an encrypted wiki (https://talk.tiddlywiki.org/t/background-image-on-login-page/3145). It was not obvious that an encrypted wiki is considered as "loading", so I updated this tiddler to hint at this.
I also added a hint to the other system tags $:/tags/RawMarkup.. since they can also be used for the same purpose.
Adding tiddler 'How to update TiddlyWiki to the latest version' which transcludes the existing tiddler 'Upgrading'.
Some people search for term 'update' instead of 'upgrade' .
This batch includes:
- Minor corrections of metadata from my previous translations
- Translation updates for tiddlers tagged WikiText
- New translations for Parser Modes documentation
- Update of outdated core tiddlers translations (ie Open sidebar tab)
* Documentation for indeterminate checkboxes
* Unit tests for indeterminate checkboxes
* Implement indeterminate checkboxes
* Simplify indeterminate checkbox example
* Slightly simplify refresh logic for indeterminate
That five-line if statement can be turned into a simple assignment.
* Use "yes" and "no" for checkbox indeterminate attr
This makes the "indeterminate" attribute of the checkbox widget work the
same way as other boolean attributes of other widgets.
* Fix bug with invertTag attribute
One place in the checkbox widget code was checking invertTag for
Javascript truthiness rather than the value "yes", which could have
produced incorrect results if anyone wrote invertTag="no". Fixed.
* fix: formatDateString with [UTC]xxx didn't use passed date
* test: for formatDateString UTC
* fix: not possible to test internal date without hijack
Expected '20220410073037515' to be '20220410073037516'.
* fix: hour
* Give plugin authors the chance to extend a palette
* Update CSS.tid
* Update ColourMacro.tid
* Update CSS.tid
* Update ColourMacro.tid
* Add whitespace trim to colour macro
* Do not remove localstorage items while looping
While looping over all the browser storage items by index, the items
should not be removed because removing alters the index positions. The
item following the removed one will be skipped by the loop.
Instead, accumulate a list of keys to remove and remove them after the
loop.
* Implement full delete support for browser storage plugin
Before, deletes only worked for tiddlers which are only present in the
localstorage. Now deleted tiddlers are marked in localstorage using an
empty string value.
At startup, the localstorage tiddlers with empty strings will be deleted
from the wiki if they are still present. If they are already gone from
the wiki, then the blank localstorage entry will be deleted.
* Document drawbacks to using '[all[]]' and provide an alternative
* Show server response as error message in put saver
I'd like to use this on Tiddlyhost so users can get more informative
error messages if the put save fails for whatever reason.
This would make the put saver a viable replacement for the legacy
upload saver, which is what Tiddlyhost uses currently.
I'm not sure what standard WebDAV servers do, but I would guess they
don't provide any response body for put requests, and hence this
patch would have no impact for a standard WebDAV server. (That said,
it would be a good idea to test it to make sure there aren't any
unexpected regressions for WebDAV or other put saver compatible
services.)
* Access http response status directly in put saver
There's no need to extract it from the error string created inside
tw.utils.httpRequest if we can get it directly from the xhr object.
* Add 'Save starting' notification for put saver
There are two related changes here:
1. Add a 'Save starting' notification for the put saver, similar to
the upload saver. Not sure if it was intentionally omitted for
the put saver, but it seems reasonable to have the two be
consistent.
2. Send the 'Save starting' notifications in both upload and put
save right before the actual request is sent. While testing I
noticed that the save might have failed before the "Save
starting" notification appeared which doesn't seem useful.
* Docs for CheckboxWidget list and filter modes
This documents the `listField` and `filter` attributes.
* Tests for checkbox widget list mode
* Implement checkbox list mode
* WIP on implementing filter attr for checkboxes
* Improve CheckboxWidget documentation
* Refactor checkbox tests: move function to top
The big findNodeOfType function belongs at the top of the describe
block, so that the checkbox tests are more compact and easy to read.
* Move checkbox widget tests to end of file
The checkbox widget tests are long and involved, so we'll move them to
the end of the file so they aren't a huge block of code you need to read
past to find the next test.
* Improve formatting of CheckboxWidget docs
The \define() calls that are short enough to fit on one line should be
put on one line, for readability. The ones that are quite long have been
kept on multiple lines, for readability.
* Added more passing tests for checkbox widget
* Add some failing tests for checkbox widget
The filter mode where neither checked nor unchecked is specified (in
which case an empty filter result means false and a non-empty result
means true) is not working yet.
* Make failing tests pass
* Uncomment (and improve) test for field mode
We're now ready to start working on making this test pass. (There was
also one small mistake in the test, which this commit corrects).
* All tests now passing
* No indeterminate checkboxes in simple modes
The simple checkbox modes (field and index) should not produce
indeterminate checkboxes. That should be reserved for the advanced modes
(list and filter).
* Minor improvement to unit tests
* Allow indeterminate checkboxes in list and filter modes
This change may require some tweaks to the unit tests to be able to test
it properly.
* Slightly easier to read tests
* Two more tests for list mode
* Greatly simplify unit test code
Turns out there's no need to jump through Object.getPrototypeOf hoops.
* Minor simplification of unit test
* Add tests for indeterminate in list & filter modes
With this, the set of tests is complete.
* More tests to specify list mode behavior
* Unfocus tests so all tests run
* Update docs to say "new in 5.2.3" insetad of 5.2.2
* Move checkbox widget tests into their own file
The test-widget.js file was getting too long with all the checkbox
tests added, so we'll move the checkbox tests into their own file.
* Add checkbox widget tests for index mode
This commit also adds tests for index list mode (with a listIndex
attribute that will parallel the listField attribute) but leaves them
commented out because they don't pass yet: the code that implements the
listIndex attribute hasn't been written yet).
* Add listIndex attribute to checkbox widget
* Remove code that lets checkboxes be indeterminate
This reverts commit 6afcb151be. We will
add this code back in a later PR.
* Remove indeterminate tests for checkbox widget
We're currently not allowing indeterminate checkboxes, so there's no
need for the tests that check for them.
* Document listIndex attribute of CheckboxWidget
* adds class tc-checkbox-checked when checked
* equivalent to #2182 (RadioWidget)
* also applies `tc-checkbox` to checkboxes by default, always
* Move macro definitions inside example text
Since the wikitext-example-without-html macro creates a new parsing
context, it's safe to have macro definitions inside it. That makes these
examples a lot easier to write, and to read.
* Remove all mention of indeterminate checkboxes
Also improve the documentation a little bit: mention what happens in
list mode if neither checked nor unchecked is specified.
* Move filter mode to bottom of checkbox docs
The `filter` attribute should be under both `listField` and `listIndex`
rather than being between them. The documentation for filter mode should
similarly be after the `listIndex` documentation.
* Improve docs for `class` attr of checkbox widget
This brings the wording of the `class` attribute more in line with how
it's worded in the RadioWidget docs.
* Fix bug with list tiddlers
If neither checked nor unchecked was specified, then the behavior should
be "empty = false, non-empty = true". But if *both* are specified yet
neither is found, then the checkbox should be unchecked (false). It had
been falling through to the "non-empty = true" behavior, which was wrong.
* Improve listIndex example of checkbox widgets
* Remove unused function from test-widget.js
Co-authored-by: Tobias Beer <beertobias@gmail.com>
* Make choice selections save to state tiddler
Currently choice selections save to current tiddler (Saving), which marks TW as needing to Save. This fixes that by saving the working list to a state tiddler.
* Change state tiddler to $:/state/gettingstarted
* Add new Polish translations
Introduced in commit 54cfda76ee
* add Polish translations for changes from commits d78ad756 to b9ae6607
Co-authored-by: Maurycy Zarzycki <maurycy@evidentlycube.com>
* adding trim: large macros and languageswitcher
* adding trim: KeyboardShortcuts.tid
* Hidden space to force some macros to be inline
This'll be our little secret. This single byte will actually allow
the uglifier to trim over thirty bytes while condensing.
I know I'm not supposed to optimize TW for some 3rd party plugin,
but I'm the one doing the whitespace trim work, so I'll give myself
this.
* More consistent nested quoting
* First batch of \whitespace trim
Along with some quotation improvements to compensate for the new bytes.
* Undid experimental, new-age, gen-Z formatting
* daring to whitespace trim a placeholder macro
* switching to more consistent nesting of quotes
* Fix field edit bug
This fixes the field edit bug mentioned in
https://talk.tiddlywiki.org/t/possible-field-editing-bug-in-5-2-2/2884 .
* Revert "Fix visual regression in #6511"
This reverts commit c920960942.
* Add new class `tc-edit-fieldeditor`
This class must be added to input and select elements that are used as
field editors. This class reduces the line height of the input element
if it is displayed within the `tc-edit-fields` part of the edit
template.
This allows the same input and select elements to be used for editing
and adding fields.
* Add the new class `tc-edit-field` to the docs
The example in `Customizing EditTemplate Field Rendering` now uses the
new CSS classes.
* tabs activate v5.2.2 tests add whitespace trim
* tabs-macro -- add indentation and code preview
* tabs-macro -- replace substitutions with variables
* split tabs-macro macro into different elements
- tabs-button
- tabs-tab
- tabs-tab-list
- tabs-tab-body
- tabs ... main macro
* tabs: add cascade to button and reaveal widgets
This will allow users to create "default tab" configurations similar to the tiddler info tab handling.
* tabs-macro -- add code_body: yes
* adding trim: Last of the macros I think
* adding trim: EditTemplate and ItemSidebarIcon
* adding trim: control panel basics
* Another hidden space to guide the uglifier
* More consistent nested quoting
* Reconciling tests for \whitespace trim
* adding trim: AdvancedSearch Standard
* adding trim: tiddlers that had SOME trim already
* making all existing trim tiddlers consistent
* Forgot to properly indent this widget
* I don't THINK that space was important...
but I'm putting it back in
* Forgot one whitespace trim
* Allow the rendering of fields to be extended
This commit extends the `$:/core/ui/EditTemplate/fields` tiddler to
use a new cascade (Field Editor Cascade) to allow customizing the
rendering of the field editor.
It provides a default element for the cascade that displays the standard
EditTextWidget as a fallback. That way, the implementation is completely
backwards compatible. The `currentTiddler` and `currentField` variables
are available in the transcluded tiddler. This has the additional
benefit, that not only the `EditTextWidget` can be used. The user can
use a dropdown-list or even something completely crazy. As long as it
can be put into a tiddler that updates the field, it will be fine.
* Make `select` Tags in Fields look like the rest
This patch updates the CSS to make `tc-edit-texteditor` usable on
`select`-tags as well.
I'm not sure what `-webkit-appearance: none;` is for, but it hides the
DropDown-arrow in Chrome and makes the select-tag hard to discover. I've
changed the css to only apply it to the input tag. Maybe it can be
removed altogether.
* Add documentation for the Field Editor Cascade
* feat: extend tm-open-window to allow opening the same tiddler in multiple templates, and introduce tm-close-window to close browser windows
* fix: use a windowID parameter to uniquely identify a window and introduce tm-close-all-tiddlers
* fix: whitespace
* fix: update variable
* Move GettingStarted to the right place
Previous batch of translations changed the wrong file
* Revert #6467 for GettingStarted
* Delete $ _editions_tw5.com_doc-macros.tid
Wrong name for the updated tiddler
* Update $__editions_tw5.com_doc-macros.tid
* Translation updates
* Update of 2 tiddlers referenced on HelloThere
* 5 more tiddlers, referenced in WikiText.tid
* Support specifying insertbefore position title as parameter
Closes: #6133
* Update insertbefore calls with new variable parameter syntax
See-also: 96b52606a (Support specifying insertbefore position title as parameter, 2022-02-21)
* feat: extend to support a selector attribute identifying the DOM element to be used as the drag handle
* fix: remove redundant variable declaration
* fix: remove extranneous variable declaration
* corrected [!is[draft]] to be a proper complement
* Ensuring [is[draft]] and [!is[draft]] are complements
* Made [is[draft]] more analogous to .isDraft()
* Support case insensitive matching in prefix/suffix operators
Support `caseinsensitive`/`caseinsensitive` suffixes in the following
filter operators:
* prefix
* suffix
* removeprefix
* removesuffix
The suffixes have the same behaviour as in the match operator.
Closes: #6407
* Do not filter titles if suffix/removesuffix operand is empty
Issue: #6407
* Rename v9 highlight.js plugin to highlight-legacy
* Add ES6 version of highlight.js plugin
* highlightblock.js
- ensure this ES6 plugin will not cause error on legacy browsers
- update the code to use new highlight.js APIs
- change class tagging to match more closely with highlight.js
- allow users to add language definitions as JS "highlight" modules
* styles.tid
- update to match v11
* howto.tid
- add instructions on how to add language definitions as JS modules
* highlight.min.js, default.min.css
- version 11.4.0 common languages only
* Remove extraneous whitespaces
* Update readme.tid
* Update bundled languages
bundled: common + apache + nginx + latex + dockerfile + fortran
* Update highlight-legacy subtiddlers' titles
* Touch up highlight-legacy docs
* Touch up highlight plugin docs
* Fix pre block styling
- add "hljs" class to <pre> so the element can be styled
* Failing test
* Fix underlying problem
* Less naive fix
Now we make sure we maintain the sort order of the titles array when adding a new tiddler
* Fix failing tests
* Refactor filter tests to repeat them with different store orderings
* Revert "Fix failing tests"
This reverts commit ee03ee57f5.
* Refine fix to retain stylesheet ordering
The order of tiddlers in the HTML file uses localeCompare(), and that determines the insertion order. So if we want to be compatible with older versions we have to use localeCompare() to order tiddlers, not a plain sort()
* Don't sort shadow tiddlers
Instead rely on the existing ordering
* Fix failing tests, take 2
I think that all of these changes are explained by the store no longer retaining insertion order, but now using localecompare ordering
* Fix tests from #6327
* Support direct style attributes on the element widget
* Fix tests
Not all parse tree nodes have an "orderedAttributes" member (eg. the error message generated at 5613bcc884/core/modules/widgets/transclude.js (L73-L75))
* Ensure ordering isn't insertion dependent if orderedAttributes is missing
* Add docs
* Delete $__core_ui_ViewTemplate_title.tid
fr-FR modifications to ViewTemplate/title can now be done through cascades mechanism.
* fr-FR New ViewTemplate title cascade
Replacement for old fr-FR ViewTemplate/title shadow tiddler
* fr-FR Better ViewTemplate title cascade
Updated according to @Jermolene review.
* [fr_FR] Add utility macro for translated links
* Update Saving.tid
* Add TiddlyFox Apocalypse translation
* Update TiddlyFox.tid
* Translate Community Links Aggregator.tid
* Update Forums.tid
* Update Developers.tid
* Update HelloThere.tid
* Update GettingStarted.tid
* Update Community.tid
* Update tw5.com edition macros from uplink
Some text in these macros must be translated.
* Various translation updates
* Clean utility fields I had left over
* Clean older files too
* feat: extend tm-open-window to support optional top and left position for new browser window
* fix: whitespace correction
* Update WidgetMessage_ tm-open-window.tid
This reverses an August 2015 change in 68e15c10641e2eda1e64cf29954786a07326a920; the original rationale was wrong: there is nothing related to the navigator widget in the implementation of the tm-rename-tiddler message
* Markdown: Let WikiText parsing handle the creation of LaTeX widgets.
When embedding LaTeX snippets in inline HTML nodes, such as TiddlyRemember
macros or HTML tables, the parsing of latex nodes breaks the WikiText by
splitting it into pieces around the latex node.
This commit fixes the issue by converting the Remarkable katex nodes back to
text, using a newline to indicate a block katex snippet. This is then re-parsed
by the WikiText KaTeX plugin.
TESTED:
Created a test wiki with:
```
$ node tiddlywiki.js test --init markdowndemo
$ node tiddlywiki.js test --listen
```
* Verified markdown + KaTeX support still works as expected.
* Verified that embedding LaTeX snippets in inline HTML works (e.g. `<a
href="https://example.com/">$x^2$</a>`).
* Verified the markdown + KaTeX support works as expected with renderWikiText
set to `false`.
* Style: Remove spaces between if and opening parentheses.
* feat: add support for animationDuration attribute of paramObject for tm-scroll message
* docs: added docs for animationDuration attribute of tm-scroll message
* fix: use .utils.hop instead of Object.hasOwnProperty()
* fix: do not check if object before calling utils.hop()
* fix: syntax
* Added macros for displaying wikitext examples in a table
* Added documentation for WikiText parsing
* Changed recognize to British spelling
* Add links to the new wikitext parser tiddlers
* Add discussion of dynamic links to 'Linking in WikiText'
* Added macro and styles for displaying a 'bad' example
* Use .bad-example macro in 'Linking in WikiText'
* Convert existing warnings to use .bad-example macro
* Link ViewWidget formats to similar filter operators
* Merge the ViewWidget columns and use the tip macro instead
* Reference the format filter operator in ViewWidget
* More accurate language in the ViewWidget docs
The problem was that v5.2.0 trimmed the whitespace from $:/core/templates/store.area.template.html which we'd previously been relying on during the import.
This change still allows v5.2.2 to import encrypted pre-v5.2.0 wikis
Fixes#6330
* fix: handle drag events ourselves in chrome when it adds pseudo file objects to the event
* fix: corrected typo in comment
* fix: coding style
* fix: formatting and remove comments
* Add NavigatorWidget example
* Moved NavigatorWidget example into the 'Creating SubStories' tiddler
* Fixed link: NavigationMechanism => HistoryMechanism
* Add a snippet to visualise faulty stylesheets
As discussed in https://github.com/Jermolene/TiddlyWiki5/issues/6176, a faulty stylesheet can propagate and break several other stylesheets. This can be tricky to debug in a wiki with a lot of custom stylesheets.
This wikitext snippet will display a list of the stylesheets created/modified by the user and will display a red cross next to the one causing a parsing error.
* Improve the css code and add a message
This commit add a short message that provide guidance on how to fix the CSS error(s).
* Added documentation tiddlers for reduce filter run prefix
* Make filter text box wider so long filters fit better
* removed some duplicate words
* Restored the :reduce filter run prefix tip
* Support macro params in filter run prefixes and support substitution for variables set by filter run prefixes
* feat: add support macro parameters and variable substitution for all filter run prefixes
* fix: rename options argument to opts for disambiguation
* feat: add support for macro params to cascade filterrun prefix
* fix: issues with drag and drop (false positives in detection for files being dropped) introduced by Chrome 96
* fix: call dragEventContainsType method more consistently.
* fix: call dragEventContainsType method more consistently.
* tw5.com : Fix typo in ActionListopsWidget.tid
* tw5.com : update modified field of ActionListopsWidget.tid
When editing a tiddler outside TW itself, this doesn't change automatically the modified field.
* tw5.com : Fix typo in contributing.tid
* tw5.com : update modified field of Contributing.tid
When editing a tiddler outside TW itself, this doesn't change automatically the modified field.
* tw5.com : Fix typo in list.tid
* tw5.com : update modified field of list.tid
When editing a tiddler outside TW itself, this doesn't change automatically the modified field.
* Initial Commit
* Set currentTiddler and ..currentTiddler for filter evaulation
* Precompile the filters for performance
* Add explicit test for empty result when no filter passes
* Use the cascade filter run prefix to choose the view template body template
* Use the cascade mechanism to choose between the edit and view templates
* Simplify cascade filter
Thanks @saqimtiaz
* Add control panel UI for inspecting the template cascades
* Refactor import listing and plugin listing as alternate body templates
As suggested by @pmario
* Refer to $:/core/ui/{View|Edit}Template via their associated config tiddlers
* Fix typo in previous commit
* Add demo of custom story tiddler template
* Tweak control panel wording
* Standardise "Story Tiddler Template" nomenclature
* Add a cascade for the editor template body
* Add a cascade for the view template title
* Avoid unwanted whitespace
* Add a cascade for dynamically choosing tiddler icons
* Correct tag names. Add missing tags
* Update _muritest_ by Simon Huber.tid
Auto PR didn't include this.
* Update _TiddlyServer_ by Matt Lauber.tid
Fixing tag
The first parameter of the operator examples macro is used for
constructing unique state tiddler titles. The cycle, log, and
match operators had duplicates, causing examples to share state
with each other.
* $let widget added and tested
* Documentation for $let, doc improvements for $vars
* let properly avoids refreshing when possible
* $let Changes as recommended by others
* Removed superfluous super method call
Also improved $let test
* Extends :map filter run prefix to provide the variables index, revIndex and length to bring it into line with :reduce
* update :maps examples
* docs: fix formatting issue with documentation
* feat: provide actionValue variable to actions fired by EditTextWidget
* also extend CodeMirror engine to set actionValue variable when invoking actions
* fix word used for the sidebar's "Open" tab header
"Otwórz" is a verb (to open), while "Otwarte" is an adjective (the ones which are open)
* fix "shadow tiddler" declension
* fix declension
* fix missing space
* fix declension
* fix invalid plugin version message to read better
Co-authored-by: Maurycy Zarzycki <maurycy@evidentlycube.com>
* Extend HTML tag parser to maintain an ordered array of attribute names
* Add some tests for repeated attributes
* Record entire attribute in orderedAttributes array so that we can work with duplicated attributes
* Add action-setmultiplefields and setmultiplevariables, and extend action-sendmessage
* Add getfield operator
* Remove getfield operator
See discussion at https://github.com/Jermolene/TiddlyWiki5/pull/6130#issuecomment-949911439
* Add docs
* Adjust whitespace
* Add support for assigning multiple indexes to action-setmultiplefields
* Added missing trigonometrics filter operators
This PR adds support to trigonometry operators, allowing to create spider graphs and other geometric shapes with filters.
* Adds the missing trigonometric filter operators
This PR adds support to the missing trigonometric filter operators (cos, sin, tan, acos, asin, atan, atan2), allowing to create spider graphs, [pie charts, donut charts, polar charts](https://ffoodd.github.io/chaarts/pie-charts.html) and other geometric shapes with filters, which was previously not possible without add-ons.
Example :
`[[2]cos[]] = -0.4161468365471424`
See also this radar chart made in wikitext by @saqimtiaz using the new trigonometric operators :
https://saqimtiaz.github.io/sq-tw/temp/radar-chart-demo.html
* Add documentation for the Trigonometric Operators
Accompanies code changes #6127
* Fix formatting of atan2 Operator.tid
Removed two empty lines at the end of the tiddler
* Add examples for the trigonometric operators
Accompanies code changes Jermolene#6127
* Fix version in the doc for trigonometric operators
This PR fix the content of the documentation tiddlers regarding trigonometric operators (#6131).
<<.from-version "5.1.20">> was changed to <<.from-version "5.1.21">>
* Fix formatting of atan2 Operator.tid
Removed two empty lines at the end of the tiddler
* Add missing parameter to atan2 operator
The atan2 operator needs two parameters (Binary Mathematics Operators), this PR adds the second one that was missing.
See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/atan2 for more technical info on the atan2 function.
* Make filter operator examples easily editable
* Add 'Reset' button to filter operator examples
* Only display the reset button when filter has changed
* Introduce '.doc-example input' class rather than re-use tc-advanced-search to make input wider
* Grab focus for the filter text box
* Fix firefox ctrl-z/undo issue by replacing list widget with filter transclusion
* Replace spaced indent with tabs to make it consistent with the other code
* Added missing trigonometrics filter operators
This PR adds support to trigonometry operators, allowing to create spider graphs and other geometric shapes with filters.
* Adds the missing trigonometric filter operators
This PR adds support to the missing trigonometric filter operators (cos, sin, tan, acos, asin, atan, atan2), allowing to create spider graphs, [pie charts, donut charts, polar charts](https://ffoodd.github.io/chaarts/pie-charts.html) and other geometric shapes with filters, which was previously not possible without add-ons.
Example :
`[[2]cos[]] = -0.4161468365471424`
See also this radar chart made in wikitext by @saqimtiaz using the new trigonometric operators :
https://saqimtiaz.github.io/sq-tw/temp/radar-chart-demo.html
* Add documentation for the Trigonometric Operators
Accompanies code changes #6127
* Fix formatting of atan2 Operator.tid
Removed two empty lines at the end of the tiddler
* Add examples for the trigonometric operators
Accompanies code changes Jermolene#6127
* Fix version in the doc for trigonometric operators
This PR fix the content of the documentation tiddlers regarding trigonometric operators (#6131).
<<.from-version "5.1.20">> was changed to <<.from-version "5.1.21">>
* Fix formatting of atan2 Operator.tid
Removed two empty lines at the end of the tiddler
* Added missing trigonometrics filter operators
This PR adds support to trigonometry operators, allowing to create spider graphs and other geometric shapes with filters.
* Adds the missing trigonometric filter operators
This PR adds support to the missing trigonometric filter operators (cos, sin, tan, acos, asin, atan, atan2), allowing to create spider graphs, [pie charts, donut charts, polar charts](https://ffoodd.github.io/chaarts/pie-charts.html) and other geometric shapes with filters, which was previously not possible without add-ons.
Example :
`[[2]cos[]] = -0.4161468365471424`
See also this radar chart made in wikitext by @saqimtiaz using the new trigonometric operators :
https://saqimtiaz.github.io/sq-tw/temp/radar-chart-demo.html
This version of the project is not maintained. I've noted this and added a link to Arlen Beiler's community reference. I suppose it could be deleted entirely, but might be useful for historical purposes?
* add Polish translation
* tweak Polish translations to make certain things moree readable
primarily changed translation of "story river" to keep using the English
phrase, but also some other phraes that were awkward when I used the
translation
* add polish flag icon
* add polish translation notes
* replace 'ukryte tiddlery' with 'tiddlery-cienie'
Co-authored-by: Maurycy Zarzycki <maurycy@evidentlycube.com>
The problem was that the innerwiki template included the tiddler $:/plugins/tiddlywiki/railroad, which was omitted from the wiki. Unexpectedly, missing tiddlers were rendered by the jsontiddler widget as an empty object {}. The fix is to always include the title when the tiddler is missing.
Also cleaned up the template to remove unneeded tiddlers
* Optimise wiki.sortTiddlers()
* Remove local changes to test-filters.js that have now been made on master
Makes the subsequent merge easier
* Fix bug with numeric sorts of textual values
* Make stamp-dropdown reorderable by list-tagged-draggable macro
* Add stamp-dropdown ItemTemplate tiddler
* Make stamp-entries editable by ctrl-click
* Update stamp-dropdown-item-template.tid
* Add `tc-editortoolbar-stamp-button` class to stamp button
* Make stamp-dropdown look like before
* Update base.tid
* Plugins tab in control panel display tabs using filter instead of hard coded list
* Update ControlPanelPlugins.tid
The two entries `[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]` were removed from list filed as per @Jermelon confirmation!
* Create SystemTag_ $__tags_ControlPanel_Plugins.tid
Update the SystemTags documentation tiddler
A first attempt to write up the consequences, including the impact on broken JS macros. The problem is that there's not really a simple fix that we can give.
The best I can think of is not good enough: a $:/config/ tiddler that globally controls whether the transclude widget uses the new selective refreshing.
This reverts commit 17b4f53ba2 according to Github Desktop.
git checkout that commit
revert commit in GitHub Desktop
git switch -c revert-sse
uncommit in Github Desktop
switch to master, bringing changes
resolve deletions with command line
* Add support for JSON-formatted tiddler store, and make it the default
The change to `getTiddlersAsJson()` is to allow experimentation
* Move JSON tiddlers into their own store area, and fix support for encrypted tiddlers
Also add a dummy old-style store area for backwards compatibility
The current arrangement is that JSON tiddlers will always override old-style tiddlers.
* Use the deserialiser mechanism to decode the content
* Refactor $:/core/modules/deserializers.js before we start extending it
Cleaning up the helper function names and ordering
* Drop support for the "systemArea" div
It was only used in really old v5.0.x
* Update deserializer to support JSON store format and add some tests
* Life UI restrictions on characters in fieldnames
* Add another test case
* Correct mis-merge
* Remove toLowerCase() methods applied to fieldnames
* Insert line breaks in output of getTiddlersAsJson (#5786)
Rather than have the entire store on one line, insert a line break
after each tiddler.
* Refactor #5786 for backwards compatibility
* Only read .tiddlywiki-tiddler-store blocks from script tags
Prompted by @simonbaird's comment here: https://github.com/Jermolene/TiddlyWiki5/pull/5708#discussion_r648833367
* Clean up escaping of unsafe script characters
It seems that escaping `<` is sufficient
* Add docs from @saqimtiaz
Thanks @saqimtiaz
* Docs tweaks
* Remove excess whitespace
Thanks @simonbaird
* Fix templates for lazy loading
* Remove obsolete item from release note
* Clean up whitespace
* Docs for the jsontiddler widget
* Fix whitespace
Fixes#5840
* Comments
* Fix newlines in JSON store area
* Remove obsolete docs change
Co-authored-by: Simon Baird <simon.baird@gmail.com>
* Fix problems with building single-file wiki using external-js template
* core/templates/external-js/tiddlywiki5-external-js.html.tid,
core/templates/external-js/save-all-external-js.tid,
core/templates/external-js/save-offline-external-js.tid
core/templates/external-js/load-external-js.tid:
Fix#5343. Exclude client-server plugins in tiddler imports and to
specify a working URL for loading tiddlywiki5.js from local disk.
Mirror save/all and save/offline templates in the regular server
edition.
Fix#4717 (tiddlywiki5-external-js.html.tid)
* core/modules/saver-handler.js:
Need the change to make single file autosave work with the external-js
template.
* editions/server-external-js/tiddlywiki.info:
Provide external-js related build targets.
* core/language/en-GB/Snippets/ExtJSReadme.tid:
Temporary doc to supplement TW5.com's external-js section. Demonstrate
that upgrade could be done on single-file wikis with an externalized
TW core.
* core/language/en-GB/Snippets/GetTiddlyWikiJS.tid:
Documentation. Meant to be included in every wiki and to help end
users acquire tiddlywiki5.js.
* Pre-configure save-wiki template for end-users
* Remove the newline character at the end of the file.
* Trim "template" value in saveWiki()
* Safeguard the code from extraneous whitespaces in transcluded result.
* Rename and add versioning to downloaded tiddlywiki core JS
* Rename "tiddlywiki5.js" to "twcore-VERSION.js"
* Preload $:/config/SaveWikiButton/Template tiddler with the required
external-js template value.
* Update external-js user documentation
* Add "download tiddlywiki core JS" menu item to the "cloud" button.
* Update build's target defintions associated with external-js template.
* Move the user doc to the tw5.com edition.
* Coding style update
* Undo template name changes
* Correct text & fill colors on some disabled buttons
* Add new "export tiddlywiki core" button under page control tools
This new button can export tiddlywiki's core JS from user's wiki as
long as the wiki is served with the regular "root" template. The
button will be ineffective, thus disabled, if the core has already been
externalized by the "external-js" template.
With this button, a full standalone html wiki can obtain the matching
core JS without TiddlyWiki on node.js. Once this is done, the html wiki
can be converted to using the "external-js" template.
* Alternate version of "save tiddlywiki core for offline use"
This version will fire up a "Save File" dialogue box when clicked,
instead of directing the user to a helper doc for further instruction.
It achieves this by using the "download" attribute of the <a> html tag.
It works on most modern desktop browsers, but older browsers (e.g. IE)
may display the file instead.
* Adjust font-weight to match other menu items
* Merge two user documentations into one
* Add user-browser-cache=yes to --listen command
* Update "export tiddlywiki core" button hint
* Simpler implementation for switching btw online/offline core URL
Shave off one template by using filtered transclusion to control
online/offline core URL.
* Update user doc
Update the user doc to clarify that build index step is not needed to
initialize a new wiki.
* Rename twcore to tiddlywikicore
* Reformat the user doc
* Rework export-tiddlywikicore button
Popup an error message instead of disabling the button when export
core cannot be performed.
* Revert "Correct text & fill colors on some disabled buttons"
This reverts commit e7dbb7e712.
* markdown: Don't emit paragraph tags when a paragraph is "tight".
Motivation: Since the upgrade to remarkable.js (#3876), lists are rendered as
HTML like this:
```
<ul>
<li><p>One</p></li>
<li><p>Two</p></li>
<li><p>Three</p></li>
</ul>
```
The paragraph nodes insert blocks that break the visual flow of the list and are
unexpected e.g. compared to WikiText markup's rendering of a bulleted list.
Solution: remarkable.js annotates certain paragraph nodes as "tight", and in the
bulleted list case, the paragraph nodes wrapping the text of each list item are
marked tight.
remarkable uses the tight property to [elide paragraph tags in its
renderer](58b6945f20/lib/rules.js (L136-L142)).
This change implements the equivalent logic in TiddlyWiki's markdown rendering:
If a paragraph is marked tight, then we elide the `<p>` tag wrapping its children.
* Use ES5 Array.concat instead of ES6 spread operator.
* Add optional KaTeX support to the tiddlywiki/markdown plugin.
Uses the remarkable-katex plugin 1.1.8 by Brad Howes to enable KaTeX support if
the tiddlywiki/katex plugin is installed. Fixes#2984.
TESTED:
Created a test wiki with:
```
$ node tiddlywiki.js test --init markdowndemo
$ node tiddlywiki.js test --listen
```
* Verified markdown support works without the tiddlywiki/katex plugin enabled.
* Verified markdown support works with the tiddlywiki/katex plugin enabled.
* Verified KaTeX (both inline and blocks) work as expected when the
tiddlywiki/katex plugin is enabled.
* Mention remarkable-katex plugin usage in the readme Tiddler.
* Include the remarkable-katex license as a tiddler.
* Include the Remarkable license.
* Include unminified original source of remarkable-katex 1.1.8.
* Exploratory pass at adding support for macro params in filter operands
* whitspace correction
* rename varInfo to varTree for disambiguation
* Refactored parseMacroInvocation to be re-usable, performance improvements for variables with no params and tests
* Revised regular expression and removed spurious white space changes
* Revised regular expression and removed spurious white space changes
* More whitespace cleanup and added more tests for edge cases
* Added test for macro params with square brackets
* html-comment, that can be used in the pragma area
* add commentpragma test
* fix typo
* fix typo and change comments ab bit
* combine html-comment and pragma-comment and add some docs, how to use it
* Make docs simpler by removing caching info
* change h2 wording
* Make classic storyview work in new windows, too
* Make pop storyview work in new windows, too
* Make zoomin storyview insert and remove animation work in new windows, too
* Transclude widget: only refresh when transcluded text reference has changed, includes tests
* Refactor wiki.parseTextReference so it is re-usable for getting the parser info
* Re-arrange methods in wiki.js to improve diff readability
* fr-FR help for the use-browser-cache param of the listen command
* fr-FR dialog heading for drag&drop image import in editor
* fr-FR translations for PutForbidden & PutUnauthorized errors
* fr-FR translations for TiddlySpot and TiddlyHost saver information
* Update to fr-FR translations for named filters in $:/AdvancedSearch tab
* fr-FR translation update for the render command help
* fr-FR update to ModuleTypes translations
* fr-FR help update for the sse-enabled param of the listen command
* fr-FR update to ControlPanel Basics information
* fr-FR translation improvements to TiddlerInfo captions and hints
* fr-FR translation for the Layout Switcher caption
* fr-FR translation updates for Layout-related information
* fr-FR translation for ConfirmAction
* fr-FR for the captions related to tag input clearing
* Make currentTiddler variable consistent in subfilters and filter run prefixes
* Updated filterun prefix and subfilter operators to use ..currentTiddler instead of outerCurrentTiddler
* Merge
* Clean up
* More clean up
* Ensure image import works when type is not set, clean up post import actions
* Removed spurious new line
* For non image files insert a tiddler link
* Added documentation for new settings and features
* Update releasenotes 5.1.24
This includes changes up to 06-05-2021
* Incorporated feedback into release notes 5.1.24
Incorporated feedback and moved the '[[ActionPopupWidget]] to create floating popups that must be manually cleared' under widget improvements.
* Add :sort filter run prefix, docs and tests. Also extended .utils.makeCompareFunction with a flag for caseSensitivity.
* Documentation updates
* Move case sensitivity handling entirely to utils method so it is reusable
* Make filter run prefixes extensible
* Make filter run prefixes extensible
* Support rich suffixes for filter runs
* merged conflicts
* Pass suffixes to filterrunprefix
* add dynamic toolbar buttons + HowTo
* remove some whitespace.
* move howto and improve shortcut logic
* move howto
* add whitespace so it can be removed in an other PR.
Mention TiddlyHost and link to some documentation on the
configuration options.
Also remove the TiddlySpot control panel and backups links since
they no longer work.
Notes:
* The last three fields are no use for TiddlySpot or TiddlyHost, but
it's possible that someone, somewhere is still using the old
store.php from Bidix's UploadPlugin, and would miss them if they
were removed.
I'd be happy to remove them in a future PR, if it's decided they
can be retired.
(If they were removed, I could delete the last row here:)
https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot
* It's still called "TiddlySpot Saver" which I think is fine for
now. TiddlyHost might use a different saving method in future
so keeping the existing name seems best.
I updated the English text only. Will need some help with the
translations.
Summary:
- Mention that TiddlySpot is deprecated and doesn't allow site
creation any more. Suggest using TiddlyHost instead.
- Remove obsolete intructions about creating TiddlySpot sites.
- Misc editing/rewording/tweaking of existing TiddlySpot info
for tidiness and clarity.
- Add new information about saving on TiddlyHost.
- Add logos because why not..
Note: I usually prefer the non-camel case versions of Tiddlyspot and
Tiddlyhost, but decided to go with the CamelCase WikiWords here to
fit in with the existing conventions.
* Extend dropzone widget with optional actions invoked after tm-import-tiddlers message has been sent. Allows triggering an alternative UX for the import
* Allow restricting a dropzone to specific mimeTypes via mimeTypes and mimeTypesPrefix attributes
* Use a mimeTypesFilter instead of the mimeTypes and mimeTypesPrefix attributes
* Updated refresh handling
* Syntax cleanup
* Replace references to mimeType with content type for consistency with existing documentation. Update documentation for DropZone widget
* double quotes are no longer escaped in html bodies
* changed tiddlyweb's html-div-tiddler; documentation
French version still needs a translation though
* Replace css-escape-polyfill.js with escapecss.js utility module
* Add $tw.utils.escapeCSS() method and invoke that function within the
escapecss operator.
* Add test cases for the "escapecss" filter operator
* Fix $tw.boot.doesTaskMatchPlatform() so it works as expected if
a module's export.platforms contains more than one values
* Add missed files to the last commit
* The "tip" macro isn't designed to be used in a table cell (it generates a blockquote)
* We avoid full stops at the end of table entries or list items
It seems to be incredibly hard to police consistency with documentation but I think it's very important
@pmario we avoid using the details element because it doesn't remember its state across refreshes. It's not something that we should encourage people to use if they don't understand the limitations.
I also simplified the radio widget example because putting all the options on one line with a vertical bar separator is not a common way to display radio buttons.
We can now pass arrays of rule classes to the parser constructor, overriding the rules that would normally be used by the parser.
This allows us to create custom variants of the wikitext parser with their own content type.
It could also provide a basis for a new Markdown parser based on our existing wikitext parser but with new rules.
The default behaviour is unchanged, but if you write "yes" to
$:/UploadWithUrlOnly then it will assume it's possible to upload
with a blank username and password, as long as the host is set.
The motivation is to support a upload plugin compatible upload
service that uses some method to authenticate other than the legacy
upload plugin user/password params.
Without this patch, the user would need to enter something random in
the user and password fields for TW to decide the upload plugin can
be used.
* wikirules now use better macrocall parser
Before, wikirules would use a deficient macrocall parser which couldn't
handle certain types of arguments. Now it uses the same one that the
widget parser uses. Less code!
* style changes and removing weird switch statement
That switch statement made more sense in an earlier iteration.
* comment improvements
* oops, wikirule macrocalls could do ONE thing better
* '=' wasn't allowed for widget macros, but why?
Now they're allowed for both widget macros and macrocall macros.
* Delete TW5-firebase: TiddlyWiki5 for Google Firebase by Peter Neumark.tid
Delete file with illegal character in filename
* replace file without illegal character
* fixed ext
If image lazy loading is used with node.js the favicon is blank. The
line `-[!is[system]is[image]]` excludes only non system images from
begin saved as full tiddlers. But the `[is[image]]` line includes system
images as skinny tiddlers. The created HTML file has all system image
tiddlers (as the favicon) listed twice. And the skinny tiddler seems to
win in this case and breaks the display of the favicon.
This patch fixes this issue by excluding system images from the skinny
tiddlers list.
* Create server-sent-events.js
* Create sse-change-listener.js
* Implement server sent events
* Convert to ES5 and wrap in function
* Use the host string from tiddlyweb
* Improve comments in sse-server.js
* Can't use object reference as key
* Add retry timeout
* Fix a bug
* bug fix
* Fix formatting
* Fix ES5 compat
* capitalize comments
* more fixes
* Refactor tiddlywek/sse-server.js
* Extract helper functions for handling wikis and connections.
* Replace JSDoc comments.
* Fix formatting according to TW core.
* Simplify the logic for adding and removing connections.
* Fix formatting of tiddlyweb/sse-client.js
Fix formatting according to TW core.
* Fix formatting of server-sent-events.js
Fix formatting and comments following TW core guidelines.
* Extract a debounce function in sse-client.js
* Avoid using startsWith in server-sent-events.js
startsWith is part of ES2015, while TiddlyWiki uses the 5.1 dialect.
* New sse-enabled WebServer parameter
* If not set to "yes", disabled SSE request handling.
* Add documentation for the parameter in core/language/en-GB/Help/listen.tid
* Add new tiddler editions/tw5.com/tiddlers/webserver/WebServer Parameter_ sse-enabled.tid
* Disable polling for changes if SSE is enabled
* Add sse_enabled to /status JSON response
* Store syncer polling status in $:/config/SyncDisablePolling
* Handled disabling polling in core/modules/syncer.js
* Simply boolean logic in syncer.js
* Delete trailing whitespaces in syncer.js
Co-authored-by: Arlen22 <arlenbee@gmail.com>
* Cleaned up jasmine test suite output
Also testing for expected log messages, instead of just letting them print
to the console every single time, constantly making you think there's some
warning you need to worry about, and making all those dots not line up nicely.
* switched single quotes to double in collectLogs
* Outlines of the mem efficient linked list
Need to stop for now. Found problem with $tw.utils.pushTop that I need
consultation for.
* Link list throws when given non-string vals
* Think I got rid of the last LinkList infinite loops
* LinkedList push better; fixed coding conventions
* Cleaning up LinkedList code and tests
* Ready to ship new mem efficient Linked List
* Switching to double quotes in LinkedList
* add EventListeners in the render() method instead of the constructor
* scrollable widget: add EventListeners in render() method instead of constructor +
... move logic from constructor to render()
* linkcatcher: add EventListeners in render() instead of constructor
* fieldmangler: add EventListeners in render() instead of constructor
* edit-bitmap: initialise editorOperations in render() instead of constructor
* list-widget: initialise storyviews in render() instead of constructor
* vars widget: execute Widget.call(this) in render() instead of constructor
... not shure what this should do
* Update fieldmangler.js
* Update edit-bitmap.js
* Update linkcatcher.js
* Update navigator.js
* Update scrollable.js
* Update list.js
* Update vars.js
* Update EventCatcherWidget.tid
Changed "JavaScript events" to "DOM-initiated Javascript events".
Removed the quotes from `"event"`.
Tightened up some of the language.
* Update EventCatcherWidget.tid
Edited/reworded as per discussion(s).
* Replaced the 'resources' tab with: Editions, Plugin, Themes, Palettes, Other resources.
* Added tiddlers that lists the new categories to be used in the Community tabs tiddler
* Added three themes for in the Community Themes section of the community page.
* Added three community made edtitions to the Community Editions tabs of the community page.
* Removed David Giffords Obahiah by his request.
* Added two palettes into the Community Palettes tab.
* Changed the link of 'PETTIL - Forth for the Commodore PET' to webarchive as discussed in pull request #5116
* removed four tiddlers because of dead links.
* Changed the dead link in Tiddlydrive add-on by Joshua Stubbs to link to the projects github instead.
* Fixed titltes in the community tabs macro.
* Sorted all entries into their new categories, updates tags accordingly and moved tid files into new folders according to their new category.
* final edit for sorting
The image was received with a transparent background, but I adjusted it to give it a white background to ensure it is readable with all colour schemes.
* Add a hook to allow modifying the the behaviour creating tiddler paths
This is needed for Bob to use the core to generate tiddler fileInfo
I don't know if this is the best way to make the hook, but it works for what I need
* update th-make-tiddler-path arguments
the value is the current path, the parameter passed in is the original unmodified path so it is available to subsequent hooks
* jasmine: specify 'after' only in Node
The commands module is never executed in browsers and the 'after'
constraint caused a regression where tests were never run in the
browser.
* jasmine: give the startup module a name like all others
Fixes#5246. Now the reduce operator and :reduce filter run prefix will
both return empty output when their input is empty, so that both can be
chained together with the else operator or :else prefix.
* Update docs for Set Widget
This updates the docs for Set Widget to add a tip regarding a common source of misunderstanding for users, i.e. using Filtered List Variable Assignment and being confused as to why the value of the variable is in double square brackets.
* Corrected typos
* made private methods limited to module scope
* moved private methods to file bottom
* changed tests to run comperable array functions in parallel
* added comments
Documents the change to macro parsing from #5205
This builds on documentation changes made in the tw.com branch and is therefore based on that branch, but should not be merged before 5.1.23 is live.
* Changed the filterrunprefixes to use LinkedList
* Testing for Linked List
* Finishing touches to LinkedList
* Minor corrections to link-list coding style
* Corrected for sneaky bug in linkedList
Default with no suffix is pre-5.1.23 behavior, escaping all Unicode
characters for maximum compatibility (avoids encoding issues). New
"rawunicode" suffix allows passing through Unicode characters U+0080
and up unchanged, for cases where you know your tools are handling
encoding correctly and you want less verbose escaping.
One tiddler had been renamed since the deprecation warning tiddler was
created, and there were also a couple of minor punctuation and/or
spelling errors.
* Tag trim operator as a string operator
With the new functionality of the trim operator in 5.1.23, it's now a
general-purpose string manipulation tool. So it should be given the
"String operators" tag so that people see it in the same list as
removeprefix and removesuffix, etc.
* Document suffix of trim operator
* Add actions to radio-widget, pass trhough all attributes and user parameters, fix label refresh
* invoke th-radio-hook instead of hardcoded variables
* simplify code and test it with a plugin hook
* remove hook
* Alternative switcher using a parameter via tm-show-switcher
* Add CSS class for centered modals
* Changed keyboardshortcut and removed transition CSS
* Resolved wording issues
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* Don't override browser selection colours by default
Reverts some of #4590
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* Update German Language
* some typos
Co-authored-by: jeremy@jermolene.com <jeremy@jermolene.com>
* Jeremy's original version of the event widget
* Renamed to eventcatcher, added modifier key support and mouse button support as variables
* Allow updating classname without re-rendering entire widget
* Handle tag attribute in refresh handler
* Improve handling for mouse button variable
* Fix typo in refresh handler
* Added variables for position of selected node and position of event relative to selected node and catcher node
* Jeremy's original version of the event widget
* Renamed to eventcatcher, added modifier key support and mouse button support as variables
* Reveal widget: update popup position when state tiddler updates
* First pass at a fix for system tiddler sync issues
* Add new filter syncFromServer
* Undo previous attempt at a fix
* Added a flag to control sync of system tiddlers from server
* Remove 2em of whitespace from EditTemplate when there are no visible fields
* Update base.tid
* Update fields.tid
* Update fields.tid
* Update base.tid
* Correct for new GitHub default branch
This PR corrects the default branch of GitHub from master to main. This is ne GitHub repository configuration from Oct 1st, 2020
* Update Saving to a Git service.tid
GitLab still uses `master` as default branch.
* Add Kookma plugins as resources
Some of Kookma resources including TW-Scripts, Commander, Trashbin, Todolist has been added.
* Revert "Add Kookma plugins as resources"
This reverts commit 199fce3a08.
* Adding Resources by Mohammad
This PR adds resources created by Mohammad mostly in GitHub
* Correct for new GitHub default branch
This PR corrects the default branch of GitHub from master to main. This is ne GitHub repository configuration from Oct 1st, 2020
* Update Saving to a Git service.tid
GitLab still uses `master` as default branch.
* Add Kookma plugins as resources
Some of Kookma resources including TW-Scripts, Commander, Trashbin, Todolist has been added.
* Revert "Add Kookma plugins as resources"
This reverts commit 199fce3a08.
The ButtonWidget documentation refers to a "state" attribute, but this
should probably be "set". The name "state" appears to be an artifact
from when the setTitle, setField, and setIndex attributes were added to
the widget; at one time they were called stateTitle and so on, and then
they were renamed to setTitle instead, but not every instance of "state"
was found and renamed to "set". This is one such instance, now fixed.
* Wrap modal in a navigator widget to allow tm-navigate to work
* Move all story list handling to Modal
* Make sure any values for story list or history list sent as variables have precedence
* Code clean up
* Make tag-picker work with every field
* Make EditTemplate/tags work with every field
* Make NewTiddlerTags and NewJournalTags selectable through tag-picker
* Update tag-picker Macro Docs
* fr-FR translations for Shortcut hints
* fr-FR translations related to renaming tiddlers during Import
* Correction of NewJournal Tags default config in fr-FR
* fr-FR update for the rendertiddlers command
* fr-FR translations for new Filter errors
* fr-FR update for the savetiddlers command
* fr-FR update for the savetiddler command
* fr-FR update for the rendertiddler command
Co-authored-by: Xavier Cazin <xavier.cazin@gmail.com>
* Extend toggle operator to support optional second operand to toggle a value pair
* Added tests for extended toggle filter
* Updated docs for toggle operator
Embarrassingly, the double blank lines at the end of the tiddler are needed to ensure the transclude widget is recognised in block mode, instead of being wrapped in a paragraph tag.
Fixes#5016
* Add support for switching page templates
* Revert "Add support for switching page templates"
This reverts commit dbf7682d47.
* Adopt Jeremy's approach to page template switching instead
* Fix default value of recursion marker
* Fixed issue with conditional check
* Firt pass at adding multiple operands to filter operators
* Optimized parsing of multiple operands and added more tests. Need more flexibility for interpreting multiple operands as variables/text references
* Add support for parsing text references and variables in multiple operands
* Added string-replace filter for testing multiple filter operands
* Added more tests for variables and text references in operands
* Removed string-replace operator and some whitespace corrections
* Removed string-replace operator and some whitespace corrections
* Added test with comma in operand
* Add editor-height button also to application/javascript ...
... application/json and application/x-tiddler-dictionary
* Add stamp button also to application/javascript ...
... application/json and application/x-tiddler-dictionary
* Make tag for menubar-contents dropdown configurable
* Make tag for menubar-contents dropdown configurable
* Make tag for menubar-contents dropdown configurable
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* Don't override browser selection colours by default
Reverts some of #4590
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* list-widget, init new Parser() only if needed.
* fix braces
Co-authored-by: jeremy@jermolene.com <jeremy@jermolene.com>
The bug fixed in this commit had an interesting side effect when the
location hash started with #, e.g. it looked like wiki.html##foo.
In that case, TiddlyWiki's navigation processing is not triggered and
the browser's navigation processing is used instead, which allows
anchors to be used within tiddlers for sub-tiddler navigation. To
preserve this unintended but useful side-effect, we check for a location
hash that starts with # and ignore it if it does.
* Update chinese language files
* add `Error/FilterRunPrefix` in Misc.multids
* add `Shortcuts/Input/AdvancedSearch/Hint` in Misc.multids
* Add chinese translations for Listing/Rename/*
* Make AdvancedSearch/Shadows navigatable by keyboard
* Make AdvancedSearch/System navigatable by keyboard
* Make AdvancedSearch/Standard navigatable by keyboard
* Update search.tid
* First pass at refactoring filter code to support named filter run prefixes
* Remove filter prefix for now
* renamed module type and filter run prefixes
* Moved inline handling for no filter run prefix to 'or' filter run prefix.
* Added error handling for undefined filter run prefixes
* Add eslint plus very tolerant starting config
Addresses GH #1865
This adds eslint as a developer dependency, plus a generated eslint
config that doesn't take a very strong stance on much of anything. The
goal here to get started using automated style checking, add eslint
checking to the testing flow, and gradually introduce stricter checks
over time.
* eslint: Fix ecmaVersion
See
https://github.com/Jermolene/TiddlyWiki5/pull/4421#issuecomment-587002325,
where @Jermolene declared TiddlyWiki targets EcmaScript 5
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* don't show the span if no icons are active.
* title lineheight 1.3 needed for eg: gggggg
* Rename variables to better convey what they're about
* Refactor comments so that they make more sense
* In Node.js, call the wrapper's execute function
The function sets up callbacks necessary for
exiting the process with the appropriate exit code.
https://github.com/jasmine/jasmine-npm/blob/v3.4.0/lib/jasmine.js#L235
* No need to configure the default reporter manually
The .execute() function does it
* Add note on which path comes from which npm package
* Note that other properties of the process object are referenced too
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* Improve the plugin description field to make the dataflow more obvious
* Add suffix and parameter to trim operator
Fixes#4809
* Unit tests for new trim operator parameters
* Mention trim operator in 5.1.23 release notes
* Address review comments
* Move regex escaping into utils.js trim functions
This way the trimPrefix and trimSuffix functions from utils.js are safe
to call without regex-escaping their parameters, which should make them
easier to use from other parts of the Javascript code.
* Fix 'if' condition syntax in Actions workflow
Strings in expressions need to be in single quotes:
https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#literals
* Delete .travis.yml
We moved to GitHub Actions
* Inline git-related environment variables
* Inline the build number variable
* Rename TRAVIS_BRANCH to TW5_BUILD_BRANCH
Since we don't use Travis anymore
* Update developer documentation regardgin which CI service is used
* Document the decision about setting env vars in the workflow file
This is my first contribution to Tiddlywiki , which contains an Arabic translation of 603 strings out of the porposed 941 strings in the translator edition.
I'll be working soon to finish the translator's edition strings, and I'll create a proper cascading for the arabic tiddlers.
* Parameterize strings that mention Travis
This is so that the script can be shared with
GitHub Actions while we make the transition.
* Add GitHub Actions workflow
More or less a direct translation of .travis.yml
* Rename scripts that mention travis
* Fix typo
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* fix issue #4750 add plugin-priority of 10 to tiddlyweb plugin.
* Initialize draft tiddler with empty text
Otherwise, when the tiddler has a meta file,
$tw.utils.saveTiddlerToFile will call fs.writeFile with the content
to write as `undefined`. Depending on the version of Node, this
results in the string "undefined" getting saved or a TypeError.
* Remove what seems to be a leftover debug log
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* fix#4800 - remove network communication to product hunt
Most astral-plane text is emojis like U+1F4DA BOOKS (📚), but some
languages like Osage have their alphabet entirely in the supplementary
multilingual plane as well. For proper support of languages like Osage,
and newer emojis, the UTF-8 decode and encode functions need to properly
handle codepoints above U+FFFF, which are represented by a surrogate
pair in Javascript strings.
* Fixed Overflow svg fill
When hovered, the svg should be the same colour as the text it comes alongside. This fixes that.
* Fixed the Solarized Palettes as per spec
- Added the Solarized Dark palette
- Remade the Solarized Light palette with the right contrast ratios as per Solarized Spec.
* Sidebar Selected Tab UI Change
Changed the selected tab border and foreground from pink to white(base01) because the pink was too distracting and not very readable.
* Fixed Hover css for plugin info listing
The css was not working so I fixed it.
* Fixed the UI for plugin info tiddler (among others)
* Update NewJournalTags.tid for zh* languages
* Add chinese shortcut descriptions to Misc.multids
* Add chinese translations for `Saving/TiddlySpot/ControlPanel`
From RFC 2616 - "Hypertext Transfer Protocol -- HTTP/1.1", Section 4.2, "Message Headers":
Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive.
Block the raw widget unless consent has been granted. This is helpful because the tw2parser generates <$raw> widgets for content embedded with <html>, and thus this blocks YouTube embeds.
* switch boolean logic in new parameters
Use renameinTags and renameInLists instead of dontRenameInTags and dontRenameInLists respectively. This avoids users having to think through double negatives, as well as corresponds better to the setting in $:/config/RelinkOnRename
* Updated docs for revised parameters for tm-new-tiddler
* Styles and templates for visual changes to Saving methods listing
* Color coding saver methods according to delivery
* Changes to tags and few tiddlers
- The tag InternetExplorer has been changed to [[Internet Explorer]]
- A tag for Edge is added
- Reclassified TiddlyServer as DIY instead of App
The existing criteriion for classification is unclear. Here is my reasoning for the change. An app is something user can simply install and run. Like TiddlyDesktop or Tiddloid. A DIY is something user has to install additional runtimes for. Thus Nodejs is a DIY. In the same vein, TiddlyServer is a DIY
* Adding Twexe
* Reversing accidental changes to StoryList
* Restyling Download button and Card Size
* Removing "Read more" links
Entire card is now clickable
To give visual clues regarding the clickability of card, title will change color to blue on card hover
* Removing margins from elements under link and adding padding instead.
Why this change? Margins are not "clickable". Having margins under <a> tag means there are minute dead areas where the mouse pointer will change shape, is not clickable and degrade user experience. Paddings are "clickable"
* Add fieldmangler to Manager Tags-Sidebar
This makes the tm-add-tag messages in the tag-picker work
* Add actions parameter back to tag-picker macro
* Add div so that tag-dropdown shows below input field
* Add missing tc-btn-dropdown class to dropdown button ...
... for consistency with dropdown buttons in EditTemplate
* Update tag-picker.tid
* Corrected issue with markdowns softbreaks
It wasn't respecting the $:/config/markdown/breaks setting.
It was effectively always "true".
Also, no more errors when encountering hardbreaks.
* Corrected introduced md bug
Made it so after each md type, accumulated text may be flushed.
* Changed convertNodes to use switch statement
It's faster, less text, easier to read, and now debuggers don't play
duck-duck-goose with every if-else block.
* whitespace text is no longer forgotten
* Fixed issue with text after md pattern and \n
* Add pathPrefix to state, and options to request handler
* use ternary operator instead of default empty object
* Fix styling issues
* Update server.js
* Add boot to server and filesystem adapter
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* fix high CPU load
* The `!has[tags]` filter didn't work because "tags" is an array
The negated `has` filter only considered empty strings, but not empty
arrays (such as the `tags` field).
* Add tests for `has` filter operator with array-like fields (tags, list)
Even though we passed the `class` attribute, it did not take it into
account. For example try to render this:
<$droppable class="custom-css-class">
... content ...
</$droppable>
Before applying this patch:
<span class=" tc-droppable">
... content ...
</span>
After applying:
<span class="custom-css-class tc-droppable">
... content ...
</span>
To avoid users being mislead when trying to subscribe by email to one of the
Google Groups, put only the relevant mailto link in each forum section.
Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
* Corecting URL of LuckySushi shop
* Android-Instructions remained for Andtidwiki
* Updating description and feature set of Timimi
Updating URL of Widdly
Resolving minor camelcase issues in TiddlySpot
* Detailed instructions about termux and adding it to save methods
* Correcting the words "open source" and "Unix"
* Changing link protocols of verified domains to https
This commit fixes the the comment in the route
`recipes/default/tiddlers.json` which was inconsistent with the actually
used regex. Furthermore, the 403 response was adjusted to also agree
with the the new comment and the regex.
Co-authored-by: tobidot <post@tobidot.net>
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* add $template and $overwrite parameter
* documentation for new parameters + 4 new examples
* remove unwanted files
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* extend fields-widget with include/exclude/sort/reverse and fields-filter with include and exclude params plus DOCS
* remove new-line
* remove eslint settings
* restore old eslint settings
* remove typo
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* fix 4532. Links should not add unwanted whitespace, since this causes problems with CSS styling
* remove whitespace from tiddler title and add a little bit of margin-right to the tiddler icon.
* use default parameters for link handling, which results in less code
* introduce tc-viewswitcher class to be able to style icon distance to text
This makes makelibrary.js use environment variables to find paths for plugins, themes and languages instead of just using the paths hardcoded in boot.js
* Add chinese translations for AddPlugins things
* "updates" tab
* prompt for plugins that have subplugins
* Improve chinese wording
* Update chinese translations for AddPlugins
* add Plugins/Downgrade/Caption
* add Plugins/Update/Caption
* update Plugins/Updates/UpdateAll/Caption
* fr-FR translation for strings relative to plugin updates
* Missing fr-FR translation for a string in ControlPanel
* Missing fr-FR translation for Copy to Clipboard caption & hint
* Missing fr-FR translations for the Edit Template
* fr-FR translations for updates/upgrades in plugin chooser
* Enable the internals plugin by default in docs
1. Why hide such a useful thing from the users?
2. When playing around with code examples from the docs they may want to know how the resulting html looks.
* Improve doc
* Typo
Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
* use dependents in codemirror-autocomplete
* add dependents to codemirror-mode-htmlmixed
* add dependents to sublime keymap
* add dependents to vim keymap
* add dependents to htmlmixed mode
* add dependents to htmlembedded mode
* add dependents to markdown mode
* fix typo in markdown-mode
* fix typo in codemirror-mode-htmlembedded
* fix typo in codemirror-keymap-sublime
* fix typo in codemirror-keymap-vim
* fix typo in codemirror-mode-htmlembedded
* fix typo in codemirror-mode-markdown
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* it shouldn't be there
* fremove this file from my PRs
* update German translations
* Adds a name to the core plugin
* Make plugin listings consistently show "name: description"
* Make plugin listings consistently sort by title (thus grouping publishers)
* Add a missing plugin name
See discussion here: https://github.com/Jermolene/TiddlyWiki5/pull/4508#issuecomment-609671970
* fr-FR translated strings for the Gitea saver
* fr-FR translation for the _is_skinny description
* fr-FR translation for the Network Error alert
* fr-FR translation for Menu Bar colors
* fr-FR translation for the hint of the add button in EditTemplate
* fr-FR translation for the default focus field hint
* fr-FR translation for throttle.refresh field description
* fr-FR translation for Icon: None in TagManager
* fr-FR translation for Plugins "Also requires:"
* Add NewJournalTags.tid in fr-FR directory
* fr-FR translations for plugin related strings
* fr-FR translation for Sidebar visibility toggle hint
* fr-FR translation for the sidebar search hint
* fr-FR translation for two Palette Editor hints
As detailed in #4519 the range widget currently does not save its value to the state tiddler on IE 10/11 as they do not support the input event, but rather the change event is fired instead of the input event. This has patch has been tested in IE11 and should work in IE10 as well.
Note that on Chrome and Firefox, the change event will fire only once after the user stops dragging the range slider (In addition the input event). However this does lead to an extra refresh as the handleInputEvent method already checks to see if the current value of the slider is different from the saved value before saving to the store.
Update documentation for modals to include the custom class introduced in #4485, as well as the footer and subtitle fields that don't appear to be documented.
* First commit
* Add throttling of saves
Now we refuse to save a tiddler more often than once per second.
* Wait for a timeout before trying again after an error
* Modest optimisations of isDirty() method
* Synchronise system tiddlers and deletions from the server
Fixes two long-standing issues:
* Changes to system tiddlers are not synchronised from the server to the browser
* Deletions of tiddlers on the server are not propagated to browser clients
* Make sure we update the dirty status even if there isn't a task to perform
* Replace save-wiki button with popup sync menu
* Remove the "Server" control panel tab
We don't need it with the enhanced sync dropdown
* Add indentation to the save-wiki button
* Fix spacing in dropdown menu items
* Switch between cloud icons according to dirty status
* Add a menu item to copy syncer logs to the clipboard
* Improve animated icon
* Remove indentation from save-wiki button
@pmario the annoying thing is that using `\trim whitespace` trims significant whitespace too, so it means we have to use <$text text=" "/> when we need a space that won't be trimmed. For the moment, I've removed the indentation but will keep thinking about it.
* Further icon, UI and copy text tweaks
Move the icons and styles from the core into the TiddlyWeb plugin
* Clean up PR diff
* Tweak animation durations
* Break the actions from the syncer dropdown into separate tiddlers
@pmario I think this makes things a bit easier to follow
* Refactor syncadaptor creation and logging
The goal is for the syncadaptor to be able to log to the same logger as the syncer, so that the "copy syncer logs to clipboard" data is more useful.
* Don't transition the dirty indicator container colour, just the SVG's colour
* Only trigger a sync for changes to tiddlers we're interested in
Otherwise it is triggered by the creation of the alert tiddlers used to display errors.
* Restore deleting local tiddlers removed from the server
(I had commented it out for some testing and accidentally commited it).
* Guard against missing adaptor info
* We still need to trigger a timeout when there was no task to process
* Avoid repeatedly polling for changes
Instead we only trigger a timeout call at if there is a pending task (ie a tiddler that has changed but isn't yet old enough to save).
* Lazy loading: include skinny versions of lazily loaded tiddlers in the index.html
* Introduce _is_skinny field for indicating that a tiddler is subject to lazy loading
* Remove savetrail plugin from prerelease
It doesn't yet work with the new syncer
* Make the savetrail plugin work again
* Clear outstanding alerts when synchronisation is restored
* Logger: only remove alerts from the same component
Missed off 9f5c0de07
* Make the saving throttle interval configurable (#4385)
After switching Bob to use the core syncer the throttle interval makes saving feel very sluggish compared to the message queue setup that I had before.
The editing lock that I use to prevent conflicts with multiple users doesn't go away until the save is completed, and with the 1 second delay it means that if you edit a tiddler and save it than you have to wait one second before you can edit it again.
* Tweaks to appearance of alerts
* Exclude temp tiddlers from offline snapshots
Otherwise alerts will persist
* Tweak appearance of status line in dropdown
* Update release note
* Web server: Don't include full path in error messages
Fixes#3724
* In change event handler check for deletions
* Disable the official plugin library when the tiddlyweb plugin is loaded
* Hide error details from browser for /files/ route
See https://github.com/Jermolene/TiddlyWiki5/issues/3724#issuecomment-565702492 -- thanks @pmario
* Revert all the changes to the relationship between the syncer and the syncadaptor
Previously we had some major rearrangements to make it possible for the syncadaptor to route it's logging to the logger used by the syncer. The motivation is so that the "copy logs to clipboard" button is more useful.
On reflection, changing the interface this drastically is undesirable from a backwards compatibility perspective, so I'm going to investigate other ways to achieve the logger sharing
* Make the tiddlyweb adaptor use the syncer's logger
So that both are availavble when copying the syncer logs to the clipboard
* Update release note
* Support setting port=0 to get an OS assigned port
Quite useful
* Update code comment
* UI: Use "Get latest changes from server" instead of "Refresh"
* Add getUpdatedTiddlers() method to syncadaptor API
See https://github.com/Jermolene/TiddlyWiki5/pull/4373#issuecomment-573579495
* Refactor revision handling within the syncer
Thanks @pmario
* Fix typo in tiddlywebadaptor
* Improve presentation of errors
See https://github.com/Jermolene/TiddlyWiki5/pull/4373#issuecomment-573695267
* Add docs for getTiddlerRevision()
* Remove unused error animation
* Update comment for GET /recipes/default/tiddlers/tiddlers.json
* Optimise SVG cloud image
* Add optional list of allowed filters for get all tiddlers route
An attempt to address @Arlen22's concern here:
https://github.com/Jermolene/TiddlyWiki5/pull/4373#pullrequestreview-342146190
* Fix network error alert text translatability
* Fix error code and logging for GET /recipes/default/tiddlers/tiddlers.json
Thanks @Arlen22
* Flip GET /recipes/default/tiddlers/tiddlers.json allowed filter handling to be secure by default
* Validate updates received from getUpdatedTiddlers()
* Add syncer method to force loading of a tiddler from the server
* Remove the release note update to remove the merge conflict
* Fix crash when there's no config section in the tiddlywiki.info file
* Use config tiddler title to check filter query (merge into fix-syncer) (#4478)
* Use config tiddler title to check filter query
* Create config-tiddlers-filter.tid
* Add config switch to enable all filters on GET /recipes/default/tiddlers/tiddlers.json
And update docs
* Fix bug when deleting a tiddler with a shadow
Reported by @kookma at https://github.com/Jermolene/TiddlyWiki5/pull/4373#issuecomment-604027528
Co-authored-by: jed <inmysocks@fastmail.com>
Co-authored-by: Arlen22 <arlenbee@gmail.com>
* Add tests for backlinks
* Add backlinks indexer
* Use backlinks indexer in getTiddlerBacklinks if available
* Extract link extraction into its own method
This way we can provide an arbitrary parse tree, rather than just a
title, which will allow us to compare lists of outgoing links between
versions of a single tiddler
* Use new extractLinks method in backlinks indexer
...rather than copy-pasting the implementation
* Remove ES6-isms
TiddlyWiki needs to work with browsers that only support ES5
* Fixes issue with #4504 and importvariable copying
ImportVariables widget was using $tw.utils.extend to copy the
variables from temporary set widgets into itself. However,
$tw.utils.extend does NOT behave like Object.assign. It not only
copies all self-owned variables over, but also all variables
in that object's prototype chain. This led to some redundant copying,
and a problem where some variables might show up more than once
(like transclusion).
Fixed now. importvariables widget does its own copying, since it
can't rely on $tw.utils.extend to do the right job, and it can't
count on Object.assign to be there.
* Added test to prevent reversion of #4504
* Slight corrections to new importvariables test
* Add support for a custom class to modal wrapper
As per https://github.com/Jermolene/TiddlyWiki5/issues/4485 add support for a custom class to modal wrapper, by means of a field in the modal tiddler. The class is added to the modal wrapper in addition to the default class, allowing for custom styling via css of any part of the modal.
* Remove redundant check for tiddler.
* Add "Gruvbox Dark" color palette
this adds the "gruvbox dark" color palette (https://github.com/morhetz/gruvbox) which is also available for highlight.js and codemirror
* add "credits" field
* change "credits" field to "license" field
* Update chinese translations
* Imporve chinese translations for UI of basic tab in controlpanel
* Add chinese translations for description of throttle.refresh field
* Add chinese translations for the `none` option of icon dropdown in tag manager
* add a new-line before the log text to increase readability of the test output
* make eslint, jslint happy
* make eslint happy
* add more listops tests
* new listops filter tests
* remove new-line
* make eslint happier.
* revert eslint settings
In some environments (at least on my own machine), TiddlyWiki detects zip files as type `"application/x-zip-compressed"` instead of `"application/zip"`. This commit adds support for zip files with type `"application/x-zip-compressed"` so that they are encoded in `"base64"` like other zip files with type `"application/zip"`.
* add class tc-edit-texteditor to type field, trim ...
... whitespace, make look consistent
* define width 20% for type input field
* add second nbsp; for consistency with type input
* Changed importVariable to store its ownvariables
Before, importVariables was creating a setWidget for every single variable it would find in its tiddlers, and it would create a long-ass call tree. Now, instead, it just accumulates the variables in itself.
* Can't use Object.assign
Learned the hardway while working on tw5-relink that Object.assign
doesn't exist in IE11. Using $tw.utils.extend instead.
* Retaining setWidget transclusion flexibility
* One more test to verify mixing sets and macros
add 3 new tiddlers, add 1 "enlist" test, fix all tests that failed, because 3 new tiddlers where added. stopped ESLint to complain about global vars, fix some mixed-tab-space indent typos.
This change means that the colour for the date on the new journal button icon will change according to the current colour palette, and simplifies things for #4379
* process.exit() only exist in a node.js environment
* updateInterval has been removed from upstream
From upstream commit:
b6eb9a4d5e
* Update Jasmine to 3.4.0
* Reuse the evalInContext helper
* Fix expected parse result to match the actual result
* 'describe' cannot be nested inside 'it' blocks
Jasmine started to explicitly raise an error in these cases since:
https://github.com/jasmine/jasmine/pull/1411
* Be consistent about how to refer to library files
* Update link to Jasmine's official website
* remove   from tag pill in edit mode
PR: fix missing space between edittemplate tags #3585 introduced an unbreakable space ...
The ` ` isn't needed and **causes problems**, if users copy&paste the tag text, because the "new" tag in the text input field now contains an space in front of the tag. This space invalidates the tag, so it doesn't function anymore.
see [comment in GG](https://groups.google.com/d/msg/tiddlywiki/RQEyqPQIZSM/uaU7lgJJAAAJ) .. I also had a problem like this some time ago, which costed me several hours of debugging.
* Update base.tid
* Update tag.tid
... because there is another macrocall inside.
This was introduced by the commit 'Fix sizes of SVG icons in documentation' (SHA: 9395d75671) where this probably slipped through in a regular expression replacement session.
I searched through the codebase and the other replacements of this type are ok.
Previously we'd tried to fix it with word-break: break-word, but that broke other things (see 81f1e6af4e). This overflow: auto approach appears to be best practice.
#4093 and #4100 are bundled in this PR
* qualified state-tiddlers for the tags input and fieldname + fieldvalue inputs
* newTagName, newFieldNameTiddler and newFieldValueTiddler variables defined in EditTemplate (all qualified through `qualify` macro)
* save-tiddler-actions macro in the EditTemplate (reused by the save-tiddler button)
* enter (configurable) in the fieldvalue field adds the field and sets focus to the next fieldname input
Edit:
* storyview="pop" for fields list
* Add chinese translations for default new-tiddler and new-journal tags mechanism
* Add chinese translations for tooltips of add-tag button and add-field button
* make tag-picker add-button compliant with enter-actions
... the `$actions$` way throws a filter syntax error in some cases, the `<<add-tag-actions>>` way is more solid
* Update tags.tid
remove tag-picker-actions
Previously, it was not possible to deselect entries by editing the tiddler $:/generated-list-demo-state used in the final example of the SelectWidget docs
* add whitespace trim to advanced search button
* add whitespace trim to new tiddler
* add whitespace trim to new journal
* add whitespace trim to new image
* add whitespace trim to control panel button
* add whitespace trim to tiddler manager button
* add whitespace trim to language button
* add whitespace trim to palette button
* add whitespace trim to theme button
* add whitespace trim to storyview button
* add whitespace trim to timestamp button
* add whitespace trim to encryption button
* add whitespace trim to tag-manager button
"Sub-plugins" are displayed within the dropdown of their parent plugin.
This is a more elaborate version of #4109. It doesn't address dependent plugins (yet), this is just about grouping addon plugins under their parent.
* First pass at dynamic loading/unloading
* Show warning for changes to plugins containing JS modules
* Use $:/config/RegisterPluginType/* for configuring whether a plugin type is automatically registered
Where "registered" means "the constituent shadows are loaded".
* Fix the info plugin
The previous mechanism re-read all plugin info during startup
* Don't prettify JSON in the plugin library
* Indicate in plugin library whether a plugin requires reloading
* Display the highlighted plugin name in the plugin chooser
And if there's no name field fall back to the part of the title after the final slash.
This fixes the HTTP request sent to gitlab that is meant to see if the
target file already exists. It did not follow the official gitlab v4 api
documentation. That documentation dictates both `path` and `branch` to
be passed via corresponding GET parameters.
I (Flibbles) changed it so that lists generated by stringifyList
would always be compatible with a filter parser, but since lists
are not, and never will be, a subset of filters, there isn't a
point.
More importantly, wrapping negative numbers like "-7" in brackets
would mess up some math stuff.
5d36b484c6 swapped the "emptyValue" and "value" that determine the
HTML-class for toc items, but did not change the default values for
"itemClassFilter" in "toc" and "toc-expandable" to reflect this.
This fixes a bug in #3634, and refines the logic so that the warning is only given if the incoming tiddler exists as a shadow tiddler. (In my case I have several draft core modules inactive in my notes wiki and they were erroneously suppressed from the upgrade).
* Pass pathFilters as an array
Otherwise, when we try to iterate over pathFilters in the filesystem
utils module, we end up iterating over each character in the filter
string, which ends up generating 'Filter error_ Missing [ in filter
expression.tid' as the tiddler's filename
Fixes GH #4173
* Allow for multiple path filters to be specified
...via $:/config/FileSystemPaths, split by newlines
* add "delayed" option to tm-focus-selector message
this delays the focussing for the time of the animation duration if delayed="yes" or delayed="true"
this is useful when navigating the story river up and down with keyboard shortcuts and the shortcuts focus the title input if a navigated tiddler is in edit mode -> navigation doesn't jump but stays smooth
* Update rootwidget.js
* Update WidgetMessage_ tm-focus-selector.tid
* add preventScroll="true" tip
* fix tags not animating in viewtemplate
this PR uses the addprefix removesuffix filters, not a new filter as proposed in #3763
* use new `then` operator
* Transform GitHub saver to work with GitLab as well
You can choose which provider you want to use, the data is given in the
same place.
I tried to avoid code duplication, so service providers' unique
properties are in separate files, the settings of the selected provider
are loaded.
In two fields I am not sure that it fits into the current structure:
* module-type: gitservice
Which module is a `gitservice` type, it will be listed in the
drop-down menu.
* default-api-url: https://gitlab.com/api/v4
The default URL to access the provider's API.
This is just a sketch, not a final version, suggestions for modification
are welcome!
* Rename saver from GitHub to GitService, update docs
* Split GitHub and GitLab to separate savers, apply common lingo
Sadly, it doesn't seem to make much sense to search for common parts in
the code, because there might be a Git service that is very different
from the GitHub API (such as BitBucket). Therefore, I feel that Git
savers are not able to share other than the translations.
I deleted the defaults values from the translations and set it to the
text entry because they should not depend on the translations.
* Add more information about the password field
It is not clear how to create a personal access token, thus added a link
to the help pages. In addition, GitLab only accepts personal access
token, GitHub also accepts the password, so I made this clear.
* Extract commit message to lingo
* Fix indentation
* Use improved base64 encoder
Fix conflict with a06acc4eb8
Fixes#4082
This version removes selective updating of the tag index, instead completely clearing the index on each update. I'm investigating restoring that optimisation.
* Remove the th-renaming-tiddler hook from navigatior.js
The hook is invoked in the renameTiddler function which would cause the same hook to be called twice, and the version in the navigator widget didn't have the correct inputs and return value according to the documentation.
* Make it so that the th-renaming-tiddler hook isn't called twice
by removing it from the navigator.js file
The test rig previously used a simplified implementation of shadow tiddlers which broke with the new indexing engine. There was also a problem that made that even if indexers were disabled they were still initialised.
This PR fixes both problems, in preparation for fixing #4082
See discussion at https://groups.google.com/d/msgid/tiddlywiki/526754d5-8786-49cd-aaa1-c77311670116%40googlegroups.com:
The history here is that in v5.1.14 we added an "actions" attribute to the checkbox widget that specified an action string to be specified whenever the state of the checkbox changed. The same action string is executed regardless of whether the checkbox was checked or unchecked.
Then in v5.1.16 we merged https://github.com/Jermolene/TiddlyWiki5/pull/3182 which added the "uncheckactions" attribute. The difference between the two is that the uncheckactions are only executed if the checkbox is unchecked. The main "actions" attribute is executed before any actions in "uncheckactions", which makes it possible to arrange things so that the "actions" attribute sets things to the checked state while the "uncheckactions" attribute overwrites those changes to set things to the unchecked state.
In retrospect, it would have made more sense to have also added a "checkactions" attribute that was executed only if the checkbox was checked. I'll investigate adding it for v5.1.20.
Make good use of "$:/core/modules/utils/base64-utf8/base64-utf8.module.js"
* Add a new base64Encode()
* Both of base64Encode and base64Decode work for Nodejs and Browsers
This adds options.wiki to the object sent to the generateTiddlerFilePath
The function generateTiddlerFilePath can take a wiki in the options object, but generateTiddlerFileInfo doesn't pass the wiki to it.
* add PaletteManager
* add hint for "external" palette-names
* macro utility, for local \import only
this tiddler is never meant to be tagged $:/tags/Macro
contains only a colour macro which allows to call `<<colour "...">>` within a tiddler and get the parameter-name instead of the resolved color
used in the PaletteManager to reveal the original color below the color that just uses its color with the colour macrocall
example:
```
\define get-real-index(string)
\import $:/core/macros/utils
<$wikify $name="result" text="""$string$"""> <- does the "colour" macrocall, but the one that returns the parameter name
<<result>>
</$wikify>
\end
<$set name="color" value={{{ [{$:/palette}getindex[color-of-interest]] }}}>
-> <<colour primary>>
<$wikify name="real-color-index" text="""<$macrocall $name="get-real-index" string=<<color>>/>""">
<<real-color-index>> -> primary
...
```
* transclude PaletteManager in snippets/paletteeditor
* transclude PaletteManager in core/ui/ControlPanel/Palette
* Update ControlPanel.multids
* add style for color inputs in PaletteManager
* Update PaletteManager.tid
* Update PaletteManager.tid
* add tooltips & aria-labels
* Update ControlPanel.multids
* Update PaletteManager.tid
* Update PaletteManager.tid
* Update PaletteManager.tid
* add escapecss filter
this filter would allow creating valid css classes from titles containing special characters
we assign a class to an element using `encodeuricomponent[]` so that the class name is encoded
in a stylesheet we create the classname by `<title>escapecss[]` which applies the uri encoding and escapes characters that need to be escaped
* Update encodings.js
* refactor tagToCssSelector, add escapeCssSelector
* use escapeCssSelector
* escape using CSS.escape if it's available
* Update encodings.js
* revert factoring out escapeCssSelector
... this makes the animation when inserting tiddlers / navigating to tiddlers in the pop storyview less jumpy
it simply sets `overflow-x` to `hidden` for the time of the insert-animation
Regarding the bulleted tag pills; they should probably also be removed in place of text but I see value in keeping them for the sake of being able to easily peek at what they tag. We should probably have a section under Ctrlpanel>Settings where any startupaction-tiddlers are listed but since we don't yet, then the mentioned tag pills could perhaps remain.... except for the one in the PR.
Include = before each number in the Mathematics Operators examples,
so that people get used to seeing that in math examples where dupes
are likely.
Only the Mathematics Operators tiddler really needed to be changed;
the example tiddlers for individual operators were already using =.
Fixes#3979.
* First pass at modular wiki indexes
An exploratory experiment
* Fix tests
* Faster checking for existence of index methods
We don't really need to check the type
* Use the index for the has operator
* Fix typo
* Move iterator index methods into indexer modules
Now boot.js doesn't know the core indexers
* Fix up the other iterator index functions
* Fix crash with missing index branch
* Limit the field indexer to values less than 128 characters
* Fallback to the old manual scan if the index method returns null
* Sadly, we can no longe re-use the field indexer to accelerate the `has` operator, because the index now omits tiddlers that have field values longer than the limit
Still need to make the index configuration exposed somehow
* Rearrange tests so that we can test with and without indexers
We also need to expose the list of enabled indexers as a config option
* Test the field indexer with different length fields
So that we test the indexed and non-indexed codepaths
It turns out that the `localeCompare` function used by `compareStateText()` is very, very slow. Replacing it with a straightforward equality test makes one of my test rigs be 10x faster...
Note that this PR reverts the behaviour of match/nomatch to that before #3157. That change was not backwards compatible in that the switch to localeCompare meant that é === e, now it doesn't again.
Approximtely 50% speed improvement in tests opening a storyview with 8,000 entries.
(I've deferred the indentation adjustments until the next commit so that the git diffs are clearer)
Fixes#3875
* Use .json files (instead of .tid) for any tiddler whose fields contain values that can't be stored as a .tid file
* Save application/json tiddlers as .json files
* Refactor most of the file handling as re-usable utilities
First part of fix for #3875
The idea is to do a better of job of distinguishing JSON files that contain tiddlers versus those that contain plain blobs of JSON that should be stored as a single application/json tiddler.
Under Node.js, .json files with an accompanying metafile are always treated as a JSON blob. Without a meta file, those that appear to not contain valid tiddlers are returned as a JSON blob, otherwise the tiddlers within the file are imported.
In the browser, we don't have .meta files so we rely on the valid tiddler check.
If the path was not specified, RSOD error occurred when we wanted to
download the wiki:
Uncaught TypeError: Cannot read property 'substring' of undefined
* Update TiddlyWiki5 Squared by Iannis Zannos.tid
Link no longer works. Changed it to the github page.
* Update TiddlyWiki5 Squared by Iannis Zannos.tid
Fixed URL linking to the "ur" field
Changed line
`<<toc-selective-expandable "TableOfContents" "sort{fuzzy}">>`
to
`<<toc-selective-expandable "TableOfContents" "sort{!!fuzzy}">>`
Tested that this is the correct code.
* Add uniquetitle macro
This macro is a wrapper on the $tw.wiki.generateNewTitle function to return a unique name, it has been requested multiple times in the forums.
* Add documentation tiddler for uniquetitle macro
* Add uniquetitle macro examples
* Change name from uniquetitle to unusedtitle for clarity
The title isn't unique, just not currently used in the wiki.
* Update uniquetitle to unusedtitle
* Change uniquetitle to unusedtitle
* Fix a typo
@BurningTreeC I think this might have been a typo in your recent refactorings; if you look back at an old version such as c0c1b557eb/core/modules/widgets/reveal.js then there is no sign of this fallback.
Fixes#3874
* update highlight.js to latest release v9.13.1
* update to v9.13.1 default.css
does the current default.css include adjustments for the different languages?
* Update highlight.pack.js
* Update readme.tid
* update highlight.pack to 9.15.6
* update version number + included languages
* fix draggable lists for firefox (sticky placeholders)
ff doesn't like whitespace and also those entities make problems
placeholder is styled in vanilla base
* tc-droppable-placeholder styles for tagged-draggable ...
and links-draggable lists
* make it beautiful
* Add initial translation for zh-TW depends on zh-Hant
* Add initial translation for zh-CN depends on zh-Hans
* Add initial translation for zh-HK depends on zh-Hant
* Update chinese help texts for load command
* for the new optional "noerror" parameter
https://github.com/arcticicestudio/nord
this palette is very popular, available for highlight.js, codemirror, all kinds of desktop/terminal applications ...
would be great to have it in tiddlywiki, too
this is a draft PR, certain things needs to be improved, but looks very good in tiddlywiki
* add focus capability to edit-shortcut widget
* focus the keyboard-shortcut inputs in the control panel
... there's no other reason why it could have been opened other than just pressing a shorcut ...
... saves the mouseclick
in my tests listening for the dragend event and removing the tc-dragover class in that case removes the `tc-dragover` every time it should ...
without this, firefox often doesn't remove it and the green bar sticks at the top
investigating now if the droppable widget has a similar problem
* fix for "Open" tab placeholders in FireFox
this PR fixes the placeholders in FireFox not being removed on drag-leave from time to time
it consists of 2 mods where apparently both are needed:
- creating a `droppable-item` macro where whitespace is trimmed. that macro contains the droppable and inserts the placeholders
- removing the ` ` entity in favor of an inline style `height:2em;` on the placeholder div, putting it in a macro where whitespace can be trimmed, too
I'm investigating if there's a similar fix for the top page dropzone
* remove unnecessary whitespace trim, add css classes
`.tc-sidebar-tab-open-item { position: relative; }`
`.tc-sidebar-tab-open .tc-droppable-placeholer { line-height:2em; height:2em; } `
* replace times entity with close-button
* add sidebar-open-tab styles
* add smartIndent config to codemirror
* add indentWithTabs config to codemirror
* make default tabSize same value as indentUnit
* make tab and enter do smart indentation
Previously, we were only using the path to disambiguate files on a file:// URI. That meant that all wikis on tiddlywiki.com was sharing the same pool of local storage...
Previously, raw markup tiddlers were being saved even if they weren't included in the saveTiddlerFilter. This meant that, for example, using "save empty" button in GettingStarted would include the splash screen markup tiddler.
* Update chinese translations
* Add field descriptions for toc-link
* Add help texts for gzip parameter of listen command
* Add missing chinese warning message of "Upgrader/System"
There are other ways we could add maths to TW5 (including @EvanBalster's awesome https://github.com/EvanBalster/TiddlyWikiFormula) but the approach here has the merit of simplicity because it reuses the existing filter evaluation mechanism. That means that it's not ordinary "2+2" maths, it's a unique list processing language...
Docs to come
Fixes#254
As per the discussion in #3749, the original purpose of the removed condition is unknown, and so we cannot be certain that removing it is safe, but doing so seems the best way of discovering more...
* fixing 3648 - now non updated references are shown only when non zero
Signed-off-by: Diego Mesa <diego898@gmail.com>
* change to list widget
As per @jermolene comments I changed to the list widget
* Putting back the accidently removed title (will no longer use github interface).
Signed-off-by: Diego Mesa <diego898@gmail.com>
* making sure I dont overwrite currentTiddler
Signed-off-by: Diego Mesa <diego898@gmail.com>
* Update CountWidget.tid
Just a simple example added.
* Update CountWidget.tid
Made a slight addition to conform with the same style used in the Examples section of the $text widget: TextWidget.tid
* Update CountWidget.tid
Modified to use the Documentation display macro:
`<<wikitext-example-without-html>>`
Made this new PR for for the master branch, and closed#3697
This PR is needed for text shown in the update PR #3680 which is for the tiddlywiki-com branch
From the readme:
This plugin enables TiddlyWiki to embed a modified copy of itself (an "innerwiki"). The primary motivation is to be able to produce screenshot illustrations that are automatically up-to-date with the appearance of TiddlyWiki as it changes over time, or to produce the same screenshot in different languages
It turns out that we don't need to disable any scroll anchoring done by the browser as our implementation of scroll anchoring will adapt itself.
Also removing an unneeded paragraph tag from the view template.
* Create howto.tid
Howto explains customising the languages supported by the highlight plugin. This involves:
* Using the highlight.js download page to get a zip archive containing the files for a highlight.js server which supports a set of languages selected by the user
* Replacing the highlight plugin's `highlight.pack.js` file with the `highlight.pack.js` file from the downloaded archive
* Update plugin.info
Add howto.
* Signing the CLA
* Update cla-individual.md
I have edited the file to remove my "name." A real name was required for signing, which I did, and it is now in record. I would prefer the name not be on the TW.com website.
Things are starting to work now...
* Now we extract the version number from package.json to use in making the plugin library
* We start building the whole site (eek, going to be slow)
For "master" we need to rebuild the prerelease; for "tiddlywiki-com" we need to rebuild the main release using the latest release. I want to have as much of the travis specific build logic expressed in travis.yml as possible, hence having to figure out Travis's syntax rather than doing everything in a script that tests the $TRAVIS_BRANCH environment variable...
* Fix search method for search tokens spread across fields
Addresses GH #3636, which reports that if you're searching for "test
body", and "test" only appears in the title field, and "body" only appears
in the text field, 5.1.18's search method won't yield that tiddler as a
result, which appears to be a regression from the 5.1.17 behavior
* Add test for searching for multiple tokens across fields
Verifies GH #3636:
> If I create a tiddler in the empty edition with the title "Test tiddler" and content "Body content", searching the wiki for "test body" yields no results under either "title matches" or "all matches". Searching for either word individually turns up "Test tiddler", and repeating this in an empty wiki I created from the 5.1.17 tag causes "Test tiddler" to show up under "all matches".
* Revert "v5.1.18 banner artwork"
This reverts commit 70500140b9.
* Revert "Revert #3607 and #3608"
This reverts commit 87b3e470c2.
* Revert "Fix default global keyboard shortcuts for Mac"
This reverts commit e466f62e7e.
* Revert "Comment plugin: Improve styles"
This reverts commit e17456e3bc.
* Revert "Style tweaks for framed editor + preview (#3608)"
This reverts commit c058378da0.
* Revert "Change to natural counting in range[N] operator (#3609)"
This reverts commit b9df224f99.
* Revert "Update release note contributors list"
This reverts commit 0f3912ba95.
* Revert "Make editor-preview not hide text-editor shadow (#3607)"
This reverts commit 11f02dc362.
* Revert "Editor needs to stand out a bit more (#3606)"
This reverts commit d711ef25ed.
* Revert "Tweak for keyboard-shortcuts how-to (#3605)"
This reverts commit 419ea9a243.
* Revert "Remove unnecessary border-radius already set on the iframe (#3604)"
This reverts commit 288d25e733.
* Revert "v5.1.18 banner artwork"
This reverts commit 70500140b9.
* Revert "Revert #3607 and #3608"
This reverts commit 87b3e470c2.
* Revert "Fix default global keyboard shortcuts for Mac"
This reverts commit e466f62e7e.
* Revert "Comment plugin: Improve styles"
This reverts commit e17456e3bc.
* Revert "Style tweaks for framed editor + preview (#3608)"
This reverts commit c058378da0.
* Revert "Change to natural counting in range[N] operator (#3609)"
This reverts commit b9df224f99.
* Revert "Update release note contributors list"
This reverts commit 0f3912ba95.
* Revert "Make editor-preview not hide text-editor shadow (#3607)"
This reverts commit 11f02dc362.
* Revert "Editor needs to stand out a bit more (#3606)"
This reverts commit d711ef25ed.
Hi @BurningTreeC apologies I merged these without properly looking at them, but I think we should move them to 5.1.19 because:
* On Chrome, the new version hides the resize handle on textarea, which can be quite useful
* It's visually quite different, and I think might benefit from more discussion
* It's inconsistent with the CodeMirror editor
Would you mind perhaps starting another PR for edit template enhancements?
* remove border: none for iframe from framed.js
... inherits the iframe border 1px solid editor-border in vanilla base
* last style tweaks for editor-preview
same border-radius as framed editor
same additional space at the right as at the left
* Update base.tid
* Update base.tid
* looks actually better with this border
* Promote Gitter Chat in the Readme
I'm not sure if it's ok to use inline styles for a small addition like this... also, feel free to change the colors :-)
* Added link to Gitter in 'Forums' tiddler and transcluded it in the readme as per @Jermolene comments
* Fixed transclusion and built readme
* Modified Readme so the 'forums' section is transclued with lower heading levels
* add link to "How to" keyboard shortcuts + styles
* add "How to create keyboard shortcuts"
* Update How to create keyboard shortcuts.tid
* Update How to create keyboard shortcuts.tid
* Update How to create keyboard shortcuts.tid
this removes additional text-nodes in the dom after each `tc-tag-list-item` caused by the last empty line
we could also just remove that line but I don't know if that's a permanent solution or if some mechanism will re-add that line at some point, so I go with the `whitespace trim` pragma
* Documentation of Using Excise text
Documentation on the Excise text function.
I propose that the Excise text drop down ( the tiddler: $:/language/Buttons/Excise/Caption/Tag) links to this doc. I don't have permission to (or don't know how to) edit that tiddler in github.
I propose the following text for the drop-down tiddler:
Tag new tiddler with the title of this tiddler (If the title is changed you have to [[save and re-edit|Using Excise]] to use the new title as tag).
see the issue:
https://github.com/Jermolene/TiddlyWiki5/issues/2531
* Update Using Excise.tid
changed headings in response to discussion
* Doc for editor toolbar buttons (wikitext)
Documentation for buttons special to the editor toolbar (wikitext)
* Update Using Excise.tid
placed it under the new [[Editor toolbar]]
* Update Using Stamp.tid
placed it under the new [[Editor toolbar]] tiddler
* Update WikiText.tid
added reference to [[Editor toolbar]]
* Update Formatting text in TiddlyWiki.tid
added reference to the [[Editor toolbar]]
* Update WikiText.tid
* Update Editor toolbar.tid
* Update Editor toolbar.tid
* Update Editor toolbar.tid
* Update Editor toolbar.tid
typo
this line inherits the `fill: $(foregroundColor)$` from `<<tag-pill-styles>>` in `$:/core/macros/tags`
deleting the line makes the tag-icons fill with the computed color
Addresses GH #3484
As far as I can tell, the popup level checks in this module are
meant to handle nested popups. It seems to me that the goal is
for at most a single hierarchy of popups to exist at any given time
- bearing that in mind, this change checks any popups currently tracked
by the module, canceling any that don't share an element hierarchy with
the new popup.
* add tv-override-missing-links variable
this lets us set `tv-override-missing-links` true so that we can fix edge cases like the `Filter` dropdown in the `Advanced Search` when `enable missing links` is unchecked in the `Settings` tab of the Control Panel
* add tv-override-missing-links to filter dropdown
* add tv-override-missing-links to type dropdown
* add tv-override-missing-links to fieldname dropd
* add tv-override-missing-links to TagManager(icons)
* undo tv-override-missing-links TagManager
not needed here
* Update link.js
* Update dropdown.tid
* Update fields.tid
* Update type.tid
* Update dropdown.tid
* Update link.js
* simplify all together
* add tv-hide-missing-links to pagetemplate
* do we need to refresh here...
... if the variable gets set on top of the pagetemplate?
uthor: G0erman <goerman.rafi@gmail.com
Date: Fri Nov 23 17:21:43 2018 -0500
Add a line in the end
commit 3cdd78116965f38147f55897adfcef493befe5d0
Author: G0erman <goerman.rafi@gmail.com>
Date: Fri Nov 23 17:15:47 2018 -0500
Recover file accidentally deleted
commit c4536e9182cd90a5d4e6e694ac6fc930ea75ddb5
Author: G0erman <goerman.rafi@gmail.com>
Date: Fri Nov 23 17:12:25 2018 -0500
Translate instructions about install plugin in node server.
commit 0622d03beb
Author: Jeremy Ruston <jeremy@jermolene.com>
Date: Wed Nov 21 12:10:35 2018 +0000
Update release note contributors list
commit 9d0083d8dc
Merge: 8134f8de22541b9b09
Author: Jeremy Ruston <jeremy@jermolene.com>
Date: Wed Nov 21 11:53:43 2018 +0000
Merge branch 'master' of https://Jermolene@github.com/Jermolene/TiddlyWiki5.git
commit 8134f8de28
Author: Jeremy Ruston <jeremy@jermolene.com>
Date: Wed Nov 21 11:53:26 2018 +0000
Update release note
commit 2541b9b090
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Wed Nov 21 12:32:22 2018 +0100
Pagescroller - get scroll pos in src window (#3561)
commit d55a498fca
Author: Bimba Laszlo <bimbalaszlo@gmail.com>
Date: Wed Nov 21 12:26:00 2018 +0100
Docs: Clarify TextWidget with example (#3564)
commit ce7becd64f
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Wed Nov 21 12:24:50 2018 +0100
KeyboardShortcut docs (#3496)
* add SystemTag $:/tags/KeyboardShortcut
* add Keyboard Shortcut Descriptor
* Update KeyboardShortcuts.tid
* Update KeyboardShortcutDescriptor.tid
* Update and rename SystemTag_$__tags_KeyboardShortcut.tid to SystemTag_ $__tags_KeyboardShortcut.tid
* Create KeyboardShortcutTiddler.tid
* Update KeyboardShortcutTiddler.tid
* Update KeyboardShortcutTiddler.tid
* Update KeyboardShortcuts.tid
* Update KeyboardShortcuts.tid
commit 09330968cc
Author: Jeremy Ruston <jeremy@jermolene.com>
Date: Tue Nov 20 13:29:44 2018 +0000
New "else" prefix for filters (#3558)
* Experimental "else" prefix for filters
See #3557
* Docs updates for "else" filter runs
commit 02f26d94a1
Author: Jermolene <jeremy@jermolene.com>
Date: Tue Nov 20 13:29:01 2018 +0000
Releaase note update
commit 7729649f0e
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Tue Nov 20 12:50:12 2018 +0100
Fix bad function declaration in wiki.js (#3559)
fix for #3555 - inner function declaration should be on top of its "host" function
error originally appeared on firefox v38.0.5
commit 430be4ec30
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Tue Nov 20 12:43:15 2018 +0100
Fix list-tagged-draggable for quotes !! and ## (#3442)
* fix list-tagged-draggable for quotes !! and ##
* Update list.tid
* Update list.tid
* Update list.tid
commit b009a60b69
Author: Jermolene <jeremy@jermolene.com>
Date: Tue Nov 20 11:30:06 2018 +0000
Update release note
Not quite up to date, got as far as 31 Oct.
commit 8832409666
Author: Jermolene <jeremy@jermolene.com>
Date: Tue Nov 20 11:29:36 2018 +0000
Docs typo
commit 6d67dc8eb8
Author: Bimba Laszlo <bimbalaszlo@gmail.com>
Date: Tue Nov 20 11:06:12 2018 +0100
Clarify drag-n-drop behaviour again (#3434)
* Clarify drag-n-drop behaviour again
Just found the real reason of drag-n-drop issue mentioned in
b89e8d1635.
* Trying to formulate correctly
commit f4ca295086
Author: Bimba Laszlo <bimbalaszlo@gmail.com>
Date: Mon Nov 19 22:01:56 2018 +0100
Docs: Remove broken `is` operator example (#3556)
In 737e9ae4cb the multiple suboperator
functionality was banned, but an example is remained in the docs.
commit b629b1412d
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Mon Nov 19 21:56:59 2018 +0100
Fix CodeMirror on fake dom (#3547)
* fix for #3547
see https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
because of "strict mode" - the `parentNode` property may not be writable and causes an error in `fakedom.js` (appendChild)
to reproduce: install CodeMirror, install "Tools for exploring internals of TW", open a heavy Tiddler like the Control-Panel in edit-mode, toggle preview on, switch to "parse tree" or "widget tree"
* check for tw fakedom
commit eea034c32d
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Mon Nov 19 18:59:04 2018 +0100
Docs: add state* documentation to button and reveal widgets (#3553)
* docs: add state* attributes to reveal widget
* docs: add state* attributes to button widget
commit f373d8f2bf
Author: Adrian Morosanu <morosanuae@yahoo.com>
Date: Mon Nov 19 12:50:09 2018 +0200
Tree macro - fix for double quotes (and other special characters) (#3552)
* Added fixes for special characters (e.g. double quotes) (including @BurningTreeC and @Jermolene suggestions)
* Removed a lot of redundant code
* Set a default value for "tree" macro prefix parameter ($:/)
commit 4f78d3d81b
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Mon Nov 19 10:35:06 2018 +0100
Fix untagged-pill popup position (#3550)
this corrects the popup-position of the untagged-pill in the tag-manager, showing on top of the Tiddler, not below the pill
commit 72679d2041
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Sun Nov 18 21:58:03 2018 +0100
Fix bad characters in the TagManager (#3549)
now the tag manager needs some fixes for breaking titles, too
- the `<<__variable__>>` syntax needs to be used
- the `tag-pills` don't use the tag-pill macro, but `{{||$:/core/ui/TagTemplate}}` directly
- some already sufficiently qualified states in the `iconEditor` macro are reduced to not use the `qualify` macro
commit 33ba69e852
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Sun Nov 18 21:57:04 2018 +0100
Modals: Display in source-window (#3539)
* Make modals display in source Window
this makes modals display within the window where they got opened, with the parameter `rootwindow` that, if `yes` or `true`, shows the modal always in the root TW window (`<$action-sendmessage $message="tm-modal" $param="mymodal" rootwindow="yes|true"/>`)
* pass the full event to $tw.modal.display
we need the event there to find `srcDocument` and `srcWindow`
* pass event in options object
* update modal.js to use options.event
* add docs for rootwindow tm-modal attribute
commit 3aae643e14
Author: Jermolene <jeremy@jermolene.com>
Date: Sun Nov 18 19:31:53 2018 +0000
Reveal widget with lazily loaded state tiddlers
Fixes#3476
commit e983936c30
Author: Lioric <7177570+Lioric@users.noreply.github.com>
Date: Sun Nov 18 14:19:10 2018 -0500
Signing the CLA (#3477)
commit 849844be12
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Sun Nov 18 20:16:46 2018 +0100
Add stateTitle stateField stateIndex attributes (#3529)
* make triggerPopup optionally set state directly
* update button widget for new state attributes
* update reveal widget for new state attributes
* fix errors in button widget
commit 2b6514ddc2
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Sun Nov 18 11:54:12 2018 +0100
Use new state* attributes for reveal and button widgets (#3531)
* toc macros: use stateTitle and setTitle
* tree macros: use stateTitle and setTitle
* TagManager: use popupTitle, stateTitle setTitle
* body viewtemplate: use stateTitle for folded-state
* import-listings: use stateTitle and setTitle
commit ddc76622f2
Author: BurningTreeC <hypnotizedkangaroo@gmail.com>
Date: Sun Nov 18 11:44:19 2018 +0100
Remove sourceMappingUrl from hammer.js (#3535)
commit 882cad1a0d
Author: Bram Chen <bram.chen@gmail.com>
Date: Sat Nov 17 21:48:31 2018 +0800
Add chinese translations for Title/References (#3545)
* fix for #3547
see https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Object/defineProperty
because of "strict mode" - the `parentNode` property may not be writable and causes an error in `fakedom.js` (appendChild)
to reproduce: install CodeMirror, install "Tools for exploring internals of TW", open a heavy Tiddler like the Control-Panel in edit-mode, toggle preview on, switch to "parse tree" or "widget tree"
* check for tw fakedom
* Added fixes for special characters (e.g. double quotes) (including @BurningTreeC and @Jermolene suggestions)
* Removed a lot of redundant code
* Set a default value for "tree" macro prefix parameter ($:/)
now the tag manager needs some fixes for breaking titles, too
- the `<<__variable__>>` syntax needs to be used
- the `tag-pills` don't use the tag-pill macro, but `{{||$:/core/ui/TagTemplate}}` directly
- some already sufficiently qualified states in the `iconEditor` macro are reduced to not use the `qualify` macro
* Make modals display in source Window
this makes modals display within the window where they got opened, with the parameter `rootwindow` that, if `yes` or `true`, shows the modal always in the root TW window (`<$action-sendmessage $message="tm-modal" $param="mymodal" rootwindow="yes|true"/>`)
* pass the full event to $tw.modal.display
we need the event there to find `srcDocument` and `srcWindow`
* pass event in options object
* update modal.js to use options.event
* add docs for rootwindow tm-modal attribute
* make triggerPopup optionally set state directly
* update button widget for new state attributes
* update reveal widget for new state attributes
* fix errors in button widget
* toc macros: use stateTitle and setTitle
* tree macros: use stateTitle and setTitle
* TagManager: use popupTitle, stateTitle setTitle
* body viewtemplate: use stateTitle for folded-state
* import-listings: use stateTitle and setTitle
this makes a keyboard widget update its keyInfoArray if its key has the `((descriptor))` format and one of the platform-specific configuration tiddlers with that descriptor-suffix changes
* Minor rewording of prompt text
* Moved the colon into the translation string, reasoning that it may need to be changed for languages that use punctuation differently
* Corrected expand/collapse arrows
* Moved prompt into expand/collapse button, making it easier to hit use
* List backlinks when renaming tiddler
* List references inplace
* TiddlerInfo/References accepting specific tiddler
If `operandTitle` is set, it will show its references instead of current
tiddler's.
It's purpose is to prevent code duplication (the references are listed
when renaming tiddler).
* Don't use variable for References template, use <$tiddler>
Set the `current` to desired title with `<$tiddler>` widget.
* List references in a separate block
* Rename state tiddler
* Use qualified state
this allows using the pagescroller for scrolling elements into view where the rect gets calculated somewhere else
Example: CodeMirror has the `cm.cursorCoords()` function that returns the rect of the textselection (or cursor coordinates)
this scrolls the cursor or text selection into view using tiddlywikis pagescroller:
`$tw.pageScroller.scrollIntoView(undefined, function() { return self.cm.cursorCoords(true,"window"); });`
* use "text" config scheme
* use "text" config scheme
* use "text" config scheme
* use "text" config scheme
* use "text" config scheme
* use "text" config scheme
* use "text" config scheme
* use "text" config scheme
* use "text" config scheme + set type integer
* use "text" config scheme
* set type integer
* set type integer
* [Further TOC fixes] - FollowUp: fix tag macros
this fixes the tag macros when titles are used that contain quotes, especially triple quotes and more
* Update tag.tid
* correct scrolling with tc-adjust-top-of-scroll
not multiplying `offset` with t causes jumps at the first animation steps, where the offset value is bigger than `endY - scrollPosition.y`
* correct scroll offset
* changes for global keyboardshortcuts
* add keyboard.js startup module
* remove not existing "th-opening-window" hook
* correct title
* use utils.addEventListeners
* define platform lookup-names on startup
* use the startup-lookup-names array
* use the platform-specific lookupNames only
* Update keyboard.js
* move initializations to the constructor
* move initializations to the constructor
* rename hasAnyTiddlerChanged
* don't explicitely create new RegExp
* use $tw.utils.hopArray
* match strings, no regex
* remove hopArray, move to boot.js
* add $tw.utils.hopArray to boot.js
* style update
* style updates
* move more to keyboardManager module
this could probably be moved to rootwidget.js
* move more to keyboardManager module
* add event listener for shortcuts in new windows
* prevent error when opening window is blocked
* add keydown listener on document in startup.js
* delete startup/keyboard.js
* add missing this.shortcutTiddlers
* Update keyboard.js
* Update boot.js
* add exports.hopArray to utils.js
* minor codingstyle tweak
* change how lookupnames get pushed to array
* Update windows.js
* re-add shortcuts-listener for new windows
I removed this before which I think was because I misunderstood what exactly should go to a separate PR
AWS imposes a limit of 16MB in my testing for the payload of a lambda. Compressing it enables us to pass x2-3 more data, thanks to the inefficiencies of JSON
* Added flag to $tw.utils.parseStringArray to allow non-unique entries
With this change if you use $tw.utils.parseStringArray(list) you get identical behavior to before and enforces uniqueness in lists, but if you use $tw.utils.parseStringArray(list,true) it allows duplicate values in the list.
Because of how JavaScript handles overloaded functions this shouldn't have any affect on existing code that just passes one argument to the function.
* Update to hopefully remove merge conflicts
The bug here is that incoming tiddlers (ie tiddlers that were updated on the server and synced back to the browser) will retain any fields that are currently present but deleted in the incoming tiddler
To avoid clashing with tiddlers called "login-basic" :)
We also need to revise the rout for /status for the same reason, but there are backward compatibility issues there
* Added better handling for sortByList manual placements
If manual placement specifications show up in an inconvenient order,
sortByList, will go to the trouble of processing them in that order.
* Added tests to confirm solution to (#3296)
...That custom tag ordering will not choke when tiddlers get sorted after their dependencies have been placed around them
* Corrected list-after bug when referencing external titles
* Using more error-proof $tw.utils.hop in sortByList
* minor indentation correction in test-tags.js
By almost entirely eliminating text subsitution, we can avoid the situations where special characters in tags or titles gets the macro confused.
These are quite intricate changes, and so I'd appreciate any help reviewing and testing, many thanks.
Fixes#3427
It's a bit gross that we have to change the filename used to reference the JS file. This is to make it work with the webserver.
At the moment, the webserver exposes system tiddlers as plain text renderings, and ordinary tiddlers as full HTML renderings through a view template. So we have to use a system tiddler title for the JS file.
The workaround I'm thinking of is to remove the blanket exposure of system tiddlers, and instead have a list of system tiddlers that are specifically exposed through a namespace like `127.0.0.1:8080\lib\tiddlywiki.js`. That can't clash with a tiddler title because tiddler titles are URI encoded and so can't contain slashes.
* Explore externalising TiddlyWiki's JS core into a separate file
* Fix missing newline after copyright notice
* Add an error alert if tiddlywiki.js can't be loaded
this reverts #3070 which prevents dragging text from one codemirror instance to another
there are other ways to solve the issue I tried to solve with this, so we should revert this to the standard behavior
Makes things a bit easier to follow when working in multiuser environments.
@inmysocks, @danielo515, @arlen22, @pmario, @drakor does this make sense for your use cases?
* Update Macro Definitions in WikiText.tid
*The table is intended as an overview.
*The "Parameters as Variables" example is more clean cut than previously.
Please note that the text lacks an example of direct `<<variable>>` invocation (because I'm not even sure I categorize or name this properly). Also my changes may contain factual errors or faulty lingo - please check!
* Update Macro Definitions in WikiText.tid
* Clarify the drag-n-drop behaviour
In my case I misunderstood it: I thought that I need to select the text and
drag the selection, because drag-n-drop did not work by default.
* Fix grammar
As proposed in #3378
* Experimental support for comments on the entire wiki (enable in the plugin config panel). Implemented as comments on $:/SiteTitle, with the comments appearing at the top of the story river
* Refactor the "add comment" button actions so that they can be reused
* Refactor the comment toolbar to be extensible via a system tag
* Add an $:/AdvancedSearch canned filter for accessing all comments
A few minor improvements that I propose are merged directly.
But, @pmario , we also need a clarifying example showing how to target a tiddler using *multiple* tags. So, under the examples there ought to be something like this:... BUT I fail to get this to work (syntax?):
```
[data-tags*="[[How to apply custom styles]] example-test"] {
outline: 2px solid green;
}
```
Further, the text states that
`Important: Tiddler tags are not sorted, so the order in the rendered output may be different!`
...but I'm not sure what this means. Does it mean:
```
Important: A tiddlers tags are displayed alphabetically but rendered styles may come out in a different order. As per standard CSS behaviour, styles rendered later override styles rendered earlier.
```
* Add chinese help texts for the new listen command
* Add chinese descriptions of "authenticator" and "route" in Docs/ModuleTypes
* Revised chinese help texts for the server command
* Module-ize server routes and add static file support (#2510)
* Refactor server routes to modules
New module type: serverroute
Caveats: Loading order is not deterministic but this would only matter
if two route modules attempted to use the same path regexp (that would
be silly).
* Add static assets plugin
This plugin allows the node server to fetch static assets in the /assets
directory. I felt that this was a feature that goes above the core
functionality. That is why I added it as a plugin. with the modular
route extensions this was a breeze.
* Add serverroute description to ModuleTypes
* Coding standards tweaks
* Fix filename typo
* Move support for attachments from a plugin into the core
* Missing "else"
* Refactor server handling
* Introduce a new named parameter scheme for commands
* Move the SimpleServer class into it's own module
* Deprecate the --server command because of the unwieldy syntax
* Add a new --listen command using the new syntax
For example:
tiddlywiki mywiki --listen host:0.0.0.0 port:8090
* Add check for unknown parameters
* Add support for multiple basic authentication credentials in a CSV file
Beware: Passwords are stored in plain text. If that's a problem, use an authenticating proxy and the trusted header authentication approach.
* Refactor module locations
* Rename "serverroute" module type to "route"
* Remove support for verifying optional named command parameters
The idea was to be able to flag unknown parameter names, but requiring a command to pre-specify all the parameter names makes it harder for (say) the listen command to be extensible so that plugins can add new optional parameters that they handle. (This is particularly in the context of work in progress to encapsulate authenticators into their own modules).
* Refactor the two authenticators into separate modules and add support for authorization
* Correct mistaken path.join vs. path.resolve
See https://stackoverflow.com/a/39836259
* Docs for the named command parameters
I'd be grateful if anyone with sufficient Windows experience could confirm that the note about double quotes in "NamedCommandParameters" is correct.
* Be consistent about lower case parameter names
* Do the right thing when we have a username but no password
With a username parameter but no password parameter we'll attribute edits to that username, but not require authentication.
* Remove obsolete code
* Add support for requiring authentication without restricting the username
* Refactor authorization checks
* Return read_only status in /status response
* Fix two code typos
* Add basic support for detecting readonly status and avoiding write errors
We now have syncadaptors returning readonly status and avoid attempting to write to the server if it's going to fail
* Add readonly-styles
We hide editing-related buttons in read only mode
I've made this part of the tiddlyweb plugin but I think a case could be made for putting it into the core.
* Add custom request header as CSRF mitigation
By default we require the header X-Requested-With to be set to TiddlyWiki. Can be overriden by setting csrfdisable to "yes"
See https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet#Protecting_REST_Services:_Use_of_Custom_Request_Headers
* Add support for HTTPS
* First pass at a route for serving rendered tiddlers
cc @Drakor
* Tweaks to the single tiddler static view
Adding a simple sidebar
* Switch to "dash" separated parameter names
* Typo
* Docs: Update ServerCommand and ListenCommand
* First pass at docs for the new web server stuff
Writing the docs is turning out to be quite an undertaking, much harder than writing the code!
* Get rid of extraneous paragraphs in static renderings
* Rejig anonymous user handling
Now we can support wikis that are read-only for anonymous access, but allow a user to login for read/write access.
* More docs
Slowly getting there...
* Static tiddler rendering: Fix HTML content in page title
* Docs updates
* Fix server command parameter names
Missed off 30ce7ea
* Docs: Missing quotes
* Avoid inadvertent dependency on Node.js > v9.6.0
The listenOptions parameter of the plain HTTP version of CreateServer was only introduced in v9.6.0
cc @Drakor @pmario
* Typo
Using contained actions, as we were, meant that the actions (and in this case the wikify widget) were being rendered at render time, but might have been out of date by the time the actions were triggered. Using the action attribute ensures the actions are rendered when they are executed.
Fixes#3326
**Is your PR related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you are proposing**
A clear and concise description of the changes you are proposing. Include images to show visual changes.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
If you link to discussions elsewhere then please copy and paste the important text, and don't expect readers to scan the entire discussion to find the relevant part.
## Checklist before requesting a review
- [ ] Illustrate any visual changes (however minor) with before/after screenshots
echo "TW5_BUILD_DETAILS=Prerelease built from branch '$TW5_BUILD_BRANCH' at commit $(git rev-parse HEAD) of $(git remote get-url origin) at $(date +'%F %T %Z')" >> $GITHUB_ENV
<h1class="">Script Files</h1><p>The <aclass="tc-tiddlylink tc-tiddlylink-resolves"href="https://tiddlywiki.com/static/TiddlyWiki5.html">TiddlyWiki5</a> repository contains several scripts in the <code>bin</code> folder that you can use to automate common tasks, or as a useful starting point for your own scripts. See <aclass="tc-tiddlylink tc-tiddlylink-missing"href="https://tiddlywiki.com/static/Scripts%2520for%2520building%2520tiddlywiki.com.html">Scripts for building tiddlywiki.com</a> for details of the scripts used to build and release <aclass="tc-tiddlylink-external"href="https://tiddlywiki.com/"rel="noopener noreferrer"target="_blank">https://tiddlywiki.com/</a>.</p><p>All the scripts expect to be run from the root folder of the repository.</p><h2class=""><code>serve</code>: serves tw5.com</h2><pre><code>./bin/serve.sh -h
./bin/serve.cmd [edition dir] [username] [password] [host] [port]</code></pre><p>This script starts <aclass="tc-tiddlylink tc-tiddlylink-resolves"href="https://tiddlywiki.com/static/TiddlyWiki5.html">TiddlyWiki5</a> running as an HTTP server, defaulting to the content from the <code>tw5.com-server</code> edition. By default, the Node.js serves on port 8080. If the optional <code>username</code> parameter is provided, it is used for signing edits. If the <code>password</code> is provided then HTTP basic authentication is used. Run the script with the <code>-h</code> parameter to see online help.</p><p>To experiment with this configuration, run the script and then visit <code>http://127.0.0.1:8080</code> in a browser.</p><p>Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).</p><h2class=""><code>test</code>: build and run tests</h2><p>This script runs the <code>test</code> edition of <aclass="tc-tiddlylink tc-tiddlylink-resolves"href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on the server to perform the server-side tests and to build <code>test.html</code> for running the tests in the browser.</p><h2class=""><code>lazy</code>: serves tw5.com with lazily loaded images</h2><pre><code>./bin/lazy.sh <username> [<password>]</code></pre><p>Or:</p><pre><code>./bin/lazy.cmd <username> [<password>]</code></pre><p>This script serves the <code>tw5.com-server</code> edition content with <aclass="tc-tiddlylink tc-tiddlylink-resolves"href="https://tiddlywiki.com/static/LazyLoading.html">LazyLoading</a> applied to images.</p><h2class=""><code>2bld</code>: builds <aclass="tc-tiddlylink tc-tiddlylink-resolves"href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> 2.6.5</h2><p>This script builds <aclass="tc-tiddlylink tc-tiddlylink-resolves"href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> 2.6.5 from the original source and then displays the differences between them (<code>diff</code> is used for *nix, <code>fc</code> for Windows).</p>
./bin/serve.cmd [edition dir] [username] [password] [host] [port]</code></pre><p>This script starts <aclass="tc-tiddlylink tc-tiddlylink-resolves"href="https://tiddlywiki.com/static/TiddlyWiki5.html">TiddlyWiki5</a> running as an HTTP server, defaulting to the content from the <code>tw5.com-server</code> edition. By default, the Node.js serves on port 8080. If the optional <code>username</code> parameter is provided, it is used for signing edits. If the <code>password</code> is provided then HTTP basic authentication is used. Run the script with the <code>-h</code> parameter to see online help.</p><p>To experiment with this configuration, run the script and then visit <code>http://127.0.0.1:8080</code> in a browser.</p><p>Changes made in the browser propagate to the server over HTTP (use the browser developer console to see these requests). The server then syncs changes to the file system (and logs each change to the screen).</p><h2class=""><code>test</code>: build and run tests</h2><p>This script runs the <code>test</code> edition of <aclass="tc-tiddlylink tc-tiddlylink-resolves"href="https://tiddlywiki.com/static/TiddlyWiki.html">TiddlyWiki</a> on the server to perform the server-side tests and to build <code>test.html</code> for running the tests in the browser.</p><h2class=""><code>lazy</code>: serves tw5.com with lazily loaded images</h2><pre><code>./bin/lazy.sh <username> [<password>]</code></pre><p>Or:</p><pre><code>./bin/lazy.cmd <username> [<password>]</code></pre><p>This script serves the <code>tw5.com-server</code> edition content with <aclass="tc-tiddlylink tc-tiddlylink-resolves"href="https://tiddlywiki.com/static/LazyLoading.html">LazyLoading</a> applied to images.