@tiddlywiki/mws 0.0.21 → 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -9
- package/dist/metafile-esm.json +1 -0
- package/dist/mws.d.ts +1 -0
- package/dist/mws.js +34710 -0
- package/dist/mws.js.map +1 -0
- package/editions/mws-docs/tiddlers/$__StoryList.tid +1 -2
- package/editions/mws-docs/tiddlers/2025-02-18 - User Management.md.meta +2 -2
- package/editions/mws-docs/tiddlers/2025-04-14 - client plugins /342/234/224/357/270/217.md" +31 -0
- package/editions/mws-docs/tiddlers/2025-04-14 - client plugins /342/234/224/357/270/217.md.meta" +5 -0
- package/editions/mws-docs/tiddlers/{2025-05-04.md → 2025-05-04 - event hooks /342/234/224/357/270/217.md" } +7 -1
- package/editions/mws-docs/tiddlers/2025-05-04 - event hooks /342/234/224/357/270/217.md.meta" +5 -0
- package/editions/mws-docs/tiddlers/{2025-05-06.md → 2025-05-06 - syncer design.md } +0 -4
- package/editions/mws-docs/tiddlers/2025-05-06 - syncer design.md.meta +5 -0
- package/editions/mws-docs/tiddlers/Allowed Methods.tid +8 -0
- package/editions/mws-docs/tiddlers/Application Access & Security.md +14 -84
- package/editions/mws-docs/tiddlers/Application Access & Security.md.meta +1 -1
- package/editions/mws-docs/tiddlers/Body Format.md +19 -0
- package/editions/mws-docs/tiddlers/Body Format.md.meta +4 -0
- package/editions/mws-docs/tiddlers/Checklists and Features.md +0 -3
- package/editions/mws-docs/tiddlers/Checklists and Features.md.meta +1 -1
- package/editions/mws-docs/tiddlers/Client Plugins.md +17 -0
- package/editions/mws-docs/tiddlers/Client Plugins.md.meta +5 -0
- package/editions/mws-docs/tiddlers/HTTP API.md +4 -3
- package/editions/mws-docs/tiddlers/HTTP API.md.meta +1 -1
- package/editions/mws-docs/tiddlers/HelloThere.tid +2 -2
- package/editions/mws-docs/tiddlers/Installation.tid +2 -3
- package/editions/mws-docs/tiddlers/MWS Architecture.tid +6 -1
- package/editions/mws-docs/tiddlers/Multi-user Trust.md +12 -0
- package/editions/mws-docs/tiddlers/Multi-user Trust.md.meta +5 -0
- package/editions/mws-docs/tiddlers/Notes.tid +5 -3
- package/editions/mws-docs/tiddlers/Oracle Attacks.md +29 -0
- package/editions/mws-docs/tiddlers/Oracle Attacks.md.meta +5 -0
- package/editions/mws-docs/tiddlers/Reference.md +1 -0
- package/editions/mws-docs/tiddlers/Reference.md.meta +1 -1
- package/editions/mws-docs/tiddlers/Request Handling.md +53 -0
- package/editions/mws-docs/tiddlers/Request Handling.md.meta +5 -0
- package/editions/mws-docs/tiddlers/Roadmap.tid +7 -0
- package/editions/mws-docs/tiddlers/Route Definers.md +206 -0
- package/editions/mws-docs/tiddlers/Route Definers.md.meta +5 -0
- package/editions/mws-docs/tiddlers/Security.md +75 -0
- package/editions/mws-docs/tiddlers/Security.md.meta +5 -0
- package/editions/mws-docs/tiddlers/Server Plugins.md +7 -0
- package/editions/mws-docs/tiddlers/Server Plugins.md.meta +5 -0
- package/editions/mws-docs/tiddlers/Startup Cache.md +28 -0
- package/editions/mws-docs/tiddlers/Startup Cache.md.meta +5 -0
- package/editions/mws-docs/tiddlers/TiddlerFields.md +5 -0
- package/editions/mws-docs/tiddlers/TiddlerFields.md.meta +4 -0
- package/editions/mws-docs/tiddlers/Usage.tid +2 -2
- package/editions/mws-docs/tiddlers/system/$__mws_cssvar-macro.tid +10 -0
- package/editions/mws-docs/tiddlers/system/$__palettes_MUI +143 -0
- package/editions/mws-docs/tiddlers/system/$__palettes_MUI.meta +7 -0
- package/editions/mws-docs/tiddlers/system/$__palettes_MUI_styles.css +567 -0
- package/editions/mws-docs/tiddlers/system/$__palettes_MUI_styles.css.meta +6 -0
- package/editions/mws-docs/tiddlers/system/$__theme.tid +6 -0
- package/editions/mws-docs/tiddlers/system/SplashScreen.tid +21 -0
- package/editions/mws-docs/tiddlers/system/StaticBanner.tid +1 -1
- package/editions/mws-docs/tiddlers/system/Styles.tid +13 -0
- package/editions/mws-docs/tiddlers/system/palette.tid +4 -1
- package/editions/mws-docs/tiddlers/system/sidebarlayout.tid +4 -1
- package/editions/mws-docs/tiddlers/x-mws-tiddler.md +35 -0
- package/editions/mws-docs/tiddlers/x-mws-tiddler.md.meta +5 -0
- package/mws.run.mjs +30 -0
- package/package.json +47 -36
- package/plugins/client/package-lock.json +46 -83
- package/plugins/client/package.json +1 -6
- package/plugins/client/plugin.info +2 -2
- package/plugins/client/src/fflate.d.ts +1501 -0
- package/plugins/client/src/multiwikiclientadaptor.ts +768 -317
- package/plugins/client/src/mws.d.ts +4 -0
- package/plugins/client/src/types.d.ts +3928 -0
- package/plugins/client/tiddlers/en-US.multids +3 -0
- package/plugins/client/tiddlers/status/SaveWikiButtonTemplate.tid +3 -0
- package/plugins/client/tiddlers/status/icon-cloud.tid +4 -0
- package/plugins/client/tiddlers/status/info-segment.tid +8 -0
- package/plugins/client/tiddlers/status/readonly-styles.tid +27 -0
- package/plugins/client/tiddlers/status/save-offline.tid +7 -0
- package/plugins/client/tiddlers/status/save-wiki-button.tid +26 -0
- package/plugins/client/tiddlers/status/styles.tid +44 -0
- package/plugins/client/tiddlers/status/syncer-actions-copy-logs.tid +6 -0
- package/plugins/client/tiddlers/status/syncer-actions-login-status.tid +9 -0
- package/plugins/client/tiddlers/status/syncer-actions-login.tid +8 -0
- package/plugins/client/tiddlers/status/syncer-actions-logout.tid +8 -0
- package/plugins/client/tiddlers/status/syncer-actions-refresh.tid +9 -0
- package/plugins/client/tiddlers/status/syncer-actions-save-snapshot.tid +9 -0
- package/plugins/client/tiddlers/status/tags-syncerdropdown.tid +2 -0
- package/plugins/client/tiddlers/syncer/multiwikiclientadaptor.js +640 -0
- package/plugins/client/tiddlers/syncer/syncer.js +831 -0
- package/plugins/client/tsconfig.json +19 -16
- package/plugins/filter-ast-to-sql/example-run-series.ts +146 -0
- package/plugins/server/SplashScreen.tid +150 -0
- package/plugins/server/fflate.js +9 -0
- package/plugins/server/plugin.info +8 -0
- package/plugins/server/readme +1 -0
- package/plugins/server/url-polyfill.js +294 -0
- package/prisma/client/client.d.ts +1 -0
- package/prisma/client/client.js +3 -0
- package/prisma/client/default.d.ts +1 -0
- package/prisma/client/default.js +3 -0
- package/prisma/client/edge.d.ts +1 -0
- package/prisma/client/edge.js +297 -0
- package/prisma/client/index-browser.js +275 -0
- package/prisma/client/index.d.ts +17770 -0
- package/prisma/client/index.js +324 -0
- package/prisma/client/package.json +173 -0
- package/prisma/client/query_engine_bg.js +811 -0
- package/prisma/client/query_engine_bg.wasm +0 -0
- package/prisma/client/runtime/edge-esm.js +10000 -0
- package/prisma/client/runtime/edge.js +10036 -0
- package/prisma/client/runtime/index-browser.d.ts +370 -0
- package/prisma/client/runtime/index-browser.js +2300 -0
- package/prisma/client/runtime/library.d.ts +3681 -0
- package/prisma/client/runtime/library.js +10604 -0
- package/prisma/client/runtime/react-native.js +10629 -0
- package/prisma/client/runtime/wasm-compiler-edge.js +11238 -0
- package/prisma/client/runtime/wasm-engine-edge.js +7801 -0
- package/prisma/client/schema.prisma +156 -0
- package/prisma/client/wasm-edge-light-loader.mjs +4 -0
- package/prisma/client/wasm-worker-loader.mjs +4 -0
- package/prisma/client/wasm.d.ts +1 -0
- package/prisma/client/wasm.js +304 -0
- package/prisma/global.ts +53 -0
- package/prisma/migrations/{20250406213424_init → 20250606001949_init}/migration.sql +46 -48
- package/prisma/migrations/20250613000526_remove_group/migration.sql +22 -0
- package/prisma/migrations/20250620014502_settings/migration.sql +5 -0
- package/prisma/migrations/20250707205229_recipes/migration.sql +20 -0
- package/prisma/migrations/migration_lock.toml +1 -1
- package/prisma/notes.md +1 -2
- package/prisma/schema.prisma +52 -49
- package/prisma/test.sqlite +0 -0
- package/prisma/test.sqlite-journal +0 -0
- package/public/react-admin/android-chrome-192x192.png +0 -0
- package/public/react-admin/android-chrome-512x512.png +0 -0
- package/public/react-admin/apple-touch-icon.png +0 -0
- package/{react-user-mgmt/public/esm-QKDFEP3B.js → public/react-admin/esm-L4WLVWJN.js} +1 -1
- package/public/react-admin/esm-L4WLVWJN.js.map +7 -0
- package/public/react-admin/esm-QMNGI3LF.js +3 -0
- package/public/react-admin/favicon-16x16.png +0 -0
- package/public/react-admin/favicon-32x32.png +0 -0
- package/public/react-admin/favicon.ico +0 -0
- package/public/react-admin/index.html +36 -0
- package/public/react-admin/main.js +268 -0
- package/public/react-admin/main.js.map +7 -0
- package/public/react-admin/site.webmanifest +20 -0
- package/public/react-admin/stats.json +1 -0
- package/scripts.mjs +134 -25
- package/dist/server.d.ts +0 -945
- package/dist/server.js +0 -20775
- package/dist/server.js.map +0 -1
- package/editions/mws-docs/tiddlers/2025-04-03 - Phases of Development.md +0 -64
- package/editions/mws-docs/tiddlers/2025-04-03 - Phases of Development.md.meta +0 -5
- package/editions/mws-docs/tiddlers/2025-04-13 - Plugins.md +0 -18
- package/editions/mws-docs/tiddlers/2025-04-13 - Plugins.md.meta +0 -5
- package/editions/mws-docs/tiddlers/2025-05-04.md.meta +0 -5
- package/editions/mws-docs/tiddlers/2025-05-06.md.meta +0 -5
- package/editions/mws-docs/tiddlers/Moduler Design.md +0 -29
- package/editions/mws-docs/tiddlers/Moduler Design.md.meta +0 -5
- package/editions/mws-docs/tiddlers/Request Server.md +0 -20
- package/editions/mws-docs/tiddlers/Request Server.md.meta +0 -5
- package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Dark +0 -173
- package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Dark.meta +0 -6
- package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Light +0 -172
- package/editions/mws-docs/tiddlers/system/$__palettes_MUI-Light.meta +0 -6
- package/plugins/client/tiddlers/config-tiddlers-filter.tid +0 -2
- package/plugins/client/tiddlers/config-use-server-sent-events.tid +0 -2
- package/plugins/client/tiddlers/info-segment.tid +0 -8
- package/plugins/client/tiddlers/multiwikiclientadaptor.js +0 -444
- package/prisma/migrations/20250407002306_disconnect_user_tables/migration.sql +0 -52
- package/prisma/old-db.sql +0 -144
- package/react-user-mgmt/README.md +0 -50
- package/react-user-mgmt/eslint.config.js +0 -28
- package/react-user-mgmt/package-lock.json +0 -2738
- package/react-user-mgmt/package.json +0 -31
- package/react-user-mgmt/public/index.html +0 -1
- package/react-user-mgmt/public/main.js +0 -295
- package/react-user-mgmt/public/main.js.map +0 -7
- package/react-user-mgmt/public/stats.json +0 -1
- package/react-user-mgmt/tsconfig.json +0 -40
- package/react-user-mgmt/types.d.ts +0 -2
- package/tiddlywiki-types/boot/boot.d.ts +0 -378
- package/tiddlywiki-types/boot/bootprefix.d.ts +0 -110
- package/tiddlywiki-types/core/modules/filters.d.ts +0 -107
- package/tiddlywiki-types/core/modules/tiddler.d.ts +0 -47
- package/tiddlywiki-types/core/modules/wiki-bulkops.d.ts +0 -36
- package/tiddlywiki-types/core/modules/wiki.d.ts +0 -208
- package/tiddlywiki-types/index.d.ts +0 -7
- package/tiddlywiki-types/package.json +0 -3
- /package/plugins/client/tiddlers/{sidebarsegment.tid → status/sidebarsegment.tid} +0 -0
- /package/plugins/client/tiddlers/{GettingStarted.tid → syncer/GettingStarted.tid} +0 -0
- /package/plugins/client/tiddlers/{config-incoming-updates-filter.tid → syncer/config-incoming-updates-filter.tid} +0 -0
- /package/plugins/client/tiddlers/{readme.tid → syncer/readme.tid} +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/chunk-YALWN5OT.js +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/chunk-YALWN5OT.js.map +0 -0
- /package/{react-user-mgmt/public/esm-QKDFEP3B.js.map → public/react-admin/esm-QMNGI3LF.js.map} +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/favicon.png +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/missing-favicon.png +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/motovun-jack.jpg +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/mws-icon.png +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/stats.css +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/stats.html +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/stats.js +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/stats.svg +0 -0
- /package/{react-user-mgmt/public → public/react-admin}/vite.svg +0 -0
|
@@ -0,0 +1,567 @@
|
|
|
1
|
+
/*\
|
|
2
|
+
created: 20250513234032612
|
|
3
|
+
modified: 20250514012443594
|
|
4
|
+
tags: $:/tags/Stylesheet
|
|
5
|
+
title: $:/palettes/MUI/styles
|
|
6
|
+
description: Colors reflecting the MWS admin UI, responsive to system settings.
|
|
7
|
+
type: text/css
|
|
8
|
+
|
|
9
|
+
\*/
|
|
10
|
+
/* ======================================================================== */
|
|
11
|
+
/* Material‑inspired CSS Custom Properties */
|
|
12
|
+
/* ------------------------------------------------------------------------ */
|
|
13
|
+
/* This file provides light‑mode defaults on :root and dark‑mode overrides */
|
|
14
|
+
/* inside @media (prefers-color-scheme: dark). */
|
|
15
|
+
/* Colors come from the default MUI v5 palette (blue, purple, red, orange, */
|
|
16
|
+
/* lightBlue, green, grey) plus sensible tweaks for contrast. */
|
|
17
|
+
/* ======================================================================== */
|
|
18
|
+
|
|
19
|
+
:root {
|
|
20
|
+
/* --------------------------------------------------------------------- */
|
|
21
|
+
/* Palette primitives (light mode) */
|
|
22
|
+
/* --------------------------------------------------------------------- */
|
|
23
|
+
--color-primary-light: #42a5f5;
|
|
24
|
+
/* blue 400 */
|
|
25
|
+
--color-primary: #1976d2;
|
|
26
|
+
/* blue 700 */
|
|
27
|
+
--color-primary-dark: #1565c0;
|
|
28
|
+
/* blue 800 */
|
|
29
|
+
--color-primary-background: #bbdefb;
|
|
30
|
+
/* blue 100 */
|
|
31
|
+
|
|
32
|
+
/* --color-secondary-light: #ba68c8; */
|
|
33
|
+
--color-secondary-light: var(--color-mws-300);
|
|
34
|
+
--color-secondary: var(--color-mws-500);
|
|
35
|
+
--color-secondary-dark: var(--color-mws-700);
|
|
36
|
+
--color-secondary-background: var(--color-mws-100);
|
|
37
|
+
--color-secondary-foreground: var(--color-mws-800);
|
|
38
|
+
/* purple 300 */
|
|
39
|
+
/* --color-secondary: #9c27b0; */
|
|
40
|
+
/* purple 500 */
|
|
41
|
+
/* --color-secondary-dark: #7b1fa2; */
|
|
42
|
+
/* purple 700 */
|
|
43
|
+
/* --color-secondary-background: #e1bee7; */
|
|
44
|
+
/* purple 100 */
|
|
45
|
+
|
|
46
|
+
/* function getDefaultSecondary(mode = 'light') {
|
|
47
|
+
if (mode === 'dark') {
|
|
48
|
+
return {
|
|
49
|
+
main: purple[200],
|
|
50
|
+
light: purple[50],
|
|
51
|
+
dark: purple[400]
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
main: purple[500],
|
|
56
|
+
light: purple[300],
|
|
57
|
+
dark: purple[700]
|
|
58
|
+
};
|
|
59
|
+
} */
|
|
60
|
+
|
|
61
|
+
--color-inline-highlight: #fff59d;
|
|
62
|
+
/* yellow 300 */
|
|
63
|
+
|
|
64
|
+
--color-error-50: #ffebee;
|
|
65
|
+
/* error 50 */
|
|
66
|
+
--color-error-light: #ef5350;
|
|
67
|
+
/* red 400 */
|
|
68
|
+
--color-error: #d32f2f;
|
|
69
|
+
/* red 700 */
|
|
70
|
+
--color-error-dark: #c62828;
|
|
71
|
+
/* red 800 */
|
|
72
|
+
|
|
73
|
+
--color-warning-50: #fff8e1;
|
|
74
|
+
/* warning 50 */
|
|
75
|
+
--color-warning-light: #ffb74d;
|
|
76
|
+
/* orange 300 */
|
|
77
|
+
--color-warning: #ed6c02;
|
|
78
|
+
/* orange ~800 */
|
|
79
|
+
--color-warning-dark: #e65100;
|
|
80
|
+
/* orange 900 */
|
|
81
|
+
|
|
82
|
+
--color-info-50: #e3f2fd;
|
|
83
|
+
/* info 50 */
|
|
84
|
+
--color-info-light: #4fc3f7;
|
|
85
|
+
/* lightBlue 300 */
|
|
86
|
+
--color-info: #0288d1;
|
|
87
|
+
/* lightBlue 700 */
|
|
88
|
+
--color-info-dark: #01579b;
|
|
89
|
+
/* lightBlue 900 */
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
--color-success-50: #e8f5e9;
|
|
93
|
+
/* success 50 */
|
|
94
|
+
--color-success-light: #81c784;
|
|
95
|
+
/* green 300 */
|
|
96
|
+
--color-success: #2e7d32;
|
|
97
|
+
/* green 800 */
|
|
98
|
+
--color-success-dark: #1b5e20;
|
|
99
|
+
/* green 900 */
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
--color-grey-0: #ffffff;
|
|
106
|
+
--color-grey-50: #fafafa;
|
|
107
|
+
--color-grey-100: #f5f5f5;
|
|
108
|
+
--color-grey-200: #eeeeee;
|
|
109
|
+
--color-grey-300: #e0e0e0;
|
|
110
|
+
--color-grey-400: #bdbdbd;
|
|
111
|
+
--color-grey-500: #9e9e9e;
|
|
112
|
+
--color-grey-600: #757575;
|
|
113
|
+
--color-grey-700: #616161;
|
|
114
|
+
--color-grey-800: #424242;
|
|
115
|
+
--color-grey-900: #212121;
|
|
116
|
+
|
|
117
|
+
/*
|
|
118
|
+
|
|
119
|
+
The MWS color scheme was extracted from the page background.
|
|
120
|
+
|
|
121
|
+
hsl(322deg 29% 50% / 20%); over black is #21121b - the dark background
|
|
122
|
+
hsl(322deg 29% 50% / 20%); over white is #eddee7 - the light background
|
|
123
|
+
hsl(322deg 29% 50% / 100%); is #a45b89
|
|
124
|
+
|
|
125
|
+
This was entered into https://m2.material.io/inline-tools/color/
|
|
126
|
+
|
|
127
|
+
From there it is then used as the secondary color,
|
|
128
|
+
using the same pattern as the primary color.
|
|
129
|
+
|
|
130
|
+
*/
|
|
131
|
+
|
|
132
|
+
--color-mws-50: #f2e6ed;
|
|
133
|
+
--color-mws-100: #e0c1d4;
|
|
134
|
+
--color-mws-200: #cc9ab9;
|
|
135
|
+
--color-mws-300: #b5759d;
|
|
136
|
+
--color-mws-400: #a45b89;
|
|
137
|
+
--color-mws-500: #934778;
|
|
138
|
+
--color-mws-600: #884172;
|
|
139
|
+
--color-mws-700: #793a69;
|
|
140
|
+
--color-mws-800: #6a345f;
|
|
141
|
+
--color-mws-900: #542851;
|
|
142
|
+
|
|
143
|
+
--page-background: #eddee7;
|
|
144
|
+
|
|
145
|
+
/* --------------------------------------------------------------------- */
|
|
146
|
+
/* Typography */
|
|
147
|
+
/* --------------------------------------------------------------------- */
|
|
148
|
+
--foreground: var(--color-grey-900);
|
|
149
|
+
/* text.primary */
|
|
150
|
+
--muted-foreground: var(--color-grey-700);
|
|
151
|
+
/* text.secondary */
|
|
152
|
+
--very-muted-foreground: var(--color-grey-500);
|
|
153
|
+
/* text.disabled */
|
|
154
|
+
|
|
155
|
+
/* --------------------------------------------------------------------- */
|
|
156
|
+
/* Core surfaces */
|
|
157
|
+
/* --------------------------------------------------------------------- */
|
|
158
|
+
--background: var(--color-grey-50);
|
|
159
|
+
/* background.default */
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
/* --------------------------------------------------------------------- */
|
|
163
|
+
/* Alerts & Warnings */
|
|
164
|
+
/* --------------------------------------------------------------------- */
|
|
165
|
+
--alert-background: var(--color-warning-50);
|
|
166
|
+
/* warning 50 */
|
|
167
|
+
--alert-border: var(--color-warning-light);
|
|
168
|
+
/* subtle outline */
|
|
169
|
+
--alert-highlight: var(--color-warning);
|
|
170
|
+
/* main accent */
|
|
171
|
+
--alert-muted-foreground: var(--muted-foreground);
|
|
172
|
+
|
|
173
|
+
/* --------------------------------------------------------------------- */
|
|
174
|
+
/* Primary accent */
|
|
175
|
+
/* --------------------------------------------------------------------- */
|
|
176
|
+
--primary: var(--color-primary);
|
|
177
|
+
|
|
178
|
+
/* --------------------------------------------------------------------- */
|
|
179
|
+
/* Blockquotes */
|
|
180
|
+
/* --------------------------------------------------------------------- */
|
|
181
|
+
--blockquote-bar: var(--color-primary-light);
|
|
182
|
+
|
|
183
|
+
/* --------------------------------------------------------------------- */
|
|
184
|
+
/* Buttons */
|
|
185
|
+
/* --------------------------------------------------------------------- */
|
|
186
|
+
--button-background: var(--background);
|
|
187
|
+
--button-foreground: var(--foreground);
|
|
188
|
+
/* contrastText on primary */
|
|
189
|
+
--button-border: var(--very-muted-foreground);
|
|
190
|
+
|
|
191
|
+
/* --------------------------------------------------------------------- */
|
|
192
|
+
/* Code & Pre */
|
|
193
|
+
/* --------------------------------------------------------------------- */
|
|
194
|
+
--code-background: var(--color-grey-100);
|
|
195
|
+
--code-border: var(--color-grey-300);
|
|
196
|
+
--code-foreground: var(--foreground);
|
|
197
|
+
--pre-background: var(--code-background);
|
|
198
|
+
--pre-border: var(--code-border);
|
|
199
|
+
|
|
200
|
+
/* --------------------------------------------------------------------- */
|
|
201
|
+
/* Diff highlighting */
|
|
202
|
+
/* --------------------------------------------------------------------- */
|
|
203
|
+
--diff-delete-background: var(--color-error-50);
|
|
204
|
+
--diff-delete-foreground: var(--color-error-dark);
|
|
205
|
+
--diff-equal-background: var(--color-warning-50);
|
|
206
|
+
--diff-equal-foreground: var(--color-warning-dark);
|
|
207
|
+
--diff-insert-background: var(--color-success-50);
|
|
208
|
+
--diff-insert-foreground: var(--color-success-dark);
|
|
209
|
+
--diff-invisible-background: transparent;
|
|
210
|
+
--diff-invisible-foreground: var(--very-muted-foreground);
|
|
211
|
+
|
|
212
|
+
/* --------------------------------------------------------------------- */
|
|
213
|
+
/* Drag & Drop */
|
|
214
|
+
/* --------------------------------------------------------------------- */
|
|
215
|
+
--dragger-background: var(--color-grey-200);
|
|
216
|
+
--dragger-foreground: var(--color-grey-700);
|
|
217
|
+
--dirty-indicator: var(--color-warning);
|
|
218
|
+
|
|
219
|
+
/* --------------------------------------------------------------------- */
|
|
220
|
+
/* Download / Upload progress */
|
|
221
|
+
/* --------------------------------------------------------------------- */
|
|
222
|
+
--download-background: var(--color-primary-light);
|
|
223
|
+
--download-foreground: var(--color-grey-0);
|
|
224
|
+
|
|
225
|
+
/* --------------------------------------------------------------------- */
|
|
226
|
+
/* Dropdowns */
|
|
227
|
+
/* --------------------------------------------------------------------- */
|
|
228
|
+
--dropdown-background: var(--background);
|
|
229
|
+
--dropdown-border: var(--color-grey-300);
|
|
230
|
+
--dropdown-tab-background-selected: var(--color-primary-light);
|
|
231
|
+
--dropdown-tab-background: var(--color-grey-100);
|
|
232
|
+
|
|
233
|
+
/* --------------------------------------------------------------------- */
|
|
234
|
+
/* Drop‑zone */
|
|
235
|
+
/* --------------------------------------------------------------------- */
|
|
236
|
+
--dropzone-background: var(--color-info-light);
|
|
237
|
+
|
|
238
|
+
/* --------------------------------------------------------------------- */
|
|
239
|
+
/* External links */
|
|
240
|
+
/* --------------------------------------------------------------------- */
|
|
241
|
+
--external-link-background: transparent;
|
|
242
|
+
--external-link-foreground: var(--primary);
|
|
243
|
+
--external-link-background-hover: var(--color-primary-light);
|
|
244
|
+
--external-link-foreground-hover: var(--color-grey-0);
|
|
245
|
+
--external-link-background-visited: transparent;
|
|
246
|
+
--external-link-foreground-visited: var(--color-secondary-dark);
|
|
247
|
+
|
|
248
|
+
/* --------------------------------------------------------------------- */
|
|
249
|
+
/* Footnotes */
|
|
250
|
+
/* --------------------------------------------------------------------- */
|
|
251
|
+
--footnote-target-background: var(--color-info-light);
|
|
252
|
+
|
|
253
|
+
/* --------------------------------------------------------------------- */
|
|
254
|
+
/* Inline highlight */
|
|
255
|
+
/* --------------------------------------------------------------------- */
|
|
256
|
+
--highlight-background: var(--color-inline-highlight);
|
|
257
|
+
--highlight-foreground: var(--color-grey-900);
|
|
258
|
+
|
|
259
|
+
/* --------------------------------------------------------------------- */
|
|
260
|
+
/* Messages (info) */
|
|
261
|
+
/* --------------------------------------------------------------------- */
|
|
262
|
+
--message-background: var(--color-info-50);
|
|
263
|
+
--message-border: var(--color-info-light);
|
|
264
|
+
--message-foreground: var(--color-info);
|
|
265
|
+
|
|
266
|
+
/* --------------------------------------------------------------------- */
|
|
267
|
+
/* Modals */
|
|
268
|
+
/* --------------------------------------------------------------------- */
|
|
269
|
+
--modal-backdrop: rgba(0, 0, 0, 0.32);
|
|
270
|
+
--modal-background: var(--background);
|
|
271
|
+
--modal-border: var(--color-grey-300);
|
|
272
|
+
--modal-footer-background: var(--color-grey-100);
|
|
273
|
+
--modal-footer-border: var(--modal-border);
|
|
274
|
+
--modal-header-border: var(--modal-border);
|
|
275
|
+
|
|
276
|
+
/* --------------------------------------------------------------------- */
|
|
277
|
+
/* Network Activity spinner / bar */
|
|
278
|
+
/* --------------------------------------------------------------------- */
|
|
279
|
+
--network-activity-foreground: var(--color-success);
|
|
280
|
+
|
|
281
|
+
/* --------------------------------------------------------------------- */
|
|
282
|
+
/* Notifications (secondary accent) */
|
|
283
|
+
/* --------------------------------------------------------------------- */
|
|
284
|
+
--notification-background: var(--color-secondary-background);
|
|
285
|
+
--notification-border: var(--color-secondary-light);
|
|
286
|
+
|
|
287
|
+
/* --------------------------------------------------------------------- */
|
|
288
|
+
/* Selection */
|
|
289
|
+
/* --------------------------------------------------------------------- */
|
|
290
|
+
|
|
291
|
+
--selection-background: var(--color-primary-background);
|
|
292
|
+
--selection-foreground: var(--foreground);
|
|
293
|
+
|
|
294
|
+
/* --------------------------------------------------------------------- */
|
|
295
|
+
/* <select> tags */
|
|
296
|
+
/* --------------------------------------------------------------------- */
|
|
297
|
+
--select-tag-background: var(--background);
|
|
298
|
+
--select-tag-foreground: var(--foreground);
|
|
299
|
+
|
|
300
|
+
/* --------------------------------------------------------------------- */
|
|
301
|
+
/* Sidebar */
|
|
302
|
+
/* --------------------------------------------------------------------- */
|
|
303
|
+
--sidebar-button-foreground: var(--button-foreground);
|
|
304
|
+
--sidebar-controls-foreground: var(--muted-foreground);
|
|
305
|
+
--sidebar-controls-foreground-hover: var(--foreground);
|
|
306
|
+
--sidebar-foreground-shadow: rgba(0, 0, 0, 0.08);
|
|
307
|
+
--sidebar-foreground: var(--muted-foreground);
|
|
308
|
+
--sidebar-muted-foreground-hover: var(--foreground);
|
|
309
|
+
--sidebar-muted-foreground: var(--muted-foreground);
|
|
310
|
+
--sidebar-tab-background-selected: var(--background);
|
|
311
|
+
--sidebar-tab-background: var(--color-grey-100);
|
|
312
|
+
--sidebar-tab-border-selected: var(--color-primary);
|
|
313
|
+
--sidebar-tab-border: var(--color-grey-300);
|
|
314
|
+
--sidebar-tab-divider: var(--sidebar-tab-border);
|
|
315
|
+
--sidebar-tab-foreground-selected: var(--primary);
|
|
316
|
+
--sidebar-tab-foreground: var(--muted-foreground);
|
|
317
|
+
--sidebar-tiddler-link-foreground-hover: var(--primary);
|
|
318
|
+
--sidebar-tiddler-link-foreground: var(--muted-foreground);
|
|
319
|
+
|
|
320
|
+
/* --------------------------------------------------------------------- */
|
|
321
|
+
/* Site title */
|
|
322
|
+
/* --------------------------------------------------------------------- */
|
|
323
|
+
--site-title-foreground: var(--tiddler-title-foreground);
|
|
324
|
+
|
|
325
|
+
/* --------------------------------------------------------------------- */
|
|
326
|
+
/* Stability badges */
|
|
327
|
+
/* --------------------------------------------------------------------- */
|
|
328
|
+
--stability-stable: var(--color-success);
|
|
329
|
+
--stability-experimental: var(--color-warning);
|
|
330
|
+
--stability-deprecated: var(--color-error);
|
|
331
|
+
--stability-legacy: var(--color-grey-500);
|
|
332
|
+
|
|
333
|
+
/* --------------------------------------------------------------------- */
|
|
334
|
+
/* Static alert icon / text (inherits alert palette) */
|
|
335
|
+
/* --------------------------------------------------------------------- */
|
|
336
|
+
--static-alert-foreground: var(--alert-highlight);
|
|
337
|
+
|
|
338
|
+
/* --------------------------------------------------------------------- */
|
|
339
|
+
/* Tabs */
|
|
340
|
+
/* --------------------------------------------------------------------- */
|
|
341
|
+
--tab-background-selected: var(--background);
|
|
342
|
+
--tab-background: var(--color-grey-100);
|
|
343
|
+
--tab-border-selected: var(--color-primary);
|
|
344
|
+
--tab-border: var(--color-grey-300);
|
|
345
|
+
--tab-divider: var(--tab-border);
|
|
346
|
+
--tab-foreground-selected: var(--primary);
|
|
347
|
+
--tab-foreground: var(--muted-foreground);
|
|
348
|
+
|
|
349
|
+
/* --------------------------------------------------------------------- */
|
|
350
|
+
/* Tables */
|
|
351
|
+
/* --------------------------------------------------------------------- */
|
|
352
|
+
--table-border: var(--color-grey-300);
|
|
353
|
+
--table-footer-background: var(--color-grey-100);
|
|
354
|
+
--table-header-background: var(--color-grey-100);
|
|
355
|
+
|
|
356
|
+
/* --------------------------------------------------------------------- */
|
|
357
|
+
/* Tags */
|
|
358
|
+
/* --------------------------------------------------------------------- */
|
|
359
|
+
--tag-background: var(--color-grey-200);
|
|
360
|
+
--tag-foreground: var(--foreground);
|
|
361
|
+
|
|
362
|
+
/* --------------------------------------------------------------------- */
|
|
363
|
+
/* Testcase accent ramp (primary hue) */
|
|
364
|
+
/* --------------------------------------------------------------------- */
|
|
365
|
+
--testcase-accent-level-1: var(--color-primary-light);
|
|
366
|
+
--testcase-accent-level-2: var(--color-primary);
|
|
367
|
+
--testcase-accent-level-3: var(--color-primary-dark);
|
|
368
|
+
|
|
369
|
+
/* --------------------------------------------------------------------- */
|
|
370
|
+
/* Tiddlers */
|
|
371
|
+
/* --------------------------------------------------------------------- */
|
|
372
|
+
--tiddler-background: var(--background);
|
|
373
|
+
--tiddler-border: var(--color-grey-300);
|
|
374
|
+
--tiddler-controls-foreground: var(--muted-foreground);
|
|
375
|
+
--tiddler-controls-foreground-hover: var(--primary);
|
|
376
|
+
--tiddler-controls-foreground-selected: var(--primary);
|
|
377
|
+
--tiddler-editor-background: var(--color-grey-100);
|
|
378
|
+
--tiddler-editor-border-image: none;
|
|
379
|
+
--tiddler-editor-border: var(--color-grey-300);
|
|
380
|
+
--tiddler-editor-fields-even: var(--color-grey-100);
|
|
381
|
+
--tiddler-editor-fields-odd: var(--background);
|
|
382
|
+
--tiddler-info-background: var(--color-grey-50);
|
|
383
|
+
--tiddler-info-border: var(--color-grey-300);
|
|
384
|
+
--tiddler-info-tab-background: var(--color-grey-100);
|
|
385
|
+
--tiddler-link-background: var(--background);
|
|
386
|
+
--tiddler-link-foreground: var(--primary);
|
|
387
|
+
--tiddler-subtitle-foreground: var(--muted-foreground);
|
|
388
|
+
--tiddler-title-foreground: var(--color-secondary-foreground);
|
|
389
|
+
|
|
390
|
+
/* --------------------------------------------------------------------- */
|
|
391
|
+
/* Toolbar actions */
|
|
392
|
+
/* --------------------------------------------------------------------- */
|
|
393
|
+
|
|
394
|
+
--toolbar-new-button: var(--color-primary);
|
|
395
|
+
--toolbar-options-button: var(--color-primary);
|
|
396
|
+
--toolbar-save-button: var(--color-success);
|
|
397
|
+
--toolbar-info-button: var(--color-primary);
|
|
398
|
+
--toolbar-edit-button: var(--color-warning);
|
|
399
|
+
--toolbar-close-button: var(--color-error);
|
|
400
|
+
--toolbar-delete-button: var(--color-error);
|
|
401
|
+
--toolbar-cancel-button: var(--color-warning);
|
|
402
|
+
--toolbar-done-button: var(--color-success);
|
|
403
|
+
|
|
404
|
+
/* --------------------------------------------------------------------- */
|
|
405
|
+
/* Misc */
|
|
406
|
+
/* --------------------------------------------------------------------- */
|
|
407
|
+
--untagged-background: var(--color-grey-50);
|
|
408
|
+
|
|
409
|
+
/* --------------------------------------------------------------------- */
|
|
410
|
+
/* Wiki list */
|
|
411
|
+
/* --------------------------------------------------------------------- */
|
|
412
|
+
--wikilist-background: var(--background);
|
|
413
|
+
--wikilist-item: var(--color-grey-50);
|
|
414
|
+
--wikilist-info: var(--muted-foreground);
|
|
415
|
+
--wikilist-title: var(--foreground);
|
|
416
|
+
--wikilist-title-svg: var(--primary);
|
|
417
|
+
--wikilist-url: var(--color-secondary);
|
|
418
|
+
--wikilist-button-open: var(--color-primary);
|
|
419
|
+
--wikilist-button-open-hover: var(--color-primary-dark);
|
|
420
|
+
--wikilist-button-reveal: var(--color-info);
|
|
421
|
+
--wikilist-button-reveal-hover: var(--color-info-dark);
|
|
422
|
+
--wikilist-button-remove: var(--color-error);
|
|
423
|
+
--wikilist-button-remove-hover: var(--color-error-dark);
|
|
424
|
+
--wikilist-toolbar-background: var(--color-grey-100);
|
|
425
|
+
--wikilist-toolbar-foreground: var(--foreground);
|
|
426
|
+
--wikilist-droplink-dragover: var(--color-primary-light);
|
|
427
|
+
--wikilist-button-background: var(--color-grey-100);
|
|
428
|
+
--wikilist-button-foreground: var(--primary);
|
|
429
|
+
}
|
|
430
|
+
|
|
431
|
+
/* ======================================================================== */
|
|
432
|
+
/* Dark‑mode overrides */
|
|
433
|
+
/* ======================================================================== */
|
|
434
|
+
@media (prefers-color-scheme: dark) {
|
|
435
|
+
:root {
|
|
436
|
+
|
|
437
|
+
/* Palette primitives (dark) */
|
|
438
|
+
--color-primary-light: #e3f2fd;
|
|
439
|
+
/* blue 50 */
|
|
440
|
+
--color-primary: #90caf9;
|
|
441
|
+
/* blue 200 */
|
|
442
|
+
--color-primary-dark: #42a5f5;
|
|
443
|
+
/* blue 400 */
|
|
444
|
+
--color-primary-background: #0d47a1;
|
|
445
|
+
/* blue 900 */
|
|
446
|
+
|
|
447
|
+
--color-secondary-light: var(--color-mws-50);
|
|
448
|
+
--color-secondary: var(--color-mws-200);
|
|
449
|
+
--color-secondary-dark: var(--color-mws-400);
|
|
450
|
+
--color-secondary-background: var(--color-mws-900);
|
|
451
|
+
--color-secondary-foreground: var(--color-mws-200);
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
--color-error-50: hsl(355, 6.70%, 32.40%);
|
|
455
|
+
/* error 50 */
|
|
456
|
+
--color-error-light: #ef9a9a;
|
|
457
|
+
/* red 300 */
|
|
458
|
+
--color-error: #f44336;
|
|
459
|
+
/* red 500 */
|
|
460
|
+
--color-error-dark: #e57373;
|
|
461
|
+
/* red 400 */
|
|
462
|
+
|
|
463
|
+
--color-warning-50: hsl(46, 6.70%, 32.40%);
|
|
464
|
+
/* warning 50 */
|
|
465
|
+
--color-warning-light: #ffcc80;
|
|
466
|
+
/* orange 300 */
|
|
467
|
+
--color-warning: #ffa000;
|
|
468
|
+
/* orange 700 */
|
|
469
|
+
--color-warning-dark: #ff8f00;
|
|
470
|
+
/* orange 800 */
|
|
471
|
+
|
|
472
|
+
--color-info-50: hsl(205, 6.70%, 32.40%);
|
|
473
|
+
/* info 50 */
|
|
474
|
+
--color-info-light: #4fc3f7;
|
|
475
|
+
/* lightBlue 300 */
|
|
476
|
+
--color-info: #29b6f6;
|
|
477
|
+
/* lightBlue 400 */
|
|
478
|
+
--color-info-dark: #0288d1;
|
|
479
|
+
/* lightBlue 700 */
|
|
480
|
+
|
|
481
|
+
--color-success-50: hsl(125, 6.70%, 32.40%);
|
|
482
|
+
/* success 50 */
|
|
483
|
+
--color-success-light: #66bb6a;
|
|
484
|
+
/* green 400 */
|
|
485
|
+
--color-success: #4caf50;
|
|
486
|
+
/* green 500 */
|
|
487
|
+
--color-success-dark: #43a047;
|
|
488
|
+
/* green 600 */
|
|
489
|
+
|
|
490
|
+
|
|
491
|
+
|
|
492
|
+
/* Greys flip for dark surfaces */
|
|
493
|
+
--color-grey-0: #000000;
|
|
494
|
+
--color-grey-50: #131313;
|
|
495
|
+
--color-grey-100: #212121;
|
|
496
|
+
--color-grey-200: #2f2f2f;
|
|
497
|
+
--color-grey-300: #424242;
|
|
498
|
+
--color-grey-400: #616161;
|
|
499
|
+
--color-grey-500: #757575;
|
|
500
|
+
--color-grey-600: #9e9e9e;
|
|
501
|
+
--color-grey-700: #bdbdbd;
|
|
502
|
+
--color-grey-800: #e0e0e0;
|
|
503
|
+
--color-grey-900: #eeeeee;
|
|
504
|
+
|
|
505
|
+
|
|
506
|
+
--page-background: #21121b;
|
|
507
|
+
|
|
508
|
+
--color-inline-highlight: hsl(53, 25.80%, 25.90%);
|
|
509
|
+
/* yellow 300 */
|
|
510
|
+
|
|
511
|
+
}
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
.tc-page-controls svg.tc-image-new-markdown-button {
|
|
515
|
+
fill: var(--toolbar-new-button);
|
|
516
|
+
}
|
|
517
|
+
|
|
518
|
+
.tc-improvement-banner {
|
|
519
|
+
background: var(--color-secondary-background);
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
.tc-editor-toolbar button {
|
|
523
|
+
background-color: var(--color-primary-background);
|
|
524
|
+
color: var(--button-forground);
|
|
525
|
+
fill: var(--button-forground);
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
html button {
|
|
529
|
+
border-style: solid;
|
|
530
|
+
border-width: thin;
|
|
531
|
+
border-radius: 4px;
|
|
532
|
+
padding-inline: 10px;
|
|
533
|
+
padding-block: 4px;
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
.tc-more-sidebar>.tc-tab-set>.tc-tab-buttons>button.tc-tab-selected {
|
|
537
|
+
background-color: var(--sidebar-tab-background-selected);
|
|
538
|
+
border-color: var(--sidebar-tab-border-selected);
|
|
539
|
+
border-style: solid;
|
|
540
|
+
border-width: thin;
|
|
541
|
+
appearance: none;
|
|
542
|
+
}
|
|
543
|
+
|
|
544
|
+
|
|
545
|
+
.tc-btn-boxed {
|
|
546
|
+
border: 1px solid var(--tiddler-controls-foreground);
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
|
|
550
|
+
.tc-btn-boxed:hover {
|
|
551
|
+
background: var(--muted-foreground);
|
|
552
|
+
color: var(--background);
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
html body.tc-body .tc-btn-boxed:hover svg {
|
|
556
|
+
fill: var(--background);
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
.tc-btn-rounded {
|
|
560
|
+
border: 1px solid var(--muted-foreground);
|
|
561
|
+
background: var(--muted-foreground);
|
|
562
|
+
color: var(--background);
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
html body.tc-body .tc-btn-rounded svg {
|
|
566
|
+
fill: var(--background);
|
|
567
|
+
}
|
|
@@ -31,6 +31,27 @@ type: text/vnd.tiddlywiki
|
|
|
31
31
|
<<box-shadow "2px 2px 10px rgba(0, 0, 0, 0.5)">>
|
|
32
32
|
}
|
|
33
33
|
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
@media(prefers-color-scheme:dark){
|
|
37
|
+
:root {
|
|
38
|
+
--page-background: #21121b;
|
|
39
|
+
color: white;
|
|
40
|
+
fill: white;
|
|
41
|
+
}
|
|
42
|
+
a {
|
|
43
|
+
color: #42a5f5;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
@media(prefers-color-scheme:light){
|
|
48
|
+
:root {
|
|
49
|
+
--page-background: #eddee7;
|
|
50
|
+
color: black;
|
|
51
|
+
fill: black;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
34
55
|
html body.tc-body {
|
|
35
56
|
background: <<colour page-background>>;
|
|
36
57
|
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
title: $:/StaticBanner
|
|
2
2
|
|
|
3
|
-
<div class="tc-static-alert"><div class="tc-static-alert-inner">This page is part of a static HTML representation of the ~TiddlyWiki at https://tiddlywiki.com/</div></div>
|
|
3
|
+
<div class="tc-static-alert"><div class="tc-static-alert-inner">This page is part of a static HTML representation of the ~TiddlyWiki at https://mws.tiddlywiki.com/</div></div>
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
created: 20250601101245187
|
|
2
|
+
modified: 20250601101642862
|
|
1
3
|
tags: $:/tags/Stylesheet
|
|
2
4
|
title: $:/_styles
|
|
3
5
|
type: text/vnd.tiddlywiki
|
|
@@ -47,3 +49,14 @@ type: text/vnd.tiddlywiki
|
|
|
47
49
|
width: 1em;
|
|
48
50
|
height: 1em;
|
|
49
51
|
}
|
|
52
|
+
|
|
53
|
+
@media (min-width:1562px) {
|
|
54
|
+
.tc-sidebar-scrollable {
|
|
55
|
+
left: 50%;
|
|
56
|
+
}
|
|
57
|
+
.tc-story-river {
|
|
58
|
+
left: 50%;
|
|
59
|
+
margin-left: -770px;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
The .tid file format does not support field names with colons. Rather than trying to catch all the unsupported variations that may appear, we'll just use JSON to send it across the wire, since that is the official fallback format in TW5. However, parsing a huge string value inside a JSON object is very slow, so we split off the text field and just send it after the other fields.
|
|
2
|
+
|
|
3
|
+
```json
|
|
4
|
+
{ "title": "New Tiddler" }
|
|
5
|
+
|
|
6
|
+
test
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
Note that because the text field is optional, if the entire string is a single line, the text field will not be set, but if it ends with two line breaks, the text field will be set to an empty string.
|
|
10
|
+
|
|
11
|
+
Putting a tiddler into this format:
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
const fields = tiddler.getFieldStrings();
|
|
15
|
+
const text = fields.text;
|
|
16
|
+
delete fields.text;
|
|
17
|
+
const data = JSON.stringify(fields)
|
|
18
|
+
+ (typeof text === "string" ? ("\n\n" + text) : "");
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
And parsing it out again:
|
|
22
|
+
|
|
23
|
+
```
|
|
24
|
+
const splitter = body.indexOf("\n\n");
|
|
25
|
+
if(splitter === -1) {
|
|
26
|
+
return JSON.parse(body);
|
|
27
|
+
} else {
|
|
28
|
+
return {
|
|
29
|
+
...JSON.parse(body.slice(0, splitter)),
|
|
30
|
+
text: body.slice(splitter + 2)
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
There may be edge cases I'm not aware of, but since it's literally just sending strings to NodeJS, there shouldn't be any problems. Text fields are expected to be strings and binary types are base64-encoded.
|