1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-01-24 03:44:41 +00:00

Compare commits

..

279 Commits

Author SHA1 Message Date
webplusai
4dc2486d4b Fix issue with default user role on create, profile navigation issue (#8761) 2024-11-19 11:43:07 +00:00
Jeremy Ruston
d9256707f4 Add troubleshooting instructions 2024-11-18 12:25:07 +00:00
Jeremy Ruston
e85cfdefa6 Merge branch 'master' into multi-wiki-support 2024-11-18 11:08:43 +00:00
Jeremy Ruston
b198270cb5 Merge branch 'master' into multi-wiki-support 2024-11-18 09:53:48 +00:00
Jeremy Ruston
3836a5d08c Styles for the improvement banner 2024-11-17 18:06:54 +00:00
Jeremy Ruston
83f7b9023d Retain original tiddler paths to try to get the contribution banner working 2024-11-17 17:40:42 +00:00
Jeremy Ruston
9362121e8d Typo 2024-11-17 12:55:04 +00:00
Mario Pietsch
07c3081e7f [MWS] Move test dependencies to devDep. Update better-sqlite3 to latest (#8717)
* move test dependencies to devDep. Update better-sqlite3 to latest

* update Node version for workflow

* downgrade engines - node

* adjust wasm package
2024-11-17 10:35:49 +00:00
Jeremy Ruston
7c4d0d7f5e Docs: Add table of contents and custom palette 2024-11-16 12:35:04 +00:00
Jeremy Ruston
520188dc2b Tweak favicon 2024-11-16 08:53:20 +00:00
Jeremy Ruston
aa0d59e4ba Docs: Add basic system tiddlers 2024-11-15 21:34:47 +00:00
Jeremy Ruston
c1a441b7a1 Style tweak 2024-11-15 21:25:26 +00:00
Jeremy Ruston
0f558a1442 Move manage-acl page control into multiwikiclient plugin
@webplusai otherwise the control shows up for all wikis built with this version of the core, including those that don't include any MWS plugins. They get an "Undefined widget 'action-managetiddler'" error
2024-11-15 21:24:47 +00:00
Jeremy Ruston
31a7d648e5 Docs: Move documentation from plugin into multiwikidocs edition
@webplusai future docs updates should go to `editions/multiwikidocs`

By the way, it's worth noting that the recent updates in # 8748 were in Markdown syntax, which is slightly different from TiddlyWiki syntax. See the corrections here.
2024-11-15 21:04:15 +00:00
Jeremy Ruston
a6c5b86343 Docs: Copy content from tiddlywiki.com 2024-11-15 20:47:55 +00:00
Jeremy Ruston
ffbf24ae92 CI: We don't need to run the tests when building mws.tiddlywiki.com 2024-11-15 20:30:46 +00:00
webplusai
12e48af372 update multiwiki server documentation (#8748)
* mws authentication

* add more tests and permission checkers

* add logic to ensure that only authenticated users' requests are handled

* add custom login page

* Implement user authentication as well as session handling

* work on user operations authorization

* add middleware to route handlers for bags & tiddlers routes

* add feature that only returns the tiddlers and bags which the user has permission to access on index page

* refactor auth routes & added user management page

* fix Ci Test failure issue

* fix users list page, add manage roles page

* add commands and scripts to create new user & assign roles and permissions

* resolved ci-test failure

* add ACL permissions to bags & tiddlers on creation

* fix comments and access control list bug

* fix indentation issues

* working on user profile edit

* remove list users command & added support for database in server options

* implement user profile update and password change feature

* update plugin readme

* implement command which triggers protected mode on the server

* revert server-wide auth flag. Implement selective authorization

* ACL management feature

* Complete Access control list implementation

* Added support to manage users' assigned role by admin

* fix comments

* fix comment

* Add user profile management and account deletion functionality

* add success and error message feedback for user profile operations

* fix indentation issues

* Add command to create admin user if none exists when the start command is executed

* refactor annonymous user flow with create admin implementation

* remove mws-add-user from start command

* admin configuration for annonymous read-write opearations

* fix comments

* change get-anon handler to POST

* update multiwiki server documentation
2024-11-15 20:29:39 +00:00
Jeremy Ruston
f61a131119 Transparent background for favicon 2024-11-15 18:19:10 +00:00
Jeremy Ruston
8d53a37d34 Docs: Fix CI by including a favicon 2024-11-15 18:09:44 +00:00
Jeremy Ruston
386af03f6d Add multiwikidocs edition and CI to build it 2024-11-15 17:56:00 +00:00
Jeremy Ruston
8ac2730eb1 Merge branch 'master' into multi-wiki-support 2024-11-15 17:43:04 +00:00
webplusai
e873518d6f Admin configuration for anonymous read-write operations (#8736)
* mws authentication

* add more tests and permission checkers

* add logic to ensure that only authenticated users' requests are handled

* add custom login page

* Implement user authentication as well as session handling

* work on user operations authorization

* add middleware to route handlers for bags & tiddlers routes

* add feature that only returns the tiddlers and bags which the user has permission to access on index page

* refactor auth routes & added user management page

* fix Ci Test failure issue

* fix users list page, add manage roles page

* add commands and scripts to create new user & assign roles and permissions

* resolved ci-test failure

* add ACL permissions to bags & tiddlers on creation

* fix comments and access control list bug

* fix indentation issues

* working on user profile edit

* remove list users command & added support for database in server options

* implement user profile update and password change feature

* update plugin readme

* implement command which triggers protected mode on the server

* revert server-wide auth flag. Implement selective authorization

* ACL management feature

* Complete Access control list implementation

* Added support to manage users' assigned role by admin

* fix comments

* fix comment

* Add user profile management and account deletion functionality

* add success and error message feedback for user profile operations

* fix indentation issues

* Add command to create admin user if none exists when the start command is executed

* refactor annonymous user flow with create admin implementation

* remove mws-add-user from start command

* admin configuration for annonymous read-write opearations

* fix comments

* change get-anon handler to POST
2024-11-14 17:47:25 +00:00
webplusai
316bd65296 Add success and error message feedback for user profile operations (#8716)
* mws authentication

* add more tests and permission checkers

* add logic to ensure that only authenticated users' requests are handled

* add custom login page

* Implement user authentication as well as session handling

* work on user operations authorization

* add middleware to route handlers for bags & tiddlers routes

* add feature that only returns the tiddlers and bags which the user has permission to access on index page

* refactor auth routes & added user management page

* fix Ci Test failure issue

* fix users list page, add manage roles page

* add commands and scripts to create new user & assign roles and permissions

* resolved ci-test failure

* add ACL permissions to bags & tiddlers on creation

* fix comments and access control list bug

* fix indentation issues

* working on user profile edit

* remove list users command & added support for database in server options

* implement user profile update and password change feature

* update plugin readme

* implement command which triggers protected mode on the server

* revert server-wide auth flag. Implement selective authorization

* ACL management feature

* Complete Access control list implementation

* Added support to manage users' assigned role by admin

* fix comments

* fix comment

* Add user profile management and account deletion functionality

* add success and error message feedback for user profile operations

* fix indentation issues

* Add command to create admin user if none exists when the start command is executed

* refactor annonymous user flow with create admin implementation

* remove mws-add-user from start command
2024-11-08 10:09:42 +00:00
Jeremy Ruston
3a5f67d4f5 Update dependencies
Tests were breaking in GitHub Actions but work OK on my machine. Problem was better-sqlite3 not being prebuilt, so I am testing to see if an update helps.
2024-11-06 15:31:41 +00:00
Jeremy Ruston
ad901a9f50 Merge branch 'master' into multi-wiki-support 2024-11-06 15:20:44 +00:00
webplusai
c7531e53ab Add user profile management and account deletion functionality (#8712)
* mws authentication

* add more tests and permission checkers

* add logic to ensure that only authenticated users' requests are handled

* add custom login page

* Implement user authentication as well as session handling

* work on user operations authorization

* add middleware to route handlers for bags & tiddlers routes

* add feature that only returns the tiddlers and bags which the user has permission to access on index page

* refactor auth routes & added user management page

* fix Ci Test failure issue

* fix users list page, add manage roles page

* add commands and scripts to create new user & assign roles and permissions

* resolved ci-test failure

* add ACL permissions to bags & tiddlers on creation

* fix comments and access control list bug

* fix indentation issues

* working on user profile edit

* remove list users command & added support for database in server options

* implement user profile update and password change feature

* update plugin readme

* implement command which triggers protected mode on the server

* revert server-wide auth flag. Implement selective authorization

* ACL management feature

* Complete Access control list implementation

* Added support to manage users' assigned role by admin

* fix comments

* fix comment

* Add user profile management and account deletion functionality
2024-10-30 18:38:21 +00:00
webplusai
6a7612ddf8 MWS authentication (#8596)
* mws authentication

* add more tests and permission checkers

* add logic to ensure that only authenticated users' requests are handled

* add custom login page

* Implement user authentication as well as session handling

* work on user operations authorization

* add middleware to route handlers for bags & tiddlers routes

* add feature that only returns the tiddlers and bags which the user has permission to access on index page

* refactor auth routes & added user management page

* fix Ci Test failure issue

* fix users list page, add manage roles page

* add commands and scripts to create new user & assign roles and permissions

* resolved ci-test failure

* add ACL permissions to bags & tiddlers on creation

* fix comments and access control list bug

* fix indentation issues

* working on user profile edit

* remove list users command & added support for database in server options

* implement user profile update and password change feature

* update plugin readme

* implement command which triggers protected mode on the server

* revert server-wide auth flag. Implement selective authorization

* ACL management feature

* Complete Access control list implementation

* Added support to manage users' assigned role by admin

* fix comments

* fix comment
2024-10-30 17:59:44 +00:00
Jeremy Ruston
5d6ddaee7e Fix plugin bag names 2024-10-17 15:51:01 +01:00
Jeremy Ruston
d0575d6e8e Merge branch 'master' into multi-wiki-support 2024-10-17 13:19:19 +01:00
Jeremy Ruston
6dd6b7bef1 Refactor conditional function definitions
Function definitions within a condition do not function as expected thanks to JS hoisting, so it is better to avoid it, and keep ESLint happy as well.

See discussion at #8622 with @pmario
2024-09-30 15:28:37 +01:00
Jeremy Ruston
517dae8242 Merge branch 'master' into multi-wiki-support 2024-09-30 15:20:56 +01:00
Mario Pietsch
d0b5f413a4 MWS icon remove redundant paths (#8621) 2024-09-30 14:37:31 +01:00
Jeremy Ruston
6e7efeb126 Merge branch 'master' into multi-wiki-support 2024-09-20 13:58:19 +01:00
Jeremy Ruston
0f4f60f978 Fix load wiki folder command 2024-09-20 13:57:54 +01:00
Jeremy Ruston
a9c124cffd Whitespace clean up 2024-09-20 13:57:12 +01:00
Jeremy Ruston
4050ba5f92 Avoid optional chaining syntax
So that we can run on older Node.js versions
2024-09-11 19:22:29 +01:00
webplusai
b698b3e9cf revert playwright test (#8573) 2024-08-30 19:55:04 +01:00
webplusai
a930411cfd Handle directory creation if doesn't exist for test store (#8562)
* fix breaking bug in image tiddler attachment

* fix comments

* fix code format

* refactor processIncomingTiddler flow

* remove whitespaces after if statements

* refactor attachment_blob persistence flow

* refactor process tiddler to support different attachments

* add tests for attachment

* add more attachement test cases

* working on adding instanbul for test coverage report

* code coverage report generation

* remove unnecessary packages

* fix comments

* handle directory creation if doesn't exist for test store

* resolve issue with CI tests failure
2024-08-30 13:14:18 +01:00
Jeremy Ruston
90848a1e96 Change for the sake of CI 2024-08-29 10:00:08 +01:00
Jeremy Ruston
c73311684b Merge branch 'master' into multi-wiki-support 2024-08-28 17:17:22 +01:00
Jeremy Ruston
8a5a684218 Clean ups from #8456 2024-08-28 17:16:35 +01:00
webplusai
3287dce40c MWS: fix editing attachment tiddlers (#8455)
* fix breaking bug in image tiddler attachment

* fix comments

* fix code format

* refactor processIncomingTiddler flow

* remove whitespaces after if statements

* refactor attachment_blob persistence flow

* refactor process tiddler to support different attachments

* add tests for attachment

* add more attachement test cases

* working on adding instanbul for test coverage report

* code coverage report generation

* remove unnecessary packages

* fix comments
2024-08-28 17:13:52 +01:00
Jeremy Ruston
eac8a2c3d8 Merge branch 'master' into multi-wiki-support 2024-08-27 09:19:00 +01:00
Jeremy Ruston
535c440741 Remove extraneous storylist tiddler 2024-08-22 11:58:10 +01:00
Jeremy Ruston
9eb28a0e5f Merge branch 'master' into multi-wiki-support 2024-08-22 11:57:38 +01:00
Jeremy Ruston
edc32c5262 Merge branch 'master' into multi-wiki-support 2024-08-19 13:11:04 +01:00
Jeremy Ruston
6492ed36bf Merge branch 'master' into multi-wiki-support 2024-08-06 21:38:38 +01:00
Jeremy Ruston
2819b53c04 Merge branch 'master' into multi-wiki-support 2024-07-31 14:03:38 +01:00
Jeremy Ruston
adb2ffcd4d Update package.json 2024-07-31 14:03:35 +01:00
Jeremy Ruston
97db75e741 Merge branch 'master' into multi-wiki-support 2024-07-26 14:00:34 +01:00
Jeremy Ruston
066771e6e9 Allow attachment handling to be switched off 2024-07-16 10:32:34 +01:00
Jeremy Ruston
b4664bd7d1 getBagTiddlerStream should return bagname 2024-07-16 10:31:13 +01:00
Jeremy Ruston
882438db14 Merge branch 'master' into multi-wiki-support 2024-07-15 20:58:31 +01:00
Jeremy Ruston
e9f314579d Fix failing tests 2024-07-10 14:42:56 +01:00
Jeremy Ruston
9e2962b24e Merge branch 'master' into multi-wiki-support 2024-07-10 14:37:30 +01:00
Jeremy Ruston
5b53a14903 Use $tw.utils.encodeURIComponentExtended for consistency with encodeuricomponent operator 2024-07-10 13:16:47 +01:00
poc2go
39b7a4fb71 Adds 'created' field to attachment meta.json file (#8356) 2024-07-09 16:35:18 +01:00
Jeremy Ruston
f1d0e52ff7 New commands 2024-07-05 18:40:59 +01:00
Jeremy Ruston
d1edf6424d Merge branch 'master' into multi-wiki-support 2024-07-05 16:52:41 +01:00
Jeremy Ruston
e9cbb51f68 Merge branch 'master' into multi-wiki-support 2024-06-28 14:55:50 +01:00
Jeremy Ruston
0ff3875b8a Update readme.tid 2024-06-24 11:42:59 +01:00
Jeremy Ruston
38e1ea8f90 Merge branch 'master' into multi-wiki-support 2024-06-22 16:56:46 +01:00
Jeremy Ruston
2b2fd4bdb7 Merge branch 'master' into multi-wiki-support 2024-06-08 14:59:17 +01:00
Jeremy Ruston
b8f463d8ba Merge branch 'master' into multi-wiki-support 2024-05-31 22:39:14 +01:00
Jeremy Ruston
3f30cb4991 Merge branch 'master' into multi-wiki-support 2024-05-31 14:05:30 +01:00
Jeremy Ruston
049951e269 Merge branch 'master' into multi-wiki-support 2024-05-31 13:46:36 +01:00
Jeremy Ruston
3c36e4bd55 Merge branch 'master' into multi-wiki-support 2024-05-31 13:32:53 +01:00
Jeremy Ruston
d03ad0bca6 Merge branch 'master' into multi-wiki-support 2024-05-29 21:42:34 +01:00
Jeremy Ruston
109d92ae68 Update readme 2024-05-28 15:36:34 +01:00
Jeremy Ruston
e396334b20 Disable SSE by default
The current implementation is still broken, and actually more broken than it was before a37d50166f.

It seems that we should be exposing the SSE events to the syncer so that the resulting updates can be handled by the syncers existing task scheduler
2024-05-28 13:15:34 +01:00
Jeremy Ruston
d8fd9af63a Fix string vs. number confusion for revisions 2024-05-28 09:08:17 +01:00
Jeremy Ruston
9b6d677726 Fix revision comparisons 2024-05-27 17:33:27 +01:00
Jeremy Ruston
a37d50166f Tentative fix for SSE issue
See https://github.com/Jermolene/TiddlyWiki5/pull/7915#issuecomment-2124341900
2024-05-27 15:01:15 +01:00
Jeremy Ruston
b4564e31bd Merge branch 'master' into multi-wiki-support 2024-05-26 10:40:19 +01:00
Jeremy Ruston
33fb857d6b Merge branch 'master' into multi-wiki-support 2024-05-22 15:42:22 +01:00
Jeremy Ruston
4c2c7266d7 Make usage of SSE be configurable 2024-05-22 10:39:02 +01:00
Jeremy Ruston
3c7f06009b Temporarily Disable SSE 2024-05-22 10:33:35 +01:00
Jeremy Ruston
87f4a525f8 Mark MWS plugins as experimental 2024-05-21 12:07:01 +01:00
Jeremy Ruston
92a1c56d31 Merge branch 'master' into multi-wiki-support 2024-05-21 12:05:26 +01:00
Jeremy Ruston
d8eb5cb459 Merge branch 'master' into multi-wiki-support 2024-05-20 14:42:11 +01:00
Jeremy Ruston
268aaebaf0 Logging 2024-04-16 14:51:26 +01:00
Jeremy Ruston
ea318bab6e Fix file separator for Windows 2024-04-16 13:47:15 +01:00
Jeremy Ruston
aafe775779 Debugging 2024-04-16 12:49:09 +01:00
Jeremy Ruston
129bbe421c Debugging 2024-04-16 12:45:35 +01:00
Jeremy Ruston
471ba99a5d Debugging 2024-04-16 12:43:41 +01:00
Jeremy Ruston
516a17a6f0 More debugging 2024-04-16 12:41:50 +01:00
Jeremy Ruston
2e4980bb97 Add some error checking 2024-04-16 12:38:05 +01:00
Jeremy Ruston
db9978f8c2 Syncer should only save existing tiddlers if they have changed 2024-04-16 11:59:52 +01:00
Jeremy Ruston
cc4cb04900 Turn on WAL mode for better-sqlite3 2024-04-14 19:12:21 +01:00
Jeremy Ruston
9ba4556250 Add support for the plugin library
We create a system bag to contain each plugin/theme/language. It seems wasteful because it results in lots of bags, but the semantics are exactly right and so it seems like the right approach
2024-04-14 18:41:34 +01:00
Jeremy Ruston
131a5abeb8 Protect against syncing client state tiddlers to the server
The default sync filter omits $:/state/, but users can customise it
2024-04-12 10:58:45 +01:00
Jeremy Ruston
ce79a4add8 Add bag indicator to tiddler info panel 2024-04-12 10:28:26 +01:00
Jeremy Ruston
28a831489b Merge branch 'master' into multi-wiki-support 2024-04-12 09:59:12 +01:00
Jeremy Ruston
51cdca6841 Merge branch 'master' into multi-wiki-support 2024-04-03 21:51:51 +01:00
Jeremy Ruston
d51ad80f80 Incoming updates filter should exclude tiddlers prefixed $:/StoryList and $:/HistoryList
Thanks @pmario
2024-03-28 17:32:10 +00:00
Jeremy Ruston
ad528d6b1f Fix get wiki crash when serving a recipe with no tiddlers in it
Fixes #8110
2024-03-27 14:41:03 +00:00
Jeremy Ruston
f2947e73b3 Filter updates from the server
We don't want $:/StoryList etc.
2024-03-26 17:16:14 +00:00
Jeremy Ruston
baee0bb301 Fix broken updating of last_known_tiddler_id from streamed data 2024-03-26 12:25:49 +00:00
Jeremy Ruston
8a2111f150 Update GettingStarted 2024-03-26 12:25:13 +00:00
Jeremy Ruston
fcffff3964 npm start should use mws-listen 2024-03-25 22:38:10 +00:00
Jeremy Ruston
cca1f21d02 Undo unneeded changes to image widget 2024-03-25 22:35:42 +00:00
Jeremy Ruston
37f6930bf2 Quit command should abort any pending commands 2024-03-25 22:33:41 +00:00
Jeremy Ruston
4b1affee50 Load streamed tiddlers immediately, rather than scheduling a load 2024-03-25 17:49:34 +00:00
Jeremy Ruston
464d17b522 Update last known tiddler ID for events delivered via SSE 2024-03-25 17:43:29 +00:00
Jeremy Ruston
d1bb7159b8 Expose the connection status in the UI 2024-03-25 17:07:36 +00:00
Jeremy Ruston
b58cfe6324 SSE client: better state management to avoid multiple connections 2024-03-25 16:43:41 +00:00
Jeremy Ruston
7a0c43436f First pass at SSE support 2024-03-25 08:36:42 +00:00
Jeremy Ruston
708e21951f Fix syncing 2024-03-24 21:15:59 +00:00
Jeremy Ruston
8198574087 Remove code that is unneeded for the moment 2024-03-24 21:15:31 +00:00
Jeremy Ruston
6c9b92400e GET recipes/name/tiddlers.json should use include_deleted parameter 2024-03-24 18:32:56 +00:00
Jeremy Ruston
8091db37e8 Merge branch 'master' into multi-wiki-support 2024-03-23 17:32:03 +00:00
Jeremy Ruston
e66b67dedc Only turn binary tiddlers into attachments 2024-03-23 09:54:15 +00:00
Jeremy Ruston
a2012dcff8 Typo in comment 2024-03-23 09:54:03 +00:00
Jeremy Ruston
08649dd1eb More efficient syncing
Thank you @PotOfCoffee2Go I ended up taking some of your code from #8101 to get this up and running. There's still some stuff missing (like the tests!) but it gets things moving.
2024-03-23 09:27:54 +00:00
Jeremy Ruston
52f76380c7 Remove code relating to revision and bag as fields 2024-03-22 17:58:52 +00:00
Jeremy Ruston
1f63bcbbd0 Remove some templates that are no longer needed 2024-03-20 19:24:21 +00:00
Jeremy Ruston
3aa5607a3a Stop storing bag and revision details as tiddler fields
Instead we store them as dictionary tiddlers
2024-03-20 19:22:12 +00:00
Jeremy Ruston
eaebeb87c9 Include bagname in tiddler Etags 2024-03-20 18:52:54 +00:00
Jeremy Ruston
808b94468e Fix multipart form data POST test 2024-03-20 18:52:37 +00:00
Jeremy Ruston
60e6c8bcb2 Fix etag handling 2024-03-20 17:56:47 +00:00
Jeremy Ruston
891f0fd599 Fix page body class in static pages
So that we get the TW background colour
2024-03-20 17:55:50 +00:00
Jeremy Ruston
6154de0d2c Rename misnamed route 2024-03-20 15:53:49 +00:00
Jeremy Ruston
cae9dbf5d1 Fix colours in static renderings 2024-03-20 15:51:58 +00:00
Jeremy Ruston
ae8ef305fa Get rid of those annoying missing image icons
By adding a `?fallback=url` parameter to tiddler requests
2024-03-20 15:40:38 +00:00
Jeremy Ruston
9b3ca525ee Introduce multiwikiclient plugin
Routes are now rationalised, too.
2024-03-20 15:13:50 +00:00
Jeremy Ruston
38ee942d8f Don't do full debug logging during tests 2024-03-20 15:12:35 +00:00
Jeremy Ruston
957329d515 Add store directories to gitignore 2024-03-20 13:10:30 +00:00
Jeremy Ruston
6063256439 Create new static index route with ability to create/update bags and recipes
Also introduces a new /.system/filename route for stylesheets, scripts etc.
2024-03-20 09:44:52 +00:00
Jeremy Ruston
1c64646393 Fix quit command to work gracefully 2024-03-19 10:04:32 +00:00
Jeremy Ruston
259b3dca1b Add a new static index route 2024-03-18 22:26:24 +00:00
Jeremy Ruston
6a673e6aea Stop syncing state tiddlers to the admin wiki 2024-03-18 21:08:48 +00:00
Jeremy Ruston
f606e33415 Stop using the existing core server infrastructure
Too much of a constraint now that we're starting work on client-server sync
2024-03-18 08:44:45 +00:00
Jeremy Ruston
09de91940e Typo 2024-03-17 19:30:22 +00:00
Jeremy Ruston
3d485f0706 Expose tiddler_ids in bag and recipe listings 2024-03-17 16:34:45 +00:00
Jeremy Ruston
7eaa9b8aec Database methods that mutate tables should return IDs 2024-03-17 15:06:36 +00:00
Jeremy Ruston
faa4b9700a More consistent variable naming 2024-03-17 14:54:06 +00:00
Jeremy Ruston
dea739ff07 Introduce delete markers for deleted tiddlers 2024-03-17 14:18:47 +00:00
Jeremy Ruston
69cc45bf5c Refactor the database engine specific code 2024-03-17 13:27:00 +00:00
Jeremy Ruston
347aa4d546 Tests should cover tiddler_ids 2024-03-17 13:07:24 +00:00
Jeremy Ruston
b4855b25c4 Merge branch 'master' into multi-wiki-support 2024-03-16 22:06:02 +00:00
Jeremy Ruston
d518675e03 Get rid of some console.logs 2024-03-15 16:49:24 +00:00
Jeremy Ruston
9b59ae2b73 Add an HTTP test for multipart form data upload 2024-03-15 16:40:22 +00:00
Jeremy Ruston
f67573315e POST /wiki/:bag_name/bags/:bag_name/tiddlers/ should also return JSON 2024-03-15 16:39:59 +00:00
Jeremy Ruston
501f57499e Update readme 2024-03-14 12:25:11 +00:00
Jeremy Ruston
2916cb6fd9 Clarify comment
Thanks @pmario
2024-03-14 11:55:55 +00:00
Jeremy Ruston
e553539b2a Clarify that process.exit() is a hack 2024-03-13 22:12:41 +00:00
Jeremy Ruston
3da773c27f Add HTTP tests to npm test command 2024-03-13 18:39:42 +00:00
Jeremy Ruston
b923be5e94 Merge branch 'master' into multi-wiki-support 2024-03-13 18:03:35 +00:00
Jeremy Ruston
c9ab184c65 TODOs before merging 2024-03-12 21:32:22 +00:00
Jeremy Ruston
bc45a16f40 Fix readme build 2024-03-12 21:21:49 +00:00
Jeremy Ruston
8b6642b56d Update the root readme that is visible on GitHub 2024-03-12 17:33:07 +00:00
Jeremy Ruston
d6807cb471 Update MWS plugin readme 2024-03-12 17:32:54 +00:00
Jeremy Ruston
f9064428c5 Add npm start command 2024-03-12 17:32:35 +00:00
Jeremy Ruston
a443e5f0ad Add new command to test local or remote server via HTTP 2024-03-11 21:52:40 +00:00
Jeremy Ruston
24413c53dd The listen command shouldn't return until the server is listening 2024-03-11 21:45:27 +00:00
Jeremy Ruston
8b5c3746f8 Refactor command module filenames 2024-03-11 09:40:40 +00:00
Jeremy Ruston
9df625c44d Reorganise JS modules into subdirectories 2024-03-11 09:10:01 +00:00
Rob Hoelz
54ff0446c6 MWS: store level tests (#8021)
* Fix a few typos

The "database instead of store" change isn't a typo fix, per se, but
these tests are testing the lower-level database layer, and I'm about
to introduce some tests for the higher-level store layer, so I want to
avoid any confusion in the test names

* Start on SQL store-level tests

* Add some tests for createBag

* Add test for getBagTiddler and getBagTiddlers

* Add basic recipe tests

* Add a test for saving a tiddler within a recipe

* Add store test for deleteTiddler
2024-03-11 09:01:43 +00:00
Jeremy Ruston
0f5dfb89ad Refactor multipart form handling for more reusability 2024-03-10 20:20:06 +00:00
Jeremy Ruston
e3b27768d2 Update comment 2024-03-10 20:19:41 +00:00
Jeremy Ruston
580283433e Remove unneeded highlight plugin from multiwikiserver edition 2024-03-10 18:07:02 +00:00
Jeremy Ruston
f4ac2b92e7 Remove unneeded plugins from tw5.com edition 2024-03-10 18:06:44 +00:00
Jeremy Ruston
e35584843d Fix mws-save-archive command name 2024-03-10 18:06:26 +00:00
Jeremy Ruston
3335e87ef4 Remove unneeded option 2024-03-10 17:49:52 +00:00
Jeremy Ruston
abde67e5df MWS: Add support for large tiddlers to be stored as attachment files
Fixes #8022
2024-03-10 17:45:33 +00:00
Jeremy Ruston
2ba3643a0c Merge branch 'master' into multi-wiki-support 2024-03-07 08:26:10 +00:00
Jeremy Ruston
89ae2012c7 Merge branch 'master' into multi-wiki-support 2024-03-04 14:14:06 +00:00
Jeremy Ruston
8a209d643f Fix typo 2024-03-01 18:58:17 +00:00
Jeremy Ruston
1a28ec7ea4 Rename upload manager to multipart form manager 2024-02-28 18:36:19 +00:00
Jeremy Ruston
5fe41fc896 Reorder test tiddlers 2024-02-28 18:19:22 +00:00
Jeremy Ruston
4f9ff1ae81 Missed closing tag 2024-02-28 18:19:01 +00:00
Jeremy Ruston
d97ddf1eec Merge branch 'master' into multi-wiki-support 2024-02-28 18:04:45 +00:00
Jeremy Ruston
9facf4a067 Fix incorrect encoding of description when creating bags and recipes 2024-02-28 17:46:19 +00:00
Rob Hoelz
de4fe132a7 Unconditionally decrement transaction depth (#8008)
…otherwise we may end up in a situation where we're always stuck in an
"already in a transaction" state and often neglect to actually enter a
real transaction!
2024-02-26 11:02:55 +00:00
Jeremy Ruston
d7d0733177 Remove accidentally committed database file
Thanks @hoelzro
2024-02-25 22:27:36 +00:00
Jeremy Ruston
e614e291a2 Default to better-sqlite3 2024-02-25 18:08:59 +00:00
Jeremy Ruston
dd9a3bfeeb Re-enable loading the tw5.com docs tiddlers 2024-02-25 18:04:54 +00:00
Jeremy Ruston
83229ace63 Add a config tiddler for selecting the SQLite engine 2024-02-25 18:04:43 +00:00
Jeremy Ruston
6724fa804b Run the tests on both node-sqlite3-wasm and better-sqlite3 2024-02-25 17:58:53 +00:00
Jeremy Ruston
630b98520f Add note about transaction handling 2024-02-25 09:48:24 +00:00
Jeremy Ruston
1c0341de51 Merge branch 'master' into multi-wiki-support 2024-02-24 09:38:42 +00:00
Jeremy Ruston
d5aa74d9af Improve manual transaction handling
Thanks @hoelzro
2024-02-24 09:31:59 +00:00
Jeremy Ruston
343cc33bbe Add a test tiddler with emoji title
Useful for testing
2024-02-24 09:30:20 +00:00
Jeremy Ruston
b1edbed6a5 Fix bag static HTML to show emoji correctly 2024-02-23 17:47:00 +00:00
Jeremy Ruston
066e553f84 Introduce command to load tiddler folders into a bag 2024-02-23 12:51:29 +00:00
Jeremy Ruston
61b54125be Rename mws-load|save to mws-load|save-archive 2024-02-23 12:51:07 +00:00
Jeremy Ruston
3276703edd Fix failing tests 2024-02-23 09:30:12 +00:00
Jeremy Ruston
f9265169fd Commands to load and save tiddlers, bags and recipes as a JSON archive
@linonetwo the resulting archive should be suitable for storing in git
2024-02-23 09:27:53 +00:00
Jeremy Ruston
2361880c45 createBag should optionally set access control data 2024-02-23 09:26:45 +00:00
Jeremy Ruston
3ad87df154 Allow wiki engine to be configured 2024-02-22 17:58:30 +00:00
Jeremy Ruston
3c58788e37 Merge branch 'master' into multi-wiki-support 2024-02-22 17:39:51 +00:00
Jeremy Ruston
310b5f058a Whitespace 2024-02-22 12:13:53 +00:00
Jeremy Ruston
a33705e348 Fix error
It appears that not all statements can be finalized.
2024-02-22 12:09:36 +00:00
Jeremy Ruston
3fca82321e MWS: Add support for node-sqlite-wasm alongside better-sqlite3 (#7996)
* Switch from better-sqlite3 to node-sqlite3-wasm

Seems to be slower, but might make cloud deployments easier by not having any binary dependencies

* More logging

* Temporarily use a memory database

We will make this configurable

* Revert "More logging"

* Resume loading demo tiddlers

* Cache prepared statements

Gives a 20% reduction in startup time on my machine

* Some more logging

* Update package-lock

* More logging

* Route regexps should allow for proxies that automatically decode URLs

Astonishingly, Azure does this

* Go back to a file-based database

* Less logging

* Update package-lock.json

* Simplify startup by not loading the docs edition

* Tiddler database layer should mark statements as having been removed

* Re-introduce better-sqlite3

* Make the SQLite provider be switchable

* Support switchable SQL engines

I am not intending to make this a long term feature. We will choose one engine and stick with it until we choose to change to another.

* Adjust dependency versions

* Setting up default engine

* Make transaction handling compatible with node-sqlite3-wasm

https://github.com/tndrle/node-sqlite3-wasm doesn't have transaction support so I've tried to implement it using SQL statements directly.

@hoelzro do you think this is right? Should we be rolling back the transaction in the finally clause? It would be nice to have tests in this area...

I looked at better-sqlite3's implementation - https://github.com/WiseLibs/better-sqlite3/blob/master/lib/methods/transaction.js

* Default to better-sqlite3 for compatibility after merging
2024-02-22 11:57:41 +00:00
Rob Hoelz
790f431df0 MWS: Use transactions when modifying multiple resources (#7991)
* Use transactions when modifying multiple resources

This prevents partial changes from entering the database, and also
nets a nice speed-up.

* Keep track of transaction depth

…so we could someday potentially leverage SQL implementations that don't
implement nested transactions
2024-02-22 10:48:39 +00:00
Jeremy Ruston
0d22bf8418 Update to latest better-sqlite3 2024-02-22 10:47:08 +00:00
Jeremy Ruston
1eecfb6b3a Less logging 2024-02-21 17:55:13 +00:00
Jeremy Ruston
b8c1c6c8de Allow backslashes in trailing API path components
To make us more tolerant of proxies that "helpfully" decodeuricomponent for us (looking at you Azure)
2024-02-21 17:54:56 +00:00
Jeremy Ruston
6503fb4a04 Simple performance logging 2024-02-20 09:33:39 +00:00
Jeremy Ruston
bab14b7053 Logging 2024-02-19 16:29:14 +00:00
Jeremy Ruston
2d4b3341f6 Merge branch 'master' into multi-wiki-support 2024-02-19 09:55:57 +00:00
Jeremy Ruston
6f8a3b9261 mws-load command: more validation tiddler files 2024-02-16 16:41:39 +00:00
Jeremy Ruston
8edefffbc5 WIP: Support for streaming multipart form data to the file system 2024-02-16 16:02:40 +00:00
Jeremy Ruston
59b425fd5c Update to better-sqlite3 v9.4.1 2024-02-16 16:00:46 +00:00
Jeremy Ruston
f2267e2af0 Merge branch 'master' into multi-wiki-support 2024-02-16 15:58:08 +00:00
Jeremy Ruston
c26acfdb42 Add NOT NULL constraint to all columns
Thanks @hoelzro
2024-02-05 16:15:35 +00:00
Jeremy Ruston
f925f036c9 Introduce $tw.mws for MWS globals 2024-02-05 14:49:08 +00:00
Jeremy Ruston
2c810faeeb Add barebones support for timing HTTP response generation times 2024-02-02 15:42:47 +00:00
Jeremy Ruston
6675358e85 WIP: Add a multipart/form-data convenience function
This is the start of adding support for large attachments.

We have a new endpoint for POSTing tiddler data. The idea is that it will take any kind of data and figure out how to extract tiddlers from the upload and save them in the nominated bag.

The next step is to move the attachment files into a special folder and reference them from the database so that we can construct _canonical_uris for them.
2024-02-02 15:42:02 +00:00
Jeremy Ruston
262a730534 Move the database file into a "store" directory inside the wiki folder 2024-01-29 18:11:50 +00:00
Jeremy Ruston
4b6872aa42 Fix typo 2024-01-29 08:29:26 +00:00
Jeremy Ruston
3283d38867 First draft of a command to read tiddlers, bags and recipes from an archive
The archive format is a legacy format that I used with Xememex, and will need to be updated to iron out the wrinkles
2024-01-28 21:27:12 +00:00
Jeremy Ruston
4204ff367e A few more tests 2024-01-28 17:11:53 +00:00
Jeremy Ruston
51e646690c Allow tilde character in bag and recipe names 2024-01-28 17:11:44 +00:00
Jeremy Ruston
85607f7846 Query fixes 2024-01-28 17:11:23 +00:00
Jeremy Ruston
41a5bcc3a1 Fix canonical URI handling 2024-01-26 15:48:39 +00:00
Jeremy Ruston
84c8a9be9b Fix typo 2024-01-26 15:01:07 +00:00
Jeremy Ruston
62b2fe3e2f Add an error when creating a recipe with no bags 2024-01-26 14:42:43 +00:00
Jeremy Ruston
f5fdd79c7f Refresh when creating bags and recipes to get the change instantly 2024-01-26 14:42:17 +00:00
Jeremy Ruston
14752ccb0c Missing comma 2024-01-26 14:04:54 +00:00
Jeremy Ruston
541c166863 Error handling for bag and recipe handling 2024-01-26 14:03:32 +00:00
Jeremy Ruston
270f62bbb2 Merge branch 'master' into multi-wiki-support 2024-01-26 13:38:02 +00:00
Jeremy Ruston
8290d853c9 Merge branch 'master' into multi-wiki-support 2024-01-26 12:54:40 +00:00
Jeremy Ruston
b0a67300cc Add support for bag descriptions, validate bags and recipes, and complete the UI for creating bags and recipes
Styling to come
2024-01-24 22:24:24 +00:00
Jeremy Ruston
0b9749f3a4 Add favicon to bag listing page 2024-01-24 20:58:57 +00:00
Jeremy Ruston
3ad3e19392 Merge branch 'master' into multi-wiki-support 2024-01-24 16:21:58 +00:00
Jeremy Ruston
ed71adac7e Merge branch 'master' into multi-wiki-support 2024-01-24 12:54:39 +00:00
Jeremy Ruston
8d95c92bfb Use $:/state/ tiddler for server entity state tiddlers 2024-01-24 10:56:23 +00:00
Jeremy Ruston
41ab94978f Renaming tiddlers for consistency 2024-01-24 10:55:14 +00:00
Jeremy Ruston
26e198b7d8 First pass at MWS icon 2024-01-23 22:05:58 +00:00
Jeremy Ruston
d16746ab38 Extend image widget to support alternate content if a remote image fails to load
...and use it to add an image for bags/recipes that do not have a $:/favicon.ico
2024-01-23 22:05:22 +00:00
Jeremy Ruston
627c3e20cc Add docs bags 2024-01-23 16:53:12 +00:00
Jeremy Ruston
4d42d4a190 Escape less than sign
Otherwise tiddlers containing `</script>` will break TiddlyWiki
2024-01-23 16:52:49 +00:00
Jeremy Ruston
ff184822ca Don't wikify recipe descriptions 2024-01-23 16:52:11 +00:00
Jeremy Ruston
ddbd6d1e82 Fix favicon aspect ratio 2024-01-23 16:51:57 +00:00
Jeremy Ruston
f6d6478944 Add support for recipe descriptions 2024-01-23 14:29:50 +00:00
Jeremy Ruston
138c7f2665 Don't use the filesystem plugin
Otherwise changes to _multiwikiserver/ tiddlers are saved back to the file system

Perhaps it would work better to configure the wiki to sync state tiddlers to the browser.
2024-01-23 14:29:08 +00:00
Jeremy Ruston
239ace0c07 Avoid clients of sqlTiddlerStore having to call updateAdminWIki() explicitly 2024-01-23 12:53:06 +00:00
Jeremy Ruston
c1312100aa Admin UI styling 2024-01-23 12:52:40 +00:00
Jeremy Ruston
e343eccdc3 Refactor _canonical_uri handling out of route handlers 2024-01-23 10:51:12 +00:00
Jeremy Ruston
da5b316358 Split SqlTiddlerStore into SqlTiddlerStore and SqlTiddlerDatabase
The motivation is to encapsulate knowledge of the SQL queries
2024-01-22 22:08:55 +00:00
Jeremy Ruston
dc8692044c Use SQLite's AUTOINCREMENT to give us tiddler version identifiers
This commit fixes sync within hosted wikis
2024-01-21 18:18:29 +00:00
Jeremy Ruston
4f9ba11489 Update to newest better-sqlite3 2024-01-21 18:17:23 +00:00
Jeremy Ruston
f7914db019 Add bag and recipe favicons to dashboard 2024-01-20 21:50:12 +00:00
Jeremy Ruston
11ecaff7db Fix typo 2024-01-20 21:48:40 +00:00
Jeremy Ruston
d832bbcc70 Order the results of getRecipeTiddlers 2024-01-20 21:48:33 +00:00
Jeremy Ruston
59aed49e98 Make getRecipeTiddlers return the bagname as well 2024-01-20 20:22:46 +00:00
Jeremy Ruston
e9f83ca735 Add missing LIMIT 1 2024-01-19 22:03:07 +00:00
Jeremy Ruston
afa9ad3cde Update store.getRecipeTiddler to also return the bag from which the tiddler came 2024-01-19 20:35:47 +00:00
Jeremy Ruston
01d29ed11e get bag tiddler and put recipe tiddler should return the bag name 2024-01-19 20:12:29 +00:00
Jeremy Ruston
8f9ae7e4d5 Clarify method name 2024-01-19 19:52:57 +00:00
Jeremy Ruston
70b048f356 Fix bag links 2024-01-19 19:36:36 +00:00
Jeremy Ruston
5fddd3b104 Add support for retrieving tiddlers from bags 2024-01-19 19:33:58 +00:00
Jeremy Ruston
02afbb4000 Rename some of the routes more logically 2024-01-19 19:27:54 +00:00
Jeremy Ruston
54432485e7 Add an HTML view of bag listings 2024-01-19 19:25:58 +00:00
Jeremy Ruston
26ede2839b Add support for _canonical_uri tiddlers
Currently hard wired to kick in for tiddlers over 10MB (in base64 representation for binary tiddlers)
2024-01-19 14:46:21 +00:00
Jeremy Ruston
4b0df1a7ae Basic support for creating bags and recipes
Cannot yet specify the bags for the new recipe
2024-01-19 11:03:58 +00:00
Jeremy Ruston
9767e7d3b7 Update entity state tiddlers on startup to read bag and recipe info 2024-01-19 11:03:27 +00:00
Jeremy Ruston
4133e7d6d6 Stream wiki generation
Avoids "string too long" errors when working with big tiddlers (>100MB)
2024-01-19 10:52:12 +00:00
Jeremy Ruston
4f37355a9f Tests should use a dummy admin wiki 2024-01-19 10:28:04 +00:00
Jeremy Ruston
82fae45656 Admin styling 2024-01-18 21:48:09 +00:00
Jeremy Ruston
2f09c32d2d Fix getTiddler query 2024-01-18 21:47:57 +00:00
Jeremy Ruston
a16338ce11 Merge branch 'master' into multi-wiki-support 2024-01-18 16:43:43 +00:00
Jeremy Ruston
50d0b1412d Fix CI tests 2024-01-18 09:02:41 +00:00
Jeremy Ruston
8941bd1747 Server extension framework
May not actually be needed
2024-01-17 22:42:01 +00:00
Jeremy Ruston
615dc0c4a3 First pass at admin user interface 2024-01-17 22:41:41 +00:00
Jeremy Ruston
1fb8b2e279 Fix broken test 2024-01-05 15:45:40 +00:00
Jeremy Ruston
0799177cf4 Add another recipe, improve docs 2024-01-05 15:40:39 +00:00
Jeremy Ruston
1eed61397b Fix create recipe SQL bug 2024-01-05 15:37:48 +00:00
Jeremy Ruston
3f1f7c7ef7 Remove debugging code 2024-01-05 11:08:33 +00:00
Jeremy Ruston
8543dda4aa Fix broken test 2024-01-05 11:01:10 +00:00
Jeremy Ruston
68a89b615d Use a persistent disk-based database 2024-01-05 10:58:07 +00:00
Jeremy Ruston
e9d3f67c5c Add new multiwikiserver edition 2024-01-03 16:47:20 +00:00
Jeremy Ruston
a980390870 Implement APIs for client wikis to sync with the server
It is now possible to create and edit tiddlers, using the existing tiddlywebadaptor syncing mechanism. There are a lot of hacks and lumpiness to make things compatible, so I think I will end up with an independent implementation
2024-01-03 16:27:13 +00:00
Jeremy Ruston
299781bdba Update docs 2024-01-02 21:47:08 +00:00
Jeremy Ruston
f42d3e0536 Update usage instructions 2024-01-02 21:41:25 +00:00
Jeremy Ruston
993eb5c90d Tests need npm install 2024-01-02 21:41:06 +00:00
Jeremy Ruston
f8f8319324 Add dependencies to package.json
This is needed in order for our CI to be able to run the tests
2024-01-02 14:47:32 +00:00
Jeremy Ruston
12d84c43c9 Initial Commit 2024-01-02 14:39:14 +00:00
351 changed files with 12282 additions and 3434 deletions

View File

@@ -4,6 +4,7 @@ on:
branches:
- master
- tiddlywiki-com
- multi-wiki-support
env:
NODE_VERSION: "22"
jobs:
@@ -82,3 +83,14 @@ jobs:
- run: "./bin/build-tw-org.sh"
env:
GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }}
build-mws-tiddlywiki-com:
runs-on: ubuntu-latest
if: github.ref == 'refs/heads/multi-wiki-support'
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
with:
node-version: "${{ env.NODE_VERSION }}"
- run: "./bin/build-mws-site.sh"
env:
GH_TOKEN: ${{ secrets.GITHUBPUSHTOKEN }}

2
.gitignore vendored
View File

@@ -5,7 +5,9 @@
tmp/
output/
node_modules/
store/
/test-results/
/playwright-report/
/playwright/.cache/
$__StoryList.tid
/editions/test/test-store/*

View File

@@ -0,0 +1,4 @@
The `multi-wiki-support` branch includes some changes that are not intended to be merged into the `master` branch:
* Readme update (see `editions/tw5.com/tiddlers/readme/ReadMe.tid`)
* Remove `multiwikiserver` plugin from `readme-bld.sh` (see `bin/readme-bld.sh`)

97
bin/build-mws-site.sh Executable file
View File

@@ -0,0 +1,97 @@
#!/bin/bash
# Build mws.tiddlywiki.com assets.
# Default to the version of TiddlyWiki installed in this repo
if [ -z "$MWSTWCOM_BUILD_TIDDLYWIKI" ]; then
MWSTWCOM_BUILD_TIDDLYWIKI=./tiddlywiki.js
fi
echo "Using MWSTWCOM_BUILD_TIDDLYWIKI as [$MWSTWCOM_BUILD_TIDDLYWIKI]"
# Set up the build details
if [ -z "$MWSTWCOM_BUILD_DETAILS" ]; then
MWSTWCOM_BUILD_DETAILS="$(git symbolic-ref --short HEAD)-$(git rev-parse HEAD) from $(git remote get-url origin)"
fi
echo "Using MWSTWCOM_BUILD_DETAILS as [$MWSTWCOM_BUILD_DETAILS]"
if [ -z "$MWSTWCOM_BUILD_COMMIT" ]; then
MWSTWCOM_BUILD_COMMIT="$(git rev-parse HEAD)"
fi
echo "Using MWSTWCOM_BUILD_COMMIT as [$MWSTWCOM_BUILD_COMMIT]"
# Set up the build output directory
if [ -z "$MWSTWCOM_BUILD_OUTPUT" ]; then
MWSTWCOM_BUILD_OUTPUT=$(mktemp -d)
fi
mkdir -p $MWSTWCOM_BUILD_OUTPUT
if [ ! -d "$MWSTWCOM_BUILD_OUTPUT" ]; then
echo 'A valid MWSTWCOM_BUILD_OUTPUT environment variable must be set'
exit 1
fi
echo "Using MWSTWCOM_BUILD_OUTPUT as [$MWSTWCOM_BUILD_OUTPUT]"
# Pull existing GitHub pages content
git clone --depth=1 --branch=main "https://github.com/TiddlyWiki/mws.tiddlywiki.com-gh-pages.git" $MWSTWCOM_BUILD_OUTPUT
# Make the CNAME file that GitHub Pages requires
echo "mws.tiddlywiki.com" > $MWSTWCOM_BUILD_OUTPUT/CNAME
# Delete any existing static content
mkdir -p $MWSTWCOM_BUILD_OUTPUT/static
rm $MWSTWCOM_BUILD_OUTPUT/static/*
# Put the build details into a .tid file so that it can be included in each build (deleted at the end of this script)
echo -e -n "title: $:/build\ncommit: $MWSTWCOM_BUILD_COMMIT\n\n$MWSTWCOM_BUILD_DETAILS\n" > $MWSTWCOM_BUILD_OUTPUT/build.tid
######################################################
#
# mws.tiddlywiki.com distribution
#
######################################################
# /index.html Main site
# /favicon.ico Favicon for main site
# /static.html Static rendering of default tiddlers
# /alltiddlers.html Static rendering of all tiddlers
# /static/* Static single tiddlers
# /static/static.css Static stylesheet
# /static/favicon.ico Favicon for static pages
node $MWSTWCOM_BUILD_TIDDLYWIKI \
editions/multiwikidocs \
--verbose \
--version \
--load $MWSTWCOM_BUILD_OUTPUT/build.tid \
--output $MWSTWCOM_BUILD_OUTPUT \
--build favicon static index \
|| exit 1
# Delete the temporary build tiddler
rm $MWSTWCOM_BUILD_OUTPUT/build.tid || exit 1
# Push output back to GitHub
# Exit script immediately if any command fails
set -e
pushd $MWSTWCOM_BUILD_OUTPUT
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Actions"
git add -A .
git commit --message "GitHub build: $GITHUB_RUN_NUMBER of $TW5_BUILD_BRANCH ($(date +'%F %T %Z'))"
git remote add deploy "https://$GH_TOKEN@github.com/TiddlyWiki/mws.tiddlywiki.com-gh-pages.git" &>/dev/null
git push deploy main &>/dev/null
popd

View File

@@ -2,6 +2,8 @@
# test TiddlyWiki5 for tiddlywiki.com
npm install
node ./tiddlywiki.js \
./editions/test \
--verbose \

View File

@@ -10,6 +10,7 @@ fi
# tw5.com readmes
node $TW5_BUILD_TIDDLYWIKI \
+plugins/tiddlywiki/multiwikiserver \
editions/tw5.com \
--verbose \
--output . \

View File

@@ -1470,15 +1470,17 @@ $tw.Wiki = function(options) {
// Unpack the currently registered plugins, creating shadow tiddlers for their constituent tiddlers
this.unpackPluginTiddlers = function() {
var self = this;
// Sort the plugin titles by the `plugin-priority` field, if this field is missing, default to 1
pluginTiddlers.sort(function(a, b) {
var priorityA = "plugin-priority" in a.fields ? a.fields["plugin-priority"] : 1;
var priorityB = "plugin-priority" in b.fields ? b.fields["plugin-priority"] : 1;
if (priorityA !== priorityB) {
return priorityA - priorityB;
} else if (a.fields.title < b.fields.title) {
// Sort the plugin titles by the `plugin-priority` field
pluginTiddlers.sort(function(a,b) {
if("plugin-priority" in a.fields && "plugin-priority" in b.fields) {
return a.fields["plugin-priority"] - b.fields["plugin-priority"];
} else if("plugin-priority" in a.fields) {
return -1;
} else if (a.fields.title === b.fields.title) {
} else if("plugin-priority" in b.fields) {
return +1;
} else if(a.fields.title < b.fields.title) {
return -1;
} else if(a.fields.title === b.fields.title) {
return 0;
} else {
return +1;

View File

@@ -38,6 +38,13 @@ Commander.prototype.log = function(str) {
}
};
/*
Clear pending commands
*/
Commander.prototype.clearCommands = function() {
this.commandTokens = this.commandTokens.slice(0,this.nextToken);
};
/*
Write a string if verbose flag is set
*/

View File

@@ -16,7 +16,7 @@ var Server = require("$:/core/modules/server/server.js").Server;
exports.info = {
name: "listen",
synchronous: true,
synchronous: false,
namedParameterMode: true,
mandatoryParameters: []
};
@@ -38,7 +38,11 @@ Command.prototype.execute = function() {
wiki: this.commander.wiki,
variables: self.params
});
var nodeServer = this.server.listen();
var nodeServer = this.server.listen(null,null,null,{
callback: function() {
self.callback();
}
});
$tw.hooks.invokeHook("th-server-command-post-start",this.server,nodeServer,"tiddlywiki");
return null;
};

View File

@@ -0,0 +1,37 @@
/*\
title: $:/core/modules/commands/quit.js
type: application/javascript
module-type: command
Immediately ends the TiddlyWiki process
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
exports.info = {
name: "quit",
synchronous: true
};
var Command = function(params,commander,callback) {
var self = this;
this.params = params;
this.commander = commander;
this.callback = callback;
};
Command.prototype.execute = function() {
// Clear any pending commands
this.commander.clearCommands();
// We don't actually quit, we just issue the "th-quit" hook to give listeners a chance to exit
$tw.hooks.invokeHook("th-quit");
return null;
};
exports.Command = Command;
})();

View File

@@ -25,7 +25,7 @@ exports.handler = function(request,response,state) {
response.end();
} else {
// Redirect to the root wiki if login worked
var location = ($tw.syncadaptor && $tw.syncadaptor.host)? $tw.syncadaptor.host: `${state.pathPrefix}/`;
var location = ($tw.syncadaptor && $tw.syncadaptor.host)? $tw.syncadaptor.host: "/";
response.writeHead(302,{
Location: location
});

View File

@@ -364,6 +364,11 @@ Server.prototype.listen = function(port,host,prefix) {
}
// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)
server.on("listening",function() {
// Stop listening when we get the "th-quit" hook
$tw.hooks.addHook("th-quit",function() {
server.close();
});
// Log listening details
var address = server.address(),
url = self.protocol + "://" + (address.family === "IPv6" ? "[" + address.address + "]" : address.address) + ":" + address.port + prefix;
$tw.utils.log("Serving on " + url,"brown/orange");

View File

@@ -88,7 +88,6 @@ exports.startup = function() {
if($tw.browser) {
var pluginTiddler = $tw.wiki.getTiddler(plugins[0]);
if(pluginTiddler) {
document.documentElement.setAttribute("lang",pluginTiddler.getFieldString("name"));
document.documentElement.setAttribute("dir",pluginTiddler.getFieldString("text-direction") || "auto");
} else {
document.documentElement.removeAttribute("dir");

View File

@@ -257,7 +257,11 @@ Save an incoming tiddler in the store, and updates the associated tiddlerInfo
Syncer.prototype.storeTiddler = function(tiddlerFields) {
// Save the tiddler
var tiddler = new $tw.Tiddler(tiddlerFields);
this.wiki.addTiddler(tiddler);
// Only save the tiddler if it has changed
var existingTiddler = this.wiki.getTiddler(tiddlerFields.title);
if(!existingTiddler || !existingTiddler.isEqual(tiddler)) {
this.wiki.addTiddler(tiddler);
}
// Save the tiddler revision and changeCount details
this.tiddlerInfo[tiddlerFields.title] = {
revision: this.getTiddlerRevision(tiddlerFields.title),
@@ -556,6 +560,7 @@ SaveTiddlerTask.prototype.run = function(callback) {
// Invoke the callback
callback(null);
},{
syncer: self.syncer,
tiddlerInfo: self.syncer.tiddlerInfo[self.title]
});
} else {
@@ -586,6 +591,7 @@ DeleteTiddlerTask.prototype.run = function(callback) {
// Invoke the callback
callback(null);
},{
syncer: self.syncer,
tiddlerInfo: self.syncer.tiddlerInfo[this.title]
});
};
@@ -614,6 +620,8 @@ LoadTiddlerTask.prototype.run = function(callback) {
}
// Invoke the callback
callback(null);
},{
syncer: self.syncer
});
};

View File

@@ -42,9 +42,6 @@ BrowseWidget.prototype.render = function(parent,nextSibling) {
if(this.tooltip) {
domNode.setAttribute("title",this.tooltip);
}
if(this.tabIndex) {
domNode.setAttribute("tabindex", this.tabIndex);
}
// Nw.js supports "nwsaveas" to force a "save as" dialogue that allows a new or existing file to be selected
if(this.nwsaveas) {
domNode.setAttribute("nwsaveas",this.nwsaveas);
@@ -59,9 +56,6 @@ BrowseWidget.prototype.render = function(parent,nextSibling) {
if(this.nwdirectory) {
domNode.setAttribute("nwdirectory",this.nwdirectory);
}
if(this.isDisabled === "yes") {
domNode.setAttribute("disabled", true);
}
// Add a click event handler
domNode.addEventListener("change",function (event) {
if(self.message) {
@@ -100,8 +94,6 @@ BrowseWidget.prototype.execute = function() {
this.accept = this.getAttribute("accept");
this.webkitdirectory = this.getAttribute("webkitdirectory");
this.nwdirectory = this.getAttribute("nwdirectory");
this.tabIndex = this.getAttribute("tabindex");
this.isDisabled = this.getAttribute("disabled", "no");
};
/*

View File

@@ -47,9 +47,6 @@ CheckboxWidget.prototype.render = function(parent,nextSibling) {
if(isChecked === undefined && this.checkboxIndeterminate === "yes") {
this.inputDomNode.indeterminate = true;
}
if(this.tabIndex) {
this.inputDomNode.setAttribute("tabindex", this.tabIndex);
}
if(this.isDisabled === "yes") {
this.inputDomNode.setAttribute("disabled",true);
}
@@ -308,7 +305,6 @@ CheckboxWidget.prototype.execute = function() {
this.checkboxClass = this.getAttribute("class","");
this.checkboxInvertTag = this.getAttribute("invertTag","");
this.isDisabled = this.getAttribute("disabled","no");
this.tabIndex = this.getAttribute();
// Make the child widgets
this.makeChildWidgets();
};
@@ -318,7 +314,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
*/
CheckboxWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.listField || changedAttributes.listIndex || changedAttributes.filter || changedAttributes.checked || changedAttributes.unchecked || changedAttributes["default"] || changedAttributes.indeterminate || changedAttributes["class"] || changedAttributes.disabled || changedAttributes.tabindex) {
if(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.listField || changedAttributes.listIndex || changedAttributes.filter || changedAttributes.checked || changedAttributes.unchecked || changedAttributes["default"] || changedAttributes.indeterminate || changedAttributes["class"] || changedAttributes.disabled) {
this.refreshSelf();
return true;
} else {

View File

@@ -48,9 +48,6 @@ EditShortcutWidget.prototype.render = function(parent,nextSibling) {
if(this.shortcutAriaLabel) {
this.inputNode.setAttribute("aria-label",this.shortcutAriaLabel);
}
if(this.isDisabled === "yes") {
this.inputNode.setAttribute("disabled", true);
}
// Assign the current shortcut
this.updateInputNode();
// Add event handlers
@@ -80,7 +77,6 @@ EditShortcutWidget.prototype.execute = function() {
this.shortcutTooltip = this.getAttribute("tooltip");
this.shortcutAriaLabel = this.getAttribute("aria-label");
this.shortcutFocus = this.getAttribute("focus");
this.isDisabled = this.getAttribute("disabled", "no");
};
/*
@@ -142,7 +138,7 @@ Selectively refreshes the widget if needed. Returns true if the widget needed re
*/
EditShortcutWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes["aria-label"] || changedAttributes.focus || changedAttributes.disabled) {
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes["aria-label"] || changedAttributes.focus) {
this.refreshSelf();
return true;
} else if(changedTiddlers[this.shortcutTiddler]) {

View File

@@ -163,4 +163,4 @@ ImageWidget.prototype.refresh = function(changedTiddlers) {
exports.image = ImageWidget;
})();
})();

View File

@@ -44,7 +44,8 @@ NavigatorWidget.prototype.render = function(parent,nextSibling) {
{type: "tm-fold-tiddler", handler: "handleFoldTiddlerEvent"},
{type: "tm-fold-other-tiddlers", handler: "handleFoldOtherTiddlersEvent"},
{type: "tm-fold-all-tiddlers", handler: "handleFoldAllTiddlersEvent"},
{type: "tm-unfold-all-tiddlers", handler: "handleUnfoldAllTiddlersEvent"}
{type: "tm-unfold-all-tiddlers", handler: "handleUnfoldAllTiddlersEvent"},
{type: "tm-manage-acl", handler: "handleManageACLTiddlersEvent"}
]);
this.parentDomNode = parent;
this.computeAttributes();
@@ -277,8 +278,6 @@ NavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {
}
// Get the current value of the tiddler we're editing
var tiddler = this.wiki.getTiddler(targetTitle);
var defaultType = this.wiki.getTiddlerText("$:/config/DefaultMissingType", "").trim();
var defaultFields = { type: defaultType };
// Save the initial value of the draft tiddler
draftTitle = this.generateDraftTitle(targetTitle);
var draftTiddler = new $tw.Tiddler({
@@ -290,8 +289,7 @@ NavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {
"draft.title": targetTitle,
"draft.of": targetTitle
},
this.wiki.getModificationFields(),
tiddler === null || tiddler === undefined ? defaultFields : {}
this.wiki.getModificationFields()
);
this.wiki.addTiddler(draftTiddler);
return draftTiddler;
@@ -638,6 +636,14 @@ NavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {
});
};
NavigatorWidget.prototype.handleManageACLTiddlersEvent = function() {
var pathname = window.location.pathname;
var paths = pathname.split("/");
var recipeName = paths[paths.length - 1];
var bagName = document.querySelector("h1.tc-site-title").innerHTML;
window.location.href = "/admin/acl/"+recipeName+"/"+bagName
};
exports.navigator = NavigatorWidget;
})();

View File

@@ -47,9 +47,6 @@ RadioWidget.prototype.render = function(parent,nextSibling) {
if(isChecked) {
this.inputDomNode.checked = true;
}
if(this.tabIndex) {
this.inputDomNode.setAttribute("tabindex", this.tabIndex);
}
if(this.isDisabled === "yes") {
this.inputDomNode.setAttribute("disabled",true);
}
@@ -114,7 +111,6 @@ RadioWidget.prototype.execute = function() {
this.radioClass = this.getAttribute("class","");
this.radioDefault = this.getAttribute("default");
this.isDisabled = this.getAttribute("disabled","no");
this.tabIndex = this.getAttribute("tabindex");
this.radioActions = this.getAttribute("actions","");
// Make the child widgets
this.makeChildWidgets();

View File

@@ -46,9 +46,6 @@ RangeWidget.prototype.render = function(parent,nextSibling) {
if(this.increment){
this.inputDomNode.setAttribute("step", this.increment);
}
if(this.tabIndex) {
this.inputDomNode.setAttribute("tabindex", this.tabIndex);
}
if(this.isDisabled === "yes") {
this.inputDomNode.setAttribute("disabled",true);
}
@@ -167,7 +164,6 @@ RangeWidget.prototype.execute = function() {
this.defaultValue = this.getAttribute("default","");
this.elementClass = this.getAttribute("class","");
this.isDisabled = this.getAttribute("disabled","no");
this.tabIndex = this.getAttribute("tabindex");
// Actions since 5.1.23
// Next 2 only fire once!
this.actionsMouseDown = this.getAttribute("actionsStart","");

View File

@@ -53,9 +53,6 @@ SelectWidget.prototype.render = function(parent,nextSibling) {
if(this.selectMultiple) {
domNode.setAttribute("multiple","multiple");
}
if(this.isDisabled === "yes") {
domNode.setAttribute("disabled", true);
}
if(this.selectSize) {
domNode.setAttribute("size",this.selectSize);
}
@@ -175,7 +172,6 @@ SelectWidget.prototype.execute = function() {
this.selectTabindex = this.getAttribute("tabindex");
this.selectTooltip = this.getAttribute("tooltip");
this.selectFocus = this.getAttribute("focus");
this.isDisabled = this.getAttribute("disabled","no");
// Make the child widgets
this.makeChildWidgets();
};
@@ -186,7 +182,7 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
SelectWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
// If we're using a different tiddler/field/index then completely refresh ourselves
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tooltip || changedAttributes.tabindex || changedAttributes.disabled) {
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tooltip || changedAttributes.tabindex) {
this.refreshSelf();
return true;
} else {

View File

@@ -33,7 +33,6 @@ TestCaseWidget.prototype.render = function(parent,nextSibling) {
this.execute();
// Create container DOM node
var domNode = this.document.createElement("div");
domNode.setAttribute("class", "tc-test-case " + this.testcaseClass);
this.domNodes.push(domNode);
parent.insertBefore(domNode,nextSibling);
// Render the children into a hidden DOM node
@@ -146,7 +145,6 @@ TestCaseWidget.prototype.execute = function() {
this.testcaseTestActions = this.getAttribute("testActions");
this.testcaseTestExpectedResult = this.getAttribute("testExpectedResult");
this.testcaseHideIfPass = this.getAttribute("testHideIfPass");
this.testcaseClass = this.getAttribute("class","");
};
/*

View File

@@ -65,8 +65,8 @@ flexoki-bl-2: <<colour flexoki-blue-600>>
flexoki-pu-2: <<colour flexoki-purple-600>>
flexoki-ma-2: <<colour flexoki-magenta-600>>
alert-background: <<colour flexoki-yellow-900>>
alert-border: <<colour flexoki-ye>>
alert-background: <<colour flexoki-yellow-100>>
alert-border: <<colour flexoki-ye-2>>
alert-highlight: <<colour flexoki-re>>
alert-muted-foreground: <<colour flexoki-ye>>
background: #100F0F
@@ -103,8 +103,8 @@ external-link-foreground-visited: <<colour flexoki-bl>>
external-link-foreground: <<colour flexoki-bl>>
footnote-target-background: <<colour flexoki-bg-2>>
foreground: #CECDC3
highlight-background: <<colour flexoki-cyan-950>>
highlight-foreground: <<colour flexoki-cyan-400>>
highlight-background: #ffff00
highlight-foreground: #000000
menubar-background: <<colour primary>>
menubar-foreground: <<colour flexoki-paper>>
message-background: <<colour background>>
@@ -118,14 +118,14 @@ modal-footer-border: <<colour flexoki-ui-3>>
modal-header-border: <<colour flexoki-ui-3>>
muted-foreground: <<colour flexoki-tx-2>>
network-activity-foreground: <<colour flexoki-cy>>
notification-background: <<colour flexoki-bg>>
notification-border: <<colour flexoki-paper>>
notification-background: <<colour flexoki-ui-3>>
notification-border: <<colour flexoki-ui>>
page-background: <<colour flexoki-bg-2>>
pre-background: <<colour flexoki-bg-2>>
pre-background: <<colour flexoki-ui-3>>
pre-border: <<colour flexoki-ui-2>>
primary: <<colour flexoki-cy>>
selection-background: <<colour primary>>
selection-foreground: <<colour background>>
selection-background: #2b7b73
selection-foreground: <<colour flexoki-tx>>
select-tag-background: <<colour flexoki-bg>>
select-tag-foreground: <<colour flexoki-paper>>
sidebar-button-foreground: <<colour foreground>>
@@ -193,20 +193,20 @@ toolbar-cancel-button:
toolbar-done-button:
untagged-background: <<colour flexoki-tx-3>>
very-muted-foreground: <<colour flexoki-600>>
wikilist-background: <<colour flexoki-ui>>
wikilist-item: <<colour flexoki-black>>
wikilist-info: <<colour flexoki-paper>>
wikilist-title: <<colour flexoki-tx-2>>
wikilist-background: #e5e5e5
wikilist-item: #fff
wikilist-info: #000
wikilist-title: #666
wikilist-title-svg: <<colour wikilist-title>>
wikilist-url: <<colour flexoki-tx-3>>
wikilist-button-open: <<colour flexoki-gr>>
wikilist-button-open-hover: <<colour flexoki-gr-2>>
wikilist-button-reveal: <<colour flexoki-cy>>
wikilist-button-reveal-hover: <<colour flexoki-cy-2>>
wikilist-button-remove: <<colour flexoki-re>>
wikilist-button-remove-hover: <<colour flexoki-re-2>>
wikilist-toolbar-background: <<colour flexoki-ui-2>>
wikilist-toolbar-foreground: <<colour flexoki-600>>
wikilist-droplink-dragover: <<colour flexoki-pu>>
wikilist-button-background: <<colour flexoki-tx-3>>
wikilist-button-foreground: <<colour flexoki-paper>>
wikilist-url: #aaa
wikilist-button-open: #4fb82b
wikilist-button-open-hover: green
wikilist-button-reveal: #5778d8
wikilist-button-reveal-hover: blue
wikilist-button-remove: #d85778
wikilist-button-remove-hover: red
wikilist-toolbar-background: #d3d3d3
wikilist-toolbar-foreground: #888
wikilist-droplink-dragover: rgba(255,192,192,0.5)
wikilist-button-background: #acacac
wikilist-button-foreground: #000

View File

@@ -94,8 +94,8 @@ dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: <<colour background>>
dropdown-tab-background: <<colour flexoki-bg-2>>
dropdown-tab-background-selected: #fff
dropdown-tab-background: #ececec
dropzone-background: <<colour flexoki-gr>>
external-link-background-hover: inherit
external-link-background-visited: inherit
@@ -105,8 +105,8 @@ external-link-foreground-visited: <<colour flexoki-bl>>
external-link-foreground: <<colour flexoki-bl>>
footnote-target-background: <<colour flexoki-bg-2>>
foreground: #100F0F
highlight-background: <<colour flexoki-cyan-050>>
highlight-foreground: inherit
highlight-background: #ffff00
highlight-foreground: #000000
menubar-background: <<colour primary>>
menubar-foreground: <<colour flexoki-paper>>
message-background: <<colour flexoki-bg>>
@@ -123,7 +123,7 @@ network-activity-foreground: <<colour flexoki-cy-2>>
notification-background: <<colour flexoki-bg>>
notification-border: <<color flexoki-black>>
page-background: <<colour flexoki-bg-2>>
pre-background: <<colour flexoki-bg-2>>
pre-background: <<colour flexoki-bg>>
pre-border: <<colour flexoki-ui-2>>
primary: <<colour flexoki-cy-2>>
selection-background: <<colour flexoki-cy-2>>
@@ -196,19 +196,19 @@ toolbar-done-button:
untagged-background: <<colour flexoki-tx-3>>
very-muted-foreground: <<colour flexoki-500>>
wikilist-background: <<colour flexoki-ui>>
wikilist-item: <<colour flexoki-paper>>
wikilist-info: <<colour flexoki-black>>
wikilist-title: <<colour flexoki-tx-2>>
wikilist-item: #fff
wikilist-info: #000
wikilist-title: #666
wikilist-title-svg: <<colour wikilist-title>>
wikilist-url: <<colour flexoki-tx-3>>
wikilist-button-open: <<colour flexoki-gr-2>>
wikilist-button-open-hover: <<colour flexoki-gr>>
wikilist-button-reveal: <<colour flexoki-cy-2>>
wikilist-button-reveal-hover: <<colour flexoki-cy>>
wikilist-button-remove: <<colour flexoki-re-2>>
wikilist-button-remove-hover: <<colour flexoki-re>>
wikilist-toolbar-background: <<colour flexoki-ui-2>>
wikilist-toolbar-foreground: <<colour flexoki-500>>
wikilist-droplink-dragover: <<colour flexoki-pu>>
wikilist-button-background: <<colour flexoki-tx-3>>
wikilist-button-foreground: <<colour flexoki-black>>
wikilist-url: #aaa
wikilist-button-open: #4fb82b
wikilist-button-open-hover: green
wikilist-button-reveal: #5778d8
wikilist-button-reveal-hover: blue
wikilist-button-remove: #d85778
wikilist-button-remove-hover: red
wikilist-toolbar-background: #d3d3d3
wikilist-toolbar-foreground: #888
wikilist-droplink-dragover: rgba(255,192,192,0.5)
wikilist-button-background: #acacac
wikilist-button-foreground: #000

View File

@@ -21,9 +21,9 @@ diff-delete-foreground: <<colour foreground>>
diff-equal-background:
diff-equal-foreground: <<colour foreground>>
diff-insert-background: #b8bb26
diff-insert-foreground: <<colour background>>
diff-invisible-background: #ffff97
diff-invisible-foreground: #444347
diff-insert-foreground: <<colour foreground>>
diff-invisible-background:
diff-invisible-foreground: <<colour muted-foreground>>
dirty-indicator: #fb4934
download-background: #b8bb26
download-foreground: <<colour background>>

View File

@@ -21,8 +21,8 @@ diff-delete-foreground: <<colour foreground>>
diff-equal-background:
diff-equal-foreground: <<colour foreground>>
diff-insert-background: #A3BE8C
diff-insert-foreground: <<colour background>>
diff-invisible-background: #f9f3b5
diff-insert-foreground: <<colour foreground>>
diff-invisible-background:
diff-invisible-foreground: <<colour muted-foreground>>
dirty-indicator: #BF616A
download-background: #A3BE8C

View File

@@ -125,14 +125,6 @@ foreground: #657b83
tiddler-link-foreground: <<colour primary>>
alert-border: #b99e2f
diff-delete-background: <<colour red>>
diff-delete-foreground: <<colour background>>
diff-equal-background: inherit
diff-equal-foreground: inherit
diff-insert-background: <<colour green>>
diff-insert-foreground: <<colour background>>
diff-invisible-background: <<colour yellow>>
diff-invisible-foreground: <<colour background>>
dirty-indicator: #ff0000
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit

View File

@@ -18,14 +18,6 @@ button-foreground: #93a1a1
code-background: #073642
code-border: #586e75
code-foreground: #93a1a1
diff-delete-background: #dc322f
diff-delete-foreground: #eee8d5
diff-equal-background: inherit
diff-equal-foreground: inherit
diff-insert-background: #859900
diff-insert-foreground: #073642
diff-invisible-background: #b58900
diff-invisible-foreground: #eee8d5
dirty-indicator: #dc322f
download-background: #859900
download-foreground: #073642

View File

@@ -18,14 +18,6 @@ button-foreground: #586e75
code-background: #eee8d5
code-border: #93a1a1
code-foreground: #586e75
diff-delete-background: #dc322f
diff-delete-foreground: #eee8d5
diff-equal-background: inherit
diff-equal-foreground: inherit
diff-insert-background: #859900
diff-insert-foreground: #eee8d5
diff-invisible-background: #b58900
diff-invisible-foreground: #eee8d5
dirty-indicator: #dc322f
download-background: #859900
download-foreground: #eee8d5

View File

@@ -19,13 +19,13 @@ code-background: rgba(0,0,0,0.03)
code-border: rgba(0,0,0,0.08)
code-foreground: rgb(255, 94, 94)
diff-delete-background: #ffc9c9
diff-delete-foreground: <<colour background>>
diff-delete-foreground: <<colour foreground>>
diff-equal-background:
diff-equal-foreground: <<colour foreground>>
diff-insert-background: #aaefad
diff-insert-foreground: <<colour background>>
diff-invisible-background: #fdfcbd
diff-invisible-foreground: <<colour background>>
diff-insert-foreground: <<colour foreground>>
diff-invisible-background:
diff-invisible-foreground: <<colour muted-foreground>>
dirty-indicator: rgb(255, 94, 94)
download-background: #19a974
download-foreground: rgb(38, 38, 38)

View File

@@ -8,8 +8,13 @@ title: $:/core/ui/EditorToolbar/link-dropdown
<$action-deletetiddler $filter="[<dropdown-state>] [<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]"/>
\end
\procedure prefix.bracket() [
\procedure suffix.bracket() ]
\function tf.get-focus-selector() [[data-tiddler-title=]addprefix[$(prefix.bracket)$]substitute[]addsuffix<cssEscapedTitle>addsuffix[$(suffix.bracket)$]substitute[]] .tc-create-wikitext-link input :and[join[ ]]
\procedure cancel-search-actions-inner()
<$let userInput={{{ [<storeTitle>get[text]] }}}><$list filter="[<searchTiddler>get[text]!match<userInput>]" emptyMessage="<$action-deletetiddler $filter='[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]'/>"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text="yes"/></$list></$let>
<$set name="userInput" value={{{ [<storeTitle>get[text]] }}}><$list filter="[<searchTiddler>get[text]!match<userInput>]" emptyMessage="<$action-deletetiddler $filter='[<searchTiddler>] [<linkTiddler>] [<storeTitle>] [<searchListState>]'/>"><$action-setfield $tiddler=<<searchTiddler>> text=<<userInput>>/><$action-setfield $tiddler=<<refreshTitle>> text="yes"/></$list></$set>
\end
\procedure cancel-search-actions() <$list filter="[<storeTitle>!has[text]] :and[<searchTiddler>!has[text]]" emptyMessage="<<cancel-search-actions-inner>>"><$action-sendmessage $message="tm-edit-text-operation" $param="focus-editor"/></$list>
@@ -29,9 +34,9 @@ title: $:/core/ui/EditorToolbar/link-dropdown
\whitespace trim
''<<lingo Hint>>''
<$let searchTiddler=`$(config-title)$/search` linkTiddler=`$(config-title)$/link` linktext="" searchListState=<<qualify "$:/temp/link-search/selected-item">> refreshTitle=<<qualify "$:/temp/link-search/refresh">> storeTitle=<<qualify "$:/temp/link-search/input">>>
<$vars searchTiddler={{{ [<config-title>addsuffix[/search]] }}} linkTiddler={{{ [<config-title>addsuffix[/link]] }}} linktext="" searchListState=<<qualify "$:/temp/link-search/selected-item">> refreshTitle=<<qualify "$:/temp/link-search/refresh">> storeTitle=<<qualify "$:/temp/link-search/input">>>
<$let linkTiddler=<<searchTiddler>>>
<$vars linkTiddler=<<searchTiddler>>>
<$keyboard key="((input-tab-right))" actions=<<set-next-input-tab>>>
<$keyboard key="((input-tab-left))" actions=<<set-previous-input-tab>> class="tc-create-wikitext-link">
<$transclude $variable="keyboard-driven-input" tiddler=<<searchTiddler>> storeTitle=<<storeTitle>>
@@ -46,28 +51,28 @@ title: $:/core/ui/EditorToolbar/link-dropdown
<<external-link>>
&#32;
<$button class="tc-btn-invisible tc-btn-mini" style="width: auto; display: inline-block; background-colour: inherit;">
<<cancel-search-actions>><$action-sendmessage $message="tm-focus-selector" $param=`[data-tiddler-title=${[<storyTiddler>escapecss[]]}$] .tc-create-wikitext-link input`/>
<<cancel-search-actions>><$set name="cssEscapedTitle" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<<tf.get-focus-selector>>/></$set>
{{$:/core/images/close-button}}
</$button>
</$reveal>
</$let>
</$vars>
<$reveal tag="div" state=<<storeTitle>> type="nomatch" text="">
<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>
<$let userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}}>
<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}}>
{{$:/core/ui/SearchResults}}
</$let>
</$vars>
</$linkcatcher>
</$reveal>
</$let>
</$vars>
\end
<$transclude $variable="body" config-title=<<qualify "$:/state/Link/">>/>
<$transclude $variable="body" config-title=<<qualify "$:/state/Link/">>/>

View File

@@ -2,7 +2,6 @@ title: $:/core/ui/ViewTemplate/body/rendered-plain-text
code-body: yes
\whitespace trim
\parameters (language:"css")
<$wikify name="text" text={{!!text}} type={{!!type}}>
<$codeblock code=<<text>> language=<<language>>/>
<$codeblock code=<<text>> language="css"/>
</$wikify>

View File

@@ -1,4 +0,0 @@
title: $:/core/ui/ViewTemplate/body/rendered-plain-text/html
code-body: yes
{{||$:/core/ui/ViewTemplate/body/rendered-plain-text|html}}

View File

@@ -3,7 +3,6 @@ tags: $:/tags/ViewTemplateBodyFilter
testcase: [tag[$:/tags/wiki-test-spec]type[text/vnd.tiddlywiki-multiple]] [tag[$:/tags/wiki-test-spec-failing]type[text/vnd.tiddlywiki-multiple]] :then[[$:/core/ui/TestCaseTemplate]]
stylesheet: [tag[$:/tags/Stylesheet]then[$:/core/ui/ViewTemplate/body/rendered-plain-text]]
html: [tag[$:/tags/RawMarkupWikified]] [tag[$:/tags/RawMarkupWikified/TopHead]] [tag[$:/tags/RawMarkupWikified/TopBody]] [tag[$:/tags/RawMarkupWikified/BottomBody]] :then[[$:/core/ui/ViewTemplate/body/rendered-plain-text/html]]
core-ui-tags: [tag[$:/tags/PageTemplate]] [tag[$:/tags/EditTemplate]] [tag[$:/tags/ViewTemplate]] [tag[$:/tags/KeyboardShortcut]] [tag[$:/tags/ImportPreview]] [tag[$:/tags/EditPreview]] [tag[$:/tags/EditorToolbar]] [tag[$:/EditorTools]] [tag[$:/tags/Actions]] [tag[$:/tags/ToolbarButtonStyle]] :then[[$:/core/ui/ViewTemplate/body/code]]
system: [prefix[$:/boot/]] [prefix[$:/core/macros]] [prefix[$:/core/save/]] [prefix[$:/core/templates/]] [prefix[$:/config/]] [prefix[$:/core/config/]] [prefix[$:/info/]] [prefix[$:/language/]] [prefix[$:/languages/]] [prefix[$:/snippets/]] [prefix[$:/info/]] [prefix[$:/state/]] [prefix[$:/status/]] [prefix[$:/temp/]] :and[!is[image]] :then[[$:/core/ui/ViewTemplate/body/code]]
code-body: [field:code-body[yes]then[$:/core/ui/ViewTemplate/body/code]]

View File

@@ -1,55 +1,58 @@
title: $:/core/macros/colour-picker
tags: $:/tags/Macro
\procedure colour-picker-update-recent()
\define colour-picker-update-recent()
<$action-listops
$tiddler="$:/config/ColourPicker/Recent"
$subfilter="[<colour-picker-value>] [list[$:/config/ColourPicker/Recent]remove<colour-picker-value>] +[limit[8]]"
$subfilter="$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]"
/>
\end
\procedure colour-picker-inner(actions)
<$button tag="a" tooltip=<<colour-picker-value>>>
<<colour-picker-update-recent>>
<$transclude $variable="actions"/>
<span style.display="inline-block" style.backgroundColor=<<colour-picker-value>> style.width="100%" style.height="100%" style.borderRadius="50%"/>
\define colour-picker-inner(actions)
<$button tag="a" tooltip="""$(colour-picker-value)$""">
$(colour-picker-update-recent)$
<$transclude $variable="__actions__"/>
<span style="display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;"/>
</$button>
\end
\define colour-picker-recent-inner(actions)
\whitespace trim
\procedure colour-picker-recent-inner(actions)
<$set name="colour-picker-value" value=<<recentColour>>>
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
<$set name="colour-picker-value" value="$(recentColour)$">
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
</$set>
\end
\procedure colour-picker-recent(actions)
\define colour-picker-recent(actions)
\whitespace trim
{{$:/language/ColourPicker/Recent}}<$list filter="[list[$:/config/ColourPicker/Recent]]" variable="recentColour">
&#32;
<$transclude $variable="colour-picker-recent-inner" actions=<<actions>>/>
<$macrocall $name="colour-picker-recent-inner" actions=<<__actions__>>/>
</$list>
\end
\procedure colour-picker(actions)
\define colour-picker(actions)
\whitespace trim
<div class="tc-colour-chooser">
<$transclude $variable="colour-picker-recent" actions=<<actions>>/>
<$macrocall $name="colour-picker-recent" actions=<<__actions__>>/>
---
<$list filter="LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black" variable="colour-picker-value">
&#32;
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
</$list>
---
<$edit-text tiddler="$:/config/ColourPicker/New" tag="input" default="" placeholder="" class="tc-tiny-gap-right"/>
<$edit-text tiddler="$:/config/ColourPicker/New" tag="input" default="" placeholder=""/>
&#32;
<$edit-text tiddler="$:/config/ColourPicker/New" type="color" tag="input"/>
<$set name="colour-picker-value" value={{$:/config/ColourPicker/New}}>
<%if [{$:/config/ColourPicker/New}!is[blank]] %>
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
<%endif%>
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
</$set>
</div>

View File

@@ -1,7 +1,7 @@
title: $:/core/macros/dumpvariables
tags: $:/tags/Macro
\procedure dumpvariables()
\define dumpvariables()
\whitespace trim
<ul>
<$list filter="[variables[]]" variable="varname">

View File

@@ -1,36 +1,39 @@
created: 20170715180840889
modified: 20170715180914005
tags: $:/tags/Macro
title: $:/core/macros/image-picker
type: text/vnd.tiddlywiki
\procedure image-picker-thumbnail(actions)
<$button tag="a" tooltip=<<imageTitle>>><$transclude $variable="actions"/><$transclude tiddler=<<imageTitle>>/></$button>
\define image-picker-thumbnail(actions)
<$button tag="a" tooltip="""$(imageTitle)$"""><$transclude $variable="__actions__"/><$transclude tiddler=<<imageTitle>>/></$button>
\end
\procedure image-picker-list(filter,actions)
\define image-picker-list(filter,actions)
\whitespace trim
<$list filter=<<filter>> variable="imageTitle">
<$transclude $variable="image-picker-thumbnail" actions=<<actions>>/>
<$list filter="""$filter$""" variable="imageTitle">
<$macrocall $name="image-picker-thumbnail" actions=<<__actions__>>/>
&#32;
</$list>
\end
\procedure image-picker(actions,filter:"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]",subfilter:"")
\define image-picker(actions,filter:"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]",subfilter:"")
\whitespace trim
<div class="tc-image-chooser">
<$let state-system=<<qualify "$:/state/image-picker/system">> tv-filter={{{ [<filter>search-replace[$subfilter$],<subfilter>] }}}>
<$vars state-system=<<qualify "$:/state/image-picker/system">>>
<$checkbox tiddler=<<state-system>> field="text" checked="show" unchecked="hide" default="hide">
<span class="tc-tiny-gap-left">{{$:/language/SystemTiddlers/Include/Prompt}}</span>
&#32;
{{$:/language/SystemTiddlers/Include/Prompt}}
</$checkbox>
<$reveal state=<<state-system>> type="match" text="hide" default="hide" tag="div">
<$transclude $variable="image-picker-list" filter=`$(tv-filter)$ +[!is[system]]` actions=<<actions>>/>
<$macrocall $name="image-picker-list" filter="""$filter$ +[!is[system]]""" actions=<<__actions__>>/>
</$reveal>
<$reveal state=<<state-system>> type="nomatch" text="hide" default="hide" tag="div">
<$transclude $variable="image-picker-list" filter=<<tv-filter>> actions=<<actions>>/>
<$macrocall $name="image-picker-list" filter="""$filter$""" actions=<<__actions__>>/>
</$reveal>
</$let>
</$vars>
</div>
\end
\procedure image-picker-include-tagged-images(actions)
<$transclude $variable="image-picker" filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]" actions=<<actions>>/>
\define image-picker-include-tagged-images(actions)
<$macrocall $name="image-picker" filter="[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]" actions=<<__actions__>>/>
\end

View File

@@ -1,18 +1,14 @@
title: $:/core/macros/list
tags: $:/tags/Macro
\procedure list-links-draggable-drop-actions()
<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter="+[insertbefore<actionTiddler>,<currentTiddler>]"/>
\end
\define list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage,field:"caption")
\whitespace trim
\procedure list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage,field:"caption")
<$genesis $type=<<type>> class=<<class>>>
<$list filter=<<filter>> emptyMessage=<<emptyMessage>>>
<$genesis $type=<<subtype>>>
<$genesis $type=<<__type__>> class=<<__class__>>>
<$list filter=<<__filter__>> emptyMessage=<<__emptyMessage__>>>
<$genesis $type=<<__subtype__>>>
<$link to={{!!title}}>
<$let tv-wikilinks="no">
<$transclude field=<<field>>>
<$transclude field=<<__field__>>>
<$view field="title"/>
</$transclude>
</$let>
@@ -22,19 +18,24 @@ tags: $:/tags/Macro
</$genesis>
\end
\procedure list-links-draggable(tiddler,field:"list",emptyMessage,type:"ul",subtype:"li",class:"",itemTemplate)
\define list-links-draggable-drop-actions()
<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter="+[insertbefore<actionTiddler>,<currentTiddler>]"/>
\end
\define list-links-draggable(tiddler,field:"list",emptyMessage,type:"ul",subtype:"li",class:"",itemTemplate)
\whitespace trim
<span class="tc-links-draggable-list">
<$let targetTiddler=<<tiddler>> targetField=<<field>>>
<$genesis $type=<<type>> class=<<class>>>
<$list filter="[<tiddler>get<field>enlist-input[]]" emptyMessage=<<emptyMessage>>>
<$vars targetTiddler="""$tiddler$""" targetField="""$field$""">
<$genesis $type=<<__type__>> class="$class$">
<$list filter="[list[$tiddler$!!$field$]]" emptyMessage=<<__emptyMessage__>>>
<$droppable
actions=<<list-links-draggable-drop-actions>>
tag=<<subtype>>
tag="""$subtype$"""
enable=<<tv-enable-drag-and-drop>>
>
<div class="tc-droppable-placeholder"/>
<div>
<$transclude tiddler=<<itemTemplate>>>
<$transclude tiddler="""$itemTemplate$""">
<$link to={{!!title}}>
<$let tv-wikilinks="no">
<$transclude field="caption">
@@ -59,48 +60,50 @@ tags: $:/tags/Macro
</$droppable>
</$tiddler>
</$genesis>
</$let>
</$vars>
</span>
\end
\procedure list-tagged-draggable-drop-actions(tag)
\define list-tagged-draggable-drop-actions(tag)
\whitespace trim
<!-- Save the current ordering of the tiddlers with this tag -->
<$set name="order" filter="[<tag>tagging[]]">
<$set name="order" filter="[<__tag__>tagging[]]">
<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->
<$list filter="[<tag>tagging[]]">
<$list filter="[<__tag__>tagging[]]">
<$action-deletefield $field="list-before"/>
<$action-deletefield $field="list-after"/>
</$list>
<!-- Save the new order to the Tag Tiddler -->
<$action-listops $tiddler=<<tag>> $field="list" $filter="+[enlist<order>] +[insertbefore<actionTiddler>,<currentTiddler>]"/>
<$action-listops $tiddler=<<__tag__>> $field="list" $filter="+[enlist<order>] +[insertbefore<actionTiddler>,<currentTiddler>]"/>
<!-- Make sure the newly added item has the right tag -->
<!-- Removing this line makes dragging tags within the dropdown work as intended -->
<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<tag>>/>-->
<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->
<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->
<$list filter="[<actionTiddler>!contains:tags<tag>]">
<$list filter="[<actionTiddler>!contains:tags<__tag__>]">
<$fieldmangler tiddler=<<actionTiddler>>>
<$action-sendmessage $message="tm-add-tag" $param=<<tag>>/>
<$action-sendmessage $message="tm-add-tag" $param=<<__tag__>>/>
</$fieldmangler>
</$list>
</$set>
\end
\procedure list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:"div",storyview:"")
\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:"div",storyview:"")
\whitespace trim
<span class="tc-tagged-draggable-list">
<$set name="tag" value=<<tag>>>
<$set name="tag" value=<<__tag__>>>
<$list
filter=`[<tag>tagging[]$(subFilter)$]`
emptyMessage=<<emptyMessage>>
storyview=<<storyview>>
filter="[<__tag__>tagging[]$subFilter$]"
emptyMessage=<<__emptyMessage__>>
storyview=<<__storyview__>>
>
<$genesis $type=<<elementTag>> class="tc-menu-list-item">
<$genesis $type=<<__elementTag__>> class="tc-menu-list-item">
<$droppable
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<tag>>/>"""
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>"""
enable=<<tv-enable-drag-and-drop>>
>
<$genesis $type=<<elementTag>> class="tc-droppable-placeholder"/>
<$genesis $type=<<elementTag>>>
<$transclude tiddler=<<itemTemplate>>>
<$genesis $type=<<__elementTag__>> class="tc-droppable-placeholder"/>
<$genesis $type=<<__elementTag__>>>
<$transclude tiddler="""$itemTemplate$""">
<$link to={{!!title}}>
<$view field="title"/>
</$link>
@@ -111,11 +114,11 @@ tags: $:/tags/Macro
</$list>
<$tiddler tiddler="">
<$droppable
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<tag>>/>"""
actions="""<$macrocall $name="list-tagged-draggable-drop-actions" tag=<<__tag__>>/>"""
enable=<<tv-enable-drag-and-drop>>
>
<$genesis $type=<<elementTag>> class="tc-droppable-placeholder"/>
<$genesis $type=<<elementTag>> style="height:0.5em;"/>
<$genesis $type=<<__elementTag__>> class="tc-droppable-placeholder"/>
<$genesis $type=<<__elementTag__>> style="height:0.5em;"/>
</$droppable>
</$tiddler>
</$set>

View File

@@ -1,28 +1,28 @@
title: $:/core/macros/translink
tags: $:/tags/Macro
\procedure translink(title,mode:"block")
\define translink(title,mode:"block")
\whitespace trim
<%if [<mode>match[block]] %>
<$list filter="[<__mode__>match[block]]">
<div class="tc-translink">
<div>
<$link to=<<title>>>
<h1><$text text=<<title>>/></h1>
<$link to="""$title$""">
<h1><$text text="""$title$"""/></h1>
</$link>
<$transclude tiddler=<<title>> mode="block">
<$set name="currentTiddler" value=<<title>>><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
<$transclude tiddler="""$title$""" mode="block">
<$set name="currentTiddler" value="""$title$"""><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
</$transclude>
</div>
</div>
<%endif%>
<%if [<mode>match[inline]] %>
</$list>
<$list filter="[<__mode__>match[inline]]">
<span class="tc-translink">
<$link to=<<title>> class="tc-tiny-gap-right">
<$text text=<<title>>/>
<$link to="""$title$""">
<$text text="""$title$"""/>
</$link>
(<$transclude tiddler=<<title>> mode="inline">
<$set name="currentTiddler" value=<<title>>><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
&#32;(<$transclude tiddler="""$title$""" mode="inline">
<$set name="currentTiddler" value="""$title$"""><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
</$transclude>)
</span>
<%endif%>
</$list>
\end

View File

@@ -1,58 +1,62 @@
title: $:/core/macros/tree
tags: $:/tags/Macro
\procedure leaf-link(full-title,chunk,separator: "/")
<$link to=<<full-title>>><$text text=<<chunk>>/></$link>
\define leaf-link(full-title,chunk,separator: "/")
<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>
\end
\define leaf-node(prefix,chunk)
\whitespace trim
\procedure leaf-node(prefix,chunk)
<li>
<$list filter="[<prefix>addsuffix<chunk>is[shadow]] [<prefix>addsuffix<chunk>is[tiddler]]" variable="full-title">
<$list filter="[<full-title>removeprefix<prefix>]" variable="chunk">
<span class="tc-tiny-gap-right">{{$:/core/images/file}}</span><$transclude $variable="leaf-link" full-title=<<full-title>> chunk=<<chunk>>/>
<$list filter="[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]" variable="full-title">
<$list filter="[<full-title>removeprefix<__prefix__>]" variable="chunk">
<span>{{$:/core/images/file}}</span>&#32;<$macrocall $name="leaf-link" full-title=<<full-title>> chunk=<<chunk>>/>
</$list>
</$list>
</li>
\end
\procedure branch-node(prefix,chunk,separator: "/")
\define branch-node(prefix,chunk,separator: "/")
\whitespace trim
<li>
<$set name="reveal-state" value={{{ [[$:/state/tree/]addsuffix<prefix>addsuffix<chunk>] }}}>
<$set name="reveal-state" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>
<$reveal type="nomatch" stateTitle=<<reveal-state>> text="show">
<$button setTitle=<<reveal-state>> setTo="show" class="tc-btn-invisible">
{{$:/core/images/folder}}&#32;<$text text=<<chunk>>/>
{{$:/core/images/folder}}&#32;<$text text=<<__chunk__>>/>
</$button>
</$reveal>
<$reveal type="match" stateTitle=<<reveal-state>> text="show">
<$button setTitle=<<reveal-state>> setTo="hide" class="tc-btn-invisible">
{{$:/core/images/folder}}&#32;<$text text=<<chunk>>/>
{{$:/core/images/folder}}&#32;<$text text=<<__chunk__>>/>
</$button>
</$reveal>
<span class="tc-tiny-gap-left">(<$count filter="[all[shadows+tiddlers]removeprefix<prefix>removeprefix<chunk>] -[<prefix>addsuffix<chunk>]"/>)</span>
&#32;
<span>(<$count filter="[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]"/>)</span>
<$reveal type="match" stateTitle=<<reveal-state>> text="show">
<$transclude $variable="tree-node" prefix={{{ [<prefix>addsuffix<chunk>] }}} separator=<<separator>>/>
<$macrocall $name="tree-node" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>
</$reveal>
</$set>
</li>
\end
\procedure tree-node(prefix,separator: "/")
\define tree-node(prefix,separator: "/")
\whitespace trim
<ol>
<$list filter="[all[shadows+tiddlers]removeprefix<prefix>splitbefore<separator>sort[]!suffix<separator>]" variable="chunk">
<$transclude $variable="leaf-node" prefix=<<prefix>> chunk=<<chunk>> separator=<<separator>>/>
<$list filter="[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]" variable="chunk">
<$macrocall $name="leaf-node" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>
</$list>
<$list filter="[all[shadows+tiddlers]removeprefix<prefix>splitbefore<separator>sort[]suffix<separator>]" variable="chunk">
<$transclude $variable="branch-node" prefix=<<prefix>> chunk=<<chunk>> separator=<<separator>>/>
<$list filter="[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]" variable="chunk">
<$macrocall $name="branch-node" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>
</$list>
</ol>
\end
\procedure tree(prefix: "$:/",separator: "/")
\define tree(prefix: "$:/",separator: "/")
\whitespace trim
<div class="tc-tree">
<span><$text text=<<prefix>>/></span>
<span><$text text=<<__prefix__>>/></span>
<div>
<$transclude $variable="tree-node" prefix=<<prefix>> separator=<<separator>>/>
<$macrocall $name="tree-node" prefix=<<__prefix__>> separator=<<__separator__>>/>
</div>
</div>
\end

View File

@@ -1,2 +1,2 @@
title: $:/tags/ViewTemplateBodyFilter
list: $:/config/ViewTemplateBodyFilters/testcase $:/config/ViewTemplateBodyFilters/hide-body $:/config/ViewTemplateBodyFilters/code-body $:/config/ViewTemplateBodyFilters/stylesheet $:/config/ViewTemplateBodyFilters/core-ui-advanced-search $:/config/ViewTemplateBodyFilters/core-ui-tags $:/config/ViewTemplateBodyFilters/import $:/config/ViewTemplateBodyFilters/plugin $:/config/ViewTemplateBodyFilters/html $:/config/ViewTemplateBodyFilters/system $:/config/ViewTemplateBodyFilters/default
list: $:/config/ViewTemplateBodyFilters/testcase $:/config/ViewTemplateBodyFilters/hide-body $:/config/ViewTemplateBodyFilters/code-body $:/config/ViewTemplateBodyFilters/stylesheet $:/config/ViewTemplateBodyFilters/core-ui-advanced-search $:/config/ViewTemplateBodyFilters/core-ui-tags $:/config/ViewTemplateBodyFilters/import $:/config/ViewTemplateBodyFilters/plugin $:/config/ViewTemplateBodyFilters/system $:/config/ViewTemplateBodyFilters/default

View File

@@ -1,9 +0,0 @@
code-body: yes
created: 20241205094051389
modified: 20241205094051389
tags: $:/tags/PageTemplate
title: $:/github-ribbon
type: text/vnd.tiddlywiki
\whitespace trim
<$transclude $tiddler="$:/plugins/tiddlywiki/github-fork-ribbon/template" top="30px" fixed=fixed color="green"/>

View File

@@ -0,0 +1,114 @@
created: 20150117152607000
modified: 201804111739
tags: $:/tags/Macro
title: $:/editions/dev/doc-macros
type: text/vnd.tiddlywiki
\define .concat(1,2,3,4,5) $1$$2$$3$$4$$5$
\define .def(_) <dfn class="doc-def">$_$</dfn>
\define .em(_) <em class="doc-em">$_$</em>
\define .strong(_) <strong class="doc-strong">$_$</strong>
\define .place(_) <code class="doc-place">$_$</code>
\define .word(_) "$_$"
\define .preamble(_) :.doc-preamble $_$
\define .note(_)
@@.doc-note
;Note
: $_$
@@
\end
\define .tid(_) <code class="doc-tiddler">$_$</code>
\define .tag(_) <code class="doc-tag">$_$</code>
\define .field(_) <code class="doc-field">$_$</code>
\define .value(_) <code class="doc-value">$_$</code>
\define .op(_) <code class="doc-operator">$_$</code>
\define .var(_) <code class="doc-var">$_$</code>
\define .wid(_) <code class="doc-widget">$$_$</code>
\define .attr(_) <code class="doc-attr">$_$</code>
\define .param(_) <code class="doc-param">$_$</code>
\define .mtitle(_) $_$ Macro
\define .otitle(_) $_$ Operator
\define .vtitle(_) $_$ Variable
\define .link(_,to) <$link to="$to$">$_$</$link>
\define .clink(_,to) <span class="doc-clink"><<.link """$_$""" "$to$">></span>
\define .dlink(_,to) <$macrocall $name=".link" _=<<.def "$_$">> to="$to$">/>
\define .dlink-ex(_,to) <a href="$to$" class="tc-tiddlylink-external" target="_blank" rel="noopener noreferrer"><<.def "$_$">></a>
\define .flink(to) <$macrocall $name=".link" _=<<.field {{$to$!!caption}}>> to="$to$"/>
\define .mlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.mtitle "$_$">>/>
\define .mlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/>
\define .olink(_) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$_$">>/>
\define .olink2(_,to) <$macrocall $name=".link" _=<<.op "$_$">> to=<<.otitle "$to$">>/>
\define .vlink(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to=<<.vtitle "$_$">>/>
\define .vlink2(_,to) <$macrocall $name=".link" _=<<.var "$_$">> to="$to$"/>
\define .wlink(to) <$macrocall $name=".link" _=<<.wid {{$to$!!caption}}>> to="$to$"/>
\define .wlink2(_,to) <$macrocall $name=".link" _="$_$" to="$to$"/>
\define .key(_) <span class="doc-key">$_$</span>
\define .combokey(_) <$macrocall $name=".if" cond="$_$" then=<<.key '$_$'>>/>
\define .keycombo(1,2,3,4) <<.combokey "$1$">><<.if "$2$" +>><<.combokey "$2$">><<.if "$3$" +>><<.combokey "$3$">><<.if "$4$" +>><<.combokey "$4$">>
\define .tab(_) <span class="doc-tab">{{$_$!!caption}}</span>
\define .sidebar-tab(_) <<.tab "$:/core/ui/SideBar/$_$">>
\define .more-tab(_) <<.tab "$:/core/ui/MoreSideBar/$_$">>
\define .info-tab(_) <<.tab "$:/core/ui/TiddlerInfo/$_$">>
\define .controlpanel-tab(_) <<.tab "$:/core/ui/ControlPanel/$_$">>
\define .advancedsearch-tab(_) <<.tab "$:/core/ui/AdvancedSearch/$_$">>
\define .toc-tab() <<.tab "TableOfContents">>
\define .example-tab(_) <span class="doc-tab">$_$</span>
\define .button(_) <span class="doc-button">{{$:/core/ui/Buttons/$_$!!caption}}</span>
\define .tip(_) <div class="doc-icon-block"><div class="doc-block-icon">{{$:/core/images/tip}}</div> $_$</div>
\define .warning(_) <div class="doc-icon-block"><div class="doc-block-icon">{{$:/core/images/warning}}</div> $_$</div>
\define .state-prefix() $:/state/editions/tw5.com/
\define .lorem()
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
\end
\define .toc-lorem()
This is an example tiddler. See [[Table-of-Contents Macros (Examples)]].
<<.lorem>>
\end
\define .example(n,eg,egvar:NO-SUCH-VAR)
<div class="doc-example">
<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR">
<$macrocall $name="copy-to-clipboard-above-right" src="""$eg$"""/>
<$codeblock code="""$eg$"""/>
</$reveal>
<$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR">
<!-- allow an example to contain """ -->
<$macrocall $name="copy-to-clipboard-above-right" src=<<$egvar$>>/>
<$codeblock code=<<$egvar$>>/>
</$reveal>
<$list filter="[title<.state-prefix>addsuffix{!!title}addsuffix[/]addsuffix[$n$]]" variable=".state">
<$reveal state=<<.state>> type="nomatch" text="show">
<dl>
<dd><$button set=<<.state>> setTo="show">Try it</$button></dd>
</dl>
</$reveal>
<$reveal state=<<.state>> type="match" text="show">
<dl>
<dd><$button set=<<.state>> setTo="">Hide</$button></dd>
</dl>
<blockquote class="doc-example-result">
<$reveal default="$egvar$" type="match" text="NO-SUCH-VAR">
$eg$
</$reveal>
<$reveal default="$egvar$" type="nomatch" text="NO-SUCH-VAR">
<<$egvar$>>
</$reveal>
</blockquote>
</$reveal>
</$list>
\end
<pre><$view field="text"/></pre>

View File

@@ -0,0 +1,40 @@
created: 20150117152612000
modified: 20230325101137075
tags: $:/tags/Stylesheet
title: $:/editions/tw5.com/doc-styles
type: text/vnd.tiddlywiki
a.doc-from-version.tc-tiddlylink {
display: inline-block;
border-radius: 1em;
background: <<colour muted-foreground>>;
color: <<colour background>>;
fill: <<colour background>>;
padding: 0 0.4em;
font-size: 0.7em;
text-transform: uppercase;
font-weight: bold;
line-height: 1.5;
vertical-align: text-bottom;
}
a.doc-deprecated-version.tc-tiddlylink {
display: inline-block;
border-radius: 1em;
background: red;
color: <<colour background>>;
fill: <<colour background>>;
padding: 0 0.4em;
font-size: 0.7em;
text-transform: uppercase;
font-weight: bold;
line-height: 1.5;
vertical-align: text-bottom;
}
.doc-deprecated-version svg,
.doc-from-version svg {
width: 1em;
height: 1em;
vertical-align: text-bottom;
}

View File

@@ -1,5 +1,3 @@
title: $:/_tw5.com-dev-styles
tags: $:/tags/Stylesheet
list-after: $:/editions/tw5.com/doc-styles
<!-- styles that are unique to the TW dev edition. If possible use $:/_tw_shared/styles or $:/editions/tw5.com/doc-styles -->

View File

@@ -0,0 +1,14 @@
code-body: yes
created: 20161008085627406
modified: 20221007122259593
tags: $:/tags/Macro
title: $:/editions/tw5.com/version-macros
type: text/vnd.tiddlywiki
\define .from-version(version)
<$link to={{{ [<__version__>addprefix[Release ]] }}} class="doc-from-version">{{$:/core/images/warning}} New in: <$text text=<<__version__>>/></$link>
\end
\define .deprecated-since(version, superseded:"")
<$link to="Deprecated - What does it mean" class="doc-deprecated-version tc-btn-invisible">{{$:/core/images/warning}} Deprecated from v<$text text=<<__version__>>/></$link> <%if [<__superseded__>else[]!match[]] %>(see <$link to=<<__superseded__>>><$text text=<<__superseded__>>/></$link>)<%endif%>
\end

View File

@@ -1,13 +0,0 @@
created: 20210519155910219
modified: 20241128113941852
original-modified: 20210519160221219
tags: [[Hidden Settings]]
title: Hidden Setting: Import Content Types for Editor
ja-title: 隠し設定: エディターのインポートコンテンツタイプ
type: text/vnd.tiddlywiki
<<.from-version "5.2.0">>
$:/config/Editor/ImportContentTypesFilter
このフィルターは、エディターにドラッグアンドドロップしてインポートできる`contentTypes`を決定します。これは、`contentTypesFilter`属性のために、エディターを囲むDropzoneWidgetによって使用されます。

View File

@@ -1,21 +0,0 @@
title: Funding TiddlyWiki
ja-title: TiddlyWikiへの資金提供
tags: About HelloThere
modified: 20241129112734981
original-modified: 20221204165636777
created: 20221204165636777
TiddlyWikiが無料で使用でき、長期的な採用に経済的な障壁がなければ、誰にとってもより便利になります。それは博愛主義とは異なります。私たちは、採用に対する障壁を取り除き減らすことが、コミュニティをより大きくより強力し、TiddlyWikiの未来を確保するのに役立つと信じています
それにもかかわらず、TiddlyWikiは比較的大きく複雑なマシンであり、維持や改良にはたくさんの継続的な作業が必要です。一部のコミュニティインフラストラクチャも運営に月額料金が必要です(特に[[TiddlyWikiフォーラム|Forums]])
作業に携わるコミュニティの人々は、さまざまなニーズを持っています:
* 一方では、TiddlyWikiでの作業のかなりの部分がコミュニティメンバーによって純粋に自主的に実施されています。そういった人にとっては、他人の助けとなることで満足感が得られ十分な報酬となります。実際、多くの人にとって、無給のボランティア活動は、毎日の有給の仕事に対する満足のいく解毒剤となっています
* 他方で、JeremyRustonと他の貢献者たちは、TiddlyWikiに関する商用製品やサービスを提供することで、TiddlyWikiに携わってフルタイムで生計を立てようとしています
* その中間では、自分の仕事に対する報酬として時折トークンを受け取ることを喜ぶ人もいます
コミュニティのこのようなニーズをサポートするために、私たちは2つの活動を行っています:
* 私たちは[[オープンコレクティブ|Open Collective]]を使用して、コミュニティのインフラストラクチャにかかる費用の寄付を集め、個人や組織による特定の開発にクラウドファンディングします
* [[TiddlyWikiマーケットプレイス|TiddlyWiki Marketplace]]は、商用製品やサービスを提供する個人や組織にショーウィンドウを提供します

View File

@@ -1,16 +0,0 @@
title: Open Collective
ja-title: オープンコレクティブ
modified: 20241129113142285
original-modified: 20221204165636777
created: 20221204165636777
tags: About HelloThere
オープンコレクティブは、TiddlyWikiのようなプロジェクトの透明な資金調達と経費のためのプラットフォームです。これは、TiddlyWikiコミュニティの公式募金スペースです
https://opencollective.com/tiddlywiki
1回限りの寄付を行うことも、定期的な寄付を設定することもできます
寄付のためにリストされている主な目標は、会談フォーラムなどのコミュニティインフラストラクチャにかかる基本的なコストをカバーすることと、TiddlyWiki Coreをサポートするという新しい目標です
さらに、コミュニティは特別なプロジェクトのためにプラットフォームを利用し、開発、設計、その他の費用を支払うために資金をプールすることができます。[[ファイルアップロードプラグイン|https://opencollective.com/tiddlywiki/projects/tiddlywiki-file-upload]]はその最初のものであり、誰かがここでプロジェクトを立ち上げることを歓迎したいと考えています

View File

@@ -1,19 +0,0 @@
created: 20130302085406905
modified: 20241130111024987
original-modified: 20130302084548184
tags: Examples
title: "A Thesis Notebook" by Alberto Molina
ja-title: Alberto Molinaの"論文ノート"
url: http://tesis.tiddlyspot.com/
TiddlyWikiを使った論文ート。
{{!!url}}
<<<
これは、TiddlyWiki 5.0.8-betaを利用した論文ートの例です。
TiddlyWikiは、Jeremy Rustonが作成した優れたソフトウェアです。このソフトウェアを使用すると、メモを取ったり、アイデアを整理したり、情報を保存したり、すべてのものを好きなように表示したりできます。これは、ほぼすべてのニーズに合わせて調整できる、非常に柔軟なツールです。
このTiddlyWikiは、著者、書籍や論文、概念や理論、個人的なメモを中心とした哲学ートとして機能するようにカスタマイズされています。私はこれを、専用の参考文献ソフトウェアであるZoteroと一緒に使用しています。どちらも無料のオープンソースプロジェクトです。TiddlyWikiはhttps://tiddlywiki.comからダウンロードできます。
<<<

View File

@@ -1,16 +0,0 @@
created: 20150621212120755
modified: 20241201110715436
original-modified: 20150621214507584
tags: Examples
title: Interactive Git Documentation by Devin Weaver
ja-title: Devin WeaverのインタラクティブGitドキュメント
url: http://sukima.github.io/GitFixUm/
A git choose-your-own-adventure!ⓡ for walking yourself though fixing a //broken// Git repository.
//壊れた//Gitリポジトリを自分で修復するための、git choose-your-own-adventure!ⓡ。
{{!!url}}
<<<
このドキュメントは、gitの使用時に意図していなかった事態から回復するための、かなり包括的なガイドとなることを目指しています。gitが非常に複雑で、特定の問題に対処するために大きなドキュメントが必要なわけではありません。むしろ、実行した可能性のある操作のセットが非常に大きいため、実行した操作と実行したい操作に応じて異なるテクニックが必要になります。
<<<

View File

@@ -1,16 +0,0 @@
created: 20150403104722092
modified: 20241201111442269
original-modified: 20150403105247619
tags: Examples
title: PESpot Lesson Planner by Patrick Detzner
ja-title: Patrick DetznerのPESpotレッスンプランナー
type: text/vnd.tiddlywiki
url: http://pespot.tiddlyspot.com
TiddlyWikiで構築されたレッスンプランニングシステム。
{{!!url}}
<<<
私は、レッスンプラン情報を入力して保存し、実際のレッスンプラン文書の作成に伴う面倒な作業の一部を容易化/自動化するプログラムを構築しました。
<<<

View File

@@ -1,21 +0,0 @@
created: 20140716085406905
modified: 20241201105625382
original-modified: 20140716084548184
tags: Examples
title: "PETTIL - Forth for the Commodore PET" by Charlie Hitselberger
ja-title: Charlie Hitselbergerの"PETTIL - コモドールPET用Forth"
type: text/vnd.tiddlywiki
url: http://pettilmobile.com/tw/
6502アセンブリ言語で書かれた、[[コモドールPET|https://en.wikipedia.org/wiki/Commodore_PET]]用の高速Forthインタープリタです。プログラムドキュメントを含むTiddlyWikiは、ソースコードから自動的に生成されます。https://github.com/chitselb/pettilを参照してください。
{{!!url}}
<<<
プロジェクトの目的は、以下のとおりです(順不同):
* Commodore PET 2001で動作するForthを作成する
* 楽しむ
* "6502アセンブリゴルフ"のスキルを向上させる
* このプロジェクトに興味のある人を見つける
<<<

View File

@@ -1,17 +0,0 @@
created: 20141118143636664
modified: 20241201112046756
original-modified: 20141118143636664
tags: Examples
title: Simple Zork-like Game by Jed Carty
ja-title: Jed CartyのシンプルなZorkライクゲーム
url: http://zorklike.tiddlyspot.com
[[この投稿|https://groups.google.com/d/topic/tiddlywiki/4aRpZht1vOs/discussion]]で紹介されている、TiddlyWikiで構築されたシンプルなゲーム。
{{!!url}}
<<<
プラグインやJavaScriptを使わずに、Coreのtiddlywikiだけを使って、なんらかのゲームが作れるかどうか試してみることにしました。私は、非常に基本的なZork/インタラクティブフィクションタイプのゲームを作りました。これは、現時点では私が作ることができ、ゲームだと言える最もシンプルなものですが、将来的には改造していくかもしれません。action-setfieldウィジェットによってマクロ作成の作業が大幅に軽減されたため、5.1.5 プレリリースを使用しています。
この目標の1つは、Coreのtiddlywikiに含まれているもの以外は何も使用しないことです。そのため、JavaScriptやプラグインはありません。
<<<

View File

@@ -1,16 +0,0 @@
created: 20160424111304190
modified: 20241201112847005
original-modified: 20160424112155381
tags: Examples
title: TriTarget.org by Devin Weaver
ja-title: Devin WeaverのTriTarget.org
type: text/vnd.tiddlywiki
url: https://tritarget.org
TiddlyWikiで構築された個人のWebサイト。
{{!!url}}
<<<
TriTarget.org は、私が高校生のときに思いついた名前です。私はコンピュータープログラミングに夢中だったので、ちょっとキャッチーな会社名が欲しかったのです。BASICでいくつかのプログラムを作成するときは、自分の会社をアピールするために、TriTargetというブランド名を付けていました(会社を持っていませんでしたが)。
<<<

View File

@@ -1,13 +0,0 @@
created: 20141122093837330
modified: 20241130111825331
original-modified: 20210106151027143
tags: Examples
title: "Lucky Sushi" online shop by sini-Kit
ja-title: sini-Kitのオンラインショップ"ラッキー寿司"
type: text/vnd.tiddlywiki
url: http://luckysushi.ru/habarovsk/heeg.html#index
~TiddlyWikiで作られた完全なオンラインショップ!
{{!!url}}

View File

@@ -1,28 +0,0 @@
created: 20141122093837330
modified: 20241201105444692
original-modified: 20210106151027081
tags: Examples
title: "Gospel Bubbles" by Rev. David Gifford
ja-title: Rev. David Giffordの"ゴスペルバブル"
type: text/vnd.tiddlywiki
url: http://giffmex.org/gospels.bubbles.html#Gospels%20Bubbles
Creates bubble maps of Biblical texts.
聖書のテキストのバブルマップを作成します。
{{!!url}}
<<<
この~TiddlyWikiは、まだ構築中ですが、新約聖書の福音書の文章、文章の種類、テーマ、人物、場所、画像をすばやく見つけられるいくつかの機能があります。バブルマップは、各福音書の概要を色分けしたものです。文章の種類(奇跡物語、寓話など)ごとに色が割り当てられています。バブルマップでは、次の3つのことができます:
#バブルマップは、各福音書の概要を色分けしたものです。各タイプの一節(奇跡物語、たとえ話など)には色が割り当てられています。バブルマップを使用すると、次の3つのことが可能になります:
##それぞれの福音書の中で、さまざまな種類の一節がどのように分布しているかを確認します。
##一節の上にマウスを置くと、詩とタイトルが表示されます。
##一節をクリックすると、その文章が開き、そこに記載されているテーマやその他のデータが表示されます。
#''一節ごとのテーマ''索引は、各福音書の一節のリストで、その後にその一節にあるテーマやその他のデータが続きます。テーマをクリックすると、そのテーマについて言及しているすべての一節のリストが表示されます。
#テーマの索引には、各テーマ、人物、グループ、場所、画像へのリンクのリストが含まれています。テーマをクリックすると、そのテーマについて言及しているすべての一節のリストが表示されます。
#右側のメニューに''検索ウィンドウ''が隠れています。検索ウィンドウを使用して、sowerやparalyticなどの単語を入力して、一節をすばやく検索します。画面の右上にある矢印をクリックしてメニューを開き、検索します。
<<<

View File

@@ -1,72 +0,0 @@
created: 20140610213500000
modified: 20241209112247651
original-modified: 20241030132047048
tags: Concepts Features
title: ExternalImages
ja-title: 外部画像
type: text/vnd.tiddlywiki
TiddlyWikiの外部画像は、画像データすべてを埋め込むのではなく、画像のURIを指定するTiddlerです。特に画像の数やサイズが大きい場合、埋め込み画像よりもパフォーマンスが向上します。ただし、外部画像を使用すると、TiddlyWikiの単一ファイルパターンが崩れます。
外部画像はブラウザで使用されます。TiddlyWikiをビルドするときにNode.js構成によって作成されるか、ブラウザ内で手動で作成されます。
! 外部画像とは
外部画像は、画像のURIを含む''_canonical_uri''フィールドを持つ通常の画像Tiddlerです。URIは、HTMLドキュメントに対する絶対パスや相対パスで指定することができます。Canonical URIが指定されている場合は、Tiddlerの''text''フィールドは無視されるため、省略する必要があります。
! 外部画像を手動で作成する
外部画像を手動で作成するには、適切な画像コンテンツタイプでTiddlerを作成し、実際の画像の場所を指すURIを含む''_canonical_uri''フィールドを追加します。
''重要:'' スペルを再度確認してください。``_canonical_uri``は、URLではなく[[URI|https://en.wikipedia.org/wiki/URI#The_relationship_between_URIs.2C_URLs.2C_and_URNs]]と綴られます。
! Node.jsで外部画像を作成する
参照される外部画像を含む''images''フォルダーを伴うWikiの静的HTMLファイルバージョンを作成するには、次の手順を使用します:
# 通常の方法でTiddlyWikiFoldersに画像Tiddlerを作成します
# 画像を別ファイルとして保存します (慣例により、''images''という名前のサブフォルダに保存します)
# ''_canonical_uri''フィールドを追加して画像Tiddlerを外部化します
# メインのHTMLファイルを保存します
画像ファイルは外部化する前に保存する必要があることに注意してください。外部化すると、Wikiストアのメモリ内コピーの''text''フィールドが破壊され、保存の試みが失敗します。
たとえば、''tw5.com'' Wikiの''externalimages''ビルドターゲットを参照してください:
```
--save [is[image]] images
--setfield [is[image]] _canonical_uri $:/core/templates/canonical-uri-external-image text/plain
--setfield [is[image]] text "" text/plain
--render $:/core/save/all externalimages.html text/plain
```
!! 個別の画像ファイルを保存する
次の`--save`コマンド ([[Saveコマンド|SaveCommand]]を参照)を使用すると、Wikiの画像を''images''サブフォルダーに保存できます:
```
--save [is[image]] images
```
!! 画像Tiddlerの外部化
2つの`--setfield`コマンドが使用されています: 最初のコマンドは、''_canonical_uri''フィールドをTiddlerのタイトルから派生したURIに設定し、2番目のコマンドはtextフィールドをクリアします。
```
--setfield [is[image]] _canonical_uri $:/core/templates/canonical-uri-external-image text/plain
--setfield [is[image]] text "" text/plain
```
テンプレートTiddler [[$:/core/templates/canonical-uri-external-image]]には以下が含まれます:
<pre>
<$view tiddler="$:/core/templates/canonical-uri-external-image" field="text" format="text"/>
</pre>
これらの操作により、Wikiストア内のTiddlerが変更されるため、後続のコマンド操作に影響する可能性があることに注意してください。
! 外部画像の使用について
URIフィールドを別の画像を指すように変更しない限り、ブラウザで外部画像を直接編集することはできません。

View File

@@ -1,18 +0,0 @@
created: 20150917193630604
modified: 20241212114212647
original-modified: 20201129183045031
tags: Features
title: InfoPanel
ja-title: 情報パネル
type: text/vnd.tiddlywiki
各Tiddlerには追加情報のパネルがあります。それを表示するには、Tiddlerのツールバーの<<.icon $:/core/images/down-arrow>>ボタンをクリックし、ドロップダウンリストから<<.icon $:/core/images/info-button>> ''情報''を選択します。
情報パネルには次のタブがあります。:
* ''ツール'' - このTiddlerで実行できるさまざまなアクションのボタンがあります。各ボタンの横にあるチェックボックスを使用すると、アクションをTiddlerのツールバーに昇格できます。これは、Wiki内のすべてのTiddlerに影響します
* ''参照''、''この名でタグ付''、''一覧''、''被リスト'' - これらはさまざまな種類の関連するTiddlerをリストします。[[リンクを使用してTiddler間を移動する|Using links to navigate between tiddlers]]ティドラー間の移動にリンクを使用するを参照してください
* ''項目'' - Tiddlerの''テキスト''以外の[[フィールド|TiddlerFields]]をすべてまとめたものです
* ''詳細'' - これは、Tiddlerが[[隠し|ShadowTiddlers]]であるかどうかを示します。隠しである場合、どのプラグインからのものか、通常のTiddlerによって上書きされているかどうかも明らかになります
情報パネルを閉じるには、情報パネルの外側の任意の場所をクリックします。

View File

@@ -1,64 +0,0 @@
created: 20140502213500000
modified: 20241216111540858
original-modified: 20210406131243532
tags: Features Concepts
title: PermaLinks
ja-title: パーマリンク
type: text/vnd.tiddlywiki
パーマリンクを使用すると、TiddlyWiki内の個々のTiddlerへの直接リンクが可能になります。
! シンプルなパーマリンク
パーマリンク(<<.icon $:/core/images/permalink-button>>)の最も単純な形式は、`#`をともなうベースURLに1つのターゲットTiddlerタイトルを追加したものです:
https://tiddlywiki.com/#HelloThere
必要なら、Tiddlerタイトルにスペースを含めることができます:
[[https://tiddlywiki.com/#Using TiddlyWiki on Node.js]]
ターゲットTiddlerのタイトルを囲む二重角括弧は不要であることに注意してください。ただし、存在する場合は暗黙的に削除されます。
! ストーリーのパーマリンク
パーマリンクでは、対象のTiddlerと一緒に開くTiddlerのストーリーリストを[[Tiddlerフィルター|Filters]]として指定することもできます:
[[https://tiddlywiki.com/#TiddlerFields:Tiddlers TiddlerTags TiddlerFields ContentType]]
ターゲットTiddlerがストーリーリストに存在しない場合は、自動的に先頭に挿入されます。つまり、次の2つの例はどちらもストーリーシーケンス`Tiddlers`、`Tags`、`TiddlerFields`内の`Tiddlers`Tiddlerをターゲットにしています:
[[https://tiddlywiki.com/#Tiddlers:Tags TiddlerFields]]
[[https://tiddlywiki.com/#Tiddlers:Tiddlers Tags TiddlerFields]]
ナビゲーションのターゲットTiddlerを指定せずにストーリーフィルターを指定することもできます:
<a href="https://tiddlywiki.com/#:[tag[task]]" rel="noopener noreferrer">~https://tiddlywiki.com/#:[tag[task]]</a>
! URLエンコードについて
URLフラグメント内の有効な文字には技術的な制限があります。すべてのTiddlerタイトルに対応できるようにするために、不正な文字は"URL エンコード"と呼ばれるプロセスの対象となり、問題のある文字は数値コードに置き換えられます。たとえば、スペース文字は`%20`に置き換えられます。
ターゲットTiddlerのタイトルとストーリーフィルターは両方ともURLエンコードされている必要があります(区切りのコロンはエンコードされません)。TiddlyWikiは適切にエンコードされたURLを生成しますが、見た目がかなり醜い場合があります。ただし、実際には、ブラウザーは通常、URLフラグメント内の任意の文字を問題なく処理します。したがって、パーマリンクを手動で作成する場合は、URLエンコードを無視することを選択できます。
! パーマリンクの動作
TiddlyWikiのパーマリンクの動作に関する2つの重要な側面は、[[コントロールパネル|$:/ControlPanel]] <<.icon $:/core/images/options-button>>の''設定''タブのオプションで制御できます:
* 各ナビゲーションでアドレスバーを自動的に更新するかどうか、また更新する場合は、対象のTiddlerだけでなくストーリーシーケンスも含めるかどうか
* アドレスバーの更新がブラウザの履歴に反映されるかどうか。デフォルトは''いいえ''です。 ''はい''に切り替えると、ブラウザの「戻る」ボタンと「進む」ボタンを使用して、Tiddler間のナビゲーションを巻き戻すことができます
パーマリンクを入力または移動すると、常にパーマリンクが処理され、Tiddlerが適宜開閉されることに注意してください。
!! 技術詳細
TiddlyWikiが起動すると、以下の手順に従ってパーマリンクを処理します。パーマリンクが動的に変更される場合(たとえば、ユーザーがアドレスバーを編集したことに応じて変更される場合)、同じ手順が繰り返されます。
# パーマリンクにコロンが含まれている場合は、その前の文字列を''ターゲット''として扱い、その後ろの文字列を''ストーリーフィルター''として扱います
# パーマリンクにコロンが含まれていない場合は、文字列全体を''ターゲット''として扱い、''ストーリーフィルター''を//未指定//としてマークします
# ''ストーリーフィルター''が指定されておらず、起動中の場合、''ターゲット''が指定されている場合は''ストーリーフィルター''を空の文字列に設定し、''ターゲット''が指定されていない場合はデフォルトのTiddlerに設定します
# ''ストーリーフィルター''が指定されておらず、起動中でない場合は、''ストーリーフィルター''を現在のストーリーリストに設定します
# ''ストーリーフィルター''を''ストーリーリスト''として評価します
# ''ターゲット''が指定されていて''ストーリーリスト''にない場合は、一番上に追加します
# ''ターゲット''が指定されている場合はそこに移動し、そうでない場合は''ストーリーリスト''の最初のTiddlerに移動します

View File

@@ -1,48 +0,0 @@
created: 20201123172925848
modified: 20241111112628221
original-modified: 20240801020629394
tags: [[Customise TiddlyWiki]]
title: Alternative page layouts
ja-title: ページレイアウトを変更する
type: text/vnd.tiddlywiki
<<.from-version "5.1.23">>複数のページレイアウトを用意し、切り替えることができます。使用可能なレイアウトのリストを表示し、レイアウトを切り替えるには、キーボードショートカット<kbd><<displayshortcuts ((layout-switcher))>></kbd>を使用します
!ページレイアウトの作成
代替のレイアウトを作成すると、デフォルトのインターフェイスである[[標準レイアウト|$:/core/ui/PageTemplate]]に[[機能の追加・削除|Customising TiddlyWiki's user interface]]だけでなく、まったく新しいレイアウトを作成することもできます。
代替のページレイアウトを作成し、切り替えることができるようにするには、[[SystemTag: $:/tags/Layout]]を使用して代替ページテンプレートTiddlerを作成します。
この代替ページテンプレートは、[[デフォルトのページテンプレート|$:/core/ui/PageTemplate]]を、微調整して修正したバージョンであることも、まったく異なるものを作成することもできます。レイアウト切り替えメカニズムでは、ページテンプレートTiddlerに`name`と`description`
フィールドが必要です。これらのフィールドは、ユーザーインターフェイス切り替えのリストで使用されます。
!! 共通レイアウト設定
```tid
\whitespace trim
\import [subfilter{$:/core/config/GlobalImportFilter}]
\define containerClasses()
tc-page-container tc-language-$(languageTitle)$ your-plugin-name-container
\end
\procedure redirected-navigate-actions()
<$action-setfield $tiddler="$:/layout" text="" $timestamp="no" />
<$action-navigate $to=<<event-navigateTo>> $scroll="yes" />
\end
<$navigator story="$:/StoryList" history="$:/HistoryList" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>
<$messagecatcher $tm-navigate=<<redirected-navigate-actions>>>
{{$:/core/ui/CommandPaletteTemplate}}
<div class=<<containerClasses>>>
<!-- Your layout content here -->
</div>
</$messagecatcher>
</$navigator>
```
以下を含んでいます
# 標準レイアウトでグローバルに使用できるマクロをインポートすると、標準レイアウトで機能するWikiテキストが独自レイアウトでも機能します。
# トップレベルのCSSクラスを定義します。一部のスタイルはそれに依存する場合があります。ここで、CSSクラスにプラグインの名前を追加できます。
# リンクをクリックしたときにナビゲーションを処理します。レイアウトにストーリービューが含まれていない場合(たとえば、カレンダーやホワイトボードレイアウトを作成している場合)、`redirected-navigate-actions` `$navigator`と`$messagecatcher`の組み合わせにより、ユーザーは標準レイアウトにリダイレクトされ、そこでTiddlerが表示されます。
# 独自レイアウト上に、たとえば、`$:/core/ui/CommandPaletteTemplate`や`$:/core/ui/PageTemplate/sidebar`などを配置したい場合は、[[PageTemplate|$:/tags/PageTemplate]]を再度追加します。

View File

@@ -1,29 +0,0 @@
created: 20180305174809089
modified: 20241112113136035
original-modified: 20180306161405033
tags: [[Customise TiddlyWiki]]
title: Configuring startup tiddlers
ja-title: スタートアップTiddlerを構成する
type: text/vnd.tiddlywiki
[[デフォルトTiddler|DefaultTiddlers]]メカニズムを使用して、一つ、もしくは、複数のTiddlerを起動時に表示するように、~TiddlyWikiを設定できます。
コントロールパネルの情報タブの下には、「このファイルを開いたときに初期表示されるTiddlerを設定してください」という説明のある入力フィールドがあります。起動時に表示したいTiddlerを列挙します。スペースを含むタイトルには二重角括弧を使用します。例えば:
```
FirstTiddler
SecondTiddler
[[Third Tiddler]]
```
[[フィルター式|Filter Expression]]を使用して、複数のTiddlerを開くこともできます。例えば:
```
[tag[HelloThere]]
```
は、<<tag HelloThere>>でタグ付けされたすべてのTiddlerを表示します。
[[開いているtiddlerを起動時に保持する|Preserving open tiddlers at startup]]のテクニックを使用することもできます。
起動時の動作をより高度に制御するには、[[起動時アクション|StartupActions]]も参照してください。

View File

@@ -1,37 +0,0 @@
created: 20211124205415217
modified: 20241114113201979
original-modified: 20230803050345698
tags: [[Customise TiddlyWiki]]
title: Creating new toolbar buttons
ja-title: ツールバーボタンを新しく作成する
type: text/vnd.tiddlywiki
'レシピテンプレート'というスケルトンTiddlerを使って、オンデマンドで新しいレシピTiddlerを作成するためにViewToolbar Tiddlerで使用できるボタンを用意したいとします。これには次の手順が必要になります:
# ボタンには画像が必要になります。コアイメージ($:/core/images/で始まる名前のシャドウTiddler)がどれも適合しない場合は、SVGイメージ(たとえば、 http://flaticon.com にあるイメージの一つ)をファイルにドラッグしてTiddlerにし、Tiddlerを編集して高さと幅がを22pxに調整します。
# そのTiddlerを含むTiddlerを作成するとよいでしょう。Tiddlerを作成し、タイトルを付け、ボタンのコードを追加します(例として、下記のコードを参照してください。変更が必要な箇所にはヒントが含まれています)。[[$:/tags/ViewToolbar]]のタグを付けます。
# ボタンをツールバーに表示するか非表示にするかをTiddlyWikiに伝えるTiddlerを作成する必要があります。[[$:/config/ViewToolbarButtons/Visibility/Recipe]]というタイトルにします。テキスト領域に`show`と入力して保存します。非表示にしたい場合は、テキスト領域に`hide`と入力して保存します。このボタンには、''コントロールパネル : 外観 : ツールバー : 閲覧画面''タブからもアクセスできます。
# ボタンを適切な位置に配置する場合は、$:/tags/ViewToolbar Tiddlerを開き、ボタンTiddlerのタイトルをリストフィールドの適切な場所に挿入します。
```
\define newHereButtonTags()
[[$(currentTiddler)$]]
\end
\define newHereButton()
<$button class=<<tv-config-toolbar-class>>>
<$action-sendmessage
$message="tm-new-tiddler"
$param="TITLE OF YOUR SKELETON BUTTON"
title="New tiddler"
tags=<<newHereButtonTags>> />
<$list filter="[<tv-config-toolbar-icons>match[yes]]">
{{TITLE OF YOUR SVG IMAGE TIDDLER}}
</$list>
<$list filter="[<tv-config-toolbar-text>match[yes]]">
<span class="tc-btn-text"><$text text="CAPTION FOR YOUR BUTTON"/></span>
</$list>
</$button>
\end
<<newHereButton>>
```

View File

@@ -1,12 +0,0 @@
created: 20140904101600000
list: [[Adding a table of contents to the sidebar]] [[Alternative page layouts]] [[Configuring startup tiddlers]] [[Configuring the default TiddlerInfo tab]] [[Creating a custom export format]] [[Creating a splash screen]] [[Creating new toolbar buttons]] [[Customising search results]] [[Customising TiddlyWiki's user interface]] [[Hidden Settings]] [[How to add a new tab to the sidebar]] [[How to apply custom styles]] [[How to create a custom story tiddler template]] [[How to create a custom tiddler icon rule]] [[How to create a custom tiddler colour rule]] [[How to create keyboard shortcuts]] [[How to turn off camel case linking]] [[How to widen tiddlers (aka storyriver)]] [[Making a custom journal button]] [[Preserving open tiddlers at startup]] [[Setting a favicon]] [[Setting a page background image]] [[Using Stylesheets]]
modified: 20241110115757128
original-modified: 20211206162235300
tags: TableOfContents
title: Customise TiddlyWiki
ja-title: TiddlyWikiのカスタマイズ
type: text/vnd.tiddlywiki
TiddlyWikiのカスタマイズに関する情報。採用されているメカニズムの概要については、[[TiddlyWikiのユーザーインターフェイスをカスタマイズする|Customising TiddlyWiki's user interface]]を参照してください。
<<list-links "[tag[Customise TiddlyWiki]]">>

View File

@@ -1,77 +0,0 @@
created: 20211127084727217
modified: 20241115113055145
original-modified: 20211204120054422
tags: [[Customise TiddlyWiki]]
title: Customising TiddlyWiki's user interface
ja-title: TiddlyWikiのユーザーインターフェイスのカスタマイズ
type: text/vnd.tiddlywiki
TiddlyWikiのユーザーインターフェイスは、高度に拡張できるように設計されています。すべての要素は、追加、削除、または再配置することができます
これを実現するために、いくつかの異なるメカニズムが使用されます:
* 特殊フィールド
* 特殊タイトル
* 特殊タグ
* カスケード
これらのメカニズムの概要と、それらがどのように相互に関連しているかを説明します
!! 特殊フィールド
特殊フィールドは、個々のTiddlerに外観や動作を割り当てるために使用されます。これらは、適用されるTiddlerを直接制御するフラグや値と考えることができます
例:
* `icon`フィールドは、Tiddlerのアイコンとして使用する画像Tiddlerのタイトルを設定します
* `color`フィールドは、Tiddlerに関連付けられたアイコンとタグマークのCSSカラーを設定します
* `hide-body`フィールドは、`yes` にすると、Tiddlerのビューテンプレートのボディを非表示にします
すべての特別フィールドの詳細については、[[Tiddlerフィールド|TiddlerFields]]を参照してください
!! 特殊タイトル
特定の特殊タイトルは、TiddlyWikiの外観や動作をカスタマイズする設定用のTiddlerです。これらは、Wiki全体に影響するグローバル設定と考えることができます
例:
* $:/DefaultTiddlersは、起動時に表示されるTiddlerのタイトルを生成するフィルターです
* $:/SiteTitleは、Wikiタイトルのテキストを指定します
* $:/config/Tags/MinLengthは、タグのオートコンプリートをトリガーする最小文字数を制御します
TiddlyWikiの設定に関するTiddlerの多くは、[[$:/ControlPanel]]にオプションとして表示されます。あまり一般的には使用されない設定用のTiddlerにはユーザーインターフェイスがありませんが、[[隠し設定|Hidden Settings]]に文書化されています
!! 特殊タグ
特殊タグは、それらが適用されるすべてのTiddlerに特別な動作や外観を割り当てます。これらは、特定の方法で処理される、または、表示されるTiddlerの順序付きリストを確立すると考えることができます
例:
* $:/tags/Globalにより、Tiddler内の定義がグローバルに有効になります
* $:/tags/Stylesheetにより、TiddlerがCSSスタイルシートとして解釈されます
* $:/tags/SideBarにより、Tiddlerがサイドバーのタブとして表示されます
すべての特殊タグの詳細については、[[システムタグ|SystemTags]]を参照してください
TiddlyWikiのユーザーインターフェース全体は、特殊システムタグから形成されたリストから構築されています
これらのリストの順序は、[[タグ付けされたTiddlerの順序|Order of Tagged Tiddlers]]ルールによって決まります。ユーザーは、タグドロップダウン内でドラッグアンドドロップを使用してタグを並べ替えることができます
!! カスケード
カスケードは、柔軟で拡張可能な基準に基づいて複数の値の1つを選択する手段を提供します。これらは、条件の1つが一致するまで順番に評価される条件のリストと考えることができます
例えば、コアは表示モードではテンプレート$:/core/ui/ViewTemplateを使用してTiddlerを表示し、編集モードではテンプレート$:/core/ui/EditTemplateを使用して Tiddlerを表示します。カスケードは、特定のTiddlerに使用するテンプレートを選択するために使用されます
# Tiddlerがドラフトの場合は、$:/core/ui/EditTemplateを使用します
# それ以外の場合は、$:/core/ui/ViewTemplateを使用します
条件のリストは特殊タグを介して定義されるため、リスト内の任意の場所に追加の条件を挿入できます
例えば、プラグインは追加のルールを挿入することで、タグ[[$:/tags/Map]]を持つTiddler用の特別なテンプレート$:/plugins/example/map-templateを追加できます:
# Tiddlerがドラフトの場合は、$:/core/ui/EditTemplateを使用します
# @@background: yellow; Tiddlerに$:/tags/Mapタグが付けられている場合は、$:/plugins/example/map-templateを使用します@@
# それ以外の場合は、$:/core/ui/ViewTemplateを使用します
詳細については、[[カスケード|Cascades]]を参照してください

View File

@@ -1,51 +0,0 @@
created: 20141027151552783
modified: 20241115112411640
original-modified: 20201207181116804
tags: [[Customise TiddlyWiki]]
title: Customising search results
ja-title: 検索結果のカスタマイズ
type: text/vnd.tiddlywiki
デフォルトでは、サイドバーの検索ボックスの結果は、Tiddlerタイトルの単純なリストとして表示されます。検索結果は、さまざまな方法でプラグイン視覚エフェクトを追加することでカスタマイズできます(追加の検索結果の視覚エフェクトが検出された場合、タブが自動的に表示されます)
検索結果の視覚エフェクトは、[[$:/tags/SearchResults]]タグが付いたTiddlerに保存されます。デフォルトの検索結果リストは、システムTiddler[[$:/core/ui/DefaultSearchResultList]]に実装されています
新しい検索結果の視覚エフェクトを作成するには:
# [[$:/tags/SearchResults]]タグを付けた新しいTiddlerを作成します
# ウィジェット変数''searchTiddler''を使用して、現在の検索用語を含むTiddlerのタイトルにアクセスします
新しい視覚エフェクトをデフォルトにしたい場合は、デフォルトで表示したい検索視覚エフェクトを含むTiddlerのタイトルを含む[[$:/config/SearchResults/Default]]という名前のTiddlerを作成します
以下は、結果を時系列の逆順に表示する別の視覚エフェクトの例です:
```
\define searchResults()
<$set name="resultCount" value="""<$count filter="[!is[system]search{$(searchTiddler)$}]"/>""">
{{$:/language/Search/Matches}}
</$set>
<<timeline subfilter:"!is[system]search{$(searchTiddler)$}">>
\end
<<searchResults>>
```
<<.from-version 5.1.23>>サイドバー検索に、キーボードショートカット<kbd><<displayshortcuts ((input-down))>></kbd>と<kbd><<displayshortcuts ((input-up))>></kbd>を使用して検索結果をナビゲートできる、より洗練された検索メカニズムが導入します
# <<tag-pill "$:/tags/SearchResults">>のタグ付けされたTiddlerは、<<.var configTiddler>>変数を通じてアクセスできます
# 検索フィールドへのユーザ入力には、<<.var userInput>>変数を通じてアクセスできます
# フィールド<<.field first-search-filter>>とフィールド<<.field second-search-filter>>を使用して、検索結果に使用されるフィルターを保存します。詳細については、Tiddler $:/core/ui/DefaultSearchResultListを参照してください
# ナビゲートされた検索結果が強調表示されるように次のフォームを使用し、ニーズに合わせて変更します:
```
<$list filter="[<userInput>minlength[1]]" variable="ignore">
<$list filter={{{ [<configTiddler>get[first-search-filter]] }}}>
<span class={{{[<currentTiddler>addsuffix[-primaryList]] -[<searchListState>get[text]] +[then[]else[tc-list-item-selected]] }}}>
<$transclude tiddler="$:/core/ui/ListItemTemplate"/>
</span>
</$list>
</$list>
```
<$macrocall $name=".tip" _="<<.var searchTiddler>>変数には、検索結果の並べ替えに使用されるTiddlerの名前がまだ含まれていることに注意してください。<<.var editTiddler>>変数には、編集中のTiddlerの名前が含まれます"/>

View File

@@ -1,9 +0,0 @@
created: 20140912145543340
modified: 20241216105528737
original-modified: 20211119192337845
tags: Demonstrations
title: SampleNotification
ja-title: 通知のサンプル
type: text/vnd.tiddlywiki
{{$:/core/images/done-button}} これは通知です!

View File

@@ -1,15 +0,0 @@
created: 20140912145537860
footer: <$button message="tm-close-tiddler">閉じる</$button>
modified: 20241215111438511
original-modified: 20211119205125230
subtitle: これはモーダルウィザードです
tags: Demonstrations
title: SampleWizard
ja-title: サンプルウィザード
type: text/vnd.tiddlywiki
これは、Tiddler [[サンプルウィザード|SampleWizard]]に保存されているモーダルウィザードダイアログです。
{{Motovun Jack.jpg}}
<$button message="tm-modal" param="SampleWizard2">ウィザードをネスト</$button>することもできます。

View File

@@ -1,13 +0,0 @@
created: 20140912145532856
footer: <$button message="tm-close-tiddler">閉じる</$button>
modified: 20241215111706825
original-modified: 20211119205144340
subtitle: これはもう一つのモーダルウィザードです
tags: Demonstrations
title: SampleWizard2
ja-title: サンプルウィザード2
type: text/vnd.tiddlywiki
これは、Tiddler [[サンプルウィザード2|SampleWizard2]]に保存されているもう一つのモーダルウィザードダイアログです。
<$button message="tm-modal" param="SampleWizard">ウィザードをネスト</$button>することもできます。

View File

@@ -1,13 +0,0 @@
created: 20140206211715540
modified: 20241206115421575
original-modified: 20160610081543108
tags: Features
title: AutoSave
ja-title: 自動保存
type: text/vnd.tiddlywiki
自動保存をサポートする利用可能なSavingMechanismがある場合、TiddlyWikiは、Tiddlerの編集時に<<.icon $:/core/images/done-button>>''ok''または<<.icon $:/core/images/delete-button>>''削除''をクリックすると、現在のドキュメントの保存を自動的にトリガーします
自動保存が行われたことを確認するために、ウィンドウの右上に黄色の通知が表示されます
自動保存は、[[コントロールパネル|$:/ControlPanel]]<<.icon $:/core/images/options-button>>の''設定''タブで有効または無効にできます。バックグラウンドでは、設定用Tiddler[[$:/config/AutoSave]]を通じて制御されます。自動保存を有効にするには、この構成の値が''yes''である必要があります

View File

@@ -1,42 +0,0 @@
title: Core Icons
ja-title: コアアイコン
tags: Features
modified: 20241206115817981
original-modified: 20230423103154329
created: 20230423103154329
!! 紹介
TiddlyWikiには100以上のカスタムベクターアイコンが含まれています。これらはユーザーインターフェイスに組み込まれており、作成者が独自のアプリケーションで使用することもできます。完全なリストについては、[[アイコンギャラリー|Icon Gallery]]を参照してください。
!! 使用法
コアアイコンはトランスクルージョンして使用します。例えば:
<<wikitext-example-without-html """{{$:/core/images/new-image-button}}
""">>
コアアイコンはパラメータ化されています。最初のパラメータ`size`は、アイコンをレンダリングするサイズを指定します:
<<wikitext-example-without-html """{{$:/core/images/picture|64px}}
<$transclude $tiddler="$:/core/images/picture" size="32px"/>
""">>
アイコンのサイズを動的に変更する例を示します:
<<wikitext-example-without-html """<$list filter="[range[24,56,8]]" variable=iconSize>
<$text text={{{ [<iconSize>addsuffix[px]] }}} />
<$transclude $tiddler="$:/core/icon" size=<<iconSize>>/>
</$list>
""">>
一部のアイコンは、レンダリング方法をカスタマイズするためにさらにパラメーターを受け取ります。例えば、$:/core/images/new-journal-buttonアイコンは、カレンダーに表示する日付を指定する追加パラメータ`day`を取ります。指定しない場合、デフォルトで現在の日付が設定されます
<<wikitext-example-without-html """{{$:/core/images/new-journal-button|48px|17}}
<$transclude $tiddler="$:/core/images/new-journal-button" day="17"/>
""">>
コア アイコンは、本格的なSVG画像としてではなく、埋め込み[[SVG 要素|Using SVG]]として実装されています。これは、CSSを使用してスタイルを設定できることを意味します。例えば、CSSプロパティ`fill`を使用してアイコンの色を変更できます。例えば:
<<wikitext-example-without-html """<span style="fill: red;">{{$:/core/images/opacity}}</span>
""">>

View File

@@ -1,89 +0,0 @@
created: 20140418142957325
modified: 20241206120335412
original-modified: 20230226144359284
tags: Features
title: DateFormat
ja-title: 日付形式
type: text/vnd.tiddlywiki
日付のデフォルトの表現は、<<.value 20211002153802059>>のようなコンパクトな文字列です。関連するテンプレートは`[UTC]YYYY0MM0DD0hh0mm0ss0XXX`です。たとえば、<<.field created>>や<<.field modified>>のフィールドは次のように保存されます。
この文字列の表示形式は、テンプレートで制御できます。たとえば、<<.field modified>>フィールドをトランスクルードすると、日付を<<.value "Sat Oct 02 2021 17:40:50 GMT+0200 (Central European Summer Time)">>として表示するテンプレートが自動的に適用されます。いくつかのウィジェットとフィルター演算子では、テンプレートを手動で指定できます。たとえば、ViewWidgetです:
`<$view field=modified format=date template="DDth mmm YYYY 0hh:0mm:0ss" />`
日付文字列は次の置換で処理されます:
|!トークン |!置き換えられる値 |
|`ddddd` |<<.from-version "5.2.0">> 年間日数 (1から365まで、うるう年の場合は366まで) |
|`0ddddd` |<<.from-version "5.2.0">> 年間日数(ゼロ埋め) (001から 365まで、うるう年の場合は366まで) |
|`DDD` |曜日 (例、"月曜") |
|`ddd` |曜日(短縮) (例、"月") |
|`dddd` |<<.from-version "5.2.0">> 月曜始まり日曜終わりの1から7までに曜日番号 |
|`DD` |日付 |
|`0DD` |日付(ゼロ埋め) |
|`DDth` |日付('日'付き) |
|`WW` |週番号(ISO-8601) |
|`0WW` |週番号(ISO-8601)(ゼロ埋め) |
|`MMM` |月 (例、"7月") |
|`mmm` |月(短縮) (例、"7月") |
|`MM` |月番号 |
|`0MM` |月番号(ゼロ埋め) |
|`YYYY` |年 |
|`YY` |年(下2桁) |
|`wYYYY` |週番号に関する年 |
|`aYYYY` |<<.from-version "5.1.23">> 年(負の日付を正として表示) |
|`wYY` |週番号に関する年(下2桁) |
|`{era:BCE||CE}` |<<.from-version "5.1.23">> 負、ゼロ、正の年に対して異なる文字列を表示 (下記参照) |
|`hh` |時 |
|`0hh` |時(ゼロ埋め) |
|`hh12` |時(12時間表記) |
|`0hh12` |時(12時間表記)(ゼロ埋め) |
|`mm` |分 |
|`0mm` |分(ゼロ埋め) |
|`ss` |秒 |
|`0ss` |秒(ゼロ埋め) |
|`XXX` |ミリ秒 |
|`0XXX` |ミリ秒(ゼロ埋め) |
|`am` or `pm` |AM/PMインジケータ(小文字) |
|`AM` or `PM` |AM/PMインジケータ(大文字) |
|`TZD` |タイムゾーンオフセット |
|`TIMESTAMP` |<<.from-version "5.2.4">> 1970年1月1日([[ECMAScriptエポック|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#the_ecmascript_epoch_and_timestamps]])からのミリ秒数 |
|`\x` |特別な意味を持つ文字をエスケープするために使用 |
|`[UTC]`|表現された日付をUTCにタイムシフトします。フォーマット文字列の先頭になければなりません。|
その他のテキストは変更されずに渡され、カンマ、コロン、またはその他の区切り文字が使用されることに注意してください。
この`{era:BCE||CE}`表記法では、負、ゼロ、正の年に対して異なる文字列を指定できます。たとえば、`{era:BC|Z|AD}`は、負の年の場合は<<.value BC>>、正の年の場合は<<.value AD>>、0年の場合は<<.value Z>>が表示されます。
! 例
|!テンプレート |!Output |
|`DDth MMM YYYY` |16日 2月 2011 |
|`DDth MMM \M\M\M YYYY` |16日 2月 MMM 2011 |
|`DDth mmm YYYY 0hh:0mm:0ss` |16日 2月 2011 11:38:42 |
!! <<.value TIMESTAMP>>を時間差を計算するために使用する
次のようにして、2つの日付の差を計算できます:
# 両方の日付をタイムスタンプに変換します
# 後の日付を前の日付から引きます -- どちらが早いかわからない場合は、減算後に絶対値を取得する<<.olink "abs">>演算子を使用します
# 結果の数値を選択した間隔のミリ秒数で割ります
以下は、現在のTiddlerの作成から最終更新までの経過日数を計算する例です:
* <<.field created>>フィールドと<<.field modified>>フィールドをタイムスタンプに変換します
* その差を1日のミリ秒数である<<.value 86400000>>で割ります
** 1000ミリ秒/秒 × 60秒/分 × 60分/時 × 24時間/日 = 86,400,000 ミリ秒/日
<$macrocall $name=".example" n="0" eg="""<$let
timestamp-modified={{{ [{!!modified}format:date[TIMESTAMP]] }}}
timestamp-created={{{ [{!!created}format:date[TIMESTAMP]] }}}
difference-days={{{ [<timestamp-modified>subtract<timestamp-created>divide[86400000]floor[]] }}}>
* ''更新日:'' <$text text={{{ [{!!modified}format:date[YYYY-0MM-0DD]] }}}/>
* ''作成日:'' <$text text={{{ [{!!created}format:date[YYYY-0MM-0DD]] }}}/>
* ''日付の差:'' <<difference-days>>日
</$let>"""/>

View File

@@ -1,22 +0,0 @@
created: 20230627093650105
modified: 20241207112556326
original-modified: 20230627094356394
tags: Features
title: Deserializers
ja-title: デシリアライザー
type: text/vnd.tiddlywiki
デシリアライザー[[モジュール|Modules]]は、さまざまな形式のテキストをTiddlerとしてJSON表現に解析します。Wikiで使用可能なデシリアライザーモジュールは、 [[デシリアライザー演算子|deserializers Operator]]を使用して表示でき 、[[デシリアライズ演算子|deserialize Operator]]とともに使用できます。
TiddlyWikiコアは次のデシリアライザーを提供します:
|!デシリアライザー |!説明 |
|(DOM)|DOMードからTiddlerを抽出します。<<.op deserialize[]>>演算子と一緒に使用しないでください|
|application/javascript|ヘッダーコメントからフィールドを抽出するTiddlerとしてJavaScriptモジュールを解析します|
|application/json|[[JSON|JSON in TiddlyWiki]]を解析してTiddlerにします|
|application/x-tiddler|[[.tidファイル形式|TiddlerFiles]]を解析してTiddlerにします|
|application/x-tiddler-html-div|[[<DIV>.tiddlerファイルフォーマット|TiddlerFiles]]を解析してTiddlerにします|
|application/x-tiddlers|[[MultiTiddlerFile形式|MultiTiddlerFiles]]を解析してTiddlerにします|
|text/css|CSSを解析しヘッダーコメントからフィールドを抽出してTiddlerにします|
|text/html|HTMLファイルを解析してTiddlerにします。~TiddlyWikiクラシックHTMLファイル、~TiddlyWiki5 HTMLファイル、通常のHTMLファイルをサポートします|
|text/plain|プレーンテキストを解析してTiddlerにします|

View File

@@ -1,33 +0,0 @@
created: 20170328143119836
modified: 20241208110958833
original-modified: 20170328173846754
tags: Features
title: Drag and Drop
ja-title: ドラッグアンドドロップ
type: text/vnd.tiddlywiki
~TiddlyWikiはドラッグアンドドロップを使用して、2つの機能を実現します:
* ~TiddlyWikiに[[Tiddlerをインポート|Importing Tiddlers]]する
* ~TiddlyWiki内でのTiddler操作
ドラッグアンドドロップによるTiddler操作は、次のコンテキストでコアのユーザーインターフェイスによってサポートされます:
* サイドバーの"表示中"タブのエントリはドラッグアンドドロップで並べ替えることができます。タイトルをリストにドラッグすることで新しいTiddlerを開くことができます。
* タグピルのドロップダウン内のエントリはドラッグアンドドロップで並べ替えることができます。タイトルをリストにドラッグすることで新しいTiddlerにタグを割り当てることができます。
* [[コントロールパネル|$:/ControlPanel]]の"外観"/ツールバー"タブのエントリは、ドラッグアンドドロップで並べ替えることができます。(あまり便利ではありませんが、タイトルをリストにドラッグすることで、ツールバーに新しいエントリを追加できます)
すべてのTiddlerリンクはデフォルトでドラッグ可能です。ブラウザウィンドウ内でドラッグしてTiddlerを操作することも、別のブラウザウィンドウにドラッグして[[インポート操作|Importing Tiddlers]]を開始することもできます。
リンクをドラッグする場合は、水平方向の移動はブラウザによってテキスト選択として認識されるため、最初に垂直方向に移動します。
タグピルもドラッグ可能であり、タグを持つ個々のTiddlerすべてを同時にドラッグするのと同じです。
ドラッグアンドドロップによるTiddler操作の一般的なシナリオは、再利用可能なマクロとして利用できます:
* [[list-links-draggableマクロ|list-links-draggable Macro]]はTiddler ListField内のエントリを並べ替えるためのマクロ
* [[list-tagged-draggableマクロ|list-tagged-draggable Macro]]は指定されたタグを持つTiddlerを並べ替えるためのマクロ
低レベルのドラッグアンドドロッププリミティブを使用して、より複雑なインタラクションを構築する方法の詳細については、[[ドラッグアンドドロップのメカニズム|DragAndDropMechanism]]を参照してください。
~TiddlyWikiで使用される標準HTML 5のドラッグアンドドロップAPI は、通常、スマートフォンやタブレットのモバイルブラウザーでは利用できません。[[モバイルドラッグアンドドロップShimプラグイン|Mobile Drag And Drop Shim Plugin]]は、iOSやAndroidを含む多くのモバイルブラウザーで部分的サポートを実装するオープンソースライブラリを追加します。

View File

@@ -1,13 +0,0 @@
created: 20130822172800000
modified: 20241206113502662
original-modified: 20160107225826644
tags: TableOfContents
title: Features
ja-title: 機能
type: text/vnd.tiddlywiki
TiddlyWikiの機能に関する詳細情報:
<<list-links "[tag[Features]]">>
最後になりましたが、TiddlyWikiは実用的な[[クワイン|Quine]]の稀な例です

View File

@@ -1,18 +0,0 @@
created: 20131213101024997
modified: 20241210112855653
original-modified: 20170329104438386
tags: Features
title: Future Proof
ja-title: 将来性
type: text/vnd.tiddlywiki
2016年1月の[[Network World|http://www.networkworld.com/article/3028098/open-source-tools/tiddlywiki-a-free-open-source-wiki-revisited.html]]誌より:
<<<
はるか昔(正確には2009年1月)、私はTiddlyWikiという“個人用非線形Webートブック”という非常に優れたツールについて[[書きました|http://www.networkworld.com/article/2272104/applications/an-amazing-free-microwiki.html]]。そして今日になって、私は幽体離脱体験をしました。偶然、その記事を書いたときに始めたTiddlyWikiを見つけたのですが、それはまだ機能しているのです。
わずか2、3年後に完璧に動作するコードが見つかるだけでも十分魔法のようですが、7年も経ってます! TiddlyWikiは単一ページのWebアプリケーションとして作成されており、現在のブラウザーが2009年当時と大きく異なることを考えると、TiddlyWikiの古いバージョンがまだ動作しているという事実はまさに奇跡的です。
<<<
TiddlyWikiは、ユーザーの長期的なニーズを念頭に置いて設計されています。[[オープンソース|OpenSource]]であり、インフラストラクチャを必要としないため、遠い未来においても、~TiddlyWikiファイルにアクセスするために必要なのは、通常のHTMLブラウザーだけであると確信できます。キャリアの初期に~TiddlyWikiを使い始めたとしても、退職するまで~TiddlyWikiが役立つと確信できます。

View File

@@ -1,28 +0,0 @@
created: 20130825162000000
modified: 20241211112813514
original-modified: 20170328160211362
tags: Features
title: Importing Tiddlers
ja-title: Tiddlerのインポート
type: text/vnd.tiddlywiki
外部ファイルから、または別の~TiddlyWikiから直接、Tiddlerを~TiddlyWikiにインポートできます。
!! 外部ファイルからのコンテンツのインポート
外部ファイルからコンテンツ(テキスト、画像、PDFドキュメントなど)をインポートする方法はいくつかあります:
* <<.icon $:/core/images/import-button>> ''インポート''ボタン(サイドバーの''ツール''タブ配下)を使用してローカルファイルを選択します
* WindowsエクスプローラーやOS X Finderなどからファイルを~TiddlyWikiブラウザウィンドウにドラッグアンドドロップします
* メニューやキーボードショートカット(<kbd>ctrl-V</kbd>または<kbd>cmd-V</kbd>)を使用して、クリップボードから直接コンテンツを貼り付けます
** 現在、Chrome、Firefox、Edgeでサポートされています(Internet Explorerはサポートされていません)
ほとんどのファイルは個別のTiddlerとしてインポートされます。例外は次のとおりです:
* ~TiddlyWikiファイルとして認識された''.html''ファイルは解析され、その中のTiddlerが抽出されます。
* ''.json''ファイルは解析され、その中にあるTiddlerが抽出されます。''.json''ファイルは、別の~TiddlyWikiから[[エクスポートする|How to export tiddlers]]ことで作成できます。~TiddlyWikiは、単一のTiddlerフィールドオブジェクトまたはTiddlerフィールドオブジェクトの配列を含むJSONファイルを受け入れます
!! 他の~TiddlyWikiブラウザウィンドウからのコンテンツのインポート
Tiddlerは、[[ドラッグアンドドロップ|Drag and Drop]]を使用して他の~TiddlyWikiブラウザーウィンドウからインポートできます。TiddlyWikiの内部リンクやタグを、ある~TiddlyWikiブラウザーウィンドウから別のウィンドウにドラッグします。内部リンクをドラッグすると1つのTiddlerがインポートされますが、タグピルをドラッグすると、そのタグを持つすべてのTiddlerがインポートされます。

View File

@@ -1,73 +0,0 @@
title: JSON in TiddlyWiki
ja-title: TiddlyWikiでのJSON
tags: Features
type: text/vnd.tiddlywiki
created: 20220427174702859
modified: 20241214111229300
original-modified: 20220611104737314
!! 紹介
JSON(~JavaScript Object Notation)は、データの保存と転送に広く使用されているデータ構造の標準化されたテキスト表現です。
JSONはTiddlyWikiのさまざまなコンテキストで使用されます。例:
* TiddlerはTiddlyWiki HTMLファイル内でJSONデータとして表現されます
* Tiddlerの集まりはJSONファイルとして[[エクスポート|How to export tiddlers]]および[[インポート|Importing Tiddlers]]できます
* プラグインTiddlerは、構成要素の隠しTiddlerをJSONデータとして保存します
* クライアント-サーバー構成では、クライアントとサーバー間の通信に[[JSONメッセージ|TiddlyWeb JSON tiddler format]]を使用します
* DataTiddlers内の任意のJSONデータは、一連のフィルター演算子とアクションウィジェットを使用して処理および操作できます
!! JSONについて
公式ウェブサイト https://json.org/ の JSONの技術的説明は簡潔です。ここでは主な機能を要約します。
JSONは次の2つの基本データ構造をサポートします:
''配列''はアイテムのリストです。アイテムは数値インデックス(0始まり)によって識別されます
配列の例は次のとおりです:
```json
["one","two","three\"four"]
```
次の配列の機能に注意してください:
* 配列はアイテムのリストを囲む角括弧で表されます
* 各アイテムは二重引用符で囲まれた文字列です。二重引用符は、その前にバックスラッシュ(`\`)を付けることで文字列内に含めることができます
* アイテムはカンマで区切られます
''オブジェクト''は名前と値のペアの集合です。各アイテムは一意の名前で識別される値です
オブジェクトの例は次のとおりです:
```json
{
"first": "これは一番目の値です",
"second": "これは二番目の値です",
"third": "これは三番目の値です"
}
```
次のオブジェクトの機能に注意してください:
* オブジェクトは、名前と値のペアのリストを囲む中括弧で表されます
* 各名前/値のペアは、二重引用符で囲まれた名前、コロン、そして値で構成されます
* 名前と値のペアはカンマで区切られます
上記の例はすべて文字列値を示しています。JSONはいくつかの異なるタイプの値をサポートしています。これらのタイプはいずれも値として使用できます:
* 上に示したような文字列値
* `1`, `3.14`のような符号付き十進数として表される数値、指数表記も使用できます。例: `-1E10`
* キーワード`true`と`false`とで表されるブール値
* 欠損または不完全なデータを表すために使用される特別な値 `null`
* オブジェクトと配列も値であり、複雑なネスト構造を表現することができる
!! データTiddlerの操作
* [[JSON Tiddlerからのデータの読み取り|Reading data from JSON tiddlers]]
* [[JSON Tiddlerの構築|Constructing JSON tiddlers]]
* [[JSON Tiddlerの修正|Modifying JSON tiddlers]]

View File

@@ -1,32 +0,0 @@
created: 20140206214608586
modified: 20241214111529899
original-modified: 20211009145417525
tags: Features
title: LazyLoading
ja-title: 遅延読み込み
type: text/vnd.tiddlywiki
通常、TiddlyWikiでは、すべてのTiddlerの完全なコンテンツがメインのHTMLファイルに埋め込まれます。遅延読み込みとは、Tiddlerに関するメタデータ(言い換えると、''テキスト''フィールド以外のすべてのフィールド)のみを埋め込み、必要なときにサーバーから本文を要求する手法を指します。
遅延読み込みは次の2つの構成で使用できます:
* [[Node.js上でのTiddlerWiki|TiddlyWiki on Node.js]]を実行する場合、画像Tiddlerのみ、またはシステム以外のすべてのTiddlerが遅延読み込みの対象にできます
* [[TiddlyWebのためのSkyでのTiddlyWiki|TiddlyWiki in the Sky for TiddlyWeb]]を実行する場合、すべてのTiddlerは遅延読み込みの対象になります
遅延読み込みの実装方法の詳細については、[[遅延読み込みメカニズム|https://tiddlywiki.com/dev/#LazyLoadingMechanism]]を参照してください。
! Node.jsでの遅延読み込み
画像Tiddlerの遅延読み込みでTiddlyWikiを起動するには、次のコマンドを使用します:
```
tiddlywiki --listen root-tiddler=$:/core/save/lazy-images
```
非システムTiddlerすべてに遅延読み込みを適用するには、次のコマンドを使用します:
```
tiddlywiki --listen root-tiddler=$:/core/save/lazy-all
```

View File

@@ -1,26 +0,0 @@
created: 20160107225427489
modified: 20241215105515572
original-modified: 20211221102625141
tags: Features
title: Modals
ja-title: モーダル
type: text/vnd.tiddlywiki
モーダル(または"ウィザード")は、メインのTiddlyWikiウィンドウをフェードアウトして、ユーザーが明示的に閉じる必要がある独立したTiddlerを表示します。
表示されるTiddlerには、モーダルをカスタマイズするために使用される次のオプションフィールドを含めることができます:
|!フィールド |!説明 |
|footer|モーダルのフッターテキスト|
|subtitle|`h3`HTMLタグ内に表示されるモーダルのサブタイトルテキスト|
|class|モーダルラッパーに適用する追加クラス|
|help|フッターの左側に"Help"というテキストとともに表示されるオプションの外部リンク|
|mask-closable|''yes''または''true''に設定すると、マスク(モーダルの外側の領域)がクリックされたときにモーダルダイアログが閉じます|
フッターとサブタイトルのフィールドはプレーンテキストに限定されず、ウィジェットやトランスクルージョンなどのWikiテキスト機能も使用できることに注意してください。
モーダルは[[WidgetMessage: tm-modal]]で表示されます。
<$button message="tm-modal" param="SampleWizard">デモモーダルを開く</$button>
<<.tip """<$macrocall $name=".from-version" version="5.2.4"/> "mask-closable"フィールドが使用できるようになりました""">>

View File

@@ -1,11 +0,0 @@
created: 20160107225753340
modified: 20241215112240963
original-modified: 20160107225855353
tags: Features
title: Notifications
ja-title: 通知
type: text/vnd.tiddlywiki
通知は、 TiddlyWikiウィンドウの右上に表示される小さな情報メッセージで、事前に設定された時間が経過すると自動的に消えます。
<$button message="tm-notify" param="SampleNotification">通知のサンプルを表示</$button>

View File

@@ -1,38 +0,0 @@
created: 20190316163428191
modified: 20241216105842099
original-modified: 20190510133455372
tags: Features
title: Performance Instrumentation
ja-title: パフォーマンス統計情報
type: text/vnd.tiddlywiki
コアには、更新サイクル用のパフォーマンス統計情報が組み込まれています。コントロールパネルの“設定”タブの“パフォーマンス統計情報”を参照してください。有効化には、Wikiを再読み込みする必要があります。
パフォーマンス統計情報をオンにすると、更新サイクルがトリガーされるたびに、ブラウザのデベロッパーコンソールにタイミング情報が追記されます。例:
```
performance: mainRender: 327.83ms
performance: styleRefresh: 9.14ms
performance: mainRefresh: 68.10ms
```
上記の情報は次のように解釈できます:
* mainRenderはページテンプレートの初期表示にかかる時間です
* styleRefreshはページのスタイルシートをリフレッシュするのにかかる時間です
* mainRefreshはメインページテンプレートをリフレッシュするのにかかる時間です
たとえば、サイドバーのタブを切り替えて、レンダリングにかかる​​時間を比較してみましょう。
フィルター実行タイミングに関する詳細な情報も利用できます。パフォーマンス統計情報を有効にして、ブラウザーのデベロッパーコンソールに次のJavaScriptコマンドを入力します:
```
$tw.perf.log()
```
次の情報を含むテーブルが表示されます:
* ''name'' - 文字列"Filter: "とフィルターのテキスト
* ''invocations'' - 起動からのフィルターの呼び出し回数
* ''totalTime'' - 起動からのこのフィルターの評価に費やされた合計時間(ミリ秒)
* ''percentTime'' - すべてのフィルターの実行時間合計に対するこのフィルターの実行時間の割合

View File

@@ -1,30 +0,0 @@
created: 20140419082845576
modified: 20241217111550799
original-modified: 20190912093109517
tags: Features
title: SafeMode
ja-title: セーフモード
type: text/vnd.tiddlywiki
! 紹介
セーフモードでは、TiddlyWikiのほとんどのカスタマイズを無効にすることができます。TiddlyWikiが誤ってカスタマイズされると動作しなくなる可能性があるため、この機能は便利です。特に問題となるのは、TiddlyWikiの新しいコアバージョン(特にベータ版)にアップグレードすると、一部のカスタマイズが壊れてしまうことです。
<<.warning "セーフモードは、TiddlyWikiの単一ファイル構成でのみ使用し、自動保存を行わないセーバーでのみ使用してください。クライアントサーバー構成でセーフモードを使用すると、データが失われる可能性があります。">>
! セーフモードの有効化
ブラウザでセーフモードを有効にするには、URLハッシュに文字列`#:safe`に設定してTiddlyWikiを起動します。例:
https://tiddlywiki.com/#:safe
! セーフモードの仕組み
セーフモードでは、次の2つの変更が行われます:
* すべてのプラグインは一時的に無効になっています。[[コントロールパネル|$:/ControlPanel]] <<.icon $:/core/images/options-button>>を使用して個々のプラグインを無効にすることができます。
* 隠しTiddlerをオーバーライドするTiddlerは、プレフィックス`SAFE: `を付けた名前に変更され、元の隠しTiddlerが復元されます
* 特定の構成オプションは無視され、代わりにデフォルト設定が使用されます:
** WikiParserRuleConfiguration
名前が変更されたTiddlerを検査できるレポートTiddlerが表示されます。

View File

@@ -1,11 +0,0 @@
created: 20130822173400000
modified: 20241218111837188
original-modified: 20211124215615812
tags: Features
title: Scalability
ja-title: スケーラビリティ
type: text/vnd.tiddlywiki
TiddlyWikiの[[シングルページアプリケーション|SinglePageApplication]]としてのアーキテクチャは、大量のデータには適さないと思われるかもしれません。実際、TiddlyWikiユーザーは、数十あるいは100メガバイトを超えるファイルでも問題なく処理しています。また、ギガバイト単位のファイルでも実験に成功しています。
大規模なWikiの[[パフォーマンスに関するティップス|Performance]]を参照してください。

View File

@@ -1,46 +0,0 @@
created: 20180323092308399
modified: 20241218112530254
original-modified: 20201025161723719
tags: Features
title: StartupActions
ja-title: スタートアップアクション
type: text/vnd.tiddlywiki
TiddlyWikiはスタートアップ時に、次のシステムタグを持つTiddlerのActionWidgetsを実行します:
* 初期スタートアップ時に実行されます:
** <<tag "$:/tags/StartupAction">> (すべてのプラットフォームで実行)
** <<tag "$:/tags/StartupAction/Browser">> (ブラウザで実行している場合にのみ実)
** <<tag "$:/tags/StartupAction/Node">> (Node.jsで実行している場合にのみ実行)
* レンダリング後のスタートアップ時に実行されます:
** <<.from-version "5.1.23">> <<tag "$:/tags/StartupAction/PostRender">> (ブラウザで実行している場合にのみ実行)
!! 初期スタートアップアクション
初期スタートアップアクションは、画面サイズなどの環境要因に応じてTiddlyWikiをカスタマイズするのに役立ちます。たとえば、次のアクションウィジェットをTiddlerタグ`$:/tags/StartupAction/Browser`を付けて配置すると、画面幅が1000ピクセル未満の場合にサイドバーがデフォルトで非表示になります:
```
<$reveal type="lt" state="$:/info/browser/screen/width" text="3000">
<$action-setfield $tiddler="$:/state/sidebar" $value="no"/>
</$reveal>
<$reveal type="gteq" state="$:/info/browser/screen/width" text="3000">
<$action-setfield $tiddler="$:/state/sidebar" $value="yes"/>
</$reveal>
```
<<.from-version "5.1.20">> 次の例では、ブラウザによって報告された言語に一致する言語プラグインに切り替えます:
```
<$action-setfield $tiddler="$:/language" text={{{ [[$:/languages/en-GB]] [plugin-type[language]sort[description]removeprefix[$:/languages/]] +[prefix{$:/info/browser/language}] ~[[en-GB]] +[addprefix[$:/languages/]] }}}/>
```
デフォルトでは、グローバルマクロは初期スタートアップアクションTiddler内では利用できないことに注意してください。これらにアクセスする必要がある場合は、Tiddlerの先頭に[[Pragma: \import]]を明示的に含める必要があります:
```
\import [subfilter{$:/core/config/GlobalImportFilter}]
```
!! レンダリング後のスタートアップアクション
<<.from-version "5.1.23">> レンダリング後のスタートアップアクションは、TiddlyWikiのユーザーインターフェイスがレンダリングされた後に実行されます。これにより、レンダリングされた表示に依存するアクション(モーダルの表示など)を実行できるようになります。

View File

@@ -1,24 +0,0 @@
created: 20150325170720682
modified: 20241129110246653
original-modified: 20210519110623819
tags: HelloThere
title: A Gentle Guide to TiddlyWiki
ja-title: TiddlyWikiの優しいガイド
type: text/vnd.tiddlywiki
TiddlyWikiは、他のソフトウェアとは異なる方法で考案され構築された、信じられないほど柔軟で多用途なツールです。そのため、クリックし、脳のシームレスな拡張になる瞬間まで、理解するのが困難です
基礎から始めると、TiddlyWikiは、無料でダウンロードでき、好きな場所に保存し、好きなようにカスタマイズできる、Webアプリケーションートです。これを使用すると、ワープロや他のートツールとは異なる方法で、メモを取り、整理し、共有できます
~TiddlyWikiは非線形になるように設計されており、ストーリー、タグ、ハイパーリンク、その他の機能を使用してコンテンツを構造化します。組織であらかじめ設定された一つの構造に縛られることなく、個人の思考パターンに応じた方法でートを整理したり取得したりできます
~TiddlyWikiは、オンラインでもオフラインでも、任意のWebブラウザで表示、編集できる単一のファイルとして使用できます。または、各ートを個別のファイルとして保存する強力な[[Node.jsアプリケーション|TiddlyWiki on Node.js]]として使用することもできます
~TiddlyWikiをどのように機能させることができるでしょうか? 以下にリストされている入門ドキュメントから始めて、サイドバーの目次タブにある[[目次|TableOfContents]]をブラウズすることをお勧めします。または、[[簡単なインストラクションに従って|GettingStarted]]、自分で試してみてください
<<list-links "[tag[HelloThere]]">>
以下も参照してください:
* [[Soren Bjornstadの"Grok TiddlyWiki"|"Grok TiddlyWiki" by Soren Bjornstad]]
* [[Francis MeetzeのTiddlyWiki動画チュートリアル|TiddlyWiki Video Tutorials by Francis Meetze]]

View File

@@ -1,38 +0,0 @@
created: 20140904121000000
modified: 20241129110927004
original-modified: 20151023165341339
tags: HelloThere
title: Discover TiddlyWiki
ja-title: TiddlyWikiを知る
type: text/vnd.tiddlywiki
~TiddlyWikiは//他に//類を見ないものです。TiddlyWikiは:
:: ツールです,
:: ツールボックスです,
:: コミュニティです,
:: 哲学です
! ~TiddlyWikiはツールです
''~TiddlyWikiは何よりもまずツールです:''Webから、ドキュメントから、または、頭脳からコンテンツをキャプチャして整理するための無料でダウンロード可能なツールです。メモ取り、ブックマーク、ピン止め、書き込み、To-Doリストとプロジェクトの管理、共同作業、ブログ作成、公開を行うためのツールです
~TiddlyWikiでは、Tiddlerと呼ばれるートにコンテンツを作成、または貼り付け、ハイパーリンクとタグでTiddlerを接続します。その後、タグによる表示、サイドバータブ、~TiddlyWikiの超高速検索ウィンドウなどの機能を使用して、メモをすばやく取得できます。ビルディングブロックを使用するのと同様に、あるTiddlerのコンテンツを別のTiddlerのコンテンツに動的に組み込んで、記事、リスト、プレゼンテーションなどを作成することもできます
! ~TiddlyWikiはツールボックスです
多用途のツールであるだけでなく、''~TiddlyWikiはツールボックスでもあります''
他のメモ作成製品では、基本的なプログラムを使用してみると、本当に便利な機能に対しては料金を請求するのに対し、~TiddlyWiki には、完全に無料のビジュアルテーマ、カラーパレット、プラグイン、ウィジェット、マクロの拡大し続けるコレクションがあり、これらを組み合わせて、~TiddlyWikiを調整して、希望通りにできます
! ~TiddlyWikiはコミュニティでもあります
私たちはユーザーと開発者の[[コ​​ミュニティ|Community]]であり、お互いに新しい考え方や組織化の方法を想像し、新しいソリューションを作成するのを助け、~TiddlyWikiがユーザーのニーズによりよく応えるために継続的に適応していきます。~TiddlyWikiユーザーと開発者は、~TiddlyWiki Googleグループで質問やアドバイスを共有します。また、~TiddlyWikiのエクスペリエンスを向上させるためのチュートリアル、適応方法、プラグインも作成します。詳細については、[[目次|TableOfContents]] の''コミュニティ''セクションを参照してください。
! 最後に、~TiddlyWikiは哲学です
メモを取って整理する(または、あらゆる種類のコンテンツを記録する)目的は、後でそれを利用できるようにすることです。メモ作成システムでメモが見つからない場合、メモを取ることは膨大な時間の無駄になります
[[TiddlyWikiの哲学|Philosophy of Tiddlers]]では、メモを取る最良の方法は、メモを可能な限り最小の意味単位Tiddlerに分割することである、というものです。Tiddlerは、画像、Webページのリンク、コンセプト、用語の定義、またはマクロなどの特殊なカスタマイズである可能性があります
これらのTiddlerを組み合わせて、ストーリー、記事、リスト、画像ギャラリーなどのより長い単位を作成できます。タグ付け、ハイパーリンク、フィルターなどの~TiddlyWikiの機能は、さまざまな方法でTiddlerを関連付けて接続できるように特別に設計されており、将来のメモ検索を容易にし、さらにTiddler間の予期せぬ関係やそこに含まれる情報を確認するのにも役立ちます

View File

@@ -1,22 +0,0 @@
created: 20140904090300000
modified: 20241129111454910
original-modified: 20211018102355896
tags: HelloThere
title: Some of the things you can do with TiddlyWiki
ja-title: TiddlyWikiでできること
type: text/vnd.tiddlywiki
* メモを取り、タグとハイパーリンクを使用してメモ間を結びつけます
* タブ、表、タグベースのリスト、目次を使用して整理します
* お気に入りのWebサイトをブックマークします(http://giffmex.org/experiments/tidmarks.html の例を参照)
* タスクと予定を追跡し、複数のタグで整理します([[タスク管理の例|TaskManagementExample]]を参照)
* レシピ、個人ライブラリ、連絡先、音楽コレクションなど、あらゆるものを蓄積します
* ブログやウェブサイトを作成します
* 本を書きます
* 画像をギャラリーに整理します([[アイコンギャラリー|Icon Gallery]]を参照)
* ~TiddlyWiki内の情報をオンラインファイル、添付ファイル、Tiddlerファイル、または特定のオンラインTiddlerへのリンクとして他のユーザーと共有します(~TiddlyWikiファイルのTiddlerを別の~TiddlyWikiファイルにクリック&ドラッグして、何が起こるかを確認してください)
* スケッチを描きます([[Motovun Jack.jpg]] を編集し、画像の上に描画を開始して、何が起こるかを確認してください)
* Lightboxなどの使い慣れたWebユーザーインターフェイス要素を使用します - [[サンプルウィザード|SampleWizard]]を参照してください
* スライドショープレゼンテーションを作成します
* 他の~TiddlyWikiファイルにリンクする中央の~TiddlyWikiファイルを使用して、ローカルやオンラインのナレッジベースをセットアップします(http://recursos.giffmex.org はスペイン語のオンライン例です)
* Tiddlerをデータとして使用してデータビジュアリゼーションをセットアップします(https://tiddlywiki.com/plugins/tiddlywiki/d3/ でビジュアリゼーションを参照してください)

View File

@@ -1,20 +0,0 @@
created: 20140904085700000
modified: 20241129111947741
original-modified: 20150414071655191
tags: HelloThere
title: Ten reasons to switch to TiddlyWiki
ja-title: TiddlyWikiに乗り替える10の理由
type: text/vnd.tiddlywiki
@@.tc-double-spaced-list
# ~TiddlyWikiを使えば、他の人のやり方ではなく、自分のやり方でメモを整理できます。あなたのートは、ートブックとタブという階層的な束縛に強制されるのではなく、あなたの考え方に準じます
# ~TiddlyWikiの非線形アプローチは、実際に、新しい有益な方法で情報について考えさせられます
# ~TiddlyWikiでメモを見つけるのは超高速です
# ~TiddlyWikiのあらゆる面をカスタマイズして適応させる方法がたくさんあります
# ~TiddlyWikiは無料で、すべてのプラットフォームと互換性があります。どのWebブラウザでも開きます。使用するために高価なプログラムを購入したり、サブスクリプション料金を支払う必要はありません
# ~TiddlyWikiファイルは、情報の自由な共有を促進します。~TiddlyWikiから情報を共有するにはさまざまな方法があります
# ~TiddlyWikiを使用すると、あなたの情報はあなたのものになり、デバイス、USBメモリ、Dropbox、サーバーなど、好きな場所に保存できます
# ~TiddlyWikiには、たくさんのプラグイン、テーマ、ウィジェット、言語が含まれ、増え続けています
# オンライン~TiddlyWikiコミュニティはフレンドリーで、必要なサポートを提供できるよう最善を尽くします
# あなたがプログラマであれば、~TiddlyWikiを使って遊ぶ方法はさらにたくさんあります。~TiddlyWikiを知れば知るほど楽しくなります
@@

View File

@@ -1,17 +0,0 @@
title: What happened to the original TiddlyWiki?
ja-title: オリジナルのTiddlyWikiはどうなったか?
tags: HelloThere
created: 201409040851
modified: 20241129112304613
original-modified: 201409040851
<a class="tc-float-right tc-bordered-image" href="https://classic.tiddlywiki.com/" target="_blank" rel="noopener noreferrer">[img width="200" [TiddlyWiki Classic.png]]</a>
TiddlyWikiのオリジナルの[[クラシック|TiddlyWikiClassic]]バージョンは、現在も以下の場所から入手できます:
https://classic.tiddlywiki.com.
TiddlyWikiの[[現バージョン|TiddlyWiki5]]はTiddlyWikiClassicとの完全な下位互換性がないことに注意してください。コンテンツはインポートできますが、新しいWikiテキスト形式に適応させるためにマッサージが必要になります。TiddlyWikiClassic用に作成されたほとんどのコンテンツを忠実に表示できるようにする''tw2parser''プラグインが開発中です:
https://tiddlywiki.com/plugins/tiddlywiki/tw2parser/

View File

@@ -1,11 +0,0 @@
title: HelloThumbnail - MultiWikiServer
ja-title: HelloThumbnail - MultiWikiServer
tags: HelloThumbnail
color: purple
background-color: #fff
caption: ~MultiWikiServer
link: MultiWikiServer
image: MWS Banner.png
ribbon-text: SOON
~TiddlyWikiを、複数のユーザアカウントとTiddlerの共有をサポートする本格的なサーバシステムにする新しい~MultiWikiServerプラグインについて詳細をご覧ください

View File

@@ -1,9 +0,0 @@
title: HelloThumbnail - TiddlyWiki Privacy
tags: HelloThumbnail
color: #D5B7EA
image: TiddlyWiki Privacy Badge.png
caption: プライバシーとセキュリティ
link: TiddlyWiki Privacy and Security
ribbon-text: NEW
注意すれば、~TiddlyWikiは完全にプライベートに使用でき、自分のデバイス以外のものや人を信頼する必要はありません

View File

@@ -1,14 +0,0 @@
created: 20240811052854726
modified: 20241116102931084
original-modified: 20240811053649554
tags: [[Hidden Settings]]
title: Hidden Setting: Content to be displayed for empty story
ja-title: 隠し設定: 空のストーリーに表示されるコンテンツ
ストーリーが空のときにコンテンツを表示するには、$:/config/EmptyStoryMessageを作成し、必要なコンテンツを入力します。
以下は、すべてのTiddlerが閉じられている場合に、GettingStarted Tiddlerを表示します。
```
{{GettingStarted||$:/core/ui/ViewTemplate}}
```

View File

@@ -1,5 +0,0 @@
title: Hidden Setting: Retain Story ordering
ja-title: 隠し設定: 保存時の表示を維持
tags: [[Hidden Settings]]
Tiddler $:/config/ControlPanel/Basics/DefaultTiddlers/RetainStoryには、$:/ControlPanelの''情報'' -> ''基本''タブの"保存時の表示を維持"ボタンをクリックしたときに$:/DefaultTiddlersに割り当てられる値が含まれています。

View File

@@ -1,9 +0,0 @@
created: 20240907042443909
modified: 20241116104031988
original-modified: 20240907042629405
tags: [[Hidden Settings]]
title: Hidden Setting: Default Tiddler Colour
ja-title: 隠し設定: TIddlerのデフォルト色
type: text/vnd.tiddlywiki
デフォルトのTiddler色は、$:/config/DefaultTiddlerColourというTiddlerを作成し、CSSの色の値を含むことによって指定できます。

View File

@@ -1,10 +0,0 @@
title: Hidden Setting: Tab Index for Edit-Inputs
ja-title: 隠し設定: 編集入力のタブインデックス
tags: [[Hidden Settings]]
created: 20190702074846206
modified: 20241126104700035
original-modified: 20190702074846206
編集中のTiddlerの入力フィールドには、''タブインデックス''値(1が望ましい)を割り当てることができるので、<kbd>Tab</kbd>キーを使用して、フォーカスを1つの入力から次の入力へ、または<kbd>shift-Tab</kbd>で後方へ直接移動することができます。
$:/config/EditTabIndex

View File

@@ -1,16 +0,0 @@
created: 20210411100148461
modified: 20241123115717620
original-modified: 20210411100148461
tags: [[Hidden Settings]]
title: Hidden Setting: HTML Parser Sandbox
ja-title: 隠し設定: HTMLパーサーのサンドボックス
type: text/vnd.tiddlywiki
<<.from-version "5.2.0">> デフォルトでは、`text/html`タイプのTiddlerは、[[サンドボックス属性|https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox]]が空の文字列に設定されたiframe内に表示されます。これにより、すべてのセキュリティ制限が適用され、JavaScript、ダウンロード、外部ファイル参照などの多くの機能が無効になります。これは最も安全な設定です。
サンドボックスをグローバルに無効にするには、$:/config/HtmlParser/DisableSandbox Tiddlerを`yes`に設定します。これにより、iframe内のコードがTiddlyWikiの内部に完全にアクセスできるようになり、悪意のあるHTMLページがプライベートwikiからデータを盗み出す可能性があります。
サンドボックスを維持しながら適用される制限を制御するには、$:/config/HtmlParser/DisableSandboxが`yes`に設定されていないことを確認してから、$:/config/HtmlParser/SandboxTokensに[[MDNドキュメント|https://developer.mozilla.org/en-US/docs/Web/HTML/Element/iframe#attr-sandbox]]
にあるトークンのリストを設定します。
これらはグローバル設定であることに注意してください。個々のTiddlerごとにサンドボックスを制御するには、カスタム`<iframe>`を使用する必要があります。

View File

@@ -1,11 +0,0 @@
created: 20211116222524148
modified: 20241124111223981
original-modified: 20211116222535549
tags: [[Hidden Settings]]
title: Hidden Setting: New-Image Type
ja-title: 隠し設定: 新しい画像タイプ
type: text/vnd.tiddlywiki
デフォルトでは、新しい画像は`jpeg`画像タイプで作成されます
$:/config/NewImageTypeの隠し設定は、新しい画像Tiddlerに使用される別の画像タイプ、例えば`png`を設定できます。

View File

@@ -1,13 +0,0 @@
created: 20181215154811835
modified: 20241117104725880
original-modified: 20190122000000000
tags: [[Hidden Settings]]
title: Hidden Setting: Filename for Save Wiki Button
ja-title: 隠し設定: Wiki保存ボタンのファイル名
type: text/vnd.tiddlywiki
<<.from-version "5.1.19">> <<.button save-wiki>>ボタンを使用して~TiddlyWikiを保存する場合、保存に使用されるデフォルトのファイル名は、[[コントロールパネル|$:/ControlPanel]]に入力された~TiddlyWikiのタイトルを使用して作成され、Tiddler [[$:/SiteTitle]]に記録されます。
使用される値は`{{$:/SiteTitle}}.html`の形式です。これにより、ファイル名は`.html`拡張子付きのサイトタイトルから作成されます。
[[$:/config/SaveWikiButton/Filename]]という名前のTiddlerが作成されると、そのTiddler内のテキストが~TiddlyWikiを保存するために使用されるデフォルトのファイル名として使用されます。

Some files were not shown because too many files have changed in this diff Show More