diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index a1ad60cc7..77d3f5f03 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -23,6 +23,11 @@ A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. +**TiddlyWiki Configuration (please complete the following information):** + - Version [e.g. v5.1.24] + - Saving mechanism [e.g. Node.js, TiddlyDesktop, TiddlyHost etc] + - Plugins installed [e.g. Freelinks, TiddlyMap] + **Desktop (please complete the following information):** - OS: [e.g. iOS] - Browser [e.g. chrome, safari] diff --git a/bin/build-site.sh b/bin/build-site.sh index cdb3292aa..5bd4de5ba 100755 --- a/bin/build-site.sh +++ b/bin/build-site.sh @@ -5,7 +5,7 @@ # Default to the current version number for building the plugin library if [ -z "$TW5_BUILD_VERSION" ]; then - TW5_BUILD_VERSION=v5.1.23 + TW5_BUILD_VERSION=v5.1.24 fi echo "Using TW5_BUILD_VERSION as [$TW5_BUILD_VERSION]" @@ -107,7 +107,7 @@ node $TW5_BUILD_TIDDLYWIKI \ # /empty.html Empty # /empty.hta For Internet Explorer node $TW5_BUILD_TIDDLYWIKI \ - ./editions/empty \ + $TW5_BUILD_MAIN_EDITION \ --verbose \ --output $TW5_BUILD_OUTPUT \ --build empty \ diff --git a/bin/optimise-svgs.js b/bin/optimise-svgs.js index 28f4f715d..4920ab920 100755 --- a/bin/optimise-svgs.js +++ b/bin/optimise-svgs.js @@ -5,52 +5,52 @@ Optimise the SVGs in ./core/images using SVGO from https://github.com/svg/svgo Install SVGO with the following command in the root of the repo: -npm install svgo +npm install svgo@2.3.0 */ "use strict"; var fs = require("fs"), path = require("path"), - SVGO = require("svgo"), - svgo = new SVGO({ + { optimize } = require("svgo"), + config = { plugins: [ - {cleanupAttrs: true}, - {removeDoctype: true}, - {removeXMLProcInst: true}, - {removeComments: true}, - {removeMetadata: true}, - {removeTitle: true}, - {removeDesc: true}, - {removeUselessDefs: true}, - {removeEditorsNSData: true}, - {removeEmptyAttrs: true}, - {removeHiddenElems: true}, - {removeEmptyText: true}, - {removeEmptyContainers: true}, - {removeViewBox: false}, - {cleanupEnableBackground: true}, - {convertStyleToAttrs: true}, - {convertColors: true}, - {convertPathData: true}, - {convertTransform: true}, - {removeUnknownsAndDefaults: true}, - {removeNonInheritableGroupAttrs: true}, - {removeUselessStrokeAndFill: true}, - {removeUnusedNS: true}, - {cleanupIDs: true}, - {cleanupNumericValues: true}, - {moveElemsAttrsToGroup: true}, - {moveGroupAttrsToElems: true}, - {collapseGroups: true}, - {removeRasterImages: false}, - {mergePaths: true}, - {convertShapeToPath: true}, - {sortAttrs: true}, - {removeDimensions: false}, - {removeAttrs: {attrs: "(stroke|fill)"}} + 'cleanupAttrs', + 'removeDoctype', + 'removeXMLProcInst', + 'removeComments', + 'removeMetadata', + 'removeTitle', + 'removeDesc', + 'removeUselessDefs', + 'removeEditorsNSData', + 'removeEmptyAttrs', + 'removeHiddenElems', + 'removeEmptyText', + 'removeEmptyContainers', + // 'removeViewBox', + 'cleanupEnableBackground', + 'convertStyleToAttrs', + 'convertColors', + 'convertPathData', + 'convertTransform', + 'removeUnknownsAndDefaults', + 'removeNonInheritableGroupAttrs', + 'removeUselessStrokeAndFill', + 'removeUnusedNS', + 'cleanupIDs', + 'cleanupNumericValues', + 'moveElemsAttrsToGroup', + 'moveGroupAttrsToElems', + 'collapseGroups', + // 'removeRasterImages', + 'mergePaths', + 'convertShapeToPath', + 'sortAttrs', + //'removeDimensions', + {name: 'removeAttrs', params: { attrs: '(stroke|fill)' } } ] - }); + }; var basepath = "./core/images/", files = fs.readdirSync(basepath).sort(); @@ -66,12 +66,14 @@ files.forEach(function(filename) { fakeSVG = body.join("\n"); // A hack to make the new-journal-button work fakeSVG = fakeSVG.replace("<>","<<now "DD">>"); - svgo.optimize(fakeSVG, {path: filepath}).then(function(result) { + config.path = filepath; + var result = optimize(fakeSVG,config); + if(result) { var newSVG = header.join("\n") + "\n\n" + result.data.replace("<<now "DD">>","<>"); fs.writeFileSync(filepath,newSVG); - },function(err) { + } else { console.log("Error " + err + " with " + filename) process.exit(); - }); + }; } }); diff --git a/boot/boot.js b/boot/boot.js index 80032b4f5..ba780a109 100644 --- a/boot/boot.js +++ b/boot/boot.js @@ -267,8 +267,16 @@ $tw.utils.htmlDecode = function(s) { Get the browser location.hash. We don't use location.hash because of the way that Firefox auto-urldecodes it (see http://stackoverflow.com/questions/1703552/encoding-of-window-location-hash) */ $tw.utils.getLocationHash = function() { - var parts = window.location.href.split('#'); - return "#" + (parts.length > 1 ? parts[1] : ""); + var href = window.location.href; + var idx = href.indexOf('#'); + if(idx === -1) { + return "#"; + } else if(idx < href.length-1 && href[idx+1] === '#') { + // Special case: ignore location hash if it itself starts with a # + return "#"; + } else { + return href.substring(idx); + } }; /* @@ -297,13 +305,21 @@ $tw.utils.stringifyDate = function(value) { // Parse a date from a UTC YYYYMMDDHHMMSSmmm format string $tw.utils.parseDate = function(value) { if(typeof value === "string") { - return new Date(Date.UTC(parseInt(value.substr(0,4),10), + var negative = 1; + if(value.charAt(0) === "-") { + negative = -1; + value = value.substr(1); + } + var year = parseInt(value.substr(0,4),10) * negative, + d = new Date(Date.UTC(year, parseInt(value.substr(4,2),10)-1, parseInt(value.substr(6,2),10), parseInt(value.substr(8,2)||"00",10), parseInt(value.substr(10,2)||"00",10), parseInt(value.substr(12,2)||"00",10), parseInt(value.substr(14,3)||"000",10))); + d.setUTCFullYear(year); // See https://stackoverflow.com/a/5870822 + return d; } else if($tw.utils.isDate(value)) { return value; } else { @@ -876,6 +892,19 @@ $tw.modules.applyMethods = function(moduleType,targetObject) { return targetObject; }; +/* +Return a class created from a modules. The module should export the properties to be added to those of the optional base class +*/ +$tw.modules.createClassFromModule = function(moduleExports,baseClass) { + var newClass = function() {}; + if(baseClass) { + newClass.prototype = new baseClass(); + newClass.prototype.constructor = baseClass; + } + $tw.utils.extend(newClass.prototype,moduleExports); + return newClass; +}; + /* Return an array of classes created from the modules of a specified type. Each module should export the properties to be added to those of the optional base class */ @@ -883,13 +912,7 @@ $tw.modules.createClassesFromModules = function(moduleType,subType,baseClass) { var classes = Object.create(null); $tw.modules.forEachModuleOfType(moduleType,function(title,moduleExports) { if(!subType || moduleExports.types[subType]) { - var newClass = function() {}; - if(baseClass) { - newClass.prototype = new baseClass(); - newClass.prototype.constructor = baseClass; - } - $tw.utils.extend(newClass.prototype,moduleExports); - classes[moduleExports.name] = newClass; + classes[moduleExports.name] = $tw.modules.createClassFromModule(moduleExports,baseClass); } }); return classes; @@ -1878,7 +1901,7 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) { }); }); if(isEditableFile) { - tiddlers.push({filepath: pathname, hasMetaFile: !!metadata && !isTiddlerFile, tiddlers: fileTiddlers}); + tiddlers.push({filepath: pathname, hasMetaFile: !!metadata && !isTiddlerFile, isEditableFile: true, tiddlers: fileTiddlers}); } else { tiddlers.push({tiddlers: fileTiddlers}); } @@ -1904,15 +1927,21 @@ $tw.loadTiddlersFromSpecification = function(filepath,excludeRegExp) { } } else { // Process directory specifier - var dirPath = path.resolve(filepath,dirSpec.path), - files = fs.readdirSync(dirPath), - fileRegExp = new RegExp(dirSpec.filesRegExp || "^.*$"), - metaRegExp = /^.*\.meta$/; - for(var t=0; t 0){ + $tw.wiki.addTiddler({title: "$:/config/OriginalTiddlerPaths", type: "application/json", text: JSON.stringify(output)}); } - $tw.wiki.addTiddler({title: "$:/config/OriginalTiddlerPaths", type: "application/json", text: JSON.stringify(output)}); } - // Save the path to the tiddlers folder for the filesystemadaptor - $tw.boot.wikiTiddlersPath = path.resolve($tw.boot.wikiPath,config["default-tiddler-location"] || $tw.config.wikiTiddlersSubDir); // Load any plugins within the wiki folder var wikiPluginsPath = path.resolve(wikiPath,$tw.config.wikiPluginsSubDir); if(fs.existsSync(wikiPluginsPath)) { @@ -2152,7 +2190,7 @@ $tw.loadTiddlersNode = function() { // Load any extra plugins $tw.utils.each($tw.boot.extraPlugins,function(name) { if(name.charAt(0) === "+") { // Relative path to plugin - var pluginFields = $tw.loadPluginFolder(name.substring(1));; + var pluginFields = $tw.loadPluginFolder(name.substring(1)); if(pluginFields) { $tw.wiki.addTiddler(pluginFields); } @@ -2271,6 +2309,7 @@ $tw.boot.initStartup = function(options) { $tw.utils.registerFileType("image/heic","base64",".heic",{flags:["image"]}); $tw.utils.registerFileType("image/heif","base64",".heif",{flags:["image"]}); $tw.utils.registerFileType("image/svg+xml","utf8",".svg",{flags:["image"]}); + $tw.utils.registerFileType("image/vnd.microsoft.icon","base64",".ico",{flags:["image"]}); $tw.utils.registerFileType("image/x-icon","base64",".ico",{flags:["image"]}); $tw.utils.registerFileType("application/font-woff","base64",".woff"); $tw.utils.registerFileType("application/x-font-ttf","base64",".woff"); @@ -2428,16 +2467,29 @@ $tw.boot.executeNextStartupTask = function(callback) { }; /* -Returns true if we are running on one platforms specified in a task modules `platforms` array +Returns true if we are running on one of the platforms specified in taskModule's +`platforms` array; or if `platforms` property is not defined. */ $tw.boot.doesTaskMatchPlatform = function(taskModule) { var platforms = taskModule.platforms; if(platforms) { for(var t=0; tContributing to TiddlyWiki5

