1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2026-01-22 10:54:46 +00:00

Compare commits

...

127 Commits

Author SHA1 Message Date
lin onetwo
53edb20da5 AI tools: add more servers (#8966)
* feat: add tree

* refactor: make tools and settings extensible

* fix: shining color on dark mode

* feat: allow choose model, and use authTokenStoreKey for different server

* feat: allow extends openai api

* fix: Input tag 'error' found using 'role' does not match any of the expected tags: 'system', 'user', 'assistant', 'tool'"

* fix: shining result color on dark mode

* Delete import-chatgpt.tid

* feat: add deepseek

* feat: Assign a server and model on tiddler if user lazy or forget to pick one.

* feat: allow config default server and model
2025-06-09 09:43:36 +01:00
Jeremy Ruston
ce9209f00e Merge branch 'master' into feat-ai-tools 2025-03-06 17:42:02 +00:00
Mario Pietsch
4822919aa4 fix .median sort function (#8971) 2025-03-03 17:11:16 +00:00
Jeremy Ruston
a6f7c05203 Merge branch 'master' into feat-ai-tools 2025-03-02 17:16:59 +00:00
Cameron Fischer
0dda07e3f1 Fix for #5930: missing tiddlers with checkbox indexes (#8964) 2025-02-27 18:02:43 +00:00
Jeremy Ruston
2ae1e5aa09 Merge branch 'tiddlywiki-com' 2025-02-27 11:01:28 +00:00
Leilei332
378b9b3627 Allow building external core version of main site (#8953) 2025-02-27 11:00:58 +00:00
Mario Pietsch
0f79f88f58 Fix problem toc-selective-expandable (#8959)
fix problem toc-selective-expandable
2025-02-24 20:49:48 +00:00
Leilei332
2cb5f57c69 Remove flags in language plugins (#8837)
* Remove flags in language plugins

* Remove references to language icons

* Remove obsolete example

There are no incoming links to this tiddler

* Remove icon from en-GB language

* Temporarily add all the languages for testing

To be removed before merging

* Add new "language" icon

* Languageswitcher update

* Translator editon docs update

* Fixes for introduction edition

* Remove LanguageGallery in ja-JP edition

* Remove temporary setting

---------

Co-authored-by: Jeremy Ruston <jeremy@jermolene.com>
2025-02-21 12:17:53 +00:00
Jeremy Ruston
d3f441cbb5 Unpack plugins for wiki based tests 2025-02-18 21:15:01 +00:00
Jeremy Ruston
361a9668a2 Merge branch 'tiddlywiki-com' 2025-02-18 11:53:00 +00:00
Jeremy Ruston
b0d950faec Delete references to TiddlyWiki's Twitter account 2025-02-18 11:52:47 +00:00
Mario Pietsch
8a92c4632d [DOCS] Make it more obvious that $:/DefaultTiddlers setting can handle filter-expressions (#8729)
* [DOCS] Make it more obvious that $:/DefaultTiddlers setting can handle filter-expressions

* update with requested changes.

* [DOCS] Make it more obvious that $:/DefaultTiddlers setting can handle filter-expressions

* Refactor text according to feedback

* Create link to DefaultTiddlers system tiddler
2025-02-18 10:43:21 +00:00
Mario Pietsch
a1053ddc3d list-tagged-draggable shows caption field if it is available (#8721) 2025-02-18 10:31:08 +00:00
Mario Pietsch
7ea788ca83 fix page save button wikify update problem (#8956) 2025-02-18 09:06:14 +00:00
Mario Pietsch
614ba8432f [DOCS] Improve External Images Docs (#8954) 2025-02-17 16:13:38 +00:00
Leilei332
c84de85ed2 Add system-ui to default font family (#8951)
* Add system-ui to default font family

* Make system-ui's priority lower
2025-02-15 11:11:49 +00:00
Mario Pietsch
cd89415461 [DOCS] Fix duplicate link in: HTML in Wikitext (#8944)
* [DOCS] Fix duplicate link in: HTML in Wikitext

* Update HTML in WikiText.tid
2025-02-14 19:37:54 +00:00
Leilei332
fbe5a2f908 Fix incorrect downloaded file extension (#8928)
* Fix incorrect downloaded file extension

* Update docs
2025-02-14 18:17:00 +00:00
j. redhead
ae9623ab2d Correct noscript fallback for Empty Edition (#8924)
* Correct noscript fallback for Empty Edition

Also slightly improve the Mastodon link text (since it'll be read by people without JS)

Before this patch, if the "built-in" Empty Edition was downloaded then the Mastodon verification link was included, which is wrong.
Not a super big deal since it'll get "flushed out" the first time the user saves, but still confusing.

The mastodon link could've just been moved inside the <$reveal>
but I think it's better to try to achieve parity with tiddlywiki.com/empty.html; 
This commit does not achieve parity but it gets us closer.

* Remove whitespace from conditional shortcut syntax

Conform to style used in #8583 as suggested by https://github.com/TiddlyWiki/TiddlyWiki5/pull/8924/files#r1938181043
2025-02-14 18:02:38 +00:00
Mario Pietsch
2a2d998bef fix contains operator RSOD if created field is accessed (#8931) 2025-02-14 17:58:33 +00:00
Mario Pietsch
867fad030e fix page toolbar more dropdown inconsistent whitespace (#8932) 2025-02-14 17:57:42 +00:00
Cameron Fischer
4425a891bc Addresses #7836: Noisy $fill widgets (#8930)
$fill widgets will get ignored when encountered by ts-raw slots
2025-02-14 17:57:06 +00:00
Mario Pietsch
0ac2b6ce31 [DOCS] Fix link to external blog post about TW (#8934)
* [DOCS] Fix link to external blog post about TW

* Update Future Proof.tid
2025-02-14 17:54:54 +00:00
Mario Pietsch
697171a30d [DOCS] HelloThere. Add info about the core nature of TW as a web-app (#8935)
* [DOCS] HelloThere. Add info about the core nature of TW as a web-app

* Update HelloThere.tid
2025-02-14 17:53:12 +00:00
IchijikuIchigo
0b758190d1 [ja_JP] Japanese translation update - 'Platforms' section of tiddlywiki.com (#8940)
* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\definitions\TiddlyDesktop.tid'

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

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\TiddlyWiki on Node.js.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Building TiddlyWikiClassic.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Installing TiddlyWiki Prerelease on Node.js.tid'

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

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Upgrading TiddlyWiki on Node.js.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Using a custom path prefix with the client-server edition.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Customising Tiddler File Naming.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Environment Variables on Node.js.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Generating Static Sites with TiddlyWiki.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\How to build a TiddlyWiki5 from individual tiddlers.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Installing custom plugins on Node.js.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Installing official plugins on Node.js.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\saving\Example config-tiddlyweb-host for IIS.txt'

* [ja-JP] Japanese translation of 'editions\ja-JP\tiddlers\saving\Example package.json for IIS.txt'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\saving\Example tiddlywiki.info for IIS.txt'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\saving\Example web.config for IIS.txt'

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

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

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Scripts for TiddlyWiki on Node.js.tid'

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

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\tiddlywiki.files_Files.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\tiddlywiki.info_Files.tid'

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

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

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\howtos\Using TiddlyWiki for GitHub project documentation.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Using TiddlyWiki on Node.js.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\nodejs\Working with the TiddlyWiki5 repository.tid'

* [ja-JP] Japanese translation of 'editions\tw5.com\tiddlers\plugins\Plugin Ordering.tid'
2025-02-14 17:39:49 +00:00
Mario Pietsch
4f0bdac77b [DOCS] Improve documentation about TW Concepts (#8942) 2025-02-14 17:27:24 +00:00
Jeremy Ruston
3051e8dddc Don't show draft palettes in the switcher 2025-02-14 16:44:51 +00:00
Mario Pietsch
f5a6ac9446 [DOCS] Crosslink, then / else Operators, :then / :else Fiter Run Prefixes (#8949)
* [DOCS] Crosslink, then / else Operators, :then / :else Fiter Run Prefixes

* Update else Operator.tid

* Update Else Filter Run Prefix.tid

* Update then Filter Run Prefix.tid

* Update then Operator.tid
2025-02-14 14:46:39 +00:00
Jeremy Ruston
2ebf452abb Consent banner should not display in static renderings 2025-02-09 14:29:43 +00:00
Jeremy Ruston
d4bc3fcd99 Fix: HTTP progress handler not passed optional variables
Thanks @ericshulman
2025-02-06 17:04:10 +00:00
Jeremy Ruston
d770d98aff Refactor user defined function operator to make debugging easier 2025-02-03 13:27:02 +00:00
Leilei332
f7043f6d43 Fix 8915 (#8916) 2025-01-28 12:48:24 +00:00
Leilei332
76f40208af Flexoki palette update (#8909)
* Flexoki palette update

* Improve highlight contrast
2025-01-27 18:10:04 +00:00
Leilei332
67e8670c73 Extend copy to clipborad function to support customized mime types (#8912)
* Extend copy to clipborad function to support customized mime types

* Remove function default parameter syntax

* Add plainText option

* Use plainText name

* Set "text/plain" data only when it exists

* Docs update

* Docs update
2025-01-27 16:45:26 +00:00
Saq Imtiaz
b1843837ea Fixes unnecessary refresh in Genesis widget (#8895)
* fix: handle attributes correctly in genesis widget

* fix: handle attributes correctly in genesis widget
2025-01-27 11:00:26 +00:00
Saq Imtiaz
42c22acba6 Cleans up cruft from edit widget (#8897)
* chore: cleanup cruft from edit widget

* chore: cleanup cruft from edit widget

* chore: cleanup cruft from edit widget
2025-01-27 11:00:07 +00:00
Saq Imtiaz
f02c9ebba3 feat: support for avif images (#8911) 2025-01-26 12:25:01 +00:00
Rhys-T
94b325f41f Fix: Don't set dirty flag when shadow tiddler changes (#8903)
Adds `shadow` and `normal` flags to each entry in `changedTiddlers`,
indicating whether the corresponding version of the tiddler has changed.
Makes the saver handler ignore any changes that aren't flagged `normal`.

Fixes #8902.
2025-01-25 10:59:51 +00:00
Rhys-T
0219af604b Sign the CLA (#8904) 2025-01-23 21:48:45 +00:00
Jeremy Ruston
843f133f5e Merge branch 'tiddlywiki-com' 2025-01-23 21:48:03 +00:00
Jeremy Ruston
903d0fb8e1 Update CI due to deprecation of actions/upload-artifact@v3
See https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/
2025-01-23 21:47:22 +00:00
Jeremy Ruston
53edea9256 Merge branch 'tiddlywiki-com' 2025-01-23 18:48:50 +00:00
Galen Huntington
b04af8bf7a Bug fix: TTF extension was wrong. update font types, add OTF type. (#8898)
* Bug fix: TTF extension was wrong.

* Update font MIME types throughout; add font/otf.
2025-01-23 18:18:02 +00:00
Jeremy Ruston
9aed6a5248 Update CI due to deprecation of actions/upload-artifact@v3
See https://github.blog/changelog/2024-04-16-deprecation-notice-v3-of-the-artifact-actions/
2025-01-23 18:05:56 +00:00
Galen Huntington
e9fb63affc Sign CLA. (#8899) 2025-01-21 14:43:36 +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
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
IchijikuIchigo
0c21bca0ad [ja_JP] Uncomment out Japanese document link (#8866) 2024-12-24 12:00:33 +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
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
370ca4b4c4 Merge branch 'tiddlywiki-com' 2024-12-21 09:47:40 +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
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
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
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
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
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
Mario Pietsch
81862b5bc5 [DOCS] Slightly improve the documentation for tiddler color-field (#8765) 2024-11-21 09:11:12 +01:00
Jeremy Ruston
ceddef7b51 Merge branch 'master' into feat-ai-tools 2024-10-10 15:11:20 +01:00
Jeremy Ruston
db692738fe Allow content type of user input to be specified
Useful to use text/plain for code
2024-10-10 14:54:12 +01:00
Jeremy Ruston
8efec8920d User messages should be wikified
Makes it possible to include other tiddlers in a prompt
2024-10-10 13:22:59 +01:00
Jeremy Ruston
904155043a Merge branch 'master' into feat-ai-tools 2024-10-09 21:51:36 +01:00
Jeremy Ruston
97c9456f21 Merge branch 'master' into feat-ai-tools 2024-09-30 16:43:36 +01:00
Jeremy Ruston
a1a6b6fa25 Merge branch 'master' into feat-ai-tools 2024-08-30 14:13:58 +01:00
Jeremy Ruston
422df10841 Fix ChatGPT import 2024-08-05 16:33:07 +01:00
Jeremy Ruston
ea595dfe2f Refactor procedures and functions to be global for reuse 2024-07-28 13:07:24 +01:00
Jeremy Ruston
58f96e779a Add documentation for the conversation format 2024-07-28 12:52:43 +01:00
Jeremy Ruston
a32a1a3802 Merge branch 'master' into feat-ai-tools 2024-07-28 12:39:43 +01:00
Jeremy Ruston
28d262e371 Merge branch 'master' into feat-ai-tools 2024-07-27 17:16:43 +01:00
Jeremy Ruston
cd58622c06 Clarify that the Llamafile prompt is for Llava models 2024-07-24 22:28:30 +01:00
Jeremy Ruston
d39a3d61e3 Merge branch 'master' into feat-ai-tools 2024-07-24 22:05:24 +01:00
Jeremy Ruston
80fdaae6de Llamafile use native /completion API endpoint
So that we can do image analysis
2024-07-21 21:08:42 +01:00
Jeremy Ruston
4a79af9eea Revise default system prompt 2024-07-21 19:34:25 +01:00
Jeremy Ruston
370ff3057e Refactor completion servers so that they handle their own response 2024-07-21 16:51:19 +01:00
Jeremy Ruston
fb641d340c Fix an annoying little bug that prevents importvariables being used inside action-createtiddler in action strings
The root cause was that action-createtiddler widget was calling refreshChildren() with no argument.

A secondary factor was that importvariables widget was not defensive in handling a missing changedTiddlers parameter
2024-07-21 16:50:55 +01:00
Jeremy Ruston
3bdd449b3e Don't hardcode the API route 2024-07-21 16:11:46 +01:00
Jeremy Ruston
0037935af5 Revert "Give conversation tiddlers a dummy text field"
This reverts commit 0e5955397b.
2024-07-21 15:48:33 +01:00
Jeremy Ruston
dbb7e1c300 Merge branch 'master' into feat-ai-tools 2024-07-21 15:48:14 +01:00
Jeremy Ruston
0e5955397b Give conversation tiddlers a dummy text field
To avoid triggering a docs template
2024-07-19 14:51:18 +01:00
Jeremy Ruston
638bd78059 Formatting typo 2024-07-18 09:52:24 +01:00
Jeremy Ruston
d56958331b Docs tweaks 2024-07-18 09:49:33 +01:00
Jeremy Ruston
a2cff69fee Update docs 2024-07-18 09:24:37 +01:00
Jeremy Ruston
837374b5ab Don't try to parse plugins as conversations 2024-07-18 08:39:03 +01:00
Jeremy Ruston
d6f3058e9d Merge branch 'master' into feat-ai-tools 2024-07-18 08:34:21 +01:00
Jeremy Ruston
95f3e224b0 Merge branch 'master' into feat-ai-tools 2024-07-16 20:01:24 +01:00
Jeremy Ruston
a1782b1e4e Palette fixes 2024-07-16 19:41:44 +01:00
Jeremy Ruston
a921034561 Improved spinner colours 2024-07-14 21:27:52 +01:00
Jeremy Ruston
d652f820b8 Basic support for importing ChatGPT archives 2024-07-14 21:16:11 +01:00
Jeremy Ruston
e00c761088 Tweak default prompt 2024-07-11 15:02:30 +01:00
Jeremy Ruston
cb9deaa9b5 Update docs 2024-07-11 09:56:41 +01:00
Jeremy Ruston
3b07607d1b Fix Llamafile compatibility 2024-07-11 09:43:23 +01:00
Jeremy Ruston
2faba2e820 Initial Commit 2024-07-09 08:59:49 +01:00
403 changed files with 6632 additions and 1823 deletions

View File

@@ -10,12 +10,12 @@ jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "${{ env.NODE_VERSION }}"
- run: "./bin/ci-test.sh"
- uses: actions/upload-artifact@v3
- uses: actions/upload-artifact@v4
if: always()
with:
name: playwright-report
@@ -30,8 +30,8 @@ jobs:
TW5_BUILD_MAIN_EDITION: "./editions/prerelease"
TW5_BUILD_OUTPUT: "./output/prerelease"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "${{ env.NODE_VERSION }}"
- run: "./bin/ci-pre-build.sh"
@@ -62,8 +62,8 @@ jobs:
TW5_BUILD_OUTPUT: "./output"
TW5_BUILD_ARCHIVE: "./output"
steps:
- uses: actions/checkout@v2
- uses: actions/setup-node@v1
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: "${{ env.NODE_VERSION }}"
- run: "./bin/ci-pre-build.sh"

View File

@@ -105,6 +105,7 @@ node $TW5_BUILD_TIDDLYWIKI \
fi
# /index.html Main site
# /external-(version).html External core version of main site
# /favicon.ico Favicon for main site
# /static.html Static rendering of default tiddlers
# /alltiddlers.html Static rendering of all tiddlers
@@ -117,7 +118,7 @@ node $TW5_BUILD_TIDDLYWIKI \
--version \
--load $TW5_BUILD_OUTPUT/build.tid \
--output $TW5_BUILD_OUTPUT \
--build favicon static index \
--build favicon static index external-js \
|| exit 1
# /empty.html Empty

View File

@@ -232,10 +232,10 @@ $tw.utils.error = function(err) {
var link = dm("a"),
text = JSON.stringify(tiddlers);
if(Blob !== undefined) {
var blob = new Blob([text], {type: "text/html"});
var blob = new Blob([text], {type: "application/json"});
link.setAttribute("href", URL.createObjectURL(blob));
} else {
link.setAttribute("href","data:text/html," + encodeURIComponent(text));
link.setAttribute("href","data:application/json," + encodeURIComponent(text));
}
link.setAttribute("download","emergency-tiddlers-" + (new Date()) + ".json");
document.body.appendChild(link);
@@ -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;
@@ -2465,13 +2463,15 @@ $tw.boot.initStartup = function(options) {
$tw.utils.registerFileType("image/webp","base64",".webp",{flags:["image"]});
$tw.utils.registerFileType("image/heic","base64",".heic",{flags:["image"]});
$tw.utils.registerFileType("image/heif","base64",".heif",{flags:["image"]});
$tw.utils.registerFileType("image/avif","base64",".avif",{flags:["image"]});
$tw.utils.registerFileType("image/svg+xml","utf8",".svg",{flags:["image"]});
$tw.utils.registerFileType("image/vnd.microsoft.icon","base64",".ico",{flags:["image"]});
$tw.utils.registerFileType("image/x-icon","base64",".ico",{flags:["image"]});
$tw.utils.registerFileType("application/wasm","base64",".wasm");
$tw.utils.registerFileType("application/font-woff","base64",".woff");
$tw.utils.registerFileType("application/x-font-ttf","base64",".woff");
$tw.utils.registerFileType("application/font-woff2","base64",".woff2");
$tw.utils.registerFileType("font/woff","base64",".woff");
$tw.utils.registerFileType("font/woff2","base64",".woff2");
$tw.utils.registerFileType("font/ttf","base64",".ttf");
$tw.utils.registerFileType("font/otf","base64",".otf");
$tw.utils.registerFileType("audio/ogg","base64",".ogg");
$tw.utils.registerFileType("audio/mp4","base64",[".mp4",".m4a"]);
$tw.utils.registerFileType("video/ogg","base64",[".ogm",".ogv",".ogg"]);

View File

@@ -5,7 +5,3 @@ TiddlyWiki incorporates code from these fine OpenSource projects:
* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]
* [[The Jasmine JavaScript Test Framework|https://jasmine.github.io/]]
* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]
And media from these projects:
* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]

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

5
core/images/language.tid Normal file
View File

@@ -0,0 +1,5 @@
title: $:/core/images/language
tags: $:/tags/Image
\parameters (size:"22pt")
<svg width=<<size>> height=<<size>> class="tc-image-language tc-image-button" viewBox="0 0 92 92"><path d="M0 0h2480.32v3507.87H0z" style="fill:none" transform="scale(.03696 .02613)"/><path d="M71.508 62.298c-1.243 15.83-16.758 28.344-35.714 28.344-5.713 0-11.113-1.136-15.905-3.158-2.977 2.498-8.618 4.183-15.088 4.183-.929 0-1.84-.034-2.73-.102 4.499-1.5 7.989-4.886 9.298-9.099C4.373 76.918 0 69.016 0 60.246 0 49.773 6.237 40.537 15.729 35.07c1.235 7.764 5.492 14.713 11.724 19.953l-7.269 18.453c-.393.976-.676 1.737-.847 2.285a5.326 5.326 0 0 0-.256 1.591c0 .89.368 1.686 1.103 2.388.736.702 1.583 1.052 2.542 1.052 1.13 0 1.942-.33 2.438-.988.497-.659 1.096-1.93 1.797-3.812l1.797-4.826h15.3l1.797 4.723c.239.582.526 1.254.86 2.015.333.762.646 1.327.936 1.695.291.368.65.659 1.078.873.428.213.942.32 1.54.32a3.586 3.586 0 0 0 2.632-1.09c.727-.728 1.09-1.528 1.09-2.4 0-.84-.384-2.183-1.154-4.031l-3.545-8.755c2.142.3 4.34.455 6.58.455 5.541 0 10.824-.951 15.636-2.674Zm-30.563.247 1.059 2.898H30.76l2.32-6.467a43.152 43.152 0 0 0 7.865 3.569Z"/><path d="M71.778 57.635c-4.793 2.023-10.191 3.157-15.907 3.157-19.767 0-35.793-13.61-35.793-30.396S36.104.001 55.87.001c19.772 0 35.797 13.61 35.797 30.395 0 8.77-4.373 16.674-11.371 22.221 1.309 4.211 4.8 7.6 9.299 9.1-.89.067-1.802.1-2.73.1-6.47 0-12.11-1.686-15.088-4.182Zm-15.59-15.887a44.237 44.237 0 0 0 3.3 2.496c4.284 2.942 9.06 5.381 14.33 7.315l2.334-3.517c-5.134-1.871-9.696-4.125-13.69-6.763a42.558 42.558 0 0 1-3.37-2.483c4.247-4.806 7.374-10.43 9.38-16.869h6.698V17.78h-16.7a47.226 47.226 0 0 0-1.528-2.959 52.943 52.943 0 0 0-2.885-4.562l-4.218 1.554a36.467 36.467 0 0 1 2.971 3.983c.427.661.833 1.323 1.217 1.984H36.394v4.148h6.77a36.878 36.878 0 0 0 5.422 11.56 42.918 42.918 0 0 0 4.591 5.497c-4.687 4.017-10.548 6.932-17.582 8.744l2.247 3.709c7.746-2.44 13.861-5.67 18.347-9.689Zm-9.047-19.82h16.991c-1.86 5.668-4.528 10.402-8 14.204a42.526 42.526 0 0 1-4.247-4.922c-2.126-2.883-3.71-5.977-4.744-9.283Z"/></svg>

View File

@@ -1,13 +0,0 @@
title: $:/languages/en-GB/icon
type: image/svg+xml
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 60 30" width="1200" height="600">
<clipPath id="t">
<path d="M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z"/>
</clipPath>
<path d="M0,0 v30 h60 v-30 z" fill="#00247d"/>
<path d="M0,0 L60,30 M60,0 L0,30" stroke="#fff" stroke-width="6"/>
<path d="M0,0 L60,30 M60,0 L0,30" clip-path="url(#t)" stroke="#cf142b" stroke-width="4"/>
<path d="M30,0 v30 M0,15 h60" stroke="#fff" stroke-width="10"/>
<path d="M30,0 v30 M0,15 h60" stroke="#cf142b" stroke-width="6"/>
</svg>

View File

@@ -17,19 +17,24 @@ Export our filter function
*/
exports.function = function(source,operator,options) {
var functionName = operator.operands[0],
params = [];
params = [],
results;
$tw.utils.each(operator.operands.slice(1),function(param) {
params.push({value: param});
});
// console.log(`Calling ${functionName} with params ${JSON.stringify(params)}`);
var variableInfo = options.widget && options.widget.getVariableInfo && options.widget.getVariableInfo(functionName,{params: params, source: source});
if(variableInfo && variableInfo.srcVariable && variableInfo.srcVariable.isFunctionDefinition) {
return variableInfo.resultList ? variableInfo.resultList : [variableInfo.text];
results = variableInfo.resultList ? variableInfo.resultList : [variableInfo.text];
}
// Return the input list if the function wasn't found
var results = [];
source(function(tiddler,title) {
results.push(title);
});
if(!results) {
results = [];
source(function(tiddler,title) {
results.push(title);
});
}
// console.log(`function ${functionName} with params ${JSON.stringify(params)} results: ${JSON.stringify(results)}`);
return results;
};

View File

@@ -128,7 +128,7 @@ exports.minall = makeNumericReducingOperator(
exports.median = makeNumericArrayOperator(
function(values) {
var len = values.length, median;
values.sort();
values.sort(function(a,b) {return a-b});
if(len % 2) {
// Odd, return the middle number
median = values[(len - 1) / 2];

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

@@ -40,6 +40,7 @@ exports["image/gif"] = ImageParser;
exports["image/webp"] = ImageParser;
exports["image/heic"] = ImageParser;
exports["image/heif"] = ImageParser;
exports["image/avif"] = ImageParser;
exports["image/x-icon"] = ImageParser;
exports["image/vnd.microsoft.icon"] = ImageParser;

View File

@@ -46,8 +46,10 @@ function SaverHandler(options) {
// Filter the changes so that we only count changes to tiddlers that we care about
var filteredChanges = self.filterFn.call(self.wiki,function(iterator) {
$tw.utils.each(changes,function(change,title) {
var tiddler = self.wiki.getTiddler(title);
iterator(tiddler,title);
if(change.normal) {
var tiddler = self.wiki.getTiddler(title);
iterator(tiddler,title);
}
});
});
// Adjust the number of changes
@@ -183,7 +185,7 @@ SaverHandler.prototype.saveWiki = function(options) {
// Call the highest priority saver that supports this method
for(var t=this.savers.length-1; t>=0; t--) {
var saver = this.savers[t];
if(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {
if(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename, type: variables.type}})) {
this.logger.log("Saving wiki with method",method,"through saver",saver.info.name);
return true;
}

View File

@@ -22,6 +22,7 @@ DownloadSaver.prototype.save = function(text,method,callback,options) {
options = options || {};
// Get the current filename
var filename = options.variables.filename;
var type = options.variables.type;
if(!filename) {
var p = document.location.pathname.lastIndexOf("/");
if(p !== -1) {
@@ -32,13 +33,16 @@ DownloadSaver.prototype.save = function(text,method,callback,options) {
if(!filename) {
filename = "tiddlywiki.html";
}
if(!type) {
type = "text/html";
}
// Set up the link
var link = document.createElement("a");
if(Blob !== undefined) {
var blob = new Blob([text], {type: "text/html"});
var blob = new Blob([text], {type: type});
link.setAttribute("href", URL.createObjectURL(blob));
} else {
link.setAttribute("href","data:text/html," + encodeURIComponent(text));
link.setAttribute("href","data:" + type + "," + encodeURIComponent(text));
}
link.setAttribute("download",filename);
document.body.appendChild(link);

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

@@ -75,7 +75,7 @@ exports.startup = function() {
$tw.wiki.unpackPluginTiddlers();
// Queue change events for the changed shadow tiddlers
$tw.utils.each(Object.keys(changedShadowTiddlers),function(title) {
$tw.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title]);
$tw.wiki.enqueueTiddlerEvent(title,changedShadowTiddlers[title], true);
});
}
}

View File

@@ -77,8 +77,9 @@ exports.startup = function() {
$tw.rootWidget.addEventListener("tm-copy-to-clipboard",function(event) {
$tw.utils.copyToClipboard(event.param,{
successNotification: event.paramObject && event.paramObject.successNotification,
failureNotification: event.paramObject && event.paramObject.failureNotification
});
failureNotification: event.paramObject && event.paramObject.failureNotification,
plainText: event.paramObject && event.paramObject.plainText
},event.paramObject && event.paramObject.type);
});
// Install the tm-focus-selector message
$tw.rootWidget.addEventListener("tm-focus-selector",function(event) {

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

@@ -40,10 +40,10 @@ exports.getFieldString = function(field,defaultValue) {
};
/*
Get the value of a field as a list
Get the value of a field as an array / list
*/
exports.getFieldList = function(field) {
var value = this.fields[field];
var value = this.getFieldString(field,null);
// Check for a missing field
if(value === undefined || value === null) {
return [];

View File

@@ -268,9 +268,10 @@ exports.copyStyles = function(srcDomNode,dstDomNode) {
/*
Copy plain text to the clipboard on browsers that support it
*/
exports.copyToClipboard = function(text,options) {
options = options || {};
text = text || "";
exports.copyToClipboard = function(text,options,type) {
var text = text || "";
var options = options || {};
var type = type || "text/plain";
var textArea = document.createElement("textarea");
textArea.style.position = "fixed";
textArea.style.top = 0;
@@ -283,10 +284,16 @@ exports.copyToClipboard = function(text,options) {
textArea.style.outline = "none";
textArea.style.boxShadow = "none";
textArea.style.background = "transparent";
textArea.value = text;
document.body.appendChild(textArea);
textArea.select();
textArea.setSelectionRange(0,text.length);
textArea.addEventListener("copy",function(event) {
event.preventDefault();
if (options.plainText) {
event.clipboardData.setData("text/plain",options.plainText);
}
event.clipboardData.setData(type,text);
});
var succeeded = false;
try {
succeeded = document.execCommand("copy");

View File

@@ -216,11 +216,11 @@ HttpClientRequest.prototype.send = function(callback) {
if(lengthComputable) {
setBinding(self.bindProgress,"" + Math.floor((loaded/total) * 100))
}
self.wiki.invokeActionString(self.progressActions,undefined,{
self.wiki.invokeActionString(self.progressActions,undefined,$tw.utils.extend({},self.variables,{
lengthComputable: lengthComputable ? "yes" : "no",
loaded: loaded,
total: total
},{parentWidget: $tw.rootWidget});
}),{parentWidget: $tw.rootWidget});
}
});
}

View File

@@ -104,7 +104,7 @@ CreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {
}
this.setVariable("createTiddler-title",title);
this.setVariable("createTiddler-draftTitle",draftTitle);
this.refreshChildren();
this.refreshChildren([]);
return true; // Action was invoked
};

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);
}
@@ -154,7 +157,7 @@ CheckboxWidget.prototype.getValue = function() {
if(this.checkboxTag) {
return false;
}
if(this.checkboxField) {
if(this.checkboxField || this.checkboxIndex) {
if(this.checkboxDefault === this.checkboxChecked) {
return 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

@@ -43,15 +43,6 @@ EditWidget.prototype.execute = function() {
// Get our parameters
this.editTitle = this.getAttribute("tiddler",this.getVariable("currentTiddler"));
this.editField = this.getAttribute("field","text");
this.editIndex = this.getAttribute("index");
this.editClass = this.getAttribute("class");
this.editPlaceholder = this.getAttribute("placeholder");
this.editTabIndex = this.getAttribute("tabindex");
this.editFocus = this.getAttribute("focus","");
this.editCancelPopups = this.getAttribute("cancelPopups","");
this.editInputActions = this.getAttribute("inputActions");
this.editRefreshTitle = this.getAttribute("refreshTitle");
this.editAutoComplete = this.getAttribute("autocomplete");
// Choose the appropriate edit widget
this.editorType = this.getEditorType();
// Make the child widgets
@@ -89,8 +80,8 @@ Selectively refreshes the widget if needed. Returns true if the widget or any of
*/
EditWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
// Refresh if an attribute has changed, or the type associated with the target tiddler has changed
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || changedAttributes.cancelPopups || changedAttributes.inputActions || changedAttributes.refreshTitle || changedAttributes.autocomplete || (this.getEditorType() !== this.editorType)) {
// Refresh if the editor type has changed
if(changedAttributes.tiddler || changedAttributes.field || (this.getEditorType() !== this.editorType)) {
this.refreshSelf();
return true;
} else {

View File

@@ -24,6 +24,10 @@ Inherit from the base widget class
*/
FillWidget.prototype = new Widget();
FillWidget.prototype.execute = function() {
// Do nothing. Make no child widgets. $Fill widgets should be invisible when naturally encountered. Instead, their parseTreeNodes are made available to $slot widgets that want it.
};
exports.fill = FillWidget;
})();

View File

@@ -23,15 +23,21 @@ Inherit from the base widget class
*/
GenesisWidget.prototype = new Widget();
GenesisWidget.prototype.computeAttributes = function(options) {
options = options || Object.create(null);
options.filterFn = function(name) {
// Only compute our own attributes which start with a single dollar
return name.charAt(0) === "$" && name.charAt(1) !== "$";
}
return Widget.prototype.computeAttributes.call(this,options);
};
/*
Render this widget into the DOM
*/
GenesisWidget.prototype.render = function(parent,nextSibling) {
this.parentDomNode = parent;
this.computeAttributes({filterFn: function(name) {
// Only compute our own attributes which start with a single dollar
return name.charAt(0) === "$" && name.charAt(1) !== "$";
}});
this.computeAttributes();
this.execute();
this.renderChildren(parent,nextSibling);
};

View File

@@ -107,6 +107,7 @@ ImportVariablesWidget.prototype.execute = function(tiddlerList) {
Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
*/
ImportVariablesWidget.prototype.refresh = function(changedTiddlers) {
changedTiddlers = changedTiddlers || {};
// Recompute our attributes and the filter list
var changedAttributes = this.computeAttributes(),
tiddlerList = this.wiki.filterTiddlers(this.getAttribute("filter"),this);

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

@@ -141,12 +141,15 @@ This method should be called after the changes it describes have been made to th
title: Title of tiddler
isDeleted: defaults to false (meaning the tiddler has been created or modified),
true if the tiddler has been deleted
isShadow: defaults to false (meaning the change applies to the normal tiddler),
true if the tiddler being changed is a shadow tiddler
*/
exports.enqueueTiddlerEvent = function(title,isDeleted) {
exports.enqueueTiddlerEvent = function(title,isDeleted,isShadow) {
// Record the touch in the list of changed tiddlers
this.changedTiddlers = this.changedTiddlers || Object.create(null);
this.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);
this.changedTiddlers[title][isDeleted ? "deleted" : "modified"] = true;
this.changedTiddlers[title][isShadow ? "shadow" : "normal"] = true;
// Increment the change count
this.changeCount = this.changeCount || Object.create(null);
if($tw.utils.hop(this.changeCount,title)) {
@@ -1132,6 +1135,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
@@ -78,13 +78,13 @@ code-background: <<colour background>>
code-border: <<colour flexoki-tx>>
code-foreground: <<colour flexoki-tx>>
diff-delete-background: <<colour flexoki-re>>
diff-delete-foreground: <<colour flexoki-paper>>
diff-delete-foreground: <<colour flexoki-bg-2>>
diff-equal-background:
diff-equal-foreground: inherit
diff-insert-background: <<colour flexoki-gr>>
diff-insert-foreground: <<colour flexoki-paper>>
diff-insert-foreground: <<colour flexoki-bg-2>>
diff-invisible-background: <<colour flexoki-ye>>
diff-invisible-foreground: <<colour flexoki-paper>>
diff-invisible-foreground: <<colour flexoki-bg-2>>
dirty-indicator: <<colour flexoki-re>>
download-background: <<colour flexoki-cy-2>>
download-foreground: <<colour background>>
@@ -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-yellow-900>>
highlight-foreground: inherit
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-yellow-100>>
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

@@ -2,5 +2,6 @@ title: $:/core/templates/exporters/CsvFile
tags: $:/tags/Exporter
description: {{$:/language/Exporters/CsvFile}}
extension: .csv
file-type: text/csv
<$macrocall $name="csvtiddlers" filter=<<exportFilter>> format="quoted-comma-sep" $output="text/raw"/>

View File

@@ -2,5 +2,6 @@ title: $:/core/templates/exporters/JsonFile
tags: $:/tags/Exporter
description: {{$:/language/Exporters/JsonFile}}
extension: .json
file-type: application/json
<$macrocall $name="jsontiddlers" filter=<<exportFilter>> $output="text/raw"/>

View File

@@ -2,6 +2,7 @@ title: $:/core/templates/exporters/TidFile
tags: $:/tags/Exporter
description: {{$:/language/Exporters/TidFile}}
extension: .tid
file-type: text/vnd.tiddlywiki
condition: [<count>compare:lte[1]]
\define renderContent()

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

@@ -5,6 +5,7 @@ description: {{$:/language/Buttons/AdvancedSearch/Hint}}
\whitespace trim
\procedure advanced-search-button(class)
\whitespace trim
<$button to="$:/AdvancedSearch" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
<%if [<tv-config-toolbar-icons>match[yes]] %>
{{$:/core/images/advanced-search-button}}

View File

@@ -5,6 +5,7 @@ description: {{$:/language/Buttons/ControlPanel/Hint}}
\whitespace trim
\procedure control-panel-button(class)
\whitespace trim
<$button to="$:/ControlPanel" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
<%if [<tv-config-toolbar-icons>match[yes]] %>
{{$:/core/images/options-button}}

View File

@@ -7,11 +7,7 @@ description: {{$:/language/Buttons/Language/Hint}}
<span class="tc-popup-keep">
<$button popup=<<qualify "$:/state/popup/language">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
<%if [<tv-config-toolbar-icons>match[yes]] %>
<span class="tc-image-button">
<$set name="languagePluginTitle" value={{$:/language}}>
<$image source=`$(languagePluginTitle)$/icon`/>
</$set>
</span>
{{$:/core/images/language}}
<%endif%>
<%if [<tv-config-toolbar-text>match[yes]] %>
<span class="tc-btn-text"><$text text={{$:/language/Buttons/Language/Caption}}/></span>

View File

@@ -5,6 +5,7 @@ description: {{$:/language/Buttons/Manager/Hint}}
\whitespace trim
\procedure manager-button(class)
\whitespace trim
<$button to="$:/Manager" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
<%if [<tv-config-toolbar-icons>match[yes]] %>
{{$:/core/images/list}}

View File

@@ -4,10 +4,17 @@ caption: {{$:/core/images/save-button-dynamic}} {{$:/language/Buttons/SaveWiki/C
description: {{$:/language/Buttons/SaveWiki/Hint}}
\whitespace trim
<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>
\procedure saveActions()
<$wikify name="site-title" text={{$:/config/SaveWikiButton/Filename}}>
<$action-sendmessage $message="tm-save-wiki" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>
<$action-sendmessage $message="tm-save-wiki" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>
</$wikify>
\end
<$button actions=<<saveActions>>
tooltip={{$:/language/Buttons/SaveWiki/Hint}}
aria-label={{$:/language/Buttons/SaveWiki/Caption}}
class=<<tv-config-toolbar-class>>
>
<span class="tc-dirty-indicator">
<%if [<tv-config-toolbar-icons>match[yes]] %>
{{$:/core/images/save-button-dynamic}}

View File

@@ -5,6 +5,7 @@ description: {{$:/language/Buttons/TagManager/Hint}}
\whitespace trim
\procedure control-panel-button(class)
\whitespace trim
<$button to="$:/TagManager" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=`$(tv-config-toolbar-class)$ $(class)$`>
<%if [<tv-config-toolbar-icons>match[yes]] %>
{{$:/core/images/tag-button}}

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

@@ -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,25 +1,12 @@
title: $:/snippets/languageswitcher
\define flag-title()
$(languagePluginTitle)$/icon
\end
\whitespace trim
<$linkcatcher to="$:/language">
<div class="tc-chooser tc-language-chooser">
<$list filter="[[$:/languages/en-GB]] [plugin-type[language]sort[description]]">
<$set name="cls" filter="[all[current]field:title{$:/language}]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item"><div class=<<cls>>>
<$set name="cls" filter="[all[current]field:title{$:/language}]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item">
<div class=<<cls>> lang={{!!name}}>
<$link>
<span class="tc-image-button">
<$set name="languagePluginTitle" value=<<currentTiddler>>>
<$transclude subtiddler=<<flag-title>>>
<$list filter="[all[current]field:title[$:/languages/en-GB]]">
<$transclude tiddler="$:/languages/en-GB/icon"/>
</$list>
</$transclude>
</$set>
</span>
&#32;
<$view field="description">
<$view field="name">
<$view field="title"/>

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

@@ -3,9 +3,11 @@ tags: $:/tags/Macro
\whitespace trim
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style)
<$button message="tm-copy-to-clipboard"
param=<<src>>
\procedure copy-to-clipboard(src,class:"tc-btn-invisible",style,type:"text/plain",plain)
\procedure copy-to-clipboard-actions()
<$action-sendmessage $message="tm-copy-to-clipboard" $param=<<src>> type=<<type>> plainText=<<plain>>/>
\end copy-to-clipboard-actions
<$button actions=<<copy-to-clipboard-actions>>
class=<<class>>
style=<<style>>
tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}
@@ -15,12 +17,12 @@ tags: $:/tags/Macro
<$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>
</span>
</$button>
\end
\end copy-to-clipboard
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style)
<div style="position: relative;">
<div style="position: absolute; bottom: 0; right: 0;">
<$macrocall $name="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>>/>
\procedure copy-to-clipboard-above-right(src,class:"tc-btn-invisible",style,type:"text/plain")
<div style.position="relative">
<div style.position="absolute" style.bottom="0" style.right="0">
<$transclude $variable="copy-to-clipboard" src=<<src>> class=<<class>> style=<<style>> type=<<type>> plain=<<plain>>/>
</div>
</div>
\end

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

@@ -39,6 +39,7 @@ tags: $:/tags/Macro
$param=<<currentTiddler>>
exportFilter=<<exportFilter>>
filename={{{ [<baseFilename>addsuffix{!!extension}] }}}
type={{!!file-type}}
/>
<$action-deletetiddler $tiddler=<<qualify "$:/state/popup/export">>/>
<$transclude field="description"/>

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,52 +59,54 @@ 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"/>
<$let tv-wikilinks="no">
<$transclude field="caption">
<$view field="title"/>
</$transclude>
</$let>
</$link>
</$transclude>
</$genesis>
@@ -114,11 +115,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,7 +1,6 @@
title: $:/core/macros/toc
tags: $:/tags/Macro
\define toc-open-icon() $:/core/images/down-arrow
\define toc-closed-icon() $:/core/images/right-arrow
@@ -121,7 +120,7 @@ tags: $:/tags/Macro
<$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item" >
<li class=<<toc-item-class>>>
<$link to={{{ [<currentTiddler>get[target]else<currentTiddler>] }}}>
<$list filter="[all[current]tagging[]$sort$limit[1]] -[subfilter<__exclude__>]" variable="ignore" emptyMessage="<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>">
<$list filter="[all[current]tagging[]$sort$] -[subfilter<__exclude__>] +[limit[1]]" variable="ignore" emptyMessage="<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>">
<$reveal type="nomatch" stateTitle=<<toc-state>> text="open">
<$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep">
<$transclude tiddler=<<toc-closed-icon>> />
@@ -148,7 +147,7 @@ tags: $:/tags/Macro
<$qualify name="toc-state" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>
<$set name="toc-item-class" filter=<<__itemClassFilter__>> emptyValue="toc-item-selected" value="toc-item">
<li class=<<toc-item-class>>>
<$list filter="[all[current]tagging[]$sort$limit[1]] -[subfilter<__exclude__>]" variable="ignore" emptyMessage="""<$button class="tc-btn-invisible">{{$:/core/images/blank}}</$button><span class="toc-item-muted"><<toc-caption>></span>""">
<$list filter="[all[current]tagging[]$sort$] -[subfilter<__exclude__>] +[limit[1]]" variable="ignore" emptyMessage="""<$button class="tc-btn-invisible">{{$:/core/images/blank}}</$button><span class="toc-item-muted"><<toc-caption>></span>""">
<$reveal type="nomatch" stateTitle=<<toc-state>> text="open">
<$button setTitle=<<toc-state>> setTo="open" class="tc-btn-invisible tc-popup-keep">
<$transclude tiddler=<<toc-closed-icon>> />

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

@@ -3,7 +3,7 @@ title: $:/snippets/paletteswitcher
\whitespace trim
<$linkcatcher to="$:/palette">
<div class="tc-chooser">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]">
<$list filter="[all[shadows+tiddlers]tag[$:/tags/Palette]!is[draft]sort[name]]">
<$set name="cls" filter="[all[current]prefix{$:/palette}]" value="tc-chooser-item tc-chosen" emptyValue="tc-chooser-item">
<div class=<<cls>>>
<$link to={{!!title}}>

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

@@ -1,33 +1,9 @@
title: Translations
\define flag-title()
$(languagePluginTitle)$/icon
\end
TiddlyWiki is currently available in <$count filter="[[$:/languages/en-GB]] [plugin-type[language]sort[title]] -[[$:/languages/de-AT]]"/> languages:
<div class="tc-drop-down-language-chooser" style="font-size: 7px; line-height: 8px; -moz-columns:6; -webkit-columns:6; columns:6;">
<$list filter="[[$:/languages/en-GB]] [plugin-type[language]sort[title]] -[[$:/languages/de-AT]]">
<div class="tc-language-list">
<span class="tc-language-list-name tc-image-button">
<$set name="languagePluginTitle" value=<<currentTiddler>>>
<$transclude subtiddler=<<flag-title>>>
<$list filter="[all[current]field:title[$:/languages/en-GB]]">
<$transclude tiddler="$:/languages/en-GB/icon"/>
</$list>
</$transclude>
</$set>
<$view field="description">
<$view field="name">
<$view field="title"/>
</$view>
</$view>
<$view subtiddler="$:/language/ControlPanel/Basics/Language/Prompt">
<$view tiddler="$:/language/ControlPanel/Basics/Language/Prompt"/>
</$view>
</span>
</div>
</$list>
<div style.height="400px" style.overflowY="auto">
{{$:/snippets/languageswitcher}}
</div>
Find out how to [[Get Started]].

View File

@@ -25,6 +25,7 @@
"de-DE",
"el-GR",
"en-US",
"en-PH",
"es-ES",
"fa-IR",
"fr-FR",
@@ -34,12 +35,15 @@
"it-IT",
"ja-JP",
"ko-KR",
"mk-MK",
"nl-NL",
"pa-IN",
"pl-PL",
"pt-BR",
"pt-PT",
"ru-RU",
"sk-SK",
"sl-SI",
"sv-SE",
"zh-CN",
"zh-Hans",

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,24 @@
created: 20180626122427188
modified: 20241228111603066
original-modified: 20211117234223960
tags: [[TiddlyWiki on Node.js]]
title: NamedCommandParameters
ja-title: 名前付きコマンドパラメータ
type: text/vnd.tiddlywiki
<<.from-version "5.1.18">> ほとんどのTiddlyWiki[[コマンド|Commands]]は、パラメータに位置に基づくシステムを使用しており、各パラメータはコマンドで定義された正確な順序でリストされる必要があります。より複雑なコマンドの中には、名前付きコマンドパラメータの代替スキームを提供するものもあります。たとえば、ここでは"port"と"host"という2つのパラメータを提供します:
```
--listen port=8090 host=0.0.0.0
```
パラメータの順序は重要ではないことに注意してください。
パラメータ内で特殊文字を使用するには引用符が必要です。Unix、Linux、Macではシングルクォートが使用され、Windowsではダブルクォートが使用されます:
```
--listen port=8090 username=joe 'password=s3cret(!'
--listen port=8090 username=joe "password=s3cret(!"
```
引用符は値の部分だけでなく、名前=値のペア全体を括ることに注意してください。

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,42 @@
created: 20130825214200000
modified: 20250203103623306
original-modified: 20161015134454785
tags: [[TiddlyWiki on Node.js]]
title: TiddlyWikiFolders
ja-title: TiddlyWikiフォルダ
type: text/vnd.tiddlywiki
[[Node.js上のTiddlyWiki|TiddlyWiki on Node.js]]は、従来の単一ファイルWikiと同様に、フォルダーに保存される個々のTiddlerファイルのWikiもサポートします。
! Wikiフォルダ構造
Wikiフォルダーには、次のファイルとフォルダーを含めることができます:
* ''tiddlywiki.info'' - Wikiのメタデータを含むJSONファイル -- [[tiddlywiki.infoファイル|tiddlywiki.info Files]]を参照
* ''\tiddlers'' - Wikiを構成するTiddlerファイルを含むフォルダ
* ''\plugins'' - Wikiに含める[[プラグインフォルダ|PluginFolders]]を含むフォルダ
* ''\languages'' - Wikiに含める言語プラグインの[[プラグインフォルダ|PluginFolders]]を含むフォルダ
* ''\themes'' - Wikiに含めるテーマプラグインの[[プラグインフォルダ|PluginFolders]]を含むフォルダ
''tiddlywiki.info''ファイルのみが必須で、その他はすべてオプションです。上記にリストされていないファイルとフォルダーは無視されます。
!! プラグイン処理
ブラウザで使用できるようにするには、プラグインをWikiに含める必要があります。サーバー上で生成されるWikiの場合、[[TiddlyWikiフォルダ|TiddlyWikiFolders]]には、このWikiに含めるプラグインの識別を[[tiddlywiki.infoファイル|tiddlywiki.info Files]]に含めることができます:
```
{
"plugins": [
"tiddlywiki/slider",
"tiddlytools/chooser"
]
}
```
プラグイン名は、TiddlyWiki5のルート`plugins`フォルダーにリストされているプラグインフォルダーを参照します。プラグインは、Wikiの`plugins`サブフォルダーにコピーして手動で含めることもできます。
!! `tiddlers`フォルダの処理
`tiddlers`フォルダー内のすべての[[Tiddlerファイル|TiddlerFiles]]は、起動時にWikiに読み込まれます。サブフォルダーは[[Tiddlerファイル|TiddlerFiles]]の再帰スキャンの対象となります。新しく作成されたTiddlerは、[[特に設定されて|Customising Tiddler File Naming]]いない限り、`tiddlers`フォルダーの直下の[[Tiddlerファイル|TiddlerFiles]]に保存されます。
`tiddlers`フォルダー内のサブフォルダーのデフォルトの処理は、`tiddlywiki.files`と呼ばれるJSONファイルを提供することで上書きできます -- [[tiddlywiki.filesファイル|tiddlywiki.files Files]]を参照。

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]]も参照してください。

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