Create blog RSS feed functionality
Fix feed link in main template
This commit is contained in:
parent
34d1cefe70
commit
f4bfd822f7
35
blog/templates/blog/feed.xml
Normal file
35
blog/templates/blog/feed.xml
Normal file
@ -0,0 +1,35 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
{% load static from staticfiles %}
|
||||
{% load get_post_link from blog_link %}
|
||||
<rss version="2.0">
|
||||
<channel>
|
||||
<title>Gergely Polonkai</title>
|
||||
<description>Gergely Polonkai’s Blog</description>
|
||||
<link>{{ site_url }}</link>
|
||||
{% comment %}
|
||||
The <pubDate> element defines the last publication date for the content in the RSS feed.
|
||||
The <lastBuildDate> element defines the last-modified date of the content of the feed.
|
||||
|
||||
TODO: Incorporate a modified_at field in the blog. These fields must depend on them.
|
||||
{% endcomment %}
|
||||
<lastBuildDate>{{ last_build_date }}</lastBuildDate>
|
||||
<pubDate>{{ last_build_date }}</pubDate>
|
||||
<ttl>7200</ttl>
|
||||
<language>en</language>
|
||||
<image>
|
||||
<title>Gergely Polonkai</title>
|
||||
<url>{{ profile_pic }}</url>
|
||||
<link>{{ site_url }}</link>
|
||||
</image>
|
||||
{% for post in posts %}
|
||||
<item>
|
||||
<title><![CDATA[ {{ post.title }} ]]></title>
|
||||
<link>{% get_post_link post %}</link>
|
||||
<comments>{% get_post_link post %}#comments</comments>
|
||||
<pubDate>{{ post.created_at_rss }}</pubDate>
|
||||
<description><![CDATA[ {{ post.content|safe }} ]]></description>
|
||||
<guid>{% get_post_link post %}</guid>
|
||||
</item>
|
||||
{% endfor %}
|
||||
</channel>
|
||||
</rss>
|
@ -1,6 +1,10 @@
|
||||
from django.shortcuts import render, get_object_or_404
|
||||
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
|
||||
from blog.models import Post, CodeChunk
|
||||
from django.core.urlresolvers import reverse
|
||||
import datetime
|
||||
import pytz
|
||||
from django.templatetags.static import static
|
||||
|
||||
def mainpage(request):
|
||||
last_posts = Post.objects.filter(draft = False).order_by('-created_at')[:5]
|
||||
@ -96,5 +100,21 @@ def codechunk(request, language, slug):
|
||||
return render(request, 'blog/code-chunk.html', {'codechunk': chunk})
|
||||
|
||||
def feed(request):
|
||||
return render(request, 'blog/feed.xml', {})
|
||||
latest_post = Post.objects.filter(draft = False).order_by('-created_at')[0:1]
|
||||
|
||||
if not latest_post:
|
||||
latest_date = datetime.datetime(1983, 3, 7, 11, 54, 45, 0, pytz.timezone('Europe/Budapest'))
|
||||
else:
|
||||
latest_date = latest_post[0].created_at
|
||||
|
||||
posts = Post.objects.order_by('-created_at')[:10]
|
||||
|
||||
return render(request, 'blog/feed.xml', {
|
||||
'site_url': request.build_absolute_uri(reverse('home')),
|
||||
'profile_pic': request.build_absolute_uri(static('images/profile.png')),
|
||||
'last_build_date': latest_date.strftime('%a, %d %b %Y %T %z'),
|
||||
'posts': posts,
|
||||
},
|
||||
content_type = 'application/xml'
|
||||
)
|
||||
|
||||
|
@ -15,7 +15,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="{% static "css/code.css" %}" media="screen" />
|
||||
{% endblock %}
|
||||
{% endcompress %}
|
||||
<link rel="alternate" type="application/rss+xml" title="Gergely Polonkai's Blog - RSS Feed" href="{{ app.request.scheme }}://{{ app.request.host }}{% url 'blog:feed' %}" />
|
||||
<link rel="alternate" type="application/rss+xml" title="Gergely Polonkai's Blog - RSS Feed" href="//{{ request.META.SERVER_NAME }}{% url 'blog:feed' %}" />
|
||||
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
|
||||
</head>
|
||||
<body>
|
||||
|
Loading…
Reference in New Issue
Block a user