thumbnail = config.get('wordpress', 'thumbnail') here = path.dirname( postfile ) thumb_url = path.join( here, thumbnail ) # Make path absolute # Wordpress related, create the post WP = Client( url, username, password ) post = WordPressPost() # Take markdown, convert to HTML and put it as post content # Makes intermediate convertion to Panflute AST to apply the filters. postdocument = pf.convert_text(postcontent, input_format='markdown', output_format='panflute', standalone=True) pf.run_filters( [ imageURLs, codeBlocks ], doc = postdocument ) content = pf.convert_text(postdocument, input_format='panflute', output_format='html') # Set post metadata post.title = title post.content = content post.post_status = post_status post.terms_names = terms_names if not thumb_url == None: thumb_mime = checkImage(thumb_url) if not thumb_mime == None: response = uploadFile(thumb_url, thumb_mime) post.thumbnail = response['id']
def listed(doc=None): inline = inline_listingtable() block = ListingTable() return pf.run_filters([inline.action, pf.yaml_filter], tag="listingtable", function=block.action, doc=doc)
def main(doc=None): return run_filters([remove_badge, unwrap_code], doc=doc)
def main(doc=None): #inputf = open('test.json', 'r') inputf=sys.stdin return pf.run_filters(actions=[remove_notes,add_pagebreaks],doc=doc,input_stream=inputf)
if not isinstance(elem, pf.Div) or elem.identifier != 'bibliography': return None def references(elem, doc): if isinstance(elem, pf.Div) and elem.identifier == 'refs': nonlocal refs refs = elem refs = pf.Div() elem.walk(references) if refs.content: # This should just be `return None`, but the HTML output # for headers seem to break with `<h1>` inside a `<div>`. elem.parent.content.extend(elem.content) return [] if __name__ == '__main__': pf.run_filters( [ bibliography, divspan, tonytable, # after `tonytable` because... codeblock, # produces raw html/latex, `tonytable` needs codeblocks. header, # doesn't apply to the "headers" in tony table. table # also applies to tables generated by `tonytable`. ], prepare=prepare)
def main(doc=None, strip_spans=True): # type: (Doc, bool) -> None to_run = [format_math, format_image, format_table] if strip_spans: to_run.append(strip_labelled_spans) return pf.run_filters(to_run, prepare, finalize, doc=doc)
def main(doc=None): return pf.run_filters([action], prepare=prepare, finalize=finalize, doc=doc)
#!/usr/bin/env python3 import panflute as pf def h1hr(elem, doc): """ Add a bottom border to all the <h1>s """ if not isinstance(elem, pf.Header): return None if elem.level != 1: return None elem.attributes['style'] = 'border-bottom:1px solid #cccccc' return elem def bq(elem, doc): """ Add a ::: bq div to make a <blockquote> """ if not isinstance(elem, pf.Div): return None if elem.classes == ['bq']: return pf.BlockQuote(*elem.content) if __name__ == '__main__': pf.run_filters([h1hr, bq])
'--syntax-definition', os.path.join(syntaxdir, 'isocpp.xml') ]) def repl(match_obj): match = match_obj.group(1) if not match: # @@ return match_obj.group(0) if match.isspace(): # @ @ return match return pf.convert_text(pf.Plain(*pf.convert_text(match)[0].content), input_format='panflute', output_format=doc.format) result = pf.RawBlock(escape_span.sub(repl, text), doc.format) return pf.Div(pf.RawBlock('{\\renewcommand{\\NormalTok}[1]{#1}', 'latex'), result, pf.RawBlock('}', 'latex')) if is_raw else result # https://github.com/jgm/pandoc/issues/5529 def strikeout(elem, doc): if not isinstance(elem, pf.Strikeout): return None elem.walk(protect_code) if __name__ == '__main__': pf.run_filters([divspan, tonytable, codeblock, strikeout], prepare=prepare)
def main(): doc = pf.load(input_stream=sys.stdin) merge_settings(doc) pf.dump(pf.run_filters([gloss, gloss_refs], doc=doc), output_stream=sys.stdout)
'--syntax-definition', os.path.join(syntaxdir, 'isocpp.xml') ]) def repl(match_obj): match = match_obj.group(1) if not match: # @@ return match_obj.group(0) if match.isspace(): # @ @ return match return pf.convert_text( pf.Plain(*pf.convert_text(match)[0].content), input_format='panflute', output_format=doc.format) result = pf.RawBlock(escape_span.sub(repl, text), doc.format) return pf.Div( pf.RawBlock('{\\renewcommand{\\NormalTok}[1]{#1}', 'latex'), result, pf.RawBlock('}', 'latex')) if is_raw else result # https://github.com/jgm/pandoc/issues/5529 def strikeout(elem, doc): if not isinstance(elem, pf.Strikeout): return None elem.walk(protect_code) if __name__ == '__main__': pf.run_filters([divspan, tonytable, codeblock, strikeout], prepare=prepare)
child_elems += [SoftBreak(), RawInline(">")] * 2 + [ Space() ] child_elems.append(child) if isinstance(child, SoftBreak): child_elems += [RawInline(">"), Space()] after_paragraph = isinstance(child, Para) elem.walk(append) return Para(*child_elems) def line_break(elem, _doc): if isinstance(elem, SoftBreak): return LineBreak() def raw_string(elem, _doc): if isinstance(elem, Str) and re_uri.match(elem.text): return RawInline(elem.text) if __name__ == "__main__": run_filters([ code_block, horizontal_rule, stripped_quote, line_break, raw_string, ])
def main(doc=None): # type: (Doc) -> None return pf.run_filters( [resolve_tables, resolve_equations_images], prepare, finalize, doc=doc )
def main(doc=None): #inputf = open('test.json', 'r') inputf=sys.stdin return pf.run_filters(actions=[filter_lang,title_hacks,dual_img], doc=doc,input_stream=inputf,prepare=prepare)
return pf.Table(*rows, **kwargs) def table(elem, doc): if not isinstance(elem, pf.Table): return None def header(elem, doc): if not isinstance(elem, pf.Plain): return None return pf.Div(pf.Plain(pf.RawInline('\\centering', 'latex'), pf.Strong(*elem.content)), attributes={'style': 'text-align:center'}) if elem.header is not None: elem.header.walk(header) if __name__ == '__main__': pf.run_filters( [ divspan, cmptable, # after `cmptable` because... header, # doesn't apply to the "headers" in comparison table. table, # also applies to tables generated by `cmptable`. ], prepare, finalize)
def main(doc=None): replacements = {'\\\\(cite[tp]?|ref)\{(.*)\}': r'\\\1{\2}', '$': r'\$'} return pf.run_filters((labels, striptags, destring), doc=doc, replacements=replacements)