We welcome contributions to the code and documentation of TiddlyWiki in several ways:

There are other ways to help TiddlyWiki too.

Contributor License Agreement

Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).

How to sign the CLA

Create a GitHub pull request to add your name to cla-individual.md or cla-entity.md, with the date in the format (YYYY/MM/DD).

step by step

  1. Navigate to licenses/CLA-individual or licenses/CLA-entity according to whether you are signing as an individual or representative of an organisation
  2. Ensure that the "branch" dropdown at the top left is set to tiddlywiki-com
  3. Click the "edit" button at the top-right corner (clicking this button will fork the project so you can edit the file)
  4. Add your name at the bottom
    • eg: Jeremy Ruston, @Jermolene, 2011/11/22
  5. Below the edit box for the CLA text you should see a box labelled Propose file change
  6. Enter a brief title to explain the change (eg, "Signing the CLA")
  7. Click the green button labelled Propose file change
  8. On the following screen, click the green button labelled Create pull request

The CLA documents used for this project were created using Harmony Project Templates. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity".

Remarks

If you do not own the copyright in the entire work of authorship:

In this case, please clearly state so and provide links and any additional information that clarify under which license the rest of the code is distributed. +

Contributing to TiddlyWiki5

Here we focus on contributions via GitHub Pull Requests but there are many other ways that anyone can help the TiddlyWiki project, such as reporting bugs or helping to improve our documentation.

