Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 6 additions & 13 deletions sdoc/SDoc.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,8 +132,8 @@ def _config_create_formatter(self, config):
# Read the target format of the document.
target_format = config.get('sdoc', 'format', fallback=None)
if target_format not in available_formats:
raise SDocError("The format '{0!s}' is not available in SDoc. Set another in config file '{1!s}'".format(
target_format, self._args.config_filename))
raise SDocError("The format '{0!s}' is not available in SDoc. Set another in config file '{1!s}'"
.format(target_format, self._args.config_filename))

if not target_format:
raise SDocError("Option 'format' in section 'sdoc' not set in config file '{0!s}'"
Expand Down Expand Up @@ -259,17 +259,14 @@ def run_sdoc1(main_filename, temp_filename):

# ------------------------------------------------------------------------------------------------------------------
@staticmethod
def run_sdoc2(temp_filename, one_file, file_per_chapter):
def run_sdoc2(temp_filename):
"""
Run the SDoc2 parser.

:param str temp_filename: The name of the temporary file where the SDoc2 document is stored.
:param bool one_file: Info about generating one output file per one source file.
:param bool file_per_chapter: Info about generating one output file per on chapter of source file.
"""
interpreter2 = SDoc2Interpreter()
interpreter2.process(temp_filename)
sdoc.sdoc2.node_store.generate(one_file, file_per_chapter)

# ------------------------------------------------------------------------------------------------------------------
def _run_sdoc(self):
Expand All @@ -281,14 +278,10 @@ def _run_sdoc(self):

self.run_sdoc1(main_filename, temp_filename)

self.run_sdoc2(temp_filename, self._formatter.one_file, self._formatter.file_per_chapter)
self.run_sdoc2(temp_filename)

# Activate numbering nodes.
if self._formatter.enumerate:
sdoc.sdoc2.node_store.number_numerable()

# Start generating file with specific parameters.
sdoc.sdoc2.node_store.generate(self._formatter.one_file, self._formatter.file_per_chapter)
# Start generating file with specific format.
sdoc.sdoc2.node_store.generate(self._formatter)

# ------------------------------------------------------------------------------------------------------------------
def test_sdoc1(self, main_filename):
Expand Down
23 changes: 22 additions & 1 deletion sdoc/format/HtmlFormat.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,10 @@
Licence MIT
"""
# ----------------------------------------------------------------------------------------------------------------------
import sdoc
from sdoc.error import SDocError
from sdoc.format.Format import Format
from sdoc.sdoc2 import node_store


class HtmlFormat(Format):
Expand Down Expand Up @@ -101,6 +103,25 @@ def one_file(self):

# ------------------------------------------------------------------------------------------------------------------
def generate(self):
pass
"""
Starts generating HTML file.
"""
# Activate numbering nodes.
if self.enumerate:
sdoc.sdoc2.node_store.number_numerable()

# Generate labels.
sdoc.sdoc2.node_store.parse_labels()

# Generate whole HTML output file.
if self.one_file:
general_file = open('output.html', 'w')
formatter = sdoc.sdoc2.node_store.create_formatter('document')
formatter.generate(sdoc.sdoc2.node_store.nodes[1], general_file)

# Generate in mode 'output file on each chapter'.
if self.file_per_chapter:
formatter = sdoc.sdoc2.node_store.create_formatter('document')
formatter.generate_chapter(sdoc.sdoc2.node_store.nodes[1], None)

# ----------------------------------------------------------------------------------------------------------------------
21 changes: 5 additions & 16 deletions sdoc/sdoc2/NodeStore.py
Original file line number Diff line number Diff line change
Expand Up @@ -397,26 +397,15 @@ def number_numerable(self):
self.nodes[1].number(self._enumerable_numbers)

# ------------------------------------------------------------------------------------------------------------------
def generate(self, one_file=False, file_per_chapter=False):
@staticmethod
def generate(formatter):
"""
Generates the document.

:param bool one_file: If True creates one output file for one source file.
:param bool file_per_chapter: If True creates one output file per one chapter of source file.
:param sdoc.format.Format.Format formatter: The format which will generate file.
"""
# Generates labels.
self.parse_labels()

# Generates whole HTML output file.
if one_file:
general_file = open('output.html', 'w')
formatter = self.create_formatter('document')
formatter.generate(self.nodes[1], general_file)

# Generates in mode 'output file on each chapter'.
if file_per_chapter:
formatter = self.create_formatter('document')
formatter.generate_chapter(self.nodes[1], None)
# Start generating file using specific formatter.
formatter.generate()

# ------------------------------------------------------------------------------------------------------------------
def get_enumerated_items(self):
Expand Down