Changed 'putStrLn' to 'putStr' in Main.hs, and modified some
of the readers to make spacing at end of output more consistent. Modified tests accordingly. git-svn-id: https://pandoc.googlecode.com/svn/trunk@201 788f1e2b-df1e-0410-8736-df70ead52e1b
This commit is contained in:
parent
61ec2c0d4a
commit
fe66a90a2a
18 changed files with 25 additions and 65 deletions
61
TODO
61
TODO
|
@ -1,8 +1,19 @@
|
|||
# TODO
|
||||
|
||||
* Fix bug in latex reader? "... gets converted the wrong way.
|
||||
|
||||
* Use XHTML library for HTML writer?
|
||||
|
||||
* Revisions for building with windows under cygwin:
|
||||
Cabal under windows produces 'pandoc.exe', and some of the scripts
|
||||
expect 'pandoc'.
|
||||
expect 'pandoc'. (See if this has now been fixed by Makefile change.)
|
||||
|
||||
* Windows binary distribution: pandoc.exe. Work this into the website
|
||||
target.
|
||||
|
||||
* Consider allowing 'a.', 'b.', etc. to mark ordered lists. Perhaps
|
||||
also '(a)', '(1)', 'a)', '1)', etc., as in rst. This does depart from
|
||||
markdown syntax.
|
||||
|
||||
* Consider making section headers block titles rather than blocks.
|
||||
Instead of: [Header 1 "My title", Block1, Block2, Block3],
|
||||
|
@ -10,6 +21,10 @@
|
|||
This seems cleaner and would facilitate a docbook writer.
|
||||
It might also simplify the rst reader.
|
||||
|
||||
* Consider merging changes in pandoc-wrappers (symlinks rather than
|
||||
wrapper scripts, except web2markdown and markdown2pdf). This also
|
||||
needs documentation.
|
||||
|
||||
* pandoc's HTML output fails to validate completely (w3c).
|
||||
There are a few quirks:
|
||||
+ HTML doesn't like the \> at the end of <meta tags.
|
||||
|
@ -41,47 +56,3 @@
|
|||
Disadvantage: Perhaps slightly harder to read. (But HTML and LaTeX
|
||||
output will still be easy to read.)
|
||||
|
||||
* Consider scrapping most of the wrapper scripts in favor of having
|
||||
symlinks to pandoc. Modify pandoc so that it changes its defaults
|
||||
depending on the name of the calling program (getProgName).
|
||||
This would eliminate a lot of complexity and allow better handling
|
||||
of options (eliminating the need for a separation between wrapper
|
||||
and pandoc options, for example).
|
||||
|
||||
If we do this, we should change option parsing in pandoc to allow
|
||||
options after arguments. This will preserve backward-compatibility
|
||||
with the present wrapper system. We'd also want to add an -o
|
||||
option to pandoc (output file). When -o foo is specified, pandoc
|
||||
should print "Created foo" to stderr on success (unless --quiet
|
||||
is specified).
|
||||
|
||||
A disadvantage is that we'd lose iconv conversion. But maybe this
|
||||
isn't needed anymore; UTF-8 seems to be standard on most systems now.
|
||||
|
||||
The tricky wrappers to replace are markdown2pdf and html2markdown.
|
||||
|
||||
markdown2pdf:
|
||||
|
||||
save working_directory
|
||||
create tempdir
|
||||
if markdown2latex "$@" >tempdir/output 2>tempdir/logfile; then
|
||||
extract output-file from logfile (this will be foo.pdf)
|
||||
if output-file found:
|
||||
mv foo.pdf tempdir/foo.tex
|
||||
else:
|
||||
mv tempdir/output tempdir/foo.tex
|
||||
cd tempdir
|
||||
run pdflatex on foo.tex to produce foo.pdf
|
||||
mv foo.pdf working_directory/foo.pdf
|
||||
else:
|
||||
display logfile to inform user
|
||||
on exit:
|
||||
get rid of tempdir
|
||||
|
||||
html2markdown: needs to run the HTML through tidy (mainly because
|
||||
pandoc's html parser requires closing tags, etc.) So we probably
|
||||
need something like the existing wrapper script here. roktas
|
||||
suggests perhaps keeping html2markdown simple and using a separate
|
||||
script, web2markdown. note: we also need iconv here, since web
|
||||
pages may not be in UTF8.
|
||||
|
||||
|
|
|
@ -19,7 +19,7 @@ import Text.Pandoc.Shared
|
|||
import System ( exitWith, getArgs, getProgName )
|
||||
import System.Exit
|
||||
import System.Console.GetOpt
|
||||
import IO ( stdout, stderr, hPutStrLn )
|
||||
import System.IO
|
||||
import Data.Maybe ( fromMaybe )
|
||||
import Data.List ( isPrefixOf )
|
||||
import Char ( toLower )
|
||||
|
@ -286,7 +286,7 @@ main = do
|
|||
writerIncludeBefore = includeBefore,
|
||||
writerIncludeAfter = includeAfter }
|
||||
|
||||
(readSources sources) >>= (putStrLn . encodeUTF8 . (writer writerOptions) .
|
||||
(readSources sources) >>= (putStr . encodeUTF8 . (writer writerOptions) .
|
||||
(reader startParserState) . filter .
|
||||
decodeUTF8 . (joinWithSep "\n"))
|
||||
|
||||
|
|
|
@ -140,7 +140,7 @@ prettyBlock block = show block
|
|||
|
||||
-- | Prettyprint Pandoc document.
|
||||
prettyPandoc :: Pandoc -> String
|
||||
prettyPandoc (Pandoc meta blocks) = "Pandoc " ++ "(" ++ (show meta) ++ ")\n" ++ (prettyBlockList 0 blocks)
|
||||
prettyPandoc (Pandoc meta blocks) = "Pandoc " ++ "(" ++ (show meta) ++ ")\n" ++ (prettyBlockList 0 blocks) ++ "\n"
|
||||
|
||||
-- | Convert tabs to spaces (with adjustable tab stop).
|
||||
tabsToSpaces :: Int -- ^ Tabstop
|
||||
|
|
|
@ -11,8 +11,7 @@ import Text.PrettyPrint.HughesPJ hiding ( Str )
|
|||
writeMarkdown :: WriterOptions -> Pandoc -> String
|
||||
writeMarkdown options (Pandoc meta blocks) =
|
||||
let body = text (writerIncludeBefore options) <>
|
||||
vcat (map (blockToMarkdown (writerTabStop options)) (formatKeys blocks)) $$
|
||||
text (writerIncludeAfter options) in
|
||||
vcat (map (blockToMarkdown (writerTabStop options)) (formatKeys blocks)) $$ text (writerIncludeAfter options) in
|
||||
let head = if (writerStandalone options) then
|
||||
((metaToMarkdown meta) $$ text (writerHeader options))
|
||||
else
|
||||
|
|
|
@ -16,10 +16,11 @@ writeRST options (Pandoc meta blocks) =
|
|||
(metaToRST meta) $$ text (writerHeader options)
|
||||
else
|
||||
empty in
|
||||
let refs' = nubBy (\x y -> (render x) == (render y)) refs in -- remove duplicate keys
|
||||
-- remove duplicate keys
|
||||
let refs' = nubBy (\x y -> (render x) == (render y)) refs in
|
||||
let body = text (writerIncludeBefore options) <>
|
||||
vcat main $$ text (writerIncludeAfter options) in
|
||||
render $ top <> body $$ vcat refs'
|
||||
render $ top <> body $$ vcat refs' $$ text "\n"
|
||||
|
||||
-- | Escape special RST characters.
|
||||
escapeString :: String -> String
|
||||
|
|
|
@ -396,4 +396,3 @@ An e-mail address: nobody [at] nowhere.net<blockquote>
|
|||
<p>If you want, you can use a caret at the beginning of every line, as with blockquotes, but all that you need is a caret at the beginning of the first line of the block and any preceding blank lines.</p>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -338,4 +338,3 @@ From "Voyage dans la Lune" by Georges Melies (1902):
|
|||
Here is a movie |movie| icon.
|
||||
|
||||
.. |movie| image:: movie.jpg
|
||||
|
||||
|
|
|
@ -758,4 +758,3 @@ window.onresize = function(){setTimeout('fontScale()', 50);}</script>
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -1670,4 +1670,3 @@ else
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -15,4 +15,3 @@
|
|||
<ul>
|
||||
<li>$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</li>
|
||||
</ul>
|
||||
|
||||
|
|
|
@ -38,4 +38,3 @@ STUFF INSERTED
|
|||
STUFF INSERTED
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -609,4 +609,3 @@ to a single footnote (as with block quotes).
|
|||
^ as with blockquotes, but all that you need is a caret at the
|
||||
^ beginning of the first line of the block and any preceding
|
||||
^ blank lines.
|
||||
|
||||
|
|
|
@ -453,4 +453,3 @@ Cat & 1 \\ \hline
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
|
@ -578,4 +578,3 @@ If you want, you can use a caret at the beginning of every line, as with blockqu
|
|||
|
||||
|
||||
\end{document}
|
||||
|
||||
|
|
|
@ -625,4 +625,3 @@ space\^(my note).
|
|||
^ with blockquotes, but all that you need is a caret at the beginning
|
||||
^ of the first line of the block and any preceding blank lines.
|
||||
|
||||
|
||||
|
|
|
@ -741,3 +741,4 @@ space^(my note).
|
|||
.. _nobody@nowhere.net: mailto:nobody@nowhere.net
|
||||
.. |lalune| image:: lalune.jpg
|
||||
.. |movie| image:: movie.jpg
|
||||
|
||||
|
|
|
@ -375,4 +375,3 @@ http://example.com/
|
|||
}. This should {\i not} be a footnote reference, because it contains a space^(my note).\par}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -453,4 +453,3 @@ Cat & 1 \\ \hline
|
|||
</div>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
|
Loading…
Reference in a new issue