Merge pull request #286 from nephila/feature/improve_docs
Improve documentation
This commit is contained in:
commit
2296b7c1d1
9 changed files with 260 additions and 84 deletions
|
@ -3,15 +3,16 @@ Contributing
|
||||||
============
|
============
|
||||||
|
|
||||||
Contributions are welcome, and they are greatly appreciated! Every
|
Contributions are welcome, and they are greatly appreciated! Every
|
||||||
little bit helps, and credit will always be given.
|
little bit helps, and credit will always be given.
|
||||||
|
|
||||||
You can contribute in many ways:
|
You can contribute in many ways:
|
||||||
|
|
||||||
|
**********************
|
||||||
Types of Contributions
|
Types of Contributions
|
||||||
----------------------
|
**********************
|
||||||
|
|
||||||
Report Bugs
|
Report Bugs
|
||||||
~~~~~~~~~~~
|
===========
|
||||||
|
|
||||||
Report bugs at https://github.com/nephila/djangocms-blog/issues.
|
Report bugs at https://github.com/nephila/djangocms-blog/issues.
|
||||||
|
|
||||||
|
@ -22,26 +23,26 @@ If you are reporting a bug, please include:
|
||||||
* Detailed steps to reproduce the bug.
|
* Detailed steps to reproduce the bug.
|
||||||
|
|
||||||
Fix Bugs
|
Fix Bugs
|
||||||
~~~~~~~~
|
========
|
||||||
|
|
||||||
Look through the GitHub issues for bugs. Anything tagged with "bug"
|
Look through the GitHub issues for bugs. Anything tagged with "bug"
|
||||||
is open to whoever wants to implement it.
|
is open to whoever wants to implement it.
|
||||||
|
|
||||||
Implement Features
|
Implement Features
|
||||||
~~~~~~~~~~~~~~~~~~
|
==================
|
||||||
|
|
||||||
Look through the GitHub issues for features. Anything tagged with "feature"
|
Look through the GitHub issues for features. Anything tagged with "feature"
|
||||||
is open to whoever wants to implement it.
|
is open to whoever wants to implement it.
|
||||||
|
|
||||||
Write Documentation
|
Write Documentation
|
||||||
~~~~~~~~~~~~~~~~~~~
|
===================
|
||||||
|
|
||||||
djangocms-blog could always use more documentation, whether as part of the
|
djangocms-blog could always use more documentation, whether as part of the
|
||||||
official djangocms-blog docs, in docstrings, or even on the web in blog posts,
|
official djangocms-blog docs, in docstrings, or even on the web in blog posts,
|
||||||
articles, and such.
|
articles, and such.
|
||||||
|
|
||||||
Submit Feedback
|
Submit Feedback
|
||||||
~~~~~~~~~~~~~~~
|
===============
|
||||||
|
|
||||||
The best way to send feedback is to file an issue at https://github.com/nephila/djangocms-blog/issues.
|
The best way to send feedback is to file an issue at https://github.com/nephila/djangocms-blog/issues.
|
||||||
|
|
||||||
|
@ -52,8 +53,9 @@ If you are proposing a feature:
|
||||||
* Remember that this is a volunteer-driven project, and that contributions
|
* Remember that this is a volunteer-driven project, and that contributions
|
||||||
are welcome :)
|
are welcome :)
|
||||||
|
|
||||||
|
************
|
||||||
Get Started!
|
Get Started!
|
||||||
------------
|
************
|
||||||
|
|
||||||
Ready to contribute? Here's how to set up `djangocms-blog` for local development.
|
Ready to contribute? Here's how to set up `djangocms-blog` for local development.
|
||||||
|
|
||||||
|
@ -77,11 +79,9 @@ Now you can make your changes locally.
|
||||||
5. When you're done making changes, check that your changes pass flake8 and the
|
5. When you're done making changes, check that your changes pass flake8 and the
|
||||||
tests, including testing other Python versions with tox::
|
tests, including testing other Python versions with tox::
|
||||||
|
|
||||||
$ flake8 djangocms_blog tests
|
|
||||||
$ python setup.py test
|
|
||||||
$ tox
|
$ tox
|
||||||
|
|
||||||
To get flake8 and tox, just pip install them into your virtualenv.
|
To get tox, just pip install them into your virtualenv.
|
||||||
|
|
||||||
6. Commit your changes and push your branch to GitHub::
|
6. Commit your changes and push your branch to GitHub::
|
||||||
|
|
||||||
|
@ -91,8 +91,9 @@ To get flake8 and tox, just pip install them into your virtualenv.
|
||||||
|
|
||||||
7. Submit a pull request through the GitHub website.
|
7. Submit a pull request through the GitHub website.
|
||||||
|
|
||||||
|
***********************
|
||||||
Pull Request Guidelines
|
Pull Request Guidelines
|
||||||
-----------------------
|
***********************
|
||||||
|
|
||||||
Before you submit a pull request, check that it meets these guidelines:
|
Before you submit a pull request, check that it meets these guidelines:
|
||||||
|
|
||||||
|
@ -100,13 +101,14 @@ Before you submit a pull request, check that it meets these guidelines:
|
||||||
2. If the pull request adds functionality, the docs should be updated. Put
|
2. If the pull request adds functionality, the docs should be updated. Put
|
||||||
your new functionality into a function with a docstring, and add the
|
your new functionality into a function with a docstring, and add the
|
||||||
feature to the list in README.rst.
|
feature to the list in README.rst.
|
||||||
3. The pull request should work for Python 2.6, 2.7, and 3.3, and for PyPy. Check
|
3. The pull request should work for Python 2.7, 3.4, and 3.5. Check
|
||||||
https://travis-ci.org/nephila/djangocms-blog/pull_requests
|
https://travis-ci.org/nephila/djangocms-blog/pull_requests
|
||||||
and make sure that the tests pass for all supported Python versions.
|
and make sure that the tests pass for all supported Python versions.
|
||||||
|
|
||||||
|
****
|
||||||
Tips
|
Tips
|
||||||
----
|
****
|
||||||
|
|
||||||
To run a subset of tests::
|
To run a subset of tests::
|
||||||
|
|
||||||
$ python -m unittest tests.test_djangocms_blog
|
$ python cms_helper.py test tests.test_views
|
||||||
|
|
56
HISTORY.rst
56
HISTORY.rst
|
@ -1,35 +1,42 @@
|
||||||
.. :changelog:
|
.. :changelog:
|
||||||
|
|
||||||
|
=======
|
||||||
History
|
History
|
||||||
-------
|
=======
|
||||||
|
|
||||||
|
******************
|
||||||
0.8.5 (2016-06-26)
|
0.8.5 (2016-06-26)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Fixed issues with ThumbnailOption migration under mysql.
|
* Fixed issues with ThumbnailOption migration under mysql.
|
||||||
|
|
||||||
|
******************
|
||||||
0.8.4 (2016-06-22)
|
0.8.4 (2016-06-22)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Fixed issues with cmsplugin-filer 1.1.
|
* Fixed issues with cmsplugin-filer 1.1.
|
||||||
|
|
||||||
|
******************
|
||||||
0.8.3 (2016-06-21)
|
0.8.3 (2016-06-21)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Stricter filer dependency versioning.
|
* Stricter filer dependency versioning.
|
||||||
|
|
||||||
|
******************
|
||||||
0.8.2 (2016-06-12)
|
0.8.2 (2016-06-12)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Aldryn-only release. No code changes
|
* Aldryn-only release. No code changes
|
||||||
|
|
||||||
|
******************
|
||||||
0.8.1 (2016-06-11)
|
0.8.1 (2016-06-11)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Aldryn-only release. No code changes
|
* Aldryn-only release. No code changes
|
||||||
|
|
||||||
|
******************
|
||||||
0.8.0 (2016-06-05)
|
0.8.0 (2016-06-05)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Added django-knocker integration
|
* Added django-knocker integration
|
||||||
* Changed the default value of date_published to null
|
* Changed the default value of date_published to null
|
||||||
|
@ -43,8 +50,9 @@ History
|
||||||
* Added API to set default sites if user has permission only for a subset of sites
|
* Added API to set default sites if user has permission only for a subset of sites
|
||||||
* Added Aldryn integration
|
* Added Aldryn integration
|
||||||
|
|
||||||
|
******************
|
||||||
0.7.0 (2016-03-19)
|
0.7.0 (2016-03-19)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Make categories non required
|
* Make categories non required
|
||||||
* Fix tests with parler>=1.6
|
* Fix tests with parler>=1.6
|
||||||
|
@ -59,29 +67,33 @@ History
|
||||||
* Mitigate issue when apphook config can't be retrieved
|
* Mitigate issue when apphook config can't be retrieved
|
||||||
* Mitigate issue when wizard double registration is triggered
|
* Mitigate issue when wizard double registration is triggered
|
||||||
|
|
||||||
|
******************
|
||||||
0.6.3 (2015-12-22)
|
0.6.3 (2015-12-22)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Add BLOG_ADMIN_POST_FIELDSET_FILTER to filter admin fieldsets
|
* Add BLOG_ADMIN_POST_FIELDSET_FILTER to filter admin fieldsets
|
||||||
* Ensure correct creation of full URL for canonical urls
|
* Ensure correct creation of full URL for canonical urls
|
||||||
* Move constants to settings
|
* Move constants to settings
|
||||||
* Fix error when no config is found
|
* Fix error when no config is found
|
||||||
|
|
||||||
|
******************
|
||||||
0.6.2 (2015-11-16)
|
0.6.2 (2015-11-16)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Add app_config field to BlogLatestEntriesPlugin
|
* Add app_config field to BlogLatestEntriesPlugin
|
||||||
* Fix __str__ plugins method
|
* Fix __str__ plugins method
|
||||||
* Fix bug when selecting plugins template
|
* Fix bug when selecting plugins template
|
||||||
|
|
||||||
|
******************
|
||||||
0.6.1 (2015-10-31)
|
0.6.1 (2015-10-31)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Improve toolbar: add all languages for each post
|
* Improve toolbar: add all languages for each post
|
||||||
* Improve toolbar: add per-apphook configurable changefreq, priority
|
* Improve toolbar: add per-apphook configurable changefreq, priority
|
||||||
|
|
||||||
|
******************
|
||||||
0.6.0 (2015-10-30)
|
0.6.0 (2015-10-30)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Add support for django CMS 3.2 Wizard
|
* Add support for django CMS 3.2 Wizard
|
||||||
* Add support for Apphook Config
|
* Add support for Apphook Config
|
||||||
|
@ -91,8 +103,9 @@ History
|
||||||
* LatestPostsPlugin tags field has been changed to a plain TaggableManager field.
|
* LatestPostsPlugin tags field has been changed to a plain TaggableManager field.
|
||||||
A migration is in place to move the data, but backup your data first.
|
A migration is in place to move the data, but backup your data first.
|
||||||
|
|
||||||
|
******************
|
||||||
0.5.0 (2015-08-09)
|
0.5.0 (2015-08-09)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Add support for Django 1.8
|
* Add support for Django 1.8
|
||||||
* Drop dependency on Django select2
|
* Drop dependency on Django select2
|
||||||
|
@ -101,8 +114,9 @@ History
|
||||||
* Add categories menu
|
* Add categories menu
|
||||||
* Add option to disable the abstract
|
* Add option to disable the abstract
|
||||||
|
|
||||||
|
******************
|
||||||
0.4.0 (2015-03-22)
|
0.4.0 (2015-03-22)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Fix Django 1.7 issues
|
* Fix Django 1.7 issues
|
||||||
* Fix dependencies on python 3 when using wheel packages
|
* Fix dependencies on python 3 when using wheel packages
|
||||||
|
@ -110,14 +124,16 @@ History
|
||||||
* Fix various templates issues
|
* Fix various templates issues
|
||||||
* UX fixes in the admin
|
* UX fixes in the admin
|
||||||
|
|
||||||
|
******************
|
||||||
0.3.1 (2015-01-07)
|
0.3.1 (2015-01-07)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Fix page_name in template
|
* Fix page_name in template
|
||||||
* Set cascade to set null for post image and thumbnail options
|
* Set cascade to set null for post image and thumbnail options
|
||||||
|
|
||||||
|
******************
|
||||||
0.3.0 (2015-01-04)
|
0.3.0 (2015-01-04)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* Multisite support
|
* Multisite support
|
||||||
* Configurable default author support
|
* Configurable default author support
|
||||||
|
@ -133,9 +149,9 @@ History
|
||||||
* Django 1.7 support
|
* Django 1.7 support
|
||||||
* Python 3.3 and 3.4 support
|
* Python 3.3 and 3.4 support
|
||||||
|
|
||||||
|
******************
|
||||||
0.2.0 (2014-09-24)
|
0.2.0 (2014-09-24)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* **INCOMPATIBLE CHANGE**: view names changed!
|
* **INCOMPATIBLE CHANGE**: view names changed!
|
||||||
* Based on django parler 1.0
|
* Based on django parler 1.0
|
||||||
|
@ -147,8 +163,8 @@ History
|
||||||
* Simpler TextField-based content editing for simpler blogs
|
* Simpler TextField-based content editing for simpler blogs
|
||||||
* Add support for custom user models
|
* Add support for custom user models
|
||||||
|
|
||||||
|
******************
|
||||||
0.1.0 (2014-03-06)
|
0.1.0 (2014-03-06)
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* First experimental release
|
* First experimental release
|
||||||
|
|
33
README.rst
33
README.rst
|
@ -56,14 +56,15 @@ Supported django CMS versions:
|
||||||
Some plugins have a broken tag management prior to 0.6, in case
|
Some plugins have a broken tag management prior to 0.6, in case
|
||||||
you have issues with tags, upgrade to latest version to have it fixed.
|
you have issues with tags, upgrade to latest version to have it fixed.
|
||||||
|
|
||||||
|
*****************************************
|
||||||
Upgrading cmsplugin-filer from 1.0 to 1.1
|
Upgrading cmsplugin-filer from 1.0 to 1.1
|
||||||
-----------------------------------------
|
*****************************************
|
||||||
|
|
||||||
Due to changes in cmsplugin-filer/filer which moved ``ThumbnailOption`` model from the
|
Due to changes in cmsplugin-filer/filer which moved ``ThumbnailOption`` model from the
|
||||||
former to the latter, ``djangocms-blog`` must be migrated as well.
|
former to the latter, ``djangocms-blog`` must be migrated as well.
|
||||||
|
|
||||||
Migrating cmsplugin-filer to 1.1 and djangocms-blog up to 0.8.4
|
Migrating cmsplugin-filer to 1.1 and djangocms-blog up to 0.8.4
|
||||||
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
===============================================================
|
||||||
|
|
||||||
If you have djangocms-blog up to 0.8.4 (included) installed or you are upgrading from a previous
|
If you have djangocms-blog up to 0.8.4 (included) installed or you are upgrading from a previous
|
||||||
djangocms-blog version together with cmsplugin-filer upgrade, you can just apply the migrations::
|
djangocms-blog version together with cmsplugin-filer upgrade, you can just apply the migrations::
|
||||||
|
@ -72,7 +73,7 @@ djangocms-blog version together with cmsplugin-filer upgrade, you can just apply
|
||||||
python manage.py migrate
|
python manage.py migrate
|
||||||
|
|
||||||
Migrating cmsplugin-filer to 1.1 and djangocms-blog 0.8.5+
|
Migrating cmsplugin-filer to 1.1 and djangocms-blog 0.8.5+
|
||||||
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
==========================================================
|
||||||
|
|
||||||
If you already a djangocms-blog 0.8.5+ or above, you have to de-apply some blog migrations when
|
If you already a djangocms-blog 0.8.5+ or above, you have to de-apply some blog migrations when
|
||||||
doing the upgrade::
|
doing the upgrade::
|
||||||
|
@ -86,31 +87,35 @@ doing the upgrade::
|
||||||
to migrate ``ThumbnailOption`` from cmsplugin-filer to filer
|
to migrate ``ThumbnailOption`` from cmsplugin-filer to filer
|
||||||
|
|
||||||
|
|
||||||
|
********
|
||||||
Features
|
Features
|
||||||
--------
|
********
|
||||||
|
|
||||||
* Placeholder content editing
|
* Placeholder content editing
|
||||||
* Frontend editing using django CMS 3.x frontend editor
|
* Frontend editing using django CMS 3.x frontend editor
|
||||||
* Multilingual support using django-parler
|
* Multilingual support using django-parler
|
||||||
* Support for Twitter cards, Open Graph and Google+ snippets meta tags
|
* Twitter cards, Open Graph and Google+ snippets meta tags
|
||||||
* Optional support for simpler TextField-based content editing
|
* Optional simpler TextField-based content editing
|
||||||
* Multisite support (posts can be visible in one or more Django sites on the
|
* Multisite (posts can be visible in one or more Django sites on the same project)
|
||||||
same project)
|
|
||||||
* Per-Apphook configuration
|
* Per-Apphook configuration
|
||||||
* Configurable permalinks
|
* Configurable permalinks
|
||||||
* Configurable django CMS menu support
|
* Configurable django CMS menu
|
||||||
* Per-Apphook templates set
|
* Per-Apphook templates set
|
||||||
* Auto Apphook setup
|
* Auto Apphook setup
|
||||||
* Django sitemap framework support
|
* Django sitemap framework
|
||||||
* Support for django CMS 3.2+ Wizard
|
* django CMS 3.2+ Wizard
|
||||||
* Haystack index support
|
* Haystack index
|
||||||
|
* Desktop notifications
|
||||||
|
* Liveblog
|
||||||
|
|
||||||
|
*************
|
||||||
Documentation
|
Documentation
|
||||||
-------------
|
*************
|
||||||
|
|
||||||
Check documentation at https://djangocms-blog.readthedocs.io/en/latest/
|
Check documentation at https://djangocms-blog.readthedocs.io/en/latest/
|
||||||
|
|
||||||
|
*****************************
|
||||||
Known djangocms-blog websites
|
Known djangocms-blog websites
|
||||||
+++++++++++++++++++++++++++++
|
*****************************
|
||||||
|
|
||||||
See DjangoPackages for an updated list https://www.djangopackages.com/packages/p/djangocms-blog/
|
See DjangoPackages for an updated list https://www.djangopackages.com/packages/p/djangocms-blog/
|
||||||
|
|
|
@ -21,13 +21,13 @@
|
||||||
</div>
|
</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% endspaceless %}
|
{% endspaceless %}
|
||||||
{% if view.liveblog_enabled %}
|
|
||||||
{% include "liveblog/includes/post_detail.html" %}
|
|
||||||
{% endif %}
|
|
||||||
{% if post.app_config.use_placeholder %}
|
{% if post.app_config.use_placeholder %}
|
||||||
<div class="blog-content">{% render_placeholder post.content %}</div>
|
<div class="blog-content">{% render_placeholder post.content %}</div>
|
||||||
{% else %}
|
{% else %}
|
||||||
<div class="blog-content">{% render_model post "post_text" "post_text" %}</div>
|
<div class="blog-content">{% render_model post "post_text" "post_text" %}</div>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
{% if view.liveblog_enabled %}
|
||||||
|
{% include "liveblog/includes/post_detail.html" %}
|
||||||
|
{% endif %}
|
||||||
</article>
|
</article>
|
||||||
{% endblock content_blog %}
|
{% endblock content_blog %}
|
||||||
|
|
143
docs/channels.rst
Normal file
143
docs/channels.rst
Normal file
|
@ -0,0 +1,143 @@
|
||||||
|
.. _channels_features:
|
||||||
|
|
||||||
|
#################
|
||||||
|
Channels Features
|
||||||
|
#################
|
||||||
|
|
||||||
|
djangocms-blog implements some channels related features:
|
||||||
|
|
||||||
|
* desktop notifications
|
||||||
|
* liveblog
|
||||||
|
|
||||||
|
For how to setup channels in your project, please refer to `channels documentation`_.
|
||||||
|
|
||||||
|
.. _knocker:
|
||||||
|
|
||||||
|
*************
|
||||||
|
Notifications
|
||||||
|
*************
|
||||||
|
|
||||||
|
``djangocms-blog`` is integrated with `django-knocker`_
|
||||||
|
to provide real time desktop notifications.
|
||||||
|
|
||||||
|
See `django-knocker documentation`_ for how to configure
|
||||||
|
knocker.
|
||||||
|
|
||||||
|
|
||||||
|
.. _liveblog:
|
||||||
|
|
||||||
|
********
|
||||||
|
Liveblog
|
||||||
|
********
|
||||||
|
|
||||||
|
Liveblog feature allows to display any content on a single post in realtime.
|
||||||
|
|
||||||
|
This is implemented by creating a group for each liveblogging enabled post and assigning
|
||||||
|
the clients to each group whenever they visit a liveblog post.
|
||||||
|
|
||||||
|
Each liveblogged text is a specialized plugin (see `extend_liveblog`_ for information on how to
|
||||||
|
customize the liveblog plugin).
|
||||||
|
|
||||||
|
|
||||||
|
Enabling liveblog
|
||||||
|
=================
|
||||||
|
|
||||||
|
To enabled liveblog features:
|
||||||
|
|
||||||
|
* Setup django channels according to `channels documentation`_
|
||||||
|
|
||||||
|
* Add ``djangocms_blog.liveblog`` application to ``INSTALLED_APPS``::
|
||||||
|
|
||||||
|
INSTALLED_APPS = [
|
||||||
|
...
|
||||||
|
'djangocms_blog.liveblog',
|
||||||
|
...
|
||||||
|
]
|
||||||
|
|
||||||
|
* If you overwrite the post detail template, setup the following javascript code in the custom
|
||||||
|
template::
|
||||||
|
|
||||||
|
{% add_data "js-script" "liveblog/js/reconnecting-websocket.min.js" %}
|
||||||
|
{% add_data "js-script" "liveblog/js/liveblog.js" %}
|
||||||
|
<script>
|
||||||
|
var liveblog_apphook = '{{ post.app_config.namespace }}';
|
||||||
|
var liveblog_language = '{{ post.get_current_language }}';
|
||||||
|
var liveblog_post = '{{ post.slug }}';
|
||||||
|
</script>
|
||||||
|
|
||||||
|
* It's advised to configure ``CMS_PLACEHOLDER_CONF`` to only allow ``Liveblog`` plugins in
|
||||||
|
``Liveblog`` placeholder, and remove them from other placeholders::
|
||||||
|
|
||||||
|
CMS_PLACEHOLDER_CONF = {
|
||||||
|
None: {
|
||||||
|
'excluded_plugins': ['LiveblogPlugin'],
|
||||||
|
}
|
||||||
|
...
|
||||||
|
'liveblog': {
|
||||||
|
'plugins': ['LiveblogPlugin'],
|
||||||
|
}
|
||||||
|
...
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Using liveblog
|
||||||
|
==============
|
||||||
|
|
||||||
|
To use liveblog:
|
||||||
|
|
||||||
|
* Tick the ``enable liveblog`` flag in the ``Info`` fieldset;
|
||||||
|
* Open the blog post detail page;
|
||||||
|
* Optionally add static content to the ``post content`` placeholder; the default template will
|
||||||
|
show static content on top of liveblog content; you can override the template for different
|
||||||
|
rendering;
|
||||||
|
* Add plugins to the ``Liveblog`` placeholder;
|
||||||
|
* Tick the ``publish`` flag on each ``Liveblog`` plugin to send it to clients in realtime.
|
||||||
|
|
||||||
|
|
||||||
|
.. _extend_liveblog:
|
||||||
|
|
||||||
|
Extending liveblog plugin
|
||||||
|
=========================
|
||||||
|
|
||||||
|
Liveblog support ships with a default liveblog plugin that provides a title, a body and
|
||||||
|
a filer image.
|
||||||
|
|
||||||
|
To customize the appearance of the plugin, just override the ``liveblog/plugins/liveblog.html``
|
||||||
|
template. Both the real time and non realtime version of the plugin will be rendered accordingly.
|
||||||
|
|
||||||
|
If you need something different, you can create your own plugin by creating your own plugin
|
||||||
|
inheriting from ``LiveblogInterface`` and calling the method ``self._post_save()`` in the
|
||||||
|
save method, after the model has been saved.
|
||||||
|
|
||||||
|
In ``models.py``:
|
||||||
|
|
||||||
|
.. code-block:: django
|
||||||
|
|
||||||
|
class MyLiveblog(LiveblogInterface, CMSPlugin):
|
||||||
|
"""
|
||||||
|
Basic liveblog plugin model
|
||||||
|
"""
|
||||||
|
text = models.TextField(_('text'))
|
||||||
|
|
||||||
|
def save(self, *args, **kwargs):
|
||||||
|
super(MyLiveblog, self).save(*args, **kwargs)
|
||||||
|
self._post_save()
|
||||||
|
|
||||||
|
|
||||||
|
The plugin class does not require any special inheritance; in ``cms_plugins.py``:
|
||||||
|
|
||||||
|
.. code-block:: django
|
||||||
|
|
||||||
|
class MyLiveblogPlugin(CMSPluginBase):
|
||||||
|
name = _('Liveblog item')
|
||||||
|
model = MyLiveblog
|
||||||
|
plugin_pool.register_plugin(MyLiveblogPlugin)
|
||||||
|
|
||||||
|
While not required, for consistency between between realtime and non realtime rendering, use the
|
||||||
|
``publish`` field inherited from ``LiveblogInterface`` to hide the plugin content when the plugin
|
||||||
|
is not published.
|
||||||
|
|
||||||
|
|
||||||
|
.. _channels documentation: http://channels.readthedocs.io/en/latest/index.html
|
||||||
|
.. _django-knocker documentation: http://django-knocker.readthedocs.io/en/latest/index.html
|
||||||
|
.. _django-knocker: https://github.com/nephila/django-knocker
|
|
@ -1,12 +1,14 @@
|
||||||
.. _features:
|
.. _features:
|
||||||
|
|
||||||
|
========
|
||||||
Features
|
Features
|
||||||
--------
|
========
|
||||||
|
|
||||||
.. _blog-home-page:
|
.. _blog-home-page:
|
||||||
|
|
||||||
|
*******************************
|
||||||
Attaching blog to the home page
|
Attaching blog to the home page
|
||||||
+++++++++++++++++++++++++++++++
|
*******************************
|
||||||
|
|
||||||
If you want to attach the blog to the home page you have to adapt settings a bit otherwise the
|
If you want to attach the blog to the home page you have to adapt settings a bit otherwise the
|
||||||
"Just slug" permalink will swallow any CMS page you create.
|
"Just slug" permalink will swallow any CMS page you create.
|
||||||
|
@ -32,13 +34,14 @@ linked ot the home page (see http://yoursite.com/admin/djangocms_blog/blogconfig
|
||||||
|
|
||||||
.. _multisite:
|
.. _multisite:
|
||||||
|
|
||||||
|
*********
|
||||||
Multisite
|
Multisite
|
||||||
+++++++++
|
*********
|
||||||
|
|
||||||
django CMS blog provides full support for multisite setups.
|
django CMS blog provides full support for multisite setups.
|
||||||
|
|
||||||
Basic multisite
|
Basic multisite
|
||||||
^^^^^^^^^^^^^^^
|
===============
|
||||||
|
|
||||||
To enabled basic multisite add ``BLOG_MULTISITE = True`` to the project settings.
|
To enabled basic multisite add ``BLOG_MULTISITE = True`` to the project settings.
|
||||||
|
|
||||||
|
@ -47,7 +50,7 @@ it's visible on all sites. All users with permission on the blog can manage all
|
||||||
posts, whichever the sites are.
|
posts, whichever the sites are.
|
||||||
|
|
||||||
Multisite permissions
|
Multisite permissions
|
||||||
^^^^^^^^^^^^^^^^^^^^^
|
=====================
|
||||||
|
|
||||||
Multisite permissions allow to restrict users to only manage the blog posts for the
|
Multisite permissions allow to restrict users to only manage the blog posts for the
|
||||||
sites they are enabled to
|
sites they are enabled to
|
||||||
|
@ -65,8 +68,9 @@ Example::
|
||||||
|
|
||||||
.. _cms-wizard:
|
.. _cms-wizard:
|
||||||
|
|
||||||
|
**********************
|
||||||
django CMS 3.2+ Wizard
|
django CMS 3.2+ Wizard
|
||||||
++++++++++++++++++++++
|
**********************
|
||||||
|
|
||||||
django CMS 3.2+ provides a content creation wizard that allows to quickly created supported
|
django CMS 3.2+ provides a content creation wizard that allows to quickly created supported
|
||||||
content types, such as blog posts.
|
content types, such as blog posts.
|
||||||
|
@ -80,8 +84,9 @@ wizard may not show up, but the rest will work as intended.
|
||||||
|
|
||||||
.. _permalinks:
|
.. _permalinks:
|
||||||
|
|
||||||
|
***********************
|
||||||
Configurable permalinks
|
Configurable permalinks
|
||||||
+++++++++++++++++++++++
|
***********************
|
||||||
|
|
||||||
Blog comes with four different styles of permalinks styles:
|
Blog comes with four different styles of permalinks styles:
|
||||||
|
|
||||||
|
@ -106,8 +111,9 @@ And change ``post/`` with the desired prefix.
|
||||||
|
|
||||||
.. _menu:
|
.. _menu:
|
||||||
|
|
||||||
|
****
|
||||||
Menu
|
Menu
|
||||||
++++
|
****
|
||||||
|
|
||||||
``djangocms_blog`` provides support for django CMS menu framework.
|
``djangocms_blog`` provides support for django CMS menu framework.
|
||||||
|
|
||||||
|
@ -121,8 +127,9 @@ category are not added to the menu.
|
||||||
|
|
||||||
.. _templates:
|
.. _templates:
|
||||||
|
|
||||||
|
*********
|
||||||
Templates
|
Templates
|
||||||
+++++++++
|
*********
|
||||||
|
|
||||||
To ease the template customisations a ``djangocms_blog/base.html`` template is
|
To ease the template customisations a ``djangocms_blog/base.html`` template is
|
||||||
used by all the blog templates; the templates itself extends a ``base.html``
|
used by all the blog templates; the templates itself extends a ``base.html``
|
||||||
|
@ -133,8 +140,9 @@ not defines a ``content`` block, copy in your template directory
|
||||||
other application templates will use the newly created base template and
|
other application templates will use the newly created base template and
|
||||||
will ignore the bundled one.
|
will ignore the bundled one.
|
||||||
|
|
||||||
|
*************
|
||||||
Templates set
|
Templates set
|
||||||
+++++++++++++
|
*************
|
||||||
|
|
||||||
By using **Apphook configuration** you can define a different templates set.
|
By using **Apphook configuration** you can define a different templates set.
|
||||||
To use this feature provide a directory name in **Template prefix** field in
|
To use this feature provide a directory name in **Template prefix** field in
|
||||||
|
@ -143,8 +151,9 @@ root of your custom templates set.
|
||||||
|
|
||||||
.. _sitemap:
|
.. _sitemap:
|
||||||
|
|
||||||
|
*******
|
||||||
Sitemap
|
Sitemap
|
||||||
+++++++
|
*******
|
||||||
|
|
||||||
``djangocms_blog`` provides a sitemap for improved SEO indexing.
|
``djangocms_blog`` provides a sitemap for improved SEO indexing.
|
||||||
Sitemap returns all the published posts in all the languages each post is available.
|
Sitemap returns all the published posts in all the languages each post is available.
|
||||||
|
@ -168,14 +177,3 @@ To add the blog Sitemap, add the following code to the project ``urls.py``::
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
)
|
)
|
||||||
|
|
||||||
.. _knocker:
|
|
||||||
|
|
||||||
django-knocker
|
|
||||||
++++++++++++++
|
|
||||||
|
|
||||||
``djangocms-blog`` is integrated with `django-knocker <https://github.com/nephila/django-knocker>`_
|
|
||||||
to provide real time desktop notifications.
|
|
||||||
|
|
||||||
See `django-knocker documentation <https://django-knocker.readthedocs.io/>`_ for how to configure
|
|
||||||
knocker.
|
|
||||||
|
|
|
@ -3,14 +3,16 @@
|
||||||
You can adapt this file completely to your liking, but it should at least
|
You can adapt this file completely to your liking, but it should at least
|
||||||
contain the root `toctree` directive.
|
contain the root `toctree` directive.
|
||||||
|
|
||||||
|
==========================================
|
||||||
Welcome to djangocms-blog's documentation!
|
Welcome to djangocms-blog's documentation!
|
||||||
==========================================
|
==========================================
|
||||||
|
|
||||||
.. include:: ../README.rst
|
.. include:: ../README.rst
|
||||||
|
|
||||||
|
|
||||||
|
********
|
||||||
Contents
|
Contents
|
||||||
--------
|
********
|
||||||
|
|
||||||
.. toctree::
|
.. toctree::
|
||||||
:maxdepth: 2
|
:maxdepth: 2
|
||||||
|
@ -18,13 +20,15 @@ Contents
|
||||||
installation
|
installation
|
||||||
settings
|
settings
|
||||||
features
|
features
|
||||||
|
channels
|
||||||
development
|
development
|
||||||
contributing
|
contributing
|
||||||
history
|
history
|
||||||
|
|
||||||
|
|
||||||
|
******************
|
||||||
Indices and tables
|
Indices and tables
|
||||||
==================
|
******************
|
||||||
|
|
||||||
* :ref:`genindex`
|
* :ref:`genindex`
|
||||||
* :ref:`search`
|
* :ref:`search`
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
.. _installation:
|
.. _installation:
|
||||||
|
|
||||||
|
############
|
||||||
Installation
|
Installation
|
||||||
------------
|
############
|
||||||
|
|
||||||
Install djangocms-blog::
|
Install djangocms-blog::
|
||||||
|
|
||||||
|
@ -28,8 +29,9 @@ Then migrate::
|
||||||
|
|
||||||
$ python manage.py migrate
|
$ python manage.py migrate
|
||||||
|
|
||||||
|
*********************
|
||||||
Minimal configuration
|
Minimal configuration
|
||||||
+++++++++++++++++++++
|
*********************
|
||||||
|
|
||||||
The following are minimal defaults to get the blog running; they may not be
|
The following are minimal defaults to get the blog running; they may not be
|
||||||
suited for your deployment.
|
suited for your deployment.
|
||||||
|
@ -90,8 +92,9 @@ suited for your deployment.
|
||||||
|
|
||||||
.. _external_applications:
|
.. _external_applications:
|
||||||
|
|
||||||
|
***********************************
|
||||||
External applications configuration
|
External applications configuration
|
||||||
+++++++++++++++++++++++++++++++++++
|
***********************************
|
||||||
|
|
||||||
Dependency applications may need configuration to work properly.
|
Dependency applications may need configuration to work properly.
|
||||||
|
|
||||||
|
@ -106,8 +109,9 @@ Please, refer to each application documentation on details.
|
||||||
|
|
||||||
.. _auto_setup:
|
.. _auto_setup:
|
||||||
|
|
||||||
|
**********
|
||||||
Auto setup
|
Auto setup
|
||||||
++++++++++
|
**********
|
||||||
|
|
||||||
``djangocms_blog`` can install and configue itself if it does not find any
|
``djangocms_blog`` can install and configue itself if it does not find any
|
||||||
attached instance of itself.
|
attached instance of itself.
|
||||||
|
|
|
@ -1,7 +1,9 @@
|
||||||
.. _settings:
|
.. _settings:
|
||||||
|
|
||||||
|
###############
|
||||||
Global Settings
|
Global Settings
|
||||||
---------------
|
###############
|
||||||
|
|
||||||
* BLOG_IMAGE_THUMBNAIL_SIZE: Size of the main image when shown on the post
|
* BLOG_IMAGE_THUMBNAIL_SIZE: Size of the main image when shown on the post
|
||||||
lists; it's a dictionary with ``size``, ``crop`` and ``upscale`` keys;
|
lists; it's a dictionary with ``size``, ``crop`` and ``upscale`` keys;
|
||||||
(default: ``{'size': '120x120', 'crop': True,'upscale': False}``)
|
(default: ``{'size': '120x120', 'crop': True,'upscale': False}``)
|
||||||
|
@ -88,8 +90,9 @@ Global Settings
|
||||||
* BLOG_FEED_LATEST_ITEMS: Number of items in latest items feed
|
* BLOG_FEED_LATEST_ITEMS: Number of items in latest items feed
|
||||||
* BLOG_FEED_TAGS_ITEMS: Number of items in per tags feed
|
* BLOG_FEED_TAGS_ITEMS: Number of items in per tags feed
|
||||||
|
|
||||||
|
******************
|
||||||
Read-only settings
|
Read-only settings
|
||||||
++++++++++++++++++
|
******************
|
||||||
|
|
||||||
* BLOG_MENU_TYPES: Available structures of the Blog menu; (default list **Posts and Categories**,
|
* BLOG_MENU_TYPES: Available structures of the Blog menu; (default list **Posts and Categories**,
|
||||||
**Categories only**, **Posts only**, **None**)
|
**Categories only**, **Posts only**, **None**)
|
||||||
|
@ -97,8 +100,9 @@ Read-only settings
|
||||||
(default: ``Posts and Categories``)
|
(default: ``Posts and Categories``)
|
||||||
|
|
||||||
|
|
||||||
|
********************
|
||||||
Per-Apphook settings
|
Per-Apphook settings
|
||||||
++++++++++++++++++++
|
********************
|
||||||
|
|
||||||
The following settings can be configured for each ``Apphook config``: the settings above will
|
The following settings can be configured for each ``Apphook config``: the settings above will
|
||||||
be used as defaults.
|
be used as defaults.
|
||||||
|
|
Loading…
Reference in a new issue