BookStack icon indicating copy to clipboard operation
BookStack copied to clipboard

Visual Theme System: Public Files

Open ssddanbrown opened this issue 3 years ago • 1 comments

Within the visual theme system there's one major element missing: The ability to define files that can be put in public space to be references or used within other content. This could be JS libraries, CSS files, images, videos etc...

There are ways to hack around this adding custom endpoints or embedding content inline, but these are awkward extra steps. Ideally we'd provide an in-built way that can load static files from public web space.

Thoughts

  • Do we copy to public folder or symlink?
    • Copy would require some kind of existing file removal/update on original change.
    • How well cross-system (operating and file) supported are symlinks?
      • What about on container mounts?
      • Will we face challenges with webservers diving into symlinked folders?
  • When do we do this?
    • On request to file?
    • On some kind of "install" event?
    • On user action?

I'm thinking we symlink to public location upon request if there is not already a link. Just need to assess symlink usage. Will continue this with structural thoughts soon.

ssddanbrown avatar Dec 06 '22 16:12 ssddanbrown

You should insert on docs how to add custom css and js, as some people can't use the “Custom HTML Head Content” for many reasons, like there will be lots of admins which are not devs.

beckymarques avatar Sep 25 '24 20:09 beckymarques

Mechanism now added within #5405.

Think I was over-thinking this with attempting symlinks or whatever which would have just cause more confusion and problems. Added simple dynamic serving via app, with a little bit of added cache time, which should suit 95% of use-cases really.

ssddanbrown avatar Jan 14 '25 14:01 ssddanbrown