punkweb-bb 0.5.0__tar.gz → 0.5.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/PKG-INFO +96 -35
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/README.md +79 -33
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/__init__.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/admin.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/admin_forms.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/apps.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/bbcode.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/decorators.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/forms.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/guests.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/middleware.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/mixins.cpython-313.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/models.cpython-311.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/models.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/pagination.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/response.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/searching.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/settings.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/signals.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/tests.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/urls.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/utils.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/views.cpython-311.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/views.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/__pycache__/widgets.cpython-313.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/bbcode.py +16 -4
- punkweb_bb-0.5.2/punkweb_bb/migrations/0008_alter_groupstyle_username_style.py +18 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0001_initial.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0002_thread_view_count.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0003_alter_thread_options.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0004_groupstyle.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0005_alter_thread_options.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0006_remove_boardprofile__signature_rendered_and_more.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0007_boardprofile_bio.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0008_alter_groupstyle_username_style.cpython-311.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0008_alter_groupstyle_username_style.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/0009_report.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/migrations/__pycache__/__init__.cpython-313.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/models.py +6 -3
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/settings.py +2 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/css/bbcode-editor-content.css +4 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/css/members.css +6 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/css/punkweb.css +4 -0
- punkweb_bb-0.5.2/punkweb_bb/static/punkweb_bb/vendor/prism-duotone-sea.css +170 -0
- punkweb_bb-0.5.2/punkweb_bb/static/punkweb_bb/vendor/punkweb-ui.min.css +1 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/base.html +96 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/base_delete_dialog.html +16 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templates/punkweb_bb/base_dialog.html +6 -6
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/bbcode.html +20 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/category_create.html +32 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/category_update.html +33 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/components/pagination_controls.html +37 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/components/profile_image.html +11 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/forms/inline_form.html +6 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/forms/stacked_form.html +38 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/index.html +231 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/login.html +31 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/members.html +68 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templates/punkweb_bb/partials/category_delete.html +3 -3
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templates/punkweb_bb/partials/post_delete.html +3 -3
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/partials/post_update.html +16 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templates/punkweb_bb/partials/shout_delete.html +3 -3
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templates/punkweb_bb/partials/subcategory_delete.html +3 -3
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templates/punkweb_bb/partials/thread_delete.html +3 -3
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/partials/thread_move.html +17 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/profile.html +90 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templates/punkweb_bb/search.html +12 -16
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/settings.html +35 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html +21 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/shoutbox/shoutbox.html +25 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/signup.html +31 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/subcategory.html +128 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/subcategory_create.html +37 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/subcategory_update.html +38 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/thread.html +232 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/thread_create.html +41 -0
- punkweb_bb-0.5.2/punkweb_bb/templates/punkweb_bb/thread_update.html +41 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templates/punkweb_bb/widgets/markdown-editor.html +3 -1
- punkweb_bb-0.5.2/punkweb_bb/templatetags/__pycache__/__init__.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/templatetags/__pycache__/can_delete.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/templatetags/__pycache__/can_edit.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/templatetags/__pycache__/can_post.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/templatetags/__pycache__/humanize_int.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/templatetags/__pycache__/punkweb_bb.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/templatetags/__pycache__/render.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/templatetags/__pycache__/styled_group_name.cpython-313.pyc +0 -0
- punkweb_bb-0.5.2/punkweb_bb/templatetags/__pycache__/styled_username.cpython-313.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/tests.py +21 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/views.py +27 -27
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb.egg-info/PKG-INFO +97 -36
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb.egg-info/SOURCES.txt +43 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/setup.py +1 -1
- punkweb_bb-0.5.0/punkweb_bb/__pycache__/views.cpython-311.pyc +0 -0
- punkweb_bb-0.5.0/punkweb_bb/static/punkweb_bb/vendor/punkweb-ui.min.css +0 -1
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/base.html +0 -108
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/base_delete_dialog.html +0 -13
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/bbcode.html +0 -22
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/category_create.html +0 -33
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/category_update.html +0 -36
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/components/pagination_controls.html +0 -45
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/components/profile_image.html +0 -11
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/forms/inline_form.html +0 -6
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/forms/stacked_form.html +0 -35
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/index.html +0 -237
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/login.html +0 -37
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/members.html +0 -72
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/partials/post_update.html +0 -15
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/partials/thread_move.html +0 -16
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/profile.html +0 -101
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/settings.html +0 -42
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html +0 -23
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/shoutbox/shoutbox.html +0 -36
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/signup.html +0 -37
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/subcategory.html +0 -146
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/subcategory_create.html +0 -44
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/subcategory_update.html +0 -47
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/thread.html +0 -263
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/thread_create.html +0 -48
- punkweb_bb-0.5.0/punkweb_bb/templates/punkweb_bb/thread_update.html +0 -50
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/LICENSE +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/MANIFEST.in +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__init__.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/__init__.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/admin.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/admin_forms.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/apps.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/bbcode.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/bbcode_tags.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/context_processors.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/decorators.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/forms.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/guests.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/middleware.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/mixins.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/pagination.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/parsers.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/response.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/searching.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/settings.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/signals.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/sitemap.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/tags.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/tests.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/urls.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/utils.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/__pycache__/widgets.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/admin.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/admin_forms.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/apps.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/decorators.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/forms.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/guests.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/middleware.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/0001_initial.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/0002_thread_view_count.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/0003_alter_thread_options.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/0004_groupstyle.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/0005_alter_thread_options.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/0006_remove_boardprofile__signature_rendered_and_more.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/0007_boardprofile_bio.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__init__.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__pycache__/0001_initial.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__pycache__/0001_squashed_0006_remove_boardprofile__signature_rendered_and_more.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__pycache__/0002_thread_view_count.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__pycache__/0003_alter_thread_options.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__pycache__/0004_groupstyle.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__pycache__/0005_alter_thread_options.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__pycache__/0006_remove_boardprofile__signature_rendered_and_more.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__pycache__/0007_boardprofile_bio.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/migrations/__pycache__/__init__.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/mixins.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/pagination.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/response.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/searching.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/signals.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/css/index.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/css/profile.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/css/shoutbox.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/css/subcategory.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/css/thread.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/favicon.ico +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/js/bbcode-editor-tags.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/js/bbcode-editor.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/js/markdown-editor.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/js/punkweb-dialog.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/js/shoutbox.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/htmx-2.0.0.min.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/jquery-3.7.0.min.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/prism.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/prism.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/README.md +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/formats/bbcode.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/formats/xhtml.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/icons/material.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/icons/monocons.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/jquery.sceditor.bbcode.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/jquery.sceditor.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/jquery.sceditor.xhtml.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/alternative-lists.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/autosave.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/autoyoutube.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/dragdrop.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/format.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/plaintext.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/undo.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/v1compat.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/sceditor.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/content/default.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/default.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/defaultdark.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/famfamfam.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/modern.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/office-toolbar.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/office.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/square.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/alien.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/angel.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/angry.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/blink.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/blush.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/cheerful.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/cool.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/credits.txt +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/cwy.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/devil.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/dizzy.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/ermm.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/face.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/getlost.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/grin.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/happy.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/heart.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/kissing.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/laughing.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/ninja.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/pinch.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/pouty.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sad.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/shocked.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sick.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sideways.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/silly.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sleeping.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/smile.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/tongue.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/unsure.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/w00t.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/wassat.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/whistling.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/wink.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/wub.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/example.html +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ar.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ca.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/cn.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/cs.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/de.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/el.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/en-US.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/en.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/es.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/et.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/fa.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/fi.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/fr.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/gl.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/hu.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/id.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/it.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ja.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/lt.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/nb.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/nl.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/pl.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/pt-BR.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/pt.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ru.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/sk.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/sv.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/template.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/tr.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/tw.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/uk.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/vi.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/formats/bbcode.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/formats/xhtml.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/icons/material.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/icons/monocons.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/jquery.sceditor.bbcode.min.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/jquery.sceditor.min.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/jquery.sceditor.xhtml.min.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/alternative-lists.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/autosave.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/autoyoutube.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/dragdrop.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/format.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/plaintext.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/undo.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/v1compat.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/sceditor.min.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/content/default.min.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/default.min.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/defaultdark.min.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/famfamfam.png +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/modern.min.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office-toolbar.min.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office.min.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/square.min.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/.eslintrc.json +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/.gitignore +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/.prettierrc.json +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/LICENSE +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/README.md +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/babel.config.json +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/blank.html +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/demo.html +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.min.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.min.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.tiny.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/docs/_config.yml +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/docs/_layouts/default.html +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/docs/index.md +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/globals.d.ts +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/gulpfile.mjs +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/block.test.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/commandbar.test.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/inline.test.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/interaction.test.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/setup.test.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/config.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/server.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/setup.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/test-helpers.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest-puppeteer.config.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest.config.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/package-lock.json +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/package.json +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/TinyMDE.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/TinyMDECommandBar.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/css/commandbar.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/css/editor.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/css/index.css +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/grammar.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/html/blank.html +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/html/demo.html +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/index.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/blockquote.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/bold.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/clear_formatting.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/code.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/h1.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/h2.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/hr.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/image.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/italic.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/link.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/ol.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/strikethrough.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/svg.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/ul.svg +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/tiny.js +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__init__.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/__init__.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/can_delete.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/can_edit.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/can_post.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/humanize_count.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/humanize_int.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/markdown.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/punkweb_bb.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/render.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/settings.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/shoutbox_bbcode.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/shoutbox_render.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/styled_group_name.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/styled_username.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/__pycache__/username.cpython-311.pyc +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/can_delete.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/can_edit.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/can_post.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/humanize_int.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/punkweb_bb.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/render.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/styled_group_name.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/templatetags/styled_username.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/urls.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/utils.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb/widgets.py +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb.egg-info/dependency_links.txt +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb.egg-info/not-zip-safe +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb.egg-info/requires.txt +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/punkweb_bb.egg-info/top_level.txt +0 -0
- {punkweb_bb-0.5.0 → punkweb_bb-0.5.2}/setup.cfg +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: punkweb_bb
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.2
|
|
4
4
|
Summary: Django application that provides a simple and modern forum board software for your Django website.
|
|
5
5
|
Home-page: https://github.com/Punkweb/PunkwebBB
|
|
6
6
|
Author: Punkweb
|
|
@@ -15,38 +15,70 @@ Classifier: Programming Language :: Python
|
|
|
15
15
|
Classifier: Programming Language :: Python :: 3
|
|
16
16
|
Description-Content-Type: text/markdown
|
|
17
17
|
License-File: LICENSE
|
|
18
|
+
Requires-Dist: django>=4.0
|
|
19
|
+
Requires-Dist: bbcode
|
|
20
|
+
Requires-Dist: markdown
|
|
21
|
+
Requires-Dist: pillow
|
|
22
|
+
Requires-Dist: expiringdict
|
|
23
|
+
Dynamic: author
|
|
24
|
+
Dynamic: author-email
|
|
25
|
+
Dynamic: classifier
|
|
26
|
+
Dynamic: description
|
|
27
|
+
Dynamic: description-content-type
|
|
28
|
+
Dynamic: home-page
|
|
29
|
+
Dynamic: license
|
|
30
|
+
Dynamic: license-file
|
|
31
|
+
Dynamic: requires-dist
|
|
32
|
+
Dynamic: summary
|
|
18
33
|
|
|
19
34
|
# PunkwebBB
|
|
20
35
|
|
|
21
|
-
|
|
36
|
+
## What is PunkwebBB?
|
|
37
|
+
|
|
38
|
+
PunkwebBB is a Django application that provides a complete forum board solution for Django websites. What sets it apart is its focus on simplicity and independence - it doesn't rely on other Django apps, making it incredibly straightforward to install and configure. The goal? To have a fully functional forum up and running in under a minute.
|
|
22
39
|
|
|
23
40
|
Check out [punkweb.net](https://punkweb.net/board/) for documentation, support and a live demonstration of the software.
|
|
24
41
|
|
|
25
|
-
##
|
|
42
|
+
## Requirements
|
|
43
|
+
|
|
44
|
+
- Python 3.9+
|
|
45
|
+
- Django 3.2+
|
|
46
|
+
|
|
47
|
+
It may work with older versions of Python and Django, but it has not been tested.
|
|
48
|
+
|
|
49
|
+
## Key Features
|
|
50
|
+
|
|
51
|
+
### 1. Modern Technology Stack
|
|
26
52
|
|
|
27
53
|
- [Django](https://www.djangoproject.com/)
|
|
28
54
|
- [HTMX](https://htmx.org/)
|
|
29
|
-
- [jQuery](https://jquery.com/)
|
|
30
55
|
- [bbcode](https://pypi.org/project/bbcode/)
|
|
31
56
|
- [Markdown](https://pypi.org/project/Markdown/)
|
|
32
57
|
- [SCEditor](https://www.sceditor.com/)
|
|
33
58
|
- [TinyMDE](https://github.com/jefago/tiny-markdown-editor)
|
|
34
59
|
- [PrismJS](https://prismjs.com/)
|
|
35
60
|
|
|
36
|
-
|
|
61
|
+
### 2. Core Functionality
|
|
37
62
|
|
|
38
|
-
-
|
|
39
|
-
-
|
|
63
|
+
- User registration and authentication
|
|
64
|
+
- Thread and post management
|
|
65
|
+
- Real-time shoutbox
|
|
66
|
+
- Discord integration
|
|
67
|
+
- BBCode and Markdown parsing
|
|
68
|
+
- Responsive design
|
|
69
|
+
- Admin controls and moderation tools
|
|
40
70
|
|
|
41
|
-
|
|
71
|
+
## Getting Started
|
|
42
72
|
|
|
43
|
-
|
|
73
|
+
### Installation
|
|
44
74
|
|
|
45
75
|
```bash
|
|
46
76
|
pip install punkweb-bb
|
|
47
77
|
```
|
|
48
78
|
|
|
49
|
-
|
|
79
|
+
### Configuration
|
|
80
|
+
|
|
81
|
+
Add to your Django settings:
|
|
50
82
|
|
|
51
83
|
```python
|
|
52
84
|
INSTALLED_APPS = [
|
|
@@ -64,46 +96,75 @@ MIDDLEWARE = [
|
|
|
64
96
|
]
|
|
65
97
|
```
|
|
66
98
|
|
|
67
|
-
|
|
99
|
+
### URL Configuration
|
|
68
100
|
|
|
69
101
|
```python
|
|
70
102
|
from django.urls import path, include
|
|
71
103
|
|
|
72
104
|
urlpatterns = [
|
|
73
105
|
...
|
|
74
|
-
path("forum/", include("punkweb_bb.urls")),
|
|
106
|
+
path("forum/", include("punkweb_bb.urls")),
|
|
75
107
|
]
|
|
76
108
|
```
|
|
77
109
|
|
|
78
|
-
|
|
110
|
+
## Customization Options
|
|
79
111
|
|
|
80
|
-
|
|
81
|
-
|
|
112
|
+
PunkwebBB comes with a range of configurable settings:
|
|
113
|
+
|
|
114
|
+
```python
|
|
115
|
+
PUNKWEB_BB = {
|
|
116
|
+
"SITE_NAME": "Your Site Name",
|
|
117
|
+
"SITE_TITLE": "Your Forum Title",
|
|
118
|
+
"PARSER": "bbcode", # or "markdown"
|
|
119
|
+
"FAVICON": "path/to/favicon.ico",
|
|
120
|
+
"OG_IMAGE": None, # Full URL for Open Graph meta tags
|
|
121
|
+
"SHOUTBOX_ENABLED": True,
|
|
122
|
+
"SHOUTBOX_POLLING_ENABLED": True,
|
|
123
|
+
"SHOUTBOX_POLLING_INTERVAL": 30, # seconds
|
|
124
|
+
"DISCORD_WIDGET_ENABLED": False,
|
|
125
|
+
"DISCORD_WIDGET_THEME": "dark",
|
|
126
|
+
"DISCORD_SERVER_ID": None,
|
|
127
|
+
}
|
|
82
128
|
```
|
|
83
129
|
|
|
84
|
-
##
|
|
130
|
+
## Why Choose PunkwebBB?
|
|
85
131
|
|
|
86
|
-
|
|
132
|
+
### 1. Simplicity
|
|
87
133
|
|
|
88
|
-
|
|
134
|
+
The installation process is straightforward, and the default configuration works out of the box. You don't need to be a Django expert to get started.
|
|
89
135
|
|
|
90
|
-
|
|
136
|
+
### 2. Independence
|
|
91
137
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
138
|
+
Unlike many forum solutions that require multiple dependencies, PunkwebBB is self-contained. This means fewer potential points of failure and easier maintenance.
|
|
139
|
+
|
|
140
|
+
### 3. Modern Features
|
|
141
|
+
|
|
142
|
+
From real-time shoutbox to Discord integration, PunkwebBB includes features that modern communities expect.
|
|
143
|
+
|
|
144
|
+
### 4. Extensibility
|
|
145
|
+
|
|
146
|
+
While it's simple to set up, PunkwebBB is also highly customizable. You can extend its functionality to match your specific needs.
|
|
147
|
+
|
|
148
|
+
### 5. Performance
|
|
149
|
+
|
|
150
|
+
Built with efficiency in mind, PunkwebBB handles user interactions smoothly without unnecessary overhead.
|
|
151
|
+
|
|
152
|
+
## Real-World Applications
|
|
153
|
+
|
|
154
|
+
PunkwebBB is ideal for:
|
|
155
|
+
|
|
156
|
+
- Gaming communities
|
|
157
|
+
- Business support forums
|
|
158
|
+
- Educational platforms
|
|
159
|
+
- Technical discussion boards
|
|
160
|
+
- Fan communities
|
|
161
|
+
- Knowledge-sharing platforms
|
|
162
|
+
|
|
163
|
+
## Conclusion
|
|
164
|
+
|
|
165
|
+
PunkwebBB represents a perfect balance between simplicity and functionality. Whether you're building a small community forum or a large-scale discussion platform, it provides all the essential features while remaining easy to implement and maintain.
|
|
166
|
+
|
|
167
|
+
The project's focus on independence and straightforward installation makes it an excellent choice for developers who want to add forum functionality to their Django projects without the complexity of larger forum solutions.
|
|
107
168
|
|
|
108
169
|
## Testing
|
|
109
170
|
|
|
@@ -1,34 +1,51 @@
|
|
|
1
1
|
# PunkwebBB
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
## What is PunkwebBB?
|
|
4
|
+
|
|
5
|
+
PunkwebBB is a Django application that provides a complete forum board solution for Django websites. What sets it apart is its focus on simplicity and independence - it doesn't rely on other Django apps, making it incredibly straightforward to install and configure. The goal? To have a fully functional forum up and running in under a minute.
|
|
4
6
|
|
|
5
7
|
Check out [punkweb.net](https://punkweb.net/board/) for documentation, support and a live demonstration of the software.
|
|
6
8
|
|
|
7
|
-
##
|
|
9
|
+
## Requirements
|
|
10
|
+
|
|
11
|
+
- Python 3.9+
|
|
12
|
+
- Django 3.2+
|
|
13
|
+
|
|
14
|
+
It may work with older versions of Python and Django, but it has not been tested.
|
|
15
|
+
|
|
16
|
+
## Key Features
|
|
17
|
+
|
|
18
|
+
### 1. Modern Technology Stack
|
|
8
19
|
|
|
9
20
|
- [Django](https://www.djangoproject.com/)
|
|
10
21
|
- [HTMX](https://htmx.org/)
|
|
11
|
-
- [jQuery](https://jquery.com/)
|
|
12
22
|
- [bbcode](https://pypi.org/project/bbcode/)
|
|
13
23
|
- [Markdown](https://pypi.org/project/Markdown/)
|
|
14
24
|
- [SCEditor](https://www.sceditor.com/)
|
|
15
25
|
- [TinyMDE](https://github.com/jefago/tiny-markdown-editor)
|
|
16
26
|
- [PrismJS](https://prismjs.com/)
|
|
17
27
|
|
|
18
|
-
|
|
28
|
+
### 2. Core Functionality
|
|
19
29
|
|
|
20
|
-
-
|
|
21
|
-
-
|
|
30
|
+
- User registration and authentication
|
|
31
|
+
- Thread and post management
|
|
32
|
+
- Real-time shoutbox
|
|
33
|
+
- Discord integration
|
|
34
|
+
- BBCode and Markdown parsing
|
|
35
|
+
- Responsive design
|
|
36
|
+
- Admin controls and moderation tools
|
|
22
37
|
|
|
23
|
-
|
|
38
|
+
## Getting Started
|
|
24
39
|
|
|
25
|
-
|
|
40
|
+
### Installation
|
|
26
41
|
|
|
27
42
|
```bash
|
|
28
43
|
pip install punkweb-bb
|
|
29
44
|
```
|
|
30
45
|
|
|
31
|
-
|
|
46
|
+
### Configuration
|
|
47
|
+
|
|
48
|
+
Add to your Django settings:
|
|
32
49
|
|
|
33
50
|
```python
|
|
34
51
|
INSTALLED_APPS = [
|
|
@@ -46,46 +63,75 @@ MIDDLEWARE = [
|
|
|
46
63
|
]
|
|
47
64
|
```
|
|
48
65
|
|
|
49
|
-
|
|
66
|
+
### URL Configuration
|
|
50
67
|
|
|
51
68
|
```python
|
|
52
69
|
from django.urls import path, include
|
|
53
70
|
|
|
54
71
|
urlpatterns = [
|
|
55
72
|
...
|
|
56
|
-
path("forum/", include("punkweb_bb.urls")),
|
|
73
|
+
path("forum/", include("punkweb_bb.urls")),
|
|
57
74
|
]
|
|
58
75
|
```
|
|
59
76
|
|
|
60
|
-
|
|
77
|
+
## Customization Options
|
|
61
78
|
|
|
62
|
-
|
|
63
|
-
|
|
79
|
+
PunkwebBB comes with a range of configurable settings:
|
|
80
|
+
|
|
81
|
+
```python
|
|
82
|
+
PUNKWEB_BB = {
|
|
83
|
+
"SITE_NAME": "Your Site Name",
|
|
84
|
+
"SITE_TITLE": "Your Forum Title",
|
|
85
|
+
"PARSER": "bbcode", # or "markdown"
|
|
86
|
+
"FAVICON": "path/to/favicon.ico",
|
|
87
|
+
"OG_IMAGE": None, # Full URL for Open Graph meta tags
|
|
88
|
+
"SHOUTBOX_ENABLED": True,
|
|
89
|
+
"SHOUTBOX_POLLING_ENABLED": True,
|
|
90
|
+
"SHOUTBOX_POLLING_INTERVAL": 30, # seconds
|
|
91
|
+
"DISCORD_WIDGET_ENABLED": False,
|
|
92
|
+
"DISCORD_WIDGET_THEME": "dark",
|
|
93
|
+
"DISCORD_SERVER_ID": None,
|
|
94
|
+
}
|
|
64
95
|
```
|
|
65
96
|
|
|
66
|
-
##
|
|
97
|
+
## Why Choose PunkwebBB?
|
|
67
98
|
|
|
68
|
-
|
|
99
|
+
### 1. Simplicity
|
|
69
100
|
|
|
70
|
-
|
|
101
|
+
The installation process is straightforward, and the default configuration works out of the box. You don't need to be a Django expert to get started.
|
|
71
102
|
|
|
72
|
-
|
|
103
|
+
### 2. Independence
|
|
73
104
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
105
|
+
Unlike many forum solutions that require multiple dependencies, PunkwebBB is self-contained. This means fewer potential points of failure and easier maintenance.
|
|
106
|
+
|
|
107
|
+
### 3. Modern Features
|
|
108
|
+
|
|
109
|
+
From real-time shoutbox to Discord integration, PunkwebBB includes features that modern communities expect.
|
|
110
|
+
|
|
111
|
+
### 4. Extensibility
|
|
112
|
+
|
|
113
|
+
While it's simple to set up, PunkwebBB is also highly customizable. You can extend its functionality to match your specific needs.
|
|
114
|
+
|
|
115
|
+
### 5. Performance
|
|
116
|
+
|
|
117
|
+
Built with efficiency in mind, PunkwebBB handles user interactions smoothly without unnecessary overhead.
|
|
118
|
+
|
|
119
|
+
## Real-World Applications
|
|
120
|
+
|
|
121
|
+
PunkwebBB is ideal for:
|
|
122
|
+
|
|
123
|
+
- Gaming communities
|
|
124
|
+
- Business support forums
|
|
125
|
+
- Educational platforms
|
|
126
|
+
- Technical discussion boards
|
|
127
|
+
- Fan communities
|
|
128
|
+
- Knowledge-sharing platforms
|
|
129
|
+
|
|
130
|
+
## Conclusion
|
|
131
|
+
|
|
132
|
+
PunkwebBB represents a perfect balance between simplicity and functionality. Whether you're building a small community forum or a large-scale discussion platform, it provides all the essential features while remaining easy to implement and maintain.
|
|
133
|
+
|
|
134
|
+
The project's focus on independence and straightforward installation makes it an excellent choice for developers who want to add forum functionality to their Django projects without the complexity of larger forum solutions.
|
|
89
135
|
|
|
90
136
|
## Testing
|
|
91
137
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
import bbcode
|
|
2
2
|
|
|
3
|
+
from punkweb_bb.settings import ALLOWED_URL_SCHEMES
|
|
4
|
+
|
|
5
|
+
def safe_url(href):
|
|
6
|
+
href = (href or "").strip()
|
|
7
|
+
if not href:
|
|
8
|
+
return None
|
|
9
|
+
lower = href.lower()
|
|
10
|
+
return href if any(lower.startswith(s + ":") for s in ALLOWED_URL_SCHEMES) else None
|
|
3
11
|
|
|
4
12
|
def add_font_tag(parser):
|
|
5
13
|
def _render_font(name, value, options, parent, context):
|
|
@@ -40,19 +48,23 @@ def add_shadow_tag(parser):
|
|
|
40
48
|
|
|
41
49
|
parser.add_formatter("shadow", _render_shadow)
|
|
42
50
|
|
|
43
|
-
|
|
44
51
|
def add_url_tag(parser):
|
|
45
52
|
def _render_url(name, value, options, parent, context):
|
|
46
53
|
if "url" in options:
|
|
47
|
-
url = options["url"]
|
|
54
|
+
url = safe_url(options["url"])
|
|
55
|
+
if url is None:
|
|
56
|
+
return value
|
|
48
57
|
return f'<a href="{url}">{value}</a>'
|
|
49
|
-
|
|
58
|
+
|
|
59
|
+
url = safe_url(value)
|
|
60
|
+
if url is None:
|
|
61
|
+
return value
|
|
62
|
+
return f'<a href="{url}">{value}</a>'
|
|
50
63
|
|
|
51
64
|
parser.add_formatter(
|
|
52
65
|
"url", _render_url, replace_links=False, replace_cosmetic=False
|
|
53
66
|
)
|
|
54
67
|
|
|
55
|
-
|
|
56
68
|
def add_quote_tag(parser):
|
|
57
69
|
def _render_quote(name, value, options, parent, context):
|
|
58
70
|
if "quote" in options:
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Generated by Django 4.2.11 on 2024-10-08 21:21
|
|
2
|
+
|
|
3
|
+
from django.db import migrations, models
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class Migration(migrations.Migration):
|
|
7
|
+
|
|
8
|
+
dependencies = [
|
|
9
|
+
('punkweb_bb', '0007_boardprofile_bio'),
|
|
10
|
+
]
|
|
11
|
+
|
|
12
|
+
operations = [
|
|
13
|
+
migrations.AlterField(
|
|
14
|
+
model_name='groupstyle',
|
|
15
|
+
name='username_style',
|
|
16
|
+
field=models.TextField(help_text='BBCode style for the username. Use {USER} as a placeholder for the username. Example: [b]{USER}[/b]'),
|
|
17
|
+
),
|
|
18
|
+
]
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -195,9 +195,10 @@ class Post(UUIDPrimaryKeyMixin, TimestampMixin):
|
|
|
195
195
|
return thread_url
|
|
196
196
|
|
|
197
197
|
def save(self, *args, **kwargs):
|
|
198
|
-
if self.thread.is_closed:
|
|
199
|
-
raise ValidationError("Cannot add posts to a closed thread.")
|
|
200
198
|
if self._state.adding:
|
|
199
|
+
if self.thread.is_closed:
|
|
200
|
+
raise ValidationError("Cannot add posts to a closed thread.")
|
|
201
|
+
|
|
201
202
|
self.thread.last_post_created_at = timezone.now()
|
|
202
203
|
self.thread.save()
|
|
203
204
|
super().save(*args, **kwargs)
|
|
@@ -223,7 +224,9 @@ class GroupStyle(UUIDPrimaryKeyMixin, TimestampMixin):
|
|
|
223
224
|
default=0,
|
|
224
225
|
help_text="Highest priority is displayed",
|
|
225
226
|
)
|
|
226
|
-
username_style = models.TextField(
|
|
227
|
+
username_style = models.TextField(
|
|
228
|
+
help_text="BBCode style for the username. Use {USER} as a placeholder for the username. Example: [b]{USER}[/b]"
|
|
229
|
+
)
|
|
227
230
|
|
|
228
231
|
class Meta:
|
|
229
232
|
ordering = ("-priority",)
|
|
@@ -13,3 +13,5 @@ SHOUTBOX_POLLING_INTERVAL = PUNKWEB_BB.get("SHOUTBOX_POLLING_INTERVAL", 30)
|
|
|
13
13
|
DISCORD_WIDGET_ENABLED = PUNKWEB_BB.get("DISCORD_WIDGET_ENABLED", False)
|
|
14
14
|
DISCORD_WIDGET_THEME = PUNKWEB_BB.get("DISCORD_WIDGET_THEME", "dark")
|
|
15
15
|
DISCORD_SERVER_ID = PUNKWEB_BB.get("DISCORD_SERVER_ID", None)
|
|
16
|
+
# allow listing `javascript` will enable the weaponization of shoutbox bbcode.
|
|
17
|
+
ALLOWED_URL_SCHEMES = PUNKWEB_BB.get("ALLOWED_URL_SCHEMES", ["http", "https"])
|