not-wl support in pdf commerce
authorRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Mon, 23 Jan 2012 10:36:55 +0000 (11:36 +0100)
committerRadek Czajka <radoslaw.czajka@nowoczesnapolska.org.pl>
Mon, 23 Jan 2012 10:36:55 +0000 (11:36 +0100)
librarian/pdf.py
librarian/pdf/wl.cls
librarian/pdf/wl2tex.xslt
scripts/book2pdf

index bcf8d9a..c34042e 100644 (file)
@@ -180,10 +180,11 @@ def transform(wldoc, verbose=False, save_tex=None, morefloats=None,
     verbose: prints all output from LaTeX
     save_tex: path to save the intermediary LaTeX file to
     morefloats (old/new/none): force specific morefloats
-    cover: a cover.Cover object
-    flags: less-advertising,
+    cover: a cover.Cover object or True for default
+    flags: less-advertising, not-wl, images
     customizations: user requested customizations regarding various formatting parameters (passed to wl LaTeX class)
     """
+    # TODO: images
 
     # Parse XSLT
     try:
index c9305ca..5139241 100644 (file)
@@ -197,30 +197,32 @@ Letters={SmallCaps,UppercaseSmallCaps}
 
 \renewcommand{\maketitle}{
     {
-    \thispagestyle{empty}
-    \footnotesize
-    \color{theme}
-
-    \noindent \begin{minipage}[t]{.35\textwidth}\vspace{0pt}
-        \href{http://www.wolnelektury.pl}{\xbox{\includegraphics[width=\textwidth]{wl-logo.png}}}
-    \end{minipage}
-    \begin{minipage}[t]{.65\textwidth}\vspace{0pt}
-
-    \ifflaglessadvertising
+    \ifflagnotwl
     \else
-        \href{\bookurl}{Ta lektura}, podobnie jak tysiące innych, jest dostępna on-line na stronie
-        \href{http://www.wolnelektury.pl/}{wolnelektury.pl}.
-        \vspace{.5em}
+        \thispagestyle{empty}
+        \footnotesize
+        \color{theme}
+        \noindent \begin{minipage}[t]{.35\textwidth}\vspace{0pt}
+            \href{http://www.wolnelektury.pl}{\xbox{\includegraphics[width=\textwidth]{wl-logo.png}}}
+        \end{minipage}
+        \begin{minipage}[t]{.65\textwidth}\vspace{0pt}
+
+        \ifflaglessadvertising
+        \else
+            \href{\bookurl}{Ta lektura}, podobnie jak tysiące innych, jest dostępna on-line na stronie
+            \href{http://www.wolnelektury.pl/}{wolnelektury.pl}.
+            \vspace{.5em}
+        \fi
+
+        Utwór opracowany został w ramach projektu \href{http://www.wolnelektury.pl/}{Wolne Lektury}
+        przez \href{http://nowoczesnapolska.org.pl}{fundację Nowoczesna Polska}.
+
+        \end{minipage}
+        \noindent \rule{\linewidth}{0.4pt}
+
+        \vspace{.6em}
+        \color{black}
     \fi
-
-    Utwór opracowany został w ramach projektu \href{http://www.wolnelektury.pl/}{Wolne Lektury}
-    przez \href{http://nowoczesnapolska.org.pl}{fundację Nowoczesna Polska}.
-
-    \end{minipage}
-    \noindent \rule{\linewidth}{0.4pt}
-
-    \vspace{.6em}
-    \color{black}
     }
 }
 
@@ -234,7 +236,10 @@ Letters={SmallCaps,UppercaseSmallCaps}
     \rightsinfo
     \vspace{.6em}
 
-    Źródło: \href{\bookurl}{\bookurl}
+    \ifflagnotwl
+    \else
+        Źródło: \href{\bookurl}{\bookurl}
+    \fi
 
     \vspace{.6em}
     \sourceinfo
@@ -254,7 +259,8 @@ Letters={SmallCaps,UppercaseSmallCaps}
 
 
 \newcommand{\typosubsubsection}[1]{%
-{\textsc{#1}}
+%{\textsc{#1}}
+#1
 }
 
 \newcommand{\typosubsection}[1]{%
index 1a675ba..4b6a44a 100644 (file)
@@ -20,6 +20,7 @@
         <!-- flags and values set on root -->
 
         \newif\ifflaglessadvertising
+        \newif\ifflagnotwl
         <xsl:for-each select="@*[starts-with(name(), 'flag-')]">
             <cmd>
                 <xsl:attribute name="name"><xsl:value-of select="wl:texcommand(name())" />true</xsl:attribute>
 
 <xsl:template name="editors">
     <xsl:if test="//dc:contributor.editor_parsed|//dc:contributor.technical_editor_parsed">
-        <xsl:text>Opracowanie redakcyjne i przypisy: </xsl:text>
+        <xsl:text>Opracowanie redakcyjne: </xsl:text>
         <xsl:for-each select="//dc:contributor.editor_parsed|//dc:contributor.technical_editor_parsed[not(//dc:contributor.editor_parsed/text()=text())]">
             <xsl:sort select="@sortkey" />
             <xsl:if test="position() != 1">, </xsl:if>
index 258c20d..fe66e56 100755 (executable)
@@ -8,6 +8,7 @@ import os.path
 from optparse import OptionParser
 
 from librarian import DirDocProvider, ParseError
+from librarian.cover import ImageCover
 from librarian.parser import WLDocument
 
 
@@ -30,6 +31,16 @@ if __name__ == '__main__':
                       help='specifies the directory for output')
     parser.add_option('-m', '--morefloats', dest='morefloats', metavar='old/new/none',
                       help='force morefloats in old (<1.0c), new (>=1.0c) or none')
+
+    parser.add_option('-i', '--with-images', action='store_true', dest='images', default=False,
+                      help='add images with <ilustr src="..."/>')
+    parser.add_option('-A', '--less-advertising', action='store_true', dest='less_advertising', default=False,
+                      help='less advertising, for commercial purposes')
+    parser.add_option('-W', '--not-wl', action='store_true', dest='not_wl', default=False,
+                      help='not a WolneLektury book')
+    parser.add_option('--cover', dest='cover', metavar='FILE',
+                      help='specifies the cover file')
+
     (options, args) = parser.parse_args()
 
     if len(args) < 1:
@@ -50,9 +61,26 @@ if __name__ == '__main__':
                 output_file = None
 
             doc = WLDocument.from_file(main_input, provider=provider)
+
+            if options.cover:
+                cover = ImageCover(options.cover)
+            else:
+                cover = options.with_cover
+
+            flags = []
+            if options.images:
+                flags.append('images')
+            if options.less_advertising:
+                flags.append('less-advertising')
+            if options.not_wl:
+                flags.append('not-wl')
+
             pdf = doc.as_pdf(save_tex=options.save_tex,
-                        cover=options.with_cover,
-                        morefloats=options.morefloats)
+                        cover=cover,
+                        flags=flags,
+                        morefloats=options.morefloats,
+                        verbose=options.verbose
+                    )
 
             doc.save_output_file(pdf,
                 output_file, options.output_dir, options.make_dir, 'pdf')