BookStack icon indicating copy to clipboard operation
BookStack copied to clipboard

Add plugin/module support

Open bridgeyuwa opened this issue 9 years ago • 13 comments

I am suggesting an API for plugins/modules should be developed to encourage extention of bookstack functionality according to need by laravel developers

bridgeyuwa avatar Jun 15 '16 13:06 bridgeyuwa

What plugins are you suggesting?

patoroco avatar Feb 09 '17 16:02 patoroco

@patoroco I would like to have templates/skeletons for the doc. At the moment we just have one template.

Title Content

That's would be awesome to have the possibility to create custom fields so if you create a doc for an item in the cartegory A before to create the page you can chose a template.

hotgeart avatar Aug 04 '17 07:08 hotgeart

WEB api to Create documentation automatically based on other systems

foinus avatar May 01 '18 13:05 foinus

It would be great if you added extensibility / plug-in capabilities to BookStack so that dynamic content from other databases can be displayed. See for example confluence and documize.

EDIT: To be more clear, it should be easy for someone hosting a BookStack app to install/remove in-house developed plug-ins / user macros.

NickeZ avatar Jun 11 '18 12:06 NickeZ

I thought about adding support for up/downvoting aticles or books. Something like the system of GitHub.
Would be nice if i could just bundle it up in a plugin and throw in a folder or something along those lines.

MadddinTribleD avatar Jun 25 '18 15:06 MadddinTribleD

Or a plugin to auto sort pages/chapters. Or a plugin to allow the markdown editor to have a "helper" of sorts, something like SimpleMDE (https://simplemde.com/) where bulleted lists are much easier to auto type the next line.

n0nag0n avatar Jan 28 '19 19:01 n0nag0n

Or a plugin to allow users to mark favorite items (pages, books, etc).

DavidCardoso avatar Apr 03 '19 19:04 DavidCardoso

Just copying in my response from #1373 since it's relevant for anyone wanting an update on some sort of official plugin system.

Are plugins planned?

Short Answer: No

Long Answer: Kind of. The REST API item on the roadmap is really just intended to cover an externally accessible way to perform actions and fetch content from BookStack for the purpose of extension, connection and automation.

For interface-based stuff we'll have the theming system, which already exists but is undocumented and unstable. This allows you to make overrides on a selective, per-blade-view level basis. There's still a fair bit of view changes I want to do to before documenting this and I'm looking to make the application JS functionality more accessible. (Let me know if you want details of using this system if you have not already found it).

I think the REST API and theming system combined will introduce loads of possibilities for extension and customization.

In terms of offering the ability to add pre-packaged "plug-ins", that customize both UI and functionality, This is something I'm not really looking to implement/support right now for the following reasons:

  1. BookStack is intended to be pre-packaged, set-up and go application with much of it's core functionality ready to go with a sensible design. It's not really intended to be a "base platform" which people build upon using plugins. There are other, more mature, wiki systems that take the base+plugin approach and here is where I think BookStack differentiates.
  2. I don't really have the time or capability to support a "plug-in" ecosystem technically. The REST API and theme system are fairly well defined with focused scope whereas a "plug-in" system would be rather open to interpretation and likely spawn many further requests and support instances. In addition, I feel we'd also get an influx of issues from those wanting support for plugins created by others which again would be hard to support.
  3. A plug-in system would be another project-wide consideration that would slow down usual development.

Don't get me wrong though, I can totally see why people would want a plugin system but, for the above reasons, I don't think It's something the project can support at this stage of its life.

Once the REST API and theme system have bedded-in for a little while I'd imagine we'd look to integrate those bits a little further to empower development-minded folks that want to dig a little deeper but I'd be hesitant of brand that as a "Plugin-in" system as it'll open things up to my points above as it'll attract less-technically capable users.

I hope that provides some insight!

ssddanbrown avatar Apr 20 '19 12:04 ssddanbrown

Addons/plugins could be handy to delegate custom functionality to parties interested and keep the team focused on the core of bookstack. Support for added features using custom addons would be delegated to maintainers of said addon, and not the core team.

Use-Case

  • sublevels
  • webhooks
  • index
  • onthology
  • integrations with slack/teams/etc...
  • anything that is out of the core scope of bookstack

gchamon avatar Jun 16 '21 13:06 gchamon

Since my last message here was a couple of years ago now, I'll just confirm that since that last message there's now the:

  • Visual Theme System
    • Allows you to override any translation, view or icon.
  • Logical Theme System
    • Allows you to hook into specific events on the back-end and extend the core framework in various ways.
  • REST API (Found at /api/docs on your instance).

ssddanbrown avatar Jun 16 '21 19:06 ssddanbrown

is there any plan to add modules/plugins for the integration of external content?

For example, i want to add a diagram from diagrams.net Ofc, i can go to diagrams.net, then draw my diagram there, export it as .png image and import it again on bookstackapp. But this has several drawbacks.

  1. its extra effort
  2. its static (a png ist just a snapshot of a diagram), if i want to change just a single connection or form, i have to redo the whole export/import process again.

Other example, i want to add a table from onlyoffice, collabora, etc. Ofc i can just copy and paste the table and it could be converted into a html table, but again:

  1. its extra effort
  2. its static, it wipes all formulas and when i change the data of any cell, the other cells that initially referenced to that cell in any kind of formula, wont update. this renders tables more or less useless for most of their usecases.

I do understand that those examples are not a core feature of bookstackapp. and thats exactly WHY i think its good to support plugins, to make good additions possible without having to code them by yourself/your team.

timosystems avatar Jun 07 '23 14:06 timosystems

@timosystems

For example, i want to add a diagram from diagrams.net

Just to confirm, we have diagrams.net integration built-in, including editing of existing created drawings. Details here.

is there any plan to add modules/plugins for the integration of external content?

You can embed external content via the "Insert/Edit Media" toolbar button. This is largely iframe based (And you'd need to adjust BookStack security settings to allow certain hosts to be iframed into pages).

Other than that, not really as per my comments above but the methods of extension/customization listed in my previous comment may evolve and eventually be wrapped up into a plugin system. We already have more formalised examples of using the existing systems on our hacks page.

ssddanbrown avatar Jun 07 '23 17:06 ssddanbrown

It could be nice to have a module which allows the validation for a workflow project. If you have any purpose about this, I'm interested. :)

Grazouillis avatar May 12 '25 08:05 Grazouillis