RpNation's Official BBCode Implementation for Discourse
See: [https://www.rpnation.com]
The goal of this repo and plugin is to provide users with the BBCode suite that they have grown accustomed to when it comes to using our site before our migration to Discourse and make sure that old posts rebake correctly. Above in the chart is marked our status on each BBCode which will hopefully co-exist in tandom even with the markdown/htlm versions provided in the box experience by the Discourse Software.
🚧 = In progress or needs CSS.
⌨️ = BBCode also has an HTML equivalent.
🎉 = Powered by official Discourse Addon.
☠️ = Do not proceed. BBob, Markdown, and/or Discourse do not like this code. Unable to be rebaked.
General
- Refactor stylesheets to fit common discourse styling variables
- Headers & Sub-Headers
Ⓜ️ - Highlights
- Justified Text
- Blockquotes
- Sub Script ⌨️
- Super Script ⌨️
- Google Font Library
- HTML Comment⌨️
- Paragraph Indent
- Bold, Italic, Underline, Strikethrough
Ⓜ️ - Color
- Font Size
- Left, Center, Right
- Spoiler
- Line Break
- NOBR/No Line Break
- Inline Spoiler
- Dividers
- Image Float
- Fieldsets
- Sides
- Tabs
- Tables
- Center Block
- Background
- Border
- Scroll Box
- Div Box
- Anchors
- Rows & Columns
- Google Docs(PDF)
- Height Restrict
- Image
-
Challonge - Add as an iframe supported site in settings instead.
- Text Message
- Blocks
- Progress Bar
- Sticky Note
- Newspaper
- Checks
- Font Awesome Icons
- OOC
❤️ to Nikolay Kost (JiLiZART) for BBob GitHub - JiLiZART/BBob: ⚡️Blazing-fast js-bbcode-parser, bbcode js, that transforms and parses to AST with plugin support in pure javascript, no dependencies
Inside the discourse directory, run
d/boot_dev -p
# In one terminal:
d/rails s
# And in a separate terminal
d/ember-cli
To kill the container
d/shutdown_dev
For more, see the Discourse Docker Guide
The architecture of this project is for all BBCode Parser related code to be contained in /bbcode-src
, which would then be minified into a module and added to the appropriate location in /assets/javascripts
to be used by the discourse plugin proper. This is to work around the weird way discourse requires libraries to be loaded in. There will be a Rollup config and github action setup to automate minifying and moving the module.
Honestly, if anyone has a better solution, please send help.