content,
<div xmlns:kid="http://purl.org/kid/ns#"
kid:strip="">
<?python
import time
from urllib import quote
from rdflib.util import parse_date_time
from markdown import Markdown
SESSION = redfoot.namespace("http://redfoot.net/3.0/session#")
BLOG = redfoot.namespace("http://redfoot.net/3.0/blog#")
DC = redfoot.namespace("http://purl.org/dc/elements/1.1/")
DCTERMS = redfoot.namespace("http://purl.org/dc/terms/")
COMMENT = redfoot.namespace("http://redfoot.net/3.0/comment#")
HTML = redfoot.module(URIRef("blog#html", base=redfoot.uri)).HTML
markdown = redfoot.module(URIRef("markdown#module", base=redfoot.uri)).markdown
blog = []
blog_page = URIRef("/blog/", base=request.host)
for entry in redfoot.objects(blog_page, BLOG.entry):
date = redfoot.value(entry, DCTERMS.created)
content = redfoot.value(entry, BLOG.content)
if content:
content_value = redfoot.value(content, RDF.value)
content_type = redfoot.value(content, BLOG.content_type)
if content_type=="xhtml":
content_type = "http://www.w3.org/1999/xhtml"
else:
content_value = redfoot.value(entry, RDFS.comment)
if content_value:
assert isinstance(content_value, Literal)
content_type = content_value.datatype
else:
content_type = ""
blog.append((date, entry, content_value, content_type))
blog.sort()
blog.reverse()
allowed = allow(URIRef('%s/blog/add_entry/' % request.host))
from urllib import quote
?>
<p><a kid:if="allowed" href="/blog/add_entry/">add entry</a></p>
<div kid:if="not allowed" kid:strip="">
<p kid:if="allow(URIRef('%s/login/'% request.host))">
<a href="/login/?return_uri=${quote(request.uri)}">Login</a> to submit a blog entry.
</p>
</div>
<div class="blog" kid:for="date, entry, content_value, content_type in blog">
<?python
_logger = redfoot.getLogger(__uri__)
href = quote(entry.concrete(), ':/')
href = request.relative(href)
creator = redfoot.value(entry, DC.creator)
try:
d = parse_date_time(date)
except:
_logger.warning("could not parse %s as a date_time" % date)
d = None
if d:
date = time.strftime("%A %d %B, %Y", time.gmtime(d))
else:
date = None
?>
<h3><a href="${href}">${redfoot.label(entry)}</a></h3>
<p class="meta" kid:if="creator or date"> <span kid:if="creator" class="blog_by_line">by ${redfoot.label(creator) or creator} </span>
<span kid:if="date">on ${date}</span>:
</p>
<p kid:strip="" kid:if="content_type==URIRef('http://www.w3.org/TR/REC-html40')">${HTML(content_value)}</p>
<p kid:strip="" kid:if="content_type==URIRef('http://www.w3.org/1999/xhtml')">${XML(content_value)}</p>
<p kid:strip="" kid:if="content_type==URIRef('http://redfoot.net/3.0/markdown#format')">
${HTML(Markdown(content_value).toString())}
</p>
<pre kid:if="not content_type">${content_value}</pre>
<?python comments = list(redfoot.objects(entry.concrete(), COMMENT.comment))?>
<p kid:if="comments" style="font-size: small;"><a href="${quote(entry.concrete(), ':/')}#comments">(${len(comments)}) comments</a></p>
<div class="hr"/>
</div>
<p>Subscribe: <a href="/blog/atom/">Atom</a></p>
</div>
Comments regarding http://redfoot.net/3.0/aspects/blog/blog
Login to submit a comment.