* 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 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
* 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
* 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
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.
* 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
This is the very barebones beginnings of a demo implementation of an alternate tiddler store. It is not functional. If using the Vercel builds, open developer tools in the browser to see it failing due to the absence of basic wiki methods.
The plan is to build it up into the smallest possible plain JS wiki store implementation, sharing as much implementation as possible with the existing core implementation with as little code duplication as possible. It could then serve as the basis for future experiments with wiki stores based on SQLite (@linonetwo), or a custom append only database (@yaisog).
* 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 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
* 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.