def creole2html( markup_string, debug=False, parser_kwargs=None, emitter_kwargs=None, block_rules=None, blog_line_breaks=True, macros=None, verbose=None, stderr=None, strict=False, ): """ convert creole markup into html code >>> creole2html('This is **creole //markup//**!') '<p>This is <strong>creole <i>markup</i></strong>!</p>' Info: parser_kwargs and emitter_kwargs are deprecated """ assert isinstance(markup_string, str), "given markup_string must be unicode!" parser_kwargs2 = { "block_rules": block_rules, "blog_line_breaks": blog_line_breaks, "debug": debug, } if parser_kwargs is not None: warnings.warn( "parser_kwargs argument in creole2html would be removed in the future!", PendingDeprecationWarning) parser_kwargs2.update(parser_kwargs) # Create document tree from creole markup document = CreoleParser(markup_string, **parser_kwargs2).parse() if debug: document.debug() emitter_kwargs2 = { "macros": macros, "verbose": verbose, "stderr": stderr, "strict": strict, } if emitter_kwargs is not None: warnings.warn( "emitter_kwargs argument in creole2html would be removed in the future!", PendingDeprecationWarning) emitter_kwargs2.update(emitter_kwargs) # Build html code from document tree return HtmlEmitter(document, **emitter_kwargs2).emit()
def links(self): document = CreoleParser( self.raw_content.replace('<', '<<').replace('>', '>>')).parse() emitter = LinkEmitter(document) emitter.emit() return emitter.links
def creole2html( markup_string, debug=False, parser_kwargs=None, emitter_kwargs=None, block_rules=None, blog_line_breaks=True, macros=None, verbose=None, stderr=None, ): """ convert creole markup into html code >>> creole2html('This is **creole //markup//**!') '<p>This is <strong>creole <i>markup</i></strong>!</p>' Info: parser_kwargs and emitter_kwargs are deprecated """ assert isinstance(markup_string, TEXT_TYPE), "given markup_string must be unicode!" parser_kwargs2 = {"block_rules": block_rules, "blog_line_breaks": blog_line_breaks} if parser_kwargs is not None: warnings.warn( "parser_kwargs argument in creole2html would be removed in the future!", PendingDeprecationWarning ) parser_kwargs2.update(parser_kwargs) # Create document tree from creole markup document = CreoleParser(markup_string, **parser_kwargs2).parse() if debug: document.debug() emitter_kwargs2 = {"macros": macros, "verbose": verbose, "stderr": stderr} if emitter_kwargs is not None: warnings.warn( "emitter_kwargs argument in creole2html would be removed in the future!", PendingDeprecationWarning ) emitter_kwargs2.update(emitter_kwargs) # Build html code from document tree return HtmlEmitter(document, **emitter_kwargs2).emit()
def metadata(self): document = CreoleParser( self.raw_content.replace('<', '<<').replace('>', '>>')).parse() emitter = MetadataCollector(document) emitter.emit() metadata = [] resources = [] for item in emitter.metadata: if item['object'].startswith('http'): resources.append(item) else: metadata.append(item) return [metadata, resources]
self.stderr.write(exception) if self.verbose > 0: return "[Error: %s]\n" % text else: # No error output return "" if __name__ == "__main__": txt = """Local test <<toc>> = headline 1 level 1 == headline 2 level 2 == headline 3 level 2 ==== headline 4 level 4 = headline 5 level 1 === headline 6 level 3 """ print("-" * 80) # from creole_alt.creole import CreoleParser p = CreoleParser(txt) document = p.parse() p.debug() html = HtmlEmitter(document, verbose=999).emit() print(html) print("-" * 79) print(html.replace(" ", ".").replace("\n", "\\n\n"))
def render_to_html(self): document = CreoleParser( self.raw_content.replace('<', '<<').replace('>', '>>')).parse() return WikiEmitter(document).emit()
def validate(self): SCHEMA_PREDICATES = ['hasMandatory', 'hasOptional'] namespace_page = Page.objects.get(namespace='Namespace', title=self.namespace) errors = [] warnings = [] schema_triples = Triple.objects.filter(page__namespace='Namespace', page__title=self.namespace, predicate__in=SCHEMA_PREDICATES) document = CreoleParser( self.raw_content.replace('<', '<<').replace('>', '>>')).parse() emitter = SchemaCollector(document) emitter.emit() metadata = emitter.metadata sections = emitter.sections properties = [item['predicate'] for item in metadata] # validate sections and properties for triple in schema_triples: if triple.predicate == 'hasOptional': namespace, title = triple.object.split(':') if namespace == 'Section': if title not in sections: warnings.append({ 'type': 'missing_optional_section', 'section': triple.object }) elif namespace == 'Property': if title not in properties: warnings.append({ 'type': 'missing_optional_property', 'property': triple.object }) elif triple.predicate == 'hasMandatory': namespace, title = triple.object.split(':') if namespace == 'Section': if title not in sections: errors.append({ 'type': 'missing_mandatory_section', 'section': triple.object }) elif namespace == 'Property': if title not in properties: errors.append({ 'type': 'missing_mandatory_property', 'property': triple.object }) allowed_sections = [ triple.object.split(':')[1] for triple in schema_triples if 'Section:' in triple.object ] for section in sections: if section not in allowed_sections: errors.append({'type': 'invalid_section', 'section': section}) # raise return {'errors': errors, 'warnings': warnings}