Discourse Basic Editor - Beginner friendly composer!

Are you going to make it work with other plugins like w.g. Image Annotation, BB markup, etc?

2 Likes

Okay let me clarify something: when I talk about “things not working” i just mean they dont get rendered in the wysiwyg input window. Everything still works in the final post. this editor is just a different way to create markdown at the moment. Its still markdown coming out at the end. From my perspective “html only” is the way to go in the future. Markdown, bbcode etc. is a thing of the past that delivers an overly complex user experience. But obviously I am not going to implement every single bbcode feature or custom plugin. Because I dont get any benefits from this. First and foremost I care about my use case. But I also care about simplifying the UX of Discourse for others as well. If you like markdown, bbcode and all these “tags” in your editor then maybe this is not the right thing for you.
I would also like this discussion to become more constructive. I would be glad to hear about the use cases and reasons why people want to use a wysiwyg editor instead of the current one. I am also interested to hear what benefits you expect from this and what goals you want to achieve?
Maybe that can lead us somewhere. “can you do all these random things? …(for free)” is not helpful.
Kind Regards,
Spirobel

5 Likes

Switching to HTML and not supporting markdown will make all posts created in HTML uneditable once your plugin is turned off. Is this correct?

1 Like

@spirobel although I personally don’t use your plugin I admire it’s functionality and salute you for your great effort!

Although I can agree on bbcode being a legacy syntax, the notion that markdown is a thing of the past is incorrect from my perspective - quite the opposite, the basic feature set is here to stay for a long time.

The main two reasons are;

  1. Format by typing - you can correctly format text simply by typing away which makes it easy to focus and type productively
  2. Readable even when not rendered - the basic markdown syntax is instinctively readable as raw text which is very handy for many reasons.

It is when you try to extend markdown features (images, tables etc.) I think it tends to falter and sometimes break down due to illegible syntax which is cumbersome to type.

In my view, the best editors offers a type of hybrid solution;

  • Basic syntax formatting renders inline while still rendering the syntax characters in edit mode.
  • Extended features (images, tables etc) should obviously also render when in edit mode, and perhaps not be represented by the the actual syntax characters on screen. Perhaps, dare I say, they should be considered as plugins and be stored in a format most fitting the data type.
4 Likes

Thank you very much for your comment!

I understand what you mean. But I still disagree. :slight_smile: In the long run powerusers are better served with shortcuts. For example there could be a shortcut for italics. So you could press the shortcut while still typing away. The shortcut might even be something like CTRL+* so its almost like using markdown.

Regarding 2. I can say that html is also readable because its always rendered (in the browser) and if you look at a piece of html in a texteditor you can also read it. Okay, markdown might look a bit more pretty, but only if you stick to very basic features and then it does not matter anyhow.

The hybrid solution is sadly not feasible. One of the reasons I drank the html only koolaid is because it allows me to focus on building a user interface instead of getting a phd in computer linguistics while debugging language parser bugs. The idea is to reduce the technical debt not add onto it.

In the end I can understand very well where you are coming from. I also read the scripture on markdown. But to me, the html only paradigm is more convincing for what I am about to do. I also realize there is no point in converting people that really like markdown. They should stick with the editor like it is now. But I think there is a different crowd that might be interested in going a different route. This plugin is also way more than just the wysiwyg editor. I have this vision to use discourse to build software that enables people to collectively edit structured data without needing to learn a markup language. If you look at big projects like wikipedia or wiktionary and all the formalities that are involved in contributing to those I see so much wasted potential. I want to change that. And if I want to change that, I need to take the collaborative features of discourse while throwing away this concept of needing a markup language to enter data into the system.
I understand why it was used in discourse in the first place and the reasons are really good. But my goals are different, so I also follow a different paradigm.

3 Likes

Great Plugin, @spirobel! This is what our very non-techy users need and I think that it will grease the wheels of our site markedly. Thank you for the time and effort that you have put into it. I’ve noticed a couple of issues that may be helpful

Clash with Shared Edits

I’ve just installed both this and Discourse Shared Edits. Somewhat unsurprisingly, they clash a little bit. But it looks like it might be in a fixable way. Would you consider looking at making them compatible? Personally, I see them as both being indispensable into the future.

What happens is that when I Shared Edit a post using the Basic Editor, the existing text in the post is wiped and can only be retrieved by rolling back the edit.

@mentions not giving suggestions

