Lemmy is structured in a way that backend (database, api, federation etc) and frontend (html, css, javascript) are completely separate. This makes it possible to create other frontends which can take the place of lemmy-ui. I have long been playing with the thought of having a Lemmy frontend that looks more like a traditional forum. Now I finally found some time to work on this, and get an initial proof of concept working.
To reduce the amount of work, the project uses HTML templates and CSS themes from phpBB, which are open source under GPLv2. This also has the advantage that many preexisting phpBB themes can be used for lemmyBB. It is written in Rust, because it allows for tight integration with the Lemmy API, and is generally a great language for webservers.
For now the funcionality is very basic, but nonetheless its already usable. You can:
- browse the local post listing
- browse comments
- login and logout
- create new posts and comments
To give it a try, run the following commands on your local computer, replacing lemmy.ml with your own instance:
git clone https://github.com/Nutomic/lemmyBB.git
LEMMY_INTERNAL_HOST=https://lemmy.ml cargo run
If there is any specific feature that you would like to see added, please open an issue. For now there arent any instructions for deploying lemmyBB to a server. If you would like to do that, please open an issue as well.
This post was made from lemmyBB.
In lemmy-ui, I have to build the tree from the flat comments manually. You could do the same, or create a “2-level” one which has the comment, and its optional parent. Then you could check for the parent in the handlebars template and do a quote-style thing.
I wouldn’t recommend actually inserting quoted comment text for comment replies: its a problem of displaying context only.
Displaying comments in nested form would look very bad, i dont want to do that.
Another problem is that phpBB forums are always organized into hierarchical categories (example). To make it work properly, such categorization will have to be added to Lemmy (optional, could be disabled for instances that use lemmy-ui).
I just mean only displaying the parent comment ( if one exists ) in a quote, it would still be flat. Example:
Thats a possibility, but it would get very verbose in case of a discussion with long comments. And then there would be cases like a user manually quoting something (so the same text might be quoted twice in a row), or having to exclude the automatic quote when the responded comment comes right before the current one.
I think this solution is preferable.