A newsfeed reader for your django site.
Add the following to your settings.INSTALLED_APPS:
INSTALLED_APPS = [
'xfeeds',
]
And to your site's urls.py
:
urlpatterns = [
path('admin/', admin.site.urls),
path('reader/', include(('xfeeds.urls', 'xfeeds')), ),
]
There are several default content blocks in the application:
mainconent
: This displays the core content of the XFeeds app. Feed lists, Feed Items, and whatever else you would expect to be bang in the middle of your pagecontentnav
: This is a set of includes that you could put to the left or right of the content to provide navigation elementsextratitle
: for adding extra bits to the HTML<title>
tagextraheader
: If you have a header in your navigation, you can place the context in this
- Use the
seed
management command in Django using a really ill-behaved spider - Use the
update_feeds
management command to update all the feeds
./manage.py seed http://myblog.org/
See ./manage.py seed -h
for usage.
Example Template, using Bootstrap 4:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script>
<title>{{ request.site.name }}||{%block extratitle %}Home{% endblock %}</title>
</head>
<body>
<div class="container" id="wrapper">
<div class="row">
<div class="col-4">{{ request.site.name }}||{%block extraheader %}{{ request.user }}{% endblock %}</div>
<div class="col-8"></div>
</div>
<div class="row">
<div class="col-8">{% block maincontent %}{% endblock %}</div>
<div class="col-4">{% block contentnav %}{% endblock %}</div>
</div>
</div>
</body>
</html>