Widdler: Another Tiddlywiki Saver based on WebDAV

Following to @clutterstack announcement of Widdler here (Widdler (in Go, for serving TW) on HN front page).
I talked to Aaron (the developer of Widdler) to publish the binaries for simple use of Widdler in production environment!

You can now download the binaries and enjoy saving and creating new Wiki just on the fly!

This is one the simplest Webdav saver for Tiddlywiki I have ever seen!

Thank you Aaron!

7 Likes

A WebDAV server for TiddlyWikis

Jump start on Windows 10 (64bit)
This should work on other system too

  1. Download your binary of choice, for Win 10 64b
    1.1. Goto Release v1.2.1 · qbit/widdler · GitHub
    1.2. Download widdler_1.2.1_Windows_x86_64.tar.gz
  2. Unzip the widdler_1.2.1_Windows_x86_64.tar.gz into your folder of choice
  3. Open a shell window (like powershell or cmd command window)
  4. run widdler.exe -gen this will generate a .htpasswd file
    4.1. give a username of choice
    4.2. give a password
  5. run widdler by entering widdler.exe at prompt
  6. Open your browser and enter http://localhost:8080/

That is all

  1. If you want to create a new wiki just point out to it, Widdler will create a new one on the fly like
  • http://localhost:8080/wiki.html will create the wiki.html from Tiddlywki 5.2.1
  • http://localhost:8080/hirad.html will create the hirad.html from Tiddlywki 5.2.1

More customization

Read the README.md for more details

2 Likes

Widdler Features

  • TiddlyWikis are served over WebDav so you can save directly from the browser.
  • Automatically create new wiki files by browsing to a non-existent html file.
  • Built in .htpasswd management (Adding users).
  • Password protection via HTTP Basic Authentication.
  • Multiple users (adding another user to the .htaccess file creates a new user namespace).
  • Optional TLS support.
2 Likes

Mohammad

Thanks for this work, very good.

The following are non essential but useful configuration for any server, so perhaps if you or other community members can help it would be great.

The default local host is often in use already, is it easy to change this and/or if desired set a local ip address so we can access it on the lan (not just 0.0.0.0)?

With bob and others I used 127.0.4.1 leaving the default free for other servers.

I also made it visible on an additional static ip address, this allows the server to move, to a different computer without any addresses changing. You can even add it to a DNS if available.

If i can get all this working I will add a serial editing solution for teams and see if open it safely to the internet if not via a vpn.

Widdler takes a -http option that lets one specify an ip address and port . For example “-http 192.168.2.3:4567”.

5 Likes

Aaron (@qbit ) is the creator of Widdler is here, so he will answer questions.

Thank you Aaron.

2 Likes

@qbit
At the moment Widdler uses the empty.html from TW5.2.1 as template for creating new wiki, is it possible to set other template or edition?

I use an uglified version(compressed version) which takes only 1.2MB.
Uglify plugin from @Flibbles let’s you to have empty version of TW 5.2.1 at 50% of original empty.html

Maybe I’m wrong, but I couldn’t edit a .tar.gz file and after doing some googling, it looks like on Windows I have to get a program 7-Zip to use it. I edited the wiki above, but let me know if I’m mistaken.

My Windows 10 Home has C:\WINDOWS\system32\tar.exe

If you are not averse to using a command prompt, the file can be extracted using:

> tar -xvf widdler_1.2.1_Windows_x86_64.tar.gz

-x Extract
-v Verbose
-f Filename

C:\Users\Amreus\Downloads>tar -vxf widdler_1.2.1_Windows_x86_64.tar.gz
x LICENSE
x README.md
x widdler.exe
4 Likes

Aha - thanks @amreus!

1 Like

Oh wow, that’s impressive!

The html file is embedded at compile time, so switching it out requires a new compile.

I can post instructions on how to do it.

1 Like

Do you mind to include the compressed version instead of Empty.html?
It will takes 50% of orginal empty. html?
This is just a suggestion ignore it if you prefer raw empty.html

Embedding external, immutable content in a go executable is easy and convenient, but with so many possible variations of Tiddlywikis would it make sense to just fetch the html files on demand?

Or rather embed the latest stable version and have an option to fetch from some user-provided url.

I would be against embedding a compressed version. The reason being just this week I made what was meant to be a minor edit on a tiddler using Quine on my phone, and ended up with a non-working wiki for the rest of the day.

The way I fixed it was moving the html file to my desktop and opening it in a text editor to revert the change. That may not have been as easy if the file had been “uglified.”

The uglify plugin only compresses the JS and some css, it does not compress the content you add after compression nor the normal tiddlers.
I use uglified version in medium scale and have not any problem yet. May be @Flibbles can explain this better.

I am with fetching template, edition from external sources, but if Widdler has to embed one empty Tiddly wiki then compressed one has no harm.

Ok that makes sense.

To me, even using a Dell from 2010, size/efficiency hasn’t been an actual issue.

I’m not sure what Widdler is for, or what it’s generating, but Uglify compresses plugins only. Any other tiddlers in a Tiddlywiki would be untouched.

That said, maybe I’m not understanding what this Tiddlywiki generation is about, but since there exists a simple uglifier wizard, can’t the uglifying being left up to the end user?

Hello @flibbles,

So uglify touches only plugins, not the core Javascript?

widdler is a WebDav server made specifically with Tiddlywiki in mind. It runs as a server and allows listing your wikis, and saving of them without browser plugins. Widdler embeds a tiddlywiki html file in the executable and uses that embedded file when creating new wikis on the disc. It is possible to embed any version of Tiddlywiki.

Is there any hope that the standard Debian/Ubuntu linux flavors will be supported?

1 Like

The core javascript is in “$:/core”, which is technically a plugin. It also uglifies boot.js and bootprefix.js. Any added tiddlers to the wiki would always remain untouched, but that doesn’t seem relevant here since it sounds like you’re embedded Tiddlywiki file is just for initializing new wikis.

I’m not sure if embedding an uglified Tiddlywiki is the best option. That marries uglify and widdler, when the idea behind uglify is to be an option. I assume there’s a way to upgrade already-created tiddlywikis. That same process might also be used to uglify wikis that the user has already created through widdler.

1 Like