Rules for Pull Requests

PRs must meet these minimum requirements before they can be considered for merging:

  • The material in the PR must be free of licensing restrictions. Which means that either:
    • The author must hold the copyright in all of the material themselves
    • The material must be licensed under a license compatible with TiddlyWiki's BSD license
  • The author must sign the Contributors License Agreement (see below)
  • Each PR should only make a single feature change
  • The title of the PR should be 50 characters or less
  • The title of the PR should be capitalised, and should not end with a period
  • The title of the PR should be written in the imperative mood. See below
  • Adequate explanation in the body of the PR for the motivation and implementation of the change. Focus on the why and what, rather than the how
  • PRs must be self-contained. Although they can link to material elsewhere, everything needed to understand the intention of the PR should be included
  • Documentation as appropriate for end-users or developers
  • Observe the coding style
  • Read the developers documentation
  • Please open a consultation issue prior to investing time in making a large PR

Imperative Mood for PR Titles

The "imperative mood" means written as if giving a command or instruction. See this post for more details, but the gist is that the title of the PR should make sense when used to complete the sentence "If applied, this commit will...". So for example, these are good PR titles:

  • If applied, this commit will update the contributing guidelines
  • If applied, this commit will change css-escape-polyfill to a $tw.utils method
  • If applied, this commit will make it easier to subclass the wikitext parser with a custom rule set

