def render(self, context):
     morsel = Morsel.objects.get_for_current(context, self.name, self.inherit)
     if morsel is None:
         return u''
     if self.as_var:
         context[self.as_var] = morsel
         return u''
     return mark_safe(typogrify(morsel.content))
Beispiel #2
0
 def get_fragments(self):
     if self._fragment_cache is not None:
         return self._fragment_cache
     with self.context.open_source_file() as f:
         self.get_header(f)
         rv = self.context.render_rst(f.read().decode('utf-8'))
     rv['fragment'] = Markup(typogrify.typogrify(rv['fragment']))
     self._fragment_cache = rv
     return rv
Beispiel #3
0
 def render(self, context):
     try:
         import markdown
         import typogrify
     except ImportError:
         print u"`includetext` requires Markdown and Typogrify."
         raise
     output = self.include_node.render(context)
     output = markdown.markdown(output)
     output = typogrify.typogrify(output)
     return output
Beispiel #4
0
 def render(self, context):
     try:
         import markdown
         import typogrify
     except ImportError:
         print u"`includetext` requires Markdown and Typogrify."
         raise
     output = self.include_node.render(context)
     output = markdown.markdown(output)
     output = typogrify.typogrify(output)
     return output
def render_html(text):
    '''Render Markdown to HTML in three steps:

    1. Render as Jinja2 template string (executing macros) => Markdown
    2. Render as Markdown => HTML
    3. Typogrify => Nicer HTML (if typogrify is available)
    '''
    md = render_template_string(text)
    html = markdown(md, extensions=app.config['MARKDOWN_EXTENSIONS'])
    try:
        from typogrify import typogrify
        return typogrify(html)
    except ImportError:
        return html
Beispiel #6
0
	def __init__(self, description):
		self.description = typogrify(escape(description[0:250])) # Well, so long as your thing takes up less than 250 bytes.
		self.key = 'thing:%s' % self.description
		
		if Redis.server.zscore('things:score', self.description) is not None:
			self.better, self.worse, self.score = Redis.pipe.hget(self.key, 'better').hget(self.key, 'worse').zscore('things:score', self.description).execute()
			
			self.better = int(self.better)
			self.worse = int(self.worse)
			self.total_votes = self.better + self.worse
			self.score = float(self.score)
			
		else:
			self.better = 0
			self.worse = 0
			self.total_votes = 0
			self.score = float(0)
			
			self.save()
Beispiel #7
0
    def render(self, renderer, site_context):
        view = TemplateView()
        if self.page_layout_path:
            view.template_rel_path = self.page_layout
        else:
            view.template = self.page_content

        part = renderer.render(view, self.context, site=site_context)
        if self.is_markdown():
            part = markdown.markdown(part)
            part = typogrify.typogrify(part)

        page_context = {u'content': part}
        self.rendered_content = part
        page_context.update(self.context)

        view = TemplateView()
        view.template_rel_path = self.layout

        page = renderer.render(view, self.context, page=page_context, site=site_context)
        self.rendered_page = page
Beispiel #8
0
Datei: doc.py Projekt: sneeu/doc
code{background:#ddd;font:100%%/0 Monaco,monospace}
h1{font-size:2em;font-weight:bold;line-height:1.5em;padding:0 0 0.75em;page-break-after:avoid}
h2{font-size:1.5em;font-weight:bold;line-height:2em;page-break-after:avoid}
h3{font-size:1.2em;font-weight:bold;line-height:1.25em;padding:0.625em 0;page-break-after:avoid}
p,ul,ol,.address{padding:0 0 1.5em}
ul,ol{padding-left:1.5em}
pre{background:#ddd;border:1px solid #bbb;font:100%%/1.5 Monaco,monospace;margin:-2px -1px 1.5em;padding:1.5em}
.address span{display:block}
</style>
</head>
<body>"""
FOOTER = """</body></html>"""


if __name__ == '__main__':
    if (len(sys.argv) > 1):
        filename = sys.argv[1]
        in_file = codecs.open(filename, encoding='utf-8')
        md = in_file.read()
        in_file.close()

        title = os.path.basename(filename)
        content = typogrify.typogrify(
            markdown.markdown(md, ['abbr', 'headerid']))

        out_file = codecs.open(filename + '.html', encoding='utf-8', mode='w+')
        out_file.write((HEADER % title) + content + FOOTER)
        out_file.close()
    else:
        print u'Filename not supplied.'
Beispiel #9
0
    def render(self, context):

        morsel = Morsel.objects.get_for_current(context, self.name,
                                                self.inherit)

        if getattr(settings, 'MORSELS_USE_JEDITABLE', False):
            js = """
            <script type="text/javascript">
            if(typeof(jQuery)=='undefined') { 
                document.write('<script type="text/javascript" src="%sjquery.js"></' + 'script>');
            }
            </script>
            <script type="text/javascript" src="%sjquery.jeditable.js"></script>
            <script type="text/javascript">
            jQuery(document).ready(function(){
                jQuery('.jeditable-morsel').each(function(i){
                    jQuery(this).editable(jQuery(this).attr('rel'), 
                    {
                        type      : 'textarea',
                        cancel    : 'Cancel',
                        submit    : 'OK',
                        indicator : 'Saving...',
                        tooltip   : 'Double-click to edit...',
                        event     : 'dblclick',
                        loadurl   : '%s',
                        onblur    : 'ignore'                                          
                    });
                });
            });
            </script>
            """ % (settings.MORSELS_JAVASCRIPT_PATH,
                   settings.MORSELS_JAVASCRIPT_PATH,
                   reverse('morsels_ajax_load', None,
                           (urllib.quote(context['request'].path, safe=''), )))
            if self.JS_SIGNAL in context['messages']:
                js = ""

        if morsel is None:
            return u''
        if self.as_var:
            context[self.as_var] = morsel
            return u''

        output = typogrify(morsel.content)
        if getattr(settings, 'MORSELS_USE_JEDITABLE',
                   False) and context['user'].is_authenticated():
            output = '%s<div class="jeditable-morsel" id="%s" rel="%s"><div class="jeditable-morsel-label"></div>%s</div>' % (
                js, self.name,
                reverse('morsels_ajax_save', None,
                        (urllib.quote(context['request'].path, safe=''), )),
                output)
            context['messages'].append(self.JS_SIGNAL)

        output_template = Template(output)

        rendered_output = mark_safe(output_template.render(context))

        if self.glossarize:
            rendered_output = glossary.helpers.glossarize_in_context(
                rendered_output, context, morsel.page.sector)

        return rendered_output
Beispiel #10
0
def typogrify_filter(s):
    return Markup(typogrify.typogrify(s))