Discourse Basic Editor seems to break @mentioning partially. When I try to mention you here, I get this:
image
When I activate Basic Editor, the suggestions no longer occur. This is also the case if I click Advanced Editing.

4 Likes

yes. This is still very much work in progress. The mentions are on my list. I haven’t looked at shared editing yet, but its certainly possible to implement it. But possibly it will not happen by ensuring compatibility with the shared edits plugin. The change that basic editor introduces is quite significant, so it will most likely need to be a solution inside of the basic editor.

3 Likes

Have you spoken with @sam about it? He might be interested in the possibility and is sure to give sage advice.

1 Like

I can see where you want to go. If I understand correctly you want to create a kind of full Editor with much more advanced functionality using html to give a much more complete experience.

I for one would love to see a WYSIWYG editor that preserves the markdown output. I am less concerned about being able to type in and have it interpret markdown; normal shortcuts like e.g. Ctrl-B (bold) are fine, or the toolbar. But I do want to preserve later editability, interpretation outside of a rendering context, and exportability. And HTML in my experience is problematic for at least some of it not all of that.

I am curious what specifically you are wanting the editor to do that is not compatible with markdown output?

Also I’ll point out that Typora does a pretty good job of handling rendering of markdown in-line as well as shortcuts, and I don’t see why a formatting bar couldn’t also work (though it doesn’t seem to have one).

3 Likes

How do I move the photo add button.

move

2 Likes

Hey @ozkn!

I’m working in a way which just imageUpload will be necessary! So, you could follow the same lead. In your initializer you could modifyClass of component:b-editor changing setubBasicEditor function.

api.modifyClass("component:b-editor", {
   setupBasicEditor(){
       loadScript("/plugins/DiscourseBasicEditor/ckeditor.js").then(() => {
           ClassicEditor.create( document.querySelector( '#editor' ), {
                toolbar: [xxx],
                ...
           })
   }
});

Checkout this Configuration - CKEditor 5 Documentation for toolbar reference, in my case I’m justing using toolbar: [“imageUpload”]

Best regards

2 Likes

Hey guys! Maybe I could use a little help from you!

I’m working in a project which I use more than one composer, like this (in the beginning of the initial page, for users create topics by there, just like a main composer facebook-like).

Screen Shot 2021-01-15 at 12.27.20

According to this, I have been getting some issues when opening composer (maybe 'cause I’m already using in main page).

So, when I want to update a topic, I use composer controller to open model, but getting b-editor message.

Have you guys getting same problem in working with multiple composers ?

Best Regards,
Felipe

2 Likes

maybe you can deactivate the plugin for now. As I said, this is still work in progress. I will probably work more on it next month. I focus on learning mandarin at the moment lol. If you want you can link me to your github or send me your code so I can try and understand what you are trying to do.

4 Likes

Reporting a bug, it seems after activating the plugin, the management section was covered.

  • Test version: Discourse 2.7.4 stable
  • Test browser: chrome, firefox on both computer and mobile phone

Selection_750
Selection_751

3 Likes

Hello, will it support 3-rd party additional plugins-functions for standard editor like… ?

It will support ckeditor addons instead.

This is an ui simplification experiment of mine that will probably be put into a separate plugin. Feature creep is bad haha

I want to say something: without a source of monetization it does not make sense for me to write this code. I also tried to do closed source plugins:

But the the issue is that code gets shared among buyers, which means there would be a need for a constant stream of new clients that dont come through word of mouth which is hardly sustainable.

So I would be interested if you would be willing to pay for this and if you have any suggestions on how we can solve the code sharing among buyers problem.
If yes please tell me how much in the comments below. :smiley:

Would you be willing to pay for this?
  • yes
  • no

0 voters

thaaanks

1 Like

Does this your new WYSIWYG editor change the posts structure over standard Discourse? By another words if your editor will be disabled - does posts created with your editor will have any issues with editing by the standard editor?

Do you have a monetization plan how to raise a sum of money?

at the moment the editor generates markdown so we can use both editors next to each other without any issue. But the experience is not perfect and it always will be if we stick to markdown. Thats why the final solution will produce html. If this is a deal breaker for someone because they dont want to be locked in, there is an easy fix for this: just convert the html back to markdown.

I think there is no need to raise money up front. If I know there is a bunch of people that would be willing to pay for it and how much I will just finish the code. You can also reach out to me in private if you feel uncomfortable sharing budget related discussions in public.

3 Likes