New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make it available as Docker image #3
Comments
I agree please please provide a Docker container. It would be much appreciated. I tried setting up mdshow on both Arch Linux and Debian and both had lots of problems with wrong commands and other errors that I have not resolved so far. The setup does not work correctly on Debian. Also I really like this tool, I too believe in quickly making beautiful presentations in a single markdown file. So thank you. |
Yes, the docker image has been on my mind in the past in order to alleviate some of the installation troubles. However, Docker adds other troubles ;-) One trouble is that Docker creates files as root by default, another is that inotify doesn't work and so watching file changes becomes a little tricky. Not sure how gulp deals with it. Before you start contributing, take a look at my work at the markdeck project. There, I built a docker-compose solution to handle the root issue. |
With regard to the two specific concerns, I'd say
I will give this a try, but the next conference where I need slides is only 8 days ahead, so I won't be able to spend time is this before that. |
What lasts long ... ;-) I've now managed to build an initial Docker image which works pretty well. I only had to replace yarn with npm because I ran into issues when running Here is how you can use this:
It runs as your current user, all created files are owned by yourself and auto-refresh does work as well. You can see the source of this at https://gitlab.lakedrops.com/docker/mdshow Give it a try and let me know what you think. |
@jceb I have made some more improvements, so that it now really runs as the current user. Also added more packages that are required by Puppeteer for PDF creation, see https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#chrome-headless-doesnt-launch-on-unix Also added support for a custom theme which is recognized when the env variable MDSHOW_THEME_PATH is set. Some remaining issues:
What should really be deleted is Last but not least, the PDF creation fails because localhost:3000 is not accessible inside the container under this address. I need to find out the IP of the host and then use that instead of localhost. If all that is fixed, I'm happy to turn that into a PR so that it finally lives again in this repository. Do you want to help me getting this across the finish line? |
Great work, thank you a lot! Looking forward to the PR. |
@jceb it's now working completely. The PDF task failed before because of missing sandbox support for chrome inside the container and as that is no longer supported anyways, I've added a new argument to the task which turns that off deliberately. Inside a container there is no security issue with that anyways. Submitted the PR #4 and I'm looking forward to what you're saying. |
@jceb are you still interested in supporting this? If not, I'd be happy to fork the project and maintain that feature myself. I don't mind either way, I just want to progress dynamically as we see a lot of benefit in this. |
I'm all for it. I'll merge it once we've worked through the things that I remarked in https://github.com/jceb/mdshow/pull/4/files |
I'm not seeing any comments in the PR, can you please check again? |
The comments are in the code |
Sorry, I'm not seeing any |
@jurgenhaas I'm sorry that the PR never worked out. In the meantime, I've started a new approach called slidesdown at https://github.com/jceb/slidesdown. The goal is to create a lightweight, ideally zero installation markdown presentation tool with a optional local dependency to support fast hot reloading of presentations. The local component isn't there yet but you might find it useful regardless. |
Thanks @jceb for getting back to me on this after such a long period of time ;-) We've since built our own solution based on your original one. Out main focus was on creating a docker image, which can easily be used by everyone in our team without having to setup anything - other than docker ofcourse. It's public as well and can be used by everyone, you can find it at https://gitlab.lakedrops.com:docker/mdshow |
And the results are often published as static HTML files on our website, e.g. at https://www.lakedrops.com/en/slides is an overview where you can click through to each of the slide documents. |
Sweet, thanks for sharing! I'm glad it is useful to you. Did you improve the hot reloading implementation? That's what got me eventually. The new solution is based on vite and has great potential to be way faster than mdshow. Furthermore, I got rid of pandoc's own Since you publish the presentations you could give slidesdown a spin for a non-publishing workflow. It provides a zero setup loader that you can point to your markdown files: https://slidesdown.e-jc.de/loader.html. |
Looks nice. For us, we stay with what we have for the time being, as we'Re super busy with stuff and tend to follow the idea "don't change it if it's not broken" ;-) |
One more thing. Please make sure that you include the LICENSE file in your copy of the repository. For example the file |
Good point, thank you. |
@jurgenhaas FYI, slidesdown now also has a docker image and a very simple but powerful start script. The main thing that's lacking is documentation on theming as well as a layout that includes a header and footer. Theming works basically like mdshow but you have to manually compile the theme and host it somewhere. I hope you'll like it and I'd be really happy to hear your feedback! |
@jceb congrats, this looks really nice. I will probably borrow several bits and pieces but we won't switch, I guess, because we've customized our own solution so much including local dev environment and CI/CD for deployment as well as integration into Drupal (our website backend), that we can't justify to start over. But your solution is amazing, congratulations! |
No worries, feel free to mix and match! |
Installation, setup and usage could be simplified by making this project available as a Docker image. I'd be willing to contribute the Dockerfile if you'd agree to such an approach.
The text was updated successfully, but these errors were encountered: