1
0
mirror of https://github.com/Jermolene/TiddlyWiki5 synced 2024-12-26 10:00:34 +00:00
Commit Graph

80 Commits

Author SHA1 Message Date
snlhnk
c05c0d3df6 Module-ize server routes, add static file support and other enhancements(#2679)
* Module-ize server routes and add static file support (#2510)

* Refactor server routes to modules

New module type: serverroute

Caveats: Loading order is not deterministic but this would only matter
if two route modules attempted to use the same path regexp (that would
be silly).

* Add static assets plugin

This plugin allows the node server to fetch static assets in the /assets
directory. I felt that this was a feature that goes above the core
functionality. That is why I added it as a plugin. with the modular
route extensions this was a breeze.

* Add serverroute description to ModuleTypes

* Coding standards tweaks

* Fix filename typo

* Move support for attachments from a plugin into the core

* Missing "else"

* Refactor server handling

* Introduce a new named parameter scheme for commands
* Move the SimpleServer class into it's own module
* Deprecate the --server command because of the unwieldy syntax
* Add a new --listen command using the new syntax

For example:

tiddlywiki mywiki --listen host:0.0.0.0 port:8090

* Add check for unknown parameters

* Add support for multiple basic authentication credentials in a CSV file

Beware: Passwords are stored in plain text. If that's a problem, use an authenticating proxy and the trusted header authentication approach.

* Refactor module locations

* Rename "serverroute" module type to "route"

* Remove support for verifying optional named command parameters

The idea was to be able to flag unknown parameter names, but requiring a command to pre-specify all the parameter names makes it harder for (say) the listen command to be extensible so that plugins can add new optional parameters that they handle. (This is particularly in the context of work in progress to encapsulate authenticators into their own modules).

* Refactor the two authenticators into separate modules and add support for authorization

* Correct mistaken path.join vs. path.resolve

See https://stackoverflow.com/a/39836259

* Docs for the named command parameters

I'd be grateful if anyone with sufficient Windows experience could confirm that the note about double quotes in "NamedCommandParameters" is correct.

* Be consistent about lower case parameter names

* Do the right thing when we have a username but no password

With a username parameter but no password parameter we'll attribute edits to that username, but not require authentication.

* Remove obsolete code

* Add support for requiring authentication without restricting the username

* Refactor authorization checks

* Return read_only status in /status response

* Fix two code typos

* Add basic support for detecting readonly status and avoiding write errors

We now have syncadaptors returning  readonly status and avoid attempting to write to the server if it's going to fail

* Add readonly-styles

We hide editing-related buttons in read only mode

I've made this part of the tiddlyweb plugin but I think a case could be made for putting it into the core.

* Add custom request header as CSRF mitigation

By default we require the header X-Requested-With to be set to TiddlyWiki. Can be overriden by setting csrfdisable to "yes"

See https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet#Protecting_REST_Services:_Use_of_Custom_Request_Headers

* Add support for HTTPS

* First pass at a route for serving rendered tiddlers

cc @Drakor

* Tweaks to the single tiddler static view

Adding a simple sidebar

* Switch to "dash" separated parameter names

* Typo

* Docs: Update ServerCommand and ListenCommand

* First pass at docs for the new web server stuff

Writing the docs is turning out to be quite an undertaking, much harder than writing the code!

* Get rid of extraneous paragraphs in static renderings

* Rejig anonymous user handling

Now we can support wikis that are read-only for anonymous access, but allow a user to login for read/write access.

* More docs

Slowly getting there...

* Static tiddler rendering: Fix HTML content in page title

* Docs updates

* Fix server command parameter names

Missed off 30ce7ea

* Docs: Missing quotes

* Avoid inadvertent dependency on Node.js > v9.6.0

The listenOptions parameter of the plain HTTP version of CreateServer was only introduced in v9.6.0

cc @Drakor @pmario

* Typo
2018-07-18 16:54:43 +01:00
Jermolene
29364cbd08 Change http://*.tiddlywiki.com/* to https:// 2017-11-11 11:56:20 +00:00
Jermolene
534f5e7c13 Revert "Add text/vnd.tiddlywiki to system tiddlers within plugins that should be wikified (c.f. #2883)"
This reverts commit 7436fc7374.
2017-06-24 17:48:32 +01:00
Jermolene
7436fc7374 Add text/vnd.tiddlywiki to system tiddlers within plugins that should be wikified (c.f. #2883) 2017-06-09 15:52:19 +01:00
Jermolene
6c65aa2a6d Make the syncer more configurable, including names for sync adaptors
@danielo515 you may want to add a name to your sync adaptor 😄
2017-02-04 17:25:30 +00:00
Jermolene
08cfa88249 Fix problem with unsafe use of String.prototype.replace()
We were using `String.prototype.replace()` without addressing the
wrinkle that dollar signs in the replacement string have special
handling. This caused problems in situations where the replacement
string is derived from user input and contains dollar signs.

Fixes #2517
2016-08-06 14:45:33 +01:00
Jermolene
c3d18364c1 Don't use syncadaptors until they are ready
Fixes #2453
2016-07-05 11:29:59 +01:00
Mario Wenzel
eb34709cc4 Expand description of "TiddlyWeb and TiddlySpace components"
This should fix #2019
2015-11-03 19:56:14 +01:00
nameanyone
8ce3f9983f Update save-offline.tid 2015-06-29 14:31:33 -07:00
Jermolene
f2a7f00870 Improve plugin readmes
Now every plugin has a short, introductory readme tiddler that is shown
in the online plugin library.
2015-03-19 10:53:45 +00:00
Jermolene
8765d4e31b Get rid of GettingStarted tabs in empty
I feel that we should keep empty.html’s GettingStarted very simple, and
link to other places for tutorial material
2014-12-12 10:18:49 +00:00
Jermolene
2698f08851 Tentative reworking of GettingStarted
See this thread for background:
https://groups.google.com/d/topic/tiddlywiki/sDWP4NPe8XE/discussion

Translators: please don’t translate this material until it’s settled
down
2014-12-10 21:46:29 +00:00
Jermolene
7e93c93785 Start to empty out the control panel tools tab
The control panel isn’t the right place for tools; it’s a place for
settings and internal configuration.

Once again apologies to the translators for wiping out your hard work!
2014-09-05 09:28:49 +01:00
buggyj
c956d9c1dc update to head 2014-09-01 13:00:54 +02:00
buggyj
5b7dbfc5fb remove code causing conversion of text/x-tiddlywiki type tiddlers to text/vnd.tiddlywiki 2014-09-01 11:48:40 +02:00
Jermolene
9c74afdd1a JSHint obeisance for plugins folder
Also add a jshintignore file to skip the various imported modules
2014-08-30 21:32:55 +01:00
Jermolene
2f69ea362c Rename "tw-*" messages to "tm-*" 2014-08-28 21:43:44 +01:00
Jermolene
d8c3691bd1 Removed unneeded CSS classes
Part of #764
2014-08-28 17:17:50 +01:00
Jermolene
a105b52399 Refactor saver handler
Fixing problems caused by c4b76ceb0b:

* We still need to initialise the saver-handler even when syncing to a
server, otherwise offline snapshots can’t be saved
* We need to override the default save template a bit further up the
stack, to avoid the server side serving the offline version of the wiki
at `/`
2014-08-20 10:02:44 +01:00
Jermolene
c4b76ceb0b Improve offline saving with TiddlyWeb
Now the usual “save changes” button in the sidebar will save an offline
copy of the wiki that excludes the TiddlyWeb plugin. Previously, this
functionality was only available in the control panel, leading to
several problems such as that discussed here:

https://groups.google.com/d/topic/tiddlywikidev/U61pO-TR854/discussion
2014-08-19 12:20:26 +01:00
Jermolene
27f1f82a70 Rejigging syncer structuring
The goal is to separate out the saver handling from the syncadaptor
handling; it will take a few steps to get there
2014-08-14 11:12:25 +01:00
Jermolene
3ff7462afd Avoid saving $:/HistoryList
Otherwise it just keeps growing on each navigation.
2014-07-03 14:33:20 +01:00
Xavier Cazin
f81df69395 Change references to editions/clientserver into editions/server 2014-05-03 13:10:36 +02:00
Jermolene
d6054f1039 Fix problem with offline copy of server edition
We were accidentally including all the shadow tiddlers as well as
ordinary ones.
2014-04-18 15:23:00 +01:00
Jermolene
9fbe72a877 Rearrange system tag configuration
By rearranging the `[all[]]` operator we are able to ensure that shadow
tiddlers get processed before ordinary tiddlers. This makes it easier
to create custom stylesheets that override the core.
2014-04-18 09:28:14 +01:00
Jermolene
b7f674c51a First pass at refactoring filter execution
This is the beginning of addressing #523.
2014-04-03 20:49:16 +01:00
Jermolene
e397e4d159 Disable the tiddlyweb adaptor unless loaded over http(s) 2014-04-03 16:33:42 +01:00
Jermolene
bea8730a47 Fix problem with tiddlers of the type text/css
Fixes #395
2014-02-14 19:25:38 +00:00
Jermolene
70a120d4a6 Expand the logging mechanism to support alerts overlaid on the main screen
Now we get decent visual indication of sync errors, for instance. Still
work to do to coalesce alerts so that the screen doesn’t fill up with
them after an interval. And probably we should add a button to clear
all alerts.
2014-02-14 07:53:41 +00:00
Jermolene
1086c51019 Fixed problem with field mauling when reading skinny tiddlers
The problem was showing up as tiddlers with the field “fields” and the
value “[Object object]”.
2014-02-11 15:47:56 +00:00
Jermolene
dfc57ffa49 More logging 2014-01-26 20:59:30 +00:00
Jermolene
762940adbc No longer save system modules separately in the main HTML template
These tiddlers were being handled as `<script>` tags to make it easier
to debug them. But in fact modern dev tools are quite happy to debug
code that has been eval’d, and this arrangement was causing problems
for importing.

Fixes #335
2014-01-25 21:22:43 +00:00
Jermolene
44568dc6ef Hide encryption status when running on the server
A partial fix for #303
2013-12-30 15:05:07 +00:00
Jermolene
b659c65959 Add offline download to TiddlyWeb control panel
Add button to download an offline-compatible snapshot to the TiddlyWeb
control panel
2013-12-19 16:28:42 +00:00
Jermolene
ecca7a3ea9 TiddlyWeb control panel update 2013-11-15 22:09:06 +00:00
Jermolene
95b7a5d4fe Add host configuration to TiddlyWeb control panel tab 2013-11-10 23:28:03 +00:00
Jermolene
a668f09522 More refinements to the control panel
Including adding a TiddlyWeb-specific control panel tab
2013-11-10 21:53:39 +00:00
Jeremy Ruston
ec481415f9 Fixes for TiddlyWeb 2013-11-08 20:18:26 +00:00
Jeremy Ruston
c46748b82f Fix the template for serving tiddlers 2013-10-25 22:30:36 +01:00
Jeremy Ruston
20f06e8eec Ensure that the core plugins inherit their version number from the main package.info 2013-08-26 13:28:23 +01:00
Jeremy Ruston
892b24d6e1 Allow templating of URLs for TiddlyWebAdaptor
Templates for TiddlyWeb URLs are defined in the tiddler
`$:/config/tiddlyweb/host` as a string that can include `$protocol$`
and `$host$`. The default is `$protocol$//$host$/`
2013-08-03 16:25:47 +01:00
Jeremy Ruston
28b0b58a11 Make a distinction between templates and UI
Templates are the low-level bits and pieces that allow TW5 to generate
HTML and CSS renderings of tiddlers. The UI folder contains the
user-visible UI of TW5
2013-05-31 15:38:27 +01:00
Jeremy Ruston
17cfd57390 Start making themes switchable
Separately switch in ordinary plugins and themes. Change the convention
for plugin information to use dashes rather than camel case.
2013-04-28 22:52:26 +01:00
Jeremy Ruston
ba7b886067 Move tiddlyweb stuff into a separate ServerControlPanel
Eventually we'll need a more general purpose mechanism for plugins to
add UI to the control panel
2013-04-16 11:17:27 +01:00
Jeremy Ruston
7b45c0bec8 Move the required template overrides into the tiddlyweb plugin 2013-04-03 13:23:07 +01:00
Jeremy Ruston
25e56c2ade Stop using the term "bundle" to describe plugins 2013-03-23 16:34:12 +00:00
Jeremy Ruston
5e12868e76 Fixes to ensure revision field is always a string
TiddlyWeb returns it as a number, which seems like it might be an
accident.
2013-03-18 10:13:36 +00:00
Jeremy Ruston
09a0b2a336 Use the newly refactored syncer in favour of the old tiddlyweb code 2013-03-17 18:21:24 +00:00
Jeremy Ruston
e78c161c63 Correct comment 2013-03-17 15:06:26 +00:00
Jeremy Ruston
71aa79013d Remove invokeSyncers() method from wiki.js 2013-03-16 10:58:47 +00:00