Render the HTML code for all the :attr:`keywords` stored in this class.

        This method is called after each change in :attr:`keywords`.

def _render(self):
        """
        Render the HTML code for all the :attr:`keywords` stored in this class.

        This method is called after each change in :attr:`keywords`.
        """
        # hide the list in case that there is no `keyword` to be displayed
        if self.keywords:
            self.whole_el.style.display = "block"
            self.all_lists_el.style.display = "block"
        else:
            self.whole_el.style.display = "none"
            if "<li>" not in self.all_lists_el.html:
                self.all_lists_el.style.display = "none"

        # construct the HTML code for each keyword
        html_lines = (
            "<li class='kw_enum'>{0} {1}</li>\n".format(
                keyword,
                (self._remover % cnt)
            )
            for cnt, keyword in enumerate(self.keywords)
        )

        # put the keywords into the HTML code of the page
        self.el.innerHTML = "<ol>\n%s\n</ol>\n" % "\n".join(html_lines)

        # this function is used to bind the ✖ to function for removing the
        # keyword
        def keyword_remover(keyword):
            def remover(ev):
                self.remove_keyword(keyword)

            return remover

        # go thru all the keywords and bind them to keyword_remover()
        for cnt, keyword in enumerate(self.keywords):
            uid = "kw_remover_id_%d" % cnt
            el = document[uid]
            el.bind("click", keyword_remover(keyword))