From 1c5bf1893f960e73b389831af4a225c32ff1b132 Mon Sep 17 00:00:00 2001 From: Grégoire Duchêne Date: Fri, 1 Apr 2011 18:01:01 +0200 Subject: Line element added, plus a lot of good stuff. This element is another milestone on the road to awesome new elements. Besides, it was necessary to add this element if I wanted to implement comment lines someday. I also added some minor changes in the way mppdown handles newline characters: they are now really expected, throwing an exception if absent, and a newline character is now expected after every paragraph. This newline character is then rendered back by the LaTeX generator, hence following the proper LaTeX syntax regarding paragraphs. --- src/generators/latex/line_g.cpp | 20 ++++++++++++++++++++ src/generators/latex/line_g.h | 32 ++++++++++++++++++++++++++++++++ src/generators/latex/paragraph_g.cpp | 2 +- src/generators/latex/paragraph_g.h | 4 ++-- 4 files changed, 55 insertions(+), 3 deletions(-) create mode 100644 src/generators/latex/line_g.cpp create mode 100644 src/generators/latex/line_g.h (limited to 'src/generators') diff --git a/src/generators/latex/line_g.cpp b/src/generators/latex/line_g.cpp new file mode 100644 index 0000000..3fd3b04 --- /dev/null +++ b/src/generators/latex/line_g.cpp @@ -0,0 +1,20 @@ +/* +Copyright (c) 2010, 2011, Grégoire Duchêne + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ +#include "line_g.h" + +latex::line_g::line_g() : line_g::base_type(line_) { + line_ = +text_ << ka::eol; +} diff --git a/src/generators/latex/line_g.h b/src/generators/latex/line_g.h new file mode 100644 index 0000000..4d43d3c --- /dev/null +++ b/src/generators/latex/line_g.h @@ -0,0 +1,32 @@ +/* +Copyright (c) 2010, 2011, Grégoire Duchêne + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +*/ +#ifndef _MPPDOWN_LATEX_LINE_G +#define _MPPDOWN_LATEX_LINE_G +#include +#include "../../elements.h" +#include "text_g.h" + +namespace ka = boost::spirit::karma; + +namespace latex { +struct line_g : ka::grammar { + ka::rule line_; + text_g text_; + + line_g(); +}; +} +#endif diff --git a/src/generators/latex/paragraph_g.cpp b/src/generators/latex/paragraph_g.cpp index d93bc10..47f6e7e 100644 --- a/src/generators/latex/paragraph_g.cpp +++ b/src/generators/latex/paragraph_g.cpp @@ -16,5 +16,5 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #include "paragraph_g.h" latex::paragraph_g::paragraph_g() : paragraph_g::base_type(paragraph_) { - paragraph_ = +text_; + paragraph_ = +line_ << ka::eol; } diff --git a/src/generators/latex/paragraph_g.h b/src/generators/latex/paragraph_g.h index 8cbb750..5546ffe 100644 --- a/src/generators/latex/paragraph_g.h +++ b/src/generators/latex/paragraph_g.h @@ -17,14 +17,14 @@ OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. #define _MPPDOWN_LATEX_PARAGRAPH_G #include #include "../../elements.h" -#include "text_g.h" +#include "line_g.h" namespace ka = boost::spirit::karma; namespace latex { struct paragraph_g : ka::grammar { ka::rule paragraph_; - text_g text_; + line_g line_; paragraph_g(); }; -- cgit v1.2.3-70-g09d2