From c9eebafb2dd2b2db366a4cd1cbd336113b03dddf Mon Sep 17 00:00:00 2001 From: "Veronica K. B. Olsen" <1619840+vkbo@users.noreply.github.com> Date: Tue, 26 Jan 2021 16:25:14 +0100 Subject: [PATCH] Add core structure for ODT class --- nw/core/__init__.py | 2 ++ nw/core/toodt.py | 55 ++++++++++++++++++++++++++++++ nw/gui/projdetails.py | 2 +- tests/test_core/test_core_toodt.py | 35 +++++++++++++++++++ 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 nw/core/toodt.py create mode 100644 tests/test_core/test_core_toodt.py diff --git a/nw/core/__init__.py b/nw/core/__init__.py index f5140ebc..fc90379b 100644 --- a/nw/core/__init__.py +++ b/nw/core/__init__.py @@ -5,6 +5,7 @@ from nw.core.index import NWIndex from nw.core.project import NWProject from nw.core.spellcheck import NWSpellCheck, NWSpellEnchant, NWSpellSimple from nw.core.tohtml import ToHtml +from nw.core.toodt import ToOdt from nw.core.tools import countWords, numberToRoman, numberToWord __all__ = [ @@ -18,4 +19,5 @@ __all__ = [ "NWSpellEnchant", "NWSpellSimple", "ToHtml", + "ToOdt", ] diff --git a/nw/core/toodt.py b/nw/core/toodt.py new file mode 100644 index 00000000..5bad6615 --- /dev/null +++ b/nw/core/toodt.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- +""" +novelWriter – ODT Text Converter +================================ +Extends the Tokenizer class to generate ODT and FODT files + +File History: +Created: 2021-01-26 [1.1rc1] + +This file is a part of novelWriter +Copyright 2018–2021, Veronica Berglyd Olsen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +import logging + +from nw.core.tokenizer import Tokenizer + +logger = logging.getLogger(__name__) + +class ToOdt(Tokenizer): + + def __init__(self, theProject, theParent): + Tokenizer.__init__(self, theProject, theParent) + + return + + ## + # Class Methods + ## + + def doConvert(self): + """Convert the list of text tokens into a HTML document saved + to theResult. + """ + self.theResult = "" + + for tType, tLine, tText, tFormat, tStyle in self.theTokens: + continue + + return + +# END Class ToOdt diff --git a/nw/gui/projdetails.py b/nw/gui/projdetails.py index 0fabaae9..d37cebee 100644 --- a/nw/gui/projdetails.py +++ b/nw/gui/projdetails.py @@ -5,7 +5,7 @@ novelWriter – GUI Project Details Class holding the project details dialog File History: -Created: 2021-01-03 [1.0a0] +Created: 2021-01-03 [1.1a0] This file is a part of novelWriter Copyright 2018–2021, Veronica Berglyd Olsen diff --git a/tests/test_core/test_core_toodt.py b/tests/test_core/test_core_toodt.py new file mode 100644 index 00000000..c9fe5b10 --- /dev/null +++ b/tests/test_core/test_core_toodt.py @@ -0,0 +1,35 @@ +# -*- coding: utf-8 -*- +""" +novelWriter – ToOdt Class Tester +================================= + +This file is a part of novelWriter +Copyright 2018–2021, Veronica Berglyd Olsen + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program. If not, see . +""" + +import pytest + +from nw.core import NWProject, NWIndex, ToOdt + +@pytest.mark.core +def testCoreToOdt_Convert(dummyGUI): + """Test the converter of the ToHtml class. + """ + theProject = NWProject(dummyGUI) + dummyGUI.theIndex = NWIndex(theProject, dummyGUI) + theDoc = ToOdt(theProject, dummyGUI) + +# END Test testCoreToOdt_Convert