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

Compare commits

...

92 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
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
236 changed files with 3470 additions and 1410 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);
@@ -2463,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

@@ -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

@@ -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

@@ -157,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;
}

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

@@ -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

@@ -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: <<colour flexoki-cyan-950>>
highlight-foreground: <<colour flexoki-cyan-400>>
highlight-background: <<colour flexoki-yellow-900>>
highlight-foreground: inherit
menubar-background: <<colour primary>>
menubar-foreground: <<colour flexoki-paper>>
message-background: <<colour background>>

View File

@@ -105,7 +105,7 @@ external-link-foreground-visited: <<colour flexoki-bl>>
external-link-foreground: <<colour flexoki-bl>>
footnote-target-background: <<colour flexoki-bg-2>>
foreground: #100F0F
highlight-background: <<colour flexoki-cyan-050>>
highlight-background: <<colour flexoki-yellow-100>>
highlight-foreground: inherit
menubar-background: <<colour primary>>
menubar-foreground: <<colour flexoki-paper>>

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

@@ -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

@@ -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

@@ -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

@@ -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

@@ -102,7 +102,11 @@ tags: $:/tags/Macro
<$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>

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

@@ -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,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,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,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,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,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,21 @@
created: 20140126125259638
modified: 20241227104451970
original-modified: 20171118195316103
tags: Definitions Platforms
title: TiddlyDesktop
ja-title: TiddlyDesktop
type: text/vnd.tiddlywiki
TiddlyDesktopは、TiddlyWikiファイル(TiddlyWikiClassicとTiddlyWikiバージョン5の両方)を操作するためのアプリです。Windowsや、Mac OS X、Linuxにインストールできます。TiddlyWikiバージョン5と古いTiddlyWikiClassicと互換性があります
{{Saving on TiddlyDesktop}}
{{Introducing TiddlyDesktop Video}}
! ソース
TiddlyDesktopは、[[オープンソース|OpenSource]]プロジェクト[[NW.js]]をベースにしています。ソースはGitHubにあります:
https://github.com/TiddlyWiki/TiddlyDesktop/
[[TiddlyDesktopのリリース|TiddlyDesktop Releases]]と[[TiddlyDesktopのカスタマイズ方法|How to Customize TiddlyDesktop]]を参照してください

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -0,0 +1,31 @@
created: 20150621181334837
modified: 20250124111732489
original-modified: 20150621181400844
tags: [[TiddlyWiki on Node.js]]
title: MultiTiddlerFileSyntax
ja-title: マルチTiddlerファイル構文
type: text/vnd.tiddlywiki
!!! [[マルチTiddlerファイル|MultiTiddlerFiles]]
<$railroad text="""
{<"ヘッダー行">} "空行" {(<"Tiddler記述行"> | <"コメント行">)}
"""/>
!!! ヘッダー行
<$railroad text="""
<"識別子"> ":" {"ホワイトスペース"} <"値"> "改行"
"""/>
!!! Tiddler記述行
<$railroad text="""
<"ファイルパス"> ":" {"ホワイトスペース"} <"Tiddlerタイトル"> "改行"
"""/>
!!! コメント行
<$railroad text="""
"#" {("テキスト" | "ホワイトスペース")} "改行"
"""/>

View File

@@ -0,0 +1,38 @@
created: 20140209143652456
modified: 20250123115055695
original-modified: 20150621182140407
tags: [[TiddlyWiki on Node.js]]
title: MultiTiddlerFiles
ja-title: マルチTiddlerファイル
type: text/vnd.tiddlywiki
MultiTiddlerFilesを使用すると、複数のTiddlerを1つのテキストファイルに簡潔に表現できます。
この形式の目標は次のとおりです:
* 入力しやすく、読みやすい
* 単一行の文字列に最適化
* Tiddlerのグループ内で共通のフィールドやタグを共有できるようにする
* 外部ツールで簡単に処理できるようにする
MultiTiddlerFilesの拡張子は`multids`です。ファイルは、共有フィールドのブロックとそれに続く空白行で構成されます。ファイルの残りの部分は、コメントとTiddlerのシーケンスです。Tiddlerはタイトルで指定され、その後にコロン、少なくとも1つのスペース文字が続き、行の残りの部分はTiddlerのテキストフィールドになります。
例:
```
title: $:/language/ControlPanel/
tags: strings
modifier: JoeBloggs
Basics/Caption: Basics
# This is a comment
Basics/Version: ~TiddlyWiki Version
```
この例では、[[$:/language/ControlPanel/Basics/Caption]]と[[$:/language/ControlPanel/Basics/Version]]の2つのTiddlerを定義します。
ヘッダーで`title`フィールドが指定されている場合、タイトルで定義された個々のTiddlerのプレフィックスとして扱われます。
!! 構文の仕様
{{MultiTiddlerFileSyntax}}

View File

@@ -0,0 +1,112 @@
created: 20130825150000000
modified: 20250125105846987
original-modified: 20210714130751701
tags: [[TiddlyWiki on Node.js]]
title: TiddlerFiles
ja-title: Tiddlerファイル
type: text/vnd.tiddlywiki
Tiddlerは、さまざまな形式でテキストファイルに保存できます。単一のTiddlerを含むファイルには、名前:値のペアのシーケンスとしてフォーマットされた`.meta`補助ファイルを持つこともできます。
```
title: TheTitle
modifier: someone
```
!! ~TiddlyWebスタイルの.tidファイル
これらのファイルは、名前:値のペア、空白行、そしてTiddlerのテキストを含む一連の行で構成されます。例:
```
title: MyTiddler
modifier: Jeremy
This is the text of my tiddler.
```
多くのテキストエディターでは、ファイルに終了改行が含まれている必要があることに注意してください。Tiddlerのテキストに終了改行を含めたくない場合は、次の代替構文を使用できます:
```
title: MyTiddler
modifier: Jeremy
text: This is the text of my tiddler.
```
//`application/x-tiddler` ContentTypeはこれらのファイルの内部で使用されます//
!! TiddlyWiki `<DIV>` .tiddlerファイル
TiddlyWiki 5では、`*.tiddler`ファイルは次のようになります。
```
<div title="AnotherExampleStyleSheet" modifier="blaine" created="201102111106" modified="201102111310" tags="examples" creator="psd">
<pre>Note that there is an embedded <pre> tag, and line feeds are not escaped.
And, weirdly, there is no HTML encoding of the body.</pre>
</div>
```
これらの`*.tiddler`ファイルは、HTML エンコードされたTiddlyWiki HTMLファイル内のTiddlerとまったく同じではありません。
Older `*.tiddler` files more closely matched the store format used by TiddlyWiki at the time:
古い`*.tiddler`ファイルは、当時TiddlyWikiで使用されていたストア形式に似ています:
```
<div tiddler="AnotherExampleStyleSheet" modifier="JeremyRuston" modified="200508181432" created="200508181432" tags="examples">This is an old-school .tiddler file, without an embedded &lt;pre&gt; tag.\nNote how the body is &quot;HTML encoded&quot; and new lines are escaped to \\n</div>
```
//`application/x-tiddler-html-div` ContentTypeはこれらのファイルの内部で使用されます//
!! ~TiddlyWebスタイルのJSONファイル
これらのファイルは、`name:value`プロパティのハッシュマップの単純な配列です。すべてのフィールド値は文字列として指定する必要があります。
例:
```
[
{
"title": "First Tiddler",
"text": "Text of first tiddler",
"tags": "one two [[t h r e e]]"
},{
"title": "Second Tiddler",
"text": "Text of second tiddler",
"modified": "20150216171751154"
}
]
```
`application/json` ContentTypeはこれらのファイルに対して内部で使用されます。
Tiddler構造に準拠していないJSONファイルは、代わりにJSONデータを含む単一のTiddlerとしてインポートされることに注意してください。
!! TiddlyWiki HTMLファイル用の新しいJSONベースの形式
TiddlyWiki HTMLファイルの新しい形式では、スクリプトタグ内にJSON形式のTiddlerが埋め込まれます:
```json
<script class="tiddlywiki-tiddler-store" type="application/json">[
{"title": "A","text": "One"},
{"title": "B","text": "Two"}
]</script>
```
!! TiddlyWiki HTMLファイル用の古いDIVベースの形式
TiddlyWikiクラシックおよびバージョンv5.2.0より前のTiddlyWiki 5では、Tiddlerは`<DIV>`形式でエンコードされて保存されていました。
TiddlyWikiが暗号化されていないDIVベースのHTMLファイルをインポートするには、上で説明したようにTiddler DIVを含んだ`<div id="storeArea">`が必要です。例:
```
<div id="storeArea">
<div created="20130302085406905" modified="20130302084548184" tags="Examples" title="A tiddler title">
<pre>HTML encoded text of tiddler
</pre>
</div>
<div created="20140315085406905" modified="20140321084548184" tags="One Two [[Three with Space]]" title="Another title" customfield="field value">
<pre>Text of this tiddler
</pre>
</div>
</div>
```

