TiddlyWiki5/editions/tw2/source/tiddlywiki.com/tiddler2tid

54 wiersze
964 B
Perl
Executable File

#!/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 = <FILE>;
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*<div([^>]*)>.*$/$1/s;
$attrs =~ s/\s*(\w+)\s*=\s*["']([^"']*)["']\s*/$1: $2\n/gs;
$text =~ s/^\s*<div[^>]*>\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);
}
}