punkweb-bb 0.3.0__tar.gz → 0.4.0__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.
Files changed (334) hide show
  1. punkweb_bb-0.4.0/MANIFEST.in +4 -0
  2. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/PKG-INFO +8 -16
  3. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/README.md +7 -15
  4. punkweb_bb-0.4.0/punkweb_bb/__pycache__/admin.cpython-311.pyc +0 -0
  5. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/admin_forms.cpython-311.pyc +0 -0
  6. punkweb_bb-0.4.0/punkweb_bb/__pycache__/bbcode.cpython-311.pyc +0 -0
  7. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/forms.cpython-311.pyc +0 -0
  8. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/middleware.cpython-311.pyc +0 -0
  9. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/mixins.cpython-311.pyc +0 -0
  10. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/models.cpython-311.pyc +0 -0
  11. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/pagination.cpython-311.pyc +0 -0
  12. punkweb_bb-0.4.0/punkweb_bb/__pycache__/parsers.cpython-311.pyc +0 -0
  13. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/response.cpython-311.pyc +0 -0
  14. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/settings.cpython-311.pyc +0 -0
  15. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/signals.cpython-311.pyc +0 -0
  16. punkweb_bb-0.4.0/punkweb_bb/__pycache__/tags.cpython-311.pyc +0 -0
  17. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/tests.cpython-311.pyc +0 -0
  18. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/urls.cpython-311.pyc +0 -0
  19. punkweb_bb-0.4.0/punkweb_bb/__pycache__/utils.cpython-311.pyc +0 -0
  20. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/views.cpython-311.pyc +0 -0
  21. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/widgets.cpython-311.pyc +0 -0
  22. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/admin.py +0 -1
  23. punkweb_bb-0.4.0/punkweb_bb/bbcode.py +155 -0
  24. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/settings.py +1 -1
  25. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/punkweb-modal.css +2 -0
  26. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/punkweb.css +2 -2
  27. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/subcategory.css +4 -0
  28. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/editor/bbcode-editor-content.css +4 -5
  29. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/editor/bbcode-editor.js +0 -5
  30. punkweb_bb-0.4.0/punkweb_bb/static/punkweb_bb/editor/markdown-editor.js +49 -0
  31. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/bbcode.html +2 -3
  32. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/shoutbox/shout_list.html +2 -2
  33. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/widgets/markdown-editor.html +1 -0
  34. punkweb_bb-0.4.0/punkweb_bb/templatetags/__pycache__/render.cpython-311.pyc +0 -0
  35. punkweb_bb-0.4.0/punkweb_bb/templatetags/__pycache__/shoutbox_render.cpython-311.pyc +0 -0
  36. punkweb_bb-0.4.0/punkweb_bb/templatetags/render.py +35 -0
  37. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/utils.py +17 -19
  38. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/views.py +10 -19
  39. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb.egg-info/PKG-INFO +8 -16
  40. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb.egg-info/SOURCES.txt +3 -3
  41. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb.egg-info/requires.txt +2 -2
  42. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/setup.py +3 -3
  43. punkweb_bb-0.3.0/MANIFEST.in +0 -3
  44. punkweb_bb-0.3.0/punkweb_bb/__pycache__/admin.cpython-311.pyc +0 -0
  45. punkweb_bb-0.3.0/punkweb_bb/__pycache__/parsers.cpython-311.pyc +0 -0
  46. punkweb_bb-0.3.0/punkweb_bb/__pycache__/utils.cpython-311.pyc +0 -0
  47. punkweb_bb-0.3.0/punkweb_bb/bbcode_tags.py +0 -167
  48. punkweb_bb-0.3.0/punkweb_bb/parsers.py +0 -70
  49. punkweb_bb-0.3.0/punkweb_bb/static/punkweb_bb/editor/markdown-editor.js +0 -23
  50. punkweb_bb-0.3.0/punkweb_bb/templatetags/__pycache__/render.cpython-311.pyc +0 -0
  51. punkweb_bb-0.3.0/punkweb_bb/templatetags/__pycache__/shoutbox_render.cpython-311.pyc +0 -0
  52. punkweb_bb-0.3.0/punkweb_bb/templatetags/render.py +0 -48
  53. punkweb_bb-0.3.0/punkweb_bb/templatetags/shoutbox_render.py +0 -22
  54. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/LICENSE +0 -0
  55. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__init__.py +0 -0
  56. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/__init__.cpython-311.pyc +0 -0
  57. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/apps.cpython-311.pyc +0 -0
  58. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/bbcode_tags.cpython-311.pyc +0 -0
  59. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/context_processors.cpython-311.pyc +0 -0
  60. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/guests.cpython-311.pyc +0 -0
  61. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/__pycache__/sitemap.cpython-311.pyc +0 -0
  62. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/admin_forms.py +0 -0
  63. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/apps.py +0 -0
  64. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/context_processors.py +0 -0
  65. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/forms.py +0 -0
  66. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/guests.py +0 -0
  67. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/middleware.py +0 -0
  68. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/0001_initial.py +0 -0
  69. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/0002_thread_view_count.py +0 -0
  70. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/0003_alter_thread_options.py +0 -0
  71. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/0004_groupstyle.py +0 -0
  72. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/0005_alter_thread_options.py +0 -0
  73. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/0006_remove_boardprofile__signature_rendered_and_more.py +0 -0
  74. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/__init__.py +0 -0
  75. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/__pycache__/0001_initial.cpython-311.pyc +0 -0
  76. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/__pycache__/0002_thread_view_count.cpython-311.pyc +0 -0
  77. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/__pycache__/0003_alter_thread_options.cpython-311.pyc +0 -0
  78. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/__pycache__/0004_groupstyle.cpython-311.pyc +0 -0
  79. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/__pycache__/0005_alter_thread_options.cpython-311.pyc +0 -0
  80. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/__pycache__/0006_remove_boardprofile__signature_rendered_and_more.cpython-311.pyc +0 -0
  81. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/migrations/__pycache__/__init__.cpython-311.pyc +0 -0
  82. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/mixins.py +0 -0
  83. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/models.py +0 -0
  84. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/pagination.py +0 -0
  85. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/response.py +0 -0
  86. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/signals.py +0 -0
  87. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/category-form.css +0 -0
  88. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/defaults.css +2 -2
  89. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/index.css +0 -0
  90. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/login.css +0 -0
  91. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/members.css +0 -0
  92. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/post-form.css +0 -0
  93. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/profile.css +0 -0
  94. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/settings.css +0 -0
  95. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/shoutbox.css +0 -0
  96. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/subcategory-form.css +0 -0
  97. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/thread-form.css +0 -0
  98. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/thread.css +0 -0
  99. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/typography.css +0 -0
  100. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/css/variables.css +0 -0
  101. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/editor/bbcode-editor-tags.js +0 -0
  102. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/editor/bbcode-editor.css +0 -0
  103. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/favicon.ico +0 -0
  104. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/img/default-profile-image.png +0 -0
  105. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/js/punkweb-modal.js +0 -0
  106. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/js/shoutbox.js +0 -0
  107. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/htmx-1.9.4.min.js +0 -0
  108. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/jquery-3.7.0.min.js +0 -0
  109. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/open-color.css +0 -0
  110. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/prism.css +0 -0
  111. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/prism.js +0 -0
  112. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/README.md +0 -0
  113. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/formats/bbcode.js +0 -0
  114. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/formats/xhtml.js +0 -0
  115. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/icons/material.js +0 -0
  116. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/icons/monocons.js +0 -0
  117. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/jquery.sceditor.bbcode.js +0 -0
  118. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/jquery.sceditor.js +0 -0
  119. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/jquery.sceditor.xhtml.js +0 -0
  120. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/alternative-lists.js +0 -0
  121. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/autosave.js +0 -0
  122. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/autoyoutube.js +0 -0
  123. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/dragdrop.js +0 -0
  124. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/format.js +0 -0
  125. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/plaintext.js +0 -0
  126. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/undo.js +0 -0
  127. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/plugins/v1compat.js +0 -0
  128. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/sceditor.js +0 -0
  129. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/content/default.css +0 -0
  130. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/default.css +0 -0
  131. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/defaultdark.css +0 -0
  132. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/famfamfam.png +0 -0
  133. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/modern.css +0 -0
  134. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/office-toolbar.css +0 -0
  135. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/office.css +0 -0
  136. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/development/themes/square.css +0 -0
  137. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/alien.png +0 -0
  138. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/angel.png +0 -0
  139. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/angry.png +0 -0
  140. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/blink.png +0 -0
  141. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/blush.png +0 -0
  142. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/cheerful.png +0 -0
  143. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/cool.png +0 -0
  144. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/credits.txt +0 -0
  145. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/cwy.png +0 -0
  146. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/devil.png +0 -0
  147. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/dizzy.png +0 -0
  148. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/ermm.png +0 -0
  149. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/face.png +0 -0
  150. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/getlost.png +0 -0
  151. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/grin.png +0 -0
  152. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/happy.png +0 -0
  153. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/heart.png +0 -0
  154. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/kissing.png +0 -0
  155. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/laughing.png +0 -0
  156. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/ninja.png +0 -0
  157. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/pinch.png +0 -0
  158. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/pouty.png +0 -0
  159. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sad.png +0 -0
  160. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/shocked.png +0 -0
  161. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sick.png +0 -0
  162. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sideways.png +0 -0
  163. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/silly.png +0 -0
  164. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/sleeping.png +0 -0
  165. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/smile.png +0 -0
  166. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/tongue.png +0 -0
  167. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/unsure.png +0 -0
  168. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/w00t.png +0 -0
  169. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/wassat.png +0 -0
  170. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/whistling.png +0 -0
  171. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/wink.png +0 -0
  172. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/emoticons/wub.png +0 -0
  173. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/example.html +0 -0
  174. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ar.js +0 -0
  175. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ca.js +0 -0
  176. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/cn.js +0 -0
  177. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/cs.js +0 -0
  178. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/de.js +0 -0
  179. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/el.js +0 -0
  180. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/en-US.js +0 -0
  181. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/en.js +0 -0
  182. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/es.js +0 -0
  183. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/et.js +0 -0
  184. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/fa.js +0 -0
  185. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/fi.js +0 -0
  186. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/fr.js +0 -0
  187. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/gl.js +0 -0
  188. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/hu.js +0 -0
  189. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/id.js +0 -0
  190. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/it.js +0 -0
  191. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ja.js +0 -0
  192. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/lt.js +0 -0
  193. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/nb.js +0 -0
  194. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/nl.js +0 -0
  195. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/pl.js +0 -0
  196. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/pt-BR.js +0 -0
  197. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/pt.js +0 -0
  198. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/ru.js +0 -0
  199. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/sk.js +0 -0
  200. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/sv.js +0 -0
  201. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/template.js +0 -0
  202. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/tr.js +0 -0
  203. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/tw.js +0 -0
  204. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/uk.js +0 -0
  205. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/languages/vi.js +0 -0
  206. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/formats/bbcode.js +0 -0
  207. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/formats/xhtml.js +0 -0
  208. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/icons/material.js +0 -0
  209. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/icons/monocons.js +0 -0
  210. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/jquery.sceditor.bbcode.min.js +0 -0
  211. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/jquery.sceditor.min.js +0 -0
  212. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/jquery.sceditor.xhtml.min.js +0 -0
  213. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/alternative-lists.js +0 -0
  214. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/autosave.js +0 -0
  215. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/autoyoutube.js +0 -0
  216. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/dragdrop.js +0 -0
  217. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/format.js +0 -0
  218. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/plaintext.js +0 -0
  219. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/undo.js +0 -0
  220. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/plugins/v1compat.js +0 -0
  221. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/sceditor.min.js +0 -0
  222. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/content/default.min.css +0 -0
  223. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/default.min.css +0 -0
  224. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/defaultdark.min.css +0 -0
  225. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/famfamfam.png +0 -0
  226. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/modern.min.css +0 -0
  227. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office-toolbar.min.css +0 -0
  228. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/office.min.css +0 -0
  229. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/sceditor-3.2.0/minified/themes/square.min.css +0 -0
  230. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/.eslintrc.json +0 -0
  231. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/.gitignore +0 -0
  232. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/.prettierrc.json +0 -0
  233. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/LICENSE +0 -0
  234. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/README.md +0 -0
  235. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/babel.config.json +0 -0
  236. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/blank.html +0 -0
  237. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/demo.html +0 -0
  238. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.css +0 -0
  239. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.js +0 -0
  240. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.min.css +0 -0
  241. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.min.js +0 -0
  242. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/dist/tiny-mde.tiny.js +0 -0
  243. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/docs/_config.yml +0 -0
  244. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/docs/_layouts/default.html +0 -0
  245. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/docs/index.md +0 -0
  246. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/globals.d.ts +0 -0
  247. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/gulpfile.mjs +0 -0
  248. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/block.test.js +0 -0
  249. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/commandbar.test.js +0 -0
  250. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/inline.test.js +0 -0
  251. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/interaction.test.js +0 -0
  252. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/setup.test.js +0 -0
  253. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/config.js +0 -0
  254. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/server.js +0 -0
  255. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/setup.js +0 -0
  256. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest/util/test-helpers.js +0 -0
  257. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest-puppeteer.config.js +0 -0
  258. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/jest.config.js +0 -0
  259. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/package-lock.json +0 -0
  260. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/package.json +0 -0
  261. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/TinyMDE.js +0 -0
  262. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/TinyMDECommandBar.js +0 -0
  263. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/css/commandbar.css +0 -0
  264. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/css/editor.css +0 -0
  265. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/css/index.css +0 -0
  266. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/grammar.js +0 -0
  267. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/html/blank.html +0 -0
  268. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/html/demo.html +0 -0
  269. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/index.js +0 -0
  270. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/blockquote.svg +0 -0
  271. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/bold.svg +0 -0
  272. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/clear_formatting.svg +0 -0
  273. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/code.svg +0 -0
  274. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/h1.svg +0 -0
  275. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/h2.svg +0 -0
  276. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/hr.svg +0 -0
  277. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/image.svg +0 -0
  278. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/italic.svg +0 -0
  279. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/link.svg +0 -0
  280. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/ol.svg +0 -0
  281. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/strikethrough.svg +0 -0
  282. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/svg.js +0 -0
  283. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/svg/ul.svg +0 -0
  284. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/src/tiny.js +0 -0
  285. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/base.html +0 -0
  286. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/base_delete_modal.html +0 -0
  287. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/base_modal.html +0 -0
  288. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/category_create.html +0 -0
  289. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/category_update.html +0 -0
  290. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/index.html +0 -0
  291. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/login.html +0 -0
  292. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/members.html +0 -0
  293. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/partials/category_delete.html +0 -0
  294. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/partials/post_delete.html +0 -0
  295. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/partials/post_update.html +0 -0
  296. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/partials/shout_delete.html +0 -0
  297. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/partials/subcategory_delete.html +0 -0
  298. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/partials/thread_delete.html +0 -0
  299. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/partials/thread_move.html +0 -0
  300. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/profile.html +0 -0
  301. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/settings.html +0 -0
  302. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/shoutbox/shoutbox.html +0 -0
  303. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/signup.html +0 -0
  304. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/subcategory.html +0 -0
  305. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/subcategory_create.html +0 -0
  306. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/subcategory_update.html +0 -0
  307. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/thread.html +0 -0
  308. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/thread_create.html +0 -0
  309. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templates/punkweb_bb/thread_update.html +0 -0
  310. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__init__.py +0 -0
  311. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/__init__.cpython-311.pyc +0 -0
  312. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/can_delete.cpython-311.pyc +0 -0
  313. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/can_edit.cpython-311.pyc +0 -0
  314. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/can_post.cpython-311.pyc +0 -0
  315. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/humanize_count.cpython-311.pyc +0 -0
  316. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/humanize_int.cpython-311.pyc +0 -0
  317. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/markdown.cpython-311.pyc +0 -0
  318. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/shoutbox_bbcode.cpython-311.pyc +0 -0
  319. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/styled_group_name.cpython-311.pyc +0 -0
  320. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/styled_username.cpython-311.pyc +0 -0
  321. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/__pycache__/username.cpython-311.pyc +0 -0
  322. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/can_delete.py +0 -0
  323. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/can_edit.py +0 -0
  324. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/can_post.py +0 -0
  325. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/humanize_int.py +0 -0
  326. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/styled_group_name.py +0 -0
  327. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/templatetags/styled_username.py +0 -0
  328. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/tests.py +0 -0
  329. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/urls.py +0 -0
  330. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb/widgets.py +0 -0
  331. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb.egg-info/dependency_links.txt +0 -0
  332. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb.egg-info/not-zip-safe +0 -0
  333. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/punkweb_bb.egg-info/top_level.txt +0 -0
  334. {punkweb_bb-0.3.0 → punkweb_bb-0.4.0}/setup.cfg +0 -0
