#!/usr//bin/env perl # # convert .tiddler into .tid files # useful for ginsu a TiddlyWiki, then HTTP PUT them to TiddlyWeb/TiddlySpaces # use strict; sub read_file { my ($filename) = @_; undef $/; local *FILE; open FILE, "< $filename"; binmode(FILE, ":utf8"); my $c = ; close FILE; return $c; } foreach my $file (@ARGV) { my $tid = $file; my $text = ""; if ($file =~ /.tiddler$/) { $tid =~ s/dler$//; $text = read_file($file, encoding => 'utf8'); my $attrs = $text; $attrs =~ s/\s*]*)>.*$/$1/s; $attrs =~ s/\s*(\w+)\s*=\s*["']([^"']*)["']\s*/$1: $2\n/gs; $text =~ s/^\s*]*>\s*<\s*pre>\s*(.*)\s*<\/pre\s*>\s*<\/div\s*>\s*$/$1/s; $text = $attrs . "\n" . $text; } elsif ($file =~ /.js$/) { $tid =~ s/.js$/.tid/; $text = read_file($file . ".meta") . "\n" . read_file($file); } if ($text) { print "$tid\n"; open(FILE, "> $tid"); binmode(FILE, ":utf8"); print FILE $text; close(FILE); } }