Esempio n. 1
0
def h_cite(parser, buf, mac, args, delim, pos):
    opt1 = args[1]
    opt2 = args[2]
    if len(opt1) == 1 and type(opt1[0]) is defs.VoidToken:
        # only [] given
        opt1 = []
    if opt2:
        pre = opt1
        if len(opt2) == 1 and type(opt2[0]) is defs.VoidToken:
            # only [] given
            opt2 = []
        post = opt2
    else:
        pre = []
        post = opt1

    out = [defs.TextToken(pos, '[', pos_fix=True)]
    if pre:
        out += pre
        out.append(defs.SpaceToken(out[-1].pos, ' ', pos_fix=True))
    out.append(defs.TextToken(out[-1].pos, cite_text, pos_fix=True))
    if post:
        out += [
            defs.TextToken(out[-1].pos, ',', pos_fix=True),
            defs.SpaceToken(out[-1].pos, ' ', pos_fix=True)
        ]
        out += post
    out += [
        defs.TextToken(out[-1].pos, ']', pos_fix=True),
        defs.ActionToken(out[-1].pos)
    ]
    return out
Esempio n. 2
0
def h_xyz(parser, buf, mac, args, delim, pos):
    return [
        defs.TextToken(pos, str(len(args[0]))),
        defs.TextToken(pos, str(len(args[1]))),
        defs.TextToken(pos, str(len(args[2]))),
        defs.TextToken(pos, repr(type(args[1][0]) is defs.VoidToken)),
        defs.TextToken(pos, repr(type(args[2][0]) is defs.VoidToken)),
    ]
Esempio n. 3
0
def h_footcite(parser, buf, mac, args, delim, pos):
    out = [defs.MacroToken(pos, '\\footnote'), defs.SpecialToken(pos, '{')]
    out += h_cite(parser, buf, mac, args, delim, pos)
    out += [
        defs.TextToken(out[-1].pos, '.', pos_fix=True),
        defs.SpecialToken(out[-1].pos, '}'),
        defs.ActionToken(out[-1].pos)
    ]
    return out
Esempio n. 4
0
def modify_description(parser, toks):
    toks = cap_first(toks)
    txt = parser.get_text_expanded(toks)
    if txt and txt[-1] not in ('.', '!', '?'):
        toks.append(defs.TextToken(toks[-1].pos, '.', pos_fix=True))
    return toks