<p align="center">
<img alt="kitconcept GmbH" width="200px" src="https://kitconcept.com/logo.svg">
</p>
<h1 align="center">collective.blog</h1>
<h3 align="center">Blog features for Plone</h3>
<div align="center">
[![PyPI](https://img.shields.io/pypi/v/collective.blog)](https://pypi.org/project/collective.blog/)
[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/collective.blog)](https://pypi.org/project/collective.blog/)
[![PyPI - Wheel](https://img.shields.io/pypi/wheel/collective.blog)](https://pypi.org/project/collective.blog/)
[![PyPI - License](https://img.shields.io/pypi/l/collective.blog)](https://pypi.org/project/collective.blog/)
[![PyPI - Status](https://img.shields.io/pypi/status/collective.blog)](https://pypi.org/project/collective.blog/)
[![PyPI - Plone Versions](https://img.shields.io/pypi/frameworkversions/plone/collective.blog)](https://pypi.org/project/collective.blog/)
[![Meta](https://github.com/collective/collective.blog/actions/workflows/meta.yml/badge.svg)](https://github.com/collective/collective.blog/actions/workflows/meta.yml)
![Code Style](https://img.shields.io/badge/Code%20Style-Black-000000)
[![GitHub contributors](https://img.shields.io/github/contributors/collective/collective.blog)](https://github.com/collective/collective.blog)
[![GitHub Repo stars](https://img.shields.io/github/stars/collective/collective.blog?style=social)](https://github.com/collective/collective.blog)
</div>
## Features
`collective.blog` adds blogging features to a [Plone](https://plone.org/) site.
### Content Types
| name | context |
| ------------- | --------------------------------------------------------------- |
| `Blog` | A folderish content type that supports adding Posts and Authors |
| `Blog Author` | An Author in a blog |
| `Blog Tag` | A Tag for categorizing posts in a blog |
| `Blog Post` | A Post in a blog |
## Installation
Add `collective.blog` as a dependency on your package's `setup.py`
```python
install_requires = [
"collective.blog",
"Plone",
"plone.restapi",
"setuptools",
],
```
Also, add `collective.blog` to your package's `configure.zcml` (or `dependencies.zcml`):
```xml
<include package="collective.blog" />
```
### Generic Setup
To automatically enable this package when your add-on is installed, add the following line inside the package's `profiles/default/metadata.xml` `dependencies` element:
```xml
<dependency>profile-collective.blog:default</dependency>
```
## Source Code and Contributions
We welcome contributions to `collective.blog`.
You can create an issue in the issue tracker, or contact a maintainer.
- [Issue Tracker](https://github.com/collective/collective.blog/issues)
- [Source Code](https://github.com/collective/collective.blog/)
### Development requirements
- Python 3.8 or later
- Docker
### Setup
Install all development dependencies -- including Plone -- and create a new instance using:
```bash
make install
```
### Update translations
```bash
make i18n
```
### Format codebase
```bash
make format
```
### Run tests
Testing of this package is done with [`pytest`](https://docs.pytest.org/) and [`tox`](https://tox.wiki/).
Run all tests with:
```bash
make test
```
Run all tests but stop on the first error and open a `pdb` session:
```bash
./bin/tox -e test -- -x --pdb
```
Run only tests that match `TestVocabAuthors`:
```bash
./bin/tox -e test -- -k TestVocabAuthors
```
Run only tests that match `TestVocabAuthors`, but stop on the first error and open a `pdb` session:
```bash
./bin/tox -e test -- -k TestVocabAuthors -x --pdb
```
## Credits
The development of this add-on has been kindly sponsored by [German Aerospace Center (DLR)](https://www.dlr.de) and [Forschungszentrum Jülich](https://www.fz-juelich.de).
<img alt="German Aerospace Center (DLR)" width="200px" src="https://raw.githubusercontent.com/collective/collective.blog/main/docs/dlr.svg" style="background-color:white">
<img alt="Forschungszentrum Jülich" width="200px" src="https://raw.githubusercontent.com/collective/collective.blog/main/docs/fz-juelich.svg" style="background-color:white">
Developed by [kitconcept](https://www.kitconcept.com/)
## License
The project is licensed under GPLv2.
# Contributors
- Jonas Piterek [@jonaspiterek]
- Érico Andrei [@ericof]
- Timo Stollenwerk [@tisto]
- collective [info@kitconcept.com]
# Changelog
<!--
You should *NOT* be adding new change log entries to this file.
You should create a file in the news directory instead.
For helpful instructions, please see:
https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst
-->
<!-- towncrier release notes start -->
## 1.0.0a12 (2024-04-24)
### Bug fixes:
- Fix tags widget to not have an open vocabulary, and adjust Volto widget @sneridagh #71
## 1.0.0a11 (2024-04-10)
### Bug fixes:
- Fix 'Wrong contained type' error for new blog posts with no tags created using plone.restapi. @davisagli #69
## 1.0.0a10 (2024-03-28)
### New features:
- - Update German translations [@jonaspiterek] #63
- Update Brazilian Portuguese translations [@ericof] #67
### Internal:
- Add a GitHub Actions workflow to automatically check for Changelog entries on pull requests [@ericof] #65
## 1.0.0a9 (2024-03-27)
### New features:
- Added Blog Tag content type. A tags folder is created for new blogs, but not existing ones. @davisagli #61
## 1.0.0a8 (2024-02-28)
### Bug fixes:
- Limit authors vocabulary to authors from the current blog context. @davisagli #59
## 1.0.0a7 (2024-02-02)
### New features:
- Allow a Blog Post to be created inside a subfolder of a Blog #54
### Bug fixes:
- Refactor post_authors indexer to avoid repeated calls to the catalog #56
## 1.0.0a6 (2024-01-29)
### New features:
- - Add indexer for indexing authors from a blog post [@jonaspiterek] #53
## 1.0.0a5 (2023-12-04)
### New features:
- Translate id and title for Authors folder on creation [@jonaspiterek] #50
## 1.0.0a4 (2023-11-28)
### Bug fixes:
- Rename Blog fti to BlogFolder, allowing contents with id blog to be added [@ericof] #42
- Add initial blocks to auto_add_authors_container handler [@jonaspiterek] #43
- Rename blog index and metadata to blog_uid [@ericof] #48
## 1.0.0a3 (2023-11-24)
### New features:
- Control creation of "Authors" folder via registry configuration [@ericof] #34
- Add control panel to configure Blog Settings [@ericof] #36
- Additional information returned on /@authors endpoint [@ericof] #40
### Internal:
- Increase test coverage of the package [@ericof] #38
## 1.0.0a2 (2023-11-23)
### New features:
- Initial Package Structure for Plone 6 [@jonaspiterek] #11
- Blog and Author should be listed on Plone Navigation [@jonaspiterek] #13
- Implement i18n support [@ericof] #17
- Implement `collective.blog.blog_info` behavior [@ericof] #20
- Disable allowing to add Author globally. Fix GS titles [@jonaspiterek] #21
- Add index and metadata for blog post and blog author, Add test for blog author [@jonaspiterek] #28
- Implement collective.blog: Add Author, collective.blog: Add Blog, collective.blog: Add Post permissions [@ericof] #30
- Create folder authors inside a blog [@jonaspiterek] #32
### Documentation:
- Improve README.md [@ericof] #15
## 1.0a1 (2016-02-14)
- Initial release. [@pcdummy]
Raw data
{
"_id": null,
"home_page": "https://github.com/collective/collective.blog",
"name": "collective.blog",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "Python Plone CMS",
"author": "Jonas Piterek (kitconcept GmbH)",
"author_email": "info@kitconcept.com",
"download_url": "https://files.pythonhosted.org/packages/dd/0a/f46f78b2d4280d3e8532950721272a821ae4d96dec8dd5fcf74996c8f60d/collective.blog-1.0.0a12.tar.gz",
"platform": null,
"description": "\n<p align=\"center\">\n <img alt=\"kitconcept GmbH\" width=\"200px\" src=\"https://kitconcept.com/logo.svg\">\n</p>\n\n<h1 align=\"center\">collective.blog</h1>\n<h3 align=\"center\">Blog features for Plone</h3>\n\n<div align=\"center\">\n\n[![PyPI](https://img.shields.io/pypi/v/collective.blog)](https://pypi.org/project/collective.blog/)\n[![PyPI - Python Version](https://img.shields.io/pypi/pyversions/collective.blog)](https://pypi.org/project/collective.blog/)\n[![PyPI - Wheel](https://img.shields.io/pypi/wheel/collective.blog)](https://pypi.org/project/collective.blog/)\n[![PyPI - License](https://img.shields.io/pypi/l/collective.blog)](https://pypi.org/project/collective.blog/)\n[![PyPI - Status](https://img.shields.io/pypi/status/collective.blog)](https://pypi.org/project/collective.blog/)\n\n[![PyPI - Plone Versions](https://img.shields.io/pypi/frameworkversions/plone/collective.blog)](https://pypi.org/project/collective.blog/)\n\n[![Meta](https://github.com/collective/collective.blog/actions/workflows/meta.yml/badge.svg)](https://github.com/collective/collective.blog/actions/workflows/meta.yml)\n![Code Style](https://img.shields.io/badge/Code%20Style-Black-000000)\n\n[![GitHub contributors](https://img.shields.io/github/contributors/collective/collective.blog)](https://github.com/collective/collective.blog)\n[![GitHub Repo stars](https://img.shields.io/github/stars/collective/collective.blog?style=social)](https://github.com/collective/collective.blog)\n\n</div>\n\n## Features\n\n`collective.blog` adds blogging features to a [Plone](https://plone.org/) site.\n\n### Content Types\n\n| name | context |\n| ------------- | --------------------------------------------------------------- |\n| `Blog` | A folderish content type that supports adding Posts and Authors |\n| `Blog Author` | An Author in a blog |\n| `Blog Tag` | A Tag for categorizing posts in a blog |\n| `Blog Post` | A Post in a blog |\n\n## Installation\n\nAdd `collective.blog` as a dependency on your package's `setup.py`\n\n```python\n install_requires = [\n \"collective.blog\",\n \"Plone\",\n \"plone.restapi\",\n \"setuptools\",\n ],\n```\n\nAlso, add `collective.blog` to your package's `configure.zcml` (or `dependencies.zcml`):\n\n```xml\n<include package=\"collective.blog\" />\n```\n\n### Generic Setup\n\nTo automatically enable this package when your add-on is installed, add the following line inside the package's `profiles/default/metadata.xml` `dependencies` element:\n\n```xml\n <dependency>profile-collective.blog:default</dependency>\n```\n\n## Source Code and Contributions\n\nWe welcome contributions to `collective.blog`.\n\nYou can create an issue in the issue tracker, or contact a maintainer.\n\n- [Issue Tracker](https://github.com/collective/collective.blog/issues)\n- [Source Code](https://github.com/collective/collective.blog/)\n\n### Development requirements\n\n- Python 3.8 or later\n- Docker\n\n### Setup\n\nInstall all development dependencies -- including Plone -- and create a new instance using:\n\n```bash\nmake install\n```\n\n### Update translations\n\n```bash\nmake i18n\n```\n\n### Format codebase\n\n```bash\nmake format\n```\n\n### Run tests\n\nTesting of this package is done with [`pytest`](https://docs.pytest.org/) and [`tox`](https://tox.wiki/).\n\nRun all tests with:\n\n```bash\nmake test\n```\n\nRun all tests but stop on the first error and open a `pdb` session:\n\n```bash\n./bin/tox -e test -- -x --pdb\n```\n\nRun only tests that match `TestVocabAuthors`:\n\n```bash\n./bin/tox -e test -- -k TestVocabAuthors\n```\n\nRun only tests that match `TestVocabAuthors`, but stop on the first error and open a `pdb` session:\n\n```bash\n./bin/tox -e test -- -k TestVocabAuthors -x --pdb\n```\n\n## Credits\n\nThe development of this add-on has been kindly sponsored by [German Aerospace Center (DLR)](https://www.dlr.de) and [Forschungszentrum J\u00fclich](https://www.fz-juelich.de).\n\n<img alt=\"German Aerospace Center (DLR)\" width=\"200px\" src=\"https://raw.githubusercontent.com/collective/collective.blog/main/docs/dlr.svg\" style=\"background-color:white\">\n<img alt=\"Forschungszentrum J\u00fclich\" width=\"200px\" src=\"https://raw.githubusercontent.com/collective/collective.blog/main/docs/fz-juelich.svg\" style=\"background-color:white\">\n\nDeveloped by [kitconcept](https://www.kitconcept.com/)\n\n## License\n\nThe project is licensed under GPLv2.\n\n\n# Contributors\n\n- Jonas Piterek [@jonaspiterek]\n- \u00c9rico Andrei [@ericof]\n- Timo Stollenwerk [@tisto]\n- collective [info@kitconcept.com]\n\n\n# Changelog\n\n<!--\n You should *NOT* be adding new change log entries to this file.\n You should create a file in the news directory instead.\n For helpful instructions, please see:\n https://github.com/plone/plone.releaser/blob/master/ADD-A-NEWS-ITEM.rst\n-->\n\n<!-- towncrier release notes start -->\n\n## 1.0.0a12 (2024-04-24)\n\n\n### Bug fixes:\n\n- Fix tags widget to not have an open vocabulary, and adjust Volto widget @sneridagh #71\n\n## 1.0.0a11 (2024-04-10)\n\n\n### Bug fixes:\n\n- Fix 'Wrong contained type' error for new blog posts with no tags created using plone.restapi. @davisagli #69\n\n## 1.0.0a10 (2024-03-28)\n\n\n### New features:\n\n- - Update German translations [@jonaspiterek] #63\n- Update Brazilian Portuguese translations [@ericof] #67\n\n\n### Internal:\n\n- Add a GitHub Actions workflow to automatically check for Changelog entries on pull requests [@ericof] #65\n\n## 1.0.0a9 (2024-03-27)\n\n\n### New features:\n\n- Added Blog Tag content type. A tags folder is created for new blogs, but not existing ones. @davisagli #61\n\n## 1.0.0a8 (2024-02-28)\n\n\n### Bug fixes:\n\n- Limit authors vocabulary to authors from the current blog context. @davisagli #59\n\n## 1.0.0a7 (2024-02-02)\n\n\n### New features:\n\n- Allow a Blog Post to be created inside a subfolder of a Blog #54\n\n\n### Bug fixes:\n\n- Refactor post_authors indexer to avoid repeated calls to the catalog #56\n\n## 1.0.0a6 (2024-01-29)\n\n\n### New features:\n\n- - Add indexer for indexing authors from a blog post [@jonaspiterek] #53\n\n\n## 1.0.0a5 (2023-12-04)\n\n\n### New features:\n\n- Translate id and title for Authors folder on creation [@jonaspiterek] #50\n\n\n## 1.0.0a4 (2023-11-28)\n\n\n### Bug fixes:\n\n- Rename Blog fti to BlogFolder, allowing contents with id blog to be added [@ericof] #42\n- Add initial blocks to auto_add_authors_container handler [@jonaspiterek] #43\n- Rename blog index and metadata to blog_uid [@ericof] #48\n\n\n## 1.0.0a3 (2023-11-24)\n\n\n### New features:\n\n- Control creation of \"Authors\" folder via registry configuration [@ericof] #34\n- Add control panel to configure Blog Settings [@ericof] #36\n- Additional information returned on /@authors endpoint [@ericof] #40\n\n\n### Internal:\n\n- Increase test coverage of the package [@ericof] #38\n\n\n## 1.0.0a2 (2023-11-23)\n\n\n### New features:\n\n- Initial Package Structure for Plone 6 [@jonaspiterek] #11\n- Blog and Author should be listed on Plone Navigation [@jonaspiterek] #13\n- Implement i18n support [@ericof] #17\n- Implement `collective.blog.blog_info` behavior [@ericof] #20\n- Disable allowing to add Author globally. Fix GS titles [@jonaspiterek] #21\n- Add index and metadata for blog post and blog author, Add test for blog author [@jonaspiterek] #28\n- Implement collective.blog: Add Author, collective.blog: Add Blog, collective.blog: Add Post permissions [@ericof] #30\n- Create folder authors inside a blog [@jonaspiterek] #32\n\n\n### Documentation:\n\n- Improve README.md [@ericof] #15\n\n\n## 1.0a1 (2016-02-14)\n\n- Initial release. [@pcdummy]\n\n\n",
"bugtrack_url": null,
"license": "GPL version 2",
"summary": "A Blog-Addon for Plone.",
"version": "1.0.0a12",
"project_urls": {
"Homepage": "https://github.com/collective/collective.blog",
"PyPI": "https://pypi.python.org/pypi/collective.blog",
"Source": "https://github.com/collective/collective.blog",
"Tracker": "https://github.com/collective/collective.blog/issues"
},
"split_keywords": [
"python",
"plone",
"cms"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8cfc9c4f344fdf388ab16e5bd0552ffc9cacd810b253878b4f9bc87524a9875a",
"md5": "0758a9a2661a5f9e83f13be0a64fb4e7",
"sha256": "dcb86ca6cd3b541faabdde8e1fb16cf36077f184b554efa5558618e3e246aa3b"
},
"downloads": -1,
"filename": "collective.blog-1.0.0a12-py3-none-any.whl",
"has_sig": false,
"md5_digest": "0758a9a2661a5f9e83f13be0a64fb4e7",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 53804,
"upload_time": "2024-04-24T16:44:26",
"upload_time_iso_8601": "2024-04-24T16:44:26.797772Z",
"url": "https://files.pythonhosted.org/packages/8c/fc/9c4f344fdf388ab16e5bd0552ffc9cacd810b253878b4f9bc87524a9875a/collective.blog-1.0.0a12-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "dd0af46f78b2d4280d3e8532950721272a821ae4d96dec8dd5fcf74996c8f60d",
"md5": "435bdcff6ee85778ddcc17015a9e6348",
"sha256": "b5ede4454e9680cb67b8a06e6606cf08d564b211bce0d1406d03b1378b4287a5"
},
"downloads": -1,
"filename": "collective.blog-1.0.0a12.tar.gz",
"has_sig": false,
"md5_digest": "435bdcff6ee85778ddcc17015a9e6348",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 54873,
"upload_time": "2024-04-24T16:44:29",
"upload_time_iso_8601": "2024-04-24T16:44:29.579159Z",
"url": "https://files.pythonhosted.org/packages/dd/0a/f46f78b2d4280d3e8532950721272a821ae4d96dec8dd5fcf74996c8f60d/collective.blog-1.0.0a12.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-04-24 16:44:29",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "collective",
"github_project": "collective.blog",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"requirements": [],
"tox": true,
"lcname": "collective.blog"
}