@classmethod
def parse(cls, path, *parsers, **kw):
    """
        Read the text from the supplied path and parse it into a document
        using the supplied parsers.
        """
    encoding = kw.pop('encoding', 'utf-8')
    with open(path, encoding=encoding) as source:
        text = source.read()
    document = cls(text, path)
    for parser in parsers:
        for region in parser(document):
            document.add(region)
    return document
