@classmethod
def from_directive(cls, directive, app):
    """Return one of these whose state is all derived from a directive.

        This is suitable for top-level calls but not for when a renderer is
        being called from a different renderer, lest content and such from the
        outer directive be duplicated in the inner directive.

        :arg directive: The associated Sphinx directive
        :arg app: The Sphinx global app object. Some methods need this.

        """
    return cls(directive, app, arguments=directive.arguments, content=
        directive.content, options=directive.options)
