diff options
author | Jesse Luehrs <doy@tozt.net> | 2011-03-08 22:27:05 -0600 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2011-03-08 22:30:36 -0600 |
commit | a18d0ebb7d16c5a80196ecd326be6436082832f6 (patch) | |
tree | 2ecee055fc1afbb907c3f235f1beb1c8189cb6be /lib | |
parent | cc207e50e8abf17b81058f1c526436da9a94fafe (diff) | |
download | app-nopaste-service-mathbin-a18d0ebb7d16c5a80196ecd326be6436082832f6.tar.gz app-nopaste-service-mathbin-a18d0ebb7d16c5a80196ecd326be6436082832f6.zip |
import initial version from App-Nopaste-0.260.27
Diffstat (limited to 'lib')
-rw-r--r-- | lib/App/Nopaste/Service/Mathbin.pm | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/lib/App/Nopaste/Service/Mathbin.pm b/lib/App/Nopaste/Service/Mathbin.pm index e69de29..755d7ee 100644 --- a/lib/App/Nopaste/Service/Mathbin.pm +++ b/lib/App/Nopaste/Service/Mathbin.pm @@ -0,0 +1,144 @@ +package App::Nopaste::Service::Mathbin; +use strict; +use warnings; +use base 'App::Nopaste::Service'; +# ABSTRACT: http://www.mathbin.net/ + +=head1 SYNOPSIS + + nopaste -s Mathbin + +=head1 DESCRIPTION + +This provides L<App::Nopaste> functionality for the +L<Mathbin|http://mathbin.net> pastebin. It also provides a small amount of +manipulation of the text, such that TeX files should be able to be provided +unmodified. + +=cut + +sub uri { 'http://www.mathbin.net/' } +sub forbid_in_default { 1 } + +sub fill_form { + my $self = shift; + my $mech = shift; + my %args = @_; + + $mech->submit_form( + form_number => 1, + fields => { + body => $self->fix_eqns($args{text}), + do { $args{desc} ? (title => $args{desc}) : () }, + do { $args{nick} ? (name => $args{nick}) : () }, + }, + ); +} + +sub return { + my $self = shift; + my $mech = shift; + + my $result = $mech->base; + + return (1, $result) if $result =~ /\/\d+$/; + return (0, "Paste unsuccessful"); +} + +sub fix_eqns { + my $self = shift; + my $text = shift; + + $text =~ s"\\\["[EQ]"g; + $text =~ s"\\\]"[/EQ]"g; + + my @text = split /\$\$/, $text, -1; + $text = ''; + my $inside = 0; + for (@text) { + $text .= $_; + if ($inside) { + $text .= '[/EQ]'; + $inside = 0; + } + else { + $text .= '[EQ]'; + $inside = 1; + } + } + $text =~ s/\[EQ\]$//; + + @text = split /\$/, $text, -1; + $text = ''; + $inside = 0; + for (@text) { + $text .= $_; + if ($inside) { + $text .= '[/IEQ]'; + $inside = 0; + } + else { + $text .= '[IEQ]'; + $inside = 1; + } + } + $text =~ s/\[IEQ\]$//; + + return $text; +} + +=head1 BUGS + +No known bugs. + +Please report any bugs through RT: email +C<bug-app-nopaste-service-mathbin at rt.cpan.org>, or browse to +L<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=App-Nopaste-Service-Mathbin>. + +=head1 SEE ALSO + +L<App::Nopaste> + +L<http://mathbin.net/> + +=head1 SUPPORT + +You can find this documentation for this module with the perldoc command. + + perldoc App::Nopaste::Service::Mathbin + +You can also look for information at: + +=over 4 + +=item * AnnoCPAN: Annotated CPAN documentation + +L<http://annocpan.org/dist/App-Nopaste-Service-Mathbin> + +=item * CPAN Ratings + +L<http://cpanratings.perl.org/d/App-Nopaste-Service-Mathbin> + +=item * RT: CPAN's request tracker + +L<http://rt.cpan.org/NoAuth/Bugs.html?Dist=App-Nopaste-Service-Mathbin> + +=item * Search CPAN + +L<http://search.cpan.org/dist/App-Nopaste-Service-Mathbin> + +=back + +=begin Pod::Coverage + +uri +forbid_in_default +fill_form +return +fix_eqns + +=end Pod::Coverage + +=cut + +1; |