View File

@@ -0,0 +1,37 @@
created: 20130828190200000
modified: 20250120105549696
original-modified: 20241008031135403
tags: [[TiddlyWiki on Node.js]]
title: Generating Static Sites with TiddlyWiki
ja-title: TiddlyWikiで静的サイトを生成する
type: text/vnd.tiddlywiki
TiddlyWiki5は、JavaScriptを必要としないTiddlyWikiの静的HTML表現を生成できます。このプロセスでは、ローカルシステムのNode.jsにTiddlyWikiがインストールされている必要があります。詳細については、[[Node.jsにTiddlyWikiをインストールする|Installing TiddlyWiki on Node.js]]を参照してください。
静的HTMLの生成方法には多くの柔軟性があります。次のシナリオはすべて https://tiddlywiki.com で説明されています。
! WikiスナップショットとTiddlerスナップショット
https://tiddlywiki.com/static.html で、メインのTiddlyWikiサイトの静的な表現を見ることができます。このファイルは、現在のDefaultTiddlersの静的スナップショットです。このファイルにリンクされているすべてのTiddlerは、個々のTiddlerの静的スナップショットを指す`/static/HelloThere.html`形式のURLによって参照されます。TiddlerのHTMLファイルは、`static.css`スタイルシートファイルを参照します。
次のコマンドは、TiddlyWiki5サイトの静的バージョンのサンプルを生成するために使用されます:
```sh
tiddlywiki wikipath --render '[!is[system]]' '[encodeuricomponent[]addprefix[static/]addsuffix[.html]]' text/plain $:/core/templates/static.tiddler.html
tiddlywiki wikipath --render $:/core/templates/static.template.html static.html text/plain
tiddlywiki wikipath --render $:/core/templates/static.template.css static/static.css text/plain
```
最初のRenderCommandは、フィルタ`[!is[system]]`を使用してすべての個別の非システムTiddlerのHTML表現を生成し、次のフィルタ`[encodeuricomponent[]addprefix[static/]addsufixx[.html]]`は各タイトルにURIエンコーディングを適用し、プレフィックス`static/`を追加して、最後にサフィックス`.html`を追加します。2番目のRenderCommandは、DefaultTiddlersの静的バージョンを`static.html`に保存し、最後のRenderCommandはスタイルシートを保存します。(すべてのファイルは、Wikiフォルダの`output`フォルダに配置されます)。
! 内部リンク付きWikiスナップショット
Tiddlerの静的表現を含み、標準のHTMLアンカーリンクを使用してそれらの間を移動する単一のHTMLファイルを作成することも可能です。
例: https://tiddlywiki.com/alltiddlers.html
この例は次のコマンドによって構築できます:
```
--render $:/core/templates/alltiddlers.template.html alltiddlers.html text/plain
```

View File

@@ -0,0 +1,19 @@
created: 20131124220600000
modified: 20250121112457196
original-modified: 20241025051111864
tags: [[TiddlyWiki on Node.js]]
title: How to build a TiddlyWiki5 from individual tiddlers
ja-title: 個々のTiddlerからTiddlyWiki5を構築する方法
type: text/vnd.tiddlywiki
まず、[[Node.jsにTiddlyWikiをインストール|Installing TiddlyWiki on Node.js]]の説明に従ってTiddlyWikiをインストールします。
# 空の[[TiddlyWikiFolder|TiddlyWikiFolders]]を作成します
## 適当な場所に新しいフォルダを作成します (例: `~/MyWiki`)
## 次のテキストを含む`tiddlywiki.info`というファイルを作成します:
##* `{"themes": ["tiddlywiki/vanilla","tiddlywiki/snowwhite"]}`
## `tiddlers`というサブフォルダを作成します
##* あるいは、TiddlyWiki5リポジトリから、`editions/empty`フォルダをコピーします
# `~/MyWiki/tiddlers`ディレクトリ内に個々のTiddlerFilesを作成します
# TiddlyWiki5ルートディレクトリから次のコマンドを実行して、TiddlerからTiddlyWiki5ファイルを構築します:
## `tiddlywiki ~/MyWiki --render $:/core/save/all index.html text/plain`

View File

