diff --git a/source/templates/community/README.md b/source/templates/community/README.md index 053270d3..cb0b52ab 100644 --- a/source/templates/community/README.md +++ b/source/templates/community/README.md @@ -1,25 +1,62 @@ -### 📕 Community templates + + + + + + +

📕 Community templates

A template capable of rendering markdown from a given template file.
+ + +
-It is possible to use official releases with templates from forked repositories (whether you own them or not). +___ -Use `setup_community_templates` option to specify additional external sources using following format: `user/repo@branch:template`. -Templates added this way will be downloaded through git and can be used by prefixing their name with an `@`. +Community templates are a way to use official releases of [lowlighter/metrics](https://github.com/lowlighter/metrics) while using templates from external repositories (owned or not). -By default, community templates use `template.mjs` from official `classic` template instead of their own, to prevent executing malicious code and avoid token leaks. +## 📮 Using community templates -If you trust it, append `+trust` after their name. - -```yaml -- uses: lowlighter/metrics@latest - with: - # ... other options - template: "@super-metrics" - # Download "super-metrics" and "trusted-metrics" templates from "octocat/metrics@master" - # "@trusted-metrics" template can execute remote JavaScript code - setup_community_templates: octocat/metrics@master:super-metrics, octocat/metrics@master:trusted-metrics+trust +Use `setup_community_templates` option to specify additional external sources using following format: +``` +user/repo@branch:template ``` -To create a new community template, fork this repository and create a new folder in `/source/templates` with same structure as current templates. -Then, it's just as simple as HTML and CSS with a bit of JavaScript! +These templates will be downloaded through git and will be usable by prefixing their name with an `@`. -If you made something awesome, please share it here! \ No newline at end of file +*Example: using `my-theme` template by downloading it from `user/repo`* +```yml +- uses: lowlighter/metrics@latest + with: + template: "@my-theme" + setup_community_templates: "user/repo@main:my-theme" +``` + +For security reasons, community templates will use the `classic` template `template.mjs` instead of their own. +If you trust a community template, append `+trust` to it. + +*Example: using and trusting `my-theme` template by downloading it from `user/repo`* +```yml +- uses: lowlighter/metrics@latest + with: + template: "@my-theme" + setup_community_templates: "user/repo@main:my-theme+trust" +``` + +> ⚠️ Note that it basically allow remote code execution and the template may have access to **sensitive data** along with **tokens**! Use this feature only from a trusted source. Remember that its content may also change at any time... + +## 📪 Creating community templates + +To create a new template, start a new repository and create a new folder in `/source/templates` with the same file structure as in [lowlighter/metrics](https://github.com/lowlighter/metrics) templates: + +* `/source/templates` + * `{template-name}` + * `README.md`, + * `metadata.yml`, + * `image.svg` + * `partials/` + * `_.json` + * `*.ejs` + +Then use HTML, CSS, and [EJS](https://github.com/mde/ejs) to create something awesome! +Do not hesitate to share it on [GitHub discussions](https://github.com/lowlighter/metrics/discussions)! + +For more information, see [contribution guide](/CONTRIBUTING.md). diff --git a/source/templates/community/examples.yml b/source/templates/community/examples.yml index 41a7e18b..c7fa37eb 100644 --- a/source/templates/community/examples.yml +++ b/source/templates/community/examples.yml @@ -1,4 +1,4 @@ -- name: Example +- name: Using a community template uses: lowlighter/metrics@latest with: token: ${{ secrets.METRICS_TOKEN }} @@ -6,4 +6,14 @@ setup_community_templates: "lowlighter/metrics@master:classic" test: modes: - - action \ No newline at end of file + - action + +- name: Using a trusted community template + uses: lowlighter/metrics@latest + with: + token: ${{ secrets.METRICS_TOKEN }} + template: "@terminal" + setup_community_templates: "lowlighter/metrics@master:terminal+trust" + test: + modes: + - action diff --git a/source/templates/community/metadata.yml b/source/templates/community/metadata.yml new file mode 100644 index 00000000..d59715e6 --- /dev/null +++ b/source/templates/community/metadata.yml @@ -0,0 +1,4 @@ +name: "📕 Community templates" +description: | + A template mimicking GitHub visual identity. + This is also the default template.