from docutils import nodes
from docutils.parsers.rst import Directive


class reminder(nodes.Element):
    pass


def visit_reminder_html(self, node):
    self.body.append(self.starttag(node, 'div'))


def depart_reminder_html(self, node):
    self.body.append('</div>')


def visit_reminder_latex(self, node):
    self.body.append('\n\n{\\blue\\font\\rm="FontAwesome" at 10pt'
                     '\\rm \uf06a}\\hspace{4pt}')


def depart_reminder_latex(self, node):
    pass


class Reminder(Directive):
    has_content = True

    def run(self):
        self.assert_has_content()
        reminder_node = reminder(classes=["reminder", ])
        self.state.nested_parse(
            self.content, self.content_offset,
            reminder_node,
        )
        return [reminder_node]


def setup(app):
    app.add_node(
        reminder,
        html=(visit_reminder_html, depart_reminder_html),
        latex=(visit_reminder_latex, depart_reminder_latex),
    )
    app.add_directive('reminder', Reminder)

    return {
        'version': '0.1',
        'parallel_read_safe': True,
        'parallel_write_safe': True,
    }
