{"id":16131783,"url":"https://github.com/bcopy/revealjs-microservice","last_synced_at":"2025-09-14T20:41:32.225Z","repository":{"id":65878691,"uuid":"600742948","full_name":"bcopy/revealjs-microservice","owner":"bcopy","description":"A native microservice that serves Reveal.js presentations","archived":false,"fork":false,"pushed_at":"2023-04-13T17:25:04.000Z","size":126,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"develop","last_synced_at":"2025-06-04T21:54:06.721Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bcopy.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-02-12T13:18:56.000Z","updated_at":"2023-02-13T14:24:18.000Z","dependencies_parsed_at":"2024-11-01T10:34:47.478Z","dependency_job_id":null,"html_url":"https://github.com/bcopy/revealjs-microservice","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/bcopy/revealjs-microservice","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcopy%2Frevealjs-microservice","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcopy%2Frevealjs-microservice/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcopy%2Frevealjs-microservice/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcopy%2Frevealjs-microservice/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bcopy","download_url":"https://codeload.github.com/bcopy/revealjs-microservice/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bcopy%2Frevealjs-microservice/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270781393,"owners_count":24643820,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-16T02:00:11.002Z","response_time":91,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-09T22:26:59.851Z","updated_at":"2025-08-16T23:06:33.931Z","avatar_url":"https://github.com/bcopy.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![GraalVM Native Image builds](https://github.com/bcopy/revealjs-microservice/actions/workflows/main.yml/badge.svg)](https://github.com/bcopy/revealjs-microservice/actions/workflows/main.yml)\n\n# Reveal.js microservice\n\nThis microservice provides a native, self-standing executable to serve Reveal.js presentations over HTTP.\n\n## How to use it\n\n1. Simply download the executable for your given platform (Linux, Windows, Mac OSX are supported).\n1. Create a ```www``` folder to contain your presentation \n1. Create a ```resources``` folder to contain your binary and static resources (images, reveal.js plugins etc...)\n1. Create an ```index.html``` file in ```www``` to host your reveal.js presentation (Bonus : you can use [Thymeleaf templating](https://www.thymeleaf.org/))\n  1. Note that all **reveal.js** resources are available under ```/webjars/reveal.js/4.1.3/```, for instance :\n     * ```/webjars/reveal.js/4.1.3/dist/reveal.js```\n     * ```/webjars/reveal.js/4.1.3/plugin/notes/notes.js```\n     * ```/webjars/reveal.js/4.1.3/dist/reset.css```\n1. Start the server with executing ```reveal-microservice``` and it will be available at http://localhost:8080/index.html\n\n🗒 NOTE : Native compilation does not currently support the Webjars locator library, forcing us to use versioned URLs to access Reveal.js resources (c.f. [Spring Framework issue 27619](https://github.com/spring-projects/spring-framework/issues/27619) and [Webjars locator issue 96](https://github.com/webjars/webjars-locator-core/issues/96) )\n\n## Under the hood\n\nThis microservice is implemented using Spring Boot 3 and its amazing native image compilation support.\nAs such, you can configure the microservice using any of the supported [Spring Boot application properties](https://docs.spring.io/spring-boot/docs/current/reference/html/application-properties.html).\n\nAll presentation templates are also [Thymeleaf templates](https://www.thymeleaf.org/), which supports the injection of request parameters and other dynamic properties into your presentations.\n\nOne custom property available to you is the location of your reveal.js presentation (by default ```./www/```), you can override this by adding a parameter to the microservice execution (for instance if your files are stored in ```./my-custom-folder```) :\n\n```bash\nreveal-microservice --spring.thymeleaf.prefix=file:./my-custom-folder/\n```\n\nPlease note that the path **must** end with a forward slash.\n\n\u003c!--\nNote that your presentation must be called ```index.html``` - To allow other HTML files to be served, you need to list them in the view names property like so (for instance, two files called ``my-presentation.html`` and ``my-other-presentation.html`` located under ```./www/```) :\n\n```bash\nreveal-microservice --spring.thymeleaf.view-names=my-presentation.html,my-other-presentation.html\n```\n--\u003e\n\nStatic resources (*e.g.* images) are served from the folder ```./resources/```, you can also adjust this location like so :\n\n```bash\nreveal-microservice --spring.web.resources.static-locations=./my-other-resource-location/\n```\n\n## How to develop\n\n### Pre-requisites\n\n* Java 17 GraalVM 22.3+\n* GraalVM Native image plugin\n\n## Building the Spring Boot application\n\nUsing the provided Maven wrapper, simply call :\n\n```./mvnw package```\n\nYou can then run the service with :\n\n```./mvnw spring-boot:run```\n\nTo compile the native image, please refer to [HELP.md](./HELP.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcopy%2Frevealjs-microservice","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbcopy%2Frevealjs-microservice","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbcopy%2Frevealjs-microservice/lists"}