Completed
Push — master ( 4c8e7d...ffbd85 )
by P.R.
01:53
created

ReferenceHtmlFormatter.generate()   A

Complexity

Conditions 1

Size

Total Lines 10

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 10
rs 9.4285
cc 1
1
"""
2
SDoc
3
4
Copyright 2016 Set Based IT Consultancy
5
6
Licence MIT
7
"""
8
# ----------------------------------------------------------------------------------------------------------------------
9
from sdoc.helper.Html import Html
10
from sdoc.sdoc2 import node_store
11
from sdoc.sdoc2.formatter.html.HtmlFormatter import HtmlFormatter
12
13
14
class ReferenceHtmlFormatter(HtmlFormatter):
15
    """
16
    HtmlFormatter for generating HTML code for references.
17
    """
18
19
    # ------------------------------------------------------------------------------------------------------------------
20
    def generate(self, node, file):
21
        """
22
        Generates the HTML code for a reference node.
23
24
        :param sdoc.sdoc2.node.ReferenceNode.ReferenceNode node: The reference node.
25
        :param file file: The output file.
26
        """
27
        self.write_into_file(node, file)
28
29
        super().generate(node, file)
30
31
    # ------------------------------------------------------------------------------------------------------------------
32
    def generate_chapter(self, node, file):
33
        """
34
        Generates the HTML code for a reference node.
35
36
        :param sdoc.sdoc2.node.ReferenceNode.ReferenceNode node: The reference node.
37
        :param file file: The output file.
38
        """
39
        if file:
40
            self.write_into_file(node, file)
41
42
        super().generate_chapter(node, file)
43
44
    # ------------------------------------------------------------------------------------------------------------------
45
    @staticmethod
46
    def write_into_file(node, file):
47
        """
48
        Writes data into opened file.
49
50
        :param sdoc.sdoc2.node.ReferenceNode.ReferenceNode node: The reference node.
51
        :param file file: The output file.
52
        """
53
        file.write(ReferenceHtmlFormatter.get_html(node))
54
55
    # ------------------------------------------------------------------------------------------------------------------
56
    @staticmethod
57
    def get_html(node):
58
        """
59
        Returns string with generated HTML tag.
60
61
        :param sdoc.sdoc2.node.ReferenceNode.ReferenceNode node: The reference node.
62
63
        :rtype: str
64
        """
65
        attributes = {'class': node.get_option_value('class'),
66
                      'href': node.get_option_value('href'),
67
                      'title': node.get_option_value('title')}
68
69
        return Html.generate_element('a', attributes, node.argument)
70
71
# ----------------------------------------------------------------------------------------------------------------------
72
node_store.register_formatter('ref', 'html', ReferenceHtmlFormatter)
73