From d89798996540d86b7ee3d2e094c0d029fe07fc1b Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 19 Apr 2020 12:45:35 +0100 Subject: [PATCH 01/56] Add Product Hunt badge --- editions/tw5.com/tiddlers/hellothere/HelloThere.tid | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index b5f33311a..59ce4293a 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -46,3 +46,7 @@ It's well worth spending an hour or so playing with it to see how it can help yo Finding code that works flawlessly after just two or three years is magical enough but after seven years?! <<< [[Mark Gibbs, Network World|http://www.networkworld.com/article/3028098/open-source-tools/tiddlywiki-a-free-open-source-wiki-revisited.html]] + +
+TiddlyWiki - The open source non-linear notebook | Product Hunt Embed +
\ No newline at end of file From d9387cf4f80e7447c5750b245f2ea7dc2b1e13ec Mon Sep 17 00:00:00 2001 From: idotobi <16611056+idotobi@users.noreply.github.com> Date: Mon, 20 Apr 2020 14:06:41 +0200 Subject: [PATCH 02/56] Signing the CLA (#4581) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 15abe6d3d..8e5fb5d4c 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -395,3 +395,5 @@ Matthias Bilger, @m42e, 2020/03/11 Mandar Vaze, @mandarvaze, 2020/04/08 Lin Dongwu, @linonetwo, 2020/04/15 + +Tobias Hermann, @idotobi, 2020/04/19 From d579ce942c587c72e5c6108085a6f219bdf6bd07 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Mon, 20 Apr 2020 15:56:48 +0100 Subject: [PATCH 03/56] Fix broken links in static rendering Fixes #4577 --- .../howtos/Generating Static Sites with TiddlyWiki.tid | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid b/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid index 972942c59..d3008c771 100644 --- a/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid +++ b/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid @@ -10,7 +10,7 @@ There is much flexibility in how the static HTML is generated. The following sce ! Wiki Snapshots and Tiddler Snapshots -You can explore a static representation of this TiddlyWiki at [ext[static.html]]. That file is a static snapshot of the current DefaultTiddlers. Any tiddlers that it links to are referred to via URLs of the form `/static/HelloThere.html` that point to static snapshots of individual tiddlers. The tiddler HTML files reference a `static.css` stylesheet file. +You can explore a static representation of the main TiddlyWiki site at https://tiddlywiki.com/static.html. That file is a static snapshot of the current DefaultTiddlers. Any tiddlers that it links to are referred to via URLs of the form `/static/HelloThere.html` that point to static snapshots of individual tiddlers. The tiddler HTML files reference a `static.css` stylesheet file. The following commands are used to generate the sample static version of the TiddlyWiki5 site: @@ -26,7 +26,7 @@ The first RenderTiddlersCommand generates the HTML representations of individual It is also possible to produce a single HTML file that contains static representations of tiddlers, and uses standard HTML anchor links to jump between them. -For example: [ext[alltiddlers.html]] +For example: https://tiddlywiki.com/alltiddlers.html The example is built by the following commands: From 075321932a01855e5b23b78cbfbd9ddd9cddc451 Mon Sep 17 00:00:00 2001 From: Marxsal Date: Tue, 21 Apr 2020 03:41:50 -0700 Subject: [PATCH 04/56] Make commands for static generation more complete (#4588) * Make commands for static generation more complete * Added message about installing on node.js --- .../howtos/Generating Static Sites with TiddlyWiki.tid | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid b/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid index d3008c771..e9da4ae08 100644 --- a/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid +++ b/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid @@ -1,10 +1,12 @@ created: 20130828190200000 -modified: 20160622111343603 +modified: 20200421003440463 tags: [[TiddlyWiki on Node.js]] title: Generating Static Sites with TiddlyWiki type: text/vnd.tiddlywiki TiddlyWiki5 can be used to generate static HTML representations of a TiddlyWiki that doesn't need JavaScript. +This process requires that TiddlyWiki be installed on Node.js on your local system. See [[Installing TiddlyWiki on Node.js]] for +details. There is much flexibility in how the static HTML is generated. The following scenarios are all illustrated on https://tiddlywiki.com. @@ -15,9 +17,9 @@ You can explore a static representation of the main TiddlyWiki site at https://t The following commands are used to generate the sample static version of the TiddlyWiki5 site: ``` ---rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html static text/plain ---rendertiddler $:/core/templates/static.template.html static.html text/plain ---rendertiddler $:/core/templates/static.template.css static/static.css text/plain +tiddlywiki wikipath --rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html static text/plain +tiddlywiki wikipath --rendertiddler $:/core/templates/static.template.html static.html text/plain +tiddlywiki wikipath --rendertiddler $:/core/templates/static.template.css static/static.css text/plain ``` The first RenderTiddlersCommand generates the HTML representations of individual tiddlers, the second RenderTiddlerCommand saves the static version of the DefaultTiddlers, and the final RenderTiddlerCommand saves the stylesheet. (All the files are placed in the `output` folder of the wiki folder). From 7f014459031ef27ab5947f7cdf54ffc19e44c041 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Wed, 29 Apr 2020 17:02:17 +0100 Subject: [PATCH 05/56] Update information about Quine for iOS --- .../tiddlers/saving/Saving on iPad_iPhone.tid | 29 +++++++++---------- 1 file changed, 13 insertions(+), 16 deletions(-) diff --git a/editions/tw5.com/tiddlers/saving/Saving on iPad_iPhone.tid b/editions/tw5.com/tiddlers/saving/Saving on iPad_iPhone.tid index b04e81929..7348de741 100644 --- a/editions/tw5.com/tiddlers/saving/Saving on iPad_iPhone.tid +++ b/editions/tw5.com/tiddlers/saving/Saving on iPad_iPhone.tid @@ -3,28 +3,25 @@ created: 20131129101027725 delivery: App description: iPad/iPhone app for working with TiddlyWiki method: save -modified: 20171113105954683 +modified: 20200428224059031 tags: Saving iOS title: Saving on iPad/iPhone type: text/vnd.tiddlywiki -The iPad/iPhone app ''Quine'' makes it possible to edit and save changes to TiddlyWiki5, including working offline without a network connection. [[Download it here|https://itunes.apple.com/us/app/quine/id1228682923?mt=8]]. +The iPad/iPhone app ''Quine 2'' makes it possible to view, edit and then save changes to TiddlyWiki5 on iOS. [[Download it here|https://itunes.apple.com/us/app/quine/id1228682923?mt=8]]. Instructions for use: -# Open Quine -# On iPad -#* Touch the file button (<) or swipe from the left of the screen to open the file list -# On iPhone -#* The file list will show automatically unless a wiki is already open -# Touch the new file button (+) in the file list window to create a new TiddlyWiki5 file -# Swipe any file item from the right to see a list of additional "actions" possible for that file -# Touch any listed file item or folder to open it - wikis will open in Quine's custom browser -# When you have an open TiddlyWiki5: -# Try creating a new tiddler using the ''new tiddler'' <<.icon $:/core/images/new-button>> button in the sidebar -# Type some content for the tiddler, and click the <<.icon $:/core/images/done-button>> ''ok'' button -# Save your changes by clicking the <<.icon $:/core/images/save-button>> ''save changes'' button in the sidebar -#* A confirmation message should appear at the top right of the window -# Touch "Done" when done editing a wiki +# Open Quine 2 +# Tap the + toolbar button to create and open a new TiddlyWiki +# From the file list tap an existing TiddlyWiki file to open it +# Edit the TiddlyWiki as normal, and save as normal using either Autosave or the TiddlyWiki save button <<.icon $:/core/images/save-button>> +# Tap the left hand "Documents" toolbar button to close an open TiddlyWiki + +*Quine 2 works natively in iOS with the local file system and the iCloud file system +*Quine 2 also allows you to open, edit and save TiddlyWiki files stored with cloud file providers +*Quine 2 allows you to follow embedded WikiText links and canonical links to external files for cloud-like file providers which support "folder level sharing". +**This includes the apps "Secure Shellfish" and "Working Copy". Most providers, though, do not allow apps like Quine 2 to access linked files this way. +** If you wish to enable such links for "well behaved" file providers, toggle "on" the "Enable folder selection for out-of-sandbox links" setting in iOS Settings for Quine 2 //Note that Quine is published independently of TiddlyWiki// From 9cd5415dfe54b47819920aa3cf6ac2d5e3a9188e Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Thu, 30 Apr 2020 18:00:33 +0100 Subject: [PATCH 06/56] Add new favicon for prerelease Fixes #4619 --- .../prerelease/tiddlers/system/favicon.ico | Bin 0 -> 120606 bytes .../tiddlers/system/favicon.ico.meta | 2 ++ 2 files changed, 2 insertions(+) create mode 100644 editions/prerelease/tiddlers/system/favicon.ico create mode 100644 editions/prerelease/tiddlers/system/favicon.ico.meta diff --git a/editions/prerelease/tiddlers/system/favicon.ico b/editions/prerelease/tiddlers/system/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..707c675775ab832d50811114b4bf057ea348dfec GIT binary patch literal 120606 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 IVDN_k0Q?lFZ2$lO literal 0 HcmV?d00001 diff --git a/editions/prerelease/tiddlers/system/favicon.ico.meta b/editions/prerelease/tiddlers/system/favicon.ico.meta new file mode 100644 index 000000000..2f3e81713 --- /dev/null +++ b/editions/prerelease/tiddlers/system/favicon.ico.meta @@ -0,0 +1,2 @@ +title: $:/favicon.ico +type: image/x-icon From 5eee11beedd1b54a733a9ec37734c4d1a94aed19 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 2 May 2020 13:16:52 +0100 Subject: [PATCH 07/56] Update Catalan translation --- languages/ca-ES/Buttons.multids | 14 ++-- languages/ca-ES/ControlPanel.multids | 33 ++++++--- languages/ca-ES/Dates.multids | 70 ++++++++++---------- languages/ca-ES/Docs/ModuleTypes.multids | 2 +- languages/ca-ES/Docs/PaletteColours.multids | 2 + languages/ca-ES/EditTemplate.multids | 2 + languages/ca-ES/Fields.multids | 8 ++- languages/ca-ES/Filters.multids | 2 +- languages/ca-ES/Misc.multids | 4 +- languages/ca-ES/Search.multids | 2 +- languages/ca-ES/Snippets/TableOfContents.tid | 4 +- languages/ca-ES/ThemeTweaks.multids | 34 +++++----- 12 files changed, 98 insertions(+), 79 deletions(-) diff --git a/languages/ca-ES/Buttons.multids b/languages/ca-ES/Buttons.multids index 9ef77b819..7ed3e7232 100644 --- a/languages/ca-ES/Buttons.multids +++ b/languages/ca-ES/Buttons.multids @@ -85,7 +85,7 @@ Info/Hint: Mostra la informació d'aquest tiddler Italic/Caption: cursiva Italic/Hint: Aplica el format de cursiva a la selecció Language/Caption: idioma -Language/Hint: Trieu l'idioma de la interfície +Language/Hint: Trieu l'idioma LineWidth/Caption: amplada de la línia LineWidth/Hint: Trieu l'amplada de la línia per pintar Link/Caption: enllaç @@ -127,7 +127,7 @@ Palette/Hint: Trieu el color de la paleta Permalink/Caption: enllaç permanent Permalink/Hint: Fés que la barra d'adreces del navegador mostri un enllaç directe cap aquest tiddler Permaview/Caption: vista permanent -Permaview/Hint: Fés que la barra d'adreces del navegador mostri un enllaç directe cap a tots els tiddlers d'aquesta història +Permaview/Hint: Fés que la barra d'adreces del navegador mostri un enllaç directe cap a tots els tiddlers de la cronologia Picture/Caption: imatge Picture/Hint: Inserta una imatge Preview/Caption: previsualització @@ -154,11 +154,11 @@ Size/Caption/Height: Alçada: Size/Caption/Resize: Mida de la imatge Size/Caption/Width: Amplada: Size/Hint: Trieu la mida de la imatge -Stamp/Caption: marca -Stamp/Caption/New: Afegiu la vostra pròpia -Stamp/Hint: Inserta un fragment de text -Stamp/New/Text: Fragment de text. (Recordeu afegir un títol descriptiu al camp de la llegenda). -Stamp/New/Title: Es mostra el nom al menú +Stamp/Caption: Plantilla +Stamp/Caption/New: Afegeix una nova plantilla +Stamp/Hint: Inserta una plantilla de text +Stamp/New/Text: Plantilla de text. (Recordeu afegir un text descriptiu al camp //caption//). +Stamp/New/Title: Nom que es mostrarà al menú d'afegir una plantilla StoryView/Caption: visualització de la cronologia StoryView/Hint: Trieu la visualització de la cronologia Strikethrough/Caption: ratllat diff --git a/languages/ca-ES/ControlPanel.multids b/languages/ca-ES/ControlPanel.multids index ce761302b..217c0f6fd 100644 --- a/languages/ca-ES/ControlPanel.multids +++ b/languages/ca-ES/ControlPanel.multids @@ -9,10 +9,11 @@ Basics/Caption: Bàsic Basics/DefaultTiddlers/BottomHint: Useu [[claudàtors dobles]] per als títols amb espais. O podeu triar <$button set="$:/DefaultTiddlers" setTo="[list[$:/StoryList]]">mantenir l'ordre de la cronologia Basics/DefaultTiddlers/Prompt: Tiddlers per omissió: Basics/DefaultTiddlers/TopHint: Trieu quins tiddlers s'han de mostrar a l'inici: -Basics/Language/Prompt: Hola! Idioma actual: +Basics/Language/Prompt: Bon dia! Trieu l'idioma: Basics/NewJournal/Tags/Prompt: Etiquetes per als nous tiddlers del diari Basics/NewJournal/Text/Prompt: Text dels nous tiddlers del diari Basics/NewJournal/Title/Prompt: Títol dels nous tiddlers del diari +Basics/NewTiddler/Tags/Prompt: Etiquetes dels nous tiddlers Basics/NewTiddler/Title/Prompt: Títol dels nous tiddlers Basics/OverriddenShadowTiddlers/Prompt: Número de tiddlers ombra sobreescrits: Basics/ShadowTiddlers/Prompt: Número de tiddlers ombra: @@ -45,7 +46,7 @@ KeyboardShortcuts/Remove/Hint: suprimeix la drecera del teclat LoadedModules/Caption: Mòduls carregats LoadedModules/Hint: Aquests són els mòduls tiddlers enllaçats als seus tiddlers font. Els mòduls indicats en cursiva no disposen de tiddler font, sovint per que s'han configurat a l'arrencada. Palette/Caption: Paleta -Palette/Editor/Clone/Caption: clona paquets de connectors +Palette/Editor/Clone/Caption: clona Palette/Editor/Clone/Prompt: Es recomana que cloneu aquesta paleta ombra abans d'editar-la Palette/Editor/Delete/Hint: suprimeix aquesta entrada de la paleta actual Palette/Editor/Names/External/Show: Mostra el noms dels colors que no formen part de la paleta actual @@ -63,11 +64,13 @@ Parsing/Pragma/Caption: Regles d'anàlisi Pragma Plugins/Add/Caption: Obtingueu més connectors Plugins/Add/Hint: Instal·leu connectors de la biblioteca oficial Plugins/AlreadyInstalled/Hint: Aquest connector ja té instal·lada la versió <$text text=<>/> +Plugins/AlsoRequires: També necessita: Plugins/Caption: Connectors Plugins/ClosePluginLibrary: tanca la biblioteca de connectors Plugins/Disable/Caption: desactiva Plugins/Disable/Hint: Desactiva aquest connector quan la pàgina es torni a carregar Plugins/Disabled/Status: (desactivat) +Plugins/Downgrade/Caption: seactualitza Plugins/Empty/Hint: Cap Plugins/Enable/Caption: activa Plugins/Enable/Hint: Activa aquest connector quan la pàgina es torni a carregar @@ -80,9 +83,15 @@ Plugins/NotInstalled/Hint: Aquest connector no està instal·lat Plugins/OpenPluginLibrary: obre la biblioteca de connectors Plugins/Plugins/Caption: Connectors Plugins/Plugins/Hint: Connectors +Plugins/PluginWillRequireReload: (cal tornar-ho a carregar) Plugins/Reinstall/Caption: torna a instal·lar +Plugins/SubPluginPrompt: Amb <> sub-connectors disponibles Plugins/Themes/Caption: Temes Plugins/Themes/Hint: Connectors del tema +Plugins/Update/Caption: actualització +Plugins/Updates/Caption: Actualitzacions +Plugins/Updates/Hint: Actualitzacions disponibles dels connectors instal·lats +Plugins/Updates/UpdateAll/Caption: Actualitza <> connectors Saving/Caption: Desa Saving/DownloadSaver/AutoSave/Description: Permet que el gestor de baixades desi automàticament Saving/DownloadSaver/AutoSave/Hint: Activa el desat automàtic pel gestor de baixades @@ -102,6 +111,8 @@ Saving/GitService/Branch: Branca destinació a on desar Saving/GitService/CommitMessage: Desat per TiddlyWiki Saving/GitService/Description: Aquests paràmetres només s'utilitzen quan es desa a <> Saving/GitService/Filename: Nom del fitxer destinació (per exemple `index.html`) +Saving/GitService/Gitea/Caption: Gestor de baixades Gitea +Saving/GitService/Gitea/Password: Testimoni d'accès personal de l'API (via la interfície web de Gitea: `Paràmetres | Aplicacions | Genera un Nou Testimoni`) Saving/GitService/GitHub/Caption: Gestor de baixades de ~GitHub Saving/GitService/GitHub/Password: Contrasenya, clau OAUTH o clau d'accés personal (veieu els detalls a la [[pàgina d'ajuda del GitHub|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] ) Saving/GitService/GitLab/Caption: Gestor de baixades de ~GitLab @@ -128,13 +139,13 @@ Settings/AutoSave/Disabled/Description: No desis els canvis de forma automàtica Settings/AutoSave/Enabled/Description: Desa els canvis de forma automàtica Settings/AutoSave/Hint: Desa els canvis de forma automàtica mentre s'està editant Settings/CamelCase/Caption: Enllaços wiki tipus CamelCase -Settings/CamelCase/Description: Activa l'enllaç automàtic de ~CamelCase -Settings/CamelCase/Hint: Podeu desactivar l’enllaç automàtic de les frases ~CamelCase globalment. Cal que es torni a carregar per tenir efecte +Settings/CamelCase/Description: Activa l'enllaç automàtic tipus ~CamelCase +Settings/CamelCase/Hint: Podeu desactivar globalment l’enllaç automàtic de les frases ~CamelCase. Cal que es torni a carregar per tenir efecte Settings/Caption: Paràmetres Settings/DefaultMoreSidebarTab/Caption: Pestanya Més de la barra lateral per omissió -Settings/DefaultMoreSidebarTab/Hint: Indiqueu quina pestanya Més de la barra lateral es mostra per omissió +Settings/DefaultMoreSidebarTab/Hint: Indiqueu la pestanya Més de la barra lateral que es mostra per omissió Settings/DefaultSidebarTab/Caption: Pestanya de la barra lateral que es mostra per omissió -Settings/DefaultSidebarTab/Hint: Indica quina pestanya de la barra lateral es mostra per omissió +Settings/DefaultSidebarTab/Hint: Indiqueu la pestanya de la barra lateral que es mostra per omissió Settings/EditorToolbar/Caption: Barra d'eines de l'editor Settings/EditorToolbar/Description: Mostra la barra d'eines de l'editor Settings/EditorToolbar/Hint: Activa o desactiva la barra d'eines de l'editor: @@ -144,12 +155,12 @@ Settings/InfoPanelMode/Hint: Controla quan es tanca el tauler d'informació del Settings/InfoPanelMode/Popup/Description: El tauler d’informació del Tiddler es tanca automàticament Settings/InfoPanelMode/Sticky/Description: El tauler d’informació del Tiddler roman obert fins que es tanqui explícitament Settings/LinkToBehaviour/Caption: Comportament d'obertura del tiddler -Settings/LinkToBehaviour/InsideRiver/Hint: Navegació des de //dins de// la cronologia +Settings/LinkToBehaviour/InsideRiver/Hint: Navegació des de //dins// de la cronologia Settings/LinkToBehaviour/OpenAbove: Obre per sobre del tiddler actual Settings/LinkToBehaviour/OpenAtBottom: Obre a la part inferior de la cronologia Settings/LinkToBehaviour/OpenAtTop: Obre a la part superior de la cronologia Settings/LinkToBehaviour/OpenBelow: Obre per sota del tiddler actual -Settings/LinkToBehaviour/OutsideRiver/Hint: Navegació des de //fora de//la cronologia +Settings/LinkToBehaviour/OutsideRiver/Hint: Navegació des de //fora// de la cronologia Settings/MissingLinks/Caption: Enllaços Wiki Settings/MissingLinks/Description: Activa els enllaços als tiddlers que falten Settings/MissingLinks/Hint: Escolliu si voleu enllaçar els tiddlers que encara no existeixen @@ -157,11 +168,11 @@ Settings/NavigationAddressBar/Caption: Barra d'adreces de navegació Settings/NavigationAddressBar/Hint: Comportament de la barra d'adreces en navegar cap a un tiddler: Settings/NavigationAddressBar/No/Description: No actualitzis la barra d'adreces Settings/NavigationAddressBar/Permalink/Description: Inclou el tiddler destinació -Settings/NavigationAddressBar/Permaview/Description: Inclou el tiddler destinació i la seqùència actual +Settings/NavigationAddressBar/Permaview/Description: Inclou el tiddler destinació i la cronologia actual Settings/NavigationHistory/Caption: Històrial de navegació Settings/NavigationHistory/Hint: Actualitza l'històrial del navegador en navegar cap a un tiddler: -Settings/NavigationHistory/No/Description: No actualitzis la cronologia -Settings/NavigationHistory/Yes/Description: Actualitza la cronologia +Settings/NavigationHistory/No/Description: No actualitzis l'històrial +Settings/NavigationHistory/Yes/Description: Actualitza l'històrial Settings/NavigationPermalinkviewMode/Caption: Mode enllaç permanent/vista permanent Settings/NavigationPermalinkviewMode/CopyToClipboard/Description: Copia l’URL de l'enllaç permanent/vista permanent al portapapers Settings/NavigationPermalinkviewMode/Hint: Trieu com es gestiona l'enllaç permanent/vista permanent diff --git a/languages/ca-ES/Dates.multids b/languages/ca-ES/Dates.multids index 5e26aa023..e8ab0c60d 100644 --- a/languages/ca-ES/Dates.multids +++ b/languages/ca-ES/Dates.multids @@ -1,36 +1,36 @@ title: $:/language/ Date/DaySuffix/1: r -Date/DaySuffix/10: é -Date/DaySuffix/11: é -Date/DaySuffix/12: é -Date/DaySuffix/13: é -Date/DaySuffix/14: é -Date/DaySuffix/15: é -Date/DaySuffix/16: é -Date/DaySuffix/17: é -Date/DaySuffix/18: é -Date/DaySuffix/19: é -Date/DaySuffix/2: n -Date/DaySuffix/20: é -Date/DaySuffix/21: é -Date/DaySuffix/22: é -Date/DaySuffix/23: r -Date/DaySuffix/24: é -Date/DaySuffix/25: é -Date/DaySuffix/26: é -Date/DaySuffix/27: é -Date/DaySuffix/28: é -Date/DaySuffix/29: é -Date/DaySuffix/3: r -Date/DaySuffix/30: é -Date/DaySuffix/31: é -Date/DaySuffix/4: t -Date/DaySuffix/5: é -Date/DaySuffix/6: é -Date/DaySuffix/7: é -Date/DaySuffix/8: é -Date/DaySuffix/9: é +Date/DaySuffix/10: +Date/DaySuffix/11: +Date/DaySuffix/12: +Date/DaySuffix/13: +Date/DaySuffix/14: +Date/DaySuffix/15: +Date/DaySuffix/16: +Date/DaySuffix/17: +Date/DaySuffix/18: +Date/DaySuffix/19: +Date/DaySuffix/2: +Date/DaySuffix/20: +Date/DaySuffix/21: +Date/DaySuffix/22: +Date/DaySuffix/23: +Date/DaySuffix/24: +Date/DaySuffix/25: +Date/DaySuffix/26: +Date/DaySuffix/27: +Date/DaySuffix/28: +Date/DaySuffix/29: +Date/DaySuffix/3: +Date/DaySuffix/30: +Date/DaySuffix/31: +Date/DaySuffix/4: +Date/DaySuffix/5: +Date/DaySuffix/6: +Date/DaySuffix/7: +Date/DaySuffix/8: +Date/DaySuffix/9: Date/Long/Day/0: Diumenge Date/Long/Day/1: Dilluns Date/Long/Day/2: Dimarts @@ -39,16 +39,16 @@ Date/Long/Day/4: Dijous Date/Long/Day/5: Divendres Date/Long/Day/6: Dissabte Date/Long/Month/1: de gener de -Date/Long/Month/10: d'octubre de +Date/Long/Month/10: octubre de Date/Long/Month/11: de novembre de Date/Long/Month/12: de desembre de Date/Long/Month/2: de febrer de Date/Long/Month/3: de març de -Date/Long/Month/4: d'abril de +Date/Long/Month/4: abril de Date/Long/Month/5: de maig de Date/Long/Month/6: de juny de Date/Long/Month/7: de juliol de -Date/Long/Month/8: d'agost de +Date/Long/Month/8: agost de Date/Long/Month/9: de septembre de Date/Short/Day/0: Diu Date/Short/Day/1: Dil @@ -62,8 +62,8 @@ Date/Short/Month/12: Des Date/Short/Month/4: Abr Date/Short/Month/5: Mai Date/Short/Month/8: Ago -Date/Period/am: m. -Date/Period/pm: t. +Date/Period/am: del matí +Date/Period/pm: de la tarda RelativeDate/Future/Days: <> dies des d'ara RelativeDate/Future/Hours: <> hores des d'ara RelativeDate/Future/Minutes: <> minuts des d'ara diff --git a/languages/ca-ES/Docs/ModuleTypes.multids b/languages/ca-ES/Docs/ModuleTypes.multids index 80e66c778..a1b5df69f 100644 --- a/languages/ca-ES/Docs/ModuleTypes.multids +++ b/languages/ca-ES/Docs/ModuleTypes.multids @@ -14,7 +14,7 @@ library: Tipus de mòdul genèric per a mòduls JavaScript de propòsit general. macro: Definicions de macros JavaScript. parser: Analitzadors sintàctics per a diferents tipus de continguts. route: Defineix com el servidor HTTP integrat gestiona els patrons d’URL individuals. -saver: Gestionen diferents mètodes per a desar fitxers des del navegador. +saver: Els gestors de baixades (saver) ofereixen diferents mètodes per a desar fitxers des del navegador. startup: Funcions de l'inici storyview: Les vistes de la cronologia personalitzen l'animació i el comportament dels widgets llista. texteditoroperation: Una operació de la barra d'eines de l'editor de text. diff --git a/languages/ca-ES/Docs/PaletteColours.multids b/languages/ca-ES/Docs/PaletteColours.multids index 83a739405..f8fdcd111 100644 --- a/languages/ca-ES/Docs/PaletteColours.multids +++ b/languages/ca-ES/Docs/PaletteColours.multids @@ -29,6 +29,8 @@ external-link-foreground: Primer plà de l'enllaç extern external-link-foreground-hover: Primer plà de la bafarada de l'enllaç extern external-link-foreground-visited: Primer plà de l'enllaç extern visitat foreground: Primer plà general +menubar-background: Fons de la barra de menús +menubar-foreground: Primer plà de la barra de menús message-background: Fons de la capsa de text message-border: Vora de la capsa de text message-foreground: Primer plà de la capsa de text diff --git a/languages/ca-ES/EditTemplate.multids b/languages/ca-ES/EditTemplate.multids index 452715f03..4b0a5c8b8 100644 --- a/languages/ca-ES/EditTemplate.multids +++ b/languages/ca-ES/EditTemplate.multids @@ -8,6 +8,7 @@ Field/Dropdown/Hint: Mostra la llista de camps Field/Remove/Caption: suprimeix el camp Field/Remove/Hint: Suprimeix el camp Fields/Add/Button: afegeix +Fields/Add/Button/Hint: Afegeix un camp nou al tiddler Fields/Add/Dropdown/System: Camps del sistema Fields/Add/Dropdown/User: Camps de l'usuari Fields/Add/Name/Placeholder: nom del camp @@ -16,6 +17,7 @@ Fields/Add/Value/Placeholder: valors del camp Shadow/OverriddenWarning: Aquest és un tiddler ombra modificat. Podeu restablir la versió per omisió suprimint aquest tiddler Shadow/Warning: Aquest és un tiddler ombra. Qualsevol canvi sobreescriurà la versió per omisió Tags/Add/Button: afegeix +Tags/Add/Button/Hint: afegeix una etiqueta Tags/Add/Placeholder: nom de l'etiqueta Tags/Dropdown/Caption: llista d'etiquetes Tags/Dropdown/Hint: Mostra la llista d'etiquetes diff --git a/languages/ca-ES/Fields.multids b/languages/ca-ES/Fields.multids index e27319d73..b67e5e3fc 100644 --- a/languages/ca-ES/Fields.multids +++ b/languages/ca-ES/Fields.multids @@ -1,13 +1,14 @@ title: $:/language/Docs/Fields/ _canonical_uri: La URI sencera d'una imatge externa al tiddler +_is_skinny: Si està present, indica que el camp de text del tiddler s'ha de carregar des del servidor bag: El nom de la bossa de la que va venir un tiddler caption: El text que es mostrarà en una pestanya o botó color: El valor del color CSS associat amb un tiddler component: El nom del component responsable d'un [[tiddler d'avís|AlertMechanism]] created: La data en que es va generar el tiddler creator: El nom de la persona que va generar el tiddler -current-tiddler: Utilitzat per desar la darrera còpia del tiddler a una [[cronologia|HistoryMechanism]] +current-tiddler: Utilitzat per desar la darrera còpia del tiddler de l'[[històrial|HistoryMechanism]] dependents: Per a un connector, llista els títols que depenen del connector description: El text que descriu un connector, o un diàleg modal draft.of: Per als tiddlers esborranys, conté el títol del tiddler del qual és un esborrany @@ -15,7 +16,7 @@ draft.title: Per als tiddlers esborranys, conté el títol proposat per al tiddl footer: El text del peu d'un assistent hide-body: El valor de la plantilla de vista amaga el cos dels tiddlers és: ''sí'' icon: El títol del tiddler que conté la icona associada amb el tiddler -library: Si està a "si" indica que un tiddler s'ha de sar com una biblioteca de JavaScript +library: Si està a "si" indica que un tiddler s'ha desar com una biblioteca de JavaScript list: Una llista ordenada de títols de tiddlers associats amb un tiddler list-after: Si està activat, el títol del tiddler després del qual aquest tiddler s'hauria d'afegir a la llista ordenada de títols de tiddler list-before: Si està activat, el títol del tiddler abans del qual aquest tiddler s'hauria d'afegir a la llista ordenada de títols de tiddler, o a l'inici de la llista si aquest camp hi és però està buit @@ -30,7 +31,8 @@ source: La URL orígen associada a un tiddler subtitle: El text del subtítol d'un assistent tags: Una llista d'etiquetes associades a un tiddler text: El text del cos d'un tiddler +throttle.refresh: Si està present, l’acceleració actualitza aquest tiddler title: El nom únic d'un tiddler -toc-link: El valor de Suprimeix l'enllaç del tiddler a la Taula de Continguts està a: ''no'' +toc-link: El valor de Suprimeix l'enllaç del tiddler a l'Índex està a: ''no'' type: El tipus de contingut d'un tiddler version: Informació de la versió d'un connector diff --git a/languages/ca-ES/Filters.multids b/languages/ca-ES/Filters.multids index 80e9b119d..5d28cbffe 100644 --- a/languages/ca-ES/Filters.multids +++ b/languages/ca-ES/Filters.multids @@ -10,7 +10,7 @@ RecentSystemTiddlers: Tiddlers que s'han modificat recentment, inclós els tiddl RecentTiddlers: Tiddlers que s'han modificat recentment SessionTiddlers: Tiddlers modificats des que es va carregar el wiki ShadowTiddlers: Tiddlers amb ombra predefinits -StoryList: Tiddlers al riu de la història, a excepció de <$text text="$:/AdvancedSearch"/> +StoryList: Els tiddlers de la cronologia, a excepció de <$text text="$:/AdvancedSearch"/> SystemTags: Etiquetes del sistema SystemTiddlers: Tiddlers del sistema TypedTiddlers: Tiddlers amb text que no és wiki diff --git a/languages/ca-ES/Misc.multids b/languages/ca-ES/Misc.multids index 12e82a572..616b1edb2 100644 --- a/languages/ca-ES/Misc.multids +++ b/languages/ca-ES/Misc.multids @@ -27,6 +27,7 @@ Error/Filter: S'ha produït un error del filtre Error/FilterSyntax: S'ha produït un error de sintaxi en l'expressió del filtre Error/IsFilterOperator: S'ha produït un error del filtre: operant desconegut per a l’operador de filtre "is" Error/LoadingPluginLibrary: S'ha produït un error en carregar la biblioteca del connector +Error/NetworkErrorAlert: `

''Error de la xarxa''

Sembla que s'ha perdut la connexió amb el servidor. Això pot indicar un problema amb la vostra connexió de la xarxa. Intenteu restaurar la connectivitat de xarxa abans de continuar.

' Qualsevol canvi no guardat es sincronitzarà automàticament quan es restableixi la connectivitat''.' Error/RecursiveTransclusion: S'ha produït un error de transclusió recursiva en el widget de transclusió Error/RetrievingSkinny: S'ha produït un error en recuperar la llista de tiddler parcials Error/SavingToTWEdit: S'ha produït un error en desar a TWEdit @@ -63,8 +64,9 @@ SystemTiddlers/Include/Prompt: Inclou els tiddlers del sistema TagManager/Colour/Heading: Color TagManager/Count/Heading: Compte TagManager/Icon/Heading: Icona +TagManager/Icons/None: Cap TagManager/Info/Heading: Informació TagManager/Tag/Heading: Etiqueta -Tiddler/DateFormat: DDth de MMM de YYYY a les hh12:0mmam +Tiddler/DateFormat: DD MMM YYYY a les hh12:0mm am UnsavedChangesWarning: Teniu canvis sense desar al TiddlyWiki Yes: Sí diff --git a/languages/ca-ES/Search.multids b/languages/ca-ES/Search.multids index 0a212fc4b..254e55501 100644 --- a/languages/ca-ES/Search.multids +++ b/languages/ca-ES/Search.multids @@ -2,7 +2,7 @@ title: $:/language/Search/ DefaultResults/Caption: Llista Filter/Caption: Filtre -Filter/Hint: Cerca amb una [[filter expression|https://tiddlywiki.com/static/Filters.html]] +Filter/Hint: Cerca amb una [[expressió de filtre|https://tiddlywiki.com/static/Filters.html]] Filter/Matches: //<> coincidències// Matches: //<> coincidències// Matches/All: Totes les coincidències: diff --git a/languages/ca-ES/Snippets/TableOfContents.tid b/languages/ca-ES/Snippets/TableOfContents.tid index 5d5243e69..4818afacd 100644 --- a/languages/ca-ES/Snippets/TableOfContents.tid +++ b/languages/ca-ES/Snippets/TableOfContents.tid @@ -1,9 +1,9 @@ title: $:/language/Snippets/TableOfContents tags: $:/tags/TextEditor/Snippet -caption: Taula de continguts +caption: Índex
-<> +<>
\ No newline at end of file diff --git a/languages/ca-ES/ThemeTweaks.multids b/languages/ca-ES/ThemeTweaks.multids index a22ccb012..3b0d09a79 100644 --- a/languages/ca-ES/ThemeTweaks.multids +++ b/languages/ca-ES/ThemeTweaks.multids @@ -5,37 +5,37 @@ Metrics/BodyFontSize: Mida del tipus de lletra per al cos de tiddler Metrics/BodyLineHeight: Alçada de la línia per al cos de tiddler Metrics/FontSize: Mida del tipus de lletra Metrics/LineHeight: Alçada de la línia -Metrics/SidebarBreakpoint: Punt d’interrupció de la barra lateral -Metrics/SidebarBreakpoint/Hint: l’amplada mínima de la pàgina en què apareixeran la cronologia i la barra lateral costat a costat +Metrics/SidebarBreakpoint: Punt de baixada de la cronologia +Metrics/SidebarBreakpoint/Hint: l’amplada mínima de la pàgina en que la cronologia i la barra lateral es mostren una al costat de l'altre Metrics/SidebarWidth: Amplada de la barra lateral Metrics/SidebarWidth/Hint: l'amplada de la barra lateral amb una disposició fluida fixe -Metrics/StoryLeft: Posició esquerra de la cronologia -Metrics/StoryLeft/Hint: distància entre el marge esquerre de la cronologia
(àrea del tiddler) fins a l’esquerra de la pàgina -Metrics/StoryRight: Dreta de la cronologia -Metrics/StoryRight/Hint: distància entre el marge esquerre de la barra lateral
fins a l’esquerra de la pàgina -Metrics/StoryTop: Posició de la cronologia -Metrics/StoryTop/Hint: distància del marge superior de la cronologia
fins a la part superior de la pàgina +Metrics/StoryLeft: Marge esquerra de la cronologia +Metrics/StoryLeft/Hint: marge esquerre entre la cronologia
(zona dels tiddlers) i la vora esquerra de la pàgina +Metrics/StoryRight: Marge dret de la cronologia +Metrics/StoryRight/Hint: distància entre el marge esquerre entre la barra lateral
i la vora esquerra de la pàgina +Metrics/StoryTop: Posició vertical de la cronologia +Metrics/StoryTop/Hint: distància del marge superior de la cronologia
fins a la vora superior de la pàgina Metrics/StoryWidth: Amplada de la cronologia Metrics/StoryWidth/Hint: l'amplada global de la cronologia -Metrics/TiddlerWidth: Amplada del tiddler -Metrics/TiddlerWidth/Hint: dins de la cronologia +Metrics/TiddlerWidth: Amplada dels tiddlers +Metrics/TiddlerWidth/Hint: a la cronologia Options: Opcions -Options/CodeWrapping: Enganxa línies llargues en blocs de codi +Options/CodeWrapping: Divideix les línies llargues dels blocs de codi Options/SidebarLayout: Disposició de la barra lateral -Options/SidebarLayout/Fixed-Fluid: Cronologia fixe, barra lateral fluida -Options/SidebarLayout/Fluid-Fixed: Cronologia fluida, barra lateral fixe +Options/SidebarLayout/Fixed-Fluid: Cronologia fixa, barra lateral fluida +Options/SidebarLayout/Fluid-Fixed: Cronologia fluida, barra lateral fixa Options/StickyTitles: Títols enganxosos Options/StickyTitles/Hint: Fa que els títols del tiddler "s'enganxin" a la part superior de la finestra del navegador Settings: Paràmetres Settings/BackgroundImage: Imatge de fons de la pàgina Settings/BackgroundImageAttachment: Adjunt de la imatge de fons de la pàgina -Settings/BackgroundImageAttachment/Fixed: Fixe a la finestra +Settings/BackgroundImageAttachment/Fixed: Fixa-ho a la finestra Settings/BackgroundImageAttachment/Scroll: Desplaça-ho amb els tiddlers Settings/BackgroundImageSize: Mida de la imatge de fons de la pàgina -Settings/BackgroundImageSize/Contain: Conté -Settings/BackgroundImageSize/Cover: Coberta +Settings/BackgroundImageSize/Contain: Omple +Settings/BackgroundImageSize/Cover: Retalla Settings/CodeFontFamily: Família del tipus de lletra del codi Settings/EditorFontFamily: Família del tipus de lletra de l'editor Settings/FontFamily: Família del tipus de lletra -ThemeTweaks: Retocs del tema +ThemeTweaks: Personalitza el tema ThemeTweaks/Hint: Podeu modificar alguns aspectes del tema ''Vainilla''. From 1f354a972e0217e034d1f59d31577c1fd6b186f3 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 2 May 2020 14:07:39 +0100 Subject: [PATCH 08/56] Freelinks plugin: Add support for ignoring case --- plugins/tiddlywiki/freelinks/macros-view.tid | 6 +++++- plugins/tiddlywiki/freelinks/settings.tid | 2 ++ plugins/tiddlywiki/freelinks/text.js | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/tiddlywiki/freelinks/macros-view.tid b/plugins/tiddlywiki/freelinks/macros-view.tid index 20d85b088..81d6e8851 100644 --- a/plugins/tiddlywiki/freelinks/macros-view.tid +++ b/plugins/tiddlywiki/freelinks/macros-view.tid @@ -1,4 +1,8 @@ title: $:/plugins/tiddlywiki/freelinks/macros/view tags: $:/tags/Macro/View -<$set name="tv-freelinks" value={{$:/config/Freelinks/Enable}}/> +<$set name="tv-freelinks" value={{$:/config/Freelinks/Enable}}> + +<$set name="tv-freelinks-ignore-case" value={{$:/config/Freelinks/IgnoreCase}}/> + + \ No newline at end of file diff --git a/plugins/tiddlywiki/freelinks/settings.tid b/plugins/tiddlywiki/freelinks/settings.tid index 0b6cb247c..844eb1d26 100644 --- a/plugins/tiddlywiki/freelinks/settings.tid +++ b/plugins/tiddlywiki/freelinks/settings.tid @@ -1,3 +1,5 @@ title: $:/plugins/tiddlywiki/freelinks/settings <$checkbox tiddler="$:/config/Freelinks/Enable" field="text" checked="yes" unchecked="no" default="no"> <$link to="$:/config/Freelinks/Enable">Enable freelinking within tiddler view templates + +<$checkbox tiddler="$:/config/Freelinks/IgnoreCase" field="text" checked="yes" unchecked="no" default="no"> <$link to="$:/config/Freelinks/IgnoreCase">Ignore case diff --git a/plugins/tiddlywiki/freelinks/text.js b/plugins/tiddlywiki/freelinks/text.js index 64776f4c6..7ea35e090 100755 --- a/plugins/tiddlywiki/freelinks/text.js +++ b/plugins/tiddlywiki/freelinks/text.js @@ -79,9 +79,10 @@ TextNodeWidget.prototype.execute = function() { reparts.push("(\\b" + $tw.utils.escapeRegExp(title) + "\\b)"); } }); + var ignoreCase = self.getVariable("tv-freelinks-ignore-case",{defaultValue:"no"}).trim() === "yes"; return { titles: titles, - regexp: new RegExp(reparts.join("|"),"") + regexp: new RegExp(reparts.join("|"),ignoreCase ? "i" : "") }; }); // Repeatedly linkify From 85fd43a38c644b533932d2d99b0d1800fae6e300 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 2 May 2020 14:09:47 +0100 Subject: [PATCH 09/56] Update release note --- editions/prerelease/tiddlers/Release 5.1.23.tid | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/editions/prerelease/tiddlers/Release 5.1.23.tid b/editions/prerelease/tiddlers/Release 5.1.23.tid index 8eb37fd60..3586a1ad0 100644 --- a/editions/prerelease/tiddlers/Release 5.1.23.tid +++ b/editions/prerelease/tiddlers/Release 5.1.23.tid @@ -12,11 +12,12 @@ type: text/vnd.tiddlywiki ! Translation Improvements -* +* Catalan ! Plugin Improvements * Freelinks Plugin +** [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/1f354a972e0217e034d1f59d31577c1fd6b186f3]] support for ignoring case when matching titles ** [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/05e6c1bf62cd51df6aa025d0ad07f7959cde6fa0]] bug with autolinking within HTML `` elements * Twitter Plugin ** [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/3a20fb1e3a41a032574d227a8c770a11ae0a5d58]] warning if wiki needs to be saved and reloaded @@ -30,6 +31,7 @@ type: text/vnd.tiddlywiki * [[Updated|https://github.com/Jermolene/TiddlyWiki5/pull/4590]] Vanilla theme to use palette colours for the [[browser selection outline|https://developer.mozilla.org/en-US/docs/Web/CSS/::selection]] * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/1546a4a1895b93a47b79c9d37b94be039604443a]] warning message about using the online plugin library with the client-server configuration * [[Improved|https://github.com/Jermolene/TiddlyWiki5/pull/4585]] Gruvbox palette readability of toolbar buttons +* [[Changed|https://github.com/Jermolene/TiddlyWiki5/commit/9cd5415dfe54b47819920aa3cf6ac2d5e3a9188e]] favicon for the prerelease edition ! Hackability Improvements From 6a0ff7db1807f45b73061ced82f5a85f1a529bbf Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 2 May 2020 21:22:44 +0100 Subject: [PATCH 10/56] JSZip Plugin: Add ability to build and download ZIP files --- editions/prerelease/tiddlywiki.info | 3 +- plugins/tiddlywiki/jszip/docs.tid | 43 +++++++++++ plugins/tiddlywiki/jszip/examples.tid | 24 ++++++ plugins/tiddlywiki/jszip/plugin.info | 2 +- plugins/tiddlywiki/jszip/startup.js | 103 ++++++++++++++++++++++++++ 5 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 plugins/tiddlywiki/jszip/docs.tid create mode 100644 plugins/tiddlywiki/jszip/examples.tid create mode 100644 plugins/tiddlywiki/jszip/startup.js diff --git a/editions/prerelease/tiddlywiki.info b/editions/prerelease/tiddlywiki.info index 2dba4aed6..5d52d5e4a 100644 --- a/editions/prerelease/tiddlywiki.info +++ b/editions/prerelease/tiddlywiki.info @@ -15,7 +15,8 @@ "tiddlywiki/dynannotate", "tiddlywiki/codemirror", "tiddlywiki/comments", - "tiddlywiki/menubar" + "tiddlywiki/menubar", + "tiddlywiki/jszip" ], "themes": [ "tiddlywiki/vanilla", diff --git a/plugins/tiddlywiki/jszip/docs.tid b/plugins/tiddlywiki/jszip/docs.tid new file mode 100644 index 000000000..7e605a9cc --- /dev/null +++ b/plugins/tiddlywiki/jszip/docs.tid @@ -0,0 +1,43 @@ +title: $:/plugins/tiddlywiki/jszip/docs + +The following messages are provided to allow programmatic manipulation of ZIP files stored within tiddlers: + +!! Create ZIP file + +``` +<$action-sendmessage $message="tm-zip-create" $param="MyZipTiddler"/> +``` + +* ''$param'': title of tiddler to contain ZIP file + +!! Add/replace text file within ZIP file + +``` +<$action-sendmessage $message="tm-zip-add-text-file" $param="MyZipTiddler" filename="my/newfilename.txt" text="The content"/> +``` + +* ''$param'': title of tiddler containing ZIP file +* ''filename'': filename of file to be added +* ''text'': text content of file to be added + +!! Render tiddler to ZIP file + +``` +<$action-sendmessage $message="tm-zip-render-file" $param="MyZipTiddler" filename="my/newfilename.txt" tiddler="HelloThere" template="The content" mode="block" output="text/plain"/> +``` + +* ''$param'': title of tiddler containing ZIP file +* ''filename'': filename of output file +* ''tiddler'': optional title of currentTiddler for rendering template +* ''template'': title of template tiddler to be rendered +* ''mode'': optional parsing mode "block" (default) or "inline" +* ''output'': output format: "text/plain" (default) for the text content or "text/html" for the full HTML content, including tags + +!! Download a ZIP file + +``` +<$action-sendmessage $message="tm-zip-download" $param="MyZipTiddler" filename="myzipfile.zip"/> +``` + +* ''$param'': title of tiddler containing ZIP file +* ''filename'': filename to be suggested to browser for downloaded file diff --git a/plugins/tiddlywiki/jszip/examples.tid b/plugins/tiddlywiki/jszip/examples.tid new file mode 100644 index 000000000..681a0c364 --- /dev/null +++ b/plugins/tiddlywiki/jszip/examples.tid @@ -0,0 +1,24 @@ +title: $:/plugins/tiddlywiki/jszip/examples + +\define actions-render-static-site() +<$action-sendmessage $message="tm-zip-create" $param="$:/temp/_ZipTiddler"/> +<$list filter="[all[tiddlers]!is[system]limit[100]]"> +<$action-sendmessage $message="tm-zip-render-file" $param="$:/temp/_ZipTiddler" filename={{{ [encodeuricomponent[]addsuffix[.html]] }}} tiddler=<> template="$:/core/templates/static.tiddler.html"/> + +<$action-sendmessage $message="tm-zip-render-file" $param="$:/temp/_ZipTiddler" filename="static.css" template="$:/core/templates/static.template.css"/> +<$action-sendmessage $message="tm-zip-download" $param="$:/temp/_ZipTiddler" filename="myzip.zip"/> +\end + +! Rendering a Static Site to a Zip File + +The actions below create a ZIP file containing a static HTML rendering of the first 100 non-system tiddlers: + +
+<$text text=<>/>
+
+ +<$button actions=<>> +Render site + + +Temporary zip file: $:/temp/_ZipTiddler diff --git a/plugins/tiddlywiki/jszip/plugin.info b/plugins/tiddlywiki/jszip/plugin.info index ee0d00145..dcf94eeb2 100644 --- a/plugins/tiddlywiki/jszip/plugin.info +++ b/plugins/tiddlywiki/jszip/plugin.info @@ -3,5 +3,5 @@ "name": "JSZip", "description": "JSZip library", "author": "Stuart Knightley, David Duponchel, Franz Buchinger, António Afonso", - "list": "readme license" + "list": "readme docs examples license" } diff --git a/plugins/tiddlywiki/jszip/startup.js b/plugins/tiddlywiki/jszip/startup.js new file mode 100644 index 000000000..588ef1476 --- /dev/null +++ b/plugins/tiddlywiki/jszip/startup.js @@ -0,0 +1,103 @@ +/*\ +title: $:/plugins/tiddlywiki/jszip/startup.js +type: application/javascript +module-type: startup + +Setup the root widget event handlers + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +var JSZip = require("$:/plugins/tiddlywiki/jszip/jszip.js"); + +// Export name and synchronous status +exports.name = "jszip"; +exports.platforms = ["browser"]; +exports.after = ["startup"]; +exports.synchronous = true; + +// Install the root widget event handlers +exports.startup = function() { + $tw.rootWidget.addEventListener("tm-zip-create",function(event) { + if(event.param) { + var zip = new JSZip(); + saveZipTiddler(event.param,zip); + } + }); + $tw.rootWidget.addEventListener("tm-zip-add-text-file",function(event) { + var paramObject = event.paramObject || {}; + if(event.param && paramObject.filename && paramObject.text) { + var zip = loadZipTiddler(event.param); + zip.file(paramObject.filename,paramObject.text); + saveZipTiddler(event.param,zip); + } + }); + $tw.rootWidget.addEventListener("tm-zip-render-file",function(event) { + var paramObject = event.paramObject || {}; + if(event.param && paramObject.filename && paramObject.template) { + var zip = loadZipTiddler(event.param), + outputType = paramObject.output || "text/plain", + templateTitle = paramObject.template, + text = $tw.wiki.renderTiddler(outputType,templateTitle,{ + parseAsInline: paramObject.mode === "inline", + variables: { + currentTiddler: paramObject.tiddler + } + }); + zip.file(paramObject.filename,text); + saveZipTiddler(event.param,zip); + } + }); + $tw.rootWidget.addEventListener("tm-zip-download",function(event) { + var paramObject = event.paramObject || {}; + if(event.param) { + downloadZipFile(event.param,paramObject.filename || "file.zip"); + } + }); +}; + +function loadZipTiddler(title) { + return $tw.wiki.getGlobalCache("jszip",function() { + var zip = new JSZip(), + tiddler = $tw.wiki.getTiddler(title); + if(tiddler && tiddler.fields.type === "application/zip") { + try { + zip.load(tiddler.fields.text,{ + base64: true + }); + } catch(e) { + console.log("JSZip error: " + e) + } + } + return zip; + }); +} + +function saveZipTiddler(title,zip) { + var data = zip.generate({ + type: "base64" + }); + $tw.wiki.addTiddler({ + title: title, + type: "application/zip", + text: data + }); +} + +function downloadZipFile(title,filename) { + var tiddler = $tw.wiki.getTiddler(title); + if(tiddler && tiddler.fields.text && tiddler.fields.type === "application/zip") { + var link = document.createElement("a"); + link.setAttribute("href","data:application/zip;base64," + encodeURIComponent(tiddler.fields.text)); + link.setAttribute("download",filename); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); + } +} + +})(); From 75d65d2694d31688c6e18d6d9ce28826c17a71e8 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 2 May 2020 21:31:15 +0100 Subject: [PATCH 11/56] JSZip Plugin: Docs update --- plugins/tiddlywiki/jszip/readme.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/tiddlywiki/jszip/readme.tid b/plugins/tiddlywiki/jszip/readme.tid index f3068f743..fc22727a6 100644 --- a/plugins/tiddlywiki/jszip/readme.tid +++ b/plugins/tiddlywiki/jszip/readme.tid @@ -1,3 +1,3 @@ title: $:/plugins/tiddlywiki/jszip/readme -This plugin packages [[JSZip|https://stuk.github.io/jszip/]] for use by other plugins. It does not provide any end-user visible features. +This plugin provides primitives for working with Zip files. It also makes the [[JSZip|https://stuk.github.io/jszip/]] library available for use by other plugins. From 7ee9003df76f76c3b7e3f13fb46cec9867879e12 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 3 May 2020 19:06:28 +0100 Subject: [PATCH 12/56] Release note update --- editions/prerelease/tiddlers/Release 5.1.23.tid | 2 ++ 1 file changed, 2 insertions(+) diff --git a/editions/prerelease/tiddlers/Release 5.1.23.tid b/editions/prerelease/tiddlers/Release 5.1.23.tid index 3586a1ad0..0606aed80 100644 --- a/editions/prerelease/tiddlers/Release 5.1.23.tid +++ b/editions/prerelease/tiddlers/Release 5.1.23.tid @@ -16,6 +16,8 @@ type: text/vnd.tiddlywiki ! Plugin Improvements +* JSZip Plugin +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/6a0ff7db1807f45b73061ced82f5a85f1a529bbf]] ability to dynamically create Zip files, giving TiddlyWiki the ability to build static sites within the browser * Freelinks Plugin ** [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/1f354a972e0217e034d1f59d31577c1fd6b186f3]] support for ignoring case when matching titles ** [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/05e6c1bf62cd51df6aa025d0ad07f7959cde6fa0]] bug with autolinking within HTML `
` elements From c9692d7a508cfdb0446e67061201961dca64d8dd Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Tue, 5 May 2020 16:38:29 +0100 Subject: [PATCH 13/56] Fix case-insensitive freelinks --- plugins/tiddlywiki/freelinks/readme.tid | 2 +- plugins/tiddlywiki/freelinks/text.js | 18 +++++++++--------- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/plugins/tiddlywiki/freelinks/readme.tid b/plugins/tiddlywiki/freelinks/readme.tid index 61e39a4f5..aa81d138f 100644 --- a/plugins/tiddlywiki/freelinks/readme.tid +++ b/plugins/tiddlywiki/freelinks/readme.tid @@ -9,7 +9,7 @@ Freelinking is activated for runs of text that have the following variables set: * `tv-wikilinks` is NOT equal to `no` * `tv-freelinks` is set to `yes` -Freelinks are case sensitive. +Freelinks are case sensitive by default but can be configured to ignore case in the settings tab. Within view templates, the variable `tv-freelinks` is automatically set to the content of $:/config/Freelinks/Enable, which can be set via the settings panel of this plugin. diff --git a/plugins/tiddlywiki/freelinks/text.js b/plugins/tiddlywiki/freelinks/text.js index 7ea35e090..867eb030a 100755 --- a/plugins/tiddlywiki/freelinks/text.js +++ b/plugins/tiddlywiki/freelinks/text.js @@ -40,7 +40,8 @@ TextNodeWidget.prototype.render = function(parent,nextSibling) { Compute the internal state of the widget */ TextNodeWidget.prototype.execute = function() { - var self = this; + var self = this, + ignoreCase = self.getVariable("tv-freelinks-ignore-case",{defaultValue:"no"}).trim() === "yes"; // Get our parameters var childParseTree = [{ type: "plain-text", @@ -49,10 +50,8 @@ TextNodeWidget.prototype.execute = function() { // Only process links if not disabled and we're not within a button or link widget if(this.getVariable("tv-wikilinks",{defaultValue:"yes"}).trim() !== "no" && this.getVariable("tv-freelinks",{defaultValue:"no"}).trim() === "yes" && !this.isWithinButtonOrLink()) { // Get the information about the current tiddler titles, and construct a regexp - this.tiddlerTitleInfo = this.wiki.getGlobalCache("tiddler-title-info",function() { - var titles = [], - reparts = [], - sortedTitles = self.wiki.allTitles().sort(function(a,b) { + this.tiddlerTitleInfo = this.wiki.getGlobalCache("tiddler-title-info-" + (ignoreCase ? "insensitive" : "sensitive"),function() { + var sortedTitles = self.wiki.allTitles().sort(function(a,b) { var lenA = a.length, lenB = b.length; // First sort by length, so longer titles are first @@ -72,14 +71,15 @@ TextNodeWidget.prototype.execute = function() { return 0; } } - }); + }), + titles = [], + reparts = []; $tw.utils.each(sortedTitles,function(title) { if(title.substring(0,3) !== "$:/") { titles.push(title); reparts.push("(\\b" + $tw.utils.escapeRegExp(title) + "\\b)"); } }); - var ignoreCase = self.getVariable("tv-freelinks-ignore-case",{defaultValue:"no"}).trim() === "yes"; return { titles: titles, regexp: new RegExp(reparts.join("|"),ignoreCase ? "i" : "") @@ -102,7 +102,7 @@ TextNodeWidget.prototype.execute = function() { childParseTree[index] = { type: "link", attributes: { - to: {type: "string", value: match[0]}, + to: {type: "string", value: ignoreCase ? this.tiddlerTitleInfo.titles[match.indexOf(match[0],1) - 1] : match[0]}, "class": {type: "string", value: "tc-freelink"} }, children: [{ @@ -145,7 +145,7 @@ TextNodeWidget.prototype.refresh = function(changedTiddlers) { titlesHaveChanged = false; $tw.utils.each(changedTiddlers,function(change,title) { if(change.isDeleted) { - titlesHaveChanged = true + titlesHaveChanged = true; } else { titlesHaveChanged = titlesHaveChanged || !self.tiddlerTitleInfo || self.tiddlerTitleInfo.titles.indexOf(title) === -1; } From b9d02b61b1d951cceb43105e1036cbb014814f4f Mon Sep 17 00:00:00 2001 From: mocsa <13969648+mocsa@users.noreply.github.com> Date: Wed, 6 May 2020 10:33:18 +0200 Subject: [PATCH 14/56] Update cla-individual.md (#4607) --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 8e5fb5d4c..2e7bea148 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -397,3 +397,5 @@ Mandar Vaze, @mandarvaze, 2020/04/08 Lin Dongwu, @linonetwo, 2020/04/15 Tobias Hermann, @idotobi, 2020/04/19 + +Csaba Molnar, @mocsa, 2020/04/29 From 33e9f88c73487eddf461fc1507c90e9b932af8f7 Mon Sep 17 00:00:00 2001 From: Nicolas Petton Date: Wed, 6 May 2020 10:34:13 +0200 Subject: [PATCH 15/56] Add Nicolas Petton to the list of contributors (#4617) Co-authored-by: Jeremy Ruston --- licenses/cla-individual.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 2e7bea148..fbb1efb28 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -398,4 +398,6 @@ Lin Dongwu, @linonetwo, 2020/04/15 Tobias Hermann, @idotobi, 2020/04/19 +Nicolas Petton, @NicolasPetton, 2020/04/30 + Csaba Molnar, @mocsa, 2020/04/29 From 31c4fd586b673ab38a720c0e8c48aa0d38142a80 Mon Sep 17 00:00:00 2001 From: Rizwan Date: Wed, 6 May 2020 14:10:42 +0530 Subject: [PATCH 16/56] Docs updates and fixing broken links (#4628) * Corecting URL of LuckySushi shop * Android-Instructions remained for Andtidwiki * Updating description and feature set of Timimi Updating URL of Widdly Resolving minor camelcase issues in TiddlySpot * Detailed instructions about termux and adding it to save methods * Correcting the words "open source" and "Unix" * Changing link protocols of verified domains to https --- .../tw5.com/tiddlers/about/Developers.tid | 2 +- .../tw5.com/tiddlers/community/Forums.tid | 6 +-- .../tiddlers/community/examples/PETTIL.tid | 2 +- .../resources/Widdly by Opennota.tid | 2 +- .../_Lucky Sushi_ online shop by sini-Kit.tid | 2 +- ...imimi_ Extension and executable by Riz.tid | 30 ++++++++---- .../tw5.com/tiddlers/concepts/Date Fields.tid | 2 +- .../tiddlers/concepts/Transclusion.tid | 2 +- .../tw5.com/tiddlers/definitions/Base64.tid | 2 +- .../definitions/Cascading Style Sheets.tid | 2 +- .../definitions/Comma Separated Values.tid | 2 +- .../tw5.com/tiddlers/definitions/Data URI.tid | 2 +- .../definitions/Document Object Model.tid | 2 +- .../definitions/HyperText Markup Language.tid | 2 +- .../JavaScript Object Notation.tid | 2 +- .../tiddlers/definitions/OpenSource.tid | 2 +- .../tiddlers/definitions/Percent Encoding.tid | 2 +- .../tw5.com/tiddlers/definitions/Quine.tid | 2 +- editions/tw5.com/tiddlers/definitions/URI.tid | 2 +- .../tiddlers/hellothere/HelloThere.tid | 2 +- .../tiddlers/howtos/Windows HTA Hack.tid | 2 +- ...WidgetMessage_ tm-open-external-window.tid | 8 ++-- .../nodejs/Serving TW5 from Android.tid | 47 ++++++++++++++++--- .../tiddlers/releasenotes/Release 5.1.8.tid | 2 +- .../tiddlers/saving/Saving on Android.tid | 33 +++++++------ .../tiddlers/saving/Saving on TiddlySpot.tid | 24 +++++----- .../tw5.com/tiddlers/styleguide/Spelling.tid | 2 +- .../wikitext/Code Blocks in WikiText.tid | 2 +- 28 files changed, 122 insertions(+), 70 deletions(-) diff --git a/editions/tw5.com/tiddlers/about/Developers.tid b/editions/tw5.com/tiddlers/about/Developers.tid index 5df340fcd..9bb7007ac 100644 --- a/editions/tw5.com/tiddlers/about/Developers.tid +++ b/editions/tw5.com/tiddlers/about/Developers.tid @@ -7,5 +7,5 @@ type: text/vnd.tiddlywiki There are several resources for developers to learn more about TiddlyWiki and to discuss and contribute to its development. * [[tiddlywiki.com/dev|https://tiddlywiki.com/dev]] is the official developer documentation -* [[TiddlyWikiDev group|http://groups.google.com/group/TiddlyWikiDev]] for discussions about TiddlyWiki development +* [[TiddlyWikiDev group|https://groups.google.com/group/TiddlyWikiDev]] for discussions about TiddlyWiki development * https://github.com/Jermolene/TiddlyWiki5 for the source code and development activity diff --git a/editions/tw5.com/tiddlers/community/Forums.tid b/editions/tw5.com/tiddlers/community/Forums.tid index 41bbc5210..61e1281dd 100644 --- a/editions/tw5.com/tiddlers/community/Forums.tid +++ b/editions/tw5.com/tiddlers/community/Forums.tid @@ -8,7 +8,7 @@ type: text/vnd.tiddlywiki The ~TiddlyWiki discussion groups are mailing lists for talking about ~TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email. -* The main ~TiddlyWiki group: http://groups.google.com/group/TiddlyWiki +* The main ~TiddlyWiki group: https://groups.google.com/group/TiddlyWiki *> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywiki+subscribe@googlegroups.com or mailto:tiddlywikidev+subscribe@googlegroups.com. ** An enhanced group search facility is available on [[mail-archive.com|https://www.mail-archive.com/tiddlywiki@googlegroups.com/]] * Watch recordings of our regular [[TiddlyWiki Hangouts]] @@ -19,7 +19,7 @@ The ~TiddlyWiki discussion groups are mailing lists for talking about ~TiddlyWik ! Developers -* The TiddlyWikiDev group for developers: http://groups.google.com/group/TiddlyWikiDev +* The TiddlyWikiDev group for developers: https://groups.google.com/group/TiddlyWikiDev *> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywiki+subscribe@googlegroups.com or mailto:tiddlywikidev+subscribe@googlegroups.com. ** An enhanced group search facility is available on [[mail-archive.com|https://www.mail-archive.com/tiddlywikidev@googlegroups.com/]] * Follow [[@TiddlyWiki on Twitter|http://twitter.com/#!/TiddlyWiki]] for the latest news @@ -30,4 +30,4 @@ New releases of TiddlyWiki, TiddlyDesktop and TiddlyFox are announced via the di ! Documentation -There is also a discussion group specifically for discussing TiddlyWiki documentation improvement initiatives: http://groups.google.com/group/tiddlywikidocs +There is also a discussion group specifically for discussing TiddlyWiki documentation improvement initiatives: https://groups.google.com/group/tiddlywikidocs diff --git a/editions/tw5.com/tiddlers/community/examples/PETTIL.tid b/editions/tw5.com/tiddlers/community/examples/PETTIL.tid index b0b43e475..868f363b5 100644 --- a/editions/tw5.com/tiddlers/community/examples/PETTIL.tid +++ b/editions/tw5.com/tiddlers/community/examples/PETTIL.tid @@ -5,7 +5,7 @@ title: "PETTIL - Forth for the Commodore PET" by Charlie Hitselberger type: text/vnd.tiddlywiki url: http://chitselb.com/files/tiddlypettil.html -A fast Forth interpreter for the [[Commodore PET|http://en.wikipedia.org/wiki/Commodore_PET]], written in 6502 assembly language. The TiddlyWiki containing program documentation is automatically generated from the source code: see https://github.com/chitselb/pettil. +A fast Forth interpreter for the [[Commodore PET|https://en.wikipedia.org/wiki/Commodore_PET]], written in 6502 assembly language. The TiddlyWiki containing program documentation is automatically generated from the source code: see https://github.com/chitselb/pettil. {{!!url}} diff --git a/editions/tw5.com/tiddlers/community/resources/Widdly by Opennota.tid b/editions/tw5.com/tiddlers/community/resources/Widdly by Opennota.tid index 91ba0ed16..9ca6b0d87 100644 --- a/editions/tw5.com/tiddlers/community/resources/Widdly by Opennota.tid +++ b/editions/tw5.com/tiddlers/community/resources/Widdly by Opennota.tid @@ -3,7 +3,7 @@ modified: 20180309164105386 tags: Resources title: Widdly by Opennota type: text/vnd.tiddlywiki -url: https://github.com/opennota/widdly +url: https://gitlab.com/opennota/widdly A cross platform server application that can save tiddlers to a local database diff --git a/editions/tw5.com/tiddlers/community/resources/_Lucky Sushi_ online shop by sini-Kit.tid b/editions/tw5.com/tiddlers/community/resources/_Lucky Sushi_ online shop by sini-Kit.tid index 6189c7b89..7e4b11403 100644 --- a/editions/tw5.com/tiddlers/community/resources/_Lucky Sushi_ online shop by sini-Kit.tid +++ b/editions/tw5.com/tiddlers/community/resources/_Lucky Sushi_ online shop by sini-Kit.tid @@ -3,7 +3,7 @@ modified: 20161224181607230 tags: Resources title: "Lucky Sushi" online shop by sini-Kit type: text/vnd.tiddlywiki -url: http://luckysushi.ru/habarovsk/heeg35.html#index +url: http://luckysushi.ru/habarovsk/heeg.html#index A complete online shop made in ~TiddlyWiki! diff --git a/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid b/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid index e8f2a68c6..47a091380 100644 --- a/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid +++ b/editions/tw5.com/tiddlers/community/resources/_Timimi_ Extension and executable by Riz.tid @@ -1,16 +1,30 @@ caption: Timimi created: 20180830194141190 -delivery: Browser Extension & Executable -description: Browser extension & executable for desktops +delivery: Browser Extension & Native host +description: Browser extension & native host for desktops method: save -modified: 20181012165153986 -tags: Windows Linux Chrome Firefox Saving Resources plugins -title: "Timimi" Extension and executable by Riz +modified: 20200501092235061 +tags: Windows Linux Chrome Firefox Saving Resources plugins Mac Opera +title: Timimi: WebExtension and Native Host by Riz type: text/vnd.tiddlywiki -url: https://github.com/ibnishak/Timimi +url: https://ibnishak.github.io/Timimi/ -`Timimi` is a Web Extension and executable for Firefox, Chrome and Chromium that allows it to save standalone ~TiddlyWiki files. +Timimi is a web-extension accompanied by a native host that allows you to save and backup your standalone HTML tiddlywiki files ''anywhere in your hard-drive''. Once installed, you can save the tiddlywiki files without any extra steps, like the original Tiddlyfox addon. {{!!url}} -This is an addon using native messaging, essentially handing over the contents to a webextension host (executable) which does the actual saving. Once installed, you can save the standalone TW from anywhere in your hard drive without any more interactions, like the original Tiddlyfox addon. +As of version 2.1, Timimi supports the following browsers + +* Chrome/Chromium +* Firefox +* Opera +* Microsoft Edge (Chromium) + +It is also reported to work seamlessly in chrome based browsers like Brave and Vivaldi. + +Timimi also provides users with 4 backup strategies, viz: + +* Create a backup Every n^^th^^ save +* Create a backup every n^^th^^ minute +* Customised Tower of Hanoi +* First in First Out \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/concepts/Date Fields.tid b/editions/tw5.com/tiddlers/concepts/Date Fields.tid index 9c1bfa618..b1dcbe82d 100644 --- a/editions/tw5.com/tiddlers/concepts/Date Fields.tid +++ b/editions/tw5.com/tiddlers/concepts/Date Fields.tid @@ -18,7 +18,7 @@ Values of date fields are 17-character strings: * 2 digits for the second * 3 digits for the millisecond -To avoid problems arising from differences of time zone, TiddlyWiki always uses [[UTC|http://en.wikipedia.org/wiki/Coordinated_Universal_Time]]. +To avoid problems arising from differences of time zone, TiddlyWiki always uses [[UTC|https://en.wikipedia.org/wiki/Coordinated_Universal_Time]]. As an example, the <<.field created>> field of this tiddler has the value <<.value """<$view field="created"/>""">>. diff --git a/editions/tw5.com/tiddlers/concepts/Transclusion.tid b/editions/tw5.com/tiddlers/concepts/Transclusion.tid index c7d2af671..94f6015bc 100644 --- a/editions/tw5.com/tiddlers/concepts/Transclusion.tid +++ b/editions/tw5.com/tiddlers/concepts/Transclusion.tid @@ -3,7 +3,7 @@ modified: 20141130195444237 tags: Concepts title: Transclusion -[[Transclusion|http://en.wikipedia.org/wiki/Transclusion]] is the process of referencing one tiddler "A" from another tiddler "B" such that the content of "A" appears to be a part of "B". +[[Transclusion|https://en.wikipedia.org/wiki/Transclusion]] is the process of referencing one tiddler "A" from another tiddler "B" such that the content of "A" appears to be a part of "B". Copying and pasting content creates multiple copies of the same content in several different places. With transclusion, there can be a single copy and a special instruction in "B" which indicates the point at which content should be inserted from tiddler "A". diff --git a/editions/tw5.com/tiddlers/definitions/Base64.tid b/editions/tw5.com/tiddlers/definitions/Base64.tid index 9546bcd66..46ed63ec1 100644 --- a/editions/tw5.com/tiddlers/definitions/Base64.tid +++ b/editions/tw5.com/tiddlers/definitions/Base64.tid @@ -4,4 +4,4 @@ tags: Definitions title: Base64 type: text/vnd.tiddlywiki -<<.dlink-ex Base64 "http://en.wikipedia.org/wiki/Base64">> is a way of representing binary data, such an image, as a string of text. +<<.dlink-ex Base64 "https://en.wikipedia.org/wiki/Base64">> is a way of representing binary data, such an image, as a string of text. diff --git a/editions/tw5.com/tiddlers/definitions/Cascading Style Sheets.tid b/editions/tw5.com/tiddlers/definitions/Cascading Style Sheets.tid index 47c770848..0806cf045 100644 --- a/editions/tw5.com/tiddlers/definitions/Cascading Style Sheets.tid +++ b/editions/tw5.com/tiddlers/definitions/Cascading Style Sheets.tid @@ -4,4 +4,4 @@ tags: Definitions title: Cascading Style Sheets type: text/vnd.tiddlywiki -<<.dlink-ex CSS "http://en.wikipedia.org/wiki/Cascading_Style_Sheets">> is a standard plain-text format used for defining the presentational style of the various elements on a web page. +<<.dlink-ex CSS "https://en.wikipedia.org/wiki/Cascading_Style_Sheets">> is a standard plain-text format used for defining the presentational style of the various elements on a web page. diff --git a/editions/tw5.com/tiddlers/definitions/Comma Separated Values.tid b/editions/tw5.com/tiddlers/definitions/Comma Separated Values.tid index e89ec2c9b..eb60f82fd 100644 --- a/editions/tw5.com/tiddlers/definitions/Comma Separated Values.tid +++ b/editions/tw5.com/tiddlers/definitions/Comma Separated Values.tid @@ -4,7 +4,7 @@ tags: Definitions title: Comma-Separated Values type: text/vnd.tiddlywiki -<<.dlink-ex CSV "http://en.wikipedia.org/wiki/Comma-separated_values">> is a standard plain-text format for storing a table of data. +<<.dlink-ex CSV "https://en.wikipedia.org/wiki/Comma-separated_values">> is a standard plain-text format for storing a table of data. Each row of the table is called a <<.def record>> and occupies one line. diff --git a/editions/tw5.com/tiddlers/definitions/Data URI.tid b/editions/tw5.com/tiddlers/definitions/Data URI.tid index 35878f1cb..6e85b1ed9 100644 --- a/editions/tw5.com/tiddlers/definitions/Data URI.tid +++ b/editions/tw5.com/tiddlers/definitions/Data URI.tid @@ -4,6 +4,6 @@ tags: Definitions title: Data URI type: text/vnd.tiddlywiki -A <<.dlink-ex "data URI" "http://en.wikipedia.org/wiki/Data_URI_scheme">> is a way of storing data (such as an image) in a way that is compatible with the addresses used by web pages and [[stylesheets|Cascading Style Sheets]] to access external resources. +A <<.dlink-ex "data URI" "https://en.wikipedia.org/wiki/Data_URI_scheme">> is a way of storing data (such as an image) in a way that is compatible with the addresses used by web pages and [[stylesheets|Cascading Style Sheets]] to access external resources. The <<.mlink datauri>> macro can be used to generate data URIs within ~TiddlyWiki. diff --git a/editions/tw5.com/tiddlers/definitions/Document Object Model.tid b/editions/tw5.com/tiddlers/definitions/Document Object Model.tid index f2b75b206..f3e9fe0a1 100644 --- a/editions/tw5.com/tiddlers/definitions/Document Object Model.tid +++ b/editions/tw5.com/tiddlers/definitions/Document Object Model.tid @@ -4,7 +4,7 @@ tags: Definitions title: Document Object Model type: text/vnd.tiddlywiki -The <<.dlink-ex DOM "http://en.wikipedia.org/wiki/Document_Object_Model">> of a web page is a tree-shaped model of its content, maintained internally by the web browser as the user interacts with that content. Each point in the tree is called a <<.def node>>. +The <<.dlink-ex DOM "https://en.wikipedia.org/wiki/Document_Object_Model">> of a web page is a tree-shaped model of its content, maintained internally by the web browser as the user interacts with that content. Each point in the tree is called a <<.def node>>. When ~TiddlyWiki is running in a web browser, its [[widgets|Widgets]] are rendered into DOM nodes for display. diff --git a/editions/tw5.com/tiddlers/definitions/HyperText Markup Language.tid b/editions/tw5.com/tiddlers/definitions/HyperText Markup Language.tid index 460d46050..d82dcbc69 100644 --- a/editions/tw5.com/tiddlers/definitions/HyperText Markup Language.tid +++ b/editions/tw5.com/tiddlers/definitions/HyperText Markup Language.tid @@ -4,7 +4,7 @@ tags: Definitions title: HyperText Markup Language type: text/vnd.tiddlywiki -<<.dlink-ex HTML "http://en.wikipedia.org/wiki/HTML">> is a standard plain-text format used for defining the content of a web page. +<<.dlink-ex HTML "https://en.wikipedia.org/wiki/HTML">> is a standard plain-text format used for defining the content of a web page. It consists of a tree of elements expressed using a system of special <<.def tags>> enclosed in angle brackets. diff --git a/editions/tw5.com/tiddlers/definitions/JavaScript Object Notation.tid b/editions/tw5.com/tiddlers/definitions/JavaScript Object Notation.tid index 177c565a8..91e2ff5ac 100644 --- a/editions/tw5.com/tiddlers/definitions/JavaScript Object Notation.tid +++ b/editions/tw5.com/tiddlers/definitions/JavaScript Object Notation.tid @@ -4,7 +4,7 @@ tags: Definitions title: JavaScript Object Notation type: text/vnd.tiddlywiki -<<.dlink-ex JSON "http://en.wikipedia.org/wiki/JSON">> is a standard plain-text format used for modelling hierarchical structures of objects that contain named fields. +<<.dlink-ex JSON "https://en.wikipedia.org/wiki/JSON">> is a standard plain-text format used for modelling hierarchical structures of objects that contain named fields. DataTiddlers can have JSON content. diff --git a/editions/tw5.com/tiddlers/definitions/OpenSource.tid b/editions/tw5.com/tiddlers/definitions/OpenSource.tid index 1d5ec6f84..da8ae16b8 100644 --- a/editions/tw5.com/tiddlers/definitions/OpenSource.tid +++ b/editions/tw5.com/tiddlers/definitions/OpenSource.tid @@ -3,5 +3,5 @@ modified: 201308251307 tags: Definitions title: OpenSource -OpenSource is [[defined by Wikipedia|http://en.wikipedia.org/wiki/Open_source]] as //a philosophy, or pragmatic methodology that promotes free redistribution and access to an end product's design and implementation details//. +OpenSource is [[defined by Wikipedia|https://en.wikipedia.org/wiki/Open_source]] as //a philosophy, or pragmatic methodology that promotes free redistribution and access to an end product's design and implementation details//. diff --git a/editions/tw5.com/tiddlers/definitions/Percent Encoding.tid b/editions/tw5.com/tiddlers/definitions/Percent Encoding.tid index 3fcd8f4a0..f246c18db 100644 --- a/editions/tw5.com/tiddlers/definitions/Percent Encoding.tid +++ b/editions/tw5.com/tiddlers/definitions/Percent Encoding.tid @@ -4,7 +4,7 @@ tags: Definitions title: Percent Encoding type: text/vnd.tiddlywiki -<<.dlink-ex "Percent encoding" "http://en.wikipedia.org/wiki/Percent-encoding">> is a notation that allows otherwise invalid characters to be included in a [[URI]]. +<<.dlink-ex "Percent encoding" "https://en.wikipedia.org/wiki/Percent-encoding">> is a notation that allows otherwise invalid characters to be included in a [[URI]]. Such characters are represented as a percent sign `%` followed by two additional characters. diff --git a/editions/tw5.com/tiddlers/definitions/Quine.tid b/editions/tw5.com/tiddlers/definitions/Quine.tid index e33a5ada8..7bd3a152c 100644 --- a/editions/tw5.com/tiddlers/definitions/Quine.tid +++ b/editions/tw5.com/tiddlers/definitions/Quine.tid @@ -4,7 +4,7 @@ tags: Definitions title: Quine type: text/vnd.tiddlywiki -Wikipedia [[defines a Quine|http://en.wikipedia.org/wiki/Quine_(computing)]] as //a computer program which takes no input and produces a copy of its own source code as its only output//. +Wikipedia [[defines a Quine|https://en.wikipedia.org/wiki/Quine_(computing)]] as //a computer program which takes no input and produces a copy of its own source code as its only output//. TiddlyWiki is an unusual example of a practical quine: it is this ability to produce a copy of its own source code that lies at the heart of TiddlyWiki's ability to independently save changes to itself. diff --git a/editions/tw5.com/tiddlers/definitions/URI.tid b/editions/tw5.com/tiddlers/definitions/URI.tid index e5154c908..4443b2df3 100644 --- a/editions/tw5.com/tiddlers/definitions/URI.tid +++ b/editions/tw5.com/tiddlers/definitions/URI.tid @@ -4,4 +4,4 @@ tags: Definitions title: URI type: text/vnd.tiddlywiki -A <<.dlink-ex "URI" "http://en.wikipedia.org/wiki/Uniform_resource_identifier">> (also often known as a <<.def URL>>) is a string of characters used to specify the location of a resource such as a web page. +A <<.dlink-ex "URI" "https://en.wikipedia.org/wiki/Uniform_resource_identifier">> (also often known as a <<.def URL>>) is a string of characters used to specify the location of a resource such as a web page. diff --git a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid index 59ce4293a..24ea95129 100644 --- a/editions/tw5.com/tiddlers/hellothere/HelloThere.tid +++ b/editions/tw5.com/tiddlers/hellothere/HelloThere.tid @@ -18,7 +18,7 @@ Use it to keep your [[to-do list|TaskManagementExample]], to plan an [[essay or Unlike conventional online services, TiddlyWiki lets you choose where to keep your data, guaranteeing that in the decades to come you will [[still be able to use|Future Proof]] the notes you take today.
- + {{$:/core/images/help}} Forum diff --git a/editions/tw5.com/tiddlers/howtos/Windows HTA Hack.tid b/editions/tw5.com/tiddlers/howtos/Windows HTA Hack.tid index 803ff4fa4..116bf8741 100644 --- a/editions/tw5.com/tiddlers/howtos/Windows HTA Hack.tid +++ b/editions/tw5.com/tiddlers/howtos/Windows HTA Hack.tid @@ -12,4 +12,4 @@ Under Windows it is possible to convert TiddlyWiki into a true local application Note that one disadvantage of this approach is that the TiddlyWiki file is saved in UTF-16 format, making it up to twice as large as it would be with the usual UTF-8 encoding. However, opening and saving the file via another saving method will re-encode the file to UTF-8. -See Wikipedia for more details: http://en.wikipedia.org/wiki/HTML_Application +See Wikipedia for more details: https://en.wikipedia.org/wiki/HTML_Application diff --git a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid index 994d5d787..960f94f2f 100644 --- a/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid +++ b/editions/tw5.com/tiddlers/messages/WidgetMessage_ tm-open-external-window.tid @@ -7,10 +7,10 @@ type: text/vnd.tiddlywiki <<.from-version "5.1.14">> -The `tm-open-external-window` message opens an external link eg: "http://tiddlywiki.com" in a new //browser// window. If no parameters are specified, it opens the help tiddler. Any additional parameters passed via the <<.param "paramObject">> are being provided as variables to the new window. +The `tm-open-external-window` message opens an external link eg: "https://tiddlywiki.com" in a new //browser// window. If no parameters are specified, it opens the help tiddler. Any additional parameters passed via the <<.param "paramObject">> are being provided as variables to the new window. |!Name |!Description | -|param |URL of the tiddler to be opened in a new browser window, defaults to the [[TiddlyWiki help|http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window if empty]] | +|param |URL of the tiddler to be opened in a new browser window, defaults to the [[TiddlyWiki help|https://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window if empty]] | |paramObject |Optional: Hashmap of variables that will be provided to the window. see below | ''parmObject'' @@ -25,7 +25,7 @@ The `tm-open-external-window` message is usually generated with the ButtonWidget <$macrocall $name='wikitext-example-without-html' src='<$button> -<$action-sendmessage $message="tm-open-external-window" $param="http://tiddlywiki.com" windowName="_tiddlywiki" windowFeatures="height=500, width=900"/> +<$action-sendmessage $message="tm-open-external-window" $param="https://tiddlywiki.com" windowName="_tiddlywiki" windowFeatures="height=500, width=900"/> Open ~TiddlyWiki - Action @@ -34,6 +34,6 @@ Open ~TiddlyWiki - Action Open Mozilla Help - Action -<$button message="tm-open-external-window" param="http://tiddlywiki.com" > +<$button message="tm-open-external-window" param="https://tiddlywiki.com" > Open ~TiddlyWiki - Button '/> \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/nodejs/Serving TW5 from Android.tid b/editions/tw5.com/tiddlers/nodejs/Serving TW5 from Android.tid index 13eb60c79..40a675c63 100644 --- a/editions/tw5.com/tiddlers/nodejs/Serving TW5 from Android.tid +++ b/editions/tw5.com/tiddlers/nodejs/Serving TW5 from Android.tid @@ -1,13 +1,46 @@ -created: 20160602043529506 -modified: 20160602043531313 -tags: [[TiddlyWiki on Node.js]] +caption: Node.js on Termux +created: 20200501120322327 +delivery: App with DIY steps +description: Using Node.js to serve/create flatfile wikis +method: sync +modified: 20200501120801899 +tags: Saving [[TiddlyWiki on Node.js]] Android title: Serving TW5 from Android type: text/vnd.tiddlywiki -[[Termux|https://termux.com/]] is an open source Android application that combines a Linux system and a terminal. +[[Termux|https://termux.com/]] is and open source android application providing limited Unix environment enabling users to install [[Node.js]] and npm modules in android. Users can install and run [[TiddlyWiki on Node.js]] using [[Termux|https://termux.com/]]. -Once you open //Termux// on your Android system, it is straightforward to [[install|Installing TiddlyWiki on Node.js]] and [[run|Using TiddlyWiki on Node.js]] the [[Node.js flavour of TiddlyWiki|TiddlyWiki on Node.js]] from the command line. +!! Instructions -From then on, as long as //Termux// is not closed, you may access your wiki anytime from your favourite Web browser pointing on the expected address and port. +* Download and install Termux from [[Google Play Store|https://play.google.com/store/apps/details?id=com.termux]] or [[Fdroid|https://f-droid.org/en/packages/com.termux/]] +* Open termux and run the following commands one by one -> __note to contributors__: in //Termux//, you may as well install //git//, //emacs// or //vi//, in order to edit and maintain individual tiddler files. This would probably require that you also attach a more powerful keyboard to your Android, like the [[Hacker's Keyboard|https://github.com/klausw/hackerskeyboard/]] application or a Bluetooth external device. \ No newline at end of file + ```bash +apt update +apt upgrade +apt install nodejs +npm install -g tiddlywiki +``` + +* If you need to create/serve ''~TiddlyWiki on Node.js'' from the internal storage, you need to give termux storage permission by running the following command in termux + +``` +termux-setup-storage +``` + +* Now you can create and serve ''~TiddlyWiki on Node.js'' from internal storage. In the example given below, user is creating a new wiki called "mynewwiki" in his internal folder. + +``` +cd storage/shared +tiddlywiki mynewwiki --init server +tiddlywiki mynewwiki --listen +``` +* Visit http://127.0.0.1:8080/ in your browser +* From then on, as long as //Termux// is not closed, you may access your wiki anytime from your favourite Web browser pointing on the expected address and port. + +--- + +* For more information regarding ~TiddlyWiki on Node.js, please see [[Installing TiddlyWiki on Node.js]] +* For more information and tips regarding termux, please refer to [[Termux wiki|https://wiki.termux.com/wiki/Main_Page]] + +<<.tip "In //Termux//, you may as well install //git//, //emacs// or //vi//, in order to edit and maintain individual tiddler files. This would probably require that you also attach a more powerful keyboard to your Android, like the [[Hacker's Keyboard|https://github.com/klausw/hackerskeyboard/]] application or a Bluetooth external device.">> diff --git a/editions/tw5.com/tiddlers/releasenotes/Release 5.1.8.tid b/editions/tw5.com/tiddlers/releasenotes/Release 5.1.8.tid index 647b87787..ec43827aa 100644 --- a/editions/tw5.com/tiddlers/releasenotes/Release 5.1.8.tid +++ b/editions/tw5.com/tiddlers/releasenotes/Release 5.1.8.tid @@ -15,7 +15,7 @@ This release includes many improvements to the documentation for TiddlyWiki. Man * Improvements to French, Danish, Chinese and Japanese translations * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/cb8caf6a01aeeac480bf28661888961657b0dbd8]] Czech translation -* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/d6918d737f5d1b663346ad9a35421a5ae0ffb9a7]] [[Interlingua|http://en.wikipedia.org/wiki/Interlingua]] translation +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/d6918d737f5d1b663346ad9a35421a5ae0ffb9a7]] [[Interlingua|https://en.wikipedia.org/wiki/Interlingua]] translation * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/6721a5eb1b77935226ccc8559008af3a0a05d0cb]] Portuguese translation * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/b845751d3c549366adb2f6e5c58b0114fa95ba30]] Punjabi and Hindu translations * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/49a9a2c44ca3a71fff3062709f06940aaca4a574]] Slovak translation diff --git a/editions/tw5.com/tiddlers/saving/Saving on Android.tid b/editions/tw5.com/tiddlers/saving/Saving on Android.tid index 903563b24..d5f01dad2 100644 --- a/editions/tw5.com/tiddlers/saving/Saving on Android.tid +++ b/editions/tw5.com/tiddlers/saving/Saving on Android.tid @@ -3,25 +3,30 @@ created: 20130825161400000 delivery: App description: Android app for saving changes locally to device storage method: save -modified: 20191013145728306 +modified: 20200501103500478 tags: Saving Android title: Saving on Android type: text/vnd.tiddlywiki +url: https://github.com/donmor/Tiddloid -The Tiddloid or Tiddloid Lite app for Android devices makes it possible to edit and save changes to TiddlyWiki. Get it from GitHub: [[Tiddloid|https://github.com/donmor/Tiddloid]] [[Tiddloid Lite|https://github.com/donmor/TiddloidLite]]. +The Tiddloid and Tiddloid Lite app are Android apps that makes it possible to edit and save changes to TiddlyWiki HTML files. -''Instructions for use:'' +* For more information: [[Tiddloid|https://github.com/donmor/Tiddloid]] [[Tiddloid Lite|https://github.com/donmor/TiddloidLite]]. +* Download apks: [[Tiddloid|https://github.com/donmor/Tiddloid/releases]], [[TiddloidLite|https://github.com/donmor/TiddloidLite/releases]] -# [[Download]] an empty TiddlyWiki on another web browser -# Move the file you just downloaded to the directory `/sdcard/andtidwiki` -#* You may rename it, but be sure to keep the `.html` or `.htm` extension -# Open AndTidWiki -#* Don't use ''Menu''/''new ~TiddlyWiki'' menu option (it only supports the older TiddlyWikiClassic) -# Open the file by touching its filename -# Try creating a new tiddler using the ''new tiddler'' <<.icon $:/core/images/new-button>> button in the sidebar. Type some content for the tiddler, and click the <<.icon $:/core/images/done-button>> ''ok'' button -#* The wiki will be saved, and a confirmation message should appear at the top right of the window -''Note:'' You can save your changes by clicking the <<.icon $:/core/images/save-button>> ''save changes'' button in the sidebar even if you have not clicked the <<.icon $:/core/images/done-button>> ''ok'' button to complete editing a tiddler +!!! Features -* Tiddloid Lite supports new devices better. It also supports files on clouds like GDrive and ~OneDrive, while Tiddloid keeps the compatibility to TiddlyWikiClassic. For more difference between Tiddloid and Tiddloid Lite, please visit [[Tiddloid's homepage|https://github.com/donmor/Tiddloid]]. -* You should keep the `.html` or `.htm` extension of the files to be imported. +* Create new ~TiddlyWiki importing latest edition from internet +* Import existing ~TiddlyWikis stored on device/internal storage. ([[TiddloidLite|https://github.com/donmor/TiddloidLite/releases]] supports external SD card too) +* Fork interesting ~Tiddlywikis from internet (Supports TW5 only) +* TiddlyWiki detection +* Locally stored ~Tiddlywikis are updated simultaneously on saving changes to ~TiddlyWikis imported to the app +* Backup system that is compatible with TiddlyDesktop, the desktop TiddlyWiki saver +* Creating shortcuts to existing ~TiddlyWiki on Android Homepage +* [[TiddloidLite|https://github.com/donmor/TiddloidLite/releases]] supports cloud storages like GDrive and ~OneDrive + +!!! Please note + +* Tiddloid Lite feature better support for devices running Android Q or later. It also supports cloud storages like GDrive and ~OneDrive, while Tiddloid keeps the compatibility to TiddlyWikiClassic. To know more about differences between Tiddloid and Tiddloid Lite, please visit [[Tiddloid's homepage|https://github.com/donmor/Tiddloid]]. +* You should keep the `.html` or `.htm` extension of the files to be imported. \ No newline at end of file diff --git a/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid b/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid index 9b4b47813..6a8a4c1c6 100644 --- a/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid +++ b/editions/tw5.com/tiddlers/saving/Saving on TiddlySpot.tid @@ -10,11 +10,11 @@ description: Free online service for hosting TiddlyWiki files [[TiddlySpot|http://tiddlyspot.com]] is a free hosting service for TiddlyWiki documents from Simon Baird and Daniel Baird. -! Setting up a TiddlyWiki on TiddlySpot +! Setting up a TiddlyWiki on ~TiddlySpot To set up a [[TiddlyWiki Classic|TiddlyWikiClassic]], you merely create a new wiki at http://tiddlyspot.com -!!TiddlyWiki5 on TiddlySpot -~TiddlyWiki5 also functions well on ~TiddlySpot but this version is not offered directly in the TiddlySpot set-up. +!!TiddlyWiki5 on ~TiddlySpot +~TiddlyWiki5 also functions well on ~TiddlySpot but this version is not offered directly in the ~TiddlySpot set-up. The simplest way to create a new ~TiddlySpot with ~TiddlyWiki5 is probably through the community created site http://tiddlywiki5.tiddlyspot.com @@ -22,11 +22,11 @@ Alternatively, you can upload an existing ~TiddlyWiki5 document from your local # Sign up for a new wiki at http://tiddlyspot.com/, and remember the wiki name and password # Open your locally stored TiddlyWiki document in your browser -# Fill in the TiddlySpot wikiname and password in ''Saving'' tab of the ''control panel'' <<.icon $:/core/images/options-button>> +# Fill in the ~TiddlySpot wikiname and password in ''Saving'' tab of the ''control panel'' <<.icon $:/core/images/options-button>> # Click the <<.icon $:/core/images/save-button>> ''save changes'' button. You should get a confirmation notification at the top right saying ''Saved wiki''. Saving can take several seconds if you're on a slow connection or working with a large wiki. -# Navigate to your TiddlySpot URL at http://{wikiname}.tiddlyspot.com/ +# Navigate to your ~TiddlySpot URL at http://{wikiname}.tiddlyspot.com/ -Note that your password is sent unencrypted when using TiddlySpot. From http://faq.tiddlyspot.com/: +Note that your password is sent unencrypted when using ~TiddlySpot. From http://faq.tiddlyspot.com/: <<< ''Is Tiddlyspot secure?'' @@ -34,9 +34,9 @@ Note that your password is sent unencrypted when using TiddlySpot. From http://f No. Tiddlyspot does not use SSL/https. Your password is sent in clear text when uploading and when authenticating to access a private site. This means that your Tiddlyspot is vulnerable to packet sniffing and your password could be discovered by a malicious third party. Also your data is transmitted unencrypted when you view your site, even if it is a private site. For this reason please don't put sensitive information such as banking details in your Tiddlyspot and don't use a password that you use for other high security sites. <<< -! Problems with saving on TiddlySpot +! Problems with saving on ~TiddlySpot -In case you run into this error when uploading a new or freshly upgraded local TiddlyWiki to TiddlySpot : +In case you run into this error when uploading a new or freshly upgraded local TiddlyWiki to ~TiddlySpot : <<< Error while saving: @@ -46,9 +46,9 @@ Error:NS_ERROR_DOM_BAD_URI: Access to restricted URI denied The upgrade operation falls foul of a security restriction in Firefox. Until this can be resolved, we suggest using Chrome. -*# Use Chrome to open the local TiddlyWiki document you want to upload to TiddlySpot and follow the steps 1 through 5 described above -*# Once you've checked the TiddlySpot-hosted TiddlyWiki loads properly in Chrome, you should be able to access, edit and [[save using TiddlyFox|Saving with TiddlyFox]] again -* After you've uploaded your local document once, further editing and saving of the online version hosted on TiddlySpot should work with any modern browser of your choice. -** Don't forget to fill in the TiddlySpot wikiname and password in your TiddlySpot TiddlyWiki control panel for any new browser you want to use for saving changes +*# Use Chrome to open the local TiddlyWiki document you want to upload to ~TiddlySpot and follow the steps 1 through 5 described above +*# Once you've checked the ~TiddlySpot-hosted TiddlyWiki loads properly in Chrome, you should be able to access, edit and [[save using TiddlyFox|Saving with TiddlyFox]] again +* After you've uploaded your local document once, further editing and saving of the online version hosted on ~TiddlySpot should work with any modern browser of your choice. +** Don't forget to fill in the ~TiddlySpot wikiname and password in your ~TiddlySpot TiddlyWiki control panel for any new browser you want to use for saving changes * //See also : [[Upgrading]]// diff --git a/editions/tw5.com/tiddlers/styleguide/Spelling.tid b/editions/tw5.com/tiddlers/styleguide/Spelling.tid index 92c16086e..e71c6a476 100644 --- a/editions/tw5.com/tiddlers/styleguide/Spelling.tid +++ b/editions/tw5.com/tiddlers/styleguide/Spelling.tid @@ -3,7 +3,7 @@ modified: 20150117152553000 title: Spelling tags: [[Improving TiddlyWiki Documentation]] -Because ~TiddlyWiki is of British origin, its English documentation uses [[British spelling in preference to US spelling|http://en.wikipedia.org/wiki/American_and_British_English_spelling_differences]]. +Because ~TiddlyWiki is of British origin, its English documentation uses [[British spelling in preference to US spelling|https://en.wikipedia.org/wiki/American_and_British_English_spelling_differences]]. Words like <<.word customise>> are spelled <<.word -ise>>, not <<.word -ize>>. Words like <<.word colour>> will also be spelled using UK English unless they are being used for reserved words in code, such as in CSS or JavaScript. diff --git a/editions/tw5.com/tiddlers/wikitext/Code Blocks in WikiText.tid b/editions/tw5.com/tiddlers/wikitext/Code Blocks in WikiText.tid index 91b1c5e1d..03deca440 100644 --- a/editions/tw5.com/tiddlers/wikitext/Code Blocks in WikiText.tid +++ b/editions/tw5.com/tiddlers/wikitext/Code Blocks in WikiText.tid @@ -40,5 +40,5 @@ This will be monospaced ``` -Note that some keyboard layouts treat the backtick as a [[dead key|http://en.wikipedia.org/wiki/Dead_key]], making it hard to type. The trick is to type three backticks followed by a space. Alternatively, type all six backticks in one go, then a space, and then move the cursor back three characters to type or paste the content. +Note that some keyboard layouts treat the backtick as a [[dead key|https://en.wikipedia.org/wiki/Dead_key]], making it hard to type. The trick is to type three backticks followed by a space. Alternatively, type all six backticks in one go, then a space, and then move the cursor back three characters to type or paste the content. From 86640474b525a7666881fa92f6bb01b08ae8e0fa Mon Sep 17 00:00:00 2001 From: Simon Huber Date: Wed, 6 May 2020 10:46:29 +0200 Subject: [PATCH 17/56] Fix search dropdown items text color on hover (#4632) --- themes/tiddlywiki/vanilla/base.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/themes/tiddlywiki/vanilla/base.tid b/themes/tiddlywiki/vanilla/base.tid index 336ba6e6f..49a240b08 100644 --- a/themes/tiddlywiki/vanilla/base.tid +++ b/themes/tiddlywiki/vanilla/base.tid @@ -1594,7 +1594,7 @@ html body.tc-body.tc-single-tiddler-window { color: <>; } -.tc-block-dropdown a:hover { +.tc-block-dropdown a.tc-tiddlylink:hover { color: <>; background-color: <>; text-decoration: none; From 71a827eead948c959d3f8e4b243d28ded03db2c5 Mon Sep 17 00:00:00 2001 From: Nicolas Petton Date: Wed, 6 May 2020 10:51:11 +0200 Subject: [PATCH 18/56] Fix mailto links Forums.tid (#4616) To avoid users being mislead when trying to subscribe by email to one of the Google Groups, put only the relevant mailto link in each forum section. Co-authored-by: Jeremy Ruston --- editions/tw5.com/tiddlers/community/Forums.tid | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/editions/tw5.com/tiddlers/community/Forums.tid b/editions/tw5.com/tiddlers/community/Forums.tid index 61e1281dd..b213db329 100644 --- a/editions/tw5.com/tiddlers/community/Forums.tid +++ b/editions/tw5.com/tiddlers/community/Forums.tid @@ -9,7 +9,7 @@ type: text/vnd.tiddlywiki The ~TiddlyWiki discussion groups are mailing lists for talking about ~TiddlyWiki: requests for help, announcements of new releases and plugins, debating new features, or just sharing experiences. You can participate via the associated website, or subscribe via email. * The main ~TiddlyWiki group: https://groups.google.com/group/TiddlyWiki -*> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywiki+subscribe@googlegroups.com or mailto:tiddlywikidev+subscribe@googlegroups.com. +*> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywiki+subscribe@googlegroups.com. ** An enhanced group search facility is available on [[mail-archive.com|https://www.mail-archive.com/tiddlywiki@googlegroups.com/]] * Watch recordings of our regular [[TiddlyWiki Hangouts]] * Follow [[@TiddlyWiki on Twitter|http://twitter.com/TiddlyWiki]] for the latest news @@ -20,7 +20,7 @@ The ~TiddlyWiki discussion groups are mailing lists for talking about ~TiddlyWik ! Developers * The TiddlyWikiDev group for developers: https://groups.google.com/group/TiddlyWikiDev -*> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywiki+subscribe@googlegroups.com or mailto:tiddlywikidev+subscribe@googlegroups.com. +*> Note that you do not need a Google Account to join the discussion groups. Subscribe by sending an email to mailto:tiddlywikidev+subscribe@googlegroups.com. ** An enhanced group search facility is available on [[mail-archive.com|https://www.mail-archive.com/tiddlywikidev@googlegroups.com/]] * Follow [[@TiddlyWiki on Twitter|http://twitter.com/#!/TiddlyWiki]] for the latest news * Get involved in the [[development on GitHub|https://github.com/Jermolene/TiddlyWiki5]] From 48dfadd85b8ebd788b44ed2c46108720742546df Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Wed, 6 May 2020 11:05:54 +0100 Subject: [PATCH 19/56] InfoMechanism: Add $:/info/startup-timestamp --- core/modules/info/platform.js | 1 + editions/tw5.com/tiddlers/mechanisms/InfoMechanism.tid | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/core/modules/info/platform.js b/core/modules/info/platform.js index 94991ea80..29ebdd594 100644 --- a/core/modules/info/platform.js +++ b/core/modules/info/platform.js @@ -18,6 +18,7 @@ exports.getInfoTiddlerFields = function() { // Basics infoTiddlerFields.push({title: "$:/info/browser", text: mapBoolean(!!$tw.browser)}); infoTiddlerFields.push({title: "$:/info/node", text: mapBoolean(!!$tw.node)}); + infoTiddlerFields.push({title: "$:/info/startup-timestamp", text: $tw.utils.stringifyDate(new Date())}); if($tw.browser) { // Document location var setLocationProperty = function(name,value) { diff --git a/editions/tw5.com/tiddlers/mechanisms/InfoMechanism.tid b/editions/tw5.com/tiddlers/mechanisms/InfoMechanism.tid index d095b5a61..62d907076 100644 --- a/editions/tw5.com/tiddlers/mechanisms/InfoMechanism.tid +++ b/editions/tw5.com/tiddlers/mechanisms/InfoMechanism.tid @@ -1,5 +1,5 @@ created: 20140720164948099 -modified: 20190307175403915 +modified: 20200506110435897 tags: Mechanisms title: InfoMechanism type: text/vnd.tiddlywiki @@ -13,6 +13,7 @@ System tiddlers in the namespace `$:/info/` are used to expose information about ! Information Tiddlers |!Title |!Description | +|[[$:/info/startup-timestamp]] |<<.from-version "5.1.23">> Startup timestamp in TiddlyWiki date format | |[[$:/info/browser]] |Running in the browser? ("yes" or "no") | |[[$:/info/browser/language]] |<<.from-version "5.1.20">> Language as reported by browser (note that some browsers report two character codes such as `en` while others report full codes such as `en-GB`) | |[[$:/info/browser/screen/width]] |Screen width in pixels | From 81f07cdf852d8dd7c8e8e41984a6193c5d9a9c15 Mon Sep 17 00:00:00 2001 From: Arlen22 Date: Wed, 6 May 2020 06:27:50 -0400 Subject: [PATCH 20/56] Use this.wiki where applicable (#4601) * Use state.wiki * use local wiki where available * fix a couple this vs self cases --- core/modules/commands/fetch.js | 2 +- core/modules/commands/savelibrarytiddlers.js | 2 +- core/modules/filters/has.js | 4 ++-- core/modules/server/routes/get-tiddlers-json.js | 4 ++-- core/modules/server/server.js | 2 +- core/modules/syncer.js | 6 +++--- core/modules/upgraders/plugins.js | 2 +- core/modules/wiki.js | 2 +- plugins/tiddlywiki/innerwiki/innerwiki.js | 3 ++- plugins/tiddlywiki/railroad/wrapper.js | 2 +- plugins/tiddlywiki/tw2parser/wikitextparser.js | 2 +- plugins/tiddlywiki/xlsx-utils/importer.js | 11 ++++++----- plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js | 5 +++-- 13 files changed, 25 insertions(+), 22 deletions(-) diff --git a/core/modules/commands/fetch.js b/core/modules/commands/fetch.js index 8abd0b1bb..8d0997010 100644 --- a/core/modules/commands/fetch.js +++ b/core/modules/commands/fetch.js @@ -71,7 +71,7 @@ Command.prototype.fetchFiles = function(options) { if(options.url) { urls = [options.url] } else if(options.urlFilter) { - urls = $tw.wiki.filterTiddlers(options.urlFilter); + urls = this.commander.wiki.filterTiddlers(options.urlFilter); } else { return "Missing URL"; } diff --git a/core/modules/commands/savelibrarytiddlers.js b/core/modules/commands/savelibrarytiddlers.js index 58030d3d8..a49a3a190 100644 --- a/core/modules/commands/savelibrarytiddlers.js +++ b/core/modules/commands/savelibrarytiddlers.js @@ -69,7 +69,7 @@ Command.prototype.execute = function() { // Collect the skinny list data var pluginTiddlers = JSON.parse(tiddler.text), readmeContent = (pluginTiddlers.tiddlers[title + "/readme"] || {}).text, - doesRequireReload = !!$tw.wiki.doesPluginInfoRequireReload(pluginTiddlers), + doesRequireReload = !!self.commander.wiki.doesPluginInfoRequireReload(pluginTiddlers), iconTiddler = pluginTiddlers.tiddlers[title + "/icon"] || {}, iconType = iconTiddler.type, iconText = iconTiddler.text, diff --git a/core/modules/filters/has.js b/core/modules/filters/has.js index 192daac70..7be4cf295 100644 --- a/core/modules/filters/has.js +++ b/core/modules/filters/has.js @@ -37,13 +37,13 @@ exports.has = function(source,operator,options) { else if(operator.suffix === "index") { if(invert) { source(function(tiddler,title) { - if(!tiddler || (tiddler && (!$tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) { + if(!tiddler || (tiddler && (!$tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) { results.push(title); } }); } else { source(function(tiddler,title) { - if(tiddler && $tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) { + if(tiddler && $tw.utils.hop(options.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) { results.push(title); } }); diff --git a/core/modules/server/routes/get-tiddlers-json.js b/core/modules/server/routes/get-tiddlers-json.js index 80c2a9cf9..2c730e066 100644 --- a/core/modules/server/routes/get-tiddlers-json.js +++ b/core/modules/server/routes/get-tiddlers-json.js @@ -20,8 +20,8 @@ exports.path = /^\/recipes\/default\/tiddlers.json$/; exports.handler = function(request,response,state) { var filter = state.queryParameters.filter || DEFAULT_FILTER; - if($tw.wiki.getTiddlerText("$:/config/Server/AllowAllExternalFilters") !== "yes") { - if($tw.wiki.getTiddlerText("$:/config/Server/ExternalFilters/" + filter) !== "yes") { + if(state.wiki.getTiddlerText("$:/config/Server/AllowAllExternalFilters") !== "yes") { + if(state.wiki.getTiddlerText("$:/config/Server/ExternalFilters/" + filter) !== "yes") { console.log("Blocked attempt to GET /recipes/default/tiddlers.json with filter: " + filter); response.writeHead(403); response.end(); diff --git a/core/modules/server/server.js b/core/modules/server/server.js index 3226cacd7..7e3716751 100644 --- a/core/modules/server/server.js +++ b/core/modules/server/server.js @@ -248,7 +248,7 @@ Server.prototype.listen = function(port,host,prefix) { port = process.env[port] || 8080; } // Warn if required plugins are missing - if(!$tw.wiki.getTiddler("$:/plugins/tiddlywiki/tiddlyweb") || !$tw.wiki.getTiddler("$:/plugins/tiddlywiki/filesystem")) { + if(!this.wiki.getTiddler("$:/plugins/tiddlywiki/tiddlyweb") || !this.wiki.getTiddler("$:/plugins/tiddlywiki/filesystem")) { $tw.utils.warning("Warning: Plugins required for client-server operation (\"tiddlywiki/filesystem\" and \"tiddlywiki/tiddlyweb\") are missing from tiddlywiki.info file"); } // Create the server diff --git a/core/modules/syncer.js b/core/modules/syncer.js index 91bd7e701..420e7cea9 100644 --- a/core/modules/syncer.js +++ b/core/modules/syncer.js @@ -127,7 +127,7 @@ function Syncer(options) { }); } // Listen out for lazyLoad events - if(!this.disableUI && $tw.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== "yes") { + if(!this.disableUI && this.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== "yes") { this.wiki.addEventListener("lazyLoad",function(title) { self.handleLazyLoadEvent(title); }); @@ -204,7 +204,7 @@ Syncer.prototype.isDirty = function() { if(this.wiki.tiddlerExists(title)) { if(tiddlerInfo) { // If the tiddler is known on the server and has been modified locally then it needs to be saved to the server - if($tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount) { + if(this.wiki.getChangeCount(title) > tiddlerInfo.changeCount) { return true; } } else { @@ -526,7 +526,7 @@ Syncer.prototype.chooseNextTask = function() { tiddlerInfo = this.tiddlerInfo[title]; if(tiddler) { // If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server - var hasChanged = !tiddlerInfo || $tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount, + var hasChanged = !tiddlerInfo || this.wiki.getChangeCount(title) > tiddlerInfo.changeCount, isReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved; if(hasChanged) { if(isReadyToSave) { diff --git a/core/modules/upgraders/plugins.js b/core/modules/upgraders/plugins.js index 68aa62fb2..83c762897 100644 --- a/core/modules/upgraders/plugins.js +++ b/core/modules/upgraders/plugins.js @@ -41,7 +41,7 @@ exports.upgrade = function(wiki,titles,tiddlers) { // Check if we're dealing with a plugin if(incomingTiddler && incomingTiddler["plugin-type"]) { // Check whether the plugin contains JS modules - var requiresReload = $tw.wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? ($tw.wiki.getTiddlerText("$:/language/ControlPanel/Plugins/PluginWillRequireReload") + " ") : ""; + var requiresReload = wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? (wiki.getTiddlerText("$:/language/ControlPanel/Plugins/PluginWillRequireReload") + " ") : ""; messages[title] = requiresReload; if(incomingTiddler.version) { // Upgrade the incoming plugin if it is in the upgrade library diff --git a/core/modules/wiki.js b/core/modules/wiki.js index 16f9e12f5..ff8bc6287 100755 --- a/core/modules/wiki.js +++ b/core/modules/wiki.js @@ -1052,7 +1052,7 @@ exports.makeTranscludeWidget = function(title,options) { if(options.children) { parseTreeTransclude.children = options.children; } - return $tw.wiki.makeWidget(parseTreeDiv,options); + return this.makeWidget(parseTreeDiv,options); }; /* diff --git a/plugins/tiddlywiki/innerwiki/innerwiki.js b/plugins/tiddlywiki/innerwiki/innerwiki.js index a297858dc..e1c25f8fa 100644 --- a/plugins/tiddlywiki/innerwiki/innerwiki.js +++ b/plugins/tiddlywiki/innerwiki/innerwiki.js @@ -287,9 +287,10 @@ InnerWikiWidget.prototype.readTiddlerDataWidget = function(dataWidget) { titles = this.wiki.filterTiddlers(dataWidget.getAttribute("$filter")); } if(titles) { + var self = this; var results = []; $tw.utils.each(titles,function(title,index) { - var tiddler = $tw.wiki.getTiddler(title), + var tiddler = self.wiki.getTiddler(title), fields; if(tiddler) { fields = tiddler.getFieldStrings(); diff --git a/plugins/tiddlywiki/railroad/wrapper.js b/plugins/tiddlywiki/railroad/wrapper.js index aeaab3543..311d2f420 100644 --- a/plugins/tiddlywiki/railroad/wrapper.js +++ b/plugins/tiddlywiki/railroad/wrapper.js @@ -40,7 +40,7 @@ RailroadWidget.prototype.render = function(parent,nextSibling) { var div = this.document.createElement("div"); try { // Initialise options from the config tiddler or widget attributes - var config = $tw.wiki.getTiddlerData(RAILROAD_OPTIONS,{}); + var config = this.wiki.getTiddlerData(RAILROAD_OPTIONS,{}); var options = { arrow: this.getAttribute("arrow", config.arrow || "yes") === "yes", debug: this.getAttribute("debug", config.debug || "no") === "yes", diff --git a/plugins/tiddlywiki/tw2parser/wikitextparser.js b/plugins/tiddlywiki/tw2parser/wikitextparser.js index 6a56992f5..947519bb9 100644 --- a/plugins/tiddlywiki/tw2parser/wikitextparser.js +++ b/plugins/tiddlywiki/tw2parser/wikitextparser.js @@ -60,7 +60,7 @@ var WikiTextParser = function(type,text,options) { this.output = null; this.subWikify(this.children); // prepend tw2 macros locally to the content - var parser = $tw.wiki.parseTiddler("$:/plugins/tiddlywiki/tw2parser/macrodefs",{parseAsInline:false}); + var parser = this.wiki.parseTiddler("$:/plugins/tiddlywiki/tw2parser/macrodefs",{parseAsInline:false}); this.tree = [{ type: "element", tag: "div", diff --git a/plugins/tiddlywiki/xlsx-utils/importer.js b/plugins/tiddlywiki/xlsx-utils/importer.js index 34524c9e1..d634ca55d 100644 --- a/plugins/tiddlywiki/xlsx-utils/importer.js +++ b/plugins/tiddlywiki/xlsx-utils/importer.js @@ -18,9 +18,10 @@ var XLSX = require("$:/plugins/tiddlywiki/xlsx-utils/xlsx.js"), JSZip = require("$:/plugins/tiddlywiki/jszip/jszip.js"); var XLSXImporter = function(options) { + this.wiki = options.wiki; this.filename = options.filename; this.text = options.text; - this.importSpec = options.importSpec || $tw.wiki.getTiddlerText(DEFAULT_IMPORT_SPEC_TITLE); + this.importSpec = options.importSpec || this.wiki.getTiddlerText(DEFAULT_IMPORT_SPEC_TITLE); this.logger = new $tw.utils.Logger("xlsx-utils"); this.results = []; if(JSZip) { @@ -40,7 +41,7 @@ XLSXImporter.prototype.processWorkbook = function() { this.workbook = XLSX.read(this.text,{type:"base64"}); } // Read the root import specification - this.rootImportSpec = $tw.wiki.getTiddler(this.importSpec); + this.rootImportSpec = this.wiki.getTiddler(this.importSpec); if(this.rootImportSpec) { // Iterate through the sheets specified in the list field $tw.utils.each(this.rootImportSpec.fields.list || [],this.processSheet.bind(this)); @@ -49,7 +50,7 @@ XLSXImporter.prototype.processWorkbook = function() { XLSXImporter.prototype.processSheet = function(sheetImportSpecTitle) { // Get the sheet import specifier - this.sheetImportSpec = $tw.wiki.getTiddler(sheetImportSpecTitle); + this.sheetImportSpec = this.wiki.getTiddler(sheetImportSpecTitle); if(this.sheetImportSpec) { this.sheetName = this.sheetImportSpec.fields["import-sheet-name"]; this.sheet = this.workbook.Sheets[this.sheetName]; @@ -70,7 +71,7 @@ XLSXImporter.prototype.processSheet = function(sheetImportSpecTitle) { }; XLSXImporter.prototype.processRow = function(rowImportSpecTitle) { - this.rowImportSpec = $tw.wiki.getTiddler(rowImportSpecTitle); + this.rowImportSpec = this.wiki.getTiddler(rowImportSpecTitle); if(this.rowImportSpec) { this.tiddlerFields = {}; this.skipTiddler = false; @@ -116,7 +117,7 @@ XLSXImporter.prototype.processRowByField = function() { }; XLSXImporter.prototype.processField = function(fieldImportSpecTitle) { - var fieldImportSpec = $tw.wiki.getTiddler(fieldImportSpecTitle); + var fieldImportSpec = this.wiki.getTiddler(fieldImportSpecTitle); if(fieldImportSpec) { var fieldName = fieldImportSpec.fields["import-field-name"], value; diff --git a/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js b/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js index 091778ce7..98773a3c6 100644 --- a/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js +++ b/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js @@ -34,9 +34,10 @@ Command.prototype.execute = function() { XLSXImporter = require("$:/plugins/tiddlywiki/xlsx-utils/importer.js").XLSXImporter, importer = new XLSXImporter({ filename: filename, - importSpec: importSpec + importSpec: importSpec, + wiki: wiki }); - $tw.wiki.addTiddlers(importer.getResults()); + wiki.addTiddlers(importer.getResults()); return null; }; From 33d973fb9191303014ce026a4d49fc68f69fcb1e Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 9 May 2020 15:53:38 +0100 Subject: [PATCH 21/56] Add originating widget to event objects --- core/modules/widgets/widget.js | 1 + 1 file changed, 1 insertion(+) diff --git a/core/modules/widgets/widget.js b/core/modules/widgets/widget.js index 7fd868ba1..e0444573d 100755 --- a/core/modules/widgets/widget.js +++ b/core/modules/widgets/widget.js @@ -421,6 +421,7 @@ Widget.prototype.addEventListener = function(type,handler) { Dispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget */ Widget.prototype.dispatchEvent = function(event) { + event.widget = event.widget || this; // Dispatch the event if this widget handles it var listener = this.eventListeners[event.type]; if(listener) { From 4966f6ab625c8ce2c9f0812a726ba928d68ea00b Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 9 May 2020 15:54:44 +0100 Subject: [PATCH 22/56] Add slugify and duplicateslugs operators Fixes #3379 --- core/modules/filters/duplicateslugs.js | 36 +++++++++++++++++++ core/modules/filters/slugify.js | 23 ++++++++++++ core/modules/wiki.js | 25 +++++++++++++ editions/test/tiddlers/tests/test-filters.js | 10 ++++++ .../filters/duplicateslugs Operator.tid | 22 ++++++++++++ .../tiddlers/filters/slugify Operator.tid | 24 +++++++++++++ 6 files changed, 140 insertions(+) create mode 100644 core/modules/filters/duplicateslugs.js create mode 100644 core/modules/filters/slugify.js create mode 100644 editions/tw5.com/tiddlers/filters/duplicateslugs Operator.tid create mode 100644 editions/tw5.com/tiddlers/filters/slugify Operator.tid diff --git a/core/modules/filters/duplicateslugs.js b/core/modules/filters/duplicateslugs.js new file mode 100644 index 000000000..dbd2f23e7 --- /dev/null +++ b/core/modules/filters/duplicateslugs.js @@ -0,0 +1,36 @@ +/*\ +title: $:/core/modules/filters/duplicateslugs.js +type: application/javascript +module-type: filteroperator + +Filter function for [duplicateslugs[]] + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +/* +Export our filter function +*/ +exports.duplicateslugs = function(source,operator,options) { + var slugs = Object.create(null), // Hashmap by slug of title, replaced with "true" if the duplicate title has already been output + results = []; + source(function(tiddler,title) { + var slug = options.wiki.slugify(title); + if(slug in slugs) { + if(slugs[slug] !== true) { + results.push(slugs[slug]); + slugs[slug] = true; + } + results.push(title); + } else { + slugs[slug] = title; + } + }); + return results; +}; + +})(); diff --git a/core/modules/filters/slugify.js b/core/modules/filters/slugify.js new file mode 100644 index 000000000..da091506b --- /dev/null +++ b/core/modules/filters/slugify.js @@ -0,0 +1,23 @@ +/*\ +title: $:/plugins/tiddlywiki/static/filters/slugify.js +type: application/javascript +module-type: filteroperator + +Filter operator for slugifying a tiddler title + +\*/ +(function(){ + +/*jslint node: true, browser: true */ +/*global $tw: false */ +"use strict"; + +exports.slugify = function(source,operator,options) { + var results = []; + source(function(tiddler,title) { + results.push(options.wiki.slugify(title)); + }); + return results; +}; + +})(); diff --git a/core/modules/wiki.js b/core/modules/wiki.js index ff8bc6287..80189f7a9 100755 --- a/core/modules/wiki.js +++ b/core/modules/wiki.js @@ -1503,5 +1503,30 @@ exports.doesPluginInfoRequireReload = function(pluginInfo) { } }; +exports.slugify = function(title,options) { + var tiddler = this.getTiddler(title), + slug; + if(tiddler && tiddler.fields.slug) { + slug = tiddler.fields.slug; + } else { + slug = $tw.utils.transliterate(title.toString().toLowerCase()) // Replace diacritics with basic lowercase ASCII + .replace(/\s+/g,"-") // Replace spaces with - + .replace(/[^\w\-\.]+/g,"") // Remove all non-word chars except dash and dot + .replace(/\-\-+/g,"-") // Replace multiple - with single - + .replace(/^-+/,"") // Trim - from start of text + .replace(/-+$/,""); // Trim - from end of text + } + // If the resulting slug is blank (eg because the title is just punctuation characters) + if(!slug) { + // ...then just use the character codes of the title + var result = []; + $tw.utils.each(title.split(""),function(char) { + result.push(char.charCodeAt(0).toString()); + }); + slug = result.join("-"); + } + return slug; +}; + })(); diff --git a/editions/test/tiddlers/tests/test-filters.js b/editions/test/tiddlers/tests/test-filters.js index 61e229540..9b6ed25d6 100644 --- a/editions/test/tiddlers/tests/test-filters.js +++ b/editions/test/tiddlers/tests/test-filters.js @@ -94,6 +94,7 @@ function setupWiki(wikiOptions) { tags: ["one"], cost: "123", value: "120", + slug: "tiddler-one", authors: "Joe Bloggs", modifier: "JoeBloggs", modified: "201304152222"}); @@ -103,6 +104,7 @@ function setupWiki(wikiOptions) { tags: ["two"], cost: "42", value: "190", + slug: "tiddler-two", authors: "[[John Doe]]", modifier: "John", modified: "201304152211"}); @@ -669,6 +671,14 @@ function runTests(wiki) { expect(wiki.filterTiddlers("b a b c +[sortby[b a c b]]").join(",")).toBe("b,a,c"); }); + it("should handle the slugify operator", function() { + expect(wiki.filterTiddlers("[[Joe Bloggs]slugify[]]").join(",")).toBe("joe-bloggs"); + expect(wiki.filterTiddlers("[[Joe Bloggs2]slugify[]]").join(",")).toBe("joe-bloggs2"); + expect(wiki.filterTiddlers("[[@£$%^&*((]slugify[]]").join(",")).toBe("64-163-36-37-94-38-42-40-40"); + expect(wiki.filterTiddlers("One one ONE O!N!E +[slugify[]]").join(",")).toBe("one,one,one,one"); + expect(wiki.filterTiddlers("TiddlerOne $:/TiddlerTwo +[slugify[]]").join(",")).toBe("tiddler-one,tiddler-two"); + }); + it("should handle the sortsub operator", function() { var widget = require("$:/core/modules/widgets/widget.js"); var rootWidget = new widget.widget({ type:"widget", children:[ {type:"widget", children:[]} ] }, diff --git a/editions/tw5.com/tiddlers/filters/duplicateslugs Operator.tid b/editions/tw5.com/tiddlers/filters/duplicateslugs Operator.tid new file mode 100644 index 000000000..43c89a02d --- /dev/null +++ b/editions/tw5.com/tiddlers/filters/duplicateslugs Operator.tid @@ -0,0 +1,22 @@ +caption: duplicateslugs +created: 20200509141702846 +modified: 20200509141702846 +op-input: a [[selection of titles|Title Selection]] +op-output: the input titles transformed so that they only contain lower case letters, numbers, periods, dashes and underscores +op-purpose: returns each item in the list in a human-readable form for use in URLs or filenames +tags: [[Filter Operators]] +title: duplicateslugs Operator +type: text/vnd.tiddlywiki + +<<.from-version "5.1.23">> The <<.olink slugify>> can be used to transform arbitrary tiddler titles into human readable strings suitable for use in URLs or filenames. However, itis possible for multiple different titles to slugify to the same string. The <<.olink duplicateslugs>> operator can be used to display a warning. For example: + +<$macrocall $name='wikitext-example-without-html' +src='<$list filter="[!is[system]duplicateslugs[]limit[1]]" emptyMessage="There are no duplicate slugs"> +The following tiddlers have duplicate slugs: + +
    +<$list filter="[!is[system]duplicateslugs[]]"> +
  • <$link><$text text=<>/>
  • + +
+'/> diff --git a/editions/tw5.com/tiddlers/filters/slugify Operator.tid b/editions/tw5.com/tiddlers/filters/slugify Operator.tid new file mode 100644 index 000000000..09cb8252e --- /dev/null +++ b/editions/tw5.com/tiddlers/filters/slugify Operator.tid @@ -0,0 +1,24 @@ +caption: slugify +created: 20200509141702846 +modified: 20200509141702846 +op-input: a [[selection of titles|Title Selection]] +op-output: the input titles transformed so that they only contain lower case letters, numbers, periods, dashes and underscores +op-purpose: returns each item in the list in a human-readable form for use in URLs or filenames +tags: [[Filter Operators]] +title: slugify Operator +type: text/vnd.tiddlywiki + +<<.from-version "5.1.23">> The transformation applied by the slugify operator follows these steps: + +* If there is a tiddler with the same title that has a ''slug'' field, then return that field instead of running the following steps +* Replace uppercase letters with lowercase equivalents +* Transliterate diacritics to their basic lowercase ASCII equivalents (for example, "Æ" is transliterated to "AE") +* Replace spaces with dashes +* Remove all non-word characters except dashes and periods +* Replace multiple sequential dashes with a single dash +* Trim dashes from start and end +* If the result is the empty string then character codes are used instead (eg. "&£@" transforms to "38-163-64") + +Note that it is possible for more than one title to slugify to the same string. The <<.olink duplicateslugs>> can be used to alert authors to any clashes. + +<<.operator-examples "slugify">> From 2eb11d9a2d8138ec9c0b00021f27011d6a096200 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 9 May 2020 15:56:48 +0100 Subject: [PATCH 23/56] Add slugify operator to JSZip static export example --- plugins/tiddlywiki/jszip/examples.tid | 16 ++++++++++++++-- plugins/tiddlywiki/jszip/startup.js | 1 + 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/plugins/tiddlywiki/jszip/examples.tid b/plugins/tiddlywiki/jszip/examples.tid index 681a0c364..fac50a25c 100644 --- a/plugins/tiddlywiki/jszip/examples.tid +++ b/plugins/tiddlywiki/jszip/examples.tid @@ -2,9 +2,11 @@ title: $:/plugins/tiddlywiki/jszip/examples \define actions-render-static-site() <$action-sendmessage $message="tm-zip-create" $param="$:/temp/_ZipTiddler"/> -<$list filter="[all[tiddlers]!is[system]limit[100]]"> -<$action-sendmessage $message="tm-zip-render-file" $param="$:/temp/_ZipTiddler" filename={{{ [encodeuricomponent[]addsuffix[.html]] }}} tiddler=<> template="$:/core/templates/static.tiddler.html"/> +<$set name="tv-filter-export-link" value="[slugify[]addsuffix[.html]]"> +<$list filter="[all[tiddlers]!is[system]limit[25]]"> +<$action-sendmessage $message="tm-zip-render-file" $param="$:/temp/_ZipTiddler" filename={{{ [slugify[]addsuffix[.html]] }}} tiddler=<> template="$:/core/templates/static.tiddler.html"/> + <$action-sendmessage $message="tm-zip-render-file" $param="$:/temp/_ZipTiddler" filename="static.css" template="$:/core/templates/static.template.css"/> <$action-sendmessage $message="tm-zip-download" $param="$:/temp/_ZipTiddler" filename="myzip.zip"/> \end @@ -21,4 +23,14 @@ The actions below create a ZIP file containing a static HTML rendering of the fi Render site +'<$list filter="[!is[system]duplicateslugs[]limit[1]]" emptyMessage="(There are no duplicate slugs)"> +The following tiddlers have duplicate slugs: + +
    +<$list filter="[all[tiddlers]!is[system]limit[25]duplicateslugs[]]"> +
  • <$link><$text text=<>/>
  • + +
+ + Temporary zip file: $:/temp/_ZipTiddler diff --git a/plugins/tiddlywiki/jszip/startup.js b/plugins/tiddlywiki/jszip/startup.js index 588ef1476..26466d74e 100644 --- a/plugins/tiddlywiki/jszip/startup.js +++ b/plugins/tiddlywiki/jszip/startup.js @@ -44,6 +44,7 @@ exports.startup = function() { templateTitle = paramObject.template, text = $tw.wiki.renderTiddler(outputType,templateTitle,{ parseAsInline: paramObject.mode === "inline", + parentWidget: event.widget, variables: { currentTiddler: paramObject.tiddler } From 34181230c7e547de4417fde87b3db33e54fc8212 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sat, 9 May 2020 16:08:46 +0100 Subject: [PATCH 24/56] Release note update --- editions/prerelease/tiddlers/Release 5.1.23.tid | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/editions/prerelease/tiddlers/Release 5.1.23.tid b/editions/prerelease/tiddlers/Release 5.1.23.tid index 0606aed80..750607b6e 100644 --- a/editions/prerelease/tiddlers/Release 5.1.23.tid +++ b/editions/prerelease/tiddlers/Release 5.1.23.tid @@ -1,6 +1,6 @@ caption: 5.1.23 -created: 20200422173236649 -modified: 20200422173236649 +created: 20200509160320110 +modified: 20200509160320110 tags: ReleaseNotes title: Release 5.1.23 type: text/vnd.tiddlywiki @@ -19,7 +19,7 @@ type: text/vnd.tiddlywiki * JSZip Plugin * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/6a0ff7db1807f45b73061ced82f5a85f1a529bbf]] ability to dynamically create Zip files, giving TiddlyWiki the ability to build static sites within the browser * Freelinks Plugin -** [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/1f354a972e0217e034d1f59d31577c1fd6b186f3]] support for ignoring case when matching titles +** [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/1f354a972e0217e034d1f59d31577c1fd6b186f3]] (and [[here|https://github.com/Jermolene/TiddlyWiki5/commit/c9692d7a508cfdb0446e67061201961dca64d8dd]]) support for ignoring case when matching titles ** [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/05e6c1bf62cd51df6aa025d0ad07f7959cde6fa0]] bug with autolinking within HTML `
` elements * Twitter Plugin ** [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/3a20fb1e3a41a032574d227a8c770a11ae0a5d58]] warning if wiki needs to be saved and reloaded @@ -38,21 +38,26 @@ type: text/vnd.tiddlywiki ! Hackability Improvements +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/4966f6ab625c8ce2c9f0812a726ba928d68ea00b]] new [[slugify Operator]] and [[duplicateslugs Operator]] for generating human readable filenames/URLs * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/619c0752bd3c6e71d1fcdb74daa03cfe8257afe4]] new [[sortsub Operator]] for sorting by a user defined subfilter * [[Updated|https://github.com/Jermolene/TiddlyWiki5/commit/e71a27ac2d71f2e48f9e4e9156b59bb3ecc2a105]] LinkWidget to work within SVG elements * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/c86a621d5d205e1ae0ce999b90ebe09addc45a9f]] ''accept'' attribute to the BrowseWidget * [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/77a929faa3a33768e52cf2a34ecbef9c554a6a7b]] ActionPopupWidget to allow popups to be dismissed * [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/2a8f7a9c503c9a6e4ea1bcd116be31ab6e90cf52]] [[favicon mechanism|Setting a favicon]] to support ''_canonical_uri'' images +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/48dfadd85b8ebd788b44ed2c46108720742546df]] support for recording the startup timestamp in $:/info/startup-timestamp (see [[InfoMechanism]]) ! Bug Fixes +* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/4632]] hover effect for search dropdown items * [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/4584]] restored missing parameter to `saveTiddler()` method sync adaptors * [[Fixed|https://github.com/Jermolene/TiddlyWiki5/commit/678e25f510786fbc38f505f8b594f57f39e33a04]] MakeLibraryCommand to skip non-directories +* [[Fixed|https://github.com/Jermolene/TiddlyWiki5/pull/4601]] erroneous use of `$tw.wiki` ! Contributors [[@Jermolene|https://github.com/Jermolene]] would like to thank the contributors to this release who have generously given their time to help improve TiddlyWiki: +* [[@Arlen22|https://github.com/Arlen22]] * [[@BramChen|https://github.com/BramChen]] * [[@BurningTreeC|https://github.com/BurningTreeC]] * [[@danielo515|https://github.com/danielo515]] From bf6735420d2f8191f658c556910e7d73c681d5fe Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 10 May 2020 11:58:40 +0100 Subject: [PATCH 25/56] Fix SVG favicons --- core/modules/startup/favicon.js | 6 +----- editions/tw5.com/tiddlers/howtos/Setting a favicon.tid | 4 ++-- 2 files changed, 3 insertions(+), 7 deletions(-) diff --git a/core/modules/startup/favicon.js b/core/modules/startup/favicon.js index 5adcec646..0e730905f 100644 --- a/core/modules/startup/favicon.js +++ b/core/modules/startup/favicon.js @@ -36,11 +36,7 @@ function setFavicon() { var tiddler = $tw.wiki.getTiddler(FAVICON_TITLE); if(tiddler) { var faviconLink = document.getElementById("faviconLink"); - if(tiddler.fields._canonical_uri) { - faviconLink.setAttribute("href",tiddler.fields._canonical_uri); - } else { - faviconLink.setAttribute("href","data:" + tiddler.fields.type + ";base64," + tiddler.fields.text); - } + faviconLink.setAttribute("href",$tw.utils.makeDataUri(tiddler.fields.text,tiddler.fields.type,tiddler.fields._canonical_uri)); } } diff --git a/editions/tw5.com/tiddlers/howtos/Setting a favicon.tid b/editions/tw5.com/tiddlers/howtos/Setting a favicon.tid index a18dbfd55..6e707656c 100644 --- a/editions/tw5.com/tiddlers/howtos/Setting a favicon.tid +++ b/editions/tw5.com/tiddlers/howtos/Setting a favicon.tid @@ -1,10 +1,10 @@ created: 20131224074240979 -modified: 20200422163752597 +modified: 20200510115704738 tags: [[Customise TiddlyWiki]] title: Setting a favicon type: text/vnd.tiddlywiki -"favicons" are small icons that most browsers display to help users identify websites. +"favicons" are small icons that most browsers display to help users identify websites. Note that all browsers support bitmap images, but only certain modern browsers support SVG format icons. ! favicons in the Browser From d1441d29fde17fd382658d7b541cab513d86a936 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Sun, 10 May 2020 11:59:22 +0100 Subject: [PATCH 26/56] Release note update --- editions/prerelease/tiddlers/Release 5.1.23.tid | 1 + 1 file changed, 1 insertion(+) diff --git a/editions/prerelease/tiddlers/Release 5.1.23.tid b/editions/prerelease/tiddlers/Release 5.1.23.tid index 750607b6e..e1c3108fa 100644 --- a/editions/prerelease/tiddlers/Release 5.1.23.tid +++ b/editions/prerelease/tiddlers/Release 5.1.23.tid @@ -45,6 +45,7 @@ type: text/vnd.tiddlywiki * [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/77a929faa3a33768e52cf2a34ecbef9c554a6a7b]] ActionPopupWidget to allow popups to be dismissed * [[Extended|https://github.com/Jermolene/TiddlyWiki5/commit/2a8f7a9c503c9a6e4ea1bcd116be31ab6e90cf52]] [[favicon mechanism|Setting a favicon]] to support ''_canonical_uri'' images * [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/48dfadd85b8ebd788b44ed2c46108720742546df]] support for recording the startup timestamp in $:/info/startup-timestamp (see [[InfoMechanism]]) +* [[Added|https://github.com/Jermolene/TiddlyWiki5/commit/bf6735420d2f8191f658c556910e7d73c681d5fe]] support for SVG favicons ! Bug Fixes From 5c0d91c510c117af2afce951e784f25844a7e432 Mon Sep 17 00:00:00 2001 From: "jeremy@jermolene.com" Date: Thu, 14 May 2020 07:53:30 +0100 Subject: [PATCH 27/56] Fix title of slugify.js filter module --- core/modules/filters/slugify.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/filters/slugify.js b/core/modules/filters/slugify.js index da091506b..afc12423e 100644 --- a/core/modules/filters/slugify.js +++ b/core/modules/filters/slugify.js @@ -1,5 +1,5 @@ /*\ -title: $:/plugins/tiddlywiki/static/filters/slugify.js +title: $:/core/modules/filters/slugify.js type: application/javascript module-type: filteroperator From 84a4784dee36225d2468448308d584df95ead63f Mon Sep 17 00:00:00 2001 From: Jonas Passerini Date: Thu, 14 May 2020 13:19:16 +0200 Subject: [PATCH 28/56] Add Transcludify ShortcutInfo (#4651) * Signing the CLA * Add Transcludify ShortcutInfo --- core/wiki/config/ShortcutInfo.multids | 1 + licenses/cla-individual.md | 3 +++ 2 files changed, 4 insertions(+) diff --git a/core/wiki/config/ShortcutInfo.multids b/core/wiki/config/ShortcutInfo.multids index e1dd4e179..1bf3c70ad 100644 --- a/core/wiki/config/ShortcutInfo.multids +++ b/core/wiki/config/ShortcutInfo.multids @@ -30,4 +30,5 @@ strikethrough: {{$:/language/Buttons/Strikethrough/Hint}} subscript: {{$:/language/Buttons/Subscript/Hint}} superscript: {{$:/language/Buttons/Superscript/Hint}} toggle-sidebar: {{$:/language/Buttons/ToggleSidebar/Hint}} +transcludify: {{$:/language/Buttons/Transcludify/Hint}} underline: {{$:/language/Buttons/Underline/Hint}} diff --git a/licenses/cla-individual.md b/licenses/cla-individual.md index 15abe6d3d..f1ceccef2 100644 --- a/licenses/cla-individual.md +++ b/licenses/cla-individual.md @@ -395,3 +395,6 @@ Matthias Bilger, @m42e, 2020/03/11 Mandar Vaze, @mandarvaze, 2020/04/08 Lin Dongwu, @linonetwo, 2020/04/15 + +Jonas Passerini, @passuf, 2020/05/14 + From 9c22537b4ed8ee44e5727546297d6302d8cab288 Mon Sep 17 00:00:00 2001 From: Bimba Laszlo Date: Thu, 14 May 2020 14:55:33 +0200 Subject: [PATCH 29/56] Fix the class attribute of Droppable widget (#4647) Even though we passed the `class` attribute, it did not take it into account. For example try to render this: <$droppable class="custom-css-class"> ... content ... Before applying this patch: ... content ... After applying: ... content ... --- core/modules/widgets/droppable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/modules/widgets/droppable.js b/core/modules/widgets/droppable.js index cf90d2f77..066e88cef 100644 --- a/core/modules/widgets/droppable.js +++ b/core/modules/widgets/droppable.js @@ -39,7 +39,7 @@ DroppableWidget.prototype.render = function(parent,nextSibling) { } // Create element and assign classes var domNode = this.document.createElement(tag), - classes = (this["class"] || "").split(" "); + classes = (this.droppableClass || "").split(" "); classes.push("tc-droppable"); domNode.className = classes.join(" "); // Add event handlers From 6570561d4ec31d9e64c3021bb69c20daec8c9eac Mon Sep 17 00:00:00 2001 From: Bimba Laszlo Date: Thu, 14 May 2020 14:57:12 +0200 Subject: [PATCH 30/56] The `!has[tags]` filter didn't work because `tags` field is an array (#4643) * The `!has[tags]` filter didn't work because "tags" is an array The negated `has` filter only considered empty strings, but not empty arrays (such as the `tags` field). * Add tests for `has` filter operator with array-like fields (tags, list) --- core/modules/filters/has.js | 4 ++-- editions/test/tiddlers/tests/test-filters.js | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/core/modules/filters/has.js b/core/modules/filters/has.js index 7be4cf295..bdc267c70 100644 --- a/core/modules/filters/has.js +++ b/core/modules/filters/has.js @@ -52,13 +52,13 @@ exports.has = function(source,operator,options) { else { if(invert) { source(function(tiddler,title) { - if(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === "")) { + if(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand].length === 0)) { results.push(title); } }); } else { source(function(tiddler,title) { - if(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === "" || tiddler.fields[operator.operand].length === 0)) { + if(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && (tiddler.fields[operator.operand].length !== 0)) { results.push(title); } }); diff --git a/editions/test/tiddlers/tests/test-filters.js b/editions/test/tiddlers/tests/test-filters.js index 9b6ed25d6..f9feed6cf 100644 --- a/editions/test/tiddlers/tests/test-filters.js +++ b/editions/test/tiddlers/tests/test-filters.js @@ -317,6 +317,8 @@ function runTests(wiki) { it("should handle the has operator", function() { expect(wiki.filterTiddlers("[has[modified]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne"); expect(wiki.filterTiddlers("[!has[modified]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one"); + expect(wiki.filterTiddlers("[has[tags]sort[title]]").join(",")).toBe("$:/TiddlerTwo,Tiddler Three,TiddlerOne"); + expect(wiki.filterTiddlers("[!has[tags]sort[title]]").join(",")).toBe("$:/ShadowPlugin,a fourth tiddler,filter regexp test,has filter,hasList,one"); }); it("should handle the has:field operator", function() { From 1812cbbb7cfd5783674d88f8a5b39b98d3d7ca29 Mon Sep 17 00:00:00 2001 From: mocsa <13969648+mocsa@users.noreply.github.com> Date: Thu, 14 May 2020 15:30:48 +0200 Subject: [PATCH 31/56] Clarify Introduction to filter notation.tid (#4639) I'm reading the documentation for the first time and I'm trying to clarify parts which are hard to understand for first-time users. --- .../tiddlers/filters/Introduction to filter notation.tid | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/editions/tw5.com/tiddlers/filters/Introduction to filter notation.tid b/editions/tw5.com/tiddlers/filters/Introduction to filter notation.tid index e6b785a18..9a23eb84b 100644 --- a/editions/tw5.com/tiddlers/filters/Introduction to filter notation.tid +++ b/editions/tw5.com/tiddlers/filters/Introduction to filter notation.tid @@ -72,13 +72,13 @@ In a similar way, we can use a `-` sign to <<.em remove>> a run's tiddlers from !Special parameters -The parameter of each step we've seen so far has been in square brackets, meaning that ~TiddlyWiki treats it literally. But two other kinds of bracket are possible: +The parameter of each step we've seen so far has been in square brackets. It means that ~TiddlyWiki will filter for the exact string found between the brackets. But two other kinds of bracket are possible: -<<.def "Curly brackets">> `{}` mean that the parameter is a TextReference, and that its value is to be looked up in a specified tiddler. For example, if we have a tiddler called <<.tid Preference>> whose text happens to be the word <<.value Vegetarian>>, we can say +<<.def "Curly brackets">> `{}` mean that the parameter is a TextReference, and it will be replaced with content from another tiddler. For example, if we have a tiddler with the title <<.tid Preference>> whose content is the single word <<.value Vegetarian>>, we can say > `[tag{Preference}]` -as an alternative to `[tag[Vegetarian]]`. This allows the preference to change over time. +In this simplest form the TextReference will take the full content of the tiddler (in technical terms, the text field of the tiddler) and substitute it in place of the TextReference. This way the tiddler's content will become the filter parameter, just like if you have written `[tag[Vegetarian]]`. But it gives you the added flexibility to change the parameter by changing the content of the Preference tiddler. <<.def "Angle brackets">> `<>` mean that the parameter is the name of a [[variable|Variables]] whose value is to be used instead. Here we use the built-in <<.vlink currentTiddler>> variable in a filter that selects any tiddlers whose text contains the title of the current one: From 72ff1a26fcf3eb8d5eafedcee94c8b3e68e2f7cf Mon Sep 17 00:00:00 2001 From: Simon Huber Date: Thu, 14 May 2020 15:31:16 +0200 Subject: [PATCH 32/56] Update Generating Static Sites with TiddlyWiki.tid (#4636) --- .../tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid b/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid index e9da4ae08..ce1061431 100644 --- a/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid +++ b/editions/tw5.com/tiddlers/howtos/Generating Static Sites with TiddlyWiki.tid @@ -17,7 +17,7 @@ You can explore a static representation of the main TiddlyWiki site at https://t The following commands are used to generate the sample static version of the TiddlyWiki5 site: ``` -tiddlywiki wikipath --rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html static text/plain +tiddlywiki wikipath --rendertiddlers '[!is[system]]' $:/core/templates/static.tiddler.html static text/plain tiddlywiki wikipath --rendertiddler $:/core/templates/static.template.html static.html text/plain tiddlywiki wikipath --rendertiddler $:/core/templates/static.template.css static/static.css text/plain ``` From 5d91c279803b26cc6d2f292068806c888f183780 Mon Sep 17 00:00:00 2001 From: Simon Huber Date: Thu, 14 May 2020 15:31:32 +0200 Subject: [PATCH 33/56] Update rendertiddlers.tid (#4635) --- core/language/en-GB/Help/rendertiddlers.tid | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/language/en-GB/Help/rendertiddlers.tid b/core/language/en-GB/Help/rendertiddlers.tid index a0e76d147..bb7b88423 100644 --- a/core/language/en-GB/Help/rendertiddlers.tid +++ b/core/language/en-GB/Help/rendertiddlers.tid @@ -6,13 +6,13 @@ description: Render tiddlers matching a filter to a specified ContentType Render a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`). ``` ---rendertiddlers