{"id":33171988,"url":"https://github.com/fzankl/docsify-plugin-flexible-alerts","last_synced_at":"2026-03-15T19:01:10.484Z","repository":{"id":42222333,"uuid":"164306266","full_name":"fzankl/docsify-plugin-flexible-alerts","owner":"fzankl","description":"docsify plugin to convert blockquotes into beautiful and configurable alerts using preconfigured or own styles and alert types.","archived":false,"fork":false,"pushed_at":"2025-11-15T10:45:05.000Z","size":572,"stargazers_count":138,"open_issues_count":3,"forks_count":16,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-21T23:31:10.269Z","etag":null,"topics":["alert","blockquote","callout","docsify","docsify-plugin","hint"],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fzankl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2019-01-06T12:45:51.000Z","updated_at":"2025-12-21T20:04:31.000Z","dependencies_parsed_at":"2023-02-08T12:01:20.951Z","dependency_job_id":"f38ebfd9-b4bf-4390-8198-6d4782175640","html_url":"https://github.com/fzankl/docsify-plugin-flexible-alerts","commit_stats":{"total_commits":20,"total_committers":6,"mean_commits":"3.3333333333333335","dds":0.65,"last_synced_commit":"728bfaaf099333163eff018c07ff489a6951e5a6"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/fzankl/docsify-plugin-flexible-alerts","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fzankl%2Fdocsify-plugin-flexible-alerts","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fzankl%2Fdocsify-plugin-flexible-alerts/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fzankl%2Fdocsify-plugin-flexible-alerts/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fzankl%2Fdocsify-plugin-flexible-alerts/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fzankl","download_url":"https://codeload.github.com/fzankl/docsify-plugin-flexible-alerts/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fzankl%2Fdocsify-plugin-flexible-alerts/sbom","scorecard":{"id":415653,"data":{"date":"2025-08-11","repo":{"name":"github.com/fzankl/docsify-plugin-flexible-alerts","commit":"728bfaaf099333163eff018c07ff489a6951e5a6"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Code-Review","score":1,"reason":"Found 2/15 approved changesets -- score normalized to 1","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/main.yml:1","Warn: no topLevel permission defined: .github/workflows/publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Pinned-Dependencies","score":3,"reason":"dependency not pinned by hash detected -- score normalized to 3","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/fzankl/docsify-plugin-flexible-alerts/main.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/main.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/fzankl/docsify-plugin-flexible-alerts/main.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:10: update your workflow using https://app.stepsecurity.io/secureworkflow/fzankl/docsify-plugin-flexible-alerts/publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/publish.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/fzankl/docsify-plugin-flexible-alerts/publish.yml/main?enable=pin","Info:   0 out of   4 GitHub-owned GitHubAction dependencies pinned","Info:   2 out of   2 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 15 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"11 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-968p-4wvh-cqc8","Warn: Project is vulnerable to: GHSA-67hx-6x53-jw92","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-3xgq-45jj-v275","Warn: Project is vulnerable to: GHSA-mwcw-c2x4-8c55","Warn: Project is vulnerable to: GHSA-7fh5-64p2-3v2j","Warn: Project is vulnerable to: GHSA-gcx4-mw62-g8wm","Warn: Project is vulnerable to: GHSA-c2qf-rxjj-qqgw","Warn: Project is vulnerable to: GHSA-52f5-9888-hmc6","Warn: Project is vulnerable to: GHSA-j8xg-fqg3-53r7"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-18T23:46:32.972Z","repository_id":42222333,"created_at":"2025-08-18T23:46:32.972Z","updated_at":"2025-08-18T23:46:32.972Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30540826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-15T07:17:37.589Z","status":"ssl_error","status_checked_at":"2026-03-15T07:17:31.738Z","response_time":61,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["alert","blockquote","callout","docsify","docsify-plugin","hint"],"created_at":"2025-11-16T02:00:19.608Z","updated_at":"2026-03-15T19:01:10.474Z","avatar_url":"https://github.com/fzankl.png","language":"JavaScript","funding_links":[],"categories":["Plugins"],"sub_categories":[],"readme":"# docsify plugin: Flexible Alerts\n\n[![Build Status](https://github.com/fzankl/docsify-plugin-flexible-alerts/actions/workflows/main.yml/badge.svg)](https://github.com/fzankl/docsify-plugin-flexible-alerts)\n[![npm Version](https://img.shields.io/npm/v/docsify-plugin-flexible-alerts/latest.svg)](https://www.npmjs.com/package/docsify-plugin-flexible-alerts)\n[![npm Downloads](https://img.shields.io/npm/dt/docsify-plugin-flexible-alerts.svg)](https://www.npmjs.com/package/docsify-plugin-flexible-alerts)\n\nThis docsify plugin converts blockquotes into beautiful alerts. Look and feel can be configured on a global as well as on an alert specific level so output does fit your needs (some examples are shown below). In addition, you can provide own alert types.\n\n![Sample alerts created with plugin 'flexible-alerts'](./flexible-alerts.png)\n\n## Installation and Usage\n\n### Step #1 - Update `index.html` file\n\nAssuming you have a working [docsify](https://docsify.js.org) app set up, it is easy to use this plugin.\n\n1. Add the following script tag to your `index.html`\n\n    ```html\n    \u003c!-- Latest --\u003e\n    \u003cscript src=\"https://unpkg.com/docsify-plugin-flexible-alerts\"\u003e\u003c/script\u003e\n    ```\n\n2. In docsify setup configure the plugin so it does fit your needs. A custom setup is not mandatory. By default, styles `flat` and `callout` (Default: `callout`) and types `NOTE`, `TIP`, `WARNING`, `IMPORTANT` and `ATTENTION` are supported. For a better compatibility some aliases exists. `INFO`, `DANGER` and `CAUTION` can also be used to define the alerts. \n   You can change it using plugin configuration via `index.html` or for a single alert in your markdown files. (please see section `Customizations` for further details)\n\n    **Sample `index.html` file using style `flat` instead of `callout`**\n\n    ```javascript\n    \u003cscript\u003e\n      window.$docsify = {\n        'flexible-alerts': {\n          style: 'flat'\n        }\n      };\n    \u003c/script\u003e\n    ```\n\n    **Sample `index.html` using custom headings**\n\n    ```javascript\n    \u003cscript\u003e\n      window.$docsify = {\n        'flexible-alerts': {\n          note: {\n            label: \"Hinweis\"\n          },\n          tip: {\n            label: \"Tipp\"\n          },\n          warning: {\n            label: \"Warnung\"\n          },\n          important: {\n            label: \"Wichtig\"\n          },\n          attention: {\n            label: \"Achtung\"\n          }\n        }\n      };\n    \u003c/script\u003e\n    ```\n\n    **Sample `index.html` using multilingual headings**\n\n    ```javascript\n    \u003cscript\u003e\n      window.$docsify = {\n        'flexible-alerts': {\n          note: {\n            label: {\n              '/de-DE/': 'Hinweis',\n              '/': 'Note'\n            }\n          },\n          tip: {\n            label: {\n              '/de-DE/': 'Tipp',\n              '/': 'Tip'\n            }\n          },\n          warning: {\n            label: {\n              '/de-DE/': 'Warnung',\n              '/': 'Warning'\n            }\n          },\n          important: {\n            label: {\n              '/de-DE/': 'Wichtig',\n              '/': 'Important'\n            }\n          },\n          attention: {\n            label: {\n              '/de-DE/': 'Achtung',\n              '/': 'Attention'\n            }\n          }\n        }\n      };\n    \u003c/script\u003e\n    ```\n\n### Step #2 - Prepare documentation\n\nModify or add a new blockquote so it matches required syntax like shown in following examples:\n\n* Sample alert using type `NOTE`\n\n  ```markdown\n  \u003e [!NOTE]\n  \u003e An alert of type 'note' using global style 'callout'.\n  ```\n\n* Sample alert using type `TIP`\n\n  ```markdown\n  \u003e [!TIP]\n  \u003e An alert of type 'tip' using global style 'callout'.\n  ```\n\n* Sample alert using type `WARNING`\n\n  ```markdown\n  \u003e [!WARNING]\n  \u003e An alert of type 'warning' using global style 'callout'.\n  ```\n\n* Sample alert using type `IMPORTANT`\n\n  ```markdown\n  \u003e [!IMPORTANT]\n  \u003e An alert of type 'important' using global style 'callout'.\n  ```\n\n* Sample alert using type `ATTENTION`\n\n  ```markdown\n  \u003e [!ATTENTION]\n  \u003e An alert of type 'attention' using global style 'callout'.\n  ```\n\n### Step #3 - Serve documentation\n\nServe your documentation (`docsify serve`) as usual.\n\n## Customizations\n\nTo use the plugin just modify an existing blockquote and prepend a line matching pattern `[!type]`. By default, types `NOTE`, `TIP`, `WARNING`, `IMPORTANT` and `ATTENTION` along with some aliases are supported. You can extend the available types by providing a valid configuration (see below for an example).\n\n```markdown\n\u003e [!NOTE]\n\u003e An alert of type 'note' using global style 'callout'.\n```\n\n```markdown\n\u003e [!NOTE|style:flat]\n\u003e An alert of type 'note' using alert specific style 'flat' which overrides global style 'callout'.\n```\n\nAs you can see in the second snippet, output can be configured on alert level also. Supported options are listed in following table:\n\n| Key             | Allowed value                                           |\n|-----------------|---------------------------------------------------------|\n| style           | One of following values: callout, flat                  |\n| label           | Any text                                                |\n| icon            | A valid Font Awesome icon, e.g. 'fas fa-comment'        |\n| className       | A name of a CSS class which specifies the look and feel |\n| labelVisibility | One of following values: visible (default), hidden      |\n| iconVisibility  | One of following values: visible (default), hidden      |\n\nMultiple options can be used for single alerts as shown below:\n\n```markdown\n\u003e [!TIP|style:flat|label:My own heading|iconVisibility:hidden]\n\u003e An alert of type 'tip' using alert specific style 'flat' which overrides global style 'callout'.\n\u003e In addition, this alert uses an own heading and hides specific icon.\n```\n\n![Custom alert](https://user-images.githubusercontent.com/44210522/50689970-04676080-102c-11e9-9cbc-8af129cb988c.png)\n\nAs mentioned above you can provide your own alert types. Therefore, you have to provide the type configuration via `index.html`. Following example shows an additional type `COMMENT`.\n\n```javascript\n\u003cscript\u003e\n  window.$docsify = {\n    'flexible-alerts': {\n      comment: {\n        label: 'Comment',\n\n        // localization\n        label: {\n          '/en-GB/': 'Comment',\n          '/': 'Kommentar'\n        },\n\n        // Assuming that we use Font Awesome\n        icon: 'fas fa-comment',\n        className: 'note'\n      }\n    }\n  };\n\u003c/script\u003e\n```\n\n**Since we are using FontAwesome in previous example we have to include the library via `index.html`, e.g. using a CDN.**\n\nIn Markdown just use the alert according to the types provided by default.\n\n```markdown\n\u003e [!COMMENT]\n\u003e An alert of type 'comment' using style 'callout' with default settings.\n```\n\n![Custom alert type 'comment'](https://user-images.githubusercontent.com/44210522/50722960-6f21a600-10d7-11e9-87e7-d40d87045afe.png)\n\nInstead of configuring this plugin using key `flexible-alerts` you can use camel case notation `flexibleAlerts` as well.\n\n```javascript\n\u003cscript\u003e\n  window.$docsify = {\n    'flexibleAlerts': {\n      style: 'flat'\n    }\n  };\n\u003c/script\u003e\n```\n\n## Samples\n\nThe repository contains some [examples](./samples) how the plugin can be used.\nTo run the sample checkout the code and execute `npm run serve`.\n\n## Troubleshooting\n\nIf alerts do not look as expected, check if your `index.html` as well as alerts in Markdown are valid according to this documentation.\n\n## Changelog\n\n03/15/2026\n  * Fixed issue concerning custom labels set via global configuration were not working.\n\n10/01/2025\n  * Added support for docsify v5.x.\n  * Added alert type `IMPORTANT` along with some new aliases.\n  * Added examples to illustrate usage\n  * Updated development dependencies\n  * Fixed issue concerning custom label containing U+2024, ONE DOT LEADER\n\n12/22/2022\n  * Fixed rendering of alerts when the content does not contain white spaces which can occur with some character encodings.\n\n08/20/2022\n  * Updated development dependencies and moved to GitHub Actions.\n\n09/20/2020\n  * Removed dependency to FontAwesome and embedded icons as SVG directly.\n  * Support dark mode for callout alert style.\n  * Moved alert type naming from 'danger' to 'attention'. Introduced type mappings to support mapping further alert type keys to existing definitions, e.g. map legacy alert type 'danger' to new type definition 'attention'. \n\n09/23/2019\n  * Fixed issue concerning custom Font Awesome icons when using on alert based level.\n\n04/14/2019\n  * Added camel case support for plugin configuration key.\n\n03/03/2019\n  * Fixed issue concerning languages using characters others than [a-z,A-Z,0-9] like Chinese or Russian.\n\n01/19/2019\n  * Fixed issue when using plugin along with themeable plugin.\n\n01/06/2019\n  * Initial release.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffzankl%2Fdocsify-plugin-flexible-alerts","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffzankl%2Fdocsify-plugin-flexible-alerts","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffzankl%2Fdocsify-plugin-flexible-alerts/lists"}