Esempio n. 1
0
def php_class_role(typ,
                   rawtext,
                   text,
                   lineno,
                   inliner,
                   options={},
                   content=[]):
    text = utils.unescape(text)
    env = inliner.document.settings.env
    base_url = env.app.config.api_url
    has_explicit_title, title, full_class = split_explicit_title(text)

    try:
        full_url = base_url % full_class.replace('\\', '/') + '.html'
    except (TypeError, ValueError):
        env.warn(
            env.docname, 'unable to expand %s api_url with base '
            'URL %r, please make sure the base contains \'%%s\' '
            'exactly once' % (typ, base_url))
        full_url = base_url + utils.escape(full_class)
    if not has_explicit_title:
        class_name = full_class.lstrip('\\')
        ns = class_name.rfind('\\')
        if ns != -1:
            class_name = class_name[ns + 1:]
        title = class_name
    list = [
        nodes.reference(title,
                        title,
                        internal=False,
                        refuri=full_url,
                        reftitle=full_class)
    ]
    pnode = nodes.literal('', '', *list)
    return [pnode], []
Esempio n. 2
0
def php_class_role(typ, rawtext, text, lineno, inliner, options={},
                   content=[]):
    text = utils.unescape(text)
    env = inliner.document.settings.env
    base_url = env.app.config.api_url
    has_explicit_title, title, full_class = split_explicit_title(text)

    try:
        full_url = base_url % full_class.replace('\\', '/') + '.html'
    except (TypeError, ValueError):
        env.warn(
            env.docname, 'unable to expand %s api_url with base '
            'URL %r, please make sure the base contains \'%%s\' '
            'exactly once' % (typ, base_url))
        full_url = base_url + utils.escape(full_class)
    if not has_explicit_title:
        class_name = full_class.lstrip('\\')
        ns = class_name.rfind('\\')
        if ns != -1:
            class_name = class_name[ns + 1:]
        title = class_name
    list = [
        nodes.reference(
            title, title, internal=False, refuri=full_url, reftitle=full_class)
    ]
    pnode = nodes.literal('', '', *list)
    return [pnode], []
Esempio n. 3
0
def php_method_role(typ,
                    rawtext,
                    text,
                    lineno,
                    inliner,
                    options={},
                    content=[]):
    text = utils.unescape(text)
    env = inliner.document.settings.env
    base_url = env.app.config.api_url
    has_explicit_title, title, class_and_method = split_explicit_title(text)

    ns = class_and_method.rfind('::')
    full_class = class_and_method[:ns]
    method = class_and_method[ns + 2:]

    try:
        full_url = base_url % full_class.replace('\\', '/')
    except (TypeError, ValueError):
        env.warn(
            env.docname, 'unable to expand %s api_url with base '
            'URL %r, please make sure the base contains \'%%s\' '
            'exactly once' % (typ, base_url))
        full_url = base_url + utils.escape(full_class)
    if not has_explicit_title:
        title = method + '()'
    list = [
        nodes.reference(title,
                        title,
                        internal=False,
                        refuri=full_url,
                        reftitle=full_class + '::' + method + '()')
    ]
    pnode = nodes.literal('', '', *list)
    return [pnode], []
def php_function_role(typ,
                      rawtext,
                      text,
                      lineno,
                      inliner,
                      options={},
                      content=[]):
    text = utils.unescape(text)
    env = inliner.document.settings.env
    base_url = env.app.config.api_url
    has_explicit_title, title, namespace_and_function = split_explicit_title(
        text)

    ns = namespace_and_function.rfind('\\')
    namespace = namespace_and_function[:ns]
    function = namespace_and_function[ns + 1:]
    namespace = "namespaces/" + namespace

    try:
        full_url = base_url % namespace.replace(
            '\\', '.') + '.html' + '#function_' + function
    except (TypeError, ValueError):
        env.warn(
            env.docname, 'unable to expand %s api_url with base '
            'URL %r, please make sure the base contains \'%%s\' '
            'exactly once' % (typ, base_url))
        full_url = base_url + utils.escape(full_class)
    if not has_explicit_title:
        title = function + '()'
    list = [
        nodes.reference(title,
                        title,
                        internal=False,
                        refuri=full_url,
                        reftitle=namespace + '\\' + function + '()')
    ]
    pnode = nodes.literal('', '', *list)
    return [pnode], []
Esempio n. 5
0
def php_constant_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
    text = utils.unescape(text)
    env = inliner.document.settings.env
    base_url = env.app.config.api_url
    has_explicit_title, title, namespace_and_constant = split_explicit_title(text)

    ns = namespace_and_constant.rfind('\\')
    namespace = namespace_and_constant[:ns]
    constant = namespace_and_constant[ns+1:]
    namespace = "namespaces/" + namespace

    try:
        full_url = base_url % namespace.replace('\\', '.') + '.html' + '#constant_' + constant
    except (TypeError, ValueError):
        env.warn(env.docname, 'unable to expand %s api_url with base '
                 'URL %r, please make sure the base contains \'%%s\' '
                 'exactly once' % (typ, base_url))
        full_url = base_url + utils.escape(full_class)
    if not has_explicit_title:
        title = constant
    list = [nodes.reference(title, title, internal=False, refuri=full_url, reftitle=namespace + '\\' + constant)]
    pnode = nodes.literal('', '', *list)
    return [pnode], []
Esempio n. 6
0
def php_method_role(typ, rawtext, text, lineno, inliner, options={}, content=[]):
    text = utils.unescape(text)
    env = inliner.document.settings.env
    base_url = env.app.config.api_url
    has_explicit_title, title, class_and_method = split_explicit_title(text)

    ns = class_and_method.rfind('::')
    full_class = class_and_method[:ns]
    method = class_and_method[ns+2:]
    full_class = "classes/" + full_class

    try:
        full_url = base_url % full_class.replace('\\', '.') + '.html' + '#method_' + method
    except (TypeError, ValueError):
        env.warn(env.docname, 'unable to expand %s api_url with base '
                 'URL %r, please make sure the base contains \'%%s\' '
                 'exactly once' % (typ, base_url))
        full_url = base_url + utils.escape(full_class)
    if not has_explicit_title:
        title = method + '()'
    list = [nodes.reference(title, title, internal=False, refuri=full_url, reftitle=full_class + '::' + method + '()')]
    pnode = nodes.literal('', '', *list)
    return [pnode], []