These a poorly worded PR titles:

  • If applied, this commit will edit text widgets should use default text for missing fields
  • If applied, this commit will signing the CLA
  • If applied, this commit will don't crash if options.event is missing

PR titles may also include a short prefix to indicate the subsystem to which they apply. For example:

  • Menu plugin: Include menu text in aerial rotator

Commenting on Pull Requests

One of the principles of open source is that many pairs of eyes on the code can improve quality. So, we welcome comments and critiques of pending PRs. Conventional Comments has some techcniques to help make comments as constructive and actionable as possible. Notably, they recommend prefixing a comment with a label to clarify the intention:

praisePraises highlight something positive. Try to leave at least one of these comments per review. Do not leave false praise (which can actually be damaging). Do look for something to sincerely praise
nitpickNitpicks are small, trivial, but necessary changes. Distinguishing nitpick comments significantly helps direct the reader's attention to comments requiring more involvement
suggestionSuggestions are specific requests to improve the subject under review. It is assumed that we all want to do what's best, so these comments are never dismissed as “mere suggestions”, but are taken seriously
issueIssues represent user-facing problems. If possible, it's great to follow this kind of comment with a suggestion
questionQuestions are appropriate if you have a potential concern but are not quite sure if it's relevant or not. Asking the author for clarification or investigation can lead to a quick resolution
thoughtThoughts represent an idea that popped up from reviewing. These comments are non-blocking by nature, but they are extremely valuable and can lead to more focused initiatives and mentoring opportunities
choreChores are simple tasks that must be done before the subject can be “officially” accepted. Usually, these comments reference some common process. Try to leave a link to the process description so that the reader knows how to resolve the chore

Contributor License Agreement

Like other OpenSource projects, TiddlyWiki5 needs a signed contributor license agreement from individual contributors. This is a legal agreement that allows contributors to assert that they own the copyright of their contribution, and that they agree to license it to the UnaMesa Association (the legal entity that owns TiddlyWiki on behalf of the community).

How to sign the CLA

Create a GitHub pull request to add your name to cla-individual.md or cla-entity.md, with the date in the format (YYYY/MM/DD).

step by step

  1. Navigate to licenses/CLA-individual or licenses/CLA-entity according to whether you are signing as an individual or representative of an organisation
  2. Ensure that the "branch" dropdown at the top left is set to tiddlywiki-com
  3. Click the "edit" button at the top-right corner (clicking this button will fork the project so you can edit the file)
  4. Add your name at the bottom
    • eg: Jeremy Ruston, @Jermolene, 2011/11/22
  5. Below the edit box for the CLA text you should see a box labelled Propose file change
  6. Enter a brief title to explain the change (eg, "Signing the CLA")
  7. Click the green button labelled Propose file change
  8. On the following screen, click the green button labelled Create pull request

