Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
PANDOCVERSION = pandocxnos.init(args.pandocversion, doc)
# Element primitives
AttrMath = elt('Math', 3)
# Chop up the doc
meta = doc['meta'] if PANDOCVERSION >= '1.18' else doc[0]['unMeta']
blocks = doc['blocks'] if PANDOCVERSION >= '1.18' else doc[1:]
# Process the metadata variables
process(meta)
# First pass
attach_attrs_math = attach_attrs_factory(Math, allow_space=True)
detach_attrs_math = detach_attrs_factory(Math)
insert_secnos = insert_secnos_factory(Math)
delete_secnos = delete_secnos_factory(Math)
altered = functools.reduce(lambda x, action: walk(x, action, fmt, meta),
[attach_attrs_math, insert_secnos,
process_equations, delete_secnos,
detach_attrs_math], blocks)
# Second pass
process_refs = process_refs_factory(LABEL_PATTERN, references.keys())
replace_refs = replace_refs_factory(references,
cleveref, eqref,
plusname if not capitalise or \
plusname_changed else
[name.title() for name in plusname],
starname)
attach_attrs_span = attach_attrs_factory(Span, replace=True)
altered = functools.reduce(lambda x, action: walk(x, action, fmt, meta),
# Initialize pandocxnos
PANDOCVERSION = pandocxnos.init(args.pandocversion, doc)
# Element primitives
AttrMath = elt('Math', 3)
# Chop up the doc
meta = doc['meta'] if PANDOCVERSION >= '1.18' else doc[0]['unMeta']
blocks = doc['blocks'] if PANDOCVERSION >= '1.18' else doc[1:]
# Process the metadata variables
process(meta)
# First pass
attach_attrs_math = attach_attrs_factory(Math, allow_space=True)
detach_attrs_math = detach_attrs_factory(Math)
insert_secnos = insert_secnos_factory(Math)
delete_secnos = delete_secnos_factory(Math)
altered = functools.reduce(lambda x, action: walk(x, action, fmt, meta),
[attach_attrs_math, insert_secnos,
process_equations, delete_secnos,
detach_attrs_math], blocks)
# Second pass
process_refs = process_refs_factory(LABEL_PATTERN, references.keys())
replace_refs = replace_refs_factory(references,
cleveref, eqref,
plusname if not capitalise or \
plusname_changed else
[name.title() for name in plusname],
starname)
attach_attrs_span = attach_attrs_factory(Span, replace=True)
# Initialize pandocxnos
PANDOCVERSION = pandocxnos.init(args.pandocversion, doc)
# Element primitives
AttrMath = elt('Math', 3)
# Chop up the doc
meta = doc['meta'] if PANDOCVERSION >= '1.18' else doc[0]['unMeta']
blocks = doc['blocks'] if PANDOCVERSION >= '1.18' else doc[1:]
# Process the metadata variables
process(meta)
# First pass
attach_attrs_math = attach_attrs_factory(Math, allow_space=True)
detach_attrs_math = detach_attrs_factory(Math)
insert_secnos = insert_secnos_factory(Math)
delete_secnos = delete_secnos_factory(Math)
altered = functools.reduce(lambda x, action: walk(x, action, fmt, meta),
[attach_attrs_math, insert_secnos,
process_equations, delete_secnos,
detach_attrs_math], blocks)
# Second pass
process_refs = process_refs_factory(LABEL_PATTERN, references.keys())
replace_refs = replace_refs_factory(references,
cleveref, eqref,
plusname if not capitalise or \
plusname_changed else
[name.title() for name in plusname],
starname)
num = targets[attrs.id].num
if isinstance(num, int): # Numbered target
if fmt in ['html', 'html5', 'epub', 'epub2', 'epub3']:
value[0]['c'][1] = [RawInline('html', r'<span>'),
Str(captionname), Space(),
Str('%d%s' % (num, sep)),
RawInline('html', r'</span>')]
else:
value[0]['c'][1] = [Str(captionname),
Space(),
Str('%d%s' % (num, sep))]
value[0]['c'][1] += [Space()] + list(caption)
else: # Tagged target
if num.startswith('$') and num.endswith('$'): # Math
math = num.replace(' ', r'\ ')[1:-1]
els = [Math({"t":"InlineMath", "c":[]}, math), Str(sep)]
else: # Text
els = [Str(num+sep)]
if fmt in ['html', 'html5', 'epub', 'epub2', 'epub3']:
value[0]['c'][1] = \
[RawInline('html', r'<span>'),
Str(captionname),
Space()] + els + [RawInline('html', r'</span>')]
else:
value[0]['c'][1] = [Str(captionname), Space()] + els
value[0]['c'][1] += [Space()] + list(caption)
"""Create our own links to equations instead of relying on
mathjax.
http://meta.math.stackexchange.com/questions/3764/equation-and-equation-is-the-same-for-me
"""
mathtype, math = value
label = re.findall(math_label, math)[-1]
attr = PandocAttributes()
attr.id = '#' + label
if format == 'latex':
return pf.Math(mathtype, math)
else:
return pf.Span(attr.to_pandoc(), [pf.Math(mathtype, math)])
def gitlab_markdown(key, value, format, meta):
if key == "CodeBlock":
[[identification, classes, keyvals], code] = value
if classes[0] == "math":
fmt = {'t': 'DisplayMath',
'c': []}
return Para([Math(fmt, code)])
elif key == "Math":
[fmt, code] = value
if isinstance(fmt, dict) and fmt['t'] == "InlineMath":
# if fmt['t'] == "InlineMath":
return Math(fmt, code.strip('`'))
def math_replacement(self, key, value, format, metadata):
"""Create our own links to equations instead of relying on
mathjax.
http://meta.math.stackexchange.com/questions/3764/equation-and-equation-is-the-same-for-me
"""
mathtype, math = value
label = re.findall(math_label, math)[-1]
attr = PandocAttributes()
attr.id = '#' + label
if format == 'latex':
return pf.Math(mathtype, math)
else:
return pf.Span(attr.to_pandoc(), [pf.Math(mathtype, math)])
# Context-dependent output
if eq['is_unnumbered']: # Unnumbered is also unreferenceable
ret = None
elif fmt in ['latex', 'beamer']:
ret = RawInline('tex',
r'\begin{equation}%s\end{equation}'%value[-1])
elif fmt in ('html', 'html5', 'epub', 'epub2', 'epub3') and \
LABEL_PATTERN.match(attrs.id):
# Present equation and its number in a span
num = str(references[attrs.id].num)
outer = RawInline('html',
'' % \
(' ' if eq['is_unreferenceable'] else
' id="%s" '%attrs.id))
inner = RawInline('html', '<span class="eqnos-number">')
eqno = Math({"t":"InlineMath"}, '(%s)' % num[1:-1]) \
if num.startswith('$') and num.endswith('$') \
else Str('(%s)' % num)
endtags = RawInline('html', '</span>')
ret = [outer, AttrMath(*value), inner, eqno, endtags]
elif fmt == 'docx':
# As per http://officeopenxml.com/WPhyperlink.php
bookmarkstart = \
RawInline('openxml',
''
%attrs.id)
bookmarkend = \
RawInline('openxml',
'')
ret = [bookmarkstart, AttrMath(*value), bookmarkend]
return ret
# Element primitives
AttrMath = elt('Math', 3)
# Chop up the doc
meta = doc['meta'] if PANDOCVERSION >= '1.18' else doc[0]['unMeta']
blocks = doc['blocks'] if PANDOCVERSION >= '1.18' else doc[1:]
# Process the metadata variables
process(meta)
# First pass
attach_attrs_math = attach_attrs_factory(Math, allow_space=True)
detach_attrs_math = detach_attrs_factory(Math)
insert_secnos = insert_secnos_factory(Math)
delete_secnos = delete_secnos_factory(Math)
altered = functools.reduce(lambda x, action: walk(x, action, fmt, meta),
[attach_attrs_math, insert_secnos,
process_equations, delete_secnos,
detach_attrs_math], blocks)
# Second pass
process_refs = process_refs_factory(LABEL_PATTERN, references.keys())
replace_refs = replace_refs_factory(references,
cleveref, eqref,
plusname if not capitalise or \
plusname_changed else
[name.title() for name in plusname],
starname)
attach_attrs_span = attach_attrs_factory(Span, replace=True)
altered = functools.reduce(lambda x, action: walk(x, action, fmt, meta),
[repair_refs, process_refs, replace_refs,
if isinstance(num, int): # Numbered reference
if fmt in ['html', 'html5', 'epub', 'epub2', 'epub3']:
value[1] = [RawInline('html', r'<span>'),
Str(captionname), Space(),
Str('%d%s'%(num, sep)),
RawInline('html', r'</span>')]
else:
value[1] = [Str(captionname),
Space(),
Str('%d%s'%(num, sep))]
value[1] += [Space()] + list(caption)
else: # Tagged reference
assert isinstance(num, STRTYPES)
if num.startswith('$') and num.endswith('$'):
math = num.replace(' ', r'\ ')[1:-1]
els = [Math({"t":"InlineMath", "c":[]}, math), Str(sep)]
else: # Text
els = [Str(num + sep)]
if fmt in ['html', 'html5', 'epub', 'epub2', 'epub3']:
value[1] = \
[RawInline('html', r'<span>'),
Str(captionname),
Space()] + els + [RawInline('html', r'</span>')]
else:
value[1] = [Str(captionname), Space()] + els
value[1] += [Space()] + list(caption)