@@ -0,0 +1,31 @@
created: 20130825150100000
modified: 20250204104525288
original-modified: 20140912141559011
tags: [[TiddlyWiki on Node.js]]
title: Using TiddlyWiki for GitHub project documentation
ja-title: GitHubプロジェクトのドキュメントにTiddlyWikiを使用する
type: text/vnd.tiddlywiki
TiddlyWiki5は、GitHubプロジェクトのドキュメントを作成するために使用できます。ソースコード管理下にある個別のTiddlerファイルを含む[[TiddlyWikiフォルダ|TiddlyWikiFolders]]として単一のドキュメントセットを維持し、それを使用してプロジェクトフォルダーに含める`readme.md`ファイルや[[GitHub Pages|http://pages.github.com/]]に保存するHTMLファイルを作成できます。両方の機能は、TiddlyWiki5自身によって実証されています。
! `readme.md`ファイルの生成
フォルダーの内容を表示する際、GitHubは`readme.md`ファイルを探して表示します。この方法では完全なHTMLファイルではなく、静的なMarkDownファイルのみが表示されることに注意してください(これはセキュリティ対策です)。幸いなことに、MarkDownはHTMLの安全なサブセットを許可しているため、GitHubに適した`readme.md`ファイルを生成するには、TiddlyWiki5がHTMLドキュメントの`<body>`要素の内容を生成し、適切なファイル名を付けるだけで済みます。
これは次のコマンドで実行できます:
```
--rendertiddler ReadMe ./readme.md text/html
```
ReadMe Tiddlerを`text/html`形式でファイル`./readme.md`に保存します。
デフォルトでは、Tiddlerのリンクは、Tiddlerのタイトルで構成される相対URIへのリンクとしてレンダリングされます。この動作は、ReadMe Tiddlerの先頭で行われているように、マクロ`tv-wikilink-template`を定義することで上書きできます
```
\define tv-wikilink-template() https://tiddlywiki.com/static/$uri_doubleencoded$.html
```
詳細については、LinkWidgetを参照してください。
この例では、Tiddlerのリンクはtw5.comの静的レンダリングへのリンクとしてレンダリングされます。

View File

@@ -0,0 +1,16 @@
created: 20140613133627669
modified: 20241230102718926
original-modified: 20140912141613393
tags: [[TiddlyWiki on Node.js]]
title: Using a custom path prefix with the client-server edition
ja-title: クライアント-サーバーエディションでカスタムのパスプレフィックスを使用する
type: text/vnd.tiddlywiki
デフォルトでは、[[Node.js上のTiddlyWiki|TiddlyWiki on Node.js]]を実行すると、サーバーはプロトコル、ホスト、ポートから形成されたURI - 例えば、`http://127.0.0.1:8080/`でWikiを公開します。
`http://127.0.0.1:8080/path/to/my/wiki/`のようなカスタムパスでWikiを実行するには、2つの手順があります:
# ServerCommandの''pathprefix''属性として`/path/to/my/wiki`を渡してサーバーを設定します
# `$protocol$//$host$/path/to/my/wiki/`を含む、`$:/config/tiddlyweb/host`というTiddlerを作成してクライアントを設定します

View File

@@ -0,0 +1,14 @@
caption: Castellano (España)
created: 20160511155557372
list-before: Deutsch (Deutschland) Edition
modified: 20241221105234901
original-modified: 20160511160224223
tags: Languages
title: Edición en Castellano
ja-title: スペイン語版
type: text/vnd.tiddlywiki
La edición española de ~TiddlyWiki se encuentra aquí:
* ''Documentación'' : https://tiddlywiki.com/languages/es-ES/index.html
* ''~TiddlyWiki en blanco'' : https://tiddlywiki.com/languages/es-ES/empty.html

View File

@@ -0,0 +1,15 @@
caption: 中文 (简体)
created: 20140919215640174
modified: 20241221104728318
original-modified: 20140920030246450
tags: Languages
title: Chinese (Simplified) Edition
ja-title: 中国語(簡体字)版
type: text/vnd.tiddlywiki
TiddlyWiki 的简体中文翻译版本:
<!-- * ''文件'': https://tiddlywiki.com/languages/zh-Hans/index.html -->
* ''空白版本'': https://tiddlywiki.com/languages/zh-Hans/empty.html
另请参阅 [[中文 (正體) 版|Chinese (Traditional) Edition]]。

View File

@@ -0,0 +1,15 @@
caption: 中文 (正體)
created: 20140919215743298
modified: 20241221104801318
original-modified: 20140920030246450
tags: Languages
title: Chinese (Traditional) Edition
ja-title: 中国語(繁体字)版
type: text/vnd.tiddlywiki
TiddlyWiki 的正體中文翻譯版本:
<!-- * ''文件'': https://tiddlywiki.com/languages/zh-Hant/index.html -->
* ''空白版本'': https://tiddlywiki.com/languages/zh-Hant/empty.html
另請參閱 [[中文 (简体) 版|Chinese (Simplified) Edition]]。

View File

@@ -0,0 +1,13 @@
created: 20140919215540827
modified: 20241221105647964
original-modified: 20141123162938012
tags: Languages
caption: Français (France)
title: Édition en Français (France)
ja-title: フランス語版
type: text/vnd.tiddlywiki
La traduction en Français (France) de TiddlyWiki démarre ici :
* ''documentation'' : https://tiddlywiki.com/languages/fr-FR/index.html
* ''empty'' : https://tiddlywiki.com/languages/fr-FR/empty.html

View File

@@ -0,0 +1,15 @@
created: 20140919214900580
modified: 20241221105339061
original-modified: 20140919215900428
tags: Languages
caption: Deutsch (Österreich)
title: Deutsch (Österreich) Edition
ja-title: オーストリア語版
type: text/vnd.tiddlywiki
Die österreichische Übersetzung von TiddlyWiki ist verfügbar unter:
* ''Dokumentation'': https://tiddlywiki.com/languages/de-AT/index.html
* ''Leer'': https://tiddlywiki.com/languages/de-AT/empty.html
Siehe auch: [[Deutsch (Deutschland) Edition|ドイツ語版]].

View File

@@ -0,0 +1,15 @@
created: 20140919215410238
modified: 20241221105310877
original-modified: 20140919215851101
tags: Languages
caption: Deutsch (Deutschland)
title: Deutsch (Deutschland) Edition
ja-title: ドイツ語版
type: text/vnd.tiddlywiki
Die deutsche Übersetzung von TiddlyWiki ist verfügbar unter:
* ''Dokumentation'': https://tiddlywiki.com/languages/de-DE/index.html
* ''Leer'': https://tiddlywiki.com/languages/de-DE/empty.html
Siehe auch: [[Deutsch (Österreich) Edition|オーストリア語版]].

View File

@@ -0,0 +1,13 @@
caption: 日本語 (日本国)
created: 20201227004927059
modified: 20241224112824830
original-modified: 20241224112736358
tags: Languages
title: Japanese (Japan) Edition
ja-title: 日本語版
type: text/vnd.tiddlywiki
TiddlyWikiの日本語バージョンはこちら:
* ''ドキュメント'' : https://tiddlywiki.com/languages/ja-JP/index.html
* ''空白のコピー'' : https://tiddlywiki.com/languages/ja-JP/empty.html

View File

@@ -0,0 +1,13 @@
caption: 한국어 (대한민국)
created: 20160424113322330
modified: 20241221105737475
original-modified: 20160424113322330
tags: Languages
title: Korean (Korea Republic) Edition
ja-title: 韓国語版
type: text/vnd.tiddlywiki
티들리위키 한국어 번역은 다음에서 사용할 수 있습니다:
<!--* ''설명문서'' : https://tiddlywiki.com/languages/ko-KR/index.html-->
* ''빈 위키'' : https://tiddlywiki.com/languages/ko-KR/empty.html

View File

@@ -0,0 +1,19 @@
created: 20141202125500000
modified: 20241221104605323
original-modified: 20160617101222113
tags: TableOfContents
title: Languages
ja-title: 言語
type: text/vnd.tiddlywiki
!! 言語プラグイン
TiddlyWikiのコアユーザーインターフェイスは20以上の言語で利用できます。[[プラグインライブラリからプラグインをインストールする|Installing a plugin from the plugin library]]の手順に従って、言語プラグインをインストールできます。サイドバーの"ツール"タブにある"言語"ボタンを使用して、表示する言語を変更できます。
[[TiddlyWiki を母国語に翻訳する|Translate TiddlyWiki into your language]]方法を学ぶことで、ライブラリに新しい言語を提供できます。
!! 言語エディション
一部の言語については、追加の翻訳ドキュメントを備えた、ビルド済みエディションがあります。
<<list-links "[tag[Languages]]">>

View File

@@ -0,0 +1,27 @@
created: 20131129094452285
modified: 20241227110457591
original-modified: 20140912141658212
tags: [[TiddlyWiki on Node.js]]
title: Building TiddlyWikiClassic
ja-title: TiddlyWikiClassicの構築
type: text/vnd.tiddlywiki
TiddlyWiki5を使用すれば、TiddlyWikiClassicの古いバージョン2.xxをその構成コンポーネントから構築できます。これには次の機能が含まれます:
* `tiddlywiki/classictools`プラグインには、TiddlyWiki 2.xxの`.recipe`ファイルからTiddlerをロードできるようにするデシリアライザモジュールが含まれています
* ViewWidgetのための`stripcomments`フォーマットは、`//#`で始まる1行のJavaScriptコメントを削除します
* FieldsWidgetの`stripTitlePrefix='yes'`属性は、`title`属性から中括弧で囲まれたプレフィックスを削除します
** 例えば、`{tiddler}HelloThere`は、`HelloThere`に変換されます
! 使用法
TiddlyWikiClassicは、[[Node.js上のTiddlyWiki|TiddlyWiki on Node.js]]を実行することによってコマンドラインから構築されます。一般的な使用法は次のようになります:
```
node ../../tiddlywiki.js \
--verbose \
--load <path_to_recipe_file> \
--rendertiddler $:/core/templates/tiddlywiki2.template.html <path_to_write_index_file> text/plain \
|| exit 1
```

View File

@@ -0,0 +1,58 @@
created: 20160424181300000
modified: 20241230104855826
original-modified: 20210803204659026
tags: [[TiddlyWiki on Node.js]]
title: Customising Tiddler File Naming
ja-title: Tiddlerファイル名のカスタマイズ
type: text/vnd.tiddlywiki
デフォルトでは、[[Wikiフォルダー|TiddlyWikiFolders]]を使用する[[Node.js上のTiddlyWiki|TiddlyWiki on Node.js]]インスタンスは、サニタイズされ、曖昧さが解消されたタイトルをファイル名として使用して、新しいTiddlerファイルを作成します。すべてのファイルパス操作は、`default-tiddler-location`からの相対で、デフォルトではWikiフォルダーの`tiddlers/`ディレクトリです。`config`オブジェクトの`default-tiddler-location`プロパティを使用して、Wikiのtiddlywiki.infoファイル内のパスをマッピングすることで、これを上書きできます。
デフォルトのファイル拡張子`.tid`は、`type`フィールドが欠落しているTiddlerや、"text/vnd.tiddlywiki"タイプが"text/vnd.tiddlywiki"のTiddlerに使用されます。他のタイプのTiddlerは、(ブートスタートアップ時に定義される)MIMEタイプに従って保存されます。
オプションのTiddler[[$:/config/FileSystemPaths]]と[[$:/config/FileSystemExtensions]]を作成することにより、論理パス(ディレクトリとファイル名)とファイル拡張子を個別にカスタマイズできます。
! ファイルシステムパス
論理パスは、1つ以上の[[フィルター式|Filter Syntax]](各フィルター式は1行に1つずつ)を含む[[$:/config/FileSystemPaths]] Tiddlerを作成することでカスタマイズできます。Tiddlerがディスクに保存されるたびに、各フィルターが順番にテストされ、出力を生成する最初のフィルターの最初の出力が、Tiddlerファイルに使用される論理パスとして取得されます。論理パスが変更された場合は、新しいファイルが作成され、古いファイルは削除されます。
Tiddlerは、[[Wikiフォルダ|TiddlyWikiFolders]]、`default-tiddler-location`設定で定義されたパス、または $:/config/OriginalTiddlerPaths Tiddlerに保存された特定のパス([[tiddlywiki.filesファイル|tiddlywiki.files Files]]を参照)にのみ書き込むことができます。Tiddlerをディスクに保存するときに、論理パスがWikiフォルダのパスで始まらない(最も一般的なエラー)と、ファイルパスがJavascriptの`encodeURIComponent()`メソッドによってエンコードされ、Wikiフォルダの`default-tiddler-location`にTiddlerがファイルとして保存されます。
論理パスにはディスク上のファイルの拡張子は含まれません(下記参照)。また、ディレクトリ区切り文字として`/`や`\`を使用できます(物理パスを生成するときに、~TiddlyWikiが動作しているプラットフォームの正しい区切り文字に置き換えられます)。フィルターがどれも一致しない場合、論理パスは、結果のパスがすべてのサポートされているプラ​​ットフォームで有効であることを保証するため、すべての`/\<>~:"|?*^`文字が`_`に置き換えられたタイトルになります。論理パスも200文字に制限されています。この名前のファイルがすでに存在する場合、スペースと数字が最終的なファイルパスに追加され、未使用のパスが見つかるまで数字が増加していきます。
!! 例
```
[is[system]!has[draft.of]removeprefix[$:/]addprefix[_system/]]
[is[draft]search-replace:g:regexp[/|\\],[_]addprefix[drafts/]]
[tag[task]addprefix[mytasks/]]
[!tag[externalnote]addprefix[wiki/]]
```
<<.note "すべてのパスはWikiの`default-tiddler-location`からの相対パスです。">>
これにより、他のTiddlerの下書きではない、新しく作成されたシステムTiddlerが`./_system/`(`$:/`プレフィックスの削除後)に保存されます。次に、すべての下書きのタイトルのパス区切り文字が"_"に置き換えられ、`./drafts/`に保存されます。そして、[[task]]タグが付けられたTiddlerがサブディレクトリ`./mytasks/`に保存されます。最後に、"externalnote"タグが付けられていないすべてのTiddlerが最終的に`[!tag[externalnote]addprefix[wiki/]]`に一致し、これらが`./wiki/`に保存されます。この例では、"externalnote"タグが付けられたTiddlerが[[tiddlywiki.filesファイル|tiddlywiki.files Files]]を使用してインポートされています。"isEditableFile"フラグがtrueに設定されているファイルにより、サーバーは$:/config/OriginalTiddlerPaths Tiddlerに元のファイルパスを記憶します。
Tiddlerが $:/config/FileSystemPaths フィルターのマッチを生成するたびに、Tiddlerのタイトル内の`/`や`\`がパス区切り文字にマップされます。上記のフィルターを使用すると、非システム、非ドラフトのTillder(タグなし)`some/thing/entirely/new`が`./wiki/some/thing/entirely/new.tid`に保存されます(つまり、`entirely/`というディレクトリ内の`new.tid`ファイル)。したがって、プラットフォームに応じて、 $:/config/FileSystemPaths 自体は`./_system/config/FileSystemPaths.tid`や`.\_system\config\FileSystemPaths.tid`に保存されます。
! ファイルシステム拡張子
通常、ディスク上のTiddlerのファイルシステム拡張子は、改行を含むフィールド値や空白で始まるか終わる(テキストフィールド以外の)フィールド値の存在によって決定されます。この場合、単一ファイル".json" Tiddlerファイル形式が使用されます。
Tiddlerにこのようなフィールド値がない場合、`type`フィールドが参照され、一致するファイルタイプが検索されます。タイプ値のないTiddlerの場合は`.tid`が使用されます。ブートエンジンは、[[$:/boot/boot.js]] Tiddlerで、Tiddlerタイプとファイルタイプの関係のセットを定義します。これらの関係を定義するコードのセクションを見つけるには、`// Add file extension information`を検索してください。
個々のTiddlerのファイル拡張子は、1つ以上の[[フィルタ式|Filter Syntax]](各行に1つずつ)を含むTiddler[[$:/config/FileSystemExtensions]]を作成することでカスタマイズできます。Tiddlerがディスクに保存されるたびに、これらのフィルタに対してテストされ、出力を生成する最初のフィルタの最初の出力が、Tiddlerファイルに使用されるファイル拡張子として使用されます。拡張子は常に先頭にドットを付ける必要があります(例を参照)。一致するフィルタがない場合は、デフォルトの拡張子が使用されます。拡張子が変更された場合は、新しいファイルが作成され、古いファイルは削除されます。
<<.note """".tid"の結果は、Tiddlerを単一ファイルのテキストTiddlerとしてディスクに書き込むことを強制します。".json"の結果は、Tiddlerをjson形式(配列内の単一のTiddler フィールドオブジェクト)の単一ファイルTiddlerとしてディスクに書き込むことを強制します。"application/json"タイプのTiddlerとしては書き込まれません。認識されるその他のすべてのファイルタイプは、定義された拡張子を使用して保存され、"text"フィールド以外のすべてのフィールドを説明する同じ名前の *.meta ファイルが付随します。""">>
!! 例
```
[tag[.txt]then[.txt]]
[tag[.json]then[.json]]
[tag[.tid]then[.tid]]
```
これにより、タグ".txt"を持つすべてのTiddlerが、ファイルシステムのパスフィルターによって決定されたファイルパスに保存されますが、テキストフィールドは *.txt ファイルとして保存され、その他のすべてのフィールドは *.txt.meta ファイルとして保存されます。
次に、".json"タグを持つすべてのTiddlerが *.json ファイルとして保存されます。最後に、タグ".tid"を持つすべてのTiddlerが単一のファイルとして保存されます。Tiddlerがどのフィルターにも一致しない場合は、Tiddlerの`type`フィールドによって決定されるデフォルトの拡張子が使用されます。

View File

@@ -0,0 +1,27 @@
created: 20140617211749290
modified: 20250120104354585
original-modified: 20220613114121229
tags: [[TiddlyWiki on Node.js]]
title: Environment Variables on Node.js
ja-title: Node.jsの環境変数
type: text/vnd.tiddlywiki
[[Node.js上のTiddlyWiki|TiddlyWiki on Node.js]]は、プラグインとエディションを検索するためのパスの区切りリストを指定するために、次のOS環境変数をサポートしています:
* `TIDDLYWIKI_PLUGIN_PATH` - 通常のプラグインの検索パス
* `TIDDLYWIKI_THEME_PATH` - テーマの検索パス
* `TIDDLYWIKI_LANGUAGE_PATH` - 言語の検索パス
* `TIDDLYWIKI_EDITION_PATH` - エディションの検索パス (InitCommandによって使用される)
<$macrocall $name=".note" _="""''1.'' 区切り文字はオペレーティングシステムによって異なる場合があります。Windowsではセミコロン`;`が使用されますが、Linux ではコロン`:`が使用されます。<br><br>''2.'' Linuxシステムでは、変数を定義するだけでなく//''export''//する必要もあります。
"""/>
追加のパスはそれぞれ、~TiddlyWiki5 GitHubリポジトリの同等のディレクトリのように、構造化されたフォルダを指す必要があります: プラグイン、テーマ、言語のディレクトリには`publisher/pluginname/<files>`が含まれ、エディションのディレクトリには`editionname/<files>`が含まれます
例:
```
export TIDDLYWIKI_PLUGIN_PATH=~/MyPluginStore
tiddlywiki mywiki --build index
```

View File

@@ -0,0 +1,16 @@
created: 20150926162849519
modified: 20241228110350676
original-modified: 20191022095509822
tags: [[TiddlyWiki on Node.js]]
title: Installing TiddlyWiki Prerelease on Node.js
ja-title: Node.jsにTiddlyWikiプレリリースをインストールする
type: text/vnd.tiddlywiki
# https://github.com/TiddlyWiki/TiddlyWiki5 からTiddlyWiki5 GitHubリポジトリのローカルコピーをクローンします
# コマンドラインターミナルを開き、現在の作業ディレクトリをTiddlyWiki5リポジトリのルートに変更します
# `npm link` (Windows) または `sudo npm link` (Mac/Linux) と入力して、[[npm]]にこのリポジトリのコピーをグローバルにインストールされたものとして使用するように指示します
# ルート内で、次のようにして~TiddlyWikiを起動できます: <br/>``tiddlywiki editions/tw5.com-server --listen``
この手順を実行すると、通常の方法`npm install -g tiddlywiki`でインストールした場合と同じように、[[npm]]経由でTiddlyWiki5を操作できるようになります。
最新のコードを確実に取得するために、クローンを定期的に更新してください。

View File

@@ -0,0 +1,23 @@
created: 20191022095653896
modified: 20250122105447127
original-modified: 20220617130125173
tags: [[TiddlyWiki on Node.js]] PluginsCS
title: Installing custom plugins on Node.js
ja-title: Node.jsにカスタムプラグインをインストールする
type: text/vnd.tiddlywiki
\rules except wikilink
! 紹介
Node.jsクライアントサーバー構成でTiddlyWikiを使用する場合、公式プラグインとカスタムプラグインをインストールするにはいくつかの方法があります。
注記
<$macrocall $name=".note" _="""ライブラリから単一ファイルWikiにプラグインをインストールする手順については、[[プラグイン|Plugins]]で詳細を確認してください。
"""/>
!! プラグインのロード順序
{{Plugin Ordering}}

View File

@@ -0,0 +1,41 @@
created: 20220611123344385
modified: 20250123113223702
original-modified: 20220617132351460
tags: [[TiddlyWiki on Node.js]] PluginsCS
title: Installing official plugins on Node.js
ja-title: Node.jsに公式プラグインをインストールする
type: text/vnd.tiddlywiki
クライアント-サーバーNode.js構成でTiddlyWikiを使用する場合は、次の手順に従ってください:
# <<controlPanel-plugin-link>>の''プラグイン''タブを使用してインストールするプラグインを特定します。(ただし、ここからプラグインをインストール''しないで''ください)
#* プラグインは、その種類(言語、テーマ、プラグイン)と発行元、タイトルによって識別されます。たとえば、`$:/plugins/tiddlywiki/internals`プラグインは''tiddlywiki/internals''として参照されます
# サーバーが実行中の場合は終了します
# `tiddlywiki.info`ファイル(JSON形式)を編集し、`plugins`、`themes`、`languages`セクションを見つけます(下記参照)
# 追加したいプラグインに対応するエントリを追加します
#* 項目を区切る''カンマ''を残すように注意してください
#* リストの最後の項目をコンマで終わらせ''ないで''ください
# サーバーを再起動します
```
{
"plugins": [
"tiddlywiki/codemirror"
],
"themes": [
"tiddlywiki/vanilla",
"tiddlywiki/snowwhite"
],
"languages": [
"es-ES",
"fr-FR",
"en-EN"
]
}
```
<$macrocall $name=".note" _="プラグインの操作の概要については、[[プラグイン|Plugins]]を参照してください。<br>また、[[Node.jsにカスタムプラグインをインストールする|Installing custom plugins on Node.js]]も参照してください。"/>

View File

@@ -0,0 +1,52 @@
created: 20131219100637788
modified: 20250124112753177
original-modified: 20141015165343893
tags: [[TiddlyWiki on Node.js]]
title: Scripts for TiddlyWiki on Node.js
ja-title: Node.js上のTiddlyWiki用スクリプト
type: text/vnd.tiddlywiki
! スクリプトファイル
TiddlyWiki5リポジトリの`bin`フォルダーには、共通のタスクを自動化したり、独自のスクリプトの便利な開始点として使用したりできるスクリプトがいくつか含まれています。https://tiddlywiki.com/ の構築とリリースに使用されるスクリプトの詳細については、[[Scripts for building tiddlywiki.com]]を参照してください。
すべてのスクリプトは、リポジトリのルートフォルダーから実行されることを想定しています。
!! `serve`: tw5.comを提供する
```
./bin/serve.sh -h
./bin/serve.sh [edition dir] [username] [password] [host] [port]
```
または:
```
./bin/serve.cmd -h
./bin/serve.cmd [edition dir] [username] [password] [host] [port]
```
このスクリプトは、TiddlyWiki5をHTTPサーバーとして実行し、`tw5.com-server`エディションのコンテンツをデフォルトにします。デフォルトでは、Node.jsは8080ポート でサービスを提供します。オプションの`username`パラメータが指定されている場合は、編集の署名に使用されます。`password`が指定されている場合は、HTTP基本認証が使用されます。`-h`パラメータを指定してスクリプトを実行すると、オンラインヘルプが表示されます。
この構成を試すには、スクリプトを実行してからブラウザで`http://127.0.0.1:8080`にアクセスしてください。
ブラウザで行われた変更は、HTTP経由でサーバーに伝えられます(これらのリクエストを確認するには、ブラウザ開発者コンソールを使用します)。その後、サーバーは変更をファイルシステムに同期します(各変更をスクリーンに記録します)。
!! `test`: テストをビルドして実行する
This script runs the `test` edition of TiddlyWiki on the server to perform the server-side tests and to build `test.html` for running the tests in the browser.
このスクリプトは、サーバー側のテストを実行し、ブラウザでテストを実行するために、`test.html`をビルドし、サーバー上でTiddlyWikiの`test`のエディションを実行します。
!! `lazy`: tw5.comを遅延読み込み画像で提供する
```
./bin/lazy.sh <username> [<password>]
```
または:
```
./bin/lazy.cmd <username> [<password>]
```
このスクリプトは、画像に[[遅延読み込み|LazyLoading]]を適用して`tw5.com-server`エディションコンテンツを提供します。

View File

@@ -0,0 +1,24 @@
created: 20131129094353704
modified: 20241227105025118
original-modified: 20220617114433107
tags: Platforms
title: TiddlyWiki on Node.js
ja-title: Node.js上のTiddlyWiki
type: text/vnd.tiddlywiki
\rules except wikilink
[[Node.js]]でTiddlyWikiを実行すると、単一ファイルバージョンに比べていくつかの重要な利点が得られます:
* 個々のTiddlerは別々のファイルに保存され、必要に応じて整理できます。
* 共有コンテンツと独自コンテンツのさまざまな組み合わせをブレンドした複数のWikiを構築する機能
* スマートフォンやタブレットを含むあらゆる最新ブラウザでコンテンツを編集できます
<<.warning """Node.js上のTiddlyWikiは現在、実行中にファイルシステム経由でTiddlerファイルを直接変更することをサポートしていないことに注意してください。変更を有効にするには、サーバーを再起動する必要があります。実行中の Wikiを編集するには、HTTPやJavaScript APIを使用することをお勧めします。""">>
詳細については、以下を参照してください:
<<list-links "[tag[TiddlyWiki on Node.js]]">>

View File

@@ -0,0 +1,33 @@
created: 20220611125113040
modified: 20250204103637098
original-modified: 20220617133704286
tags: [[TiddlyWiki on Node.js]] PluginsCS
title: Uninstalling a plugin with Node.js
ja-title: Node.jsでプラグインをアンインストールする
type: text/vnd.tiddlywiki
クライアント-サーバー Node.js構成でTiddlyWikiを使用する場合は、次の手順に従ってください:
# サーバーが実行中の場合は終了します
# `tiddlywiki.info`ファイル(JSON形式)を編集し、`plugins`と`themes`セクションを見つけます(下記参照)
# 削除したいプラグインに対応するエントリを削除します
#* 項目を区切る''カンマ''を残すように注意してください
#* リストの最後の項目をコンマで終わらせ''ない''でください
# サーバーを再起動します
```
{
"plugins": [
"tiddlywiki/codemirror"
],
"themes": [
"tiddlywiki/vanilla",
"tiddlywiki/snowwhite"
]
}
```
<$macrocall $name=".note" _="プラグインの操作方法の概要については、[[プラグイン|Plugins]]で確認できます"/>

View File

@@ -0,0 +1,19 @@
created: 20131219100544073
modified: 20241228112745930
original-modified: 20140912141800426
tags: [[TiddlyWiki on Node.js]]
title: Upgrading TiddlyWiki on Node.js
ja-title: Node.js上のTiddlyWikiのアップグレード
type: text/vnd.tiddlywiki
通常の方法で[[Node.js上のTiddlyWiki|TiddlyWiki on Node.js]]をインストールした場合、新しいバージョンがリリースされたときに、次のコマンドでアップグレードできます:
```
npm update -g tiddlywiki
```
MacやLinuxでは、次のように''sudo''を追加する必要があります:
```
sudo npm update -g tiddlywiki
```

View File

@@ -0,0 +1,43 @@
created: 20131219100520659
modified: 20250206101730728
original-modified: 20241025051303991
tags: [[TiddlyWiki on Node.js]]
title: Using TiddlyWiki on Node.js
ja-title: Node.jsでTiddlyWikiを使用する
type: text/vnd.tiddlywiki
~TiddlyWiki5には、[[TiddlyWikiフォルダ|TiddlyWikiFolders]]、[[Tiddlerファイル|TiddlerFiles]]に基づいて広範な操作を実行するためにコマンドラインで使用するコマンドセットが含まれています。
たとえば、次のコマンドは、~TiddlyWiki HTMLファイルからTiddlerを読み込み、そのうちの1つを静的HTMLに保存します:
```
tiddlywiki --verbose --load mywiki.html --render ReadMe ./readme.html
```
コマンドラインから`tiddlywiki`を実行すると、~TiddlyWikiカーネルが起動し、コアプラグインがロードされ、空のWikiストアが確立されます。次に、コマンドライン引数を左から右に順番に処理します。引数はスペースで区切られます。
<<.from-version "5.1.20">> まず、プレフィックス`+`で始まるプラグイン名や、`++`で始まるプラグインフォルダーへのパスによって識別される0個以上のプラグイン参照が存在する可能性があります。これらのプラグインは、[[TiddlyWikiフォルダ|TiddlyWikiFolders]]で指定されたプラグインに加えてロードされます。
次の引数は、ロードする[[TiddlyWikiフォルダ|TiddlyWikiFolders]]へのオプションのパスです。存在しない場合は、現在のディレクトリが使用されます。
コマンドとそれぞれの引数は以下のように示されます。各コマンドはプレフィックス`--`で識別されます。
```
tiddlywiki [+<pluginname> | ++<pluginpath>] [<wikipath>] [--<command> [<arg>[,<arg>]]]
```
例えば:
```
tiddlywiki --version
tiddlywiki +plugins/tiddlywiki/filesystem +plugins/tiddlywiki/tiddlyweb mywiki --listen
tiddlywiki ++./mygreatplugin mywiki --listen
```
<<.from-version "5.1.18">> 多数のパラメータをサポートするListenCommandなどのコマンドでは、[[名前付きコマンドパラメータ|NamedCommandParameters]]を使用して扱いやすくすることができます。例:
```
tiddlywiki wikipath --listen username=jeremy port=8090
```
使用可能なコマンドの完全なリストについては、[[コマンド|Commands]]を参照してください。

View File

@@ -0,0 +1,25 @@
created: 20131219100444289
modified: 20250206103847601
original-modified: 20140920134404247
tags: [[TiddlyWiki on Node.js]]
title: Working with the TiddlyWiki5 repository
ja-title: TiddlyWiki5リポジトリの操作
type: text/vnd.tiddlywiki
! 紹介
TiddlyWikiの開発に[[貢献|Contributing]]したい場合は、[[通常の方法でTiddlyWikiをインストールする|Installing TiddlyWiki on Node.js]]のではなく、GitHubリポジトリを直接動かすことができます。
Mario Pietschが[[短い紹介動画|Working with the TiddlyWiki5 repository video]]を作成しました。
! セットアップ
# GitHubのアカウントをお持ちでない場合は、アカウントを作成してください
# https://github.com/TiddlyWiki/TiddlyWiki5 からTiddlyWiki5 GitHubリポジトリをフォークします
# フォークのローカルコピーをクローンします
# コマンドラインターミナルを開き、現在の作業ディレクトリをリポジトリのルートに変更します
# `npm link` (Windows)か`sudo npm link` (Mac/Linux)と入力して、[[npm]]にこのリポジトリのコピーをグローバルにインストールされたものとして使用するように指示します
この手順を実行すると、`npm install -g tiddlywiki`による通常の方法でインストールした場合と同じように、[[npm]]経由でTiddlyWiki5を操作できるようになります。
[[Node.js上のTiddlyWiki用スクリプト|Scripts for TiddlyWiki on Node.js]]も参照してください。

View File

@@ -0,0 +1,172 @@
created: 20161015114118243
modified: 20250201104758596
original-modified: 20211114101256212
tags: TiddlyWikiFolders [[TiddlyWiki on Node.js]]
title: tiddlywiki.files Files
ja-title: tiddlywiki.filesファイル
type: text/vnd.tiddlywiki
! 紹介
[[TiddlyWikiフォルダ|TiddlyWikiFolders]]内のサブフォルダーにあるJSONファイル`tiddlywiki.files`は、フォルダーを再帰的にスキャンしてTiddlerファイルを探す通常のロジックをオーバーライドします。代わりに、`tiddlywiki.files`ファイルは特定のファイルとフォルダーからTiddlerをロードするための指示を指定します。
ファイルの形式は、2つのオプションプロパティを持つオブジェクトです:
* ''tiddlers'' - ファイルから読み取ったフィールドを上書きや変更する機能を持つ外部ファイルを記述するオブジェクトの配列
* ''directories'' - 外部ディレクトリを記述するオブジェクトの配列、それらのディレクトリ内のどのファイルを処理すべきかを決定するフィルターと、ファイルから読み取ったフィールドのいずれかを上書きや変更する機能
`tiddlywiki.files`の処理に大幅な機能強化が[[リリース 5.1.14|Release 5.1.14]]で導入されたことに注意してください。
!! フィールドのオーバーライド
`tiddlywiki.files`ファイルの''tiddlers''セクションと''directories''セクションの両方に、`fields`オブジェクトを使用してフィールドの値を上書きやカスタマイズする機能が含まれています。
各フィールドは、フィールドに直接割り当てられる''文字列''や''配列''値として指定することも、<<.from-version "5.1.14">>フィールドの値を生成する方法を説明する''オブジェクト''として指定することもできます。オブジェクトには次のプロパティが含まれます:
* ''source'' - (オプション) フィールドのソース値を指定する文字列。指定しない場合は、既存の値が使用されます
** //filename// Tiddlerを含むファイルのファイル名
** //filename-uri-decoded// [[URIデコード|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent]]を適用した、Tiddlerを含むファイルのファイル名
** //basename// 拡張子なしのTiddlerを含むファイルのファイル名
** //basename-uri-decoded// [[URIデコード|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent]]を適用した、拡張子なしのTiddlerを含むファイルのファイル名
** //extname// Tiddlerを含むファイル名の拡張子
** //created// Tiddlerを含むファイルの作成日時
** //modified// Tiddlerを含むファイルの更新日時
** <<.from-version "5.3.0">> //filepath// ディレクトリの''path''プロパティを基準とした、Tiddlerを含むファイルのパス(''directories''宣言でのみ使用可能)
** <<.from-version "5.3.0">> //subdirectories// ディレクトリの''path''プロパティを基準とした、ファイルの相対パス内のサブディレクトリの配列(''directories''宣言でのみ使用可能)
* ''prefix'' - (オプション) フィールドの値の先頭に追加する文字列
* ''suffix'' - (オプション) フィールドの値の末尾に追加する文字列
! Tiddlersセクション
`tiddlers`配列内のファイルの仕様は、次のプロパティをサポートします:
* ''file'': (必須) Tiddlerデータを含むファイルへの絶対パスまたは相対パス (相対パスは`tiddlywiki.files`ファイルのパスを基準とします)
* ''isTiddlerFile'': (オプション) `true`の場合、ファイルは[[tiddlerファイル|TiddlerFiles]]として扱われ、Tiddlerを抽出するためにデシリアライズされます。それ以外の場合は、ファイルの生のコンテンツが解析されずに`text`フィールドに割り当てられます
* ''fields'': (オプション) Tiddlerファイルで提供されるフィールドを上書きやカスタマイズする値を含むオブジェクト (上記を参照)
* ''prefix''と''suffix'': (オプション) Tiddlerの`text`フィールドにプレフィックスとサフィックスとして付加される文字列
*> ''prefix''を指定することは、''fields''オブジェクトの`text`のフィールドを`{"prefix":"<prefixvalue>"}`に設定することと同じであることに注意してください。
! Directoriesセクション
`directories`配列内のディレクトリの仕様は次の形式を取ることができます:
* Tiddlerファイルを含むディレクトリへの絶対パスか相対パスを指定する、''string''リテラル(相対パスは`tiddlywiki.files`ファイルのパスを基準として解釈されます)。Tiddlerファイルはディレクトリを再帰的に検索されます
* <<.from-version "5.1.14">> 次のプロパティを持つ''object'':
** ''path'' - (必須) Tiddlerファイルを含むディレクトリへの絶対パスか相対パス(相対パスは`tiddlywiki.files`ファイルのパスを基準として解釈されます)。デフォルトではディレクトリは再帰的に検索されないことに注意してください。//searchSubdirectories//フラグが`true`に設定されていない限り、サブディレクトリは無視されます(以下を参照)。
** ''filesRegExp'' - (オプション) ディレクトリ内で処理するファイルのファイル名に一致する[[正規表現|https://developer.mozilla.org/en/docs/Web/JavaScript/Guide/Regular_Expressions]]
** ''isTiddlerFile'' - (必須) `true`の場合、ファイルは[[Tiddlerファイル|TiddlerFiles]]として扱われ、Tiddlerを抽出するためにデシリアライズされます。それ以外の場合、ファイルの生のコンテンツが解析されずに`text`フィールドに割り当てられます
** ''isEditableFile'' - <<.from-version "5.1.23">> (オプション) `true`の場合、Tiddlerへの変更は元のファイルに保存されます。Tiddlerは、$:/config/FileSystemPathフィルターから結果が生成されない限り、元のファイルパスに保存されます。フィルターから結果が返された場合、生成された最終的なファイルパスが上書きされます。
** ''searchSubdirectories'' - <<.from-version "5.1.23">> (オプション) `true`の場合、//path//のすべてのサブディレクトリで(オプションの)//filesRegExp//に一致するファイルが再帰的に検索されます。//filesRegExp//が指定されていない場合は、//path//のすべてのサブディレクトリ内のすべてのファイルがロードされます。//source//属性の//filename//(上記を参照)によって生成されたTiddlerタイトルにはファイル名のみが含まれ、パスのサブディレクトリは含まれません。この結果、同じTiddlerタイトルでロードされた複数のファイルが存在する場合、そのTiddlerタイトルでロードされた最後のファイルのみがメモリに格納されます。これを防ぐには、//filename//の代わりに//filepath//属性を使用できます。または、複数のディレクトリオブジェクトを含め、//source//属性とともに//prefix//または//suffix//を使用してタイトルフィールドをカスタマイズすることもできます。
** ''fields'' - (必須) Tiddlerファイルで提供されるフィールドを上書きやカスタマイズする値を含むオブジェクト(上記を参照)
同じ名前にサフィックス`.meta`を加えたファイルを作成することで、特定のファイルのフィールドを上書きすることもできます。 -- TiddlerFilesを参照してください。
! 例
これらの`tiddlywiki.files`の例は、[[Wikiフォルダ|TiddlyWikiFolders]]の独自のサブディレクトリに配置する必要があります。
メインの[[TiddlyWiki 5 GitHub リポジトリ|https://github.com/TiddlyWiki/TiddlyWiki5]]にも`tiddlywiki.files`ファイルの例がいくつかあります。
!! PDFのフォルダをインポートする
この例では、相対パスで指定されたフォルダーから拡張子`.pdf`を持つすべてのファイルを取得します。このパスは"../../../"で始まり、この構成ファイルが格納されているフォルダーの3ディレクトリ階層上を示します。各Tiddlerは、次のフィールドを使用してLazyLoading用にセットアップされています:
* ''title'' - PDFファイルのURIデコードされたベースファイル名を設定。[[URIデコード|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent]]により、"/"などの文字をURIエンコードして"%2F"としてタイトルに含めることができます
* ''created'' - PDFファイルの作成日時を設定
* ''modified'' - PDFファイルの変更日時を設定
* ''type'' - `application/pdf`を設定
* ''tags'' - `$:/tags/AttachedFile`を設定
* ''text'' - 空の文字列を設定
* ''_canonical_uri'' - ファイル名と文字列"pdfs/"を連結した値を設定
```
{
"directories": [
{
"path": "../../../input/pdfs",
"filesRegExp": "^.*\\.pdf$",
"isTiddlerFile": false,
"fields": {
"title": {"source": "basename-uri-decoded"},
"created": {"source": "created"},
"modified": {"source": "modified"},
"type": "application/pdf",
"tags": ["$:/tags/AttachedFile"],
"text": "",
"_canonical_uri": {"source": "filename", "prefix": "pdfs/"}
}
}
]
}
```
!! テキストファイルのフォルダをインポートする
この例では、相対パスで指定されたフォルダから拡張子`.txt`を持つすべてのファイルを取得します。このフォルダはWikiのベースディレクトリ内にあり、現在の構成ファイルはWikiの"tiddlers/"ディレクトリ内のディレクトリにあります。したがって、この場合、パスは"../../"で始まり、2つのディレクトリ階層上に移動し、次に "externalnotes/"ディレクトリまで下ります。各Tiddlerは次のフィールドで設定されます:
* ''title'' - テキストファイルのURIデコードされたベースファイル名を設定します。[[URIデコード|https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent]]により、"/"などの文字をURIエンコードして"%2F"としてタイトルに含めることができます
* ''created'' - テキストファイルの作成日時を設定
* ''modified'' - テキストファイルの変更日時を設定
* ''type'' - `text/plain`を設定
* ''tags'' - `[[note]] [[externalnote]] [[.txt]]`を設定(配列表記を使用)
* ''text'' - 設定されないため、ファイルの内容がテキストフィールドとして読み込まれます
```
{
"directories": [
{
"path": "../../externalnotes",
"filesRegExp": ".+\\.txt",
"isTiddlerFile": false,
"isEditableFile": true,
"fields": {
"title": {"source": "basename-uri-decoded"},
"created": {"source": "created"},
"modified": {"source": "modified"},
"type": "text/plain",
"tags": ["note", "externalnote", ".txt"]
}
}
]
}
```
これにより、`../../externalnotes/`ディレクトリ内のすべてのテキストファイルが個別のTiddlerとしてWikiに読み込まれます。これらは、さまざまなマークアップ言語のスニペットコレクションである可能性があります。次に、これらの各Tiddlerの`type`フィールドを、言語に合わせて変更できます。たとえば、Wikitextの場合は"text/vnd.tiddlywiki"、マークダウンファイルの場合は"text/markdown"です。次に、次の行で$:/config/FileSystemPathsと$:/config/FileSystemExtentions Tiddlerを使用すると、これらのTiddlerへの変更が、開始元のディレクトリに保存され、"*.txt"ファイルとして、"*.txt.meta"ファイルとともに保存されます。これらのメタファイルは必要に応じて生成され、サーバーの再起動時に、`tiddlywiki.files`構成ファイルから生成されたフィールド(Tiddlerの`type`フィールドなど)が上書きされます。
[[Tiddlerファイル名のカスタマイズ|Customising Tiddler File Naming]]の例から、$:/config/FileSystemPaths Tiddler内の最後のフィルター`[!tag[externalnote]addprefix[wiki/]]`は、`externalnotes`でタグ付けされたすべてのTiddler(以前のフィルターに一致しなかったもの)を除外することがわかります。これらのTiddlerのファイルパスは、ブート起動時に生成された$:/config/OriginalTiddlerPathsから取得されます。
次に、$:/config/FileSystemExtensions Tiddler内のフィルター`[tag[.txt]then[.txt]]`により、これらすべてのTiddlerが*.txtおよび付随する*.txt.metaファイルとしてディスクに保存されます(通常のTiddlerタイプとファイルタイプのマッピングを上書きします)。この場合、Tiddlywiki Wikitextやマークダウンテキストのスニペットを"テキスト"(*.txtファイル)に保存できるようになります。
!! 画像のインポートと自動タグ付け
この例では、`files`ディレクトリとそのすべてのサブディレクトリ内のすべての画像ファイルを外部画像Tiddlerとしてインポートし、ファイルパスに基づいてタグ付けします。各Tiddlerには、次のフィールドが設定されます:
* ''title'' - テキストファイルのURIデコードされたベースファイル名を設定
* ''created'' - テキストファイルの作成日時を設定
* ''modified'' - テキストファイルの更新日時を設定
* ''type'' - `image/jpeg`に設定します。現在、ファイルから画像Tiddlerの正しいContentTypeを推測する方法はありませんが、`image/jpeg`Tiddlerはpngやgif画像でも正しくレンダリングされるはずです。代わりに、jpg、png、gifファイルの個別の定義を、`image/jpeg`、`image/png`、`image/gif`タイプをそれぞれ使用して作成することもできます。
* ''tags'' - 親ディレクトリ(この場合は`files`)を基準とした画像の相対パスに基づいて生成されます。たとえば、`files/photos`内の画像には`photos`のタグが付けられ、 `files/photos/family`内の画像には`photos`と`family`両方のタグが付けられ、ルート`files`ディレクトリ内の画像にはタグが付けられません。
* ''text'' - 空の文字列に設定
* ''_canonical_uri'' - Wikiルートを基準とした画像の完全な相対ファイルパスを設定
```
{
"directories": [
{
"path": "../../files/",
"filesRegExp": "^.*\\.(?:jpg|jpeg|png|gif)$",
"isTiddlerFile": false,
"searchSubdirectories": true,
"fields": {
"title": {"source": "basename-uri-decoded"},
"created": {"source": "created"},
"modified": {"source": "modified"},
"type": "image/jpeg",
"tags": { "source": "subdirectories" },
"text": "",
"_canonical_uri": { "source": "filepath", "prefix": "files/" }
}
}
]
}
```

View File

@@ -0,0 +1,60 @@
created: 20161015114042793
modified: 20250201105445142
original-modified: 20241030132156792
tags: TiddlyWikiFolders [[TiddlyWiki on Node.js]]
title: tiddlywiki.info Files
ja-title: tiddlywiki.infoファイル
type: text/vnd.tiddlywiki
[[TiddlyWikiフォルダ|TiddlyWikiFolders]]はWikiフォルダーのルートにある1つの`tiddlywiki.info`ファイルで構成されます。このファイルには、次のプロパティを含むJSONオブジェクトが含まれている必要があります:
* ''plugins'' - Wikiに含めるプラグインの配列
* ''themes'' - Wikiに含めるテーマの配列
* ''languages'' - Wikiに含める言語の配列
* ''includeWikis'' - Wikiに含める外部Wikiフォルダへの参照の配列
* ''build'' - 名前付きビルドターゲットのハッシュマップ。それぞれはコマンドトークンの配列で定義されます(BuildCommandを参照)
* ''config'' - 設定オプションのオプションのハッシュマップ(下記参照)
!!! ''includeWikis''
''includeWikis''配列のエントリは、Wikiへの相対パスを指定する文字列か、次のフィールドを持つオブジェクトのいずれかになります:
* ''path'' - Wikiフォルダへの相対パス
* ''read-only'' - //true//に設定すると、含まれているWiki内のTiddlerが変更されるのを防ぎます。変更は、以下で説明する''default-tiddler-location''で指定されたディレクトリに書き込まれます
!!! ''build''
現在の`tiddlywiki.info`ファイルでその名前のターゲットが定義されていない場合、含まれているWikiのビルドターゲットはマージされることに注意してください。
!!! ''config''
構成オプションには以下が含まれます:
* ''default-tiddler-location'' - ファイルシステムアダプタが新しいTiddlerを保存するためのデフォルトの場所への文字列パス(Wikiフォルダを基準に解決)
* ''retain-original-tiddler-path'' - trueの場合、サーバーはWiki内の各Tiddlerの元のファイルパスを含むティドラー[[$:/config/OriginalTiddlerPaths]]を生成します
!!! 例
例:
```
{
"plugins": [
"tiddlywiki/tiddlyweb",
"tiddlywiki/filesystem"
],
"includeWikis": [
{"path": "../tw5.com", "read-only": true}
],
"build": {
"index": [
"--render","$:/core/save/all","index.html","text/plain"],
"favicon": [
"--save", "$:/favicon.ico", "favicon.ico",
"--save", "$:/green_favicon.ico", "static/favicon.ico"]
},
"config": {
"retain-original-tiddler-path": true
}
}
```

View File

@@ -0,0 +1,12 @@
created: 20150412185300152
modified: 20241227104147434
original-modified: 20150412185427211
tags: TableOfContents
title: Platforms
ja-title: プラットフォーム
type: text/vnd.tiddlywiki
TiddlyWikiはいくつかのプラットフォームで使用できます:
<<list-links "[tag[Platforms]]">>

View File

@@ -0,0 +1,12 @@
created: 20170703193252423
modified: 20241222101154614
original-modified: 20170703193353918
tags: OfficialPlugins
title: Amazon Web Services Plugin
ja-title: アマゾンウェブサービスプラグイン
type: text/vnd.tiddlywiki
アマゾンウェブサービスプラグインは、アマゾンウェブサービスで動かすためのいくつかのツールを提供します:
* TiddlyWikiをAWS Lambda関数として実行できるZIPファイル内の単一のJavaScriptファイルとして保存するためのテンプレート。この形式では、TiddlyWikiは、スタンドアロンのHTMLファイル構成と同様に、コードとデータの両方を含む自己完結型の単一ファイルです
* TiddlyWikiのNode.js構成とLambda構成の両方で、AWSサービスで操作するために使用できるコマンド

View File

@@ -0,0 +1,20 @@
created: 20190206181204119
modified: 20241222101408936
original-modified: 20190206181204119
tags: OfficialPlugins
title: BrowserStorage Plugin
ja-title: ブラウザストレージプラグイン
type: text/vnd.tiddlywiki
ブラウザストレージプラグインを使用すると、TiddlyWikiが[[ブラウザのローカルストレージ|https://en.wikipedia.org/wiki/Web_storage#localStorage]]にTiddlerを保存できるようになります。これは、変更がブラウザ内に保存され、ベースWikiがリロードされるたびに自動的に再適用されることを意味します
ブラウザのローカルストレージはTiddlyWikiにとって万能薬ではありません:
* ブラウザは、各ページで使用できるローカルストレージの量を制限しており、通常は5または10MBに制限されています
* 個人データをブラウザのローカル ストレージに保存すると、予期しないプライバシー侵害につながる可能性があります
* ブラウザは、ローカルストレージに保存されているデータを警告なしにいつでも削除する権利を留保します
* ブラウザはローカルストレージをURLと結び付けるため、以前に別のWikiが使用していたURLにWikiを移動すると問題が発生する可能性があります
このプラグインは注意して使用してください。未解決の問題や未解決の疑問が数多くあります
ブラウザストレージプラグインは、プラグインライブラリからインストールできます

View File

@@ -0,0 +1,12 @@
created: 20160107223435497
list:
modified: 20241222101622863
original-modified: 20170228102537972
tags: OfficialPlugins [[Plugin Editions]]
title: CodeMirror Plugin
ja-title: CodeMirrorプラグイン
type: text/vnd.tiddlywiki
CodeMirrorプラグインは、洗練されたWebベースのエディタをTiddlyWikiに追加します
[ext[https://tiddlywiki.com/plugins/tiddlywiki/codemirror|plugins/tiddlywiki/codemirror]]でデモを参照してください

View File

@@ -0,0 +1,16 @@
created: 20201019084534263
modified: 20241222111136646
original-modified: 20201019084658478
tags: OfficialPlugins
title: Consent Banner Plugin
ja-title: 同意バナープラグイン
type: text/vnd.tiddlywiki
同意バナープラグインは、[[EU一般データ保護規則|https://gdpr.eu/cookies/]]などの"Cookie法"に準拠したWebサイトの作成に役立ちます。
このプラグインは、ユーザーにCookieを受け入れるか拒否するかを促すバナーを表示し、ユーザーの同意をローカルストレージに記録して、次回のアクセス時にバナーを非表示にできるようにします。
デフォルトでは、ユーザーがCookieを受け入れることに同意しない限り、&lt;iframe>、&lt;embed>、&lt;object>で埋め込まれたコンテンツはブロックされます。
同意ステータスは構成Tiddlerを介して利用できるため、同意が得られたかどうかに応じて異なる動作をするコンテンツを構築できます。たとえば、ユーザーがCookieを受け入れない限り、自動的に youtube-nocookie.com バリアントのビデオURLを使用する~YouTubeビデオを埋め込むためのマクロが提供されています。
このプラグインを使用することで、特定の法律への準拠が保証されるわけではないことにご注意ください。あなたの状況に固有の技術的な問題を理解し、必要に応じて法的アドバイスを求める必要があります。

View File

@@ -0,0 +1,14 @@
created: 20160107223425581
caption: {{!!ja-title}} - ^^deprecated^^
modified: 20241222102055511
original-modified: 20240913122437925
tags: OfficialPlugins [[Plugin Editions]] $:/deprecated
title: D3 Plugin
ja-title: D3プラグイン
type: text/vnd.tiddlywiki
<<.deprecated-since "5.3.4">> D3プラグインは、D3ビジュアライゼーションライブラリをTiddlyWikiと統合します
https://tiddlywiki.com/plugins/tiddlywiki/d3/ を参照してください
[ext[https://tiddlywiki.com/plugins/tiddlywiki/d3|plugins/tiddlywiki/d3]]でデモをご覧ください。

View File

@@ -0,0 +1,14 @@
created: 20180111122953142
modified: 20241223104409794
original-modified: 20181113084151268
tags: OfficialPlugins
title: Dynaview Plugin
ja-title: 動的表示プラグイン
type: text/vnd.tiddlywiki
動的表示プラグインを使用すると、スクロールやズームによるブラウザビューポートの変更に動的に応答するユーザーインターフェイスを構築できます:
* スクロールされて表示されるまで出力のレンダリングを延期できるCSSクラス
* 現在のズームレベルに応じてDOM要素の不透明度を変更できるようにするCSSクラス
[ext[https://tiddlywiki.com/plugins/tiddlywiki/dynaview|plugins/tiddlywiki/dynaview]]でデモをご覧ください

View File

@@ -0,0 +1,12 @@
created: 20171031172325817
list:
modified: 20241222102153176
original-modified: 20171031172440017
tags: OfficialPlugins [[Plugin Editions]]
title: External Attachments Plugin
ja-title: 外部添付プラグイン
type: text/vnd.tiddlywiki
外部添付ファイルプラグインは、Tiddlerを外部添付ファイルとしてインポートするためのサポートを提供します。つまり、バイナリファイルを自己完結型Tiddlerとしてインポートするのではなく、''_canonical_uri''フィールドを介して元のファイルを参照する "スキニー" Tiddler としてインポートされます。これによりWikiのサイズが削減され、パフォーマンスが向上します。ただし、これはWikiが完全な自己完結型ではなくなったことを意味します
このプラグインは、インポート/ドラッグされたファイルの''path''属性をサポートするTiddlyDesktopなどのプラットフォームでTiddlyWikiを使用する場合にのみ機能します

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