The CLA documents used for this project were created using Harmony Project Templates. "HA-CLA-I-LIST Version 1.0" for "CLA-individual" and "HA-CLA-E-LIST Version 1.0" for "CLA-entity".

This file was automatically generated by TiddlyWiki5

\ No newline at end of file diff --git a/core/copyright.tid b/core/copyright.tid index ffc8c4ac0..da72136c4 100644 --- a/core/copyright.tid +++ b/core/copyright.tid @@ -4,7 +4,7 @@ type: text/plain TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com) Copyright (c) 2004-2007, Jeremy Ruston -Copyright (c) 2007-2020, UnaMesa Association +Copyright (c) 2007-2021, UnaMesa Association All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/core/images/minus-button.tid b/core/images/minus-button.tid new file mode 100644 index 000000000..7132ed3e9 --- /dev/null +++ b/core/images/minus-button.tid @@ -0,0 +1,4 @@ +title: $:/core/images/minus-button +tags: $:/tags/Image + + \ No newline at end of file diff --git a/core/images/plugin-generic-language.tid b/core/images/plugin-generic-language.tid index 64b310872..5c777d98d 100755 --- a/core/images/plugin-generic-language.tid +++ b/core/images/plugin-generic-language.tid @@ -1,4 +1,4 @@ title: $:/core/images/plugin-generic-language tags: $:/tags/Image - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/plugin-generic-plugin.tid b/core/images/plugin-generic-plugin.tid index 94988e2ca..ab2e6670e 100755 --- a/core/images/plugin-generic-plugin.tid +++ b/core/images/plugin-generic-plugin.tid @@ -1,4 +1,4 @@ title: $:/core/images/plugin-generic-plugin tags: $:/tags/Image - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/plugin-generic-theme.tid b/core/images/plugin-generic-theme.tid index 34dccf18f..9ae3cd779 100755 --- a/core/images/plugin-generic-theme.tid +++ b/core/images/plugin-generic-theme.tid @@ -1,4 +1,4 @@ title: $:/core/images/plugin-generic-theme tags: $:/tags/Image - \ No newline at end of file + \ No newline at end of file diff --git a/core/images/plus-button.tid b/core/images/plus-button.tid new file mode 100644 index 000000000..b001f3e2f --- /dev/null +++ b/core/images/plus-button.tid @@ -0,0 +1,4 @@ +title: $:/core/images/plus-button +tags: $:/tags/Image + + \ No newline at end of file diff --git a/core/language/en-GB/ControlPanel.multids b/core/language/en-GB/ControlPanel.multids index c75aa5679..6b8a68ed5 100644 --- a/core/language/en-GB/ControlPanel.multids +++ b/core/language/en-GB/ControlPanel.multids @@ -17,6 +17,8 @@ Basics/NewJournal/Tags/Prompt: Tags for new journal tiddlers Basics/NewTiddler/Title/Prompt: Title of new tiddlers Basics/NewTiddler/Tags/Prompt: Tags for new tiddlers Basics/OverriddenShadowTiddlers/Prompt: Number of overridden shadow tiddlers +Basics/RemoveTags: Update to current format +Basics/RemoveTags/Hint: Update the tags configuration to the latest format Basics/ShadowTiddlers/Prompt: Number of shadow tiddlers Basics/Subtitle/Prompt: Subtitle Basics/SystemTiddlers/Prompt: Number of system tiddlers @@ -44,6 +46,7 @@ KeyboardShortcuts/Platform/Linux: Linux platform only KeyboardShortcuts/Platform/NonLinux: Non-Linux platforms only KeyboardShortcuts/Platform/Windows: Windows platform only KeyboardShortcuts/Platform/NonWindows: Non-Windows platforms only +LayoutSwitcher/Caption: Layout LoadedModules/Caption: Loaded Modules LoadedModules/Hint: These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process. Palette/Caption: Palette @@ -120,11 +123,12 @@ Saving/TiddlySpot/BackupDir: Backup Directory Saving/TiddlySpot/ControlPanel: ~TiddlySpot Control Panel Saving/TiddlySpot/Backups: Backups Saving/TiddlySpot/Caption: ~TiddlySpot Saver -Saving/TiddlySpot/Description: These settings are only used when saving to http://tiddlyspot.com or a compatible remote server +Saving/TiddlySpot/Description: These settings are only used when saving to [[TiddlySpot|http://tiddlyspot.com]], [[TiddlyHost|https://tiddlyhost.com]], or a compatible remote server. See [[here|https://github.com/simonbaird/tiddlyhost/wiki/TiddlySpot-Saver-configuration-for-Tiddlyhost-and-Tiddlyspot]] for information on ~TiddlySpot and ~TiddlyHost saving configuration. Saving/TiddlySpot/Filename: Upload Filename Saving/TiddlySpot/Heading: ~TiddlySpot Saving/TiddlySpot/Hint: //The server URL defaults to `http://.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.// Saving/TiddlySpot/Password: Password +Saving/TiddlySpot/ReadOnly: Note that [[TiddlySpot|http://tiddlyspot.com]] no longer allows the creation of new sites. For new sites you can use [[TiddlyHost|https://tiddlyhost.com]], a new hosting service which replaces ~TiddlySpot. Saving/TiddlySpot/ServerURL: Server URL Saving/TiddlySpot/UploadDir: Upload Directory Saving/TiddlySpot/UserName: Wiki Name diff --git a/core/language/en-GB/Docs/ModuleTypes.multids b/core/language/en-GB/Docs/ModuleTypes.multids index 1e1abd424..9a03d8887 100644 --- a/core/language/en-GB/Docs/ModuleTypes.multids +++ b/core/language/en-GB/Docs/ModuleTypes.multids @@ -23,6 +23,7 @@ tiddlerfield: Defines the behaviour of an individual tiddler field. tiddlermethod: Adds methods to the `$tw.Tiddler` prototype. upgrader: Applies upgrade processing to tiddlers during an upgrade/import. utils: Adds methods to `$tw.utils`. +utils-browser: Adds browser-specific methods to `$tw.utils`. utils-node: Adds Node.js-specific methods to `$tw.utils`. widget: Widgets encapsulate DOM rendering and refreshing. wikimethod: Adds methods to `$tw.Wiki`. diff --git a/core/language/en-GB/EditTemplate.multids b/core/language/en-GB/EditTemplate.multids index 31f18765a..8072ba42d 100644 --- a/core/language/en-GB/EditTemplate.multids +++ b/core/language/en-GB/EditTemplate.multids @@ -19,6 +19,8 @@ Shadow/OverriddenWarning: This is a modified shadow tiddler. You can revert to t Tags/Add/Button: add Tags/Add/Button/Hint: add tag Tags/Add/Placeholder: tag name +Tags/ClearInput/Caption: clear input +Tags/ClearInput/Hint: Clear tag input Tags/Dropdown/Caption: tag list Tags/Dropdown/Hint: Show tag list Title/BadCharacterWarning: Warning: avoid using any of the characters <> in tiddler titles diff --git a/core/language/en-GB/Help/listen.tid b/core/language/en-GB/Help/listen.tid index 88208ea29..7b2c78cbe 100644 --- a/core/language/en-GB/Help/listen.tid +++ b/core/language/en-GB/Help/listen.tid @@ -22,6 +22,7 @@ All parameters are optional with safe defaults, and can be specified in any orde * ''readers'' - comma separated list of principals allowed to read from this wiki * ''writers'' - comma separated list of principals allowed to write to this wiki * ''csrf-disable'' - set to "yes" to disable CSRF checks (defaults to "no") +* ''sse-enabled'' - set to "yes" to enable Server-sent events (defaults to "no") * ''root-tiddler'' - the tiddler to serve at the root (defaults to "$:/core/save/all") * ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to "text/plain") * ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to "text/html") diff --git a/core/language/en-GB/Help/render.tid b/core/language/en-GB/Help/render.tid index 2b7b168c9..47be85517 100644 --- a/core/language/en-GB/Help/render.tid +++ b/core/language/en-GB/Help/render.tid @@ -8,15 +8,15 @@ Optionally, the title of a template tiddler can be specified. In this case, inst A name and value for an additional variable may optionally also be specified. ``` ---render [] [] [