dendronhq / dendron

The personal knowledge management (PKM) tool that grows as you do!
https://wiki.dendron.so
Apache License 2.0
6.65k stars 252 forks source link

Add optional remark plugins to Dendron #507

Open Orcomp opened 3 years ago

Orcomp commented 3 years ago

Please Select if your Request is Either something new or an Enhancement

Please select the area your request applys to. (Multiple selections are Possible)

Is your feature request related to a problem? Please describe

Add extra features to markdown by allowing users to optionally enable or disable remark plugins.

The 2 plugins I am most interested in are remark-directive and remark-sectionize.

We could expand the scope to allow users to enable or disable any remark plugin they choose.

Describe the solution you'd like

Depending on the what is easiest to implement we could add new options to dendron.yml

Toggle options

(For the scenario where it is easier to only allow a handful of plugins to be enabled.)

New argument list

(For the scenario where it is easier to allow any plugin to be enabled.)

remarkPlugins:
    - remark-directive
    - remark-sectionize

Describe alternatives you've considered

Using asciidoc instead of markdown.

asciidoc provides so much more flexibility than markdown and their markup is a lot more mature and consistent. However it seems markdown has the momentum and we will be "stuck" with it for the foreseeable future.

Being able to use remark plugins will get us 95% of the way there. (In my use case, remark-directive and remark-sectionize gets me 80% of the way there. With another 2 or 3 plugins I can get to 95%)

Additional context

Enabling remark plugins will be at the users own risk. Enabling some plugins could cause conflicts with other Dendron features. (I can't see anything obvious yet, but it is something we need to keep in mind).

The two plugins I am interested in, provide a lot more functionality to export expressive HTML pages that can be easily modified with CSS.

kevinslin commented 3 years ago

Thanks for the issue. It'll be pretty simple to add them into our existing remark tool chain. Will leave this as a good first task and do this in a few weeks if no one claims it

Orcomp commented 3 years ago

Are you happy to just hard code them in, or do you want to add extra functionality to have these plugins disabled by default? (and allow users to add them if required in their dendron.yml file)

kevinslin commented 3 years ago

We've been making these features as an opt-in using the config traditionally. eg. mermaid

kevinslin commented 3 years ago

relevant code here

Orcomp commented 3 years ago

Excellent thanks. Will give it try

kevinslin commented 3 years ago

Awesome. One thing to note is that we’re not using the new version of micromark yet so we’ll be using the previous version of the plug-in

On Mon, Mar 1, 2021 at 4:10 PM Orcomp notifications@github.com wrote:

Excellent thanks. Will give it try

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/dendronhq/dendron/issues/507#issuecomment-788418904, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADD52KUZYO32GW324CS73TTBQUHZANCNFSM4YHL2FVQ .

kevinslin commented 3 years ago

feel free to post in the #dev channel if you have questions

On Mon, Mar 1, 2021 at 4:12 PM Kevin Lin kevinslin8@gmail.com wrote:

Awesome. One thing to note is that we’re not using the new version of micromark yet so we’ll be using the previous version of the plug-in

On Mon, Mar 1, 2021 at 4:10 PM Orcomp notifications@github.com wrote:

Excellent thanks. Will give it try

— You are receiving this because you commented.

Reply to this email directly, view it on GitHub https://github.com/dendronhq/dendron/issues/507#issuecomment-788418904, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADD52KUZYO32GW324CS73TTBQUHZANCNFSM4YHL2FVQ .

kpathakota commented 3 years ago

@Orcomp - are you still investigating this one or would you want someone else to pick this up?

Orcomp commented 3 years ago

@Orcomp - are you still investigating this one or would you want someone else to pick this up?

@kpathakota , remark-directive is using the latest version of remark based on micromark, which is incompatible with the version used in dendron.

So we used remark-containers instead. We tried adding remark-sectionize, but this interfered too much with the other plugins, so we decided not to proceed.

So in summary we installed remark-containers, and will replace it with remark-directive once dendron upgrades to the latest version of remark.