]> www.wagner.pp.ru Git - fiction/Kate-the-Empress.git/blobdiff - Tex2fb2
Kate-the-Empress.fb2 validates
[fiction/Kate-the-Empress.git] / Tex2fb2
diff --git a/Tex2fb2 b/Tex2fb2
index 929e9576444bef247c3bd5b14ef17ab39410c098..12f50da94cbca1d0b11758a5f6f08b85455a621d 100755 (executable)
--- a/Tex2fb2
+++ b/Tex2fb2
@@ -81,7 +81,7 @@ s/\s+$//;
 s/(\s)\s+/$1/g;
 #replace TeX ligatures ~ --- << >> \% with appropriate unicode symbols
 s/~/\xA0/g;
-s/---/-/g;
+s/---//g;
 s/<</«/g;
 s/>>/»/g;
 s/\\%/%/g;
@@ -114,12 +114,15 @@ while (@sections) {
 }
 print "</body>\n";
 ## print footnotes
-print "<body id=\"notes\">\n$footnotes\n</body>" if $footnotes;
+print "<body>\n$footnotes\n</body>" if $footnotes;
 print "</FictionBook>";
 
 sub add_to_section {
        my $data = shift;
        return if ($#sections<0) ;
+       if ($data =~ /^\s*<section>/ && $sections[$#sections]->{data} !~ /^\s*<section>/) {
+               $sections[$#sections]->{data} = tag($sections[$#sections]->{data},"section")."\n";
+       }       
        $sections[$#sections]->{data}.=$data;
 }
 
@@ -130,7 +133,11 @@ sub flushsection {
        if ($str->{title}) {
                $content = tag($str->{title},"title");
        }
-       $content .=  $str->{data};
+       if ($str->{data} =~ /^\s*$/s) {
+               $content .= "<p>\n</p>";
+       } else {
+               $content .=  $str->{data};
+       }
        if ($#sections >=0) {
                add_to_section(tag($content,$tag)."\n");
        } else {
@@ -158,7 +165,8 @@ sub pushsection {
 
 sub tag {
        my ($content,$name) = @_;
-       return "" if $content =~ /^\s*$/s;
+       $content =~s/^\s+//s;
+       return "" unless $content;
        return "<$name>$content</$name>";
 }