1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-01-23 11:24:40 +00:00

Compare commits

...

376 Commits

Author SHA1 Message Date
webplusai
c7dc21aa81 #8868 add login button in header for guest user (#8874) 2025-01-08 13:00:54 +00:00
Jeremy Ruston
19e341c760 Add support for Node.js integrated sqlite
Available in Node.js 22.50 - see https://nodejs.org/api/sqlite.html

Given the Node.js release timeline, I think it will be reasonable to switch to the integrated Node.js sqlite as the default, which will avoid all the npm install kerfuffle too.
2025-01-08 12:47:40 +00:00
Jeremy Ruston
739ba3288b Merge branch 'master' into multi-wiki-support 2025-01-08 12:26:37 +00:00
Mario Pietsch
4478f445a5 unusedtitle trim title if needed (#8882) 2025-01-07 16:26:02 +00:00
Jeremy Ruston
f8a8f00f52 Update for 2025 2025-01-05 14:35:27 +00:00
Jeremy Ruston
d65c3afdf0 Merge branch 'tiddlywiki-com' 2025-01-05 14:34:32 +00:00
J. Ryan Stinnett
743415922d Sign CLA (#8878) 2025-01-05 14:31:20 +00:00
David Bovill
394e960add Signing CLA (#8876) 2025-01-04 12:31:50 +00:00
Mario Pietsch
cc0c89836d [DOCS] Add class:multi-columns to References: Concepts and Definitions (#8877) 2025-01-04 12:24:02 +00:00
Mario Pietsch
3c7999c3bb [DOCS] fix 7264 - improve mouseevent eventcatcher documentation (#8875)
* [DOCS] fix 7264 - improve mouseevent eventcatcher documentation

* Update EventCatcherWidget.tid
2025-01-03 15:13:52 +00:00
webplusai
b4583ef9c5 #8867 add login as guest button (#8873) 2024-12-29 17:46:06 +00:00
IchijikuIchigo
54f0c4fa34 [ja_JP] Japanese translation update - 'About' section of tiddlywiki.com (#8870)
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\about\About.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\about\Acknowledgements.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\about\Contributors.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\about\History of TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\about\License.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\releasenotes\Releases.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\roadmap\RoadMap.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\about\Archive.tid'
2024-12-26 12:14:35 +00:00
webplusai
2a9f646ec4 #8858 fix issue with anonymous wiki access (#8869) 2024-12-25 09:29:19 +00:00
webplusai
6d448499c7 #8856 fix profile button rendering for guest users (#8865) 2024-12-24 12:02:10 +00:00
webplusai
b8f2800dab #8862 fix bug with ACL permissions (#8864) 2024-12-24 12:01:18 +00:00
IchijikuIchigo
0c21bca0ad [ja_JP] Uncomment out Japanese document link (#8866) 2024-12-24 12:00:33 +00:00
webplusai
d72a4c9826 #8854 fix acl error in anon mode (#8857)
* #8854 fix acl error in anon mode

* #8854 fix test failure
2024-12-23 14:07:43 +00:00
IchijikuIchigo
ee6cfc7785 [ja_JP] Japanese translation update (#8853)
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\editions\Editions.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\editions\Empty Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\editions\Blog Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\editions\Full Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\editions\Resume Builder Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\editions\Text Slicer Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\editions\XLSX Utilities Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Plugin Editions.tid'

* [ja-JP] Japanese translation of 'editions\ja-JP\tiddlers\languages\Languages.tid'

* [ja-JP] Japanese translation of 'editions\ja-JP\tiddlers\languages\Chinese (Simplified) Edition.tid'

* [ja-JP] Japanese translation of 'editions\ja-JP\tiddlers\languages\Chinese (Traditional) Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\languages\Castellano (Espana) Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\languages\German (Germany) Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\languages\German (Austria) Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\languages\French (France) Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\languages\Japanese (Japan) Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\languages\Korean (Korea Republic) Edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\languages\LanguageGallery.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Plugins.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Installing a plugin from the plugin library.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Uninstalling a plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Manually installing a plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\OfficialPlugins.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Amazon Web Services Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\BrowserStorage Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\CodeMirror Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\D3 Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\External Attachments Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Highlight Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\JSZip Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\KaTeX Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Markdown Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Railroad Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Share Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\TW2Parser Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Twitter Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\TiddlyWiki Docs PR Maker.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\D3 Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Dynaview Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Consent Banner Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Innerwiki Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Mobile Drag And Drop Shim Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\SaveTrail Plugin.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\TiddlyWiki Docs PR Maker.tid'
2024-12-23 12:03:52 +00:00
webplusai
ddfc8c469c #8850 relocate Manage ACL button (#8852) 2024-12-23 10:25:33 +00:00
webplusai
faf5d6982e #8849 fixed 403 error on ACL page (#8851) 2024-12-23 10:15:54 +00:00
webplusai
1f1b785524 #8828 update mws documentation (#8848) 2024-12-23 08:30:20 +00:00
webplusai
1d65f0070c #8832 fixed blocked access to view wiki anonymously without admin account setup (#8847) 2024-12-23 08:27:46 +00:00
webplusai
0198eb2a1a #8832 fix favicon and access control issue (#8846) 2024-12-22 20:59:55 +00:00
webplusai
1c5648826e #8833 fix issue with multiple user sessions (#8845) 2024-12-22 20:59:01 +00:00
Jeremy Ruston
664c6fd5d0 Initial commit (#8843)
Fixes #8842
2024-12-22 18:53:06 +00:00
Leilei332
1994574cfd Mark IE related things as deprecated (#8841) 2024-12-22 11:27:31 +00:00
Jeremy Ruston
e8d4ce2ad0 Update release note 2024-12-21 11:19:07 +00:00
Leilei332
ec0c91bca6 Further fix html lang attribute (#8835) 2024-12-21 11:13:00 +00:00
Jeremy Ruston
02a9fdcd06 Merge branch 'master' into multi-wiki-support 2024-12-21 09:47:47 +00:00
Jeremy Ruston
370ca4b4c4 Merge branch 'tiddlywiki-com' 2024-12-21 09:47:40 +00:00
Jeremy Ruston
d0a3c79383 Add MWS documentation wiki 2024-12-21 09:47:14 +00:00
Leilei332
49a33ae467 Fix switching language should not make the lang attribute empty (#8831)
* Fix switching language should not make the lang attribute empty

* Use name field
2024-12-20 14:25:16 +00:00
IchijikuIchigo
c13687b174 [ja_JP] Japanese translation update - 'Features' section of tiddlywiki.com (#8830)
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Features.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\mechanisms\AlertMechanism.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Core Icons.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\DateFormat.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\AutoSave.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Deserializers.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Drag and Drop.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\mechanisms\DragAndDropMechanism.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\concepts\ExternalImages.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Future Proof.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Importing Tiddlers.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\concepts\InfoPanel.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\JSON in TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\LazyLoading.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Modals.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\demonstrations\SampleWizard.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\demonstrations\SampleWizard2.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Notifications.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\demonstrations\SampleNotification.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Performance Instrumentation.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\concepts\PermaLinks.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\SafeMode.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\Scalability.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\features\StartupActions.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Using SVG.tid'
2024-12-19 11:29:21 +00:00
well-noted
4457ee86c3 Add signature to CLA (#8827) 2024-12-18 08:46:03 +00:00
webplusai
e48ea2dbe6 #8818 fix default checkbox checked value issue on anon config modal (#8825) 2024-12-17 14:01:35 +00:00
Théophile Desmedt
e8a23e9bcc Improve link-dropdown.tid - Replace vars and set with let widget, streamline function usage (#8821)
* cleanup: Apply substitution more systematically

* change vars and set to let widget

* use attribute substitution instead of a function
2024-12-15 22:11:36 +00:00
Xavier Cazin
baafe5ea23 Add missing <<tag>> macro parameter in the ViewTemplate for system tags (#8820)
* Add missing <<tag>> macro parameter in the ViewTemplate for system tags

* Use %if construct instead of $list widget in System Tag ViewTemplate
2024-12-15 14:31:07 +00:00
Leilei332
3ee1b0bd26 Tabindex support (#8819)
* Tabindex support

* Add docs

* Fix refresh
2024-12-15 07:54:55 +00:00
Leilei332
c886cfe6f5 Add disabled parameter to select widget and browse widget (#8816)
* Add disabled parameter to select widget and browse widget

* Add disabled attribute to edit-shortcut
2024-12-14 16:40:31 +00:00
Jeremy Ruston
060bea89ae Fix Jack's aspect ratio in the favicon 2024-12-14 12:40:07 +00:00
webplusai
67232aab15 Feature/#8812 anon access fix (#8815)
* #8812 resolve issue with anonymous access

* #8812 bug fix with anonymous access
2024-12-14 10:00:14 +00:00
webplusai
ae5bd9d4cd #8812 resolve issue with anonymous access (#8814) 2024-12-11 12:08:09 +00:00
webplusai
a00e3e79d6 #8774 fix add user form errors and error message clean up (#8813) 2024-12-10 20:24:02 +00:00
Jeremy Ruston
ab5a48747f Fix spelling of "anonymous" 2024-12-10 13:18:30 +00:00
Jeremy Ruston
239aacfa03 Fix streaming of attachment tiddlers from recipe URIs 2024-12-10 10:36:08 +00:00
Jeremy Ruston
e3ce053745 Fix attachment size check
I think this was introduced in #8455 sorry it took me so long to notice
2024-12-09 17:51:44 +00:00
Jeremy Ruston
2735ce23d8 Update dependencies 2024-12-09 17:24:30 +00:00
Jeremy Ruston
cb6c471967 Merge branch 'master' into multi-wiki-support 2024-12-09 17:19:31 +00:00
Jeremy Ruston
3fc9523f81 Merge branch 'tiddlywiki-com' 2024-12-09 16:26:53 +00:00
Jeremy Ruston
978685524b Replace Netlify build badge with a local image
To avoid CORS problems with https://github.com/TiddlyWiki/TiddlyWiki5/pull/8810
2024-12-09 16:26:43 +00:00
Théophile Desmedt
530b893710 Add another example to the wikify widget : use core svg to show an icon next to links (#8806)
* Add another example to the wikify widget : use core svg to show an icon next to links

* improve wikitext

* fix css

* limit example to svg core tiddlers

* fix typo + use <<.wid wikify>> when mentioning the wikify widget

* simplify a bit more the procedure that add  a namespace to the svg
2024-12-08 19:56:35 +00:00
Xavier Cazin
908be0e91c fr-FR translation improvements (#8808)
* fr-FR translation for new ViewTemplate cascades

* fr-FR tweaks in field description strings
2024-12-08 16:43:24 +00:00
Leilei332
1f34c62828 Flexoki palette update (#8807)
* Flexoki palette update

* Add TiddlyDesktop colors

* Add highlight colors
2024-12-08 09:11:29 +00:00
webplusai
8defedd611 #8771 fixed form reset issue on create user form (#8805) 2024-12-06 14:08:05 +00:00
Jeremy Ruston
42f9f3073e Merge branch 'tiddlywiki-com' 2024-12-05 20:53:30 +00:00
Leilei332
a9940506cf Extend rendered-plain-text template to support more languages. (#8780) 2024-12-05 12:41:24 +00:00
Leilei332
dd70e37132 Add DiffTextWidget colors to some palettes (#8661)
* Add difftextwidget colors to Solarized palettes

* Add diff colors from https://wikilabs.github.io/editions/palette-manager/

* Add diff colors to Solar Flare palette & use yellow color for diff-invisible.

* Update solarized and solar flare palette.
2024-12-05 12:40:48 +00:00
Leilei332
2801eee905 Migrate some old macros to new syntax (#8768)
* Migrate some old macros to new syntax

* Rewrite more macros.

* Update image-picker

* Rewrite tabs macro

* Use more new syntax

* Revert thumbnail macro

* Avoid duplicated whitespace pragma

* Revert tabs macro
2024-12-05 12:40:13 +00:00
lin onetwo
673a0f5605 Fix: allow overwrite plugin that don't have plugin-priority (#8800)
* fix: allow overwrite plugin that don't have plugin-priority

* Update boot.js

* Update boot.js
2024-12-05 12:37:37 +00:00
Mario Pietsch
42b2b9fd20 Add tc-test-case class to testcase-widget (#8744)
* add tc-tesc-case class to testcase-widget

* add default and custom class to testcase-widget

* Testcase widget update tests for default and custom class definitions
2024-12-05 12:33:27 +00:00
John Robinette
c7f741d4f8 fix: make HTTP Basic Auth aware of path-prefix (#8789) 2024-12-05 12:31:32 +00:00
webplusai
d7eb39c88e #8776 resolve server crash on delete role in use (#8796) 2024-12-05 12:29:58 +00:00
IchijikuIchigo
eae869fd6f [ja_JP] Japanese translation update (#8790)
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\A Gentle Guide to TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\Discover TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\Some of the things you can do with TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\Ten reasons to switch to TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\What happened to the original TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\about\Funding TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\about\Open Collective.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\about\Funding TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\examples\A Thesis Notebook.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\examples\_Lucky Sushi_ online shop by sini-Kit.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\resources\Gospel_Bubbles_by_Rev_David_Gifford.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\examples\PETTIL.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\examples\GitFixUm.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\examples\PESpot Lesson Planner by Patrick Detzner.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\examples\Simple Zork like Game.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\examples\TriTarget.org by Devin Weaver.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\thumbnails\HelloThumbnail - MultiWikiServer.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\thumbnails\HelloThumbnail - MultiWikiServer.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hellothere\thumbnails\HelloThumbnail - TiddlyWiki Privacy.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\community\resources\Gospel_Bubbles_by_Rev_David_Gifford.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting_ Tag Pill Drag Filter.tid'
2024-12-05 12:29:35 +00:00
Théophile Desmedt
4954a6ac50 Add example for the function operator (#8793)
* Add example for the function operator

* change the example to explicitly use the function operator

* Use the standard example format, add detailed explanations and add an introductory function to gradually increase complexity

* add missing "the"

* add the end of the explanation for the diff.fields function

* Update function Operator (Examples).tid

Show the name of the plugin for the subtiddler used in the demo

* fix example number

* Update function Operator (Examples).tid

fix typo
2024-12-05 12:27:18 +00:00
Théophile Desmedt
106fe2dfb9 Provide examples for the wikify widget (#8792)
* Provide examples for the wikify widget

* fix a typo in the wikify widget doc tiddler

* Update and rename TestCases_WikifyWidget_WidgetInput_Fail.tid to TestCases_WikifyWidget_WidgetValue_Fail.tid

* Update and rename TestCases_WikifyWidget_WidgetInput_Success.tid to TestCases_WikifyWidget_WidgetValue_Success.tid

* Update WikifyWidget.tid

* Update TestCases_WikifyWidget_WidgetValue_Fail.tid

* Update TestCases_WikifyWidget_WidgetValue_Success.tid

* Update WikifyWidget.tid

* Update TestCases_WikifyWidget_WidgetValue_Success.tid

fix small error causing validation to fail

* Update TestCases_WikifyWidget_WidgetValue_Success.tid

* remove trailing end line

* remove trailing new line

* add description, remove modified field
2024-12-05 12:25:22 +00:00
Théophile Desmedt
c7b45a3eb0 Signing CLA (#8791) 2024-12-05 12:19:22 +00:00
Mario Pietsch
86d3e9560b [DOCS] Improve "each operator" links (#8798) 2024-12-05 12:18:16 +00:00
Mario Pietsch
59548f066a [DOCS] Update dev edition to use shared utilities (#8803)
* prepare dev-edition to use _tw_shared doc utilities

* prepare for future dev-edition "private" styles

* move tw5.com documentation utility files to _tw_shared directory
2024-12-05 12:05:17 +00:00
Mario Pietsch
ceb78a0c8d Fix dev-edition fix github-ribbon (#8801) 2024-12-05 11:03:08 +00:00
IchijikuIchigo
8d71942faa [ja_JP] Japanese translation update (#8787)
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\customising\Customise TiddlyWiki.tid'

* [ja-JP] Japanese translation of editions\tw5.com\tiddlers\howtos\Adding_a_table_of_contents_to_the_sidebar.tid

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\customising\Configuring startup tiddlers.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Configuring the default TiddlerInfo tab.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\customising\Alternative page layouts.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Creating a custom export format.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Creating a splash screen.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\customising\Creating new toolbar buttons.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\customising\Customising search results.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\customising\Customising TiddlyWiki's user interface.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Settings.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting Content to be displayed for empty story.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting Default Tiddler Colour.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting Default Tiddler Icon.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting_ Disable Drag and Drop.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting_ Disable Lazy Loading.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting_ Enable File Import in Editor_1.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting SaveWikiButton Filename.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\How to apply custom styles by tag.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Making a custom journal button.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Setting a favicon.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Preserving open tiddlers at startup.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Setting a page background image.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Using Stylesheets.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Debugging Stylesheets.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Custom_styles_by_data-tags.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Custom_Attribute_Selectors.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Custom Styles by title.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Custom Styles by userClass.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Custom_Styles_FAQ.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\faq\csFAQ_dynamic_stylesheet.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\faq\csFAQ_how_can_i_use_custom_field.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\faq\csFAQ_what_if_tiddler_has_no_tags.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\faq\csFAQ_what_this_and_that_tag.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\faq\csFAQ_what_this_or_that_tag.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Custom tag pill styles.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\How to apply custom styles by tag.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\wikitext\Styles and Classes in WikiText.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting HtmlParserDisableSandbox.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting_ More Tabs Horizontal.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting Search-NavigateOnEnter.tid'

* [ja-JP] Japanese translation of '\editions\tw5.com\tiddlers\hiddensettings\Hidden Setting NewImageType.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting Default Story Ordering.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting_ Scroll Top Adjustment.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting_ Search AutoFocus.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting SearchMinLength.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting ShowEditPreviewPerTiddler.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting SyncLogging.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting SyncPollingInterval.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting Sync System Tiddlers From Server.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting EditTabIndex.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting TagsMinLength.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting SaveWikiButton Template.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting_ Typin Refresh Delay.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\hiddensettings\Hidden Setting ViewTemplate and EditTemplate.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\Hidden Setting_ Import Content Types for Editor.tid'
2024-11-28 11:52:42 +00:00
Jeremy Ruston
028c80782d Tweak wording for hidden setting introduced in #8783 2024-11-27 16:28:27 +00:00
Michael McDermott
81a972dc46 Create setting for default type of draft tiddlers (#8783)
* Proof of concept to change type of tiddlers created by editing missing.

* Adding a setting for default type so that it can be overridden for other wikis.

* Incorporating PR feedback.

* Adding documentation tiddler for new setting.

* Added documentation to the markdown plugin documentation.

* Added documentation to the markdown plugin documentation.

* Added notice to markdown edition.
2024-11-27 16:26:53 +00:00
Jeremy Ruston
ac59af19dd Add some information about SQLite 2024-11-27 15:43:44 +00:00
Mario Pietsch
f273825ec3 [DOCS] Update -- Tiddler Colour Cascade info - add icon (#8770) 2024-11-25 16:42:29 +00:00
John Robinette
d0285e001a Signing CLA (#8781) 2024-11-25 15:20:52 +00:00
webplusai
0cd2190ddf #8756 main page recipes (#8766) 2024-11-21 10:34:45 +00:00
webplusai
266b32bfee #8755 correct READ permission description (#8767) 2024-11-21 10:34:18 +00:00
Mario Pietsch
81862b5bc5 [DOCS] Slightly improve the documentation for tiddler color-field (#8765) 2024-11-21 09:11:12 +01:00
webplusai
a697a664fa #8754 fix user edit form success/error message cleanup issue (#8764)
* #8754 fix issue with default user role on create, profile navigation issue

* #8754 fix user edit form success/error message cleanup issue
2024-11-20 08:10:36 +00:00
webplusai
9f48e75945 #8757 add exception handling to creating new users & roles functions (#8763) 2024-11-20 08:10:16 +00:00
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
dabbc1bacc Merge branch 'tiddlywiki-com' 2024-11-18 10:58:07 +00:00
Jeremy Ruston
1a1f166ac8 More privacy and security tweaks 2024-11-18 10:57:44 +00:00
Jeremy Ruston
f2306a9a2f Fix multicolumn display 2024-11-18 10:57:10 +00:00
Jeremy Ruston
b198270cb5 Merge branch 'master' into multi-wiki-support 2024-11-18 09:53:48 +00:00
Jeremy Ruston
044ce8fbc2 Merge branch 'tiddlywiki-com' 2024-11-18 09:37:08 +00:00
Jeremy Ruston
36ae2e82be Improve multicolumn display to avoid super narrow columns 2024-11-18 09:32:38 +00:00
Jeremy Ruston
1e70e097e7 Privacy and security tweaks from @ericshulman 2024-11-18 09:32:21 +00:00
Jeremy Ruston
3836a5d08c Styles for the improvement banner 2024-11-17 18:06:54 +00:00
Jeremy Ruston
24ada16130 Merge branch 'tiddlywiki-com' 2024-11-17 17:57:06 +00:00
Jeremy Ruston
d919b825ed Split security and privacy info into two columns 2024-11-17 17:51:12 +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
8151942bd4 Privacy docs suggestions from @ericshulman 2024-11-17 17:31:38 +00:00
Mario Pietsch
a02c8e1cc4 German translation (#8749) 2024-11-17 13:50:59 +00:00
Jeremy Ruston
7f730b7cbf Typo 2024-11-17 12:56:21 +00:00
Jeremy Ruston
9362121e8d Typo 2024-11-17 12:55:04 +00:00
Jeremy Ruston
5ea4077385 Merge branch 'tiddlywiki-com' 2024-11-17 12:35:06 +00:00
Jeremy Ruston
287d4ff63d Tweak privacy and security docs 2024-11-17 11:29:13 +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
c0843420d5 Merge branch 'tiddlywiki-com' 2024-11-16 14:21:13 +00:00
Jeremy Ruston
e3052647ff Link to new mws.tiddlywiki.com site 2024-11-16 12:43:02 +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
Mario Pietsch
943030ccd2 [DOCS] Update TiddlyWiki Archive Overview (#8750) 2024-11-15 20:28:45 +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
Jeremy Ruston
de9a12b8f9 Preparing for v5.3.7 2024-11-15 17:21:22 +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
431 changed files with 16613 additions and 517 deletions

View File

@@ -4,8 +4,9 @@ on:
branches:
- master
- tiddlywiki-com
- multi-wiki-support
env:
NODE_VERSION: "22"
NODE_VERSION: "23"
jobs:
test:
runs-on: ubuntu-latest
@@ -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

@@ -5,7 +5,7 @@
# Default to the current version number for building the plugin library
if [ -z "$TW5_BUILD_VERSION" ]; then
TW5_BUILD_VERSION=v5.3.6
TW5_BUILD_VERSION=v5.3.7
fi
echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]"

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,17 +1470,15 @@ $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
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) {
// 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) {
return -1;
} 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) {
} else if (a.fields.title === b.fields.title) {
return 0;
} else {
return +1;

View File

@@ -4,7 +4,7 @@ type: text/plain
TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)
Copyright (c) 2004-2007, Jeremy Ruston
Copyright (c) 2007-2024, UnaMesa Association
Copyright (c) 2007-2025, UnaMesa Association
All rights reserved.
Redistribution and use in source and binary forms, with or without

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

@@ -31,7 +31,7 @@ exports.run = function(baseName,separator,template,startCount) {
}
// $tw.wiki.generateNewTitle = function(baseTitle,options)
// options.prefix must be a string!
return this.wiki.generateNewTitle(baseName, {"prefix": separator, "template": template, "startCount": startCount});
return this.wiki.generateNewTitle(baseName, {"prefix": separator, "template": template, "startCount": startCount}).trim();
};
})();

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: "/";
var location = ($tw.syncadaptor && $tw.syncadaptor.host)? $tw.syncadaptor.host: `${state.pathPrefix}/`;
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,8 +88,10 @@ 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.setAttribute("lang","en-GB");
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,6 +42,9 @@ 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);
@@ -56,6 +59,9 @@ 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) {
@@ -94,6 +100,8 @@ 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,6 +47,9 @@ 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);
}
@@ -305,6 +308,7 @@ 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();
};
@@ -314,7 +318,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) {
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) {
this.refreshSelf();
return true;
} else {

View File

@@ -48,6 +48,9 @@ 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
@@ -77,6 +80,7 @@ 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");
};
/*
@@ -138,7 +142,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) {
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes["default"] || changedAttributes["class"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes["aria-label"] || changedAttributes.focus || changedAttributes.disabled) {
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

@@ -277,6 +277,8 @@ 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({
@@ -288,7 +290,8 @@ NavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {
"draft.title": targetTitle,
"draft.of": targetTitle
},
this.wiki.getModificationFields()
this.wiki.getModificationFields(),
tiddler === null || tiddler === undefined ? defaultFields : {}
);
this.wiki.addTiddler(draftTiddler);
return draftTiddler;

View File

@@ -47,6 +47,9 @@ 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);
}
@@ -111,6 +114,7 @@ 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,6 +46,9 @@ 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);
}
@@ -164,6 +167,7 @@ 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,6 +53,9 @@ 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);
}
@@ -172,6 +175,7 @@ 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();
};
@@ -182,7 +186,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) {
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tooltip || changedAttributes.tabindex || changedAttributes.disabled) {
this.refreshSelf();
return true;
} else {

View File

@@ -33,6 +33,7 @@ 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
@@ -145,6 +146,7 @@ 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

@@ -101,6 +101,7 @@ TranscludeWidget.prototype.execute = function() {
}
this.sourceText = target.text;
this.parserType = target.type;
this._canonical_uri = target._canonical_uri;
// Set the legacy transclusion context variables only if we're not transcluding a variable
if(!this.transcludeVariable) {
var recursionMarker = this.makeRecursionMarker();
@@ -228,7 +229,8 @@ TranscludeWidget.prototype.getTransclusionTarget = function() {
});
return {
text: parserInfo.text,
type: parserInfo.type
type: parserInfo.type,
_canonical_uri: parserInfo._canonical_uri
};
}
};
@@ -455,8 +457,11 @@ TranscludeWidget.prototype.makeRecursionMarker = function() {
TranscludeWidget.prototype.parserNeedsRefresh = function() {
// Doesn't need to consider transcluded variables because a parent variable can't change once a widget has been created
var parserInfo = this.wiki.getTextReferenceParserInfo(this.transcludeTitle,this.transcludeField,this.transcludeIndex,{subTiddler:this.transcludeSubTiddler});
return (this.sourceText === undefined || parserInfo.sourceText !== this.sourceText || parserInfo.parserType !== this.parserType)
var parserInfo = this.wiki.getTextReferenceParserInfo(this.transcludeTitle,this.transcludeField,this.transcludeIndex,{
subTiddler: this.transcludeSubTiddler,
defaultType: this.transcludeType
});
return (this.sourceText === undefined || parserInfo.sourceText !== this.sourceText || parserInfo.parserType !== this.parserType || parserInfo._canonical_uri !== this._canonical_uri);
};
TranscludeWidget.prototype.functionNeedsRefresh = function() {

View File

@@ -1132,6 +1132,7 @@ exports.getTextReferenceParserInfo = function(title,field,index,options) {
if(tiddler.fields.type) {
parserInfo.parserType = tiddler.fields.type;
}
parserInfo._canonical_uri = tiddler.fields._canonical_uri;
}
} else if(field) {
if(field === "title") {

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-100>>
alert-border: <<colour flexoki-ye-2>>
alert-background: <<colour flexoki-yellow-900>>
alert-border: <<colour flexoki-ye>>
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: #ffff00
highlight-foreground: #000000
highlight-background: <<colour flexoki-cyan-950>>
highlight-foreground: <<colour flexoki-cyan-400>>
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-ui-3>>
notification-border: <<colour flexoki-ui>>
notification-background: <<colour flexoki-bg>>
notification-border: <<colour flexoki-paper>>
page-background: <<colour flexoki-bg-2>>
pre-background: <<colour flexoki-ui-3>>
pre-background: <<colour flexoki-bg-2>>
pre-border: <<colour flexoki-ui-2>>
primary: <<colour flexoki-cy>>
selection-background: #2b7b73
selection-foreground: <<colour flexoki-tx>>
selection-background: <<colour primary>>
selection-foreground: <<colour background>>
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: #e5e5e5
wikilist-item: #fff
wikilist-info: #000
wikilist-title: #666
wikilist-background: <<colour flexoki-ui>>
wikilist-item: <<colour flexoki-black>>
wikilist-info: <<colour flexoki-paper>>
wikilist-title: <<colour flexoki-tx-2>>
wikilist-title-svg: <<colour wikilist-title>>
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
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>>

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: #fff
dropdown-tab-background: #ececec
dropdown-tab-background-selected: <<colour background>>
dropdown-tab-background: <<colour flexoki-bg-2>>
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: #ffff00
highlight-foreground: #000000
highlight-background: <<colour flexoki-cyan-050>>
highlight-foreground: inherit
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>>
pre-background: <<colour flexoki-bg-2>>
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: #fff
wikilist-info: #000
wikilist-title: #666
wikilist-item: <<colour flexoki-paper>>
wikilist-info: <<colour flexoki-black>>
wikilist-title: <<colour flexoki-tx-2>>
wikilist-title-svg: <<colour wikilist-title>>
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
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>>

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 foreground>>
diff-invisible-background:
diff-invisible-foreground: <<colour muted-foreground>>
diff-insert-foreground: <<colour background>>
diff-invisible-background: #ffff97
diff-invisible-foreground: #444347
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 foreground>>
diff-invisible-background:
diff-insert-foreground: <<colour background>>
diff-invisible-background: #f9f3b5
diff-invisible-foreground: <<colour muted-foreground>>
dirty-indicator: #BF616A
download-background: #A3BE8C

View File

@@ -125,6 +125,14 @@ 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,6 +18,14 @@ 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,6 +18,14 @@ 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 foreground>>
diff-delete-foreground: <<colour background>>
diff-equal-background:
diff-equal-foreground: <<colour foreground>>
diff-insert-background: #aaefad
diff-insert-foreground: <<colour foreground>>
diff-invisible-background:
diff-invisible-foreground: <<colour muted-foreground>>
diff-insert-foreground: <<colour background>>
diff-invisible-background: #fdfcbd
diff-invisible-foreground: <<colour background>>
dirty-indicator: rgb(255, 94, 94)
download-background: #19a974
download-foreground: rgb(38, 38, 38)

View File

@@ -8,13 +8,8 @@ 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()
<$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>
<$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>
\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>
@@ -34,9 +29,9 @@ title: $:/core/ui/EditorToolbar/link-dropdown
\whitespace trim
''<<lingo Hint>>''
<$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 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 linkTiddler=<<searchTiddler>>>
<$let 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>>
@@ -51,28 +46,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>><$set name="cssEscapedTitle" value={{{ [<storyTiddler>escapecss[]] }}}><$action-sendmessage $message="tm-focus-selector" $param=<<tf.get-focus-selector>>/></$set>
<<cancel-search-actions>><$action-sendmessage $message="tm-focus-selector" $param=`[data-tiddler-title=${[<storyTiddler>escapecss[]]}$] .tc-create-wikitext-link input`/>
{{$:/core/images/close-button}}
</$button>
</$reveal>
</$vars>
</$let>
<$reveal tag="div" state=<<storeTitle>> type="nomatch" text="">
<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>
<$vars userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}}>
<$let userInput={{{ [<storeTitle>get[text]] }}} configTiddler={{{ [[$:/state/search/currentTab]!is[missing]get[text]] :else[{$:/config/SearchResults/Default}] }}}>
{{$:/core/ui/SearchResults}}
</$vars>
</$let>
</$linkcatcher>
</$reveal>
</$vars>
</$let>
\end
<$transclude $variable="body" config-title=<<qualify "$:/state/Link/">>/>
<$transclude $variable="body" config-title=<<qualify "$:/state/Link/">>/>

View File

@@ -2,6 +2,7 @@ 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="css"/>
<$codeblock code=<<text>> language=<<language>>/>
</$wikify>

View File

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

View File

@@ -1,6 +1,6 @@
title: $:/config/OfficialPluginLibrary
tags: $:/tags/PluginLibrary
url: https://tiddlywiki.com/library/v5.3.6/index.html
url: https://tiddlywiki.com/library/v5.3.7/index.html
caption: {{$:/language/OfficialPluginLibrary}}
{{$:/language/OfficialPluginLibrary/Hint}}

View File

@@ -3,6 +3,7 @@ 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,58 +1,55 @@
title: $:/core/macros/colour-picker
tags: $:/tags/Macro
\define colour-picker-update-recent()
\procedure 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
\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%;"/>
\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%"/>
</$button>
\end
\define colour-picker-recent-inner(actions)
\whitespace trim
<$set name="colour-picker-value" value="$(recentColour)$">
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
\procedure colour-picker-recent-inner(actions)
<$set name="colour-picker-value" value=<<recentColour>>>
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
</$set>
\end
\define colour-picker-recent(actions)
\whitespace trim
\procedure colour-picker-recent(actions)
{{$:/language/ColourPicker/Recent}}<$list filter="[list[$:/config/ColourPicker/Recent]]" variable="recentColour">
&#32;
<$macrocall $name="colour-picker-recent-inner" actions=<<__actions__>>/>
<$transclude $variable="colour-picker-recent-inner" actions=<<actions>>/>
</$list>
\end
\define colour-picker(actions)
\whitespace trim
\procedure colour-picker(actions)
<div class="tc-colour-chooser">
<$macrocall $name="colour-picker-recent" actions=<<__actions__>>/>
<$transclude $variable="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;
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
</$list>
---
<$edit-text tiddler="$:/config/ColourPicker/New" tag="input" default="" placeholder=""/>
&#32;
<$edit-text tiddler="$:/config/ColourPicker/New" tag="input" default="" placeholder="" class="tc-tiny-gap-right"/>
<$edit-text tiddler="$:/config/ColourPicker/New" type="color" tag="input"/>
<$set name="colour-picker-value" value={{$:/config/ColourPicker/New}}>
<$macrocall $name="colour-picker-inner" actions=<<__actions__>>/>
<%if [{$:/config/ColourPicker/New}!is[blank]] %>
<$transclude $variable="colour-picker-inner" actions=<<actions>>/>
<%endif%>
</$set>
</div>

View File

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

View File

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

View File

@@ -1,14 +1,18 @@
title: $:/core/macros/list
tags: $:/tags/Macro
\define list-links(filter,type:"ul",subtype:"li",class:"",emptyMessage,field:"caption")
\procedure list-links-draggable-drop-actions()
<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter="+[insertbefore<actionTiddler>,<currentTiddler>]"/>
\end
\whitespace trim
<$genesis $type=<<__type__>> class=<<__class__>>>
<$list filter=<<__filter__>> emptyMessage=<<__emptyMessage__>>>
<$genesis $type=<<__subtype__>>>
\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>>>
<$link to={{!!title}}>
<$let tv-wikilinks="no">
<$transclude field=<<__field__>>>
<$transclude field=<<field>>>
<$view field="title"/>
</$transclude>
</$let>
@@ -18,24 +22,19 @@ tags: $:/tags/Macro
</$genesis>
\end
\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
\procedure list-links-draggable(tiddler,field:"list",emptyMessage,type:"ul",subtype:"li",class:"",itemTemplate)
<span class="tc-links-draggable-list">
<$vars targetTiddler="""$tiddler$""" targetField="""$field$""">
<$genesis $type=<<__type__>> class="$class$">
<$list filter="[list[$tiddler$!!$field$]]" emptyMessage=<<__emptyMessage__>>>
<$let targetTiddler=<<tiddler>> targetField=<<field>>>
<$genesis $type=<<type>> class=<<class>>>
<$list filter="[<tiddler>get<field>enlist-input[]]" 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">
@@ -60,50 +59,48 @@ tags: $:/tags/Macro
</$droppable>
</$tiddler>
</$genesis>
</$vars>
</$let>
</span>
\end
\define list-tagged-draggable-drop-actions(tag)
\whitespace trim
\procedure list-tagged-draggable-drop-actions(tag)
<!-- 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
\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:"div",storyview:"")
\whitespace trim
\procedure list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:"div",storyview:"")
<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>
@@ -114,11 +111,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
\define translink(title,mode:"block")
\procedure translink(title,mode:"block")
\whitespace trim
<$list filter="[<__mode__>match[block]]">
<%if [<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>
</$list>
<$list filter="[<__mode__>match[inline]]">
<%endif%>
<%if [<mode>match[inline]] %>
<span class="tc-translink">
<$link to="""$title$""">
<$text text="""$title$"""/>
<$link to=<<title>> class="tc-tiny-gap-right">
<$text text=<<title>>/>
</$link>
&#32;(<$transclude tiddler="""$title$""" mode="inline">
<$set name="currentTiddler" value="""$title$"""><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
(<$transclude tiddler=<<title>> mode="inline">
<$set name="currentTiddler" value=<<title>>><$transclude tiddler="$:/language/MissingTiddler/Hint"/></$set>
</$transclude>)
</span>
</$list>
<%endif%>
\end

View File

@@ -1,62 +1,58 @@
title: $:/core/macros/tree
tags: $:/tags/Macro
\define leaf-link(full-title,chunk,separator: "/")
<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>
\procedure 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>{{$:/core/images/file}}</span>&#32;<$macrocall $name="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 class="tc-tiny-gap-right">{{$:/core/images/file}}</span><$transclude $variable="leaf-link" full-title=<<full-title>> chunk=<<chunk>>/>
</$list>
</$list>
</li>
\end
\define branch-node(prefix,chunk,separator: "/")
\whitespace trim
\procedure branch-node(prefix,chunk,separator: "/")
<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>
&#32;
<span>(<$count filter="[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]"/>)</span>
<span class="tc-tiny-gap-left">(<$count filter="[all[shadows+tiddlers]removeprefix<prefix>removeprefix<chunk>] -[<prefix>addsuffix<chunk>]"/>)</span>
<$reveal type="match" stateTitle=<<reveal-state>> text="show">
<$macrocall $name="tree-node" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>
<$transclude $variable="tree-node" prefix={{{ [<prefix>addsuffix<chunk>] }}} separator=<<separator>>/>
</$reveal>
</$set>
</li>
\end
\define tree-node(prefix,separator: "/")
\whitespace trim
\procedure tree-node(prefix,separator: "/")
<ol>
<$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 filter="[all[shadows+tiddlers]removeprefix<prefix>splitbefore<separator>sort[]!suffix<separator>]" variable="chunk">
<$transclude $variable="leaf-node" prefix=<<prefix>> chunk=<<chunk>> separator=<<separator>>/>
</$list>
<$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 filter="[all[shadows+tiddlers]removeprefix<prefix>splitbefore<separator>sort[]suffix<separator>]" variable="chunk">
<$transclude $variable="branch-node" prefix=<<prefix>> chunk=<<chunk>> separator=<<separator>>/>
</$list>
</ol>
\end
\define tree(prefix: "$:/",separator: "/")
\whitespace trim
\procedure tree(prefix: "$:/",separator: "/")
<div class="tc-tree">
<span><$text text=<<__prefix__>>/></span>
<span><$text text=<<prefix>>/></span>
<div>
<$macrocall $name="tree-node" prefix=<<__prefix__>> separator=<<__separator__>>/>
<$transclude $variable="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/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/html $:/config/ViewTemplateBodyFilters/system $:/config/ViewTemplateBodyFilters/default

View File

@@ -0,0 +1,9 @@
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

@@ -1,114 +0,0 @@
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

@@ -1,40 +0,0 @@
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,3 +1,5 @@
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

@@ -1,14 +0,0 @@
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

@@ -0,0 +1,13 @@
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

@@ -0,0 +1,14 @@
created: 20240313100515958
modified: 20241222104855231
original-modified: 20240313103959789
tags: Editions
title: TiddlyWiki Docs PR Maker
ja-title: TiddlyWikiドキュメントPRメーカー
[[@saqimtiaz|https://github.com/saqimtiaz/]]が作成した''~TiddlyWikiドキュメントPRメーカー''は、ドキュメントへの貢献と改善を支援するために設計された、tiddlywiki.comの特別エディションです。
https://saqimtiaz.github.io/tw5-docs-pr-maker/
ドキュメントに加えられたすべての変更は、GitHubに簡単に送信できます。 -- プルリクエストは自動的に作成されるため、エディションの名前は"PRメーカー"になります。
ドキュメントPRメーカーを使用する前に、無料の~GitHubアカウントを作成し、[[貢献者ライセンス契約|Contributor License Agreement]]に署名する必要があります。ドキュメントへの貢献の詳細については、[[ここ|Improving TiddlyWiki Documentation]]をご覧ください。

View File

@@ -0,0 +1,11 @@
created: 20140912145139340
modified: 20241225110311898
original-modified: 20140916132022553
tags: TableOfContents
title: About
ja-title: TiddlyWikiについて
type: text/vnd.tiddlywiki
TiddlyWikiの開発に関する情報:
<<list-links "[tag[About]]">>

View File

@@ -0,0 +1,11 @@
created: 20140129204112515
modified: 20241225111031964
original-modified: 20140912145138466
tags: About
title: Acknowledgements
ja-title: 謝辞
type: text/vnd.tiddlywiki
TiddlyWikiは、TiddlyWiki[[コミュニティ|Community]]の継続的なサポートなしでは成り立ちません。みなさんの注目とフィードバックにより、何が求められているかを理解することができ、その製品に対するみなさんの熱い思いから、投資する価値があることが分かります
{{$:/Acknowledgements}}

View File

@@ -0,0 +1,83 @@
created: 20231005205623086
modified: 20241226114558500
original-modified: 20241115193649399
tags: About
title: TiddlyWiki Archive
ja-title: TiddlyWikiアーカイブ
\procedure versions()
5.1.0 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.1.6 5.1.7 5.1.8 5.1.9
5.1.10 5.1.11 5.1.12 5.1.13 5.1.14 5.1.15 5.1.16 5.1.17 5.1.18 5.1.19
5.1.20 5.1.21 5.1.22 5.1.23
5.2.0 5.2.1 5.2.2 5.2.3 5.2.4 5.2.5 5.2.6 5.2.7
5.3.0 5.3.1 5.3.2 5.3.3 5.3.4 5.3.5 5.3.6
\end
TiddlyWikiの古いバージョンは[[アーカイブ|https://github.com/TiddlyWiki/tiddlywiki.com-gh-pages/tree/master/archive]]で入手できます:
<table>
<tbody>
<tr>
<th>
バージョン
</th>
<th>
リリース日
</th>
<th>
生存期間
</th>
<th>
概略
</th>
<th>
ダウンロード
</th>
</tr>
<$list filter="[enlist<versions>reverse[]]" variable="version">
<$let
filename=`TiddlyWiki-$(version)$`
emptyFilename=`Empty-$(filename)$`
releaseTiddler={{{ [<version>addprefix[Release ]] }}}
releaseDate={{{ [<releaseTiddler>get[released]format:date[TIMESTAMP]] }}}
nextVersion={{{ [enlist<versions>after<version>] }}}
nextReleaseTiddler={{{ [<nextVersion>addprefix[Release ]] }}}
nextReleaseDate={{{ [<nextReleaseTiddler>get[released]format:date[TIMESTAMP]] }}}
lifetime={{{ [<nextReleaseDate>subtract<releaseDate>divide[86400000]add[0.5]fixed[0]] }}}
>
<tr>
<td>
<$link to=<<releaseTiddler>>>
<$text text=`v$(version)$`/>
</$link>
</td>
<td>
<$view tiddler=<<releaseTiddler>> field="released" format="date" template="YYYY年mmmDD日"/>
</td>
<td>
<$list filter="[<lifetime>compare:number:lt[0]]" variable="ignore">
現在
</$list>
<$list filter="[<lifetime>compare:number:gteq[0]]" variable="ignore">
<$text text=<<lifetime>>/>日
</$list>
</td>
<td>
<$transclude $tiddler=<<releaseTiddler>> $field="description" $format="inline">
(none)
</$transclude>
</td>
<td>
<a href={{{ [<filename>addprefix[https://tiddlywiki.com/archive/full/]]}}} rel="noopener noreferrer" target="_blank">
Complete
</a>
|
<a href={{{ [<emptyFilename>addprefix[https://tiddlywiki.com/archive/empty/]]}}} rel="noopener noreferrer" target="_blank">
Empty
</a>
</td>
</tr>
</$let>
</$list>
</tbody>
</table>

View File

@@ -0,0 +1,45 @@
created: 20140916132828137
modified: 20241225111720612
original-modified: 20140916133148206
tags: About
title: Contributors
ja-title: 貢献者
type: text/vnd.tiddlywiki
以下は、[[TiddlyWikiの開発に貢献|https://github.com/TiddlyWiki/TiddlyWiki5/graphs/contributors]]するために時間を割いてくれている方々です:
* Jeremy Ruston ([[@Jermolene|https://github.com/Jermolene]])
* Dave Gifford ([[@giffmex|https://github.com/giffmex]])
* Bram Chen ([[@BramChen|https://github.com/BramChen]])
* Mario Pietsch ([[@pmario|https://github.com/pmario]])
* Xavier Cazin ([[@xcazin|https://github.com/xcazin]])
* Eric Shulman ([[@ericshulman|https://github.com/ericshulman]])
* Stephan Hradek ([[@Skeeve|https://github.com/Skeeve]])
* ~BuggyJef ([[@buggyj|https://github.com/buggyj]])
* Nathan Cain ([[@natecain|https://github.com/natecain]])
* Ton Gerner ([[@gernert|https://github.com/gernert]])
* Devin Weaver ([[@sukima|https://github.com/sukima]])
* João Bolila ([[@jbolila|https://github.com/jbolila]])
* David Johnston ([[@Brennall|https://github.com/Brennall]])
* David Jade ([[@davidjade|https://github.com/davidjade]])
* Bob Robison ([[@grayeul|https://github.com/grayeul]])
* [[@nameanyone|https://github.com/nameanyone]]
* Maurizio Pollio ([[@mpollio|https://github.com/mpollio]])
* Ogoshi Masayuki ([[@ogoshima|https://github.com/ogoshima]])
* Chris Sugden ([[@csugden|https://github.com/csugden]])
* [[@asampal|https://github.com/asampal]]
* Bow Yi Jang ([[@Eucaly|https://github.com/Eucaly]])
* Mal Gamble ([[@malgam|https://github.com/malgam]])
* Michael Fogleman ([[@mwfogleman|https://github.com/mwfogleman]])
* Daniel Barrett ([[@shendaras|https://github.com/shendaras]])
* Simon Baird ([[@simonbaird|https://github.com/simonbaird]])
* James Anderson ([[@welford|https://github.com/welford]])
* Jon Lister ([[@jayfresh|https://github.com/jayfresh]])
* [[@TheDiveO|https://github.com/TheDiveO]]
* Danielo Rodríguez ([[@danielo515|https://github.com/danielo515]])
* [[@willover|https://github.com/willover]]
* [[@slotik|https://github.com/slotik]]
* Irene Knapp ([[@IreneKnapp|https://github.com/IreneKnapp]])
* Brian Shaver ([[@shakerlxxv|https://github.com/shakerlxxv]])
* Tobi Beer ([[@tobibeer|https://github.com/tobibeer]])
* Craig Cook ([[@BoyCook|https://github.com/BoyCook]])

View File

@@ -0,0 +1,21 @@
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

@@ -0,0 +1,88 @@
created: 20140908114400000
modified: 20241225112134741
original-modified: 20241016125145988
tags: About
title: History of TiddlyWiki
ja-title: TiddlyWikiの歴史
type: text/vnd.tiddlywiki
! ~TiddlyWikiの20年
~TiddlyWikiの20周年を祝うために、いくつかのライブストリームを開催しました。録画はここで視聴できます:
* 2024年9月19日 - https://youtube.com/live/z9slx92TyrU
* 2024年9月20日 - https://youtube.com/live/puFdN-FgOjg
* 2024年9月21日 - https://youtube.com/live/0SjsHvwjHGE
* 2024年9月22日 - https://youtube.com/live/oD7Jtq2D4lg
GitHubでは、TiddlyWikiの貢献者に記念日の感想を[[聞いて|https://github.com/TiddlyWiki/TiddlyWiki5/discussions/7983]]お祝いしました。興味深く思慮深い回答がいくつか寄せられました。たとえば、[[@FND|https://github.com/FND]]からの回答は次の通りです:
> TiddlyWikiは、私のキャリアだけでなく、価値観にも計り知れないほどの永続的な影響を与えました。今日に至るまで、私はTiddlyWikiから学んだ[[基本的なコンセプト|https://prepitaph.org/articles/creative-privacy/]] - その多くは、他では忘れられたり無視されたりしています - を頻繁に参照しています。このバックグラウンドがあることで、技術的な複雑さを崇拝したり、テクノロジーの世界に人間が存在することを思い出したりする場合でも、この業界で仕事をする上で自分の方向性を保つことができます。
> TiddlyWikiとは、人々のことです。このコミュニティや、Jeremyがその周りに築いたグループと交流し、そこから学ぶことができたのは、私にとって計り知れない特権でした。また、この特権がまったくの偶然によって私に与えられたものだということを思い出すのにも役立ちます。この恩返しをしていきたいと思います。
~TiddlyWikiを特集した最近のポッドキャスト:
* 2016年のチェンジログ ポッドキャスト - https://changelog.com/podcast/196 ~TiddlyWikiの背景について議論しています
* 2021年のFloss Weeklyの録画 - https://twit.tv/shows/floss-weekly/episodes/620
! TiddlyWikiの起源
遡ること1997年に、同僚が私に[[Ward Cunningham のオリジナル wiki|http://c2.com/cgi/wiki]]を紹介してくれました。これほど強力なものがわずか700行のPerlに収まることに感銘を受け、セキュリティとパーミッションの根本的な再考に魅了されました。他の多くの開発者と同様に、私もあらゆる機会を利用してさまざまなWikiを試し、仕事での使用法を模索しました
私にとってWikiの魅力は、印刷物中心のドキュメントやEメールの一般的なパラダイムを最終的に破壊する可能性があるという感覚でした
人々がWikiを使用する様子を数年間観察した結果、パワーユーザーは複数のブラウザタブで複数のWikiページを同時に開く機能を多用しており、ページの比較やレビュー、ページ間でのテキストのコピー、未読ページの一種のキューとして用いることが容易になっていることに気づきました
一度に複数のページを操作するこの機能がWikiをリファクタリングする機能の中心であると感じました。また、愛情を込めてリファクタリングされたWikiはより便利になる傾向があると一般に認められています。それでも、標準のWikiユーザーインターフェイスは常に、単一ページを一度に表示し操作すること専用にデザインされてきました
2004年4月にGMailを見たとき、すべての考えがまとまりました。GMailは、Ajaxを巧みに使用して個々のメールをスレッド化された会話に融合させました。
このアイデアをさらに探求するために、HTMLとJavaScriptを試し始めました。私にはどちらの経験もなく、以前の活動で、いくつかの静的ページと単純なASPサイトをまとめただけでした。これらのクライアント側テクロジーについて理解するのは大変でした。他の皆さんと同じように、私もWebプログラミングの非互換性と矛盾がどれほど恐ろしいものであるかを知り、愕然としました
! TiddlyWikiのラウンチ
そうして、2004年9月に、私は原始的な[[TiddlyWikiの最初のバージョン|https://classic.tiddlywiki.com/firstversion.html]]をリリースしました。これは、アイデアを実証するための最小のもので、シンプルで自己完結型の静的な48KB HTMLファイルでした
TiddlyWikiの最初のバージョンをこの方法で作成することの欠点は、編集に使用するのが完全に非現実的になることでした。'変更を保存'をクリックすると、ファイルシステムにHTMLページを書き込むために、保存されるデータを示すウィンドウがポップアップ表示されるだけでした
初期のフィードバックの多くは、TiddlyWikiは優れているが、変更を適切に保存できればさらに便利になるというものでした。ブラウザで実行されているHTMLファイルがローカルファイルシステムに変更を保存することは不可能であることはわかっていると思っていたので、少しイライラしました
数か月以内に、TiddlyWikiがブラウザに変更を保存できるようにする実験的なFirefox拡張機能を目にしました。コードを調べてみると、ファイルシステムへの書き込みに使用されていたAPIは、`file://` URI経由でロードされている場合に限り、実際には通常のHTMLファイルで利用できることがわかりました
私はFirefoxコードをTiddlyWikiのコアに適合させ、すぐにInternet Explorerにも同様の機能を追加しました(MicrosoftがInternet Explorerとともに配布した古い[[ActiveX|https://en.wikipedia.org/wiki/ActiveX]]コントロールを利用しています)
! TiddlyWikiの成長
TiddlyWikiの成長における大きなマイルストーンは、Nathan Bowersによる"GTDTiddlyWiki"の作成でした。彼はバニラのTiddlyWiki製品を採用し、一般的なGetting Things Done方法論を使用してタスクをトラックするという特定のアプリケーションに適応させました。GTDTiddlyWikiはすぐに人気を博し、[[LifeHacker|https://lifehacker.com/]]などのWebサイトで熱狂的に歓迎されました
その後数年間にわたって、TiddlyWikiの人気は高まり続け、新しい機能や能力も獲得しました。1年以内に、私はTiddlyWikiでオーダーメイドの開発作業を行うことで自活できるようになり、特にWikiパイオニアである[[SocialText|https://en.wikipedia.org/wiki/Socialtext]]と協力して変更をオンラインサーバと同期する機能に取り組みました
! BTの獲得
2007年5月に、[[BT]]は私のコンサルティング会社である[[Osmosoft]]を買収しました。従業員が1人で、収益がほんの少ししかない会社を買収するというのは、異例の決断でした。[[Osmosoft]]は、コミュニティの将来を保証するために私がTiddlyWikiの知的財産をUnaMesaに譲渡したため、TiddlyWikiの知的財産さえ所有していませんでした
[[BT]]の動機は、コミュニティベースのエコシステムを理解することでした。私は"オープンソースイノベーション責任者"として組織に加わり、オープンソースガバナンスの責任を負い、オープンソースコミュニティへの参加方法に関するアドバイスと専門知識を提供しました
! [[Osmosoft]]とTiddlySpace
私はBTに[[Osmosoft]]という名前でチームを作りました。私たちの目的は、オープンソースのメリットを広め、他のチームが実際にそのメリットを実感できるよう支援することでした。また、Webの使用全般、特にWeb標準の使用を普及する必要があることもわかりました
私たちのアプローチは、話すことよりも見せることに重点を置くことでした。私たちはTiddlyWikiコミュニティと協力してエコシステムを拡張し、BT用の多数の内部システムを構築しました(TiddlyWikiに基づくものもあれば、そうでないものもあります)
TiddlyWikiコミュニティへの[[Osmosoft]]の主な貢献は、TiddlyWebとTiddlySpaceの作成でした。TiddlyWebは、Tiddlerのための堅牢なインターネット規模のサーバであり、TiddlerのTiddlyWikiビューを構成することもできました。TiddlySpaceは、TiddlyWebをより直接的に使用可能な形式にパッケージ化する試みでした
! BTを離れる
2011年の終わりまでに、私はBTという企業の枠外でTiddlyWikiの可能性を実現するのがより適切な立場にあると感じるようになりました。そうして、私は退職して独立した開発者として働き始め、主にTiddlyWiki5という形でTiddlyWikiを新しくリブートすることに取り組みました
! TiddlyWiki5の開発
私は2011年11月からTiddlyWikiの新しいリリースに取り組みました。プログラマーとして、すでに書いたものの"バージョン 2.0"に取り組むことは非常に魅力的な提案です。これは、要件が完全に理解され、目的の機能をサポートするために必要なアーキテクチャの進化に集中できることを意味します
! 将来
TiddlyWiki5がついに"ベータ"ステータスを脱した今、私の希望は、それが長く存続することです。HTML5とNode.jsの標準機能のみを使用しているため、今後何年にもわたって完全に動作しない理由はありません。私の目標は、少なくとも25年は続けることです
//Jeremy Ruston, 2014年9月20日//

View File

@@ -0,0 +1,21 @@
created: 20170127221457627
modified: 20241226112706885
original-modified: 20170127222646488
title: License
ja-title: ライセンス
type: text/vnd.tiddlywiki
tags: About
TiddlyWikiは、[[隠しTiddler|ShadowTiddlers]] [[$:/core/copyright.txt]]に保存されている[[寛容な3条項BSDライセンス|https://opensource.org/licenses/BSD-3-Clause]]に基づいて公開されています:
<div style="font-size: 0.7em;line-height:1.4;">
{{$:/core/copyright.txt}}
</div>
平たく言うと、このライセンスには、~TiddlyWikiの作成者やその他の者へのライセンス料の支払いやその他の法的義務を課すことなく、TiddlyWikiを利用して、やりたいことを何でもできる、と書かれています。代償として、~TiddlyWikiのようなオープンソースプロジェクトには何の保証もありません。~TiddlyWikiに関わる悲劇的な状況の連鎖によってデータが失われたとしても、~TiddlyWikiの使用による損失や損害についてTiddlyWikiの貢献者を訴えることはできません
プロジェクトへの関わりを明示することが求められていますが、そうする義務はありません
誤解を避けるために付け加えておきますが、あなたが~TiddlyWikiの自分のコピー内に保存する情報はすべて、あなたのもののままです。~TiddlyWikiを使用してコンテンツを公開しても、そのコンテンツに対してあなたが持つ権利は変更されません

View File

@@ -0,0 +1,16 @@
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

@@ -0,0 +1,19 @@
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

@@ -0,0 +1,16 @@
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

@@ -0,0 +1,16 @@
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

@@ -0,0 +1,21 @@
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

@@ -0,0 +1,17 @@
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

@@ -0,0 +1,16 @@
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

@@ -0,0 +1,13 @@
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

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,72 @@
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

@@ -0,0 +1,18 @@
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

@@ -0,0 +1,64 @@
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

@@ -0,0 +1,48 @@
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

@@ -0,0 +1,29 @@
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

@@ -0,0 +1,37 @@
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

@@ -0,0 +1,12 @@
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

@@ -0,0 +1,77 @@
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

@@ -0,0 +1,51 @@
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

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

View File

@@ -0,0 +1,15 @@
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

@@ -0,0 +1,13 @@
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

@@ -0,0 +1,11 @@
created: 20150902123139133
modified: 20241221102414663
original-modified: 20150902123255662
tags: Editions
title: Blog Edition
ja-title: ブログエディション
type: text/vnd.tiddlywiki
TiddlyWikiの''ブログ''エディションには、TiddlyWikiで書かれた静的HTMLブログの公開を支援するツールが含まれています。現在、Node.jsで使用するように設計されています。
ドキュメントは準備中ですが、使用例については https://github.com/Jermolene-blog/blog を参照してください。

View File

@@ -0,0 +1,18 @@
created: 20140908125500000
list: [[Empty Edition]]
modified: 20241220114652589
original-modified: 20160107222125923
tags: TableOfContents
title: Editions
ja-title: エディション
type: text/vnd.tiddlywiki
TiddlyWikiは、特定の目的に合わせて調整されたいくつかの異なるエディションで配布されています
エディションは、できるだけ早く立ち上げて実行できるように、TiddlyWikiのコアコンポーネントとプラグイン、ドキュメント、およびサンプルコンテンツで構成されています
これらのエディションのコンポーネントを組み合わせて、特定のアプリケーションに固有のソリューションを作成できます
<<list-links "[tag[Editions]]">>
<$macrocall $name=".tip" _="""エディションと、TiddlyWikiが実行される[[プラットフォーム|Platforms]]と混同しないように注意してください(例:[[単一HTMLファイル|Saving]] vs. [[Node.js|TiddlyWiki on Node.js]])"""/>

View File

@@ -0,0 +1,16 @@
created: 20140916213421041
modified: 20241220115009879
original-modified: 20160702084215576
tags: Editions
title: Empty Edition
ja-title: 空エディション
type: text/vnd.tiddlywiki
TiddlyWikiの"空"エディションはバニラディストリビューションであり、コアコード以外に追加されているプラグインや構成はありません
空のエディションは次からダウンロードできます:
* リンク: [ext[empty.html]]
* ビルトイン: {{$:/editions/tw5.com/snippets/download-empty-button}}
ブラウザによっては、ダウンロード開始前にダウンロードを受け入れるかどうかを尋ねられる場合があります

View File

@@ -0,0 +1,13 @@
created: 20150310103210459
modified: 20241221102710941
original-modified: 20160602051530592
tags: Editions
title: Full Edition
ja-title: フルエディション
type: text/vnd.tiddlywiki
TiddlyWikiの"フル"エディションは、TiddlyWikiで使用可能なすべての言語、テーマ、プラグインで構成されています。これはTiddlyWikiのテスト、特に利用可能なすべての言語プラグイン間の切り替えに使用することを目的としています。
フルエディションは以下からダウンロードできます:
https://tiddlywiki.com/editions/full/

View File

@@ -0,0 +1,11 @@
created: 20150718123139133
modified: 20241221103022837
original-modified: 20160602051544252
tags: Editions
title: Résumé Builder Edition
ja-title: 履歴書ビルダーエディション
type: text/vnd.tiddlywiki
TiddlyWikiの''履歴書ビルダー''エディションを使用すると、Webに保存したり印刷したりできる職業上の履歴書を簡単な方法で作成し始めることができます
https://tiddlywiki.com/editions/resumebuilder/

View File

@@ -0,0 +1,11 @@
created: 20150718123139133
modified: 20241221103255652
original-modified: 20160602051553479
tags: Editions
title: Text-Slicer Edition
ja-title: テキストスライサーエディション
type: text/vnd.tiddlywiki
TiddlyWikiの''テキストスライサー''エディションには、上級ユーザーが長いテキストを個々のTiddlerにスライスするのに役立つツールが含まれています
https://tiddlywiki.com/editions/text-slicer/

View File

@@ -0,0 +1,11 @@
created: 20161023202301847
modified: 20241221103512732
original-modified: 20161023202301847
tags: Editions
title: XLSX Utilities Edition
ja-title: XLSXユーティリティエディション
type: text/vnd.tiddlywiki
TiddlyWikiの''XLSXユーティリティ''エディションには、Microsoft ExcelやGoogle Sheetsなどのアプリケーションによって生成された`.XLSX`スプレッドシートを操作するためのツールが含まれています。ブラウザーやNode.jsで使用できます
https://tiddlywiki.com/editions/xlsx-utils/

View File

@@ -0,0 +1,13 @@
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

@@ -0,0 +1,42 @@
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

@@ -0,0 +1,89 @@
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

@@ -0,0 +1,22 @@
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

@@ -0,0 +1,33 @@
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

@@ -0,0 +1,13 @@
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

@@ -0,0 +1,18 @@
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

@@ -0,0 +1,28 @@
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

@@ -0,0 +1,73 @@
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

@@ -0,0 +1,32 @@
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
```

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