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

135 Commits

Author SHA1 Message Date
jeremy@jermolene.com
53c247b9a1 Merge branch 'tiddlywiki-com' 2021-07-27 19:30:44 +01:00
Jeremy Ruston
d455072f13
Add support for JSON-formatted tiddler store, and make it the default (#5708)
* 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>
2021-07-14 09:15:30 +01:00
jeremy@jermolene.com
0b71f25f74 Revert "Update sync methods (#5467)"
This reverts commit 8d7930f660.

See the discussion at https://github.com/Jermolene/TiddlyWiki5/pull/5467#issuecomment-873590578https://github.com/Jermolene/TiddlyWiki5/pull/5467#issuecomment-873590578
2021-07-05 19:26:20 +01:00
Saq Imtiaz
076a04fbfb
Added docs for th-closing-tiddler hook (#5820) 2021-06-23 09:51:46 +01:00
jeremy@jermolene.com
c4a7ae3164 Add demo of drag and drop from a standalone HTML file 2021-06-03 14:14:11 +01:00
Mario Pietsch
123666c240
Add th-before-importing hook mechanism (#5464) 2021-05-25 22:19:58 +01:00
Joshua Fontany
8d7930f660
Update sync methods (#5467) 2021-05-24 21:16:23 +01:00
jeremy@jermolene.com
9f9ce6595b Make it easier to subclass the wikitext parser with a custom rule set
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.
2021-02-03 15:13:56 +00:00
jeremy@jermolene.com
b4605e3573 Merge branch 'tiddlywiki-com' 2021-01-21 17:05:58 +00:00
BlueGreenMagick
1ec532ea50
Update WikiRuleModules.tid (#5429) 2021-01-21 16:57:12 +00:00
Joe Bordes
0ea89970d1
Doc(Developer) typo (#5354) 2021-01-02 17:39:46 +00:00
jeremy@jermolene.com
625c3de6f7 Merge branch 'tiddlywiki-com' 2020-12-22 11:49:18 +00:00
jed
e046d5ad76
Create Hook_th-make-tiddler-path.tid (#5274)
Documentation for the hook
2020-12-14 19:20:29 +00:00
jeremy@jermolene.com
81947edd5c Dev: Update hook mechanism docs 2020-12-13 20:01:47 +00:00
jeremy@jermolene.com
36fe519eff Merge branch 'tiddlywiki-com' 2020-12-06 13:56:43 +00:00
Rob Hoelz
abe9af1369
Add documentation for indexer modules (#4873) 2020-11-30 22:10:07 +00:00
jeremy@jermolene.com
f7f55e8eff Add support for username/password parameters for tm-login message 2020-10-25 16:33:44 +00:00
jeremy@jermolene.com
69c12618d9 Syncer: Allow syncadaptor to customise the login prompt 2020-10-14 12:41:51 +01:00
ento
ef29d05ea4
Finish migration to GitHub Actions (#4836)
* 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
2020-08-29 11:58:34 +01:00
jeremy@jermolene.com
bd2cf5c464 Extend the element widget with a hook to intercept DOM node creation
The element widget is used to render HTML elements in wikitext.
2020-07-02 13:13:55 +01:00
jeremy@jermolene.com
f760a2fa79 Add old tiddler to th-saving-tiddler hook
Addresses https://github.com/Jermolene/TiddlyWiki5/pull/4434#issuecomment-645939182
2020-06-18 11:49:59 +01:00
jeremy@jermolene.com
1cc5c5e7f0 Update release note
And fix the github comparison link so that it works for the prerelease
2020-04-22 17:47:34 +01:00
Jeremy Ruston
8dd13bdb20 Preparing for v5.1.22 release 2020-04-15 16:10:54 +01:00
Nils-Hero Lindemann
de5bb823fa
Enable the internals plugin by default in docs (#4335)
* 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>
2020-04-07 20:41:00 +01:00
Jeremy Ruston
59fd557067 Minor tweaks to plugin library listings
* 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
2020-04-06 10:15:18 +01:00
Jeremy Ruston
1154372a7b Update syncer to distinguish connection errors from other errors
We can automatically remove connection errors when things resume working
2020-03-31 10:47:17 +01:00
Jeremy Ruston
b95723a022
Fix syncer to handler errors properly (#4373)
* 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>
2020-03-30 15:24:05 +01:00
Jeremy Ruston
afb7435a88 Remove "hack-to-give-us-something-to-compare-against"
It looked messy in the control panel listing.
2019-11-14 09:23:17 +00:00
Jeremy Ruston
1631f21a6b Preparation for v5.1.22-prerelease 2019-09-10 17:20:36 +01:00
Jeremy Ruston
42060acb43 Preparing for release of v5.1.21 2019-09-10 16:32:30 +01:00
Jeremy Ruston
7f5a5dbe09 Merge branch 'tiddlywiki-com' 2019-09-03 10:12:01 +01:00
Bimba Laszlo
9305881efb Syncadapter uses different conditions for loading and saving (#4211)
The description was ambiguous.
2019-09-03 09:49:17 +01:00
Jeremy Ruston
a986e4f7d6 Prepare for v5.1.21-prerelease 2019-08-09 15:38:36 +01:00
Jeremy Ruston
ad175e222b Preparing for v5.1.20 release 2019-08-09 14:16:39 +01:00
Jeremy Ruston
2a3ea14437 Docs: More updates to build docs 2019-08-09 14:09:15 +01:00
Jeremy Ruston
762810361f Docs: Update the build docs 2019-08-09 14:08:13 +01:00
Jeremy Ruston
32c5490a20 Improve contribution banner
* Make it work with titles with crazy characters
* Hide the banner for tiddlers that didn't originate on GitHub

Fixes #4116 and #4129
2019-07-26 12:46:27 +01:00
Simon Huber
a01dc6cb3d Docs: Typo 2019-03-18 12:40:15 +00:00
Simon Huber
f99fb4f9f5 Fix typos in WidgetSubclassingMechanism (#3870) 2019-03-17 18:13:13 +00:00
Jermolene
e52a616891 Add support for widget subclassing
Fixes #3865
2019-03-17 12:25:15 +00:00
Jermolene
4c1e3aa8d6 Merge branch 'tiddlywiki-com' 2019-01-22 11:52:38 +00:00
Jermolene
273768da1d Docs updates for TW5's new branch development model 2019-01-15 17:39:45 +00:00
Jermolene
e14e69bedc DynaView plugin: add optional scroll position preservation 2019-01-11 17:50:52 +00:00
Arlen22
603c564872 Add the "tiddlywiki" argument to the server start hook (#3592)
* Update Hook__th-server-command-post-start.tid

* Update server.js

* Update listen.js
2018-11-29 09:51:11 +00:00
Jermolene
2f425c303f Add docs macros to dev edition
Fixes #3345
2018-06-29 16:40:45 +01:00
Jermolene
577a87a502 Update /dev build instructions 2018-05-10 15:55:36 +01:00
Arlen22
2163302190 Invoke hook when server starts (#3024)
* Invoke hook when server starts

Invokes the `th-server-command-start` hook when the server is started, with the server object as the parameter. This allows adding a WebSocket listener to the server.

* Return the HTTP server from the listen function

Returns the node HTTP server created in the listen function to allow extension

* Add node HTTP server to server-command-start hook

* Change hook to post start in case we add a pre-start hook

* Create Hook__th-server-command-post-start.tid
2018-04-10 21:55:54 +01:00
Jermolene
47264c8cd5 Remove third party cookies from tiddlywiki.com
Fixes #3106
2018-03-15 12:54:25 +00:00
Jermolene
de4eb5ca89 Add new th-page-refreshed hook 2018-01-04 16:01:19 +00:00
Tobias Beer
a2c764d407 enable doc contributions for dev (#3047)
* enable doc contributions for dev

fixes #2921

* involves changes to boot.js to properly build OriginalTiddlerPaths on
Windows
* added ContributionBanner
* added Sources tab to info panel
* updated tiddlywiki.info for dev

* normalize path separator to posix for windows

* more generically transform to posix
2017-12-12 13:50:33 +00:00