@@ -0,0 +1,4 @@
1
+ include LICENSE
2
+ include README.md
3
+ recursive-include punkweb_bb *
4
+ recursive-exclude punkweb_bb/static/punkweb_bb/vendor/tiny-markdown-editor/node_modules *
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: punkweb_bb
3
- Version: 0.3.0
3
+ Version: 0.4.0
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
@@ -20,17 +20,15 @@ License-File: LICENSE
20
20
 
21
21
  PunkwebBB is a Django application that provides a simple and modern forum board software for your Django website.
22
22
 
23
- This is the successor to [punkweb-boards](https://github.com/Punkweb/punkweb-boards).
24
-
25
23
  Check out [punkweb.net](https://punkweb.net/board/) for documentation, support and a live demonstration of the software.
26
24
 
27
25
  ## Built with
28
26
 
29
27
  - [Django](https://www.djangoproject.com/)
30
- - [django-precise-bbcode](https://github.com/ellmetha/django-precise-bbcode)
31
- - [Markdown](https://python-markdown.github.io/)
32
28
  - [HTMX](https://htmx.org/)
33
29
  - [jQuery](https://jquery.com/)
30
+ - [bbcode](https://pypi.org/project/bbcode/)
31
+ - [Markdown](https://pypi.org/project/Markdown/)
34
32
  - [SCEditor](https://www.sceditor.com/)
35
33
  - [TinyMDE](https://github.com/jefago/tiny-markdown-editor)
36
34
  - [PrismJS](https://prismjs.com/)
@@ -39,21 +37,18 @@ Check out [punkweb.net](https://punkweb.net/board/) for documentation, support a
39
37
 
40
38
  - Python 3.9+
41
39
  - Django 4.0+
42
- - django-precise-bbcode 1.2+
43
- - markdown 3.6+
44
- - Pillow
45
40
 
46
41
  It may work with older versions of Python and Django, but it has not been tested.
47
42
 
48
43
  ## BBCode or Markdown?
49
44
 
50
- PunkwebBB supports both BBCode and Markdown. You'll want to decide before installing which renderer you want to use, as switching between them will cause existing threads, posts, signatures, etc. to render incorrectly! Switching will not affect the database schema, but it will affect the content.
45
+ PunkwebBB supports both BBCode and Markdown. You'll want to decide before installing which parser you want to use, as switching between them will cause existing threads, posts, signatures, etc. to render incorrectly! Switching will not affect the database schema, but it will affect the content.
51
46
 
52
- BBCode is the default renderer, but you can switch to Markdown by setting the following in your Django settings module:
47
+ BBCode is the default parser, but you can switch to Markdown by setting the following in your Django settings module:
53
48
 
54
49
  ```python
55
50
  PUNKWEB_BB = {
56
- "RENDERER": "markdown",
51
+ "PARSER": "markdown",
57
52
  }
58
53
  ```
59
54
 
@@ -63,18 +58,15 @@ PUNKWEB_BB = {
63
58
  pip install punkweb-bb
64
59
  ```
65
60
 
66
- Add `precise_bbcode` and `punkweb_bb` to your `INSTALLED_APPS` in your Django settings module:
61
+ Add `punkweb_bb` to your `INSTALLED_APPS` in your Django settings module:
67
62
 
68
63
  ```python
69
64
  INSTALLED_APPS = [
70
65
  ...
71
- "precise_bbcode",
72
66
  "punkweb_bb",
73
67
  ]
74
68
  ```
75
69
 
76
- _Note_: `precise_bbcode` is required even if using the Markdown renderer! It must be installed before `punkweb_bb`.
77
-
78
70
  Add the following context processor to your `TEMPLATES` setting:
79
71
 
80
72
  ```python
@@ -116,7 +108,7 @@ These are the default settings for PunkwebBB, which can be overridden in your Dj
116
108
  PUNKWEB_BB = {
117
109
  "SITE_NAME": "PUNKWEB",
118
110
  "SITE_TITLE": "PunkwebBB",
119
- "RENDERER": "bbcode", # "bbcode" or "markdown"
111
+ "PARSER": "bbcode", # "bbcode" or "markdown"
120
112
  "FAVICON": "punkweb_bb/favicon.ico",
121
113
  "OG_IMAGE": None, # Used for Open Graph meta tags, must be a full URL!
122
114
  "SHOUTBOX_ENABLED": True,
@@ -2,17 +2,15 @@
2
2
 
3
3
  PunkwebBB is a Django application that provides a simple and modern forum board software for your Django website.
4
4
 
5
- This is the successor to [punkweb-boards](https://github.com/Punkweb/punkweb-boards).
6
-
7
5
  Check out [punkweb.net](https://punkweb.net/board/) for documentation, support and a live demonstration of the software.
8
6
 
9
7
  ## Built with
10
8
 
11
9
  - [Django](https://www.djangoproject.com/)
12
- - [django-precise-bbcode](https://github.com/ellmetha/django-precise-bbcode)
13
- - [Markdown](https://python-markdown.github.io/)
14
10
  - [HTMX](https://htmx.org/)
15
11
  - [jQuery](https://jquery.com/)
12
+ - [bbcode](https://pypi.org/project/bbcode/)
13
+ - [Markdown](https://pypi.org/project/Markdown/)
16
14
  - [SCEditor](https://www.sceditor.com/)
17
15
  - [TinyMDE](https://github.com/jefago/tiny-markdown-editor)
18
16
  - [PrismJS](https://prismjs.com/)
@@ -21,21 +19,18 @@ Check out [punkweb.net](https://punkweb.net/board/) for documentation, support a
21
19
 
22
20
  - Python 3.9+
23
21
  - Django 4.0+
24
- - django-precise-bbcode 1.2+
25
- - markdown 3.6+
26
- - Pillow
27
22
 
28
23
  It may work with older versions of Python and Django, but it has not been tested.
29
24
 
30
25
  ## BBCode or Markdown?
31
26
 
32
- PunkwebBB supports both BBCode and Markdown. You'll want to decide before installing which renderer you want to use, as switching between them will cause existing threads, posts, signatures, etc. to render incorrectly! Switching will not affect the database schema, but it will affect the content.
27
+ PunkwebBB supports both BBCode and Markdown. You'll want to decide before installing which parser you want to use, as switching between them will cause existing threads, posts, signatures, etc. to render incorrectly! Switching will not affect the database schema, but it will affect the content.
33
28
 
34
- BBCode is the default renderer, but you can switch to Markdown by setting the following in your Django settings module:
29
+ BBCode is the default parser, but you can switch to Markdown by setting the following in your Django settings module:
35
30
 
36
31
  ```python
37
32
  PUNKWEB_BB = {
38
- "RENDERER": "markdown",
33
+ "PARSER": "markdown",
39
34
  }
40
35
  ```
41
36
 
@@ -45,18 +40,15 @@ PUNKWEB_BB = {
45
40
  pip install punkweb-bb
46
41
  ```
47
42
 
48
- Add `precise_bbcode` and `punkweb_bb` to your `INSTALLED_APPS` in your Django settings module:
43
+ Add `punkweb_bb` to your `INSTALLED_APPS` in your Django settings module:
49
44
 
50
45
  ```python
51
46
  INSTALLED_APPS = [
52
47
  ...
53
- "precise_bbcode",
54
48
  "punkweb_bb",
55
49
  ]
56
50
  ```
57
51
 
58
- _Note_: `precise_bbcode` is required even if using the Markdown renderer! It must be installed before `punkweb_bb`.
59
-
60
52
  Add the following context processor to your `TEMPLATES` setting:
61
53
 
62
54
  ```python
@@ -98,7 +90,7 @@ These are the default settings for PunkwebBB, which can be overridden in your Dj
98
90
  PUNKWEB_BB = {
99
91
  "SITE_NAME": "PUNKWEB",
100
92
  "SITE_TITLE": "PunkwebBB",
101
- "RENDERER": "bbcode", # "bbcode" or "markdown"
93
+ "PARSER": "bbcode", # "bbcode" or "markdown"
102
94
  "FAVICON": "punkweb_bb/favicon.ico",
103
95
  "OG_IMAGE": None, # Used for Open Graph meta tags, must be a full URL!
104
96
  "SHOUTBOX_ENABLED": True,
@@ -1,5 +1,4 @@
1
1
  from django.contrib import admin
2
- from django.utils.safestring import mark_safe
3
2
 
4
3
  from punkweb_bb.admin_forms import (
5
4
  BoardProfileAdminModelForm,
@@ -0,0 +1,155 @@
1
+ import bbcode
2
+
3
+
4
+ def render_color(name, value, options, parent, context):
5
+ if "color" in options:
6
+ color = options["color"].strip()
7
+ return f'<span style="color: {color}">{value}</span>'
8
+ return value
9
+
10
+
11
+ def render_shadow(name, value, options, parent, context):
12
+ if "shadow" in options:
13
+ shadow = options["shadow"].strip()
14
+ return f'<span id="bbcode-shadow" style="text-shadow: 0px 0px 1em {shadow}">{value}</span>'
15
+ return value
16
+
17
+
18
+ def render_font(name, value, options, parent, context):
19
+ if "font" in options:
20
+ font = options["font"].strip()
21
+ return f'<span style="font-family:{font};">{value}</span>'
22
+ return value
23
+
24
+
25
+ def render_quote(name, value, options, parent, context):
26
+ if "quote" in options:
27
+ return f'<blockquote><cite>{options["quote"]} said: </cite>{value}</blockquote>'
28
+ return f"<blockquote>{value}</blockquote>"
29
+
30
+
31
+ def render_code(name, value, options, parent, context):
32
+ if "code" in options:
33
+ language = options["code"].strip()
34
+ return f'<pre><code class="language-{language}">{value}</code></pre>'
35
+ return f"<pre><code>{value}</code></pre>"
36
+
37
+
38
+ def render_img(name, value, options, parent, context):
39
+ if "width" in options:
40
+ width = options["width"]
41
+ if "height" in options:
42
+ height = options["height"]
43
+
44
+ if "width" in options and "height" in options:
45
+ return f'<img src="{value}" alt="{value}" width="{width}" height="{height}" />'
46
+ elif "width" in options:
47
+ return f'<img src="{value}" alt="{value}" width="{width}" />'
48
+ elif "height" in options:
49
+ return f'<img src="{value}" alt="{value}" height="{height}" />'
50
+
51
+ return f'<img src="{value}" alt="{value}" />'
52
+
53
+
54
+ def render_url(name, value, options, parent, context):
55
+ if "url" in options:
56
+ url = options["url"]
57
+ return f'<a href="{url}">{value}</a>'
58
+ return f'<a href="{value}">{value}</a>'
59
+
60
+
61
+ def render_size(name, value, options, parent, context):
62
+ if "size" in options:
63
+ size = options["size"].strip()
64
+ return f'<font size="{size}">{value}</font>'
65
+ return value
66
+
67
+
68
+ def init_default_tags(parser):
69
+ parser.add_simple_formatter("b", "<strong>%(value)s</strong>")
70
+ parser.add_simple_formatter("i", "<em>%(value)s</em>")
71
+ parser.add_simple_formatter("u", "<u>%(value)s</u>")
72
+ parser.add_simple_formatter("s", "<s>%(value)s</s>")
73
+ parser.add_simple_formatter("sub", "<sub>%(value)s</sub>")
74
+ parser.add_simple_formatter("sup", "<sup>%(value)s</sup>")
75
+ parser.add_simple_formatter("escape", "%(value)s", render_embedded=False)
76
+
77
+ parser.add_formatter("font", render_font)
78
+ parser.add_formatter("color", render_color)
79
+ parser.add_formatter("shadow", render_shadow)
80
+ parser.add_formatter("url", render_url, replace_links=False, replace_cosmetic=False)
81
+
82
+
83
+ _parser = None
84
+ _shoutbox_parser = None
85
+
86
+
87
+ def get_parser():
88
+ global _parser
89
+ if _parser is None:
90
+ _parser = bbcode.Parser(install_defaults=False)
91
+ init_default_tags(_parser)
92
+
93
+ _parser.add_simple_formatter("hr", "<hr />", standalone=True)
94
+ _parser.add_simple_formatter(
95
+ "center", '<div style="text-align: center">%(value)s</div>'
96
+ )
97
+ _parser.add_simple_formatter(
98
+ "left", '<div style="text-align: left">%(value)s</div>'
99
+ )
100
+ _parser.add_simple_formatter(
101
+ "right", '<div style="text-align: right">%(value)s</div>'
102
+ )
103
+ _parser.add_simple_formatter(
104
+ "ol",
105
+ "<ol>%(value)s</ol>",
106
+ transform_newlines=False,
107
+ strip=True,
108
+ swallow_trailing_newline=True,
109
+ )
110
+ _parser.add_simple_formatter(
111
+ "ul",
112
+ "<ul>%(value)s</ul>",
113
+ transform_newlines=False,
114
+ strip=True,
115
+ swallow_trailing_newline=True,
116
+ )
117
+ _parser.add_simple_formatter(
118
+ "li",
119
+ "<li>%(value)s</li>",
120
+ newline_closes=True,
121
+ transform_newlines=False,
122
+ same_tag_closes=True,
123
+ strip=True,
124
+ )
125
+
126
+ _parser.add_formatter("size", render_size)
127
+ _parser.add_formatter(
128
+ "img",
129
+ render_img,
130
+ render_embedded=False,
131
+ replace_links=False,
132
+ replace_cosmetic=False,
133
+ )
134
+ _parser.add_formatter(
135
+ "quote", render_quote, strip=True, swallow_trailing_newline=True
136
+ )
137
+ _parser.add_formatter(
138
+ "code",
139
+ render_code,
140
+ render_embedded=False,
141
+ transform_newlines=False,
142
+ replace_links=False,
143
+ replace_cosmetic=False,
144
+ strip=True,
145
+ swallow_trailing_newline=True,
146
+ )
147
+ return _parser
148
+
149
+
150
+ def get_shoutbox_parser():
151
+ global _shoutbox_parser
152
+ if _shoutbox_parser is None:
153
+ _shoutbox_parser = bbcode.Parser(install_defaults=False)
154
+ init_default_tags(_shoutbox_parser)
155
+ return _shoutbox_parser
@@ -4,7 +4,7 @@ PUNKWEB_BB = getattr(settings, "PUNKWEB_BB", {})
4
4
 
5
5
  SITE_NAME = PUNKWEB_BB.get("SITE_NAME", "PUNKWEB")
6
6
  SITE_TITLE = PUNKWEB_BB.get("SITE_TITLE", "PunkwebBB")
7
- RENDERER = PUNKWEB_BB.get("RENDERER", "bbcode")
7
+ PARSER = PUNKWEB_BB.get("PARSER", "bbcode")
8
8
  FAVICON = PUNKWEB_BB.get("FAVICON", "punkweb_bb/favicon.ico")
9
9
  OG_IMAGE = PUNKWEB_BB.get("OG_IMAGE", None)
10
10
  SHOUTBOX_ENABLED = PUNKWEB_BB.get("SHOUTBOX_ENABLED", True)
@@ -4,6 +4,7 @@
4
4
  display: flex;
5
5
  flex-direction: column;
6
6
  justify-content: center;
7
+ padding: 2rem;
7
8
 
8
9
  position: fixed;
9
10
  top: 0;
@@ -28,6 +29,7 @@
28
29
  border-radius: 0.25rem;
29
30
  box-shadow: 0 0.5rem 1rem 0 rgba(0, 0, 0, 0.25);
30
31
  background-color: white;
32
+ overflow: auto;
31
33
  position: relative;
32
34
  width: fit-content;
33
35
 
@@ -181,7 +181,7 @@ blockquote cite {
181
181
  border-bottom: 1px solid var(--border);
182
182
  color: var(--table-header-text);
183
183
  font-size: 0.875rem;
184
- font-weight: 500;
184
+ font-weight: 700;
185
185
  padding: 0.75rem 1rem;
186
186
  text-align: left;
187
187
  }
@@ -664,7 +664,7 @@ blockquote cite {
664
664
  .pw-input-label {
665
665
  display: block;
666
666
  font-size: 0.875rem;
667
- font-weight: 500;
667
+ font-weight: 700;
668
668
  }
669
669
 
670
670
  /** Card **/
@@ -11,6 +11,10 @@
11
11
  gap: 1rem;
12
12
  }
13
13
 
14
+ .subcategory__header__name h1 {
15
+ margin: 0;
16
+ }
17
+
14
18
  .subcategory__header__actions {
15
19
  align-items: center;
16
20
  display: flex;
@@ -8,12 +8,16 @@ body {
8
8
  line-height: 1.5;
9
9
  overflow: visible;
10
10
  }
11
+
11
12
  html {
12
13
  height: 100%;
13
14
  }
14
15
 
15
16
  * {
16
17
  box-sizing: border-box;
18
+ }
19
+
20
+ body {
17
21
  margin: 0;
18
22
  padding: 0;
19
23
  }
@@ -56,11 +60,6 @@ a {
56
60
  text-decoration: none;
57
61
  }
58
62
 
59
- ul,
60
- ol {
61
- padding-inline-start: 2rem;
62
- }
63
-
64
63
  code {
65
64
  display: block;
66
65
  background: #f5f2f0;
@@ -1,12 +1,7 @@
1
1
  $(function () {
2
2
  $(document).ready(function () {
3
3
  $(".bbcode-editor").sceditor({
4
- emoticonsCompat: true,
5
4
  emoticonsEnabled: false,
6
- emoticonsRoot: "/media/precise_bbcode/smilies/",
7
- emoticons: {
8
- dropdown: {},
9
- },
10
5
  format: "bbcode",
11
6
  icons: "material",
12
7
  style: "/static/punkweb_bb/editor/bbcode-editor-content.css",
@@ -0,0 +1,49 @@
1
+ function initMarkdownEditor(containerElement) {
2
+ var editorElement = containerElement.querySelector(".markdown-editor");
3
+ var toolbarElement = containerElement.querySelector(
4
+ "#markdown-editor-toolbar"
5
+ );
6
+
7
+ var editor = null;
8
+
9
+ if (!containerElement.querySelector(".TinyMDE")) {
10
+ editor = new TinyMDE.Editor({
11
+ textarea: editorElement,
12
+ });
13
+ }
14
+
15
+ if (editor && !toolbarElement.querySelector(".TMCommandBar")) {
16
+ var toolbar = new TinyMDE.CommandBar({
17
+ element: toolbarElement,
18
+ editor: editor,
19
+ commands: [
20
+ "bold",
21
+ "italic",
22
+ "strikethrough",
23
+ "|",
24
+ "h1",
25
+ "h2",
26
+ "|",
27
+ "ul",
28
+ "ol",
29
+ "|",
30
+ "blockquote",
31
+ "code",
32
+ "insertLink",
33
+ "insertImage",
34
+ "hr",
35
+ ],
36
+ });
37
+ }
38
+ }
39
+
40
+ $(function () {
41
+ $(document).ready(function () {
42
+ var editorElements = document.querySelectorAll(
43
+ ".markdown-editor-container"
44
+ );
45
+ editorElements.forEach((element) => {
46
+ initMarkdownEditor(element);
47
+ });
48
+ });
49
+ });
@@ -1,6 +1,5 @@
1
1
  {% extends "punkweb_bb/base.html" %}
2
-
3
- {% load bbcode_tags %}
2
+ {% load render %}
4
3
 
5
4
  {% block content %}
6
5
 
@@ -11,7 +10,7 @@
11
10
  <div>
12
11
  <h4>{{ code.0 }}</h4>
13
12
  <pre>{{ code.1 }}</pre>
14
- {% bbcode code.1 %}
13
+ {{ code.1|render }}
15
14
  </div>
16
15
  {% endfor %}
17
16
  </div>
@@ -1,11 +1,11 @@
1
- {% load shoutbox_render styled_username can_delete %}
1
+ {% load render styled_username can_delete %}
2
2
 
3
3
  {% for shout in shouts %}
4
4
  <div class="shoutbox__shout">
5
5
  <div class="shoutbox__shout__content">
6
6
  <time datetime="{{shout.created_at|date:'c'}}">{{shout.created_at | date:'g:i A'}}</time>
7
7
  <span><a href="{% url 'punkweb_bb:profile' shout.user.id %}">{{shout.user|styled_username}}</a>: </span>
8
- <span>{{ shout.content|shoutbox_render }}</span>
8
+ <span>{{ shout.content|render_shout }}</span>
9
9
  </div>
10
10
  {% if shout|can_delete:request.user %}
11
11
  <div class="shoutbox__shout__actions">
@@ -1,3 +1,4 @@
1
1
  <div class="markdown-editor-container">
2
+ <div id="markdown-editor-toolbar"></div>
2
3
  {% include "django/forms/widgets/textarea.html" %}
3
4
  </div>
@@ -0,0 +1,35 @@
1
+ import html
2
+
3
+ import markdown as md
4
+ from django import template
5
+ from django.template.defaultfilters import stringfilter
6
+ from django.utils.safestring import mark_safe
7
+
8
+ from punkweb_bb.bbcode import get_parser, get_shoutbox_parser
9
+ from punkweb_bb.settings import PARSER
10
+
11
+ register = template.Library()
12
+
13
+
14
+ @register.filter(is_safe=True)
15
+ @stringfilter
16
+ def render(value):
17
+ if PARSER == "bbcode":
18
+ parser = get_parser()
19
+ rendered = parser.format(value)
20
+ return mark_safe(rendered)
21
+ elif PARSER == "markdown":
22
+ escaped = html.escape(value)
23
+ rendered = md.markdown(escaped, extensions=["markdown.extensions.fenced_code"])
24
+ return mark_safe(rendered)
25
+ return value
26
+
27
+
28
+ @register.filter(is_safe=True)
29
+ @stringfilter
30
+ def render_shout(value):
31
+ if PARSER == "bbcode":
32
+ parser = get_shoutbox_parser()
33
+ rendered = parser.format(value)
34
+ return mark_safe(rendered)
35
+ return value
@@ -1,19 +1,17 @@
1
+ from django.forms import Textarea
1
2
  from django.utils.text import slugify
2
- from precise_bbcode.bbcode import get_parser
3
- from punkweb_bb.settings import RENDERER
4
3
 
4
+ from punkweb_bb.bbcode import get_parser
5
+ from punkweb_bb.settings import PARSER
6
+ from punkweb_bb.widgets import BBCodeEditorWidget, MarkdownEditorWidget
5
7
 
6
- def get_editor_widget():
7
- if RENDERER == "bbcode":
8
- from punkweb_bb.widgets import BBCodeEditorWidget
9
8
 
9
+ def get_editor_widget():
10
+ if PARSER == "bbcode":
10
11
  return BBCodeEditorWidget()
11
- elif RENDERER == "markdown":
12
- from punkweb_bb.widgets import MarkdownEditorWidget
13
-
12
+ elif PARSER == "markdown":
14
13
  return MarkdownEditorWidget()
15
- else:
16
- raise ValueError("Invalid renderer")
14
+ return Textarea(attrs={"class": "pw-input"})
17
15
 
18
16
 
19
17
  def get_unique_slug(model, field):
@@ -47,17 +45,17 @@ def get_styled_username(user):
47
45
  if group:
48
46
  parser = get_parser()
49
47
  username_style = group.style.username_style
50
- styled_username = parser.render(username_style.replace("{USER}", user.username))
51
- return styled_username
52
- else:
53
- return user.username
48
+ rendered = parser.format(username_style.replace("{USER}", user.username))
49
+ return rendered
50
+
51
+ return user.username
54
52
 
55
53
 
56
54
  def get_styled_group_name(group):
57
- if group.style is None:
58
- return group.name
59
- else:
55
+ if group.style is not None:
60
56
  parser = get_parser()
61
57
  username_style = group.style.username_style
62
- styled_group_name = parser.render(username_style.replace("{USER}", group.name))
63
- return styled_group_name
58
+ rendered = parser.format(username_style.replace("{USER}", group.name))
59
+ return rendered
60
+
61
+ return group.name