Update of /cvsroot/pure-data/scripts In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13364
Added Files: parse-help-patches.pl Log Message: first working version of script that generates the text files for the import into pdpedia
--- NEW FILE: parse-help-patches.pl --- #!/usr/bin/perl
# WARNING! This script is really ugly!
use strict; use warnings;
my $line = ""; my @lines; my $lineCount = 0; my $column; my $lastColumn = 0; my $printText = "";
my %xyhash = ();
my $library = ""; my $name = ""; my $fileName = "";
#------------------------------------------------------------------------------# # THE OUTPUT FORMAT #------------------------------------------------------------------------------# format OBJECTCLASS = {{Infobox Objectclass | name = ^* $name | library = ^* $library | author = {{^* author}} $library | status = {{^* status}} $library | website = {{^* website}} $library | release date = {{^* release date}} $library | license = {{^* license}} $library | platform = [[GNU/Linux]], [[Mac OS X]], [[Windows]] | language = English | distributions = {{^* distributions}} $library }}
@* $printText
==Inlets==
==Outlets==
==Arguments==
==Messages==
{{objectclass-stub}} [[Category:objectclass]] [[Category:^*] $library .
#------------------------------------------------------------------------------# # THE PROGRAM #------------------------------------------------------------------------------#
foreach (`/sw/bin/find /Applications/Pd-extended.app/Contents/Resources/doc/5.reference/ -type f -name '*.pd'`) { chop; $fileName = ""; if (m|.*/doc/5.reference/([a-zA-Z0-9_-]+)/(.+)-help.pd|) { print("library: $1 name: $2\n"); $library = lc($1); $name = $2; $fileName = $_; } elsif (m|.*/doc/5.reference/([a-zA-Z0-9_-]+)/(.+).pd|) { print("library: $1 name: $2 \t\t(no -help)\n"); $library = lc($1); $name = $2; $fileName = $_; }
# print "filename: $fileName\n"; if ($fileName) { open(HELPPATCH, "$fileName"); undef $/; # $/ defines the "end of record" character $_ = <HELPPATCH>; # read the whole file into the scalar close HELPPATCH; $/ = "\n"; # Restore for normal behaviour later in script
s| \||g; # remove Pd-style escaping s|([^;])\n|$1 |g; # remove extra newlines s|(http://.*%5C)%5C(%5B \n])|[$1]$2|g;
@lines = split(';\n', $_);
foreach (@lines) { if (m|^#X text ([0-9]+) ([0-9]+) (.*)|) { $xyhash{ $2 }{ $1 } = $3; # print("$lineCount @ $1,$2: $3\n"); } $lineCount++; }
$printText = ""; for ($column = -300; $column < 1501; $column += 300) { foreach my $yKey ( sort {$a <=> $b} keys(%xyhash) ) { foreach my $xKey ( keys(%{$xyhash{$yKey}}) ) { if ( ($xKey > $lastColumn) && ($xKey < $column) ) { $printText .= "$xyhash{$yKey}{$xKey}\n\n"; #$printText .= "$xKey,$yKey: $xyhash{$yKey}{$xKey}\n"; } } } $lastColumn = $column; } #print("\n\n\nPRINTTEXT:\n$printText\n\n");
mkdir($library); open(OBJECTCLASS, ">$library/${name}.txt"); write(OBJECTCLASS); close(OBJECTCLASS); } }