1785493771
%255B66d7ab4d5592a8acef5d063eb9d1a45c%255D%255B1%255D
s:1440857:"{"tailwind4":{"name":"Tailwind4","version":"1.0.4","description":"Compiles Tailwind CSS 4.x for Grav themes directly from PHP, with no Node.js and no build step","description_html":"<p>Compiles Tailwind CSS 4.x for Grav themes directly from PHP, with no Node.js and no build step<\/p>","description_plain":"Compiles Tailwind CSS 4.x for Grav themes directly from PHP, with no Node.js and no build step","icon":"paint-brush","author":{"name":"Andy Miller","url":"https:\/\/trilby.media","email":"andy@trilbymedia.com"},"dependencies":[{"name":"grav","version":">=2.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-tailwind4","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-tailwind4\/blob\/develop\/README.md","keywords":"grav, plugin, tailwind, tailwindcss, css, compiler, no-node, php","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-tailwind4\/issues","license":"MIT","tag_name":"1.0.4","date":"2026-07-17T15:27:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tailwind4\/1.0.4","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-tailwind4","slug":"tailwind4","install_path":"user\/plugins\/tailwind4","content_sha256":"9a5dad0d4268c05c85603bfbdff99d29c3fb2294f4b635de8a37e854b4e48bea","changelog":{"1.0.4":{"date":"07\/17\/2026","content":"1. [](#bugfix)\n    * Fixed shortcodes with a colon (such as `[figure caption=\"Source: Archives\"]`) breaking a page's compiled CSS, which knocked out dark mode and responsive styles.\n"},"1.0.3":{"date":"07\/08\/2026","content":"1. [](#bugfix)\n    * Updated the vendored Tailwind engine to [`trilbymedia\/tailwindphp` 1.4.3](https:\/\/github.com\/trilbymedia\/tailwindphp), which fixes the minifier collapsing the descendant combinator before a pseudo-class. Minified selectors like `.prose :where(h1)` were being rewritten to `.prose:where(h1)`, so every `@tailwindcss\/typography` rule (headings, paragraphs, lists, code) matched nothing and prose content rendered unstyled. Typography now compiles correctly.\n1. [](#improved)\n    * The engine is now referenced by tagged release (`^1.4.3`) instead of a pinned branch commit, so `composer update` picks up future fork fixes without editing the constraint.\n"},"1.0.2":{"date":"07\/08\/2026","content":"1. [](#bugfix)\n    * Ship the plugin self-contained. `vendor\/` (production dependencies, including the vendored Tailwind engine) and `composer.lock` are now committed and bundled in the release package. GPM and zip installs have no `composer install` step, so 1.0.0 and 1.0.1 shipped without the engine and could not compile \u2014 installing 1.0.2 works out of the box.\n"},"1.0.1":{"date":"07\/08\/2026","content":"1. [](#improved)\n    * Updated the vendored Tailwind engine to the renamed [`trilbymedia\/tailwindphp`](https:\/\/github.com\/trilbymedia\/tailwindphp) fork (branch `trilby`), now carrying more fixes than the original two: CLI source resolution (relative `@import`, `@source` globs, yaml\/md scanning), `theme()` resolution inside arbitrary values, `--spacing(0|1)` shortcuts, a `currentcolor` color-mix polyfill, mask angle-unit normalization, and atomic engine-cache writes. Two fixes are submitted upstream (PRs [#4](https:\/\/github.com\/inline0\/tailwindphp\/pull\/4)\/[#5](https:\/\/github.com\/inline0\/tailwindphp\/pull\/5)); the rest are maintained in the fork.\n    * The engine metadata reader now recognizes both the fork and the upstream package name, so the manifest and CLI report the correct engine identity after the rename.\n"},"1.0.0":{"date":"07\/07\/2026","content":"1. [](#new)\n   * Initial release: compile Tailwind CSS 4.x for Grav themes directly from PHP,\n     with no Node.js, no npm install and no build step. Compilation is on demand\n     (admin button, CLI, or config save) and never runs on a front-end request.\n   * Compiler wrapper around the vendored `tailwindphp\/tailwindphp` engine,\n     consumed from the trilbymedia fork (branch `trilby`: v1.4.2 plus two engine\n     fixes submitted upstream as PRs #4 and #5) and pinned to an exact commit.\n   * Scanner: an Oxide-style tokenizer that extracts class candidates from Twig,\n     Markdown, YAML, PHP and HTML, with a per-file `mtime`+`size` cache under\n     `cache:\/\/tailwind4\/scan` so unchanged files are free on a rebuild.\n   * Source resolver that reproduces a theme's full scan set (theme dir, pages,\n     config, and every enabled plugin's templates) from the theme contract.\n   * Build service with atomic output writes and a persisted build manifest\n     (`user-data:\/\/tailwind4\/<theme>.json`: timings, file\/candidate\/cache counts,\n     output size, input hash, engine version, success or error).\n   * CLI command `bin\/plugin tailwind4 compile [theme]` with `--watch` (poll and\n     recompile on change) and `--diff` (compare selectors against the official\n     Node CLI build via the bundled parity harness).\n   * Admin Next integration: a \"Compile CSS\" menubar button with a success or\n     error toast, and a report page showing the last build's stats. Backed by\n     `POST \/api\/v1\/tailwind4\/compile` and `GET \/api\/v1\/tailwind4\/status`, gated to\n     theme administrators and super admins.\n   * Theme contract read from the theme's own yaml (`tailwind4:` block with\n     `input`, `output`, `sources`, `safelist_files`), with defaults so a theme\n     following the standard layout compiles with no contract at all.\n   * Optional `auto_compile_on_save` config to recompile when the active theme's\n     configuration is saved (off by default).\n1. [](#improved)\n   * Hardened the build pipeline: concurrent builds serialize on a per-theme\n     `flock` (a double-clicked Compile button can no longer interleave writes),\n     and a failed compile leaves the previous output byte-identical, cleans up\n     its temp file, and keeps the last successful build in the manifest so the\n     admin report never loses the output path or stats.\n   * Verified the test suite under PHP 8.2 and 8.4 and added a large-site\n     performance guard (500-page tree: cold compile well under 2s, warm under\n     500ms, compile peak under 64MB).\n1. [](#bugfix)\n   * Fixed (in the engine fork, upstream PR #4) a bug where a rule whose\n     `@apply` expands to more than one declaration silently dropped its nested\n     child rules. This restored Typhoon's breadcrumb, form-label and nav-indent\n     styling and brought the parity diff to zero missing selectors.\n   * Fixed (in the engine fork, upstream PR #5) the missing `container` utility;\n     the plugin's `container_fix` injection is now an off-by-default fallback for\n     stock engines."}}},"feedteasers":{"name":"Feed Teasers","version":"1.0.6","description":"Zeigt Beitrags-Teaser aus externen RSS\/Atom-Feeds als klickbare Kacheln an.","description_html":"<p>Zeigt Beitrags-Teaser aus externen RSS\/Atom-Feeds als klickbare Kacheln an.<\/p>","description_plain":"Zeigt Beitrags-Teaser aus externen RSS\/Atom-Feeds als klickbare Kacheln an.","icon":"rss","author":{"name":"Christian Schmidt","url":"https:\/\/www.jcs-net.de","email":"chschmidt@noreply.codeberg.org"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/codeberg.org\/chschmidt\/grav-plugin-feedteasers","docs":"https:\/\/codeberg.org\/chschmidt\/grav-plugin-feedteasers\/wiki","keywords":"grav, plugin, rss, atom, feed, teaser","bugs":"https:\/\/codeberg.org\/chschmidt\/grav-plugin-feedteasers\/issues","license":"MIT","tag_name":"v1.0.6","date":"2026-07-28T14:02:09Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/feedteasers\/1.0.6","repository":"https:\/\/github.com\/chrisschm\/grav-plugin-feedteasers","slug":"feedteasers","install_path":"user\/plugins\/feedteasers","content_sha256":"2c63c704ad85babaf16ea311b5a5100a6f4846fdf5b2fe5dc6ec5dad639f8554","changelog":{"1.0.6":{"date":"07\/28\/2026","content":"1. [](#new)\n    * i18l functionality added (de\/en), plugin description stays german\n"},"1.0.5":{"date":"07\/21\/2026","content":"1. [](#bugfix)\n    * version number fixed\n"},"1.0.4":{"date":"07\/21\/2026","content":"1. [](#new)\n    * added bugtracker and documentation links\n      to admin panel\n"},"1.0.3":{"date":"07\/06\/2026","content":"1. [](#bugfix)\n    * The increase of the version number was missing,\n      so the update was never triggered\n"},"1.0.2":{"date":"07\/06\/2026","content":"1. [](#bugfix)\n    * fallback image was not preprocessed properly\n"},"1.0.1":{"date":"07\/06\/2026","content":"1. [](#new)\n    * added fallback image for teasers without image\n"},"1.0.0":{"date":"07\/05\/2026","content":"1. [](#new)\n    * Initial Release"}}},"modern-editor":{"name":"Modern Editor","version":"2.1.1","description":"Modern visual WYSIWYG editor (based on TinyMCE) for page content, compatible with Admin Next (Grav 2.0).","description_html":"<p>Modern visual WYSIWYG editor (based on TinyMCE) for page content, compatible with Admin Next (Grav 2.0).<\/p>","description_plain":"Modern visual WYSIWYG editor (based on TinyMCE) for page content, compatible with Admin Next (Grav 2.0).","icon":"edit","author":{"name":"PeopleInside","email":"tickets@peopleinside-it.p.tawk.email"},"dependencies":[{"name":"grav","version":">=2.0.0"}],"compatibility":["2.0"],"homepage":"https:\/\/github.com\/PeopleInside\/modern-editor","keywords":"grav, plugin, editor, wysiwyg, admin-next, visual editor","bugs":"https:\/\/github.com\/PeopleInside\/modern-editor\/issues","license":"GPL","tag_name":"2.1.1","date":"2026-07-27T15:27:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/modern-editor\/2.1.1","repository":"https:\/\/github.com\/peopleInside\/modern-editor","slug":"modern-editor","install_path":"user\/plugins\/modern-editor","content_sha256":"ac43296492cebb03a157b16e6723ff30e5ca7f28f43e98d6f3def0034ee23834","changelog":{"Changelog":{"date":"2.1.1","content":"- **New**: added GitHub configuration files (`.gitattributes`, `.github\/codeql\/codeql-config.yml`, and `.github\/workflows\/codeql.yml`) to instruct GitHub Linguist and CodeQL vulnerability scanners (both Default Setup and Advanced Setup) to ignore bundled third-party libraries (`assets\/tinymce\/`, `assets\/vendor\/`, and `vendor\/`). This prevents false-positive vulnerability alerts and prevents third-party code from inflating repository language statistics.\n- **Fixed**: links entered with a bare domain or relative path without a leading slash (e.g. `dominio.ext` or `www.dominio.ext`) are now automatically corrected to start with `https:\/\/` (e.g. `https:\/\/dominio.ext`). A URL is preserved as-is if it already starts with a protocol (`http:\/\/`, `https:\/\/`, `mailto:`, `tel:`, `page:\/\/`, etc.), an anchor (`#`), or a leading\/relative slash (`\/`, `.\/`, `..\/`). Added `link_assume_external_targets: 'https'` to TinyMCE's configuration and implemented automatic URL normalization during Markdown \u2194 HTML conversion.\n- **Fixed**: links configured to open in a new window (`target=\"_blank\" rel=\"noopener\"`) or containing extra attributes (classes, IDs, download) no longer render literally as `Link text{target=\"_blank\" rel=\"noopener\"}` on frontend pages when Grav's Markdown Extra setting is disabled. Instead of generating non-standard Markdown Extra `{...}` syntax for links and images with custom attributes, Turndown now outputs clean HTML tags (`<a href=\"...\" target=\"_blank\">...<\/a>` and `<img src=\"...\" \/>`), which are natively passed through by all Markdown parsers (including Grav's default Parsedown engine) without printing literal attribute braces on the rendered page.\n\n## 2.1.0\n- **Fixed** (#18 follow-up): a root-relative image\/link path (e.g. `\/index\/_about\/chris-lowe.jpg`) was, since 2.0.7's fix for the same issue, saved back as a full absolute URL on whatever domain Admin Next happened to be running on (e.g. a staging\/prototype site), instead of being kept as entered. 2.0.7 disabled TinyMCE's `relative_urls` option to stop root-relative paths from being mangled into deeply \"relativized\" ones, but left `convert_urls` (a separate option, also on by default) enabled \u2014 and per TinyMCE's own behavior, `convert_urls` converts every URL to be relative *or absolute* depending on `relative_urls`, so once `relative_urls` was false it started resolving root-relative paths against the current page's own domain and saving that instead. This silently baked the editing environment's domain into the page content (breaking an edit-on-prototype\/copy-to-live workflow) and defeated URL-rewriting plugins such as a CDN plugin, which only rewrite root-relative paths and pass already-absolute URLs through untouched. `convert_urls` is now also disabled, so TinyMCE leaves URLs completely untouched and stores the root-relative path exactly as typed.\n\n## 2.0.9\nVarious security fixes\n\n## 2.0.8\n- **Fixed**: right-clicking inside the editor's text area always opened TinyMCE's own context menu (with e.g. a \"Link\" entry) instead of the browser's native one, and \u2014 since that custom menu isn't a real right-click on editable text \u2014 this also silently blocked the browser's own spell-check suggestions from ever appearing there. `contextmenu` is now disabled so the browser's native context menu is shown instead, and `browser_spellcheck: true` is set so TinyMCE marks its editing area as spell-checkable (it defaults to not spell-checkable), which is what makes the browser actually underline and offer suggestions for misspelled words in the text.\n- **New**: content pasted into the editor (typically copied from WordPress or other sites\/editors) is now sanitized before it's inserted. Previously it was inserted as-is, carrying foreign presentational `class` attributes tied to CSS that doesn't exist on this site (e.g. WordPress' own `alignnone`\/`size-full`\/`wp-image-123` classes on `<img>`), noisy inline `style` attributes, and deeply nested `<div>` wrappers \u2014 including spacer-only `<div>&nbsp;<\/div>` elements \u2014 around what is otherwise just a sequence of paragraphs. Turndown (the HTML \u2192 Markdown converter used on save, see `htmlToMd()`) has no dedicated rule for arbitrary nested `<div>` soup, so this junk was passed through close to verbatim and produced broken\/ugly Markdown full of stray blank lines and mismatched block structure. Pasted content is now cleaned on paste (`PastePreProcess`): spacer-only elements are dropped, presentational `class`\/`id`\/`data-*` attributes are stripped, only the meaningful `text-align` part of any inline `style` is preserved (e.g. for centered captions\/images), and `<div>` wrappers are unwrapped into their content \u2014 so what lands in the editor is the same flat paragraph\/image structure a user would get by typing or inserting it directly.\n\n## 2.0.7\n- **Fixed**: the toolbar's \"...\" overflow button (shown when the toolbar doesn't fit in one row) opened a dropdown that closed itself almost instantly, making it unusable. TinyMCE's default `toolbar_mode: 'floating'` relies on detecting clicks \"outside\" the toolbar to auto-close the overflow drawer, but that detection isn't Shadow DOM-aware: since the editor runs inside a Shadow Root (it's a Web Component), the browser retargets `event.target` to the shadow host for any click TinyMCE's (outside-the-tree) listener observes, so every click \u2014 even inside the drawer itself \u2014 was misread as \"outside\" and closed it. Switched to `toolbar_mode: 'wrap'`, which shows overflow buttons on an extra toolbar row instead of a floating panel, sidestepping the faulty check entirely.\n- **Fixed** (#18): a root-relative image\/link path (e.g. `\/index\/_about\/photo.jpg`) entered in the Image or Link dialog came back mangled into an excessively \"relativized\" path (e.g. `..\/..\/..\/..\/..\/index\/_about\/photo.jpg`) and was saved to the page's markdown in that broken form. TinyMCE's `relative_urls` option defaults to `true` and, since `document_base_url` wasn't set either, rewrote the URL relative to the *Admin Next editing page's own URL* rather than the frontend page the content is actually rendered on. This happened to still resolve correctly on the frontend only when the real page's URL depth coincidentally matched the admin route's depth; it broke on other pages, and broke more visibly when combined with a third-party CDN\/URL-rewriting plugin that concatenates its base URL onto the (already relative) path instead of resolving it, producing a malformed host (e.g. `https:\/\/cdn.example.tld..\/..\/..\/..\/..\/index\/...`). `relative_urls` and `remove_script_host` are now both disabled, so URLs are stored exactly as entered.\n\n## 2.0.6 \nFix Source widow obscured by page title\nhttps:\/\/github.com\/PeopleInside\/modern-editor\/issues\/16\n\n## 2.0.5\n- **Fixed** (#13): resolved page content corruption when Grav's global markdown setting (`system.pages.markdown.enabled`) is set to `false`.\n- **New**: added a `markdown_enabled` toggle to the plugin configuration to allow disabling markdown handling entirely (working in raw HTML mode) and preventing the browser from loading or running the `marked` and `turndown` helper libraries.\n\n## 2.0.4\n- **Fixed**: switching the editor to fullscreen mode hid TinyMCE's own toolbar and menu bar behind Admin Next's sticky page header (the dark bar with the page title\/back button\/Save button). TinyMCE's default \"fullscreen\" is CSS-only (`position: fixed` + `z-index: 1200` on the editor), which should already sit above the header's `z-index: 10` \u2014 but an ancestor further up Admin Next's layout (e.g. an animated\/transformed page-transition wrapper around the header) establishes its own stacking context, which traps the editor's z-index locally and prevents it from ever being compared against the header's in the same stacking context, no matter how high it's set. An earlier attempt to fix this by injecting a global CSS override via Grav's `addInlineCss()` didn't help either, since Admin Next's decoupled SPA shell doesn't reliably render Grav's queued inline assets (the same limitation already noted for the TinyMCE\/marked\/turndown CDN URLs in 2.0.2\/2.0.3 \u2014 see `loadMarkdownLibraries()`'s comments in `moderneditor.js`). The editor now sets TinyMCE's `fullscreen_native: true` option instead, which uses the real browser Fullscreen API: the editor is promoted to the browser's \"top layer\", a rendering layer that sits above every other element on the page unconditionally, independent of any ancestor's stacking context \u2014 so the header can no longer cover it regardless of how Admin Next's layout is structured.\n\n## 2.0.3\n- **Fixed**: with \"Lingua editor \/ interfaccia admin\" set to \"Automatica (segui Grav)\", the plugin stayed in English (both the status card's green banner and TinyMCE's own UI) on installs where Grav exposes the admin locale as a region-qualified BCP-47 tag (e.g. `it-IT`) rather than a bare `it` \u2014 which is the case for Admin Next's own `window.__GRAV_I18N.locale` store, and in some builds for `document.documentElement.lang` too. Every language check (client-side in `moderneditor.js`\/`moderneditorstatus.js`, and server-side in `getUiLanguage()`\/`langOverride()`) compared these values with strict equality against `'it'`, which silently failed even though the language *was* Italian. All of them now normalize a tag to its primary subtag (`it-IT` \u2192 `it`) before comparing. `window.__GRAV_I18N.locale` is also now read as the primary, most reliable client-side signal (it's the same source Grav itself uses to translate the rest of the Admin Next UI), ahead of the existing `window.__MODERN_EDITOR_ADMIN_LANG__` \/ `document.documentElement.lang` fallbacks. Forcing the language explicitly to \"Italiano\" already worked before this fix and is unaffected.\n\n## 2.0.2\n- **Fixed** (#12): editing content containing Twig expressions with square brackets (e.g. `{{media['thumbs:\/\/...']...}}`) no longer breaks the page, since turndown's HTML\u2192Markdown conversion no longer escapes `[` and `]` into `\\[` `\\]`.\n- **Fixed**: the two markdown helper libraries (`marked`\/`turndown`) could keep loading from the jsDelivr CDN even with \"local\" (self-hosted) mode selected. Their URLs now also travel through the same `\/modern-editor\/config` REST endpoint already used (and proven reliable) for the TinyMCE script URL, instead of relying solely on an inline `<script>` injection that doesn't always reach the page inside Admin Next's decoupled SPA shell.\n- **New**: added `alignleft`\/`aligncenter`\/`alignright`\/`alignjustify` to the default toolbar (and auto-injected into any custom toolbar missing them, same as the existing forecolor\/backcolor injection).\n- **New**: the visual editor's own UI (loading\/error messages) and a compact, built-in Italian translation for TinyMCE's toolbar\/menu labels are now shown automatically when the admin panel's language is Italian \u2014 no extra download or CDN call required.\n\n## 2.0.1\n- **New**: the status card now shows a dedicated \"Markdown libraries\" section (only in local mode) with per-library install status, installed vs. latest available version, a manual \"Download\" button when missing, an \"Update\" button when a newer release is available, and any recorded download error \u2014 closing the gap where marked\/turndown ran invisibly in the background with no UI feedback if a download silently failed. \"Check for updates\" now also checks marked\/turndown against npm, not just TinyMCE. This reuses the existing `POST \/modern-editor\/download` REST endpoint (extended with a `library` field) rather than adding new routes.\n- **New**: when \"local\" (self-hosted) mode is active, the two markdown helper libraries (`marked` and `turndown`, used for markdown\u2194HTML conversion) are now downloaded and self-hosted alongside TinyMCE, avoiding their previously-hardcoded jsDelivr CDN calls entirely. Both are MIT licensed, so self-hosting them raises no licensing concern (unlike TinyMCE, see `NOTICE.md`); if the local copies are missing or a download fails, the editor gracefully falls back to loading them from the CDN \u2014 a failure is now also surfaced as an admin flash message and in the status card instead of failing silently. \"Remove offline files\" now also cleans up these self-hosted copies.\n\n## v2.0.0\n- **Removed dead\/legacy code**: the classic `?action=download_tinymce|check_updates|remove_tinymce_local|get_config|get_status` query-string handlers (~350 lines in `onPagesInitialized`) have been deleted. They duplicated logic already implemented once in `downloadTinyMceAction()` \/ `checkUpdatesAction()` \/ `removeTinyMceLocalAction()` \/ `getStatusData()` \/ `getConfigData()`, were unreachable given this plugin's Grav >=2.0.0\/Admin Next-only requirement, carried the auth-bypass vulnerability described below, and were triggered via plain GET links with no CSRF protection. The Admin Next status-card UI already talks to the REST API (`\/modern-editor\/status|config|download|check-updates|remove`, POST + token-authenticated) directly and needed no changes.\n- **Security fix (critical): unauthenticated action bypass.** The classic `?action=download_tinymce|check_updates|remove_tinymce_local|get_config|get_status` handlers contained a fallback (`if (!$isAuthorized && $this->isAdminContext()) { $isAuthorized = true; }`) that granted authorization based solely on the request's URL path starting with the admin route \u2014 with no check that the visitor was actually logged in. This allowed **any unauthenticated request** to trigger destructive\/expensive actions (delete the local TinyMCE install, force a re-download\/extraction from the npm registry, read plugin config). This entire code path has now been removed (see above).\n- Removed a dead\/misleading `ZipArchive` availability check in the download routine that was never actually used (extraction uses `PharData` for the npm `.tgz` tarball) and could needlessly block updates on servers without the optional zip extension.\n- Added support for **TinyMCE 8.0**: local downloads now fetch the release tarball from the npm registry instead of Tiny's account-gated download portal, which no longer reliably serves 8.x packages.\n- **Fixed critical bug**: an \"auto-heal\" routine ran on every plain admin page load (any request without `?action=`) and silently re-downloaded\/overwrote the local TinyMCE files with a hardcoded `7.4.0` whenever the installed version differed from it. This caused a freshly installed update (e.g. to `8.0.0`) to be immediately downgraded back to `7.4.0` on the very next page view\/refresh, both in the browser and on disk. The routine now only auto-installs the default version when nothing is installed at all, and never touches an existing installation regardless of its version.\n- Added a version-based cache-busting query string (`?v=<version>`) to the local editor script URL, and included the installed TinyMCE version in the cached page-blueprint hash, so the Admin content editor and the browser both pick up a newly installed version immediately instead of serving a stale cached copy\/URL.\n\n## v1.1.9\n- Fixed custom admin paths and dynamic route detection for all admin panels (e.g. `\/grav-admin`, `\/panel`, `\/control`).\n- Resolved non-JSON\/HTML redirect responses gracefully to prevent `SyntaxError: Unexpected token <` in browser console.\n- Robust URL suffix matching fallback inside field Web Components.\n\n## v1.1.8\n- Security fix\n\n- ## v1.1.6\n- Security fix\n\n## v1.1.6\n\n- **License Change**: Changed license from MIT to GNU General Public License v2.0 or later (GPLv2+) for full compatibility with TinyMCE 7's licensing requirements.\n- Updated `blueprints.yaml` to reflect the new GPL license.\n- Updated `README.md` with new licensing information.\n\n## v1.1.5\n* Added full support for **Local Self-Hosting (Offline Mode)**, allowing the editor to be loaded directly from the local server without any external CDN calls.\n* Removed unrequested TinyMCE version selection; the editor is now streamlined to use standard stable v7.4.0 with an integrated automatic downloader.\n* Added a dedicated dynamic **status card** in the Admin panel that shows the local TinyMCE version currently in use.\n* Added a **Check for Updates** (Verifica aggiornamenti) button that queries the npm registry live for the latest stable TinyMCE version.\n* Integrated an **Update Now** button in the status card to easily download and extract newer TinyMCE versions.\n* Improved Web Component behavior in `moderneditor.js` to dynamically fetch the plugin configurations and source selection asynchronously via a custom JSON endpoint in PHP.\n\n## v1.1.0\n* Hid the TinyMCE 7 \"Get all features\" promotion button.\n* Fully translated all developer comments, user-facing loading\/error states, and code annotations from Italian to English.\n* Completely translated, updated, and modernized the `README.md` in English.\n* Handed over maintainership\/authorship details to PeopleInside.\n\n## v1.0.0\n* Renamed plugin from `tinymce-editor` to `modern-editor` to avoid collision with GPM plugins of the same name.\n* Changed the \"content\" field override mechanism from runtime PHP rewrite to dynamic file-based blueprint generation via `onGetPageBlueprints` conforming to Grav's standard `@extends` system.\n* Overrides are now automatically generated for EVERY template in the active theme, rather than just the default.\n* Visual editor (TinyMCE via CDN) integrated as a Custom Field using a Web Component for Admin Next.\n* No manual theme changes are required."}}},"database-yetisql":{"name":"Database YetiSQL","version":"1.0.1","description":"Adds the pure-PHP YetiSQL engine as a connection type for the Database plugin","description_html":"<p>Adds the pure-PHP YetiSQL engine as a connection type for the Database plugin<\/p>","description_plain":"Adds the pure-PHP YetiSQL engine as a connection type for the Database plugin","icon":"database","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"database","version":">=1.2.0"},{"name":"php","version":">=8.3"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-database-yetisql","docs":"https:\/\/github.com\/getgrav\/grav-plugin-database-yetisql\/blob\/develop\/README.md","keywords":"grav, plugin, database, yetisql, sqlite, pure-php","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-database-yetisql\/issues","license":"MIT","tag_name":"1.0.1","date":"2026-07-02T14:37:05Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/database-yetisql\/1.0.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-database-yetisql","slug":"database-yetisql","install_path":"user\/plugins\/database-yetisql","content_sha256":"4a4da6b3796a33c69ba886f2160593957ee3338a2fa960dc0c676e2c7f06ffab","changelog":{"1.0.1":{"date":"07\/02\/2026","content":"1. [](#improved)\n    * Updated the bundled YetiSQL engine to 1.0.1, which more than halves query benchmark times.\n1. [](#bugfix)\n    * Fixed a query bug where a table alias in a correlated subquery could return the full-table count instead of the per-value count.\n"},"1.0.0":{"date":"06\/18\/2026","content":"1. [](#new)\n    * Initial release\n    * Registers the pure-PHP [YetiSQL](https:\/\/github.com\/yetidevworks\/yetisql) engine as a connection type for the Database plugin via its `onDatabaseDrivers` event"}}},"grvhulk":{"name":"GRVHulk Security","version":"1.0.0","description":"Advanced IP security for Grav 2: local blacklist, AbuseIPDB, CrowdSec CTI\/LAPI, AI crawler blocking via Known Agents, CIDR whitelist, URI filtering.","description_html":"<p>Advanced IP security for Grav 2: local blacklist, AbuseIPDB, CrowdSec CTI\/LAPI, AI crawler blocking via Known Agents, CIDR whitelist, URI filtering.<\/p>","description_plain":"Advanced IP security for Grav 2: local blacklist, AbuseIPDB, CrowdSec CTI\/LAPI, AI crawler blocking via Known Agents, CIDR whitelist, URI filtering.","icon":"shield","author":{"name":"horiken1216","url":"https:\/\/github.com\/horiken1216"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"admin","version":">=2.0.0"}],"homepage":"https:\/\/github.com\/horiken1216\/grav-plugin-grvhulk","docs":"https:\/\/github.com\/horiken1216\/grav-plugin-grvhulk\/blob\/main\/README.md","keywords":"grav, plugin, security, blacklist, ip, abuseipdb, crowdsec, ai-crawler","bugs":"https:\/\/github.com\/horiken1216\/grav-plugin-grvhulk\/issues","license":"MIT","tag_name":"1.0.0","date":"2026-06-14T09:12:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/grvhulk\/1.0.0","repository":"https:\/\/github.com\/horiken1216\/grav-plugin-grvhulk","slug":"grvhulk","install_path":"user\/plugins\/grvhulk","content_sha256":"3d7cd26ff0d10da221104ea936a3e27b5e3febfdc81fc16a26cbe311f88478c7","changelog":{"1.0.0":{"date":"06\/14\/2026","content":"1. [](#new)\n    * Initial release\n    * Local SQLite blacklist (manual entries + auto-population via URI filters)\n    * AbuseIPDB v2 integration:\n        * Bulk blacklist (nightly scheduler, streamed to avoid memory limits)\n        * Live per-request check with configurable confidence threshold and cache\n        * Auto-report of matched IPs to AbuseIPDB\n    * CrowdSec integration (dual-mode):\n        * CTI cloud API (`cti.api.crowdsec.net`) \u2014 no self-hosted agent required\n        * LAPI self-hosted agent (`\/v1\/decisions`)\n        * Configurable score threshold and cache TTL\n        * Quota guard for CTI free-tier rate limits (50 req\/day)\n    * Known Agents \/ Dark Visitors AI crawler blocking:\n        * Blocks AI training crawlers by User-Agent\n        * Daily update via Grav scheduler\n        * Configurable agent type categories\n    * CIDR whitelist (IPv4 and IPv6)\n    * Trusted-proxy model: forwarding headers (CF-Connecting-IP, X-Real-IP, X-Forwarded-For) are honored only behind a configured `trusted_proxies` CIDR list \u2014 otherwise the raw `REMOTE_ADDR` is used, preventing client-IP spoofing\n    * URI request filtering with regex patterns (web shells, `.env` probes, credential files, Log4Shell, cloud SSRF, known RCE paths, plus commented context-dependent defaults)\n    * Grav Admin UI: statistics dashboard, IP search \/ add \/ remove (AJAX)\n    * Emergency CLI unblock tool (`cli\/unblock.php`), framework-independent\n    * SQLite WAL mode for concurrent-access safety\n    * Fail-open design \u2014 external API failures never block legitimate users\n    * Grav 2 \/ PHP 8.1+ compatible\n2. [](#security)\n    * Admin JSON API requires an `admin.users`\/`admin.super` permission, not just an authenticated session\n    * AbuseIPDB reports send the request path only (query string stripped) and are queued for the scheduler \u2014 sent asynchronously, retried on transient failure, dropped only after repeated attempts \u2014 instead of a synchronous call on the request hot path\n    * CrowdSec quota\/network fail-open results are no longer cached for the full TTL (only authoritative decisions are cached); CTI lookups are de-duplicated (single-flight) to protect the free-tier quota\n    * URI-filter regex runs against a length-capped subject and fails closed on backtracking\/recursion limits (ReDoS hardening)\n    * SQLite `busy_timeout` plus request-path fail-open so background writes (VACUUM, bulk swap) can't 500 the site; bulk-list refresh swaps content transactionally without dropping the live table\n    * Manual blacklist entries are exempt from TTL expiry and auto-clean trimming, and a manual add promotes an existing auto-detected entry\n    * Emergency CLI `--whitelist` writes only to the user config (never the shipped default) and handles both block-scalar and list whitelist formats\n    * Backslash-correct LIKE escaping for AI-crawler user-agent matching"}}},"forumz":{"name":"Forumz","version":"1.0.4","description":"Flat-file forum boards, profiles, and moderation for Grav \u2014 no database, no Discourse rent. Lite MIT edition works on standard Grav; optional GravMUD fences when grav-mud-alpha is installed.","description_html":"<p>Flat-file forum boards, profiles, and moderation for Grav \u2014 no database, no Discourse rent. Lite MIT edition works on standard Grav; optional GravMUD fences when grav-mud-alpha is installed.<\/p>","description_plain":"Flat-file forum boards, profiles, and moderation for Grav \u2014 no database, no Discourse rent. Lite MIT edition works on standard Grav; optional GravMUD fences when grav-mud-alpha is installed.","icon":"comments","author":{"name":"FutureVision Labs \u00b7 Team DC","url":"https:\/\/gravmud.site","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/forumz.gravmud.site","docs":"https:\/\/forumz.gravmud.site","keywords":"grav, forum, flat-file, community, boards, profiles, admin2","bugs":"https:\/\/github.com\/GravMUD\/grav-plugin-forumz\/discussions","license":"MIT","tag_name":"1.0.4","date":"2026-06-27T04:19:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/forumz\/1.0.4","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-forumz","slug":"forumz","install_path":"user\/plugins\/forumz","content_sha256":"01126fae1c045cbe8bf85b5f4795c97f40358000708901a56dd0f09b859180e1","changelog":{"Changelog \u2014 Forumz":{"date":"1.0.2 \u2014 2026-06-23 (PHP 8.3+ static events fix)","content":"### Fixed\n\n- **`getSubscribedEvents()`** \u2014 use `self::mudAlphaAvailable()` instead of `$this` in static context (fatal on PHP 8.3+)\n\n## 1.0.1 \u2014 2026-06-12 (Admin2 board CRUD)\n\n### Added\n\n- **Admin2 board management** \u2014 create, edit, delete boards at `\/plugin\/forumz` \u2192 Boards tab\n- Persists admin boards to **`user\/config\/plugins\/forumz.yaml`**\n- Optional delete: thread data wipe + `.mforum` file removal\n\n## 1.0.0 \u2014 2026-06-12 (Lite MIT \u00b7 GPM)\n\n### Added\n\n- **Forumz Lite (MIT)** \u2014 free GPM release; renamed from `mud-forumz` \/ MUD Forumz\n- **Standard Grav support** \u2014 boards API, profiles, bundled CSS\/JS; no GravMUD required\n- **`.mforum` board scanner** \u2014 `user\/pages\/**\/*.mforum` with YAML config overrides\n- **Mambers identity bridge** (optional) \u2014 registered boards + Grav Login session\n- **Admin2 panel** (optional) \u2014 `\/plugin\/forumz` \u00b7 moderation queue \u00b7 profiles \u00b7 boards\n- **GravMUD fences** (optional) \u2014 `:::forum` embeds when **grav-mud-alpha** is installed\n- **Bundled assets** \u2014 `assets\/forumz.css` + `assets\/forumz.js`\n\n### Migration from mud-forumz\n\n- Plugin slug: `mud-forumz` \u2192 **`forumz`**\n- Data dir: `user\/data\/mud-forumz\/` \u2192 **`user\/data\/forumz\/`** (copy existing data)\n- Config: `user\/config\/plugins\/forumz.yaml`\n- API default: **`\/api\/forumz`** (Grav 2 bridge: `\/api\/v1\/forumz`)\n- CSS\/JS hooks: `.forumz-*` \u00b7 `data-forumz`\n\n### Optional integrations\n\n- **grav-mud-alpha** \u2014 `.mud` fence compile (`:::forum`)\n- **grav-mud-admin** \u2014 EvvyTink moderation at `\/mud-admin` \u2192 Forumz\n- **mambers** \u2014 Social Stack identity bridge\n\n### Planned (Pro \/ later)\n\n- Attachments upload\n- Dedicated `\/forum` shell route + embed.js on any `.md` page"}}},"mambers":{"name":"Mambers","version":"0.2.31","description":"Membership on Grav \u2014 tiers, gates, one identity across MUD community plugins. Lite = signup + site.member. Pro = Admin2 Members panel, Stripe, bridges.","description_html":"<p>Membership on Grav \u2014 tiers, gates, one identity across MUD community plugins. Lite = signup + site.member. Pro = Admin2 Members panel, Stripe, bridges.<\/p>","description_plain":"Membership on Grav \u2014 tiers, gates, one identity across MUD community plugins. Lite = signup + site.member. Pro = Admin2 Members panel, Stripe, bridges.","icon":"users","author":{"name":"FutureVision Labs \u00b7 Team DC","url":"https:\/\/gravmud.site","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"login","version":">=1.7.0"},{"name":"admin2","version":">=1.0.0"},{"name":"api","version":">=1.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/mambers.gravmud.site","docs":"https:\/\/mambers.gravmud.site","keywords":"grav, membership, login, community, mambers, tiers, admin2","bugs":"https:\/\/github.com\/GravMUD\/grav-plugin-mambers\/discussions","license":"MIT","tag_name":"0.2.31","date":"2026-06-27T04:20:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mambers\/0.2.31","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-mambers","slug":"mambers","install_path":"user\/plugins\/mambers","content_sha256":"2d20ab51064d40ed20dec7277f16b2e40822db8e0364d3faa5e25beee1afac3e","changelog":{"Changelog \u2014 Mambers":{"date":"0.2.29 \u2014 2026-06-11 (members API route \u2014 gravfans.live hotfix)","content":"### Fixed\n\n- **Activity feed \"Could not load activity\" on deploys where Grav API `\/api\/v1\/*` returns 500** \u2014 Mambers now serves its public JSON API at `\/members\/api\/*` via the Mambers router (same handlers as the Grav API bridge). Browser templates default to this relative path so village feed + profile activity work without the Grav API plugin stack.\n- Set `public_api_route: grav_api` in Mambers config to keep using `\/api\/v1\/mud-mambers` when Grav API is healthy.\n\n## 0.2.28 \u2014 2026-06-11 (MBR-2.10 members nav + docs)\n\n### Added\n\n- **Members nav** \u2014 Directory | Village feed pill links on `\/members` and `\/members\/feed`\n\n### Changed\n\n- **Hype docs** \u2014 Pro roadmap: fan pages & member groups (shop line removed)\n\n## 0.2.27 \u2014 2026-06-11 (MBR-2.9 post edit + rich bio)\n\n### Added\n\n- **Post edit** \u2014 Edit button on your posts \u00b7 inline rich editor \u00b7 visibility \u00b7 PATCH `\/activity\/{id}` \u00b7 link preview refreshes from body URL\n- **Rich bio** \u2014 TipTap-class toolbar + emoji picker on profile Edit tab \u00b7 `profile_bio_html` stored sanitized \u00b7 rich display on feed tab\n\n### Added (shared)\n\n- **`mambers-rich-editor.js`** \u2014 shared toolbar + emoji for composer, bio, and post edit\n\n## 0.2.25 \u2014 2026-06-11 (MBR-2.8.4 OG link cards + share URL)\n\n### Changed\n\n- **Link preview cards** \u2014 full-width OG image on top, title + description + hostname below (FB-style)\n- **Share \/ permalink** \u2014 always copies absolute URL with `https:\/\/yoursite\/...` (fixes path-only Grav `base_url` in dev)\n- **OG meta** \u2014 post pages emit `og:url`; link previews include `site_name` from hostname\n\n## 0.2.24 \u2014 2026-06-11 (MBR-2.8.3 image compression)\n\n### Added\n\n- **Server-side image compression** \u2014 GD resize (max edge 2048px) + JPEG recompress; PNG\/WebP without alpha \u2192 JPG; keeps alpha PNGs as PNG\n- **Ingest vs stored caps** \u2014 upload up to 15 MB per image when compression on; stored target 5 MB (configurable)\n- **Admin** \u2014 `activity_image_compress_enabled`, `activity_upload_max_mb`, `activity_image_max_edge_px`, `activity_image_jpeg_quality`\n\n## 0.2.23 \u2014 2026-06-11 (MBR-2.8.2 upload UX)\n\n### Added\n\n- **Pre-upload media checks** \u2014 file list with sizes; red warnings when over limit, wrong type, or too many files; Post disabled until fixed\n- **Live upload meter** \u2014 progress bar + % during multipart post (XHR upload progress)\n- **Limits hint** \u2014 composer shows max image\/video MB and counts from site config\n\n## 0.2.22 \u2014 2026-06-11 (MBR-2.8.1 media upload + profile tabs)\n\n### Fixed\n\n- **Media posts via API** \u2014 Grav API bridge now forwards PSR-7 multipart uploads; activity `storeUploads` accepts bridge temp files (fixes \u201cPosting\u2026\u201d hang \/ silent drop)\n- **Upload errors** \u2014 clear messages for oversize, partial, and rejected file types\n\n### Added\n\n- **Profile tabs** \u2014 Feed (default) vs Links when member has link-in-bio + activity feed\n- **Giphy fallback** \u2014 uses Messenger `giphy_api_key` when Mambers key is empty\n- **Asset cache bust** \u2014 `?v=` on activity JS\/CSS\n\n## 0.2.21 \u2014 2026-06-07 (MBR-2.8 social composer + reactions)\n\n### Added\n\n- **Rich composer** \u2014 TipTap-class toolbar (bold\/italic\/underline\/link), emoji picker, optional Giphy GIF attach\n- **FB-style links** \u2014 paste URL in post body \u2192 live OG preview card (no separate link field); server auto-unfurls first URL\n- **Emoji reactions** \u2014 \ud83d\udc4d\u2764\ufe0f\ud83d\ude02\ud83d\ude2e\ud83d\ude22\ud83d\ude20 on posts \u00b7 `POST \/activity\/{id}\/react`\n- **Share** \u2014 copy permalink to clipboard\n- **API** \u2014 `GET \/giphy\/search?q=` (proxied when `activity_giphy_api_key` set)\n\n## 0.2.20 \u2014 2026-06-05 (MBR-2.7 social graph + FB feed UI)\n\n### Added\n\n- **Social graph** \u2014 follow \/ unfollow \/ block; JSONL edges under `user\/data\/mambers\/graph\/`; follower & following counts on profiles\n- **API** \u2014 `GET graph\/stats|followers|following\/{user}`, `POST|DELETE graph\/follow|block\/{user}`, `GET \/feed?scope=following`\n- **FB-style feed UI** \u2014 image grid layouts (1\u20134+), lightbox modal viewer, inline video (`mp4`\/`webm` up to 10MB), OG link cards in composer + posts\n- **Village feed tabs** \u2014 All vs Following for logged-in members; compose from `\/members\/feed`\n\n### Fixed\n\n- **Activity API URL** \u2014 templates no longer double-prefix `\/api\/v1\/api\/\u2026`; `MudMambersConfig::apiUrl()` normalizes legacy `api_route` values\n\n## 0.2.19 \u2014 2026-06-11 (MBR-2.5 activity feed)\n\n### Added\n\n- **Native activity feed** \u2014 JSONL posts under `user\/data\/mambers\/activity\/`, profile Activity tab, site `\/members\/feed`\n- **API** \u2014 `GET \/feed`, `GET \/activity\/{username}`, `POST \/activity`, `PATCH|DELETE \/activity\/{id}`, `POST \/link-preview`\n- **Composer** \u2014 text, images (Lite caps), link OG preview cards, visibility (`public` \/ `members` \/ `private`)\n- **Fences** \u2014 `:::mambers-feed`, `:::mambers-activity{user=\"damo\"}`\n- **Per-post share URLs** \u2014 `\/members\/{user}\/post\/{id}` with media\/link OG meta\n\n## 0.2.18 \u2014 2026-06-11 (Grav 2 RC5 user fields)\n\n### Fixed\n\n- **`Call to undefined method User::username()`** on `\/members\/*` when logged in \u2014 Grav 2 RC5 exposes identity via `get('username')`, not Grav 1 `username()` methods; `method_exists()` was a false positive on session users\n- **`MudMambersGravUser`** \u2014 shared `username` \/ `fullname` \/ `displayName` \/ `avatar` helpers for profiles, directory cache, and Mambers API\n\n## 0.2.17 \u2014 2026-06-10 (MUD fences)\n\n### Added\n\n- **`MudMambersFences`** \u2014 embed Mambers in `.mud` pages via `onMudFenceRender` (same pattern as Forumz)\n- Fence types: `::: mambers` \/ `mambers-directory`, `::: mambers-featured`, `::: mambers-profile` (+ optional `forumz=\"true\"` feed), `::: mambers-login`, `::: mambers-register`, `::: mambers-auth`\n- Client hydration: `assets\/mud-mambers-fences.js` + `mud-mambers-fences.css` (auto-enqueued when a fence renders)\n\n## 0.2.16 \u2014 2026-06-05 (inline register form)\n\n### Fixed\n\n- **`\/user_register` 400 \u2014 `forms\/form.html.twig` not defined** \u2014 register auth skin now uses inline form (same pattern as login); Form plugin hidden fields + Mambers label strings\n\n## 0.2.15 \u2014 2026-06-05 (auth route links + claim redirect)\n\n### Fixed\n\n- **Create account on `\/members` reloads directory** \u2014 empty `href` when Login `getRoute('register')` was null (broken\/missing `user_registration.enabled`); Mambers now forces Login register routes and exposes `mambers_register_url` \/ `mambers_login_url` with `\/user_register` fallback\n- **Claim your profile \u2192 login with no return** \u2014 `\/members\/me` now sets `session.redirect_after_login` before sending guests to login so post-login lands on profile edit\n\n## 0.2.14 \u2014 2026-06-05 (auth label strings)\n\n### Fixed\n\n- **Login form shows raw `PLUGIN_LOGIN.*` keys** \u2014 Mambers auth skin now uses `languages\/en.yaml` (`PLUGIN_MAMBERS.AUTH_*`) instead of Login plugin translation keys that are not loaded in Mambers Twig context\n\n## 0.2.13 \u2014 2026-06-05 (self-contained login form)\n\n### Fixed\n\n- **`partials\/login-form.html.twig` still not defined** after 0.2.12 \u2014 0.2.12 only mutated `twig_paths` after the Twig loader was built (no-op); login skin now ships an inline form in `mambers-auth\/login.html.twig` with no Login-plugin partial dependency; Form\/Login paths register in `onTwigTemplatePaths` + `onTwigLoader`\n\n## 0.2.12 \u2014 2026-06-05 (login form twig paths)\n\n### Fixed\n\n- **`Template \"partials\/login-form.html.twig\" is not defined`** on Mambers auth skin \u2014 prepend Login + Form plugin template paths before rendering `mambers-auth\/login.html.twig`\n\n## 0.2.11 \u2014 2026-06-05 (login form bootstrap)\n\n### Fixed\n\n- **`\/login` shows tagline only, no form** \u2014 physical auth pages missing `template: login` (or slim plugin-only deploy) now get Login plugin page stubs with forms; Mambers auth skin applies by route and re-applies after Login plugin sets its template\n\n## 0.2.10 \u2014 2026-06-05 (auth class import hotfix)\n\n### Fixed\n\n- **`Class \"Grav\\Plugin\\MudMambersAuth\" not found`** on `\/login` \u2014 `use Grav\\Plugin\\Mambers\\MudMambersAuth` in `mambers.php` (plugin class lives in `Grav\\Plugin` namespace)\n\n## 0.2.9 \u2014 2026-06-05 (login route bootstrap)\n\n### Fixed\n\n- **`\/login` + `\/user_register` 404** on slim GetGRAV deploys \u2014 Mambers now registers Login virtual pages when Login plugin path bootstrap misses; gravfans package includes physical auth pages + keeps `login`\/`form`\/`api` in deploy zip\n\n## 0.2.8 \u2014 2026-06-05 (virtual route user hotfix)\n\n### Fixed\n\n- **`\/members\/me` 500** \u2014 `Identifier \"user\" is not defined` when Login's `$grav['user']` service was not yet available on early virtual-route handling; `MudMambersSession::user()` resolves session\/guest safely\n- **Virtual route Twig context** \u2014 profile pages set `user` + `uri` before `onTwigSiteVariables`; login partials and logout links work on Mambers shell routes\n\n## 0.2.7 \u2014 2026-06-05 (GPM review #4119)\n\n### Security\n\n- **Path traversal** \u2014 cover\/avatar serve routes only read files from the member media directory; removed free-text `profile_cover` Admin2 field (upload-only)\n- **CSRF** \u2014 profile save, cover upload, and avatar upload require Grav nonce on router forms and API writes (`nonce` POST field or `X-Members-Nonce` header)\n- **MIME hardening** \u2014 unknown image extensions on cover\/avatar routes return 404 instead of `application\/octet-stream`\n\n### Fixed\n\n- **API bridge identity** \u2014 `\/api\/v1\/mud-mambers` resolves session\/JWT\/API-key user via `SessionAuthenticator` and `setApiUser()` (same pattern as Messenger)\n- **Login config rewrite** \u2014 Mambers no longer overwrites global Login redirect settings every request unless `sync_login_redirects: true`\n- **Directory performance** \u2014 60s TTL cache for member listing; busted on profile save\/upload\n\n### Changed\n\n- Dropped legacy `grav-mud-mambers` config slug fallback\n- Neutral GPM defaults \u2014 empty `linkz_cta_url`; site config can set campaign CTA\n- Removed legacy non-API route fallback (`api\/mud-mambers` direct hit); Grav API plugin required\n\n## 0.2.6 \u2014 2026-06-09 (virtual route output shell)\n\n### Fixed\n\n- **Messenger float bubble on Mambers pages** \u2014 virtual routes (`\/members`, profiles, etc.) bypass Grav's `onOutputGenerated`; `MudMambersTheme::finalizeHtml()` now appends Messenger (GetGRAV `goggrav-messenger.js` on mud_site, or standard launcher + assets elsewhere)\n- Pattern applies to any plugin that hooks output generation \u2014 Mambers responses now get the same site shell tail as normal Grav pages\n\n## 0.2.5 \u2014 2026-06-09 (directory guest CTA)\n\n### Added\n\n- **Guest CTA on `\/members`** \u2014 when logged out, shows Create account \u00b7 Log in \u00b7 Claim your profile links\n- Register link only when Login plugin registration is enabled\n\n### Changed\n\n- Empty directory copy \u2014 guests nudged to sign up; logged-in members told to enable **Show in public directory**\n\n## 0.2.4 \u2014 2026-06-09 (profile hero + theme shell)\n\n### Added\n\n- **GetGRAV theme shell** \u2014 directory, profile, not-found, **login**, and **register** use the **active theme layout** (`default.html.twig` \u2192 header\/footer), not a Mambers-only island\n- Theme resolver falls back `default.html.twig` \u2192 `partials\/base.html.twig` \u2192 plugin layout (Quark, grav-mud-site, GetGRAV all supported)\n- GetGRAV `gg-foot` only when `grav_mud_goggrav.mudSite` is on; standard themes use their own footer\n- **FB\/Twitter-style profile hero** \u2014 cover + avatar + name embedded in one banner with bottom gradient\n- **Cover & avatar edit buttons** on the hero \u2014 open upload modals (no more inline file forms)\n- **Avatar upload** \u2014 `POST \/members\/{username}\/avatar`, served at `\/members\/avatar\/{username}`\n- **Log out** link on own profile (`\/members\/me`)\n- Centred campaign footer (`gg-foot`) on Mambers pages\n\n### Changed\n\n- Directory cards use mini cover + overlapping avatar\n- Profile CSS uses GetGRAV `--gg-*` tokens when present\n- Mambers router hydrates standard Grav Twig context (`pages`, `page`, `onTwigSiteVariables`) on virtual routes\n- Campaign footer (`gg-foot`) only on mud_site GetGRAV installs\n\n## 0.2.3 \u2014 2026-06-09 (registration + directory fix)\n\n### Fixed\n\n- **Member directory empty** \u2014 account scan + permission check reads stored `access.site.member` (not session-only `authorize()`)\n- **Post-login redirect** \u2192 `\/members\/me` (own profile + edit form), not bare directory\n- **Post-registration** \u2192 `\/login` (no auto-login) when `login_after_registration: false`\n\n## 0.2.2 \u2014 2026-06-09 (auth skin)\n\n### Added\n\n- **Mambers auth skin** \u2014 dark glass card for Login `\/user_register` + `\/login` (replaces 2005 default form on dark themes)\n- Config toggle `auth_skin` (default on)\n\n## 0.2.1 \u2014 2026-06-09 (hotfix)\n\n### Fixed\n\n- **PSR-4 router boot** \u2014 `MudMambersRouter` namespace on profile routes (same class of bug as Messenger 0.3.2)\n- **Profile Twig timing** \u2014 register templates on `onTwigLoader` (Grav 2 builds loader before `onTwigInitialized`)\n- **404 fallback** \u2014 `onPageNotFound` delegates to profile router like Eventz\n\n## 0.2.0 \u2014 2026-06-09 (MBR-2 \u00b7 profiles)\n\n### Added\n\n- **Member profiles** at `\/members\/{username}` with bio + link-in-bio (Lite max 5 links)\n- **Member directory** at `\/members` with search + pagination\n- **Profile cover image** \u2014 one upload = page banner + **`og:image`** social share card\n- `\/members\/me` redirect for logged-in members\n- Public API: `GET \/members`, `GET \/profile\/{username}`, `GET|PATCH \/profile`, `POST \/profile\/cover`\n- Admin2 account fields: `profile_public`, `profile_bio`, `profile_cover`, `profile_links`\n- PSR-4 autoload (production-safe boot like Messenger 0.3.2)\n\n## 0.1.0 \u2014 2026-06-09 (MBR-1 \u00b7 GPM)\n\n### Added\n\n- Plugin skeleton (`mambers` slug, legacy `grav-mud-mambers` config fallback)\n- `site.member` permission registration via `permissions.yaml`\n- Login `onUserLoginRegisterData` \u2014 default tier + member access on signup\n- Pro expiry check on `onUserLoginAuthorize` when `edition: pro`\n- Page gating via `access.site.member`, `login.member`, `login.visibility: member`, `member_only_routes`\n- Public API `\/api\/v1\/mud-mambers\/whoami`\n- Admin2 account blueprint fields (`member_tier`, `member_since`; Pro fields when edition pro)\n- Demo page pattern documented in README\n\n### Roadmap\n\n- MBR-3: Members sidebar, pending queue, audit log (Pro)\n- MBR-4\u20137: Forumz \/ Stripe \/ Shop bridges \u00b7 profile theming (Pro)"}}},"messenger":{"name":"GravFans Messenger","version":"0.3.9","description":"Flat-file community chat for Grav 2.0 \u2014 polling transport, Giphy, Paint Shop. Pro unlocks moderation and forms.","description_html":"<p>Flat-file community chat for Grav 2.0 \u2014 polling transport, Giphy, Paint Shop. Pro unlocks moderation and forms.<\/p>","description_plain":"Flat-file community chat for Grav 2.0 \u2014 polling transport, Giphy, Paint Shop. Pro unlocks moderation and forms.","icon":"comment-dots","author":{"name":"FutureVision Labs \u00b7 Team DC","url":"https:\/\/gravfans.live","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"admin2","version":">=1.0.0"},{"name":"api","version":">=1.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/messenger.gravmud.site","docs":"https:\/\/messenger.gravmud.site","keywords":"grav, messenger, chat, community, giphy, polling, pro","bugs":"https:\/\/github.com\/GravMUD\/grav-plugin-messenger\/discussions","license":"MIT","tag_name":"0.3.9","date":"2026-06-27T04:20:29Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/messenger\/0.3.9","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-messenger","slug":"messenger","install_path":"user\/plugins\/messenger","content_sha256":"210038a93879269b0e2f96f73a420d3699cf7f57f5a89bf166219fb75737d0a2","changelog":{"0.3.7":{"date":"06\/13\/2026","content":"1. [](#bugfix)\n    * **`Class \"Grav\\Plugin\\MudMessenger\" not found`** \u2014 import `Grav\\Plugin\\Messenger\\MudMessenger` in `interceptPublicApi()` (fixes chat groups\/messages 500 on legacy `\/api\/mud-messenger` route)\n"},"0.3.6":{"date":"06\/12\/2026","content":"1. [](#bugfix)\n    * **Grav API `\/api\/v1\/*` 500 on RC5 deploys** \u2014 public JSON served at `\/api\/mud-messenger` via early `interceptPublicApi()` (bypasses broken Grav API router)\n    * **Browser defaults** \u2014 `mud-messenger.js` + Twig `api_route` use legacy direct path, not `\/api\/v1\/mud-messenger`\n"},"0.3.5":{"date":"06\/11\/2026","content":"1. [](#bugfix)\n    * **Grav 2 RC5 Mambers bridge** \u2014 `MudMessengerMambersBridge::siteUser()` and `MudMessengerIdentity` read `username` \/ `fullname` via `get()` (fixes `User::username()` fatals when Mambers identity bridge runs on logged-in page loads)\n"},"0.3.4":{"date":"06\/05\/2026","content":"1. [](#bugfix)\n    * **Mambers bridge boot** \u2014 `messenger.php` imports `MudMessengerMambersBridge` + `MudMessengerIdentity` in `Grav\\Plugin\\Messenger` namespace (fixes `Class \"Grav\\Plugin\\MudMessengerMambersBridge\" not found` on sites with Mambers identity bridge enabled)\n"},"0.3.3":{"date":"06\/05\/2026","content":"1. [](#security)\n    * **Public posts** \u2014 guests cannot forge `type=system` or `type=form` messages\n    * **Secrets** \u2014 settings panel uses redacting `\/messenger\/admin\/config`; `giphy_api_key` + `mod_key` masked on read, password fields in blueprint\n    * **SVG uploads** \u2014 removed from thread-background allowlist\n    * **Mod key** \u2014 `POST \/mod\/session` JSON body (not query string)\n    * **Giphy proxy** \u2014 per-IP rate limit; stored GIF URLs restricted to Giphy HTTPS hosts\n2. [](#improved)\n    * **Polling only** \u2014 removed dead SSE\/stream path (was unreachable via API bridge + FPM hazard)\n    * **Data path** \u2014 `user-data:\/\/messenger\/` via locator\n    * **GPM manifest** \u2014 `compatibility.grav: ['2.0']` only; plugin ships disabled with neutral footer defaults\n    * Unconditional `onApi*` registration; removed legacy no-API fallback engine\n"},"0.3.2":{"date":"06\/09\/2026","content":"1. [](#bugfix)\n    * **Production boot fix:** register PSR-4 autoload for `Grav\\Plugin\\Messenger\\` \u2014 fixes `MudMessengerConfig` not found on Linux\/cPanel when plugin classes were never required before use\n"},"0.3.1":{"date":"06\/05\/2026","content":"1. [](#new)\n    * **Mambers Lite identity bridge** \u2014 when Mambers is installed, logged-in members get locked chat nicks via Grav Login (fullname or username)\n    * `GET \/api\/v1\/mud-messenger\/identity\/session` for session refresh after login\n2. [](#improved)\n    * Mambers Pro maps `site.member.moderator` \u2192 Messenger mod permissions when both plugins are present\n"},"0.3.0":{"date":"06\/09\/2026","content":"1. [](#improved)\n    * **Single plugin** \u2014 merged `grav-mud-messenger` engine + `messenger` Admin2 shell into one `messenger` package\n    * Config key `plugins.messenger` (reads legacy `plugins.grav-mud-messenger` if present)\n    * GPM repo target `grav-plugin-messenger` (one zip, one slug)\n    * **Honest tiers:** Lite = chat, Giphy, swag tags, Paint Shop \u00b7 Pro = moderation + form builder (gated in code)\n    * Shipped defaults: `edition: lite`, swag tags on (Lite feature per tier canon)\n2. [](#bugfix)\n    * Blueprint labels aligned \u2014 swag tags marked Lite, not Pro\n    * Admin settings + config file use `messenger` slug consistently\n"},"0.2.0":{"date":"05\/2026","content":"1. [](#new)\n    * Float bubble, groups, Giphy, swag tags, Paint Shop, moderation, forms\n    * Admin2 cockpit + MCP wire-ins"}}},"swag-store":{"name":"Swag Store","version":"0.3.4","description":"Printify swag storefront for Grav \u2014 API sync, \/swag catalog, Messenger swag tags. Pro adds Stripe checkout + agency packs.","description_html":"<p>Printify swag storefront for Grav \u2014 API sync, \/swag catalog, Messenger swag tags. Pro adds Stripe checkout + agency packs.<\/p>","description_plain":"Printify swag storefront for Grav \u2014 API sync, \/swag catalog, Messenger swag tags. Pro adds Stripe checkout + agency packs.","icon":"shopping-bag","author":{"name":"FutureVision Labs \u00b7 Team DC","url":"https:\/\/gravfans.live","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"admin2","version":">=1.0.0"},{"name":"api","version":">=1.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/swag.gravmud.site","docs":"https:\/\/swag.gravmud.site","keywords":"grav, gravfans, printify, swag, merch, pod, messenger","bugs":"https:\/\/github.com\/GravMUD\/grav-plugin-swag-store\/discussions","license":"MIT","tag_name":"0.3.4","date":"2026-06-27T04:20:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/swag-store\/0.3.4","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-swag-store","slug":"swag-store","install_path":"user\/plugins\/swag-store","content_sha256":"ce3350e4136e7fd308cc458333f56bd0a8c71556c4b1d3b083b9279691cea108","changelog":{"0.3.2":{"date":"06\/12\/2026","content":"1. [](#bugfix)\n    * **Grav API `\/api\/v1\/*` 500 on RC5 deploys** \u2014 public catalog at `\/api\/swag-store` via early `interceptPublicApi()`\n    * **Twig\/catalog URLs** \u2014 default to legacy direct path, not `\/api\/v1\/swag-store`\n"},"0.3.1":{"date":"06\/09\/2026","content":"1. [](#security)\n    * **Printify token redaction** \u2014 admin config read never returns `printify_api_token` in cleartext; settings panel uses `\/swag-store\/admin\/config` not generic config API\n    * **Sync auth** \u2014 removed unauthenticated `POST \/api\/v1\/swag-store\/sync`; sync is Admin2-only (`api.config.write`)\n    * **Storefront XSS** \u2014 `esc()` in `swag.js` now escapes quotes in attribute contexts\n    * **Public catalog** \u2014 cache miss serves demo catalog only; no outbound Printify call from anonymous `GET \/catalog`\n    * **MUD fence links** \u2014 markdown links require `http(s):\/\/`; pieces escaped\n2. [](#improved)\n    * GPM manifest: Grav 2.0 + admin2 + api dependencies; `printify_api_token` as password field\n    * Catalog cache via `user-data:\/\/swag-store\/catalog.json`\n    * `onApi*` events subscribed unconditionally; guarded inside handlers\n    * API status version aligned to package semver\n"},"0.3.0":{"date":"06\/09\/2026","content":"1. [](#improved)\n    * **Single plugin** \u2014 merged `grav-mud-swag-store` engine + Admin2 shell into one `swag-store` package\n    * Config key `plugins.swag-store` (reads legacy `plugins.grav-mud-swag-store` if present)\n    * GPM repo target `grav-plugin-swag-store` (one zip, one slug)\n2. [](#bugfix)\n    * Admin settings panel + config file use `swag-store` slug consistently\n"},"0.2.0":{"date":"05\/2026","content":"1. [](#new)\n    * Printify sync, `\/swag` storefront, Messenger swag tags\n    * Admin2 cockpit + settings panel"}}},"eventz":{"name":"Eventz","version":"0.4.4","description":"Flat-file events + RSVP for Grav 2.0 \u2014 chapters, recurrence, Admin2 cockpit, iCal, messenger wire-ins.","description_html":"<p>Flat-file events + RSVP for Grav 2.0 \u2014 chapters, recurrence, Admin2 cockpit, iCal, messenger wire-ins.<\/p>","description_plain":"Flat-file events + RSVP for Grav 2.0 \u2014 chapters, recurrence, Admin2 cockpit, iCal, messenger wire-ins.","icon":"calendar-days","author":{"name":"FutureVision Labs \u00b7 Team DC","url":"https:\/\/gravmud.site","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"admin2","version":">=1.0.0"},{"name":"api","version":">=1.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/eventz.gravmud.site","docs":"https:\/\/eventz.gravmud.site","keywords":"grav, events, rsvp, meetup, flat-file, admin2, ical, messenger","bugs":"https:\/\/github.com\/GravMUD\/grav-plugin-eventz\/discussions","license":"MIT","tag_name":"0.4.4","date":"2026-06-27T04:19:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/eventz\/0.4.4","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-eventz","slug":"eventz","install_path":"user\/plugins\/eventz","content_sha256":"9c7f4908db26aeb7251933b8a07dd72508ae839e39f159125dde0772386ff118","changelog":{"0.4.3":{"date":"06\/26\/2026","content":"1. [](#bugfix)\n    * **Packaging** - Fixed ZIP layout issue for GPM installation compatibility.\n"},"0.4.2":{"date":"06\/12\/2026","content":"1. [](#bugfix)\n    * **Grav API `\/api\/v1\/*` 500 on RC5 deploys** \u2014 public JSON at `\/api\/mud-eventz` via early `interceptPublicApi()`\n    * **Embed defaults** \u2014 fence + Twig API base use legacy direct path, not `\/api\/v1\/mud-eventz`\n"},"0.4.1":{"date":"06\/05\/2026","content":"1. [](#security)\n    * **Admin API** \u2014 PII\/CSV\/mutations gated on `api.config.read` \/ `api.config.write` (not bare `api.access`)\n    * **CSV export** \u2014 formula-injection prefix for cells starting with `=+-@`\n    * **RSVP mail** \u2014 CRLF stripped from names\/subjects; `From:` from site email config (not hardcoded domain)\n2. [](#improved)\n    * **Data path** \u2014 `user-data:\/\/eventz\/` via locator (not `GRAV_ROOT\/user\/data\/mud-eventz`)\n    * **Defaults** \u2014 empty `notify_email`, plugin ships disabled; generic Admin2\/embed copy (no site-specific slugs)\n    * **API bridge** \u2014 unconditional `onApi*` registration; removed legacy no-API fallback engine\n3. [](#bugfix)\n    * RSVP capacity + `max_rsvp_entries` guard on submit\n"},"0.4.0":{"date":"06\/09\/2026","content":"1. [](#improved)\n    * **Single plugin** \u2014 merged `grav-mud-eventz` engine + Admin2 shell into one `eventz` package (Andy-good-citizen lane)\n    * Config key `plugins.eventz` (reads legacy `plugins.grav-mud-eventz` if present)\n    * Runtime Admin2 registration only \u2014 no `admin-next.yaml` writes\n2. [](#bugfix)\n    * GPM: one zip `grav-plugin-eventz.zip`, one slug `eventz`\n"},"0.3.0":{"date":"06\/09\/2026","content":"1. [](#new)\n    * **GPM release** \u2014 GitHub repo, docs site at [eventz.gravmud.site](https:\/\/eventz.gravmud.site)\n    * **Messenger wire** \u2014 auto-create chat groups on event save (`MudEventzWire` + `MudMessengerGroups::upsert`)\n    * **Admin2 Eventz page** \u2014 chapters, recurrence, messenger wire status on save\n2. [](#improved)\n    * Public `\/eventz` UI, embed.js, iCal export, series hub\n    * Grav 2 API bridge at `\/api\/v1\/mud-eventz`\n"},"0.2.0":{"date":"05\/2026","content":"1. [](#new)\n    * EvvyTink admin \u2014 RSVP list, CSV export, close\/reopen\n    * `:::eventz` fence \u00b7 chapters \u00b7 wire-ins skeleton\n"},"0.1.0":{"date":"04\/2026","content":"1. [](#new)\n    * Flat-file events + RSVP skeleton\n    * goggrav `\/meetup` delegation"}}},"grav-mud-admin":{"name":"GravMUD Admin","version":"1.5.1-alpha","description":"Free MIT MUD-native admin panel with EvvyTink editor. Requires grav-mud-alpha.","description_html":"<p>Free MIT MUD-native admin panel with EvvyTink editor. Requires grav-mud-alpha.<\/p>","description_plain":"Free MIT MUD-native admin panel with EvvyTink editor. Requires grav-mud-alpha.","icon":"edit","author":{"name":"FutureVision Labs","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"grav-mud-alpha","version":">=0.5.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/gravmud.site","keywords":"grav, mud, admin, evvytink, editor","license":"MIT","tag_name":"1.5.1-alpha","date":"2026-06-09T05:55:48Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/grav-mud-admin\/1.5.1-alpha","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-grav-mud-admin","slug":"grav-mud-admin","install_path":"user\/plugins\/grav-mud-admin","content_sha256":"26d7df21f358e9c28827c573bce35e915be9876b7d0ae1b30a5139c39ee8c4c3","changelog":{"1.5.1-alpha":{"date":"06\/06\/2026","content":"1. [](#bugfix)\n    * **Critical:** stop duplicate Team DC API routes when JavaBean \/ Operator Dock \/ Mambo are enabled \u2014 duplicate `\/javabean\/presets` registration crashed the entire Grav 2 `\/api\/v1` router and blanked Admin2 (EvvyTink white screen). Team DC shims stay on `\/api\/v1\/mud-admin\/{subpath}` only (`MudTeamDcBridge`)\n    * **Fix:** Grav 2 plugin bootstrap \u2014 `return new GravMudAdminPlugin($name, $grav)` so Andy slug loads reliably\n    * **Fix:** Grav 2 API bridge subpath resolution for `\/mud-admin\/pages` and nested routes (`MudAdminApiBridgeController`)\n    * **Fix:** GetGRAV! live preview \u2014 `gravBaseUrl()` in preview context, full-bleed space shell (no white marketing column), skip `grav-mud.css` for getgrav presets\n    * **Fix:** EvvyTink Admin2 page \u2014 compile preview on page click, surfaced API errors, preview fullscreen toggle (Esc)\n\n1. [](#improved)\n    * MUD API catch-all routing only (no redundant FastRoute entries that shadow `{subpath}`)\n"},"1.5.0-alpha":{"date":"06\/05\/2026","content":"1. [](#new)\n    * **MIT license flip** \u2014 GravMUD Admin + EvvyTink free for all sites (groundswell canon)\n    * **grav-mud-alpha in GPM** \u2014 install compiler via `bin\/gpm install grav-mud-alpha`\n    * Public GitHub repo, GitHub Pages landing, Discussions enabled\n    * Grav 2.0 Admin2 web component (`admin-next\/pages\/grav-mud-admin.js`)\n    * MUD Copilot API: `\/api\/mud-admin\/spec\/reference` + Grav 2.0 bridge at `\/api\/v1\/mud-admin\/*`\n"},"1.1.0":{"date":"05\/2026","content":"1. [](#new)\n    * EvvyTink editor \u2014 CodeMirror, live preview, Publish\n    * Widget Builder dashboard, media picker, theme presets, RSS widgets\n    * Commentz \/ Forumz moderation panels in admin shell"}}},"grav-mud-alpha":{"name":"Grav MUD Alpha","version":"0.7.4","description":"Grav MUD (Alpha) \u2014 MarkUpDown Design Spec compiler and .mud page extension for Grav.","description_html":"<p>Grav MUD (Alpha) \u2014 MarkUpDown Design Spec compiler and .mud page extension for Grav.<\/p>","description_plain":"Grav MUD (Alpha) \u2014 MarkUpDown Design Spec compiler and .mud page extension for Grav.","icon":"plug","author":{"name":"FutureVision Labs \u00b7 Team DC","url":"https:\/\/gravmud.site","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/alpha.gravmud.site","docs":"https:\/\/alpha.gravmud.site","keywords":"grav, mud, markupdown, design-spec, next-object-notation, flat-file","bugs":"https:\/\/github.com\/GravMUD\/grav-plugin-grav-mud-alpha\/issues","license":"MIT","tag_name":"0.7.5","date":"2026-06-26T12:34:35Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/grav-mud-alpha\/0.7.4","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-grav-mud-alpha","slug":"grav-mud-alpha","install_path":"user\/plugins\/grav-mud-alpha","content_sha256":"47fc68ad556b29a258a24f708cce631e07181381e24ad3657f5f41d4a00491e0","changelog":{"0.7.2":{"date":"06\/05\/2026","content":"1. [](#bugfix)\n    * **Spec preview layout** \u2014 full-bleed heroes (`100vw`) no longer collapse the `.mud source` column in `::: example` pairs\n    * **CSS cleanup** \u2014 repaired corrupted `@media` blocks; removed theme shell rules from plugin fence CSS\n"},"0.7.1":{"date":"06\/05\/2026","content":"1. [](#improved)\n    * **`grav-mud-fences.css`** \u2014 full Design Spec baseline CSS ships with the plugin (hero variants, spec-doc two-column examples, video\/gallery\/carousel, blog, Commentz\/Forumz, theme-expo structure, motion). Third-party themes no longer need `grav-mud-site` for fence styling.\n"},"0.7.0":{"date":"06\/02\/2026","content":"1. [](#new)\n    * **`::: teeman-meme`** \u2014 generalized two-panel comparison fence (`left-title` \/ `right-title`, separate bullet lists, verdict blocks, panel tones); legacy `negative-*` \/ `ambush-*` keys still work\n    * **GFM pipe tables** in markdown bodies \u2014 `| col |` rows compile to `<table class=\"mud-md-table\">` inside `.mud-md-table-wrap`\n\n1. [](#improved)\n    * README fence cheat sheet documents `teeman-meme` and pipe-table markdown\n"},"0.6.0":{"date":"06\/04\/2026","content":"1. [](#new)\n    * **Embed mode** \u2014 `?gravmud-embed=1` (alias `gravity-embed`) serves chromeless pages with `embed.html.twig`, theme CSS, and `frame-ancestors *` CSP for iframe demos\n    * Blog dispatch fences: `blog-post-header`, `blog-teaser`, `blog-index`, `blog-body`\n    * Video, gallery, carousel, wiki, badges, and receipts fence renderers\n    * Compiler hooks for Commentz, Forumz, Messenger, Mud Bazaar, Swag Store, and FlipZine theme config\n\n1. [](#improved)\n    * Expanded `MudDesignSpec` and `MudAlphaCompiler` parity with gravmud.site production pages\n    * README fence cheat sheet and install URLs updated for 0.6.0\n"},"0.5.0":{"date":"05\/30\/2026","content":"1. [](#new)\n    * Public GitHub release \u2014 Grav MUD Alpha compiler plugin\n    * `.mud` page extension registration for Grav 1.7 and 2.0\n    * MarkUpDown Design Spec compiler \u2014 `@@@` tokens, `:::` layout fences, `++` NEXT Object Notation\n    * Design Spec fences: hero, cards, pricing, timeline, compare, code, wiki, manifesto, and more\n    * Grav 2.0 compatibility flag in blueprints\n"},"0.3.0":{"date":"05\/2026","content":"1. [](#new)\n    * Design Spec fence renderer (`MudDesignSpec`)\n    * Lone Mamber layout primitives\n    * Asset base URL injection from active theme\n"},"0.1.0":{"date":"04\/2026","content":"1. [](#new)\n    * Initial `.mud` extension hook via Language reflection\n    * `onPageContentRaw` compile pipeline\n    * Twig site variables for badge metadata"}}},"mambo-desktop-admin2":{"name":"Mambo Desktop for Admin2","version":"1.0.7","description":"Web desktop for Admin2 \u2014 icon launcher, windows, taskbar, notepad, clock, language switcher, Team DC Arcade.","description_html":"<p>Web desktop for Admin2 \u2014 icon launcher, windows, taskbar, notepad, clock, language switcher, Team DC Arcade.<\/p>","description_plain":"Web desktop for Admin2 \u2014 icon launcher, windows, taskbar, notepad, clock, language switcher, Team DC Arcade.","icon":"desktop","author":{"name":"FutureVision Labs \u00b7 Team DC","url":"https:\/\/gravmud.site","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"admin2","version":">=1.0.0"},{"name":"api","version":">=1.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/desktop.gravmud.site","docs":"https:\/\/desktop.gravmud.site","keywords":"grav, admin2, admin-next, desktop, windows, arcade, operator","bugs":"https:\/\/github.com\/GravMUD\/grav-plugin-mambo-desktop-admin2\/issues","license":"MIT","tag_name":"1.0.7","date":"2026-06-27T04:21:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mambo-desktop-admin2\/1.0.7","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-mambo-desktop-admin2","slug":"mambo-desktop-admin2","install_path":"user\/plugins\/mambo-desktop-admin2","content_sha256":"578781cc794dbfe4418b0eb122491f862c95cecef84a40d534a1739bb586421a","changelog":[]},"operator-dock-admin2":{"name":"Operator Dock for Admin2","version":"1.1.5","description":"Free Admin2 operator shortcuts \u2014 header links and launch pad widget.","description_html":"<p>Free Admin2 operator shortcuts \u2014 header links and launch pad widget.<\/p>","description_plain":"Free Admin2 operator shortcuts \u2014 header links and launch pad widget.","icon":"compass","author":{"name":"FutureVision Labs \u00b7 Team DC","url":"https:\/\/gravmud.site","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"admin2","version":">=1.0.0"},{"name":"api","version":">=1.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/operator-dock.gravmud.site","docs":"https:\/\/operator-dock.gravmud.site","keywords":"grav, admin2, admin-next, dashboard, shortcuts, operator, dock","bugs":"https:\/\/github.com\/GravMUD\/grav-plugin-operator-dock-admin2\/issues","license":"MIT","tag_name":"1.1.5","date":"2026-06-27T04:20:51Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/operator-dock-admin2\/1.1.5","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-operator-dock-admin2","slug":"operator-dock-admin2","install_path":"user\/plugins\/operator-dock-admin2","content_sha256":"92286f332a8dc448c2268199903184bc6e1bf3a10f8acb8c5ca25a59a24e2b3b","changelog":{"1.1.3":{"date":"06\/25\/2026","content":"1. [](#removed)\n    * **Clear Cache:** Removed duplicate menubar button \u2014 Admin2 core now ships selective cache clearing\n"},"1.1.2":{"date":"06\/05\/2026","content":"1. [](#improved)\n    * **Menubar:** `TeamDcMenubarCoordinator` dedupes JavaBean + Operator Dock + Mambo links into `effective.menubarLinks` at preferences resolve time\n    * **Menubar:** URL shortcuts no longer register as broken action buttons\n    * **Menubar:** No writes to `user\/config\/admin-next.yaml`\n"},"1.1.1":{"date":"06\/04\/2026","content":"1. [](#bugfix)\n    * **Fix:** Grav 2 plugin bootstrap \u2014 explicit `return new GravOperatorDockAdmin2Plugin($name, $grav)` for Andy slug `operator-dock-admin2`\n    * **Fix:** Load `OperatorDockLegacy` before `isEnabled()` in early init (prevents fatal on cache clear)\n"},"1.1.0":{"date":"06\/01\/2026","content":"1. [](#breaking)\n    * Plugin slug **`operator-dock-admin2`** (was `grav-operator-dock-admin2`) \u2014 repo `grav-plugin-operator-dock-admin2`\n    * Admin route `\/plugin\/operator-dock-admin2`; API routes stay `\/operator-dock\/*`\n    * Auto-migrates plugin config yaml and `system.yaml` on first load\n"},"1.0.1":{"date":"06\/01\/2026","content":"1. [](#improved)\n    * Header shortcuts register at runtime via `onApiMenubarItems` \u2014 no longer writes `user\/config\/admin-next.yaml`\n    * `inject_header_links` defaults to off (opt-in)\n    * Removed `config->reload()` on every admin request from early plugin init\n"},"1.0.0":{"date":"05\/31\/2026","content":"1. [](#new)\n    * Initial release \u2014 header shortcuts, Launch Pad widget, Clear Cache menubar action"}}},"javabean-admin2":{"name":"JavaBean for Admin2","version":"1.1.6","description":"Free Admin2 theme presets \u2014 twelve cockpits, light\/dark pairs, Andy switcher compatible.","description_html":"<p>Free Admin2 theme presets \u2014 twelve cockpits, light\/dark pairs, Andy switcher compatible.<\/p>","description_plain":"Free Admin2 theme presets \u2014 twelve cockpits, light\/dark pairs, Andy switcher compatible.","icon":"mug-hot","author":{"name":"FutureVision Labs \u00b7 Team DC","url":"https:\/\/gravmud.site","email":"chief@gravmud.site"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"admin2","version":">=1.0.0"},{"name":"api","version":">=1.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/javabean.gravmud.site","docs":"https:\/\/javabean.gravmud.site","keywords":"grav, admin2, admin-next, theme, javabean, presets","bugs":"https:\/\/github.com\/GravMUD\/grav-plugin-javabean-admin2\/issues","license":"MIT","tag_name":"1.1.6","date":"2026-06-27T04:20:45Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/javabean-admin2\/1.1.6","repository":"https:\/\/github.com\/GravMUD\/grav-plugin-javabean-admin2","slug":"javabean-admin2","install_path":"user\/plugins\/javabean-admin2","content_sha256":"2a4c69ec08e1cbeb2a1003704b3462d4166396dc957bd1e8c5bfb644ae837a8a","changelog":{"1.1.4":{"date":"06\/25\/2026","content":"1. [](#improved)\n    * **UI:** Remove promo section header from JavaBean settings page\n    * **UI:** Fix preset card preview text colour on dark Admin2 themes\n"},"1.1.3":{"date":"06\/05\/2026","content":"1. [](#improved)\n    * **Menubar:** URL shortcuts merge at runtime via `onApiAdminPreferencesResolved` (anchor links) \u2014 fixes `javabean-admin2\/undefined` toast from action-only menubar API\n    * **Menubar:** No writes to `user\/config\/admin-next.yaml` (good Grav citizen)\n    * **Menubar:** Mambo Desktop shortcut included when Operator Dock is not installed\n"},"1.1.2":{"date":"06\/04\/2026","content":"1. [](#bugfix)\n    * **Fix:** Grav 2 plugin bootstrap \u2014 `return new GravJavabeanAdmin2Plugin($name, $grav)` so Andy slug `javabean-admin2` loads (fixes \u201cenabled but not found\u201d \/ missing Admin2 sidebar)\n"},"1.1.1":{"date":"06\/02\/2026","content":"1. [](#improved)\n    * GetGRAV! menubar link points to **https:\/\/gravfans.live** (was getgrav.live)\n"},"1.1.0":{"date":"06\/01\/2026","content":"1. [](#breaking)\n    * Plugin slug **`javabean-admin2`** (was `grav-javabean-admin2`) \u2014 Grav convention: repo `grav-plugin-javabean-admin2`, folder without extra `grav-` prefix\n    * Admin plugin route `\/plugin\/javabean-admin2` (API routes stay `\/javabean\/*`)\n    * Auto-migrates `user\/config\/plugins\/grav-javabean-admin2.yaml` and `system.yaml` plugin enable entry on first load\n    * Remove old `user\/plugins\/grav-javabean-admin2` folder after upgrade; run `bin\/grav cache`\n"},"1.0.1":{"date":"05\/31\/2026","content":"1. [](#improved)\n    * **Menubar:** Team DC header shortcuts (MUD Editor, GetGRAV!, Mud Bazaar) via `onApiMenubarItems`\n    * **Menubar:** Opt-in toggle `inject_menubar_links` (default off for GPM)\n"},"1.0.0":{"date":"05\/30\/2026","content":"1. [](#new)\n    * Initial release \u2014 twelve Admin2 theme presets, paint shop, JavaBean boot CSS"}}},"contact-obfuscator":{"name":"Contact Obfuscator","version":"1.0.0","description":"Obfuscates email addresses and international phone numbers in rendered HTML output.","description_html":"<p>Obfuscates email addresses and international phone numbers in rendered HTML output.<\/p>","description_plain":"Obfuscates email addresses and international phone numbers in rendered HTML output.","icon":"user-secret","author":{"name":"Digitalfaktor Services","url":"https:\/\/www.digitalfaktor.at"},"dependencies":[{"name":"grav","version":">=2.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/github.com\/digitalfaktor\/grav-plugin-contact-obfuscator","keywords":"grav, plugin, privacy, email, phone, obfuscation","bugs":"https:\/\/github.com\/digitalfaktor\/grav-plugin-contact-obfuscator\/issues","license":"MIT","tag_name":"1.0.0","date":"2026-05-22T12:44:13Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/contact-obfuscator\/1.0.0","repository":"https:\/\/github.com\/digitalfaktor\/grav-plugin-contact-obfuscator","slug":"contact-obfuscator","install_path":"user\/plugins\/contact-obfuscator","content_sha256":"855311e8aade31d8b257a6c248fd8ca57fa0be51c39dde72ec0a807173b6b0f5","changelog":{"Changelog":{"date":"1.0.0","content":"- Initial release."}}},"cookie-manager":{"name":"Cookie Manager","version":"1.0.0","description":"A completely custom and editable cookie consent manager.","description_html":"<p>A completely custom and editable cookie consent manager.<\/p>","description_plain":"A completely custom and editable cookie consent manager.","icon":"shield","author":{"name":"Amol Chipte & Omkar Bhoir"},"homepage":"https:\/\/paramatrix.com","keywords":"grav, plugin, cookie, consent, cookie manage","license":"MIT","tag_name":"1.0.0","date":"2026-05-19T16:36:06Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cookie-manager\/1.0.0","repository":"https:\/\/github.com\/DevSynthAC\/grav-plugin-cookie-manager","slug":"cookie-manager","install_path":"user\/plugins\/cookie-manager","content_sha256":"6462ff77d91ed94ae359e47a93364dd260e10d4f4d07db75054fb55c5bb4fc00","changelog":[],"dependencies":[]},"email-smtp2go":{"name":"Email SMTP2GO","version":"1.0.0","description":"SMTP2GO integration for the Email plugin (API and SMTP)","description_html":"<p>SMTP2GO integration for the Email plugin (API and SMTP)<\/p>","description_plain":"SMTP2GO integration for the Email plugin (API and SMTP)","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-smtp2go","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-smtp2go\/blob\/develop\/README.md","keywords":"grav, plugin, email, smtp2go, smtp, api","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-smtp2go\/issues","license":"MIT","tag_name":"1.0.0","date":"2026-05-19T18:53:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-smtp2go\/1.0.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-smtp2go","slug":"email-smtp2go","install_path":"user\/plugins\/email-smtp2go","content_sha256":"90c018e1a8884e468d0ccd39bde03695cfee3ee25e659a02e029e6577e3f929e","changelog":{"1.0.0":{"date":"05\/19\/2026","content":"1. [](#new)\n    * Initial release. SMTP2GO integration for the Email plugin with both API and SMTP transports."}}},"grav-commander":{"name":"Grav Commander","version":"0.3.11","description":"Admin2-first file manager, archive toolkit, and guarded Backup Center for Grav 2.","description_html":"<p>Admin2-first file manager, archive toolkit, and guarded Backup Center for Grav 2.<\/p>","description_plain":"Admin2-first file manager, archive toolkit, and guarded Backup Center for Grav 2.","icon":"folder-tree","author":{"name":"Craig Daters","email":"craig@daters.net"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"api","version":">=1.0.0"}],"compatibility":{"grav":["2.0"],"api":["1.0"]},"homepage":"https:\/\/github.com\/cdaters\/grav-plugin-grav-commander","docs":"https:\/\/github.com\/cdaters\/grav-plugin-grav-commander\/blob\/main\/README.md","keywords":"grav, plugin, admin2, file manager, backup, commander","bugs":"https:\/\/github.com\/cdaters\/grav-plugin-grav-commander\/issues","license":"MIT","tag_name":"v0.3.11","date":"2026-05-18T04:34:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/grav-commander\/0.3.11","repository":"https:\/\/github.com\/cdaters\/grav-plugin-grav-commander","slug":"grav-commander","install_path":"user\/plugins\/grav-commander","content_sha256":"039be970765e176fa1b7ee41efe194905b2eeb13bfa6cd3c91eceb2ef4b02e8c","changelog":{"0.3.11":{"date":"05\/17\/2026","content":"1. [](#new)\n    * Added a backup details\/info modal showing notes and non-inline backup metadata.\n    * Added public roadmap documentation.\n2. [](#improved)\n    * Persisted Backup Profile and Scheduled Backup expanded\/collapsed state in localStorage.\n    * Improved public documentation and plugin metadata for a Grav\/GPM-readiness pass.\n    * Backup downloads now use a true tokenized browser-streaming route for large ZIP archives.\n3. [](#bugfix)\n    * Fixed backup downloads in Admin2 by opening a non-API tokenized route instead of fetching full ZIP archives into JavaScript Blob memory.\n"},"0.3.10":{"date":"05\/16\/2026","content":"1. [](#new)\n    * Added expandable\/collapsible Backup Profile cards with Add, Expand all, Collapse all, Delete, and Save controls.\n    * Added expandable\/collapsible Scheduled Backup cards with summary rows, scheduler status cards, generated Grav scheduler job previews, and cleaner inline editing.\n    * Added an Open in Grav Editor action for Markdown files under the Pages root while keeping raw text editing available.\n2. [](#improved)\n    * Auto-generates default scheduler output log paths from the schedule key.\n    * Corrected the Admin2 page editor launch URL for Grav page Markdown files by targeting `\/pages\/edit\/...` and stripping numeric folder prefixes.\n    * Hardened Open\/Edit Raw button handling so it behaves like double-clicking a file instead of risking route navigation.\n"},"0.3.8":{"date":"05\/16\/2026","content":"1. [](#new)\n    * Added temporary token-based backup download links so backup ZIP downloads can start as normal browser downloads.\n2. [](#improved)\n    * Separated the file manager and backup tools into Files and Backups tabs.\n    * Tightened notice spacing beneath the Admin2-style tab bar.\n    * Auto-expires success and error notices.\n    * Reduces duplicate working indicators so long operations use the central overlay.\n    * Clarifies backup download status messaging for larger archives.\n    * Bumped internal backup metadata and status version reporting to 0.3.8.\n"},"0.3.6":{"date":"05\/16\/2026","content":"1. [](#new)\n    * Added a query-string backup download endpoint (`GET \/backup\/download?name=...`) to avoid filename and route edge cases.\n    * Added a one-click \"Use suggested path\" action for moving backup storage outside the site root.\n2. [](#improved)\n    * Changed download responses to authenticated direct chunk streaming to avoid 500 errors and memory spikes with larger ZIPs.\n    * Made the Backup Storage card visually reflect writable and inside-root status.\n    * Updated the default backup storage path to `..\/gcmdr_backups` for safer new installs where the host allows it.\n"},"0.3.3":{"date":"05\/16\/2026","content":"1. [](#new)\n    * Moved file browsing and backup controls into separate Grav Commander tabs.\n    * Added a larger visible busy\/progress panel for long-running backup operations.\n    * Added backup storage health details, including a warning when backups are inside the Grav\/site root.\n2. [](#bugfix)\n    * Fixed backup profile and schedule save routes by adding route aliases used by the Admin2 component.\n    * Allowed configured backup paths to live outside the Grav root, including absolute paths or relative paths such as `..\/grav-commander-backups`.\n"},"0.3.2":{"date":"05\/16\/2026","content":"1. [](#new)\n    * Added ZIP creation and extraction actions.\n    * Added archive safety controls and extraction guardrails."}}},"zscomments":{"name":"ZSComments","version":"1.3.0","description":"Adds a commenting functionality to your site","description_html":"<p>Adds a commenting functionality to your site<\/p>","description_plain":"Adds a commenting functionality to your site","icon":"comments","author":{"name":"Mario Zimmermann","url":"https:\/\/zisoft.de","email":"mail@zisoft.de"},"dependencies":[{"name":"form","version":"*"},{"name":"email","version":"*"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/github.com\/zisoft\/grav-plugin-zscomments.git","keywords":"guestbook, plugin","bugs":"https:\/\/github.com\/zisoft\/grav-plugin-zscomments.git\/issues","license":"MIT","tag_name":"1.3.0","date":"2026-07-14T16:27:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/zscomments\/1.3.0","repository":"https:\/\/github.com\/zisoft\/grav-plugin-zscomments","slug":"zscomments","install_path":"user\/plugins\/zscomments","content_sha256":"6f8cffc93ea006b4963910c8c0d40bdffa703723aee8fb59961e1604b9bfa684","changelog":{"1.3.0":{"date":"07\/14\/2026","content":"1. [](#new)\n    * **Added a honeypot field for spam protection.** A new `honeypot_field_name` config option lets you name a hidden form field that real visitors never fill in; if a submission arrives with that field non-empty, the whole form process (save + notification email) is cancelled silently.\n    * **Added a `blocked_scripts` regex filter.** Comments whose text or name match this admin-configured regular expression (e.g. `\\p{Cyrillic}` to reject a different script) are cancelled before saving. An invalid pattern fails open \u2014 the filter is skipped and a warning is logged \u2014 instead of blocking every comment.\n"},"1.2.1":{"date":"07\/13\/2026","content":"1. [](#bugfix)\n    * **Sanitized comment text, author, and email as UTF-8 before saving.** A browser or bot submitting non-UTF-8 bytes (e.g. Latin-1) would sit unnoticed in the YAML file until an admin opened the comments list, silently breaking the whole response instead of just that one comment. Ill-formed byte sequences are now replaced at save time.\n"},"1.2.0":{"date":"07\/09\/2026","content":"1. [](#new)\n    * **Added an option to collect the visitor's IP address.** A new `collect_ip` config toggle (disabled by default) controls whether the IP is stored with each comment; the admin field help reminds you to mention this in your privacy policy if you enable it.\n    * **Redesigned the comments list as a card layout**, with the page title now linking to the commented page and a hover effect on cards.\n2. [](#improved)\n    * **Refactored the comment-approval email template** into a dedicated `zscomments_email.html.twig` partial for clearer, more maintainable notifications.\n3. [](#bugfix)\n    * **Fixed an infinite recursion crash when rendering legacy comments without an `id`\/`parent_id`.** Comments missing these fields all matched as children of one another under Twig's loose `==` comparison, causing a stack overflow as soon as the comments partial rendered; they are now displayed flat instead.\n    * **Hid the reply button on comments without an id**, since those comments can't actually be replied to.\n    * **Fixed `title`\/`lang` fields falling back to literal `{{ }}`\/`{% %}` Twig expressions** instead of the actual page value after a bad migration.\n"},"1.1.6":{"date":"06\/27\/2026","content":"1. [](#bugfix)\n    * **Fixed version tag**\n"},"1.1.5":{"date":"06\/26\/2026","content":"1. [](#bugfix)\n    * **Fixed Grav 2.0.3 compatibility issues.** After upgrading to Grav 2.0.3, the `evaluate()` Twig function used in form field evaluation stopped working correctly, causing literal Twig expressions like `{{ grav.page.header.title }}` and `{{ grav.uri.path }}` to be stored instead of actual values. This prevented comments from being properly saved and approved. Fixed by directly accessing Twig variables in the form template for `title`, `lang`, and `path` fields, and added server-side validation to detect and correct any unevaluated Twig syntax.\n    * **Fixed PHP 8.4+ compatibility.** Replaced deprecated `FILTER_SANITIZE_STRING` constant (removed in PHP 8.4) with `trim(strip_tags())` for form data sanitization, ensuring compatibility with PHP 8.5+.\n"},"1.1.4":{"date":"06\/14\/2026","content":"1. [](#bugfix)\n    * **Harden frontend form registration against stale cache state.** The comments form could occasionally render with an empty `__form-name__`, causing submits to silently reload the page without saving or sending email until cache was cleared. The plugin now registers its form explicitly on the current page during request handling and renders the hidden form name directly from plugin config so submissions remain stable even when cached page\/form state gets out of sync.\n"},"1.1.3":{"date":"06\/12\/2026","content":"1. [](#bugfix)\n    * **Normalize comment storage routes to avoid trailing-slash path issues.** Comment submissions on routes like `\/holzwerken\/projekte\/couchtisch\/` could be stored in a wrong location such as `user\/data\/zscomments\/...\/couchtisch\/.yaml`, which created a stray directory and made comments appear unsaved. Routes are now normalized consistently for writes, reads, and cache keys so `\/foo` and `\/foo\/` resolve to the same comment file.\n"},"1.1.2":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n    * **Preserve default form buttons when saving plugin config in admin2.** Saving `user\/config\/plugins\/zscomments.yaml` from admin2 can write only the overridden `form` subtree, which drops `form.buttons` from the effective config and made the frontend submit button disappear. The plugin now merges the default form definition from `plugins\/zscomments\/zscomments.yaml` with the saved config at runtime, and the Twig partial includes a submit-button fallback if no buttons are configured.\n"},"1.1.1":{"date":"05\/22\/2026","content":"1. [](#improved)\n    * **Updated version handling**\n"},"1.1.0":{"date":"05\/17\/2026","content":"1. [](#new)\n    * **Config section in admin panel** The plugin is now fully configurable in Grav's Admin2 panel.\n"},"1.0.0":{"date":"05\/16\/2026","content":"1. [](#new)\n    * Initial Release"}}},"autonatives-search":{"name":"Autonatives Search","version":"0.9.1","description":"Lightweight fulltext search plugin for GRAV CMS","description_html":"<p>Lightweight fulltext search plugin for GRAV CMS<\/p>","description_plain":"Lightweight fulltext search plugin for GRAV CMS","icon":"search","author":{"name":"Tom Schwede","email":"info@autonatives.de"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/autonatives\/grav-plugin-autonatives-search","keywords":"grav, plugin, search, fulltext","bugs":"https:\/\/github.com\/autonatives\/grav-plugin-autonatives-search\/issues","license":"MIT","tag_name":"0.9.1","date":"2026-05-06T21:18:39Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/autonatives-search\/0.9.1","repository":"https:\/\/github.com\/autonatives\/grav-plugin-autonatives-search","slug":"autonatives-search","install_path":"user\/plugins\/autonatives-search","content_sha256":"66b78960593ef897a5c7a9b104748027aa4b064888e1f3e8c9bc78d30b7e5dff","changelog":{"0.9.1":{"date":"06\/05\/2026","content":"- Initial release\n- AND search\n- weighted ranking\n- multilingual support"}}},"git-page-link":{"name":"Git Page Link","version":"0.9.5","description":"Enable open authoring and OER workflows by linking Grav pages directly to editable Markdown source files in GitHub, Codeberg, and other Git hosts. Works with or without the Git Sync plugin.","description_html":"<p>Enable open authoring and OER workflows by linking Grav pages directly to editable Markdown source files in GitHub, Codeberg, and other Git hosts. Works with or without the Git Sync plugin.<\/p>","description_plain":"Enable open authoring and OER workflows by linking Grav pages directly to editable Markdown source files in GitHub, Codeberg, and other Git hosts. Works with or without the Git Sync plugin.","icon":"link","author":{"name":"HibbittsDesign.org","url":"https:\/\/hibbittsdesign.org","email":"paul@hibbittsdesign.org"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/hibbitts-design\/grav-plugin-git-page-link","demo":"https:\/\/demo.hibbittsdesign.org\/grav-git-page-link-plugin","keywords":"git, edit, view, github, codeberg, link, git-sync","bugs":"https:\/\/github.com\/hibbitts-design\/grav-plugin-git-page-link\/issues","license":"MIT","tag_name":"v0.9.5","date":"2026-07-09T23:01:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/git-page-link\/0.9.5","repository":"https:\/\/github.com\/hibbitts-design\/grav-plugin-git-page-link","slug":"git-page-link","install_path":"user\/plugins\/git-page-link","content_sha256":"9a4c2a1f7d55905ddc3fe68f47fd1c75375df2e075793575fb279f84ed83cd6a","changelog":{"0.9.5":{"date":"07\/09\/2026","content":"1. [](#bugfix)\n    * Fix bottom-fallback link landing at the top of the sidebar instead of the bottom of content\n"},"0.9.4":{"date":"07\/09\/2026","content":"1. [](#bugfix)\n    * Add Quark\/Quark2\/Typhoon collection-page support with hero-safe link placement\n"},"0.9.3":{"date":"07\/07\/2026","content":"1. [](#bugfix)\n    * Fix ChangeLog formating\n    * Fix inconsistent Edit link on summary\/list pages caused by per-page content caching\n"},"0.9.2":{"date":"05\/21\/2026","content":"1. [](#bugfix)\n    * Fix link missing on prev\/next navigation due to page content caching\n"},"0.9.1":{"date":"05\/06\/2026","content":"1. [](#improved)\n    * Better align descriptions and tagline with bopen authoring\/OER positioning\n    * Set default link mode to View page for better initial experience\n    * Add SVG Icons Plugin icon support with fallback\n    * Add 1.7|2.0 compatibility flags\n    * Add demo link\n"},"0.9.0":{"date":"04\/26\/2026","content":"1. [](#new)\n    * ChangeLog started..."}}},"helios-open-reader":{"name":"Helios Open Reader","version":"1.1.0","description":"Adds reader sections, reading progress, Keep My Place, shortcodes, and Admin Panel enhancements to the Helios Grav Premium theme for open textbooks and readers.","description_html":"<p>Adds reader sections, reading progress, Keep My Place, shortcodes, and Admin Panel enhancements to the Helios Grav Premium theme for open textbooks and readers.<\/p>","description_plain":"Adds reader sections, reading progress, Keep My Place, shortcodes, and Admin Panel enhancements to the Helios Grav Premium theme for open textbooks and readers.","icon":"newspaper-o","author":{"name":"HibbittsDesign.org","url":"https:\/\/hibbittsdesign.org","email":"paul@hibbittsdesign.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"shortcode-core","version":">=5.0.0"},{"name":"github-markdown-alerts","version":">=1.0.0"},{"name":"external_links","version":">=1.6.3"},{"name":"page-toc","version":">=3.2.5"},{"name":"simplesearch","version":">=2.3.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/hibbitts-design\/grav-plugin-helios-open-reader","demo":"https:\/\/demo.hibbittsdesign.org\/grav-plugin-helios-open-reader","keywords":"grav, helios, reader, oer, open education","bugs":"https:\/\/github.com\/hibbitts-design\/grav-plugin-helios-open-reader\/issues","license":"MIT","tag_name":"v1.1.0","date":"2026-07-11T14:22:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/helios-open-reader\/1.1.0","repository":"https:\/\/github.com\/hibbitts-design\/grav-plugin-helios-open-reader","slug":"helios-open-reader","install_path":"user\/plugins\/helios-open-reader","content_sha256":"e3c54e53f299186918983027d134e2feb18198723f546c78d194b5810834858d","changelog":{"1.1.0":{"date":"07\/11\/2026","content":"1. [](#new)\n   * Add self-hosted [linkpreviewcard] shortcode as a working replacement for legacy Embedly card\n\n1. [](#improved)\n   * Fix Grav 2 tagfilter escaping in H5PShortcode by moving the resizer script to the Assets API\n"},"1.0.1":{"date":"07\/08\/2026","content":"1. [](#improved)\n   * Update example pages\n"},"1.0.0":{"date":"07\/07\/2026","content":"1. [](#new)\n   * Add Content Text Scaling setting to toggle comfortable (18px) reading size for section\/module pages\n\n1. [](#improved)\n   * Update ReadMe\n   * Update example pages\n"},"0.9.48":{"date":"07\/05\/2026","content":"1. [](#improved)\n   * Suppress sidebar section label when nested_section_nav is enabled, as the collapsible nav parent already provides that context\n"},"0.9.47":{"date":"07\/05\/2026","content":"1. [](#new)\n   * Add nested_section_nav option and position it with other section fields in the Content tab blueprint\n"},"0.9.46":{"date":"07\/05\/2026","content":"1. [](#improved)\n   * Restored PDF shortcode default ratio to 16:9\n\n1. [](#bugfix)\n   * Fix GoogleSlides shortcode: switch to getHandlers() to prevent raw HTML output\n"},"0.9.45":{"date":"07\/05\/2026","content":"1. [](#improved)\n   * Changed \"Save My Place\" to \"Keep My Place\"\n\n1. [](#bugfix)\n   * Fix H5P iframe clipping and default PDF embed to portrait aspect ratio in both plugins\n"},"0.9.44":{"date":"07\/03\/2026","content":"1. [](#improved)\n   * Remove mobile breadcrumb title div from header\n\n1. [](#bugfix)\n   * Fix URL double-encoding and H5P mobile layout in embed shortcodes\n"},"0.9.43":{"date":"07\/02\/2026","content":"1. [](#improved)\n   * Add [references] shortcode, improve H5P exercise blocks, and add figcaption styling\n   * Render full body content in exercise shortcode when block elements are present\n"},"0.9.42":{"date":"07\/01\/2026","content":"1. [](#improved)\n   * Add [references] shortcode, improve H5P exercise blocks, and add figcaption styling\n"},"0.9.41":{"date":"07\/01\/2026","content":"1. [](#improved)\n   * Add WCAG 2.1 listbox keyboard navigation to version dropdown\n"},"0.9.40":{"date":"07\/01\/2026","content":"1. [](#improved)\n   * Use system sans-serif for section-list cards, resume strip, Start Reading button, and page footer\n"},"0.9.39":{"date":"07\/01\/2026","content":"1. [](#bugfix)\n   * Use page.template check to prevent section-list's section_label from hiding chapter numbers on section landing pages\n"},"0.9.38":{"date":"07\/01\/2026","content":"1. [](#new)\n   * Add show_section_label toggle to hide section label on cards and page headers\n"},"0.9.37":{"date":"07\/01\/2026","content":"1. [](#new)\n   * Add per-section section_label override for custom labels or hiding individual section labels\n"},"0.9.36":{"date":"06\/30\/2026","content":"1. [](#bugfix)\n   * Fix version dropdown label alignment for long wrapping text\n"},"0.9.35":{"date":"06\/30\/2026","content":"1. [](#improved)\n   * Port HTMX history-miss fix from Helios theme v2.1.9 to plugin base templates\n\n1. [](#bugfix)\n   * Fix WCAG 2.1 critical and serious accessibility issues in templates and shortcodes\n"},"0.9.34":{"date":"06\/29\/2026","content":"1. [](#bugfix)\n   * Fix sticky nav button alignment \u2014 NEXT always right-aligned, remove empty placeholder div\n"},"0.9.33":{"date":"06\/29\/2026","content":"1. [](#improved)\n   * Add sticky prev\/next bar to section pages with mobile-always-on and scroll-triggered behaviour on larger screens\n"},"0.9.32":{"date":"06\/29\/2026","content":"1. [](#improved)\n   * Add sticky prev\/next bar on mobile and address nav button height, alignment, and title truncation\n"}}},"batch-find-and-replace":{"name":"Batch Find and Replace","version":"0.0.4","description":"Batch find and replace tool for Grav pages. Allows administrators to search and replace text, exact strings, or regex patterns across all .md page files.","description_html":"<p>Batch find and replace tool for Grav pages. Allows administrators to search and replace text, exact strings, or regex patterns across all .md page files.<\/p>","description_plain":"Batch find and replace tool for Grav pages. Allows administrators to search and replace text, exact strings, or regex patterns across all .md page files.","icon":"search","author":{"name":"Jonata","email":"jbopen@gmail.com"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"admin","version":">=1.10.0"}],"homepage":"https:\/\/github.com\/jonata\/grav-plugin-batch-find-and-replace","docs":"https:\/\/github.com\/jonata\/grav-plugin-batch-find-and-replace\/blob\/main\/README.md","keywords":"grav, plugin, admin, batch, replace, find, search, regex","bugs":"https:\/\/github.com\/jonata\/grav-plugin-batch-find-and-replace\/issues","license":"MIT","tag_name":"0.0.4","date":"2026-04-30T18:58:27Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/batch-find-and-replace\/0.0.4","repository":"https:\/\/github.com\/jonata\/grav-plugin-batch-find-and-replace","slug":"batch-find-and-replace","install_path":"user\/plugins\/batch-find-and-replace","content_sha256":"b39c5272a223ab9b6530758c588386fb1c312a63318e1971a05647d9bae59468","changelog":{"0.0.4":{"date":"04\/30\/2026","content":"1. [](#new)\n    * **Multiline Find and Replace.** Both fields are now `<textarea>` inputs that carry real newlines through the form. Patterns can now span multiple lines (literal mode: paste or press Enter; regex mode: write `\\R`, `\\n`, etc.). Press Ctrl+Enter (Cmd+Enter on macOS) to run.\n    * Server-side scanning rewritten to match against the full file at once via `preg_match_all` with `PREG_OFFSET_CAPTURE`, then map byte offsets to 1-based line numbers via a precomputed line-offset table (binary search, O(log n) per match). Multiline matches are reported with the starting line number and an excerpt covering every line they span.\n1. [](#improved)\n    * During a **Replace all**, the results table is dimmed until the auto-refresh search renders, so it's clear the displayed results are about to update.\n    * Per-row \"Replace\" buttons are hidden when the find pattern is multiline (the per-row endpoint operates on a single line; only \"Replace all\" can apply multiline patterns).\n    * `makeExcerpt()` reordered to wrap match highlights **before** collapsing whitespace, so multiline patterns still highlight correctly in the report.\n"},"0.0.3":{"date":"04\/29\/2026","content":"1. [](#bugfix)\n    * Fixed README demo embed: GitHub strips raw `<video>` tags, so the demo is now embedded as an animated GIF (`media\/demo.gif`) that links to the source MP4. The GIF autoplays in the rendered README on GitHub.\n"},"0.0.2":{"date":"04\/29\/2026","content":"1. [](#improved)\n    * After a successful **Replace all**, the table is automatically refreshed by re-running the same query as a search, so the user can verify the post-replace state (typically empty). The replacement summary stays visible briefly before the search summary takes over.\n    * Added `media\/demo.mp4` \u2014 a short screen recording of the plugin in action.\n"},"0.0.1":{"date":"04\/29\/2026","content":"1. [](#new)\n    * Initial release\n    * Admin-only sidebar entry \"Batch Find and Replace\"\n    * Find and\/or replace text, exact strings, or PCRE regex patterns across all `.md` files under `user\/pages\/`\n    * \"Use Regex\" toggle (UTF-8 enabled by default)\n    * \"Case Sensitive\" toggle for both literal and regex modes\n    * \"Search Only\" toggle for non-destructive previews\n    * Per-row surgical replace (one occurrence at a time)\n    * HTML report with summary and per-file table of line numbers + highlighted excerpts\n    * Click-through links from report to the page editor\n    * Configurable display cap (`max_results`, default 500) \u2014 replacements always run on the full set\n    * CSRF-protected via Grav admin's `admin-form` nonce\n    * Optional logging of all operations to `logs\/grav.log`\n    * Permission gated to `admin.super` or `admin.maintenance`"}}},"brevo":{"name":"Brevo","version":"1.0.0","description":"Adds Brevo contact list subscription as a Grav Form process action.","description_html":"<p>Adds Brevo contact list subscription as a Grav Form process action.<\/p>","description_plain":"Adds Brevo contact list subscription as a Grav Form process action.","icon":"envelope","author":{"name":"swmtr","url":"https:\/\/github.com\/swmtr"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"form","version":">=7.0.0"}],"homepage":"https:\/\/github.com\/swmtr\/grav-plugin-brevo","keywords":"brevo, sendinblue, email, newsletter, subscribe, form","bugs":"https:\/\/github.com\/swmtr\/grav-plugin-brevo\/issues","license":"MIT","tag_name":"1.0.0","date":"2026-04-27T10:34:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/brevo\/1.0.0","repository":"https:\/\/github.com\/swmtr\/grav-plugin-brevo","slug":"brevo","install_path":"user\/plugins\/brevo","content_sha256":"7454c55130fdb4caa0670137ccfb25ec3b1302b67b24739ff8c8565408c1de0f","changelog":{"1.0.0":{"date":"04\/27\/2026","content":"1. [](#new)\n    * Initial release\n    * Brevo contacts API integration as a Grav Form process action\n    * Supports multiple list IDs per form submission\n    * Supports custom contact attribute field mappings\n    * Falls back to default list ID from plugin config when none specified in form\n    * Errors logged to Grav log for easy debugging"}}},"smart-interlinker":{"name":"Smart Interlinker","version":"0.2.7","description":"SEO-driven internal linking assistant for the Grav page editor. Discover and insert internal links by reviewing scored, grouped phrase suggestions with surrounding context.","description_html":"<p>SEO-driven internal linking assistant for the Grav page editor. Discover and insert internal links by reviewing scored, grouped phrase suggestions with surrounding context.<\/p>","description_plain":"SEO-driven internal linking assistant for the Grav page editor. Discover and insert internal links by reviewing scored, grouped phrase suggestions with surrounding context.","icon":"sitemap","author":{"name":"jonata","url":"https:\/\/github.com\/jonata","email":"jonata@jonata.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"admin","version":">=1.10.0"}],"homepage":"https:\/\/github.com\/jonata\/grav-plugin-smart-interlinker","docs":"https:\/\/github.com\/jonata\/grav-plugin-smart-interlinker\/blob\/main\/README.md","keywords":"admin, editor, seo, interlink, internal-links, backlinks, content, linking","bugs":"https:\/\/github.com\/jonata\/grav-plugin-smart-interlinker\/issues","license":"MIT","tag_name":"v0.2.7","date":"2026-04-28T15:21:11Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/smart-interlinker\/0.2.7","repository":"https:\/\/github.com\/jonata\/grav-plugin-smart-interlinker","slug":"smart-interlinker","install_path":"user\/plugins\/smart-interlinker","content_sha256":"55527073700668b9918485e10aa480dacb59f14dd76a49663aa51fc3d331f137","changelog":{"0.2.7":{"date":"2026-04-28","content":"1. [](#bugfix)\n    * Accepting a suggestion now replaces the *exact occurrence shown in the context preview*, not the first lexical match. Previously, when a phrase appeared inside an existing markdown link AND outside it, accepting wrapped the first hit \u2014 which was usually the one inside the link \u2014 producing nested broken patterns like `[[Fedora Linux 44](\/x)](\/y)`. The replacement now uses an index from the same skip-zone-aware lookup the preview uses, so the displayed and replaced positions are guaranteed to match.\n    * Suggestions whose phrase has no plain-text occurrence the user can see (every match is inside a markdown link, URL, heading, or code block) are no longer rendered in the modal at all. Avoids \"empty\" suggestion rows that have no context above them.\n"},"0.2.6":{"date":"2026-04-28","content":"1. [](#bugfix)\n    * Markdown link stripping now handles nested or broken patterns iteratively. A source like `[[Kdenlive](\/x)](\/x)` (which can appear after a re-accepted suggestion) used to leave dangling `](\/url)` fragments that re-introduced the inner phrase as a phantom token. The stripper now peels the innermost match first and repeats until clean. Same fix in the frontend context preview's skip-zones.\n    * The phrase-length slider is now authoritative for every target type. Previously taxonomy targets bypassed it (so single-word values surfaced even at slider=2+), which contradicted the user's intent. To see single-word taxonomy matches, drag the slider to 1.\n2. [](#improved)\n    * Taxonomy-routes admin help text uses `tag` as the example instead of the more specific `distro`.\n"},"0.2.5":{"date":"2026-04-27","content":"1. [](#new)\n    * **Taxonomy targets.** Each unique `(key, value)` pair across the index becomes a virtual link target whose URL is built from a per-key template. Configure via the new `taxonomy_routes` setting (e.g. `distro: '\/artigos\/distro:{value}'`). Single-word taxonomy values bypass the modal's exact-phrase-length filter so they surface even when the slider is at 2+ words. Taxonomy suggestions get a small `tag` badge in the modal so editors can tell them apart from page suggestions.\n    * **`skip_headings` setting.** Toggle whether phrases inside Markdown headings (`#`, `##`, `###`...) and HTML `<h1>`\u2013`<h6>` blocks are excluded from suggestions. Defaults to enabled (preserves v0.2.3 behavior); disable to receive suggestions for words that appear inside headings.\n    * **Show-more for long target lists.** Each suggestion's target list is capped at 10 visible options with a \"Show N more\" button. Cleans up noisy single-word matches that have hundreds of candidate pages.\n    * **Refresh after Accept.** When a link is inserted, the modal refetches suggestions so other matches that overlap the just-linked region disappear automatically. A spinner overlays the matches list during the refresh.\n2. [](#improved)\n    * `keyword_field` (single string) becomes `keyword_fields` (array). Admin field is now a selectize tag input with predefined options (`focus_keyword`, `keywords`, `seo_title`, `meta_title`, `aliases`, `tags`, `meta_description`) plus free-form add. Legacy single-string config is auto-migrated to array form on read.\n    * Indexer now uses Symfony YAML (when available) so nested taxonomy front-matter (`taxonomy: { distro: [...] }`) is parsed correctly.\n    * IIFE survives being inlined late by the asset pipeline \u2014 the editor-button observer starts immediately when `document.readyState !== 'loading'`.\n3. [](#bugfix)\n    * `insertLink` is now case-insensitive and word-boundary-aware. The wrapped text preserves the source's original casing. Fixes the `Phrase no longer found in content` error when the title-derived phrase had different casing than the source occurrence (e.g. *Kernel Linux 7.0* vs *kernel Linux 7.0*).\n"},"0.2.3":{"date":"2026-04-27","content":"1. [](#improved)\n    * Source content is now tokenized with the same rules as target titles before phrase lookup. Compound tokens like `22.3`, `RISC-V`, `5.18`, `front-end` stay atomic on both sides \u2014 a phrase only matches when it appears as a contiguous sequence of *whole* tokens. Fixes false positives like \"Linux Mint 22\" matching inside \"Linux Mint 22.3\".\n    * Markdown headings (`#`, `##`, `###` \u2026 `######`), Setext headings (text + `===` \/ `---` underline), and HTML `<h1>`\u2013`<h6>` blocks are stripped from the source before matching. Phrases that only appear inside a heading are no longer suggested. The in-modal context preview also skips heading content.\n    * Toolbar button shows a spinning icon (`fa-circle-o-notch fa-spin`) during analysis instead of the text \"Analyzing\u2026\", preserving the compact icon-only toolbar layout.\n"},"0.2.2":{"date":"2026-04-27","content":"1. [](#new)\n    * **Phrase length slider** in the suggestions modal \u2014 drag to filter results by exact phrase length (1 to 6 words). Defaults to the configured `min_phrase_words`.\n    * Modal height is now fixed at 80vh so the sliders don't shift while you drag.\n2. [](#improved)\n    * Per-target dedup now subsumes only by overlap. Unrelated short matches in the same target's title (e.g. *Software* and *QEMU*) are both kept; only fragments contained inside a longer matching phrase are dropped.\n    * Backend always generates phrases from 1 word up; the `min_phrase_words` config is the slider's default value rather than a hard backend cutoff.\n    * Internal result cap raised from 30 \u2192 500 so single-word matches aren't silently truncated.\n    * Stopword list expanded with Portuguese articles, prepositions, conjunctions, pronouns, and common short English words.\n    * Tokenizer preserves dots and underscores between alphanumerics \u2014 `6.1.4` is one token, *not* `6`, `1`, `4`.\n    * Suggestions inside markdown links, autolinks, HTML anchors, bare URLs, code blocks, and inline code are now ignored.\n    * Context preview lands on a real plain-text occurrence \u2014 never on a substring inside a longer word inside a markdown link.\n3. [](#bugfix)\n    * Self-suggestion exclusion fixed for pages nested under the home alias. The current page route is now derived from the URL (which always reflects the page being edited) instead of the form's first `data[route]` input (which is the parent route).\n    * Radio buttons inside a target group share the same `name` attribute, so picking a different target deselects the previous one.\n    * Pure-number 1-word phrases (`5.18`, `40`) no longer surface as standalone suggestions.\n"},"0.2.1":{"date":"2026-04-26","content":"1. [](#bugfix)\n    * Removed the unwired \"Rebuild Index\" button from the settings panel \u2014 Grav admin forms do not support `type: button`, so it was rendering as an unlabeled empty input. The index is rebuilt automatically when missing and via `onPageSave` \/ `onPageDelete` hooks.\n"},"0.2.0":{"date":"2026-04-25","content":"1. [](#new)\n    * Title-driven matching: target-page titles drive the search instead of source-content phrases. Suggestions are now guaranteed to be visible in the target's title (no more phantom matches from coincidental body-text overlap).\n    * Per-target dedup: each candidate page surfaces at most once, with the longest matching title-fragment as the suggested anchor text.\n    * Optional `keyword_field` setting to pull additional candidate phrases from a front-matter field (e.g. `focus_keyword`).\n    * `min_phrase_words` setting (default 2) \u2014 minimum n-gram length for title fragments. Range 1\u20135.\n    * `ignored_terms` setting \u2014 site-specific filler words (e.g. `linux`) that count as stopwords for phrase generation.\n2. [](#improved)\n    * Confidence score is now coverage-based (matched phrase length as % of full target title), making the in-modal slider meaningful.\n    * Default `match_threshold` lowered to 0; the in-modal slider is the primary live filter.\n    * Robust self-suggestion exclusion: route comparison now normalizes the home alias on both sides.\n    * Frontend derives the current page's route from the URL when no route input is present.\n3. [](#removed)\n    * Dropped `match_fields` setting (replaced by `keyword_field`).\n    * Dropped content-body matching and the title\/field\/content score weighting (everything is title-derived now).\n"},"0.1.0":{"date":"2026-04-24","content":"1. [](#new)\n    * Initial release\n    * Toolbar icon injected into the Grav page editor\n    * SEO-driven phrase matching (title \/ custom fields \/ content) with word-count boost\n    * Grouped suggestions with selectable target list per phrase\n    * Context preview around each matched phrase (configurable length)\n    * Live confidence threshold slider in the review modal\n    * Cached JSON index with hooks for incremental updates on page save\/delete\n    * Respects `system.home.hide_in_urls` when generating target routes"}}},"copy-as-markdown-butto":{"name":"Copy as Markdown Button","version":"1.0.0","description":"Adds a button to copy the page content as Markdown to the clipboard","description_html":"<p>Adds a button to copy the page content as Markdown to the clipboard<\/p>","description_plain":"Adds a button to copy the page content as Markdown to the clipboard","icon":"clipboard","author":{"name":"tucho235"},"homepage":"https:\/\/github.com\/tucho235\/grav-plugin-copy-as-markdown-button","keywords":"markdown, clipboard, share, copy, button","bugs":"https:\/\/github.com\/tucho235\/grav-plugin-copy-as-markdown-button\/issues","license":"MIT","tag_name":"1.0.2","date":"2026-03-26T22:34:32Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/copy-as-markdown-butto\/1.0.0","repository":"https:\/\/github.com\/tucho235\/grav-plugin-copy-as-markdown-button","slug":"copy-as-markdown-butto","install_path":"user\/plugins\/copy-as-markdown-butto","content_sha256":"5cdfc10ce291a09285ce11f9c0e86358de6cad9822620e9dd67a63b139917ce4","changelog":{"Changelog":{"date":"[1.0.0] \u2014 2026-03-16","content":"### Added\n\n- Initial release.\n- Button that copies the current page's raw Markdown to the visitor's clipboard.\n- Automatic Twig tag resolution for pages that use `process: twig: true` \u2014 Twig expressions are evaluated before copying so the result is clean Markdown, not template syntax.\n- `include_title` option (default `true`) \u2014 prepends the page title as an `# H1` heading to the copied content, providing full context when pasting into AI chats or editors.\n- `include_frontmatter` option (default `false`) \u2014 optionally prepends the YAML frontmatter block.\n- `button_position` option \u2014 place the button at the `top`, `bottom` (default), or `both` ends of the content.\n- `show_icon` option \u2014 toggles a clipboard SVG icon inside the button.\n- `page_types` option \u2014 restricts the button to specific page templates; empty list means all pages.\n- 2-second visual feedback (\"Copied!\") after a successful clipboard write.\n- Modern `navigator.clipboard.writeText()` API with `execCommand('copy')` fallback for HTTP contexts and older browsers.\n- Internationalisation via `languages.yaml` with support for **English, Spanish, French, Portuguese, Italian, and German**. Button label and feedback text are auto-translated based on the active site language. Plain custom strings bypass translation transparently.\n- Full Admin panel integration via `blueprints.yaml` with translated field labels.\n- CSS namespaced under `.smb-*` to prevent theme collisions.\n- Assets (CSS + JS) are loaded only on pages where the button is displayed."}},"dependencies":[]},"sync":{"name":"Sync","version":"1.1.3","description":"Real-time collaboration substrate for Grav. Stores Yjs CRDT updates and presence state for multi-user editing. Transport-agnostic; works with polling, Mercure, or WebSocket providers. Runs on Grav 1.7 and 2.0; integrates with the api plugin when available.","description_html":"<p>Real-time collaboration substrate for Grav. Stores Yjs CRDT updates and presence state for multi-user editing. Transport-agnostic; works with polling, Mercure, or WebSocket providers. Runs on Grav 1.7 and 2.0; integrates with the api plugin when available.<\/p>","description_plain":"Real-time collaboration substrate for Grav. Stores Yjs CRDT updates and presence state for multi-user editing. Transport-agnostic; works with polling, Mercure, or WebSocket providers. Runs on Grav 1.7 and 2.0; integrates with the api plugin when available.","icon":"rotate","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.49"},{"name":"login","version":">=3.8.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-sync","keywords":"collaboration, yjs, crdt, realtime, sync","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-sync\/issues","license":"MIT","tag_name":"1.1.3","date":"2026-06-24T22:50:15Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/sync\/1.1.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-sync","slug":"sync","install_path":"user\/plugins\/sync","content_sha256":"5365f61f4a7ac178c2c545362e98c26f5bcc4c5e493aecc097bdb3975a73c7ea","changelog":{"1.1.3":{"date":"06\/24\/2026","content":"1. [](#bugfix)\n    * Guests can now use the polling fallback on public channels \u2014 the channel pull and publish endpoints accept anonymous requests and let each channel's own access check decide\n    * A failing push transport no longer stops messages from reaching the other transports, so the polling fallback keeps working while a hub is down\n    * Collaborative editing now works on child pages of a hidden home route, instead of failing to find the page, when \"Hide home route in URLs\" is enabled ([getgrav\/grav-plugin-api#10](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/10))\n    * Save notifications now reach collaborators editing child pages of a hidden home route, so they no longer keep seeing phantom unsaved changes after a peer saves ([getgrav\/grav-plugin-admin2#59](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/59))\n"},"1.1.2":{"date":"06\/08\/2026","content":"1. [](#new)\n    * **New `sync:page-saved:<roomId>` broadcast channel.** Fires whenever a page is saved through the api plugin so peer editors in the same collab room can advance their dirty baseline and stop showing phantom unsaved changes. Subscribers need `api.pages.read` on the page. Used by admin-next to fix [getgrav\/grav-plugin-admin2#25](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/25).\n2. [](#improved)\n    * **Collaborative editing now uses regular page permissions instead of a separate `api.collab.*` permission.** Anyone who can read or write a page via the API can do the same collaboratively \u2014 no extra grant needed. Fixes [getgrav\/grav-plugin-admin2#24](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/24).\n3. [](#bugfix)\n    * Fixed a 404 error when an editor subscribed to a page's save-notification channel before the first save had happened.\n    * Fixed a 403 error that wrongly blocked super admins from subscribing to a page's save-notification channel.\n"},"1.1.1":{"date":"05\/18\/2026","content":"1. [](#bugfix)\n    * Removed `vendor` from `.gitignore` file, so it's included in package\n"},"1.1.0":{"date":"05\/13\/2026","content":"1. [](#new)\n    * New `Transport Preference Order` setting in the Sync admin. Reorder which installed transport handles live delivery (e.g. put Ably above Mercure) without uninstalling plugins. The dropdown is populated from transports currently registered in this instance, so deployers only see options they actually have.\n    * New SQLite storage backend for Yjs update logs and snapshots. One database per room under `user\/data\/sync\/storage\/`, with WAL mode and writer-locked transactions \u2014 eliminates the file-lock contention the file backend can hit under heavy multi-user editing.\n    * `storage.adapter` defaults to `auto`, which picks SQLite when the `pdo_sqlite` PHP extension is available and falls back to the file backend otherwise. Existing installs that have `adapter: file` saved keep using file storage.\n    * Public pub\/sub facade `$grav['sync']`. Plugins can register channels and publish messages without coupling to a specific transport.\n    * Three message types: `crdt` (Yjs binary updates), `broadcast` (arbitrary payload with optional TTL replay), `awareness` (ephemeral presence).\n    * Transport-provider registry. External plugins (Mercure, Ably) plug in via the new `onSyncRegisterTransports` event. Built-in polling stays as the universal fallback.\n    * Per-channel auth delegation via callback or the new `onSyncCheckAccess` event.\n    * New `onSyncBeforeCrdtChannelRegistered` event so plugins can attach proper permission gating to a page's CRDT channel before sync falls back to its permissive auto-register.\n    * New endpoints `GET \/sync\/channels\/pull?id=<channelId>` and `POST \/sync\/channels\/publish?id=<channelId>` for the broadcast pub\/sub model. Available under both the api-plugin route prefix and the legacy `\/sync\/*` dispatcher. The channel id rides in the query string (not a path segment) so colons in ids \u2014 common, e.g. `comments-pro:blog\/post-1` \u2014 are not eaten by Grav's URI param parser.\n    * New `onSyncResolveChannel` event. Fired by the pull\/publish handler when an incoming request names a channel the in-process registry hasn't seen yet, giving owner plugins one last chance to lazy-register before sync 404s.\n    * Legacy `\/sync\/*` HTTP path now uses the api plugin's full auth chain (X-API-Token, Authorization Bearer) when api is loaded, in addition to session auth. The mutex with `\/api\/v1\/sync\/*` is unchanged; this enables forward-compat for sites that choose to expose both prefixes.\n2. [](#improved)\n    * Capabilities response now lists every registered transport with id, name, priority, and supported message types, plus a `preferred` field. The existing `polling` and `presence` sub-blocks are unchanged.\n3. [](#bugfix)\n    * Transport plugins (Mercure, Ably) now reliably land in the transport registry \u2014 previously they could register too late and only appear in the capabilities response as a stub entry.\n    * Presence room membership is no longer corrupted when three or more peers heartbeat at once. Three browsers editing the same page used to each see a different subset of peers (one would even see only itself) because concurrent load-modify-save writes on the shared presence cache key clobbered each other; an exclusive flock around the heartbeat critical section keeps every peer's entry intact.\n    * Polling transport's pull\/publish URLs now honor Grav's base path, and route through the api plugin's prefix when api is loaded \u2014 fixes 404s on Grav installs mounted at a subpath.\n    * Legacy `\/sync\/*` dispatcher now matches correctly on subpath installs (it stripped the wrong portion of the path before checking the `\/sync\/` prefix).\n4. [](#note)\n    * The CRDT path used by editor-pro is unchanged. All existing endpoints, events (`onSyncUpdate`, `onSyncAwareness`, `onSyncCapabilities`), and storage layouts remain compatible.\n"},"1.0.2":{"date":"05\/09\/2026","content":"1. [](#new)\n    * Sync now runs on Grav 1.7 in addition to 2.0. The api plugin is no longer a hard dependency. When api is installed sync's endpoints are still served at `\/api\/v1\/sync\/*` exactly as before; otherwise sync provides its own minimal HTTP layer at `\/sync\/*`.\n    * Self-contained PSR-7 HTTP base class (`Grav\\Plugin\\Sync\\Http\\AbstractSyncController`) replaces the prior dependency on the api plugin's `AbstractApiController`. Plugin authors extending sync's controllers should target the new base class.\n2. [](#improved)\n    * Composer dependencies updated to declare PSR-7 message and server-request packages directly. Run `composer install` inside the plugin after updating.\n"},"1.0.1":{"date":"05\/05\/2026","content":"1. [](#bugfix)\n    * **Sync data no longer lands inside `user\/pages\/`.** Per-room logs and snapshots used to be written next to the page they belonged to (e.g. `user\/pages\/02.typography\/.sync\/`), and the page route was used as a literal folder name \u2014 so language variants ended up in spurious siblings like `user\/pages\/typography.en\/`, which Grav then listed in admin as extra pages. Storage now lives under `user\/data\/sync\/<md5(route)>\/` with a `meta.json` for reverse lookup, and language is encoded as a filename suffix (`default.en.log`) rather than baked into the folder name. Existing rooms under `user\/pages\/**\/.sync\/` should be deleted; the next edit reseeds cleanly.\n    * **Room ids no longer fold the language into the route segment.** The format is now `<route>@<template>` (default language) or `<route>@<template>@<lang>` (explicit), matching the cleanly separated route\/template\/lang model the storage layer already used internally. Routes carrying a `.<lang>` suffix were a footgun for both the storage path and clients computing topic names.\n"},"1.0.0":{"date":"04\/25\/2026","content":"1. [](#new)\n    * Initial Release"}}},"sync-mercure":{"name":"Sync Mercure","version":"1.2.1","description":"Mercure transport for grav-plugin-sync. Replaces HTTP polling with a Mercure SSE hub for sub-100ms collaborative editing latency. Optional \u2014 falls back to polling when the hub isn&#39;t reachable.","description_html":"<p>Mercure transport for grav-plugin-sync. Replaces HTTP polling with a Mercure SSE hub for sub-100ms collaborative editing latency. Optional \u2014 falls back to polling when the hub isn&#39;t reachable.<\/p>","description_plain":"Mercure transport for grav-plugin-sync. Replaces HTTP polling with a Mercure SSE hub for sub-100ms collaborative editing latency. Optional \u2014 falls back to polling when the hub isn&#39;t reachable.","icon":"bolt","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=2.0.0-beta.2"},{"name":"api","version":">=1.0.0-beta.13"},{"name":"sync","version":">=1.1.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-sync-mercure","keywords":"collaboration, mercure, sse, realtime, sync","license":"MIT","tag_name":"1.2.1","date":"2026-07-15T06:17:52Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/sync-mercure\/1.2.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-sync-mercure","slug":"sync-mercure","install_path":"user\/plugins\/sync-mercure","content_sha256":"7187f09318239beed3ca77504bfefc1a03376ee51b1db04db0f950d32730ca1a","changelog":{"1.2.1":{"date":"07\/15\/2026","content":"1. [](#bugfix)\n    * **Fixed every publish to a loopback hub failing TLS verification.** When `hub.internal_url` points at the hub over HTTPS on `127.0.0.1` \/ `::1` \/ `localhost` (the normal self-signed local-hub setup), PHP's default `verify_peer` rejected the hub's self-signed certificate, so every event silently failed to publish. The publisher now skips certificate verification for a loopback internal URL only (there is no man-in-the-middle surface on loopback); a non-loopback `internal_url` keeps full verification. Set `hub.internal_tls_insecure: true` or `false` to override the auto-detection. A failed publish now also reports the underlying TLS or connection reason instead of a bare \"publish failed\".\n"},"1.2.0":{"date":"07\/04\/2026","content":"1. [](#new)\n    * **`bin\/plugin sync-mercure enable` \/ `disable`** \u2014 install (or remove) an OS-native autostart service so the hub comes back on reboot. Detects the host's service manager automatically: a systemd user unit (+ linger) or system unit on Linux, or a launchd agent on macOS. The service runs the bundled `mercure` binary directly so the manager owns the process and restarts it on crash.\n    * **Automatic port-conflict resolution** \u2014 `start` and `enable` now prefer the configured port but step up from it when it's already taken (e.g. a second Grav site on the same host), and persist the chosen port into `hub.public_url` so the browser and PHP publisher both follow.\n2. [](#bugfix)\n    * **Fixed startup crash on Mercure 0.24+** (`invalid transport`). Mercure 0.24 dropped the implicit default transport, so the generated Caddyfile now sets the transport explicitly with `transport local`. (The bolt store was tried for `Last-Event-ID` replay but the bolt module in Mercure 0.24.2 aborts provisioning with `invalid transport: timeout`, so it is unusable on that build; clients resync through the API on reconnect instead.)\n    * The generated Caddyfile now disables Caddy's admin API (`admin off`). The hub never used it, and leaving it on (default `:2019`) was a second collision point preventing two hubs from running on one host even after the data port was bumped.\n"},"1.1.2":{"date":"05\/28\/2026","content":"1. [](#improved)\n    * **`POST \/sync\/mercure\/token` is now gated by regular page permissions** (`api.pages.read`) instead of the separate `api.collab.*` permission, matching the change in the sync plugin. Fixes [getgrav\/grav-plugin-admin2#24](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/24).\n"},"1.1.1":{"date":"05\/18\/2026","content":"1. [](#bugfix)\n    * Removed `vendor` from `.gitignore` file, so it's included in package\n\n"},"1.1.0":{"date":"05\/13\/2026","content":"1. [](#new)\n    * Ships `sync-mercure-client.js` (`window.SyncMercure`). The Mercure subscriber JS that comments-pro previously bundled now lives here and is auto-enqueued for consumer plugins on the frontend.\n2. [](#improved)\n    * Mercure now appears in the capabilities response as a properly-structured transport entry (id, name, priority, supported message types) sourced from the transport registry, instead of a bare string entry stitched in by the capabilities listener.\n3. [](#bugfix)\n    * Typing indicators (and any other awareness-typed message) now actually reach subscribers. Awareness events publish to the channel's own topic with a flat envelope instead of a `:awareness`-suffixed topic the client never listened to.\n"},"1.0.1":{"date":"05\/09\/2026","content":"1. [](#new)\n    * Public Mercure bridge API. The `$grav['mercure']` service exposes `publishTopic()` and `issueSubscriberJwtForTopics()` so any Grav plugin can use the configured hub as a generic pub\/sub backend.\n    * Added `MercureBridge::API_VERSION` constant for consumer version checks.\n    * Now registers as a sync transport provider via `onSyncRegisterTransports`. The new `MercureTransport` class implements `\\Grav\\Plugin\\Sync\\Transport\\TransportInterface` and handles CRDT, broadcast, and awareness messages published through `$grav['sync']`.\n2. [](#improved)\n    * Existing `publish()` and `issueSubscriberJwt()` signatures and wire output are unchanged. `$grav['sync_mercure_bridge']` continues to work as an alias for `$grav['mercure']` (same shared instance).\n    * Existing `onSyncUpdate` and `onSyncAwareness` event subscribers and the `POST \/sync\/mercure\/token` endpoint are preserved, so editor-pro's CodeMirror collab path keeps working unchanged. Both the legacy event path and the new transport-interface path coexist.\n"},"1.0.0":{"date":"04\/25\/2026","content":"1. [](#new)\n    * Initial Release"}}},"admin2":{"name":"Admin2","version":"2.0.16","description":"Modern administration panel for Grav CMS. A redesigned admin experience.","description_html":"<p>Modern administration panel for Grav CMS. A redesigned admin experience.<\/p>","description_plain":"Modern administration panel for Grav CMS. A redesigned admin experience.","icon":"black-tie","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"api","version":">=1.0.13"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-admin2","docs":"https:\/\/github.com\/getgrav\/grav-plugin-admin2\/blob\/main\/README.md","keywords":"admin, panel, dashboard, management","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues","license":"MIT","tag_name":"2.0.16","date":"2026-07-25T20:24:12Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin2\/2.0.16","repository":"https:\/\/github.com\/getgrav\/grav-plugin-admin2","slug":"admin2","install_path":"user\/plugins\/admin2","content_sha256":"11cf31aa87a2660ad88f04c094fe9ad90d029dc83208dbef5dd3b37150dde3f9","changelog":{"2.0.16":{"date":"07\/25\/2026","content":"1. [](#bugfix)\n    * Deleting an access-permission rule from a page now sticks instead of reappearing the next time you open the page ([#142](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/142)).\n    * The logo and your avatar now stay inside the sidebar when it is collapsed, instead of the logo spilling out and the avatar looking squashed ([#141](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/141)).\n    * Removing the last category or tag from a page now sticks instead of the old value reappearing after you save ([#140](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/140)).\n    * The invitation-accept page now loads its translations, so its wording can be customized and it no longer briefly shows raw text like \"Accept Heading\" on a fresh browser ([#139](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/139)).\n    * A feature switched on by a plugin, such as the Downloads panel in Downloads Pro, now stays switched on when you reopen the page instead of reverting to off and hiding its settings ([grav-premium-issues#609](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/609)).\n"},"2.0.15":{"date":"07\/20\/2026","content":"1. [](#improved)\n    * Text a language has not translated yet now reads in English, instead of showing a mangled version of the key name such as \"Label\" where it should say \"Cache\" (requires API plugin 1.0.12) ([#129](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/129)).\n1. [](#bugfix)\n    * Confirmation dialogs now translate their title and buttons instead of always showing them in English.\n    * The prompt shown when leaving a screen with unsaved changes is now translated instead of always appearing in English.\n    * Add buttons, list and picker placeholders, and the media drop zone messages are now translated instead of always appearing in English ([grav-admin-next#13](https:\/\/github.com\/getgrav\/grav-admin-next\/issues\/13)).\n    * An `elements` field now shows its options when nested inside a list ([#130](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/130)).\n    * The create screen for a Flex object now uses the title configured for that object type ([flex-objects#233](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/233)).\n    * Toggle-able fields now show their on\/off checkbox when placed inside columns ([#131](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/131)).\n    * Renaming a folder or deleting a page beneath a Home page that is hidden from URLs now works reliably instead of failing or moving the page to the site root (requires API plugin 1.0.12) ([#132](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/132)).\n    * A page's publish and unpublish dates now display correctly in the Page Information sidebar instead of showing \"Invalid Date\" after saving ([#134](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/134)).\n"},"2.0.14":{"date":"07\/14\/2026","content":"1. [](#new)\n    * The Plugins and Themes items in the sidebar now show a badge with the number of available updates alongside the installed count, so outdated extensions stay visible from anywhere in the admin (requires API plugin 1.0.11) ([#124](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/124)).\n1. [](#bugfix)\n    * Inserting a Page Media image with its \"+\" button now adds it only to the editor you were working in, instead of dropping the same image into every Markdown field on the page such as both Content and Description ([#128](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/128)).\n    * The dashboard's plugin and theme cards now each show their own update status, and the active-theme card only flags an update when the active theme itself is outdated, instead of lumping every update onto the plugin card.\n    * Buttons and links no longer show a stray focus outline after you click them, so the interface and screenshots stay clean.\n    * Image uploads on a Flex object's file field no longer fail when the field stores files in the object's own folder.\n    * The first image uploaded to a Flex object's file field now records immediately and enables Save, instead of only taking effect after a second upload.\n    * Images on a Flex object's file field now stay visible when you reopen the object, instead of vanishing from the field.\n    * The message shown after updating all plugins or themes now counts extensions that were brought up to date as a shared dependency, so the total matches the number you asked to update instead of being one short ([#127](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/127)).\n    * The title shown when editing a Flex object now honors its blueprint's title template even when it uses a translation filter, instead of printing the raw template text ([flex-objects#233](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/233)).\n"},"2.0.13":{"date":"07\/09\/2026","content":"1. [](#new)\n    * The Pages screen has a new Filter control to narrow the list by published, visible, and routable status or by template, working across the tree, list, and columns views (requires API plugin 1.0.10) ([#121](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/121)).\n    * The admin now shows a \"Demo Mode\" banner and turns read-only when signed in with a demo account, hiding save, upload, and delete controls while keeping everything browsable (requires API plugin 1.0.10).\n    * Plugins can add action buttons to each row of the Users list, running an operation against that account and showing the result without leaving the page (requires API plugin 1.0.10) ([#115](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/115)).\n    * Plugin widgets that enhance a specific admin screen now load only on that screen instead of on every page (requires API plugin 1.0.10) ([#116](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/116)).\n1. [](#improved)\n    * Plugin and theme details now show Documentation and Report an Issue links taken from the extension's own blueprint, so they point at the project instead of only offering a changelog (requires API plugin 1.0.10) ([#49](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/issues\/49)).\n    * The homepage link on plugin and theme details now shows the site's actual address instead of a generic \"Visit\" label.\n    * Plugin link columns in the Users list can now show separate visible text from the link they point to, so a phone number can link to a chat URL while still reading as the number (requires API plugin 1.0.10) ([#111](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/111)).\n1. [](#bugfix)\n    * File and media picker fields set to allow multiple selections now let you choose several files instead of only one ([#119](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/119)).\n    * Editing metadata with more than one media file selected now applies your change to every selected file, not just the last one you clicked (requires API plugin 1.0.10) ([#117](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/117)).\n    * The backup storage bar now fills correctly when backups are limited by count or age, instead of always showing an almost-empty bar.\n    * The page preview popup now keeps its link and close button visible with long preview URLs and shows a clean page URL in the header instead of the internal preview parameters ([#120](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/120)).\n    * The page editor's Page Info panel now translates the Published, Visible, and Routable values instead of always showing them in English ([#122](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/122)).\n"},"2.0.12":{"date":"07\/06\/2026","content":"1. [](#new)\n    * The Markdown editor's image button now opens a picker to insert one of the page's images or an image URL with alt text, instead of dropping placeholder text ([#114](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/114)).\n    * The image picker can now browse the site media library by folder and insert a chosen image as a `media:\/\/` link ([#114](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/114)).\n    * Page media items now have a \"+\" button that inserts them at the editor's cursor, so you no longer have to drag them into a long document ([#114](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/114)).\n    * The Plugins and Themes lists now show a banner when a Grav update is available, with a one-click button to upgrade Grav without returning to the dashboard ([#113](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/113)).\n    * The plugin and theme lists now include a Changelog link, in both the card preview and the table row, so you can see what changed without opening the configure page ([#108](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/108)).\n    * The dashboard's Grav update notice now has a Changelog button that shows what changed in the new Grav version before you upgrade (requires API plugin 1.0.9) ([#109](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/109)).\n    * Plugins can now add custom columns to the Users list, showing their own per-user data through a set of safe built-in formatters (requires API plugin 1.0.9) ([#111](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/111)).\n    * Plugins that provide an icon to the admin can now use a shared icon format covering Font Awesome, other loaded icon sets, and safe custom SVG glyphs ([getgrav\/grav-admin-next#7](https:\/\/github.com\/getgrav\/grav-admin-next\/pull\/7)).\n1. [](#improved)\n    * Inserting an image from the page media field now uses its saved alt text, or title, instead of repeating the filename as the alt (requires API plugin 1.0.9) ([#114](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/114)).\n    * The clear-cache button in the top bar now shows a \"Cache\" label and a refresh icon, styled to match the other top-bar buttons.\n    * The environment switcher is now labelled \"Env:\" so it is clear what the button controls.\n    * The Accounts Configuration panel now shows a subtitle, so its tab row lines up with the other Users tabs.\n1. [](#bugfix)\n    * The page list summary preview now shows plain text instead of a slice of raw Markdown, so links and images at the start of a page no longer leave broken fragments (requires API plugin 1.0.9) ([#110](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/110)).\n    * The Invitations tab in the Users section now highlights while you are viewing pending invitations.\n    * Plugin-provided custom fields that use a plain text input (such as SEO Magic's Custom Title and Description) now save correctly, instead of being cleared when you click away from the field.\n    * With collaboration enabled but the Sync plugin not installed, the page editor now behaves exactly as if collaboration were off, instead of blocking edits from saving.\n"},"2.0.11":{"date":"07\/04\/2026","content":"1. [](#new)\n    * You can now edit media metadata such as alt text, title, caption, description, and tags from both the page media field and the site media manager, with the editable fields configurable in the API plugin settings (requires API plugin 1.0.8) ([#99](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/99)).\n    * The Markdown and code editors now offer optional Vim keybindings, turned on per user in Settings and remembered on your account ([#95](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/95)).\n    * The page editor's preview now shows an unpublished page instead of a 404, so you can preview drafts without a separate plugin (requires API plugin 1.0.8) ([#100](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/100)).\n1. [](#improved)\n    * The Users list now opens on the filter tab named in the address bar, or a plugin's chosen default, and keeps the address bar updated as you switch tabs so a filtered view survives a refresh and can be bookmarked or shared ([#51](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/51)).\n    * Filter tabs on the Users list now show their icon, and a plugin can hide the built-in \"All Users\" tab when it isn't a useful default ([#51](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/51)).\n    * The bundled default font files are now compressed to woff2, shrinking them by about two thirds for faster loading.\n    * Large request bursts, such as opening a long pages list, now flow through the same request limiter as the rest of the admin, avoiding momentary server overload errors.\n    * Sidebar badge counts from plugins now load together instead of one after another, so they appear sooner after signing in.\n1. [](#bugfix)\n    * Opening a page preview no longer logs out a visitor signed in to the public site in the same browser, because the preview now renders the page without disturbing the shared front-end session ([#88](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/88), [#79](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/79)).\n    * A spacer field now shows its text again, matching the classic admin ([#91](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/91)).\n    * The date format fields now offer a Custom option for entering any PHP date format, and show a saved custom format instead of appearing blank ([#92](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/92)).\n    * The admin now bundles all its fonts locally instead of loading them from Google Fonts, so it runs fully offline and makes no external network requests ([#97](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/97)).\n    * Plugin descriptions in the list preview now show special characters such as apostrophes correctly instead of their raw HTML codes ([#103](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/103)).\n    * A date field now shows its current value again instead of appearing empty when the stored date is a timestamp ([#106](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/106)).\n"},"2.0.10":{"date":"06\/30\/2026","content":"1. [](#improved)\n    * The Backups settings now appear in the Configuration area with their own icon, with the archive list left out of that form since it already lives under Tools \u2192 Backups.\n"},"2.0.9":{"date":"06\/29\/2026","content":"1. [](#bugfix)\n    * The page editor no longer gets stuck on \"Connecting to collaboration session\u2026\" on the second page opened in a session on a site without the Sync plugin ([#87](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/87)).\n"},"2.0.8":{"date":"06\/29\/2026","content":"1. [](#new)\n    * Tools now has an optional Audit Trail that lists who changed what and when, with a colored before-and-after diff for edits, shown to super admins once it is turned on in the API plugin.\n    * The Markdown editor toolbar can now show buttons that plugins add to it.\n    * The login screen now shows OAuth sign-in buttons such as GitHub or Google when the Login OAuth2 plugin is set up for the admin, so you can sign in without a password ([getgrav\/grav-plugin-login-oauth2#52](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/issues\/52)).\n1. [](#improved)\n    * Page media reordering is now a clear Reorder toggle in the Page Media panel, so you drag the images themselves to set their order instead of a small grip handle ([#74](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/74)).\n    * The Media manager now has the same Reorder toggle, so you drag whole cards or rows to set a folder's order and the grip handles are gone ([#74](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/74)).\n    * Plugin menubar items can now be external links that open in a new tab, not just actions.\n    * Plugin menubar buttons now sit in the open space on the left of the toolbar, set apart from the system actions by a divider, so everyday plugin actions are no longer crowded against Clear Cache ([#81](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/81)).\n    * Plugins can now choose whether a menubar button sits in the left zone or beside the core actions, and set the order buttons appear in ([#81](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/81)).\n    * The page editor now limits how many requests it makes at once, so opening a page with many panels and fields no longer overwhelms the server.\n    * Each plugin's custom field scripts are now downloaded as a single bundle and cached, so the page editor opens with fewer downloads and reuses them on the next visit.\n1. [](#bugfix)\n    * The page editor no longer loads the page, its blueprint, and its media twice when it opens.\n    * Custom fields and the editor no longer occasionally fail to appear when a page opens, now retrying automatically and falling back to a cached copy if the server is briefly busy.\n    * Long environment names no longer wrap onto multiple lines in the environment switcher ([#72](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/72)).\n    * List fields with a single named sub-field, such as an image picker, no longer reload empty after being saved ([#73](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/73)).\n    * The editor no longer keeps retrying collaboration requests on sites without the Sync plugin, which had been flooding the network with 404s ([#73](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/73)).\n    * A rejected configuration save now points to the specific field that failed and names it, instead of showing a generic validation error ([getgrav\/grav#4176](https:\/\/github.com\/getgrav\/grav\/issues\/4176)).\n    * The page editor no longer loses unsaved work to a background session check: while you are editing content or a configuration form, automatic preference syncs and pending app-update reloads hold off until you save or leave ([#83](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/83)).\n    * A custom branding title is now applied to the browser tab on the login page on a cold load, such as in a private window, instead of only after signing in once ([#84](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/84)).\n    * The \"Add to allowlist\" button in the Twig-in-Content report now removes the resolved block from the recent-blocks list straight away, so the action no longer looks like it did nothing ([#85](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/85)).\n    * A page that fails to save now flags the specific field that was rejected and why, instead of showing a generic \"did not pass blueprint validation\" message ([getgrav\/grav#4178](https:\/\/github.com\/getgrav\/grav\/issues\/4178)).\n"},"2.0.7":{"date":"06\/25\/2026","content":"1. [](#new)\n    * Plugin toolbar buttons can now show a text label, a larger size, and a color such as primary, success, or danger, so custom actions are no longer easy to miss ([#67](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/67)).\n    * A built-in API debug panel, shown when Grav's debugger is enabled, lists recent admin requests with their timing, a cross-request message console, and a per-request timeline ([#66](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/66)).\n    * The debug panel now breaks each request's server time into phases and shows the API's own authentication, routing, and controller timings in its timeline, making it clearer where slow requests spend their time ([#65](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/65)).\n    * Page media can now be drag-reordered, and the order is saved with the page so it controls how images appear in collections.\n    * Site-wide media files in the Media manager can now be drag-reordered, with the chosen order saved per folder.\n1. [](#bugfix)\n    * The Markdown editor now starts editing when you click anywhere in its box, not only on the existing text ([#61](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/61)).\n    * The unsaved-changes indicator now clears when you undo your edits back to the saved content, matching the Save button ([#62](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/62)).\n    * Refreshing a page with unsaved changes now shows a single confirmation prompt instead of two ([#63](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/63)).\n    * The cache purge age setting's help text now correctly refers to days instead of seconds ([#64](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/64)).\n"},"2.0.6":{"date":"06\/24\/2026","content":"1. [](#bugfix)\n    * The Server URL on the sign-in and setup screens no longer doubles up its address after signing out and back in ([#58](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/58)).\n"},"2.0.5":{"date":"06\/24\/2026","content":"1. [](#new)\n    * The admin title shown on the sign-in screen and in the browser tab can now be customised under Settings > Branding ([#54](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/54)).\n    * The sign-in screen can now show a custom subtitle beneath the title.\n    * The \"Powered by Grav CMS\" line on the sign-in and setup screens can now be hidden.\n    * A custom favicon can now be set for the admin, replacing the generated one.\n1. [](#bugfix)\n    * The sign-in screen now shows the configured logo and admin language on a first or incognito visit, instead of only after signing in once ([#54](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/54)).\n    * New pages now have their date filled in with the current time when the page template includes a date field, matching the behaviour of the previous admin ([#49](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/49)).\n    * The admin now works when opened on an alternate host such as www, instead of failing to log in and showing untranslated labels because requests were being sent to the site's canonical address ([#56](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/56)).\n    * Reopening the admin after closing the browser now keeps you signed in until your session actually expires, instead of sending you back to the sign-in screen while time still remained ([#55](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/55)).\n    * Signing in now works on a site served from the web root with no subfolder, instead of failing because the admin was sending its requests to the wrong address ([#58](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/58)).\n    * User and group permissions can now be edited when they start out empty, instead of the toggles doing nothing and the change refusing to save ([#58](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/58)).\n"},"2.0.4":{"date":"06\/23\/2026","content":"1. [](#bugfix)\n    * [security] The admin no longer includes the exact Grav and Admin version numbers or the environment type in the page served to visitors who are not logged in, removing a fingerprint that made it easier to pick version-specific exploits (GHSA-pfjq-chp8-3vgh).\n    * The user and group permissions editor no longer reports unsaved changes after you set a permission and then switch it back to Not set ([#50](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/50)).\n    * Denying or allowing one sub-permission no longer silently removes the access granted by its parent permission group ([#50](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/50)).\n    * Enabling a toggleable option such as Visible or Routable now saves a real value instead of a blank one, so a page no longer disappears from navigation after saving ([getgrav\/grav#4153](https:\/\/github.com\/getgrav\/grav\/issues\/4153)).\n    * Fieldsets in the page and configuration editors now honour their collapsible, collapsed and icon settings, showing a working collapse toggle and the chosen icon ([#52](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/52)).\n"},"2.0.3":{"date":"06\/22\/2026","content":"1. [](#improved)\n    * Corrected the route-override instructions in the README to point at the right config file.\n"},"2.0.2":{"date":"06\/22\/2026","content":"1. [](#new)\n    * The user editor now shows which permissions a user inherits from their groups, naming the group that grants each one, so you can see a user's effective access at a glance without changing it. Thanks to @Keyskeeper for the report.\n1. [](#improved)\n    * The update confirmation dialog now lists the actual plugins and themes that will be updated, along with their new versions, instead of only showing a count. Thanks to @Sogl for the report.\n1. [](#bugfix)\n    * Logging in now works when the API plugin's route has been changed from the default `\/api`, instead of failing because requests still went to the old route ([api#8](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/8)). Thanks to @hasancemcerit for the report.\n"},"2.0.1":{"date":"06\/21\/2026","content":"1. [](#bugfix)\n    * Saving a configuration twice in a row without reloading no longer fails with a conflict error on Apache servers that use Brotli or gzip compression.\n"},"2.0.0":{"date":"06\/20\/2026","content":"1. [](#new)\n    * Version 2.0 stable release for Grav 2.x\n1. [](#bugfix)\n    * Links inside dashboard notifications, such as the trusted-host warning's \"How to fix this\", now appear as visible underlined links instead of looking like plain text.\n    * Flex object list views now show formatted dates and select option labels instead of raw timestamps and stored keys ([flex-objects#220](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/220)).\n    * Flex object list views now honor a directory's configured default page size and sort order ([flex-objects#221](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/221)).\n"},"2.0.0-rc.16":{"date":"06\/19\/2026","content":"1. [](#new)\n    * Plugins can now open admin modals, either a quick form built from inline field definitions or their own custom modal component ([#44](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/44)).\n    * Toolbar buttons added by plugins can now jump straight to a screen, including the new-page form with the parent and template pre-filled ([#44](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/44)).\n2. [](#improved)\n    * Reworded the user-folder exposure warning to be clearer and less alarming, and linked it to a dedicated documentation page that explains the risk and how to fix it on each web server.\n3. [](#bugfix)\n    * Sites whose accounts use Flex or custom nested storage no longer get the frontend wrongly redirected to the admin as if no users existed ([#7](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/7)).\n    * The page template selector in Expert mode now lists the correct templates for modular pages instead of showing an empty selector ([#41](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/41)).\n"},"2.0.0-rc.15":{"date":"06\/16\/2026","content":"1. [](#new)\n    * The Markdown editor can now keep its toolbar pinned in view as you scroll, and optionally hold a fixed height with its own scrollbar, both configurable in Settings ([#37](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/37)).\n    * The Dashboard now shows a prominent warning when your `user\/data`, `user\/accounts` and `user\/config` folders are downloadable over the web, catching a misconfigured webserver before it leaks certificates, keys or databases.\n    * Plugin settings pages can now show a custom save notification supplied by the plugin, including longer-lived or dismiss-required messages, instead of always the generic saved message ([#38](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/38)).\n    * Plugin sidebar items can now show a live count badge that refreshes on its own, instead of only a fixed number set when the page loads ([#42](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/42)).\n    * Flex object editors now have an info button that reveals the object's id, directory and storage location in a small copyable panel, so you can reference an object in code without hunting for its id ([getgrav\/grav#4130](https:\/\/github.com\/getgrav\/grav\/issues\/4130)).\n    * File upload fields now honor their blueprint's `random_name`, `avoid_overwriting`, `accept`, and `filesize` settings, matching the classic admin.\n2. [](#bugfix)\n    * **The Save button now disables again the moment you empty a required field**, and the unsaved-changes indicator clears with it, instead of the button staying active ([#34](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/34)).\n    * **Required custom fields provided by plugins now block saving while they are empty too**, the same as the built-in fields ([#35](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/35)).\n    * Required custom fields now show the same inline \"field is required\" message as built-in fields when you empty them ([#35](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/35)).\n    * The inline error on a required field now uses the custom `validate.message` from the blueprint when one is set, instead of the generic text ([#34](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/34)).\n    * Dragging an image from the Page Media panel into the markdown editor now inserts a single valid image tag instead of a doubled, corrupted one ([#4123](https:\/\/github.com\/getgrav\/grav\/issues\/4123)).\n    * The Folder Numeric Prefix toggle in a page's Advanced tab now reflects whether the folder actually has a numeric prefix instead of always showing Enabled, and toggling it adds or removes the prefix on save.\n    * Turning the Folder Numeric Prefix on now places the page last in its folder by giving it a prefix one past the highest among its siblings.\n    * The page editor's Page Info panel now shows the page's folder name, making numeric-prefix and ordering issues easier to spot.\n    * Uploading a file or image to a flex object now saves it to that object instead of failing with a Method Not Allowed error ([flex-objects#216](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/216)).\n    * A plugin page built as a custom component can now control its own Save button, which previously stayed greyed out and unusable ([#40](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/40)).\n    * Custom fields shipped by a theme now load in the editor instead of failing with a \"Failed to load custom field\" error ([#3](https:\/\/github.com\/getgrav\/grav-admin-next\/issues\/3)). Requires grav-plugin-api \u2265 1.0.0-rc.15.\n    * Required fields now show their asterisk marker again, which had gone missing for every field shown in the two-column label layout ([getgrav\/grav#4130](https:\/\/github.com\/getgrav\/grav\/issues\/4130)).\n    * The flex object \"After Save\" control no longer shows its label twice and its radio buttons now line up properly.\n"},"2.0.0-rc.14":{"date":"06\/09\/2026","content":"1. [](#new)\n    * **The Users area can now be filtered by permission or group** with a type-ahead picker, so you can find every account that holds a given permission, such as all admins. Requires grav-plugin-api \u2265 1.0.0-rc.14.\n    * **The users table gains a Permissions column, and both the table and cards views flag accounts that have backend access**, with super admins called out separately.\n    * **A user's group memberships now show in their detail panel, and clicking any permission or group filters the list by it.**\n2. [](#improved)\n    * **Added labels for the new image security settings** (URL-based image actions and the maximum-pixels limit) under Configuration > System > Images. Requires Grav \u2265 2.0.0-rc.8.\n    * **Configuration and form field labels and help text can now be translated into the admin's chosen language** instead of always appearing in English, now that the shared admin vocabulary is part of the translatable language set. Requires grav-plugin-api \u2265 1.0.0-rc.14.\n3. [](#bugfix)\n    * **Configuration and blueprint help text no longer renders as an auto-generated placeholder** such as \"Default Theme Help\" and now shows the real description, including for admins whose language is a base code like English. Requires grav-plugin-api \u2265 1.0.0-rc.14.\n    * **The page editor no longer shows a false unsaved-changes indicator the moment it loads** in collaborative mode.\n    * **Forms now block saving when a required field is empty and flag each one inline**, instead of saving silently, across configuration, plugin and theme settings, users, groups, flex objects and pages ([#30](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/30)).\n    * **Drilling into the home page in Columns view now opens its sub-pages instead of just adding it to the breadcrumb over and over** ([#33](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/33)).\n"}}},"api":{"name":"API","version":"1.0.13","description":"RESTful API for Grav CMS. Provides headless access to pages, media, configuration, users, and system management.","description_html":"<p>RESTful API for Grav CMS. Provides headless access to pages, media, configuration, users, and system management.<\/p>","description_plain":"RESTful API for Grav CMS. Provides headless access to pages, media, configuration, users, and system management.","icon":"plug","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=2.0.11"},{"name":"login","version":">=3.8.11"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-api","docs":"https:\/\/learn.getgrav.org\/api","keywords":"api, rest, headless, json","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-api\/issues","license":"MIT","tag_name":"1.0.13","date":"2026-07-25T20:23:40Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/api\/1.0.13","repository":"https:\/\/github.com\/getgrav\/grav-plugin-api","slug":"api","install_path":"user\/plugins\/api","content_sha256":"43b883fc63bdef494088a672be2fd8cefa3d61a3065fb8c4ee7a1ac7e25bf57c","changelog":{"1.0.13":{"date":"07\/25\/2026","content":"1. [](#bugfix)\n    * [security] A scoped API key created on a super-admin account is now held to its declared scopes when writing groups, account settings, site preferences, and the shared dashboard layout, so a limited or read-only key can no longer be used to grant itself or others super-admin access ([GHSA-jqgq-v53x-x99g](https:\/\/github.com\/getgrav\/grav-plugin-api\/security\/advisories\/GHSA-jqgq-v53x-x99g)).\n    * [security] A scoped API key can no longer create another key with broader scopes than its own, closing a way a limited key on a super-admin account could mint itself an unrestricted key ([GHSA-95v9-4fcj-96gh](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-95v9-4fcj-96gh)).\n    * [security] That same scope limit now also applies when creating or updating users, sending invitations, removing a user's two-factor authentication, enabling Twig in page content, changing the report sandbox allowlist, writing privileged configuration such as the scheduler, and using the demo controls, so a limited key on a super-admin account cannot use any of these to act beyond its granted scopes ([GHSA-jrm3-jpp7-3gmx](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-jrm3-jpp7-3gmx), [GHSA-wvpj-fg8h-843q](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-wvpj-fg8h-843q), [GHSA-2x29-3mjq-2pvx](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-2x29-3mjq-2pvx), [GHSA-96xv-p87j-58mx](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-96xv-p87j-58mx), [GHSA-v5ph-7v92-wqm6](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-v5ph-7v92-wqm6), [GHSA-22p9-6fh4-mmf2](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-22p9-6fh4-mmf2), [GHSA-vq9w-jwj5-wfjg](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-vq9w-jwj5-wfjg)).\n    * Custom fields added to the account form by extending the account blueprint are now saved instead of being silently dropped ([getgrav\/grav-plugin-admin2#138](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/138)).\n"},"1.0.12":{"date":"07\/20\/2026","content":"1. [](#new)\n    * The site media listing can now filter and sort by the same metadata fields as page media, for example `GET \/media?filter=rating:>=:3&sort=rating&order=desc` ([getgrav\/grav#4210](https:\/\/github.com\/getgrav\/grav\/issues\/4210)).\n1. [](#improved)\n    * Translations now fall back to English for any string a language has not translated yet, instead of showing a mangled version of the key name ([getgrav\/grav-plugin-admin2#129](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/129)).\n1. [](#bugfix)\n    * Blueprint option lists that come from a theme or plugin now resolve against the same approved-provider list Grav core uses, and a theme or plugin can register its own provider.\n    * Invalid input to the option-resolving and backup endpoints now returns a proper validation error instead of a server error.\n    * Reordering or copying a page beneath a Home page that is hidden from URLs now uses its real folder location, so the page is no longer moved out to the site root ([getgrav\/grav-plugin-admin2#132](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/132)).\n    * Concurrent dashboard requests no longer occasionally fail with a \"mkdir(): File already exists\" error when several of them create the same cache folder at once ([#18](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/18)).\n"},"1.0.11":{"date":"07\/13\/2026","content":"1. [](#new)\n    * The page media listing endpoint can now filter and sort by the metadata fields configured for the plugin, for example `GET \/pages\/{route}\/media?filter=rating:>=:3&sort=rating&order=desc`. Fixes [getgrav\/grav#4200](https:\/\/github.com\/getgrav\/grav\/issues\/4200).\n1. [](#improved)\n    * The dashboard statistics endpoint now reports how many plugin, theme, and Grav core updates are available, plus whether the active theme itself has one, so the admin can show update counts without a separate request ([getgrav\/grav-plugin-admin2#124](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/124)).\n"},"1.0.10":{"date":"07\/09\/2026","content":"1. [](#new)\n    * A new per-account demo mode makes an account read-only across the whole admin, with an optional allowlist to still permit editing pages or uploading media.\n    * Demo content resets back to a captured baseline on a timer or with the new `bin\/plugin api demo:baseline` and `demo:reset` commands, so a shared demo cleans itself up after visitors.\n    * Plugins can add per-user action buttons to the new admin's Users list that run a server-side operation against an account and can hand back a message or a safe redirect ([getgrav\/grav-plugin-admin2#115](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/115)).\n    * Autoloading admin widgets can declare the routes they apply to, so their script loads only on the matching admin screen instead of on every page ([getgrav\/grav-plugin-admin2#116](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/116)).\n1. [](#improved)\n    * Plugin and theme details now include the documentation and issue-tracker links from their blueprint, so the admin can link straight to a project's docs and bug tracker.\n    * The API plugin's own settings are now organized into tabs instead of one long scrolling form.\n    * Plugin-contributed link columns in the new admin's Users list can now show separate visible text from the link they point to ([getgrav\/grav-plugin-admin2#111](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/111)).\n1. [](#bugfix)\n    * Plugin sidebar labels now display in the signed-in user's admin language instead of the site's content language, so the sidebar no longer mixes languages ([#14](https:\/\/github.com\/getgrav\/grav-plugin-api\/pull\/14)).\n    * Filtering the pages list by published, visible, or routable status now actually filters the results instead of being ignored ([getgrav\/grav-plugin-admin2#121](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/121)).\n    * Saving metadata with several media files selected now updates every selected file instead of only the last one ([getgrav\/grav-plugin-admin2#117](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/117)).\n    * [security] Reading a configuration section through the API no longer exposes stored passwords, API keys, and other secret values in plain text.\n    * [security] A user who can edit pages can no longer move a page to a location outside the pages folder, closing a path that let a page's files be written anywhere the server can write (GHSA-qjq4-jp55-4mx2).\n    * [security] Inviting a new user into a group is now restricted to super administrators, so a user who can only manage accounts can no longer invite someone straight into a super-admin group (GHSA-m86m-jjcg-gcvv).\n    * [security] Changing the API plugin's own settings, such as its CORS policy and rate limiting, now requires a super administrator, so a user with general configuration access can no longer weaken the API's own protections (GHSA-4pqv-2qj5-38fp).\n"},"1.0.9":{"date":"07\/06\/2026","content":"1. [](#new)\n    * The new admin can now retrieve the Grav core changelog for versions newer than the one installed, so it can show what changed before you upgrade ([getgrav\/grav-plugin-admin2#109](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/109)).\n    * Plugins can now add their own columns to the new admin's Users list, contributing safe per-user values that stay scoped to the page you are viewing ([getgrav\/grav-plugin-admin2#111](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/111)).\n1. [](#improved)\n    * Media listings now include each file's saved alt text and title from its metadata, so the admin can insert an image with proper alt text instead of the filename ([getgrav\/grav-plugin-admin2#114](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/114)).\n1. [](#bugfix)\n    * The page summary preview now returns clean stripped text instead of a slice of raw Markdown, so leading links and images no longer leave broken fragments in the new admin's page list ([getgrav\/grav-plugin-admin2#110](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/110)).\n    * Media files whose extension has any uppercase letters, such as `.JPG`, can now be deleted instead of failing with a not-found error ([getgrav\/grav#4196](https:\/\/github.com\/getgrav\/grav\/issues\/4196)).\n"},"1.0.8":{"date":"07\/04\/2026","content":"1. [](#new)\n    * You can now edit a media file's metadata such as alt text, title, caption, description, and tags directly in the new admin, with the fields you want to manage configurable in the plugin settings ([getgrav\/grav-plugin-admin2#99](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/99)).\n    * The new admin's page editor can now preview an unpublished page instead of showing a 404, so you no longer need a separate plugin to preview drafts ([getgrav\/grav-plugin-admin2#100](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/100)).\n1. [](#improved)\n    * A plugin that adds tabs to the new admin's Users list can now choose which tab it opens on and hide the built-in \"All Users\" tab when showing every account isn't a useful default ([getgrav\/grav-plugin-admin2#51](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/51)).\n    * The new admin now remembers a per-user Vim keybindings choice for its Markdown and code editors, saved to the user's account ([getgrav\/grav-plugin-admin2#95](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/95)).\n    * Media, theme, and avatar listings now prepare each image thumbnail in a single pass, speeding up image-heavy listings.\n    * Requests authenticated with an API key no longer rewrite the key storage file on every call; the key's last-used time is refreshed at most once a minute.\n    * The dashboard now remembers its media file count for a few minutes instead of scanning the whole media folder on every visit.\n1. [](#bugfix)\n    * The new admin's log viewer now lists the security log and any other log files in your logs folder, instead of only a fixed set ([getgrav\/grav-plugin-admin2#107](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/107)).\n    * A configuration tab added by a plugin or theme now opens and saves in the new admin, instead of showing a \"scope not found\" error ([getgrav\/grav-plugin-migrate-grav#16](https:\/\/github.com\/getgrav\/grav-plugin-migrate-grav\/issues\/16)).\n    * The dashboard media count no longer includes hidden sidecar files such as metadata and ordering files, so it reflects the number of actual media files.\n    * [security] Generating or revoking an API key for another account now requires account-management permission, and only a super administrator can do so for a super-admin account, so a user with only basic panel access can no longer mint a key that carries another account's API permissions ([GHSA-7v74-m76q-8wf3](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-7v74-m76q-8wf3)).\n    * A user migrated from the classic admin now keeps the interface language they had set there, instead of dropping to the site default, until they pick a different one in the new admin ([getgrav\/grav-plugin-admin2#98](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/98)).\n    * The new admin's taxonomy field now lists every taxonomy type declared for the site so you can add categories and tags on a page even when none have been used yet ([getgrav\/grav-plugin-admin2#90](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/90)).\n    * Opening a page preview in the new admin no longer logs out a visitor signed in to the public site in the same browser, because the preview now renders without touching the shared front-end session ([getgrav\/grav-plugin-admin2#88](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/88), [getgrav\/grav-plugin-admin2#79](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/79)).\n    * The new admin's scheduler view now includes the core backup jobs, which were previously missing from the list and its health check.\n"},"1.0.7":{"date":"06\/30\/2026","content":"1. [](#bugfix)\n    * Working in the new admin no longer logs out a visitor who is signed in to the public site in the same browser, by stopping API calls from replacing the visitor's session cookie when the admin reaches the API without one ([getgrav\/grav-plugin-admin2#88](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/88), [getgrav\/grav-plugin-admin2#79](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/79)).\n"},"1.0.6":{"date":"06\/29\/2026","content":"1. [](#new)\n    * The API can now keep an optional audit trail of admin activity such as logins, content edits, user changes, and configuration changes, available to super admins and turned off by default.\n    * Plugins can now add their own buttons to the new admin's Markdown editor toolbar.\n    * The new admin can now sign in through an OAuth provider such as GitHub or Google when the Login OAuth2 plugin is configured for it ([getgrav\/grav-plugin-login-oauth2#52](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/issues\/52)).\n1. [](#improved)\n    * The new admin now loads a plugin's custom field scripts in a single request per plugin instead of one request per field, so the page editor opens with far fewer round-trips.\n    * Custom field and editor scripts are now cached and revalidated cheaply, so reopening the editor no longer downloads them again each time.\n1. [](#bugfix)\n    * The new admin's page editor no longer intermittently fails to load the editor or custom fields when many of them request their scripts at the same time.\n    * The new admin's page editor again shows the Twig processing toggle to super admins and users granted the Twig content permission when the \"Allow editors to toggle Twig in Content\" option is off, matching what they are already allowed to save ([getgrav\/grav-admin-next#5](https:\/\/github.com\/getgrav\/grav-admin-next\/issues\/5)).\n    * Saving a page whose frontmatter has a text `modified` date no longer fails with an error in the new admin ([getgrav\/grav#4170](https:\/\/github.com\/getgrav\/grav\/issues\/4170)).\n    * Signing in to the new admin no longer resets the session of a visitor who is logged in to the public site in the same browser, so front-end logins are no longer dropped while you work in the admin ([getgrav\/grav-plugin-admin2#79](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/79)).\n    * Renaming a media file now keeps its original extension and cleans spaces and other unsafe characters out of the new name, so the renamed file still works in Markdown image links ([getgrav\/grav-plugin-admin2#77](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/77)).\n    * Saving system configuration in the new admin no longer fails when an unrelated, pre-existing setting is invalid, such as a value carried over from a migrated site, because only the fields you actually changed are now validated ([getgrav\/grav#4176](https:\/\/github.com\/getgrav\/grav\/issues\/4176)).\n    * Creating, copying, or moving a page at the site root no longer fails with a \"Parent page not found\" error on Windows ([getgrav\/grav-plugin-admin2#82](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/82)).\n    * Admin labels for a region-specific admin language such as `ru-RU` now fall back to a plugin's matching short-code language file (`ru`) before English, so plugins that ship plain language files are translated correctly ([#11](https:\/\/github.com\/getgrav\/grav-plugin-api\/pull\/11), thanks @Sogl).\n    * The \"Add to allowlist\" button in the Twig-in-Content report now removes the block it just resolved instead of leaving the same row behind, so it is clear the action took effect ([getgrav\/grav-plugin-admin2#85](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/85)).\n    * Content entered into an Elements field's sub-fields is now saved in the new admin instead of being discarded, and editing those sub-fields now enables the Save button ([getgrav\/grav-plugin-admin2#86](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/86)).\n"},"1.0.5":{"date":"06\/25\/2026","content":"1. [](#new)\n    * API controllers can now send debug output to Grav's debugger without corrupting the JSON response, so values can be inspected in Clockwork and the new admin's debug panel ([getgrav\/grav-plugin-admin2#66](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/66)).\n    * The API now keeps Grav's object cache on for its own requests even when caching is turned off for the site, so the new admin stays fast while you develop the frontend with the cache disabled ([getgrav\/grav-plugin-admin2#65](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/65)).\n    * Requests authenticated with an API key are now much faster when repeated, because a verified key is briefly remembered instead of being re-checked with a deliberately slow hash on every request.\n    * API requests now report their authentication, routing, and controller timings to Grav's debugger, so the new admin's debug panel timeline shows where each request spends its time ([getgrav\/grav-plugin-admin2#65](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/65)).\n    * The new admin's many simultaneous requests no longer queue up waiting on the session one at a time, so pages and lists load noticeably faster ([getgrav\/grav-plugin-admin2#65](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/65)).\n    * Site-wide media files can now be saved in a custom order, stored per folder and applied whenever that folder's media is listed.\n1. [](#bugfix)\n    * Blueprint field unit labels such as the cache purge age now display correctly, showing \"days\" instead of a humanized key like \"Day Plural\" in the new admin ([getgrav\/grav-plugin-admin2#64](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/64)).\n    * Deleting a page image now works for images that have a retina `@2x` variant, instead of failing with a \"not found\" error, and it removes the variant too rather than leaving it orphaned ([getgrav\/grav-plugin-admin2#68](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/68)).\n    * Changing a module's template now renames it in place instead of creating a broken extra child page ([getgrav\/grav-plugin-admin2#69](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/69)).\n"},"1.0.4":{"date":"06\/24\/2026","content":"1. [](#new)\n    * Admin branding now stores a custom sign-in title, subtitle, a toggle to hide the \"Powered by Grav CMS\" line, and a custom favicon, exposed to the sign-in screen before login ([getgrav\/grav-plugin-admin2#54](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/54)).\n    * The branding upload endpoint now accepts a favicon image alongside the light and dark logos.\n2. [](#bugfix)\n    * [security] Password reset and invitation emails now build their links only from your site's own address or an allowlisted origin, so an attacker can no longer redirect a reset link to a server they control and capture the token to take over an account (GHSA-5xc4-j99p-cp4m).\n    * [security] API access tokens can now be invalidated before they expire, so logging out, changing or resetting a password, and disabling an account immediately revoke any tokens already issued to that user (GHSA-m8g9-wxhx-6f86).\n    * New pages now keep only the default values the template author actually set, instead of also copying inherited collection and plugin settings (such as empty sitemap fields) into the page's frontmatter ([getgrav\/grav-plugin-admin2#53](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/53)).\n    * Profile avatars now display for accounts whose avatar was stored as a plain filename, instead of appearing blank ([getgrav\/grav-plugin-api#9](https:\/\/github.com\/getgrav\/grav-plugin-api\/pull\/9)).\n    * Permissions granted to a user through group membership are now honored, so a user whose access comes only from a group can again see and use Pages, Media, and Reports ([getgrav\/grav-plugin-admin2#57](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/57)).\n    * A group or user with no permissions set is now returned with an empty permission map rather than an empty list, so the admin can add the first permission to it ([getgrav\/grav-plugin-admin2#58](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/58)).\n    * Page and media lookups now find pages under a hidden home route, so editing a home child page and its Media panel work when \"Hide home route in URLs\" is enabled ([getgrav\/grav-plugin-api#10](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/10)).\n"},"1.0.3":{"date":"06\/23\/2026","content":"1. [](#new)\n    * Plugins can now add their own tabs to the Users list, such as an \"Active\" or \"Licensed\" view that shows a filtered set of accounts, with search, permissions, and pagination still applied ([getgrav\/grav-plugin-admin2#51](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/51)).\n2. [](#bugfix)\n    * New pages created through the admin now inherit their template's blueprint default values, so a page set to start unpublished is no longer published the moment it is created ([getgrav\/grav-plugin-admin2#49](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/49)).\n"},"1.0.2":{"date":"06\/22\/2026","content":"1. [](#bugfix)\n    * [security] The token signing secret is now kept in a protected, non-committed file outside your site config instead of in plugins\/api.yaml, so it can no longer be read from the config or leaked through templates, and existing logins keep working across the upgrade ([getgrav\/grav#4150](https:\/\/github.com\/getgrav\/grav\/issues\/4150)).\n    * [security] File uploads through the API now reject names that hide a disguised second extension such as `shell.php.jpg`, closing a path that could let an executable script be saved and run on the server (GHSA-66v2-vxxf-xc3v).\n    * [security] SVG images uploaded through the API are now cleaned of any embedded scripts, so a malicious SVG can no longer run code in an admin's browser when viewed (GHSA-7vhm-8x52-2r5p).\n"},"1.0.1":{"date":"06\/21\/2026","content":"1. [](#bugfix)\n    * [security] Profile avatar and admin logo uploads now verify the actual image content instead of trusting the file type claimed by the browser, so a disguised script or PHP file can no longer be saved into your site's files (GHSA-xc64-vh46-vph6).\n    * The ETag header is now readable by the admin when it runs on a different domain than the API, so save conflict protection keeps working in that setup.\n"},"1.0.0":{"date":"06\/20\/2026","content":"1. [](#new)\n    * Page Statistics can now exclude visits from logged-in admins and from specific visitor IP addresses or ranges, so your own testing and demo traffic no longer skews the numbers ([getgrav\/grav-plugin-admin2#45](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/45)).\n2. [](#bugfix)\n    * [security] An admin who can manage users but is not a super admin can no longer change, create, or delete super-admin accounts, closing a privilege-escalation path that allowed taking over the super admin by resetting its password (GHSA-p97c-g455-q447).\n    * [security] Profile avatar and admin logo uploads now verify the actual image content instead of trusting the file type claimed by the browser, so a disguised script or PHP file can no longer be saved into your site's files (GHSA-xc64-vh46-vph6).\n    * Accounts with two-factor authentication configured are now always challenged at login, closing a gap where migrated or existing 2FA accounts could sign in with only a password ([getgrav\/grav#4145](https:\/\/github.com\/getgrav\/grav\/issues\/4145)).\n    * Two-factor enrollment is now offered in the admin whenever the Login plugin is installed, instead of staying hidden unless a site-wide flag was set ([getgrav\/grav#4145](https:\/\/github.com\/getgrav\/grav\/issues\/4145)).\n"},"1.0.0-rc.16":{"date":"06\/19\/2026","content":"1. [](#new)\n    * Plugins can now provide Admin2 modal dialogs through a new endpoint that serves their modal components.\n2. [](#improved)\n    * Plugins that serialize their own admin config labels can now reuse the API's label translation, so those labels localize to the signed-in user's admin language.\n3. [](#bugfix)\n    * Cross-origin access to the API is now off by default and is never granted with a wildcard on signed-in responses, so another website can no longer read your API data or act on your behalf with a stolen token; add the specific origins you trust in the CORS settings if a browser app on another domain needs access.\n    * An access token passed in the URL query string is now accepted only for file downloads, not for regular API calls, so a token can no longer leak through server logs, browser history, or referrer headers and then be reused to take over an account.\n    * The dashboard user count now uses the same account backend as the Users page, so sites with Flex or custom nested account storage report the real number of users instead of zero ([getgrav\/grav-plugin-api#7](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/7)).\n    * Saving a page no longer fails validation when its header still lists a processing option (such as Twig) that has since been disabled site-wide, so a leftover setting the editor never touched can't block every save ([getgrav\/grav-plugin-admin2#41](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/41)).\n    * The page-type data resolver now returns the modular template list for modular pages when the caller asks for it, instead of always returning the standard list ([getgrav\/grav-plugin-admin2#41](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/41)).\n"},"1.0.0-rc.15":{"date":"06\/16\/2026","content":"1. [](#new)\n    * Added a dashboard security endpoint that hands the admin Dashboard a sentinel URL under `user\/data`, so it can detect from the browser whether the sensitive `user\/` folders are downloadable over the web.\n    * Added user preferences for keeping the Markdown editor toolbar pinned while scrolling and for setting a fixed editor height.\n    * Plugins can now contribute dashboard notifications via a new `onApiDashboardNotifications` event, letting them raise a persistent, dismissible admin banner (grouped by location \u2014 `top`, `dashboard`, `feed`) that flows through the existing dismiss and `reappear_after` handling.\n    * Plugin endpoints can now return a toast hint to control the message, type and duration of the notification the admin shows after a save, including errors that stay until dismissed ([getgrav\/grav-plugin-admin2#38](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/38)).\n2. [](#improved)\n    * Public API endpoints now recognize logged-in callers when credentials are provided, returning their richer permission-filtered responses instead of treating everyone as a guest.\n    * Plugins can now mark public routes as read-only by method, so browsing stays open while writes on the same paths still require login.\n    * Page responses now include the on-disk folder name, including any numeric ordering prefix, so admin tools can show and diagnose page ordering.\n    * File upload fields now honor their blueprint's `random_name`, `avoid_overwriting`, `accept`, and `filesize` settings, matching the classic admin.\n3. [](#bugfix)\n    * Creating, listing, downloading, and deleting site backups now requires a dedicated backup permission (or API super user) instead of the broader system read\/write access, because the backup archive includes account password hashes and configuration secrets.\n    * Page and account content saved through the API is now checked for cross-site scripting, closing a hole where an editor without full admin rights could store a script that later ran in other visitors' browsers.\n    * Blueprint fields that use relative dot-naming inside a section (such as `.optionA`) now save their values again, restoring the nested-field behaviour from the classic admin ([getgrav\/grav#4120](https:\/\/github.com\/getgrav\/grav\/issues\/4120)).\n    * Pages on a template the current theme doesn't define now fall back to the default page form in the editor instead of showing a blank screen, matching the classic admin.\n    * Toggle and select options whose Yes\/No labels were turned into booleans by strict YAML parsing now render as Yes\/No again instead of a blank or \"true\" button ([getgrav\/grav-plugin-admin2#36](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/36)).\n    * A caller restored via the login plugin's *remember me* cookie (left `authenticated` but not `authorized`) is now accepted by session authentication, so a remembered user who shows as signed in can use the API instead of being silently rejected on every write until a fresh login. Per-route permission checks still gate what they can actually do.\n    * The page template selector no longer breaks with a \"callable not found\" error when a blueprint references the classic admin's page-types helper but the classic admin isn't active, falling back to the built-in page types instead ([getgrav\/grav-plugin-admin2#41](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/41)).\n    * Custom fields provided by a theme are now reported with their provider type and included in the theme's own info, so the admin can load them from the correct route instead of always assuming a plugin ([getgrav\/grav-admin-next#3](https:\/\/github.com\/getgrav\/grav-admin-next\/issues\/3)).\n    * Editing or deleting a specific translation with `?lang=` now targets that language's file instead of silently overwriting or failing to find the default language ([getgrav\/grav-plugin-api#6](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/6)).\n"},"1.0.0-rc.14":{"date":"06\/09\/2026","content":"1. [](#new)\n    * The page editor now includes a Security tab for setting page access and permissions, matching the classic admin, with the permissions section limited to users who hold API super or configuration rights.\n    * Page Authors is now a searchable multiselect of the users who can edit pages, instead of free-text username entry.\n    * The users API can now filter accounts by permission or group, so the admin can list everyone who holds a given permission such as admin access.\n    * The user listing now includes each account's group memberships.\n2. [](#improved)\n    * A failed Grav core upgrade now reports the real reason and records it in the log, instead of a generic \"Failed to upgrade Grav core\" message.\n    * A Grav core upgrade blocked by a compatibility check now lists the packages responsible and can be retried with an explicit override, matching the command-line upgrader.\n    * Saving config, pages or accounts now validates the submitted fields against the blueprint, so a required field left empty or an invalid value is rejected instead of silently saved ([getgrav\/grav-plugin-admin2#30](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/30)).\n    * Media upload handling is now shared, so other plugins such as Flex Objects can let you attach files to their own records.\n3. [](#bugfix)\n    * Saving a page no longer corrupts its frontmatter with stray internal keys, which previously accumulated on every save when editing in Expert mode ([getgrav\/grav-plugin-admin2#31](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/31)).\n    * Saving a page through the API no longer fails when an admin-aware plugin posts a flash message from its save handler ([#5](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/5)).\n    * Pages under the home page now appear nested beneath it in the tree and columns views, instead of being listed at the top level ([getgrav\/grav-plugin-admin2#32](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/32)).\n"},"1.0.0-rc.13":{"date":"06\/04\/2026","content":"1. [](#new)\n    * **Custom top-level configuration files now appear as their own tab in admin2**, alongside System, Site, Media and Security, so the long-standing \"add a custom YAML file\" cookbook recipe works again.\n    * **Configuration fields that override an inherited default now expose a one-click revert**, with a \"Reset overrides\" action to clear them all at once, for both the base configuration and per-environment overlays.\n2. [](#bugfix)\n    * **Saving configuration no longer fails with a \"modified elsewhere\" error on servers that compress responses with zstd**, matching the gzip and brotli handling already in place (follow-up to [getgrav\/grav-plugin-admin2#28](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/28)).\n    * **Configuration now reads from the correct source behind a reverse proxy that forwards a different hostname than the server booted under**, so the base \"Default\" view no longer shows another environment's overridden values.\n    * **Configuration saved without an explicit environment now lands in the environment the site is actually running, even behind a reverse proxy**, instead of silently writing to the base configuration.\n"},"1.0.0-rc.12":{"date":"06\/03\/2026","content":"1. [](#new)\n    * **Invite a user by email** instead of creating the account yourself: pre-set their permissions and groups, send a time-limited invite link, and they choose their own username, name and password when they accept (they can never grant themselves more access than you set).\n2. [](#improved)\n    * **Usernames containing periods (e.g. `john.doe`) are now accepted and listed correctly**, matching the characters admin classic has always allowed.\n3. [](#bugfix)\n    * **Saving a configuration twice in a row no longer fails with a \"Configuration was modified elsewhere\" error** when you toggle an option whose neighbour is left at its default value. Fixes [getgrav\/grav-plugin-admin2#28](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/28).\n"},"1.0.0-rc.11":{"date":"05\/29\/2026","content":"1. [](#improved)\n    * **Sidebar `authorize` now accepts an array of permissions** (any-of semantics, matching admin-classic's `nav-quick-tray.html.twig` pattern), and the **menubar and floating-widget APIs gained the same `authorize` filtering**. Plugins that register sidebar \/ menubar \/ widget items can now hide them from users who lack the relevant permission without needing to check inside their own event handler. Used across grav-plugin-git-sync, grav-plugin-license-manager, grav-plugin-algolia-pro, grav-plugin-cloudflare, grav-plugin-comments-pro, grav-plugin-image-optimize, grav-plugin-rsync, grav-plugin-seo-magic, grav-plugin-translation-service, grav-plugin-warm-cache, grav-plugin-ai-pro, and grav-plugin-ai-translate to fix [getgrav\/grav-plugin-admin2#23](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/23).\n2. [](#bugfix)\n    * **Hebrew and Arabic admin language responses are correctly marked right-to-left again**, restoring the RTL admin shell that broke after the BCP-47 language code switch.\n    * **Media files and folders whose names contain non-ASCII characters (e.g. `im\u00e4ge1.png`, `F\u00f6lder1`) can be deleted again.** Captured route params arrived percent-encoded because Grav's URL parser does not decode them, so the controller looked for a file that didn't exist. Route params are now rawurldecoded once in the dispatcher. Fixes [getgrav\/grav-plugin-api#3](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/3).\n    * **Media files whose extension matches a configured page type (`.txt`, `.md`, `.html`, \u2026) can be deleted again.** Grav's URL router strips known page-type extensions before any plugin sees the route, so `\/media\/notes.txt` arrived as `\/media\/notes` and 404'd. The dispatcher now re-attaches the stripped extension before matching, fixing every plugin route at once. Fixes [getgrav\/grav-plugin-api#3](https:\/\/github.com\/getgrav\/grav-plugin-api\/issues\/3).\n    * **Saving a page or configuration with YAML list values no longer grows the file with quoted `'0'`, `'1'`, `'2'` keys mixed in alongside the original entries.** Reported via [getgrav\/grav-theme-quark2#8](https:\/\/github.com\/getgrav\/grav-theme-quark2\/issues\/8).\n"}}},"collection-editor":{"name":"Collection Editor","version":"1.0.1","description":"Bulk edit frontmatter for pages.","description_html":"<p>Bulk edit frontmatter for pages.<\/p>","description_plain":"Bulk edit frontmatter for pages.","icon":"folder-open","author":{"name":"Luke Lollard","email":"haihige@protonmail.com"},"dependencies":[{"name":"grav","version":">=1.6.0"},{"name":"admin","version":">=1.9.0"}],"homepage":"https:\/\/github.com\/haihige\/grav-plugin-collection-editor","docs":"https:\/\/github.com\/haihige\/grav-plugin-collection-editor\/blob\/master\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/haihige\/grav-plugin-collection-editor\/issues","license":"BSD-2-Clause","tag_name":"v1.0.1","date":"2026-03-21T01:42:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/collection-editor\/1.0.1","repository":"https:\/\/github.com\/haihige\/grav-plugin-collection-editor","slug":"collection-editor","install_path":"user\/plugins\/collection-editor","content_sha256":"fa9ec6baaa23937a957a5e108432251ec82118509ccd520e6fdb672f736ab820","changelog":{"1.0.1":{"date":" 03\/20\/2026","content":"1. [](#improved)\n    * Corrected blueprints.yaml\n\n"},"1.0.0":{"date":" 03\/13\/2026","content":"1. [](#new)\n    * Initial release"}}},"secret-split":{"name":"Secret Split","version":"1.0.2","description":"Store selected plugin secrets outside config YAML files","description_html":"<p>Store selected plugin secrets outside config YAML files<\/p>","description_plain":"Store selected plugin secrets outside config YAML files","icon":"lock","author":{"name":"Artyom Mezin","url":"https:\/\/mezin.me","email":"artyom@mezin.me"},"homepage":"https:\/\/github.com\/Sogl\/grav-plugin-secret-split","keywords":"plugin, secrets, config, security","bugs":"https:\/\/github.com\/Sogl\/grav-plugin-secret-split\/issues","license":"MIT","tag_name":"v1.0.2","date":"2026-03-14T14:04:45Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/secret-split\/1.0.2","repository":"https:\/\/github.com\/Sogl\/grav-plugin-secret-split","slug":"secret-split","install_path":"user\/plugins\/secret-split","content_sha256":"a3b9ee95755a2a4125350d073f31d49c72df7b4f00fadb6236576c68d24db54e","changelog":{"1.0.2":{"date":"03\/14\/2026","content":"1. [](#improved)\n    * Restore early blueprint\/bootstrap loading for Secret Split so GPM and admin metadata paths resolve normally.\n"},"1.0.1":{"date":"03\/14\/2026","content":"1. [](#improved)\n    * Preserve Grav base\/env storage layering during return-to-config and move-to-secrets flows.\n"},"1.0.0":{"date":"03\/13\/2026","content":"1. [](#new)\n    * First project release."}},"dependencies":[]},"impersonate":{"name":"Impersonate","version":"1.1.3","description":"Admin frontend impersonation for users","description_html":"<p>Admin frontend impersonation for users<\/p>","description_plain":"Admin frontend impersonation for users","icon":"arrow-right-arrow-left","author":{"name":"Artyom Mezin","email":"artyom@mezin.me"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"php","version":">=7.4"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/Sogl\/grav-plugin-impersonate","docs":"https:\/\/github.com\/Sogl\/grav-plugin-impersonate\/blob\/develop\/README.md","keywords":"grav, plugin, impersonate, login as user","bugs":"https:\/\/github.com\/Sogl\/grav-plugin-impersonate\/issues","license":"MIT","tag_name":"1.1.3","date":"2026-07-09T21:35:33Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/impersonate\/1.1.3","repository":"https:\/\/github.com\/Sogl\/grav-plugin-impersonate","slug":"impersonate","install_path":"user\/plugins\/impersonate","content_sha256":"2a85652cd65dd0b614ac7bec76d8c04b9b82de6a9e6047fc2c8ff4df69c0cbe6","changelog":{"1.1.3":{"date":"07\/10\/2026","content":"1. [](#improved)\n    * Switched Admin Next Users-list impersonation to the native row-action contract introduced in Admin2 2.0.13 \/ API 1.0.10, removing the plugin's old `\/impersonate\/users` metadata endpoint and `\/impersonate\/start` API route.\n    * Updated the existing Admin Next widget to enhance Admin2's native Users row-action buttons instead of injecting separate buttons, while still handling the topbar self action, active start\/stop styling, switch confirmation, frontend URL opening, and state synchronization.\n"},"1.1.2":{"date":"06\/30\/2026","content":"1. [](#improved)\n    * Replaced the local Admin Next label translation workaround with the API plugin's built-in `TranslatesAdminLabels` helper and translation-key responses, relying on API 1.0.6+ for the region-language fallback added in [getgrav\/grav-plugin-api#11](https:\/\/github.com\/getgrav\/grav-plugin-api\/pull\/11).\n"},"1.1.1":{"date":"06\/29\/2026","content":"1. [](#bugfix)\n    * Fixed plugin description showing a raw translation key in the Admin plugin list. The `description` field in `blueprints.yaml` is not processed by Grav's language system, so it now contains the plain text directly; the unused `DESCRIPTION` key was removed from `languages.yaml`.\n"},"1.1.0":{"date":"06\/28\/2026","content":"1. [](#new)\n    * Added Grav 2.0 \/ Admin Next support for the self impersonation toolbar action, Users row actions, signed API routes, and the plugin log viewer.\n    * Added Admin Next translation strings while keeping Grav 1.7 Admin Classic language keys in the shared `languages.yaml` file.\n\n1. [](#improved)\n    * Raised the minimum PHP requirement to 7.4.\n    * Improved split-session start\/stop handling with signed frontend URLs and clearer Admin Classic\/Admin Next state reconciliation.\n    * Improved token secret handling by storing a generated runtime secret when no strong environment or site secret is available.\n\n1. [](#bugfix)\n    * Fixed Grav 1.7 Admin Classic translations so impersonate labels follow the admin user's language instead of the site\/frontend language.\n    * Fixed localized Admin Classic quick-tray, Users row-action, switch-modal, toast, and error messages.\n"},"1.0.2":{"date":"03\/11\/2026","content":"1. [](#improved)\n    * Switched impersonation token and status URLs from absolute to relative (`frontendUrl` instead of `frontendAbsoluteUrl`) to avoid host\/scheme mismatches behind reverse proxies.\n"},"1.0.1":{"date":"03\/10\/2026","content":"1. [](#improved)\n    * Fixed stale frontend impersonation state cleanup so Admin UI restores the impersonate button after an unexpected frontend logout\/session loss.\n"},"1.0.0":{"date":" 02\/19\/2026","content":"1. [](#new)\n    * Impersonate first release."}}},"login-oauth2-hitobito":{"name":"Login OAuth2 Hitobito","version":"1.1.1","description":"Login OAuth2 Providers for [Hitobito](https:\/\/github.com\/hitobito\/hitobito\/tree\/master).","description_html":"<p>Login OAuth2 Providers for <a href=\"https:\/\/github.com\/hitobito\/hitobito\/tree\/master\">Hitobito<\/a>.<\/p>","description_plain":"Login OAuth2 Providers for Hitobito.","icon":"plug","author":{"name":"Pfadi Safenwil"},"dependencies":[{"name":"login-oauth2","version":"~2.0"}],"homepage":"https:\/\/github.com\/stabiliora\/grav-plugin-login-oauth2-hitobito","keywords":"grav, plugin, authentication, oauth2, hitobito, midata","license":"MIT","tag_name":"v1.1.1","date":"2026-02-09T20:51:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/login-oauth2-hitobito\/1.1.1","repository":"https:\/\/github.com\/stabiliora\/grav-plugin-login-oauth2-hitobito","slug":"login-oauth2-hitobito","install_path":"user\/plugins\/login-oauth2-hitobito","content_sha256":"82656fdad075d70df4fb88600729f3c640187d46da9645bf9def6bac29d90576","changelog":{"Changelog":{"date":"v1.1.1 - 2026-02-09","content":"### Fixed\n\n* Fix owner information: Remove 'all_data' and add firstname, lastname and nickname instead.\n\n## v1.1.0 - 2026-02-02\n\n### Added\n\n* Allow or disallow users based on the groups they're in.\n\n## v1.0.0 - 2025-12-21\n\n### Added\n\n* Initial version."}}},"helios-course-hub":{"name":"Helios Course Hub","version":"1.3.1","description":"Adds course cards, course-aware search, Codeberg integration, shortcodes, and Admin Panel enhancements to the Helios Grav Premium theme for one or more courses.","description_html":"<p>Adds course cards, course-aware search, Codeberg integration, shortcodes, and Admin Panel enhancements to the Helios Grav Premium theme for one or more courses.<\/p>","description_plain":"Adds course cards, course-aware search, Codeberg integration, shortcodes, and Admin Panel enhancements to the Helios Grav Premium theme for one or more courses.","icon":"th","author":{"name":"HibbittsDesign.org","url":"https:\/\/hibbittsdesign.org","email":"paul@hibbittsdesign.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"shortcode-core","version":">=5.0.0"},{"name":"github-markdown-alerts","version":">=1.0.0"},{"name":"external_links","version":">=1.6.3"},{"name":"git-sync","version":">=3.2.0"},{"name":"page-inject","version":">=2.2.0"},{"name":"page-toc","version":">=3.2.5"},{"name":"simplesearch","version":">=2.3.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/hibbitts-design\/grav-plugin-helios-course-hub","docs":"https:\/\/github.com\/hibbitts-design\/grav-plugin-helios-course-hub\/blob\/main\/README.md","demo":"https:\/\/demo.hibbittsdesign.org\/grav-helios-course-hub","keywords":"grav, helios, courses","bugs":"https:\/\/demo.hibbittsdesign.org\/grav-plugin-helios-course-hub\/issues","license":"MIT","tag_name":"v1.3.1","date":"2026-07-15T15:40:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/helios-course-hub\/1.3.1","repository":"https:\/\/github.com\/hibbitts-design\/grav-plugin-helios-course-hub","slug":"helios-course-hub","install_path":"user\/plugins\/helios-course-hub","content_sha256":"f424d64b5a6a07486fe4a0de960b75074e487a55ae8fdbc36c9bdaf542b9ac6a","changelog":{"1.3.1":{"date":"07\/15\/2026","content":"1. [](#new)\n   * Added educational content block shortcodes from Helios Open Reader.\n"},"1.3.0":{"date":"07\/11\/2026","content":"1. [](#new)\n   * Add self-hosted [linkpreviewcard] shortcode as a working replacement for legacy Embedly card\n\n1. [](#improved)\n   * Fix Grav 2 tagfilter escaping in H5PShortcode by moving the resizer script to the Assets API\n"},"1.2.16":{"date":"07\/05\/2026","content":"1. [](#improved)\n   * Restored PDF shortcode default ratio to 16:9\n\n1. [](#bugfix)\n   * Fix GoogleSlides shortcode: switch to getHandlers() to prevent raw HTML output\n"},"1.2.15":{"date":"07\/05\/2026","content":"1. [](#bugfix)\n   * Fix H5P iframe clipping and default PDF embed to portrait aspect ratio in both plugins\n"},"1.2.14":{"date":"07\/02\/2026","content":"1. [](#improved)\n   * Add figcaption styling for figures in page content\n   * Remove mobile breadcrumb title div from header\n\n1. [](#bugfix)\n   * Fix URL double-encoding and H5P mobile layout in embed shortcodes\n"},"1.2.13":{"date":"07\/01\/2026","content":"1. [](#improved)\n   * Add figcaption styling for figures in page content\n"},"1.2.12":{"date":"07\/01\/2026","content":"1. [](#improved)\n   * Add WCAG 2.1 listbox keyboard navigation to version dropdown\n"},"1.2.11":{"date":"06\/30\/2026","content":"1. [](#improved)\n   * Added check for langswitcher plugin\n\n1. [](#bugfix)\n   * Fix version dropdown label alignment for long wrapping text\n"},"1.2.10":{"date":"06\/30\/2026","content":"1. [](#improved)\n   * Port HTMX history-miss fix from Helios theme v2.1.9 to plugin base templates\n\n1. [](#bugfix)\n   * Fix WCAG 2.1 serious accessibility issues in templates and shortcodes\n"},"1.2.9":{"date":"06\/29\/2026","content":"1. [](#improved)\n   * Adjust mobile prev\/next nav button height, alignment, and title truncation\n"},"1.2.8":{"date":"06\/28\/2026","content":"1. [](#improved)\n   * Add heading font toggle to Typography section, defaulting to Helios theme font for headings\n"},"1.2.7":{"date":"06\/28\/2026","content":"1. [](#bugfix)\n   * Exclude prev\/next navigation from custom font by resetting to Helios theme font\n"},"1.2.6":{"date":"06\/28\/2026","content":"1. [](#new)\n   * Add custom Google Font support with font family, URL, and size options to Typography section\n"},"1.2.5":{"date":"06\/28\/2026","content":"1. [](#improved)\n   * Add [excerpt] shortcode for subtle grey border styling on multi-paragraph blockquotes\n   * Update ReadMe\n"},"1.2.4":{"date":"06\/27\/2026","content":"1. [](#improved)\n   * Update example pages\n"},"1.2.3":{"date":"06\/25\/2026","content":"1. [](#bugfix)\n   * Ensure og:image URL is absolute for social media preview cards\n"},"1.2.2":{"date":"06\/24\/2026","content":"1. [](#new)\n   * Add single flat course root mode: plugin support and updated demo pages\n"},"1.2.1":{"date":"06\/22\/2026","content":"1. [](#improved)\n   * Add custom URL option for header git icon link, independent of Helios GitHub Integration\n"},"1.2.0":{"date":"06\/22\/2026","content":"1. [](#bugfix)\n   * Fix ?embedded=true not suppressing header\/footer on default-toc and course-list pages \u2014 add chromeless support to base-simple-wide.html.twig and override base-simple.html.twig\n   * Fix missing Open Graph meta tags on default-toc and course-list pages\n\n1. [](#improved)\n   * Update module blueprint title to \"Course Module\" for cross-plugin consistency\n   * Add `languages\/en.yaml` with THEME_HELIOS fallback strings for sites running without the Helios theme installed\n   * Add i18n support for accessibility strings (Skip to content, Toggle\/Close\/Main navigation, Toggle submenu, theme toggle, search, View on GitHub\/Codeberg) across all plugin-owned templates\n"},"1.1.8":{"date":"06\/20\/2026","content":"1. [](#improved)\n   * Rename chapter\u2192module and doc\u2192course-page templates with backwards compatibility aliases; update demo pages and READMEs\n"}}},"shortcode-ticker":{"name":"Shortcode Ticker","version":"2.0.2","description":"This plugin provides a shortcode for an animated horizontal news ticker","description_html":"<p>This plugin provides a shortcode for an animated horizontal news ticker<\/p>","description_plain":"This plugin provides a shortcode for an animated horizontal news ticker","icon":"newspaper","author":{"name":"Volker G\u00f6tz","email":"volker.goetz@goetz-it-solutions.de"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"shortcode-core","version":">=5.3.0"}],"homepage":"https:\/\/github.com\/VolkerGoetz\/grav-plugin-shortcode-ticker","keywords":"shortcode, ticker","bugs":"https:\/\/github.com\/VolkerGoetz\/grav-plugin-shortcode-ticker\/issues","license":"MIT","tag_name":"v2.0.2","date":"2026-04-06T23:20:45Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-ticker\/2.0.2","repository":"https:\/\/github.com\/VolkerGoetz\/grav-plugin-shortcode-ticker","slug":"shortcode-ticker","install_path":"user\/plugins\/shortcode-ticker","content_sha256":"86eb8b7f11f15028f8f05f8cd9c5f7f8bd655dbf1bc653466c11f1bbe29bd122","changelog":{"2.0.2":{"date":"07-04-2026","content":"1. [](#bugfix)\n    * fixed changelog version number\n"},"2.0.1":{"date":"07-04-2026","content":"1. [](#bugfix)\n    * fixed blueprint version number\n"},"2.0.0":{"date":"07-04-2026","content":"1. [](#new)\n   * based on Optimistic Web's Infinite Scroll Animation Effect\n     Using Only CSS\n   * new configuration parameter `separator`\n   * automatic calculation of animation duration based on number of ticker\n     items\n2. [](#improved)\n   * no gap when the last item scrolls in, the first item immediately follows\n     the last one\n"},"1.0.0":{"date":"30-12-2025","content":"1. [](#new)\n   * Initial version"}}},"yetisearch-pro":{"name":"YetiSearch Pro","version":"2.0.1","description":"YetiSearch Pro is a super-fast search engine for Grav \u2014 indexing and querying services with fuzzy, multi-language, facet, and geospatial support.","description_html":"<p>YetiSearch Pro is a super-fast search engine for Grav \u2014 indexing and querying services with fuzzy, multi-language, facet, and geospatial support.<\/p>","description_plain":"YetiSearch Pro is a super-fast search engine for Grav \u2014 indexing and querying services with fuzzy, multi-language, facet, and geospatial support.","icon":"search","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/yetisearch-pro","docs":"https:\/\/getgrav.org\/premium\/yetisearch-pro\/docs","keywords":"grav, plugin, search, yetisearch-pro, yetisearch","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/issues?q=label:yetisearch-pro","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"2.0.1","date":"2026-05-08T20:35:33Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/yetisearch-pro\/2.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-yetisearch-pro","premium":{"permalink":"grav-premium-yetisearch-pro","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-yetisearch-pro","button":"Buy Now","filename":"grav-plugin-yetisearch-pro"},"slug":"yetisearch-pro","install_path":"user\/plugins\/yetisearch-pro","content_sha256":"c9c06bc356d56cb69432aa69ed656fbb3d4d8ea7d36eb446dddaf565b2b30899","changelog":{"2.0.1":{"date":"05\/08\/2026","content":"1. [](#new)\n    * **Custom environment names are now supported** when set explicitly via the Environment Mode field, which is now a free-form text input. Names like `localhost`, `staging-eu`, or `abc.wydn.com` are accepted and used as-is in the index database prefix. Auto mode keeps the original `production` \/ `staging` \/ `development` behavior so existing index databases on default installs are not renamed by the upgrade.\n1. [](#bugfix)\n    * **Fixed `--env` switch being ignored by the indexer CLI** when a `GRAV_ENVIRONMENT` shell variable was already exported (common on MAMP and similar local setups). The plugin now prefers Grav's resolved `system.environment` over the raw shell variable, so `bin\/plugin yetisearch-pro index --env=<name>` correctly picks up the per-environment config and writes to the right database.\n"},"2.0.0":{"date":"04\/23\/2026","content":"1. [](#new)\n    * Added Grav 2.0, API, and Admin 2.0 support\n"},"1.1.2":{"date":"03\/09\/2026","content":"1. [](#improved)\n    - **SQLite backward compatibility**: The `RETURNING` clause (requires SQLite 3.35.0+) is now optional. On older SQLite versions (3.24.0+), a fallback `SELECT` query is used to retrieve `doc_id` after upsert operations. This lowers the minimum SQLite requirement from 3.35.0 to 3.24.0 while preserving optimal performance on newer versions.\n"},"1.1.1":{"date":"03\/07\/2026","content":"1. [](#bugfix)\n    * **Fixed admin reindex failing when other plugins access `$grav['admin']`**: The admin reindex handler removed the `admin` service from the DI container to avoid interference, but this caused plugins like revisions-pro to crash with \"Identifier 'admin' is not defined\" when `Pages::enablePages()` fired `onPageProcessed` events during page tree rebuilds, resulting in 0 documents indexed.\n"},"1.1.0":{"date":"03\/06\/2026","content":"1. [](#new)\n    * **Added \"Flush & Reindex\" button to admin dashboard**: New action button between \"Reindex All\" and \"Clear Index\" that deletes all existing indexes and rebuilds them from scratch, with a confirmation dialog to prevent accidental use.\n1. [](#bugfix)\n    * **Fixed single-strategy index flushing in multilang sites**: When using `strategy: single` with multiple languages, each language iteration was dropping and recreating the same physical index, causing only the last language's content to survive a `--flush` reindex. Flush now runs only once per physical index.\n    * **Fixed orphan detection deleting cross-language documents**: With `strategy: single`, orphan detection ran per-language iteration, incorrectly treating documents from other languages as orphans and deleting them. Orphan detection now accumulates across all language iterations and runs once at the end.\n    * **Fixed smart indexing snapshot for single-strategy multilang**: The snapshot used for fingerprint comparison was being overwritten by each language iteration, breaking skip-unchanged detection for all but the last language. The snapshot is now loaded once and shared across iterations.\n    * **Fixed admin dashboard showing inflated index count**: With `strategy: single` and 12 languages, the dashboard reported \"12 TOTAL INDEXES\" and \"12 ACTIVE INDEXES\" even though there was only 1 physical index. Index counting now deduplicates by resolved index name.\n    * **Fixed language filter not working in admin Index & Search**: The language dropdown in the admin browser\/search had no effect for `strategy: single` indexes because the selected language was discarded during index resolution. The language is now preserved and passed as a query filter.\n    * **Fixed admin browser catalog fetching duplicate data**: The `getBrowserCatalog` endpoint fetched index info, breakdown, and stats 12 times for the same physical index in a multilang single-strategy setup. It now fetches once per physical index.\n    * **Fixed hyphenated language codes breaking `per_language` strategy**: Language codes containing hyphens (e.g. `ca-valencia`, `zh-cn`, `pt-br`) failed SQLite table name validation when used in index names. Hyphens are now sanitized to underscores in resolved index names.\n    * **Fixed Index & Search table layout**: Columns were squished to the right when document IDs or routes were long. Table now uses fixed column widths so all columns remain visible.\n"},"1.0.5":{"date":"03\/06\/2026","content":"1. [](#bugfix)\n    * More safety checks on the branding toggle \n"},"1.0.4":{"date":"02\/16\/2026","content":"1. [](#improved)\n    * Index optimizations for even better performance\n    * Added minimum requirements for PHP to `7.4` and SQlite to `3.35.0`\n1. [](#bugfix)\n    * Fixed an issue when the environment (prod\/dev) was being pulled from json config instead of Grav config\n    * Fix for redirects breaking indexed pages\n"},"1.0.3":{"date":"02\/13\/2026","content":"1. [](#improved)\n    * Updated to YetiSearch `v2.3.0` which brings solid performance improvements and several minor bug and security fixes.\n"},"1.0.2":{"date":"02\/09\/2026","content":"1. [](#bugfix)\n    * **Fixed CSRF check blocking all admin POST requests**: The CSRF nonce validation added for security hardening was not scoped to yetisearch-pro routes, causing admin login and other admin POST actions to fail with \"Invalid security token\" errors.\n    * **Fixed php:\/\/input stream consumed by CSRF check**: The CSRF validation read the raw request body to find the nonce, but `php:\/\/input` can only be read once in PHP. This caused all subsequent JSON POST handlers (browser query, reindex, config save, etc.) to receive empty payloads and fail.\n    * **Fixed hyphenated search terms causing SQL errors**: Search terms containing hyphens (e.g. `doc-button`) were passed unquoted to FTS5 where the hyphen was interpreted as the NOT operator, causing \"no such column\" SQL errors. Hyphenated tokens are now quoted to be treated as literal text.\n"},"1.0.1":{"date":"01\/12\/2026","content":"1. [](#bugfix)\n    * **Real-time index updates now properly remove old content**: Fixed critical bug where editing a page in admin would update the index for new text but old\/removed text remained searchable. The FTS vocabulary was not being properly synchronized for external content tables.\n    * **Orphaned chunks now cleaned up on page update**: When a page is edited and results in fewer chunks than before (e.g., headings removed), the old chunks are now properly deleted from the index before adding new ones.\n    * **Search results now correctly match only relevant chunks**: Fixed bug where searching for a unique term would return all chunks from a page instead of just the chunk containing the term. Chunks were incorrectly inheriting the parent page's full content during indexing.\n    * **FTS rebuild after real-time updates**: Added automatic FTS rebuild after `upsertPage()` to ensure the search vocabulary stays in sync with document content for external content FTS tables.\n"},"1.0.0":{"date":"12\/22\/2025","content":"1. [](#new)\n    * Initial public release of YetiSearch Pro, a premium search plugin for Grav CMS\n    * **Search Modals**: Two modal options for themes\n      * `full`: Two-panel modal with results list and preview pane, pagination, filters\n      * `simple`: Lightweight typeahead modal with grouped results\n      * Configurable via `modal.type` setting\n      * Optional branding via `modal.branding` setting\n    * **Smart Indexing**: Fingerprint-based change detection skips unchanged documents\n    * **Orphan Cleanup**: Automatically removes stale documents from deleted pages during reindex\n    * **Real-time Updates**: Index updates on page save\/delete (configurable)\n    * **Multi-language Support**: Per-language or single-index strategies\n    * **Search Analytics**: Track searches, clicks, zero-result queries, and popular terms\n    * **Admin Dashboard**:\n      * Index status overview with document counts and sizes\n      * Reindex and reset actions with progress tracking\n      * Search analytics visualization\n      * Index browser for inspecting documents\n    * **CLI Commands**:\n      * `bin\/plugin yetisearch-pro index` - Index pages with batching and progress\n      * `bin\/plugin yetisearch-pro search` - Search with pagination, fuzzy matching, filters\n      * `bin\/plugin yetisearch-pro cache` - Manage search cache\n    * **Query Endpoints**:\n      * `\/ys` - JSON search endpoint for AJAX\/typeahead\n      * `\/ys\/suggest` - Lightweight suggestions endpoint\n      * `\/ys\/metrics` - Click tracking for analytics\n    * **Scheduler Integration**: Cron-based automatic reindexing and maintenance\n    * **Theme Integration**:\n      * `search-trigger.html.twig` partial for trigger buttons\n      * CSS variables for easy theming\n      * `data-ys-open` attribute for programmatic modal control\n      * Keyboard shortcuts (Cmd\/Ctrl+K, \/)\n    * **Events for Extensibility**:\n      * `onYetisearchCollectObjects` - Add custom documents to index\n      * `onYetisearchBuildDocument` - Shape document fields during indexing\n    * **Page-level Controls**: Frontmatter options to exclude pages or customize indexing\n    * **Permissions**: Granular admin permissions (view, modify, admin)\n    * Admin routes protected by permission checks\n    * Nonce validation on admin actions"}},"dependencies":[]},"microlink":{"name":"Microlink","version":"1.2.0","description":"Microlink is a plugin that allows you to preview links into nice embedded cardswith Microlink API.","description_html":"<p>Microlink is a plugin that allows you to preview links into nice embedded cardswith Microlink API.<\/p>","description_plain":"Microlink is a plugin that allows you to preview links into nice embedded cardswith Microlink API.","icon":"link","author":{"name":"Paul Massendari","url":"https:\/\/github.com\/paulmassen","email":"paulmassendari@pm.me"},"homepage":"https:\/\/github.com\/paulmassen\/grav-plugin-microlink","demo":"https:\/\/notes.paulmassendari.dev\/miscellaneous","license":"MIT","tag_name":"v1.2.0","date":"2026-01-28T12:33:31Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/microlink\/1.2.0","repository":"https:\/\/github.com\/paulmassen\/grav-plugin-microlink","slug":"microlink","install_path":"user\/plugins\/microlink","content_sha256":"60465309c0c74aca32fcab37094a66d2c65ab51d5d6b11d34496d96f496129db","changelog":{"1.2.0":{"date":"01\/28\/2026","content":"1. [](#new)\n    * Added cache for images\n"}},"dependencies":[]},"linkchecker":{"name":"Linkchecker","version":"0.1.0","description":"Checks for broken links","description_html":"<p>Checks for broken links<\/p>","description_plain":"Checks for broken links","icon":"link","author":{"name":"Peter Swinnen","email":"info@peterswinnen.be"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/peterswinnen\/grav-plugin-linkchecker","docs":"https:\/\/github.com\/peterswinnen\/grav-plugin-linkchecker\/blob\/develop\/README.md","demo":"https:\/\/www.peterswinnen.be","keywords":"grav, plugin, linkchecker","bugs":"https:\/\/github.com\/peterswinnen\/grav-plugin-linkchecker\/issues","license":"MIT","tag_name":"v0.1.0","date":"2025-11-12T19:34:38Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/linkchecker\/0.1.0","repository":"https:\/\/github.com\/peterswinnen\/grav-plugin-linkchecker","slug":"linkchecker","install_path":"user\/plugins\/linkchecker","content_sha256":"31269f09669a2c8a6be547fc3868a5b6812c84a1fe32c36bf500632c59857a1a","changelog":{"0.1.0":{"date":" 09\/20\/2025","content":"1. [](#new)\n    * ChangeLog started..."}}},"uptime":{"name":"Uptime","version":"1.0.0","description":"Minimal \/uptime endpoint with admin settings and env overrides.","description_html":"<p>Minimal \/uptime endpoint with admin settings and env overrides.<\/p>","description_plain":"Minimal \/uptime endpoint with admin settings and env overrides.","icon":"heartbeat","author":{"name":"Dennis de Best","email":"Dennis@debest.fr"},"homepage":"https:\/\/debest.fr","docs":"https:\/\/github.com\/dennisdebest\/grav-plugin-uptime","keywords":"health, status, monitoring, uptime","license":"MIT","tag_name":"v0.1.1","date":"2025-10-25T15:09:13Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/uptime\/1.0.0","repository":"https:\/\/github.com\/DennisdeBest\/grav-plugin-uptime","slug":"uptime","install_path":"user\/plugins\/uptime","content_sha256":"3da546031a30f03f0f4f6faaa67ab08da1f8934f948a1534aa72429a05d913a4","changelog":false,"dependencies":[]},"codesh":{"name":"Code Syntax Highlighter","version":"3.0.6","description":"Server-side syntax highlighting using Phiki with line numbers, line highlighting, and focus support","description_html":"<p>Server-side syntax highlighting using Phiki with line numbers, line highlighting, and focus support<\/p>","description_plain":"Server-side syntax highlighting using Phiki with line numbers, line highlighting, and focus support","icon":"code","author":{"name":"Trilby Media","url":"https:\/\/trilby.media","email":"hello@trilbymedia.com"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"shortcode-core","version":">=5.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-codesh","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-codesh\/blob\/main\/README.md","keywords":"grav, plugin, code, syntax, highlighting, phiki","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-codesh\/issues","license":"MIT","tag_name":"3.0.6","date":"2026-06-14T22:50:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/codesh\/3.0.6","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-codesh","slug":"codesh","install_path":"user\/plugins\/codesh","content_sha256":"fb452a5992bfabda7413a861ebbe8007df5c7fa0837352bc7b89f0f25107faab","changelog":{"3.0.6":{"date":"06\/14\/2026","content":"1. [](#improved)\n    * Markdown code blocks now cache their highlighted output, making code-heavy pages render up to ten times faster\n    * Copy buttons and tab groups keep working after in-page navigation on sites using htmx\n"},"3.0.5":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"3.0.4":{"date":"04\/21\/2026","content":"1. [](#bugfix)\n    * Read the API token from `window.__GRAV_API_TOKEN` (injected by admin-next's CustomFieldWrapper) instead of reaching into `localStorage` directly \u2014 the stored key is site-scoped and was not resolvable from web components on sub-path installs, causing 401s on `\/codesh\/grammars` and `\/codesh\/themes`\n"},"3.0.3":{"date":"04\/21\/2026","content":"1. [](#bugfix)\n    * Fixed 401 errors from admin-next field components on FPM\/FastCGI stacks by switching to the `X-API-Token` header (some setups strip `Authorization: Bearer` before it reaches PHP)\n"},"3.0.2":{"date":"04\/17\/2026","content":"1. [](improved)\n    * Fixed compatiblity\n"},"3.0.1":{"date":"04\/17\/2026","content":"1. [](#improved)\n    * Use new confirmation-modal for Admin 2.0\n"},"3.0.0":{"date":"04\/02\/2026","content":"1. [](#new)\n    * Added Grav 2.0 \/ Admin 2.0 support\n1. [](#bugfix)\n    * Fixed long codeblocks pushing content with overflow-x: auto\n    * Fixed dark mode support to theme picker modal\n"},"2.0.2":{"date":"02\/03\/2026","content":"1. [](#bugfix)\n    * Fixed `diff=true` syntax not working where bbcode style did\n"},"2.0.1":{"date":"12\/29\/2025","content":"1. [](#bugfix)\n    * Fix a PSR-Cache compatibility issue\n"},"2.0.0":{"date":"12\/24\/2025","content":"1. [](#new)\n    * Production ready!\n"},"1.3.0":{"date":"12\/23\/2025","content":"1. [](#new)\n    * Added new `line_wrap` option (enabled by default)\n1. [](#improved)\n    * Dedent code when the whole shortcode is indented (ie in a markdown list)\n"},"1.2.0":{"date":"12\/23\/2025","content":"1. [](#improved)\n    * Support regular `codesh` styling and features while inside a `codesh-group` shortcode\n"},"1.1.0":{"date":"12\/23\/2025","content":"1. [](#new)\n    * Editor Pro shortcode support\n    * New fixed CSS grammar while VSCode PR is pending\n1. [](#bugfix)\n    * Fixed an annoying issue with 1Password Browser extension injecting Prims.js to convert server side styling into a monochrome mess - uses `PrismDefenseTransformer`\n"},"1.0.3":{"date":"12\/17\/2025","content":"1. [](#bugfix)\n    * Fixed an issue with codesh filter not instantiated early enough\n"},"1.0.2":{"date":"12\/16\/2025","content":"1. [](#new)\n    * Added new `grav` grammar for frontmatter + shortcode + twig support in markdown\n1. [](#improved)\n    * Override `md` and `markdown` to use new `grav` grammar\n    * Improve traditional markdown (triple backticks) support in Codesh\n"},"1.0.1":{"date":"12\/14\/2025","content":"1. [](#improved)\n   * Fixed blueprints\n   * Fixed copy button on code groups\n   * Fixed empty badge when `show-lang` is disabled\n"},"1.0.0":{"date":"12\/14\/2025","content":"1. [](#new)\n    * Initial release of CodeSh plugin\n    * Server-side syntax highlighting using [Phiki](https:\/\/phiki.dev) (PHP port of Shiki)\n    * Support for 245+ languages via TextMate grammars\n    * Support for 60+ VS Code themes out of the box\n    * Automatic light\/dark theme switching based on site theme mode\n    * CSS variable-based dual-theme support for system preference detection\n    * Custom `[codesh]` shortcode for inline code blocks\n    * Automatic markdown fenced code block processing (configurable)\n    * Line numbers with optional custom start line\n    * Line highlighting with `highlight` or `hl` attribute\n    * Line focus to dim non-focused lines with `focus` attribute\n    * Title\/filename display in header with `title` attribute\n    * Language badge with `show-lang` attribute\n    * Minimal mode to hide header with `header=\"false\"`\n    * Copy button with visual feedback\n    * Per-block theme override with `theme` attribute\n    * `[codesh-group]` shortcode for tabbed code examples\n    * Tab synchronization across groups with `sync` attribute\n    * LocalStorage persistence for tab preferences\n    * Twig filter `codesh` for template-based highlighting with caching\n    * Admin theme gallery at Admin > CodeSh Themes\n    * Theme picker field with modal selector and visual previews\n    * Theme import for VS Code compatible JSON themes\n    * Theme deletion with confirmation dialog\n    * Custom `helios-dark` and `helios-light` themes"}}},"api-doc-import":{"name":"API Doc Import","version":"1.0.1","description":"Import OpenAPI\/Swagger specifications into Grav pages for the Helios theme","description_html":"<p>Import OpenAPI\/Swagger specifications into Grav pages for the Helios theme<\/p>","description_plain":"Import OpenAPI\/Swagger specifications into Grav pages for the Helios theme","icon":"file-import","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"helios","version":">=1.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-api-doc-import","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-api-doc-import\/blob\/main\/README.md","keywords":"grav, plugin, openapi, swagger, api, documentation, import","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-api-doc-import\/issues","license":"MIT","tag_name":"1.0.1","date":"2026-05-05T14:10:29Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/api-doc-import\/1.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-api-doc-import","slug":"api-doc-import","install_path":"user\/plugins\/api-doc-import","content_sha256":"21ead39272796200231120836fa226a489b89088e6a5b645be766c2f99eb9a7d","changelog":{"1.0.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.0.0":{"date":"12\/14\/2024","content":"1. [](#new)\n    * Initial release of API Doc Import plugin\n    * CLI command for importing OpenAPI\/Swagger specifications\n    * Support for OpenAPI 3.x and Swagger 2.x formats\n    * Import from local files (JSON\/YAML) or remote URLs\n    * Automatic page generation with `api-endpoint` template\n    * Tag-based organization into chapter folders\n    * Request\/response example generation from schemas\n    * Parameter extraction (path, query, header, body)\n    * Response code documentation\n    * Smart request examples that exclude server-generated fields (id, timestamps, etc.)\n    * Content preservation when updating existing pages\n    * Configurable folder numbering prefixes\n    * Support for multiple content types (JSON, form-urlencoded, multipart)\n    * `$ref` resolution for schema references"}}},"ai-translate":{"name":"AI Translate","version":"3.0.5","description":"Add AI-powered translation capabilities to admin form fields with DeepL and AI Pro integration","description_html":"<p>Add AI-powered translation capabilities to admin form fields with DeepL and AI Pro integration<\/p>","description_plain":"Add AI-powered translation capabilities to admin form fields with DeepL and AI Pro integration","icon":"language","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"admin","version":">=1.10.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/ai-translate","docs":"https:\/\/getgrav.org\/premium\/ai-translate\/docs","keywords":"grav, plugin, seo, ai, chatgpt, anthropic","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/ai-translate","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"3.0.5","date":"2026-06-29T15:37:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/ai-translate\/3.0.5","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-ai-translate","premium":{"permalink":"grav-premium-ai-translate","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-ai-translate","button":"Buy Now","filename":"grav-plugin-ai-translate"},"slug":"ai-translate","install_path":"user\/plugins\/ai-translate","content_sha256":"e9334155e6344767395d359cfd8f277c5bcf53abb29d912563c5e4a94eaff511","changelog":{"3.0.5":{"date":"06\/29\/2026","content":"1. [](#bugfix)\n   * The editor translate button now sits just below Editor Pro's toolbar in both the classic and new admin, and follows it down when the toolbar grows to more than one row, instead of overlapping or hiding behind it.\n"},"3.0.4":{"date":"06\/28\/2026","content":"1. [](#bugfix)\n   * The editor translate button now hovers above the toolbar instead of being hidden behind it when the toolbar wraps onto more than one row.\n"},"3.0.3":{"date":"05\/29\/2026","content":"1. [](#improved)\n   * The AI Translate floating widget's permission check now goes through the declarative authorize field instead of a runtime block inside the event handler, matching the standard pattern used across other admin-next plugins. Requires grav-plugin-api \u2265 1.0.0-rc.11.\n"},"3.0.2":{"date":"05\/05\/2026","content":"1. [](#bugfix)\n    * **Translation now reaches the editor view under collaborative editing.** Setting the field via the web component's plain `value =` setter is intentionally a no-op while a Yjs binding is active (so routine prop syncs can't wipe peer state), so translated content was being stored on the host but never displayed. The widget now prefers `replaceContent(markdown)` when the web component exposes it, which goes through the editor's real `setContent` transaction and propagates to peers via y-prosemirror.\n"},"3.0.1":{"date":"05\/02\/2026","content":"1. [](#new)\n    * **Admin-next: page-context gating for inline translate buttons, with plugin opt-in via event.** Translate buttons used to attach to every text\/textarea\/editor\/array field in every blueprint \u2014 including plugin and theme config screens, where there's no language switcher and `__GRAV_CONTENT_LANG` is empty (so clicks no-oped with a console warning). The `onApiBlueprintResolved` listener now strictly auto-annotates only `context === 'page'` (using the new explicit discriminator carried by grav-plugin-api \u2265 1.0.0-beta.15; older API plugin versions get a conservative fallback that treats any non-`'account'` template as a page). Other contexts (plugin \/ theme \/ account) are skipped by default, so the buttons no longer clutter blueprint forms that have no useful target language. Plugins that legitimately need translate buttons outside `\/pages` (e.g. the `translation-strings` plugin's per-row language list) can opt-in two ways: (1) set `translate: true` directly in their blueprint YAML \u2014 pre-existing markers are preserved regardless of the gate; or (2) listen to the new `onAiTranslateAnnotateFields` event and either flip `$event['allow'] = true` to request the default annotator for their context, or call the now-public `AiTranslatePlugin::annotateFields(array &$fields, ?array $extraTypes = null, ?array $extraExclusions = null)` directly with their own type whitelist \/ exclusions.\n2. [](#improved)\n    * **Admin-next widget honors the `data-ai-translate-lang` ancestor override** \u2014 already supported in classic admin since v2.1.2, now matched in the admin-next floating-widget script. Per-field target language is resolved by walking from the field DOM up to the closest `[data-ai-translate-lang]` ancestor first, falling back to `__GRAV_CONTENT_LANG`. Same mechanism the `translation-strings` plugin uses to give each list-row its own target language on a non-page screen. Both single-field and array-row translation paths share the lookup.\n3. [](#bugfix)\n    * Inline translate buttons no longer go missing for admin-next users. `onApiBlueprintResolved` was gated on `access.admin.super` \/ `access.admin.ai-translate`, so users authenticated through admin-next's `access.api.super` authority were silently skipped \u2014 the floating widget loaded (styles injected, FAB rendered) but blueprint fields never received `translate: true`, so the button-injection MutationObserver had nothing to act on. The blueprint-resolved hook now accepts `access.api.super` as well, matching `onApiFloatingWidgets`.\n"},"3.0.0":{"date":"04\/23\/2026","content":"1. [](#new)\n    * Added Grav 2.0, API, and Admin 2.0 support\n"},"2.1.3":{"date":"03\/24\/2026","content":"1. [](#improved)\n    * Better support for Deepl language variations (e.g. `ES_419` for Latin American Spanish na d`PT-BR` for Brazilian Portuguese)\n"},"2.1.2":{"date":"03\/19\/2026","content":"1. [](#new)\n    * Added YAML-aware translation mode \u2014 when translating YAML content (e.g., in CodeMirror fields with `mode: yaml`), keys are preserved and only string values are sent for translation\n    * Added `data-ai-translate-lang` attribute support for field-level target language overrides, enabling translation on non-page admin locations like plugin config pages\n    * Added `isTranslatableValue()` filter that skips URLs, email addresses, file paths, hex colors, and CSS class strings during YAML translation\n1. [](#improved)\n    * `getTargetLanguage()` now accepts a field parameter and checks for `data-ai-translate-lang` on ancestor elements before falling back to page language\n    * `shouldAddButton()` now allows translate buttons on non-pages admin sections when a `data-ai-translate-lang` ancestor is present\n    * `getFieldType()` now detects YAML CodeMirror fields and returns `'yaml'` type for proper routing through the YAML-aware translation pipeline\n    * `setFieldValue()` for YAML fields now directly locates the sibling CodeMirror instance within the same `.form-field` container for reliable content updates in list items\n    * Each translated YAML string value is individually run through `ContentProtector` to preserve any Markdown\/HTML syntax within values\n"},"2.1.1":{"date":"03\/16\/2026","content":"1. [](#bugfix)\n    * Fixed DeepL failing with regional language codes (e.g. `fr-fr`, `fr-ca`, `de-de`) \u2014 `normalizeLanguageCode()` now strips unsupported regional suffixes while preserving valid DeepL variants like `EN-GB` and `PT-BR`\n    * Fixed translate button tooltip staying visible after click, obscuring the undo button\n    * Fixed `.grid.vertical` CSS rule leaking into nested list field children \u2014 scoped to direct children only so buttons in list items with horizontal labels are positioned correctly\n1. [](#improved)\n    * Provider tuner panel now shows whenever 2+ providers are configured (DeepL, Google Translate, or AI Pro), not only when AI Pro is installed\n"},"2.1.0":{"date":"02\/22\/2026","content":"1. [](#bugfix)\n    * Fixed Editor Pro not visually updating after translation \u2014 now uses EP's full rendering pipeline (`preserveContent` \u2192 `basicMarkdownToHtml` \u2192 `setContent`) so shortcodes display as styled block elements\n    * Fixed French apostrophes in shortcode attribute values crashing Editor Pro's `ShortcodeBlock.getAttrs` JSON parser by sanitizing display values with typographic quotes\n    * Fixed Editor Pro's `updateTextarea()` overwriting translated content by patching it to preserve the correct translation\n    * Fixed Editor Pro field detection \u2014 `getFieldType()` now checks for `.editor-pro-wrapper` to properly route content through the EP-specific code path\n    * Fixed markdown image\/link brackets being stripped by DeepL \u2014 `![` and `[` are now protected as separate placeholders while alt\/link text remains translatable\n1. [](#improved)\n    * Editor Pro integration now mirrors EP's own initialization flow for reliable shortcode block rendering after translation\n"},"2.0.2":{"date":"02\/22\/2026","content":"1. [](#bugfix)\n    * Fixed shortcodes and markdown image\/link syntax being corrupted by translation APIs (e.g. `\"title\"` becoming `\u00ab title \u00bb` in French) [#540](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/540)\n    * Fixed Editor Pro JSON parse error when inserting translated content with corrupted markdown\n1. [](#new)\n    * Added `ContentProtector` class that shields structural syntax from translation APIs using XML-style placeholder tags (`<x id=\"N\"\/>`)\n    * Translatable shortcode attributes (`caption`, `title`, `label`, `text`, `alt`, `heading`, `subtitle`, `description`, `placeholder`) are now exposed for translation while the shortcode structure is protected\n    * Content between shortcode tags (e.g. `[notice]text here[\/notice]`) remains exposed for translation\n    * Markdown image\/link alt text and link text remain translatable while URLs and titles are protected\n    * Code blocks, inline code, HTML tags, heading prefixes, list markers, and blockquote markers are fully protected from translation modification\n    * Adjacent placeholders are merged to prevent reordering; newlines are absorbed into placeholders to prevent whitespace collapse\n    * Added fallback textarea insertion with error notification when Editor Pro's tiptap parser fails\n1. [](#improved)\n    * Updated AI Pro custom prompt to explicitly mention Grav shortcode preservation\n    * DeepL provider now uses `tag_handling=xml` so placeholders are recognized as structural tags and preserved with correct whitespace\n"},"2.0.1":{"date":"01\/27\/2026","content":"1. [](#bugfix)\n    * Changed DeepL provider auth from form-body to header as older auth is now deprecated\n"},"2.0.0":{"date":"11\/19\/2025","content":"1. [](#new)\n    * Added \"Google Translate\" provider (VERY FAST!)\n"},"1.0.2":{"date":"11\/05\/2025","content":"1. [](#bugfix)\n    * Alignment fixes for editor pro\n    * more robust default prompt for ai-pro provided models\n"},"1.0.1":{"date":"10\/30\/2025","content":"1. [](#bugfix)\n    * Fixed issue not handling chunking properly\n    * Fixed issue with Models not being passed correctly with Provider\n"},"1.0.0":{"date":"10\/21\/2025","content":"1. [](#new)\n   * Initial Release of AI-Pro Plugin"}}},"ai-pro":{"name":"AI Pro","version":"2.0.2","description":"Professional AI integration plugin for Grav with support for multiple LLM providers","description_html":"<p>Professional AI integration plugin for Grav with support for multiple LLM providers<\/p>","description_plain":"Professional AI integration plugin for Grav with support for multiple LLM providers","icon":"robot","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"admin","version":">=1.10.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/ai-pro","docs":"https:\/\/getgrav.org\/premium\/ai-pro\/docs","keywords":"grav, plugin, seo, ai, chatgpt, anthropic","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/ai-pro","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"2.0.2","date":"2026-06-19T15:28:03Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/ai-pro\/2.0.2","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-ai-pro","premium":{"permalink":"grav-premium-ai-pro","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-ai-pro","button":"Buy Now","filename":"grav-plugin-ai-pro"},"slug":"ai-pro","install_path":"user\/plugins\/ai-pro","content_sha256":"2a86abdd50bbc5be52eec6fb9ebb2085ede196e6e82582a7c99fa031d55759f8","changelog":{"2.0.2":{"date":"06\/19\/2026","content":"1. [](#bugfix)\n   * Fixed PHP 8.4 deprecation warnings from implicitly nullable function parameters.\n"},"2.0.1":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n   * The AI Assistant floating widget is now hidden from users without the AI Pro permission. Requires grav-plugin-api \u2265 1.0.0-rc.11.\n"},"2.0.0":{"date":"04\/23\/2026","content":"1. [](#new)\n    * Added Grav 2.0, API, and Admin 2.0 support\n"},"1.0.3":{"date":"01\/23\/2026","content":"1. [](#new)\n   * Added new OpeanAI compatible provider [getgrav\/grav-premium-issues#522](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/522)\n"},"1.0.2":{"date":"10\/27\/2025","content":"1. [](#new)\n   * Fix for initial provider\n"},"1.0.1":{"date":"10\/21\/2025","content":"1. [](#new)\n   * added new CLI `validate` command\n"},"1.0.0":{"date":"10\/20\/2025","content":"1. [](#new)\n   * Initial Release of AI-Pro Plugin"}}},"ai-pro-deepseek":{"name":"AI Pro - DeepSeek Provider","version":"1.0.1","description":"DeepSeek LLM provider for AI Pro plugin","description_html":"<p>DeepSeek LLM provider for AI Pro plugin<\/p>","description_plain":"DeepSeek LLM provider for AI Pro plugin","icon":"robot","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"ai-pro","version":">=1.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/ai-pro-deepseek","docs":"https:\/\/github.com\/trilbymedia\/ai-pro-deepseek","keywords":"grav, plugin, seo, ai, chatgpt, anthropic","bugs":"https:\/\/github.com\/trilbymedia\/ai-pro-deepseek\/issues","license":"MIT","tag_name":"1.0.1","date":"2026-05-05T14:10:23Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/ai-pro-deepseek\/1.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-ai-pro-deepseek","slug":"ai-pro-deepseek","install_path":"user\/plugins\/ai-pro-deepseek","content_sha256":"a5c0ef21a48fe0fa26601547c575beb1f0ed49fd36e8f561bd47da6e94e103a0","changelog":{"1.0.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.0":{"date":"10\/20\/2025","content":"1. [](#new)\n   * Initial Release of AI-Pro Deepseek Plugin"}}},"skynetaccessibilityscanner":{"name":"SkynetAccessibility Scanner","version":"1.0.3","description":"Scan, monitor, and identify website accessibility issues across WCAG 2.0, 2.1, 2.2, ADA, Section 508, EN 301 549, UK Equality Act, Australian DDA, and Canada ACA. Get simple issue highlights with recommended fixes.","description_html":"<p>Scan, monitor, and identify website accessibility issues across WCAG 2.0, 2.1, 2.2, ADA, Section 508, EN 301 549, UK Equality Act, Australian DDA, and Canada ACA. Get simple issue highlights with recommended fixes.<\/p>","description_plain":"Scan, monitor, and identify website accessibility issues across WCAG 2.0, 2.1, 2.2, ADA, Section 508, EN 301 549, UK Equality Act, Australian DDA, and Canada ACA. Get simple issue highlights with recommended fixes.","icon":"plug","author":{"name":"Skynet Technologies USA LLC","url":"https:\/\/www.skynettechnologies.com\/","email":"hello@skynettechnologies.com"},"dependencies":[{"name":"grav","version":">=1.7.49"},{"name":"admin","version":">=1.10.49"}],"homepage":"https:\/\/github.com\/skynettechnologies\/grav-skynetaccessibilityscanner","docs":"https:\/\/www.skynettechnologies.com\/accessibility-scanning-and-monitoring","keywords":"accessibility, scanner, monitoring, wcag, ada, compliance, EAA","bugs":"https:\/\/github.com\/skynettechnologies\/grav-skynetaccessibilityscanner\/issues","license":"MIT","tag_name":"1.0.3","date":"2025-10-16T10:11:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/skynetaccessibilityscanner\/1.0.3","repository":"https:\/\/github.com\/skynettechnologies\/grav-skynetaccessibilityscanner","slug":"skynetaccessibilityscanner","install_path":"user\/plugins\/skynetaccessibilityscanner","content_sha256":"8a5fda5dfb774a2399805b5eecdc3385120ad17fbaba69d5e5fd20219aaea050","changelog":false},"email-resend":{"name":"Email Resend","version":"1.0.0","description":"Resend integration for new Email plugin","description_html":"<p>Resend integration for new Email plugin<\/p>","description_plain":"Resend integration for new Email plugin","icon":"envelope","author":{"name":"Paul Massendari","email":"paulmassendari@pm.me"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"homepage":"https:\/\/github.com\/paulmassen\/grav-plugin-email-resend","docs":"https:\/\/github.com\/paulmassen\/grav-plugin-email-resend\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/paulmassen\/grav-plugin-email-resend\/issues","license":"MIT","tag_name":"v1.0.0","date":"2025-10-03T11:34:48Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-resend\/1.0.0","repository":"https:\/\/github.com\/paulmassen\/grav-plugin-email-resend","slug":"email-resend","install_path":"user\/plugins\/email-resend","content_sha256":"e982081ed84dc9c72f6d79cb4c757f1c19a154922d43a7388fe0c2c61a1e5344","changelog":{"1.0.0":{"date":"03\/10\/2025","content":"1. [](#new)\n   * Initial public release"}}},"seo-toolkit":{"name":"Seo Toolkit","version":"0.1.0","description":"SeoToolkit","description_html":"<p>SeoToolkit<\/p>","description_plain":"SeoToolkit","icon":"check-square","author":{"name":"GRAV CMS Developer","email":"hello@gravdeveloper.com"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/gravbyaucourant\/grav-plugin-seo-toolkit","docs":"https:\/\/github.com\/gravbyaucourant\/grav-plugin-seo-toolkit\/blob\/develop\/README.md","keywords":"grav, plugin, seo, toolkit","bugs":"https:\/\/github.com\/gravbyaucourant\/grav-plugin-seo-toolkit\/issues","license":"MIT","tag_name":"v1.0.2","date":"2025-08-02T09:02:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/seo-toolkit\/0.1.0","repository":"https:\/\/github.com\/gravbyaucourant\/grav-seo-toolkit","slug":"seo-toolkit","install_path":"user\/plugins\/seo-toolkit","content_sha256":"c6369c3603d61852f52ac742d7f599275752b982384c7dec44afd86d0046a215","changelog":{"Changelog":{"date":"v1.0.1 (2025-07-30)","content":"- NEW: Added SEO meta fields (title, description, focus keyword) in admin panel.\n- NEW: Auto-generated robots.txt with sitemap integration.\n- NEW: Sitemap XML generation with customizable options (change frequency, priority).\n- NEW: Open Graph meta tags support.\n- NEW: JSONject meta tags into the page head.\n- NEW: Live SEO snippet preview in admin panel."}}},"translation-strings":{"name":"Translation Strings","version":"1.0.5","description":"Manage custom translation snippets stored under user\/data\/translation-strings.","description_html":"<p>Manage custom translation snippets stored under user\/data\/translation-strings.<\/p>","description_plain":"Manage custom translation snippets stored under user\/data\/translation-strings.","icon":"language","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-translation-strings","keywords":"grav, plugin, translations","license":"MIT","tag_name":"1.0.5","date":"2026-06-06T17:26:17Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/translation-strings\/1.0.5","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-translation-strings","slug":"translation-strings","install_path":"user\/plugins\/translation-strings","content_sha256":"936be095c679ea03106a280c081cd07ed94b64eef78aedbfca049f493c29ed45","changelog":{"1.0.5":{"date":"06\/06\/2026","content":"1. [](#bugfix)\n    * Custom translations now save correctly when edited through the new admin.\n"},"1.0.4":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.0.3":{"date":"03\/19\/2026","content":"1. [](#improved)\n    * Monospace editor for easier YAML editing\n    * Save in fully expanded YAML format\n"},"1.0.2":{"date":"09\/17\/2025","content":"1. [](#improved)\n    * Change events to ensure you can override theme lang strings\n"},"1.0.1":{"date":"09\/17\/2025","content":"1. [](#improved)\n    * Fixed homepage URL to go to repo\n"},"1.0.0":{"date":"09\/17\/2025","content":"1. [](#new)\n    * Initial Release"}}},"editor-pro":{"name":"Editor Pro","version":"2.0.9","description":"Modern block-based content editor for Grav built on TipTap with markdown preservation.","description_html":"<p>Modern block-based content editor for Grav built on TipTap with markdown preservation.<\/p>","description_plain":"Modern block-based content editor for Grav built on TipTap with markdown preservation.","icon":"edit","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.49"},{"name":"admin","version":">=1.10.49"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/editor-pro","docs":"https:\/\/getgrav.org\/premium\/editor-pro\/docs","keywords":"grav, editor, wysiwyg, blocks, modern, markdown, tiptap","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"2.0.9","date":"2026-07-06T19:28:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/editor-pro\/2.0.9","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-editor-pro","premium":{"permalink":"grav-premium-editor-pro","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-editor-pro","button":"Buy Now","filename":"grav-plugin-editor-pro"},"slug":"editor-pro","install_path":"user\/plugins\/editor-pro","content_sha256":"13cfd951509d62749f3f412abee08df0f3bf6d669aa9f985129fe365a5708f17","changelog":{"2.0.9":{"date":"07\/06\/2026","content":"1. [](#new)\n    * The image toolbar button now opens a picker to insert one of the page's images, with its saved alt text, or an image URL, instead of a blank URL form ([getgrav\/grav-plugin-admin2#114](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/114)).\n    * The image picker can now browse the new admin's site media library by folder and insert a chosen image as a `media:\/\/` link ([getgrav\/grav-plugin-admin2#114](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/114)).\n1. [](#improved)\n    * The new admin's page media \"+\" button now inserts the image at the editor's cursor ([getgrav\/grav-plugin-admin2#114](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/114)).\n    * The editor now fetches its configuration, shortcodes, and plugin scripts in a single request when it opens in the new admin, instead of three separate ones.\n"},"2.0.8":{"date":"06\/25\/2026","content":"1. [](#bugfix)\n    * Markdown Mode now follows the admin dark theme instead of always rendering on a light background in admin-next.\n    * Shift+Return inserts a newline in Markdown Mode, matching the gesture from the regular editor.\n"},"2.0.7":{"date":"06\/05\/2026","content":"1. [](#improved)\n    * **The collaborative editing channel auth callback now uses regular page permissions** (`api.pages.read` \/ `api.pages.write`) instead of the separate `api.collab.*` permission, matching the change in grav-plugin-sync. Fixes [getgrav\/grav-plugin-admin2#24](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/24).\n1. [](#bugfix)\n    * Editor Pro once again opens from the classic admin panel, instead of throwing a Twig error about an unknown `admin_nonce` function.\n"},"2.0.6":{"date":"05\/26\/2026","content":"1. [](#new)\n    * **RTL writing support for the WYSIWYG content area.** The TipTap editor surface now carries a `dir` attribute that follows `window.__GRAV_I18N.dir` in admin-next (LTR otherwise), so caret movement, selection, IME composition, and image alignment behave correctly when the admin language is Arabic or Hebrew. The editor subscribes to admin-next's i18n bridge and re-applies the direction live when the user switches language without a hard reload.\n    * **Blockquotes, GitHub alerts, code shortcodes, and Yjs collaborator cursors all mirror in RTL.** Border-and-padding pairs that used physical `border-left` \/ `padding-left` are now `border-inline-start` \/ `padding-inline-start`, so the gutter-side decoration always sits on the leading edge of the block regardless of language. The peer-cursor label also mirrors its notched corner.\n    * **Drag handle now hangs in the leading-edge gutter.** Previously hardcoded at `left: -1.5rem`, it now uses `inset-inline-start` so it appears on the right in RTL.\n1. [](#bugfix)\n    * **CodeMirror (raw markdown source) is pinned LTR in RTL admin languages.** Without this, the line-number gutter inherited `dir=\"rtl\"` from `<html>` and ended up on the wrong side with caret movement reversed inside source code, which is never what you want for markdown.\n    * **Enter key now works in Markdown Mode.** Pressing Return in the raw markdown source view did nothing \u2014 typing was fine, but you couldn't start a new line. Standard editing keys (Enter, undo\/redo, tab indent) are now wired up.\n\n1. [](#new)\n    * Pages opened in the editor now automatically register their collaborative-edit room with explicit `api.collab.*` + `api.pages.*` permission gating, so only authorized users can read or push edits to a page's CRDT channel. Wires up via the new `onSyncBeforeCrdtChannelRegistered` event in grav-plugin-sync \u2265 1.1.1; when sync is absent, editor-pro continues to work as a non-collab editor with no behavior change.\n1. [](#bugfix)\n    * **Image and link dialogs no longer mark the page dirty just by opening.** `createModal` fires its OK callback via a 10ms `setTimeout` \"for initialization\", which meant `editImage` and `insertLink` were unconditionally re-dispatching their ProseMirror transactions the moment the dialog opened, tripping the dirty flag with no user interaction. Mutating callbacks now bail early on the init fire via an `isInit` flag, while shortcode and Edit-Link form callbacks still get their init hook. Same treatment landed on the Delete Block confirmation dialog, which had the same latent issue ([grav-plugin-admin2#8](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/8)).\n"},"2.0.4":{"date":"05\/08\/2026","content":"1. [](#bugfix)\n    * Editor Pro no longer fights with admin-next's light\/dark toggle. The editor used to ship its own theme system (a toolbar Toggle Theme button plus an on-mount theme initializer that wrote to its own setting), and in admin-next both ended up writing to the same class on the page that admin-next manages \u2014 so a single click on admin-next's toggle could need two or three follow-up clicks before everything matched. The admin-next build now removes the redundant theme button and skips the initializer, leaving admin-next as the sole owner of light\/dark in that context. Admin-classic behavior is unchanged.\n"},"2.0.3":{"date":"05\/05\/2026","content":"1. [](#bugfix)\n    * Editor Pro no longer rewrites ancestor `overflow: hidden` styles when initialising in admin-next. The destructive walk was breaking the host app's flex shell, causing the sidebar and top bar to scroll away with the page content on long pages. The sticky-toolbar code already detects hidden ancestors and falls back to JS-driven fixed positioning, so the overflow rewrite was unneeded.\n"},"2.0.2":{"date":"05\/05\/2026","content":"1. [](#new)\n    * Added `replaceContent(markdown)` method on the admin-next web component for explicit content replacement (e.g. AI Assistant \"Replace\"). The plain `value` setter still bails out under collaborative mode so routine prop syncs can't wipe peer edits, but `replaceContent` always runs `_reloadContent` \u2014 TipTap's `setContent` transaction propagates through y-prosemirror to all peers. Hosts should prefer this method when overwriting content programmatically.\n"},"2.0.1":{"date":"04\/26\/2026","content":"1. [](#new)\n    * **Real-time collaborative editing** in the admin-next field via y-prosemirror. The editor now accepts a Yjs `XmlFragment` + `Awareness` from the host (admin-next's page editor) and routes ProseMirror's document state through `ySyncPlugin` \/ `yCursorPlugin`, so multiple users editing the same page see each other's changes character-by-character along with named cursors. Yjs and `y-protocols\/awareness` are externalized in the build (`build-admin-next.mjs`) and resolve at runtime to admin-next's instances on `window.__GRAV_YJS__` \u2014 sharing class identities is mandatory because y-prosemirror's `instanceof Y.XmlFragment` check would otherwise reject a fragment created by a different copy of Yjs. The web component wrapper picks up `yFragment` \/ `yAwareness` \/ `yUser` properties before `connectedCallback` so `EditorProClass` can wire the collab extension at construction time; the initial markdown content seeds an empty Yjs fragment so the first peer's content propagates to later joiners. Backwards-compatible \u2014 when no `yFragment` is provided the editor behaves exactly as before. Requires grav-admin-next \u2265 beta.13 (which sets `window.__GRAV_YJS__`) and grav-plugin-sync.\n2. [](#bugfix)\n    * Cmd-Z \/ Cmd-Y \/ the toolbar undo+redo buttons no longer roll back peer edits when collaborative editing is active. TipTap's StarterKit `history` extension is now disabled when `this.collab.fragment` is set (its keymap walked the full ProseMirror transaction stack, which includes remote edits applied via `ySyncPlugin`); the new `TiptapCollaboration` extension binds `Mod-Z` \/ `Mod-Y` \/ `Mod-Shift-Z` to y-prosemirror's `yUndo` \/ `yRedo` via `addKeyboardShortcuts`, and the toolbar undo\/redo buttons branch on collab to call `window.TiptapYjs.yUndo` \/ `yRedo` instead of `editor.commands.undo`. y-prosemirror's `yUndoPlugin` already scopes the underlying `Y.UndoManager` to `ySyncPluginKey` origin, so only edits that originated from the local ySyncPlugin are undoable.\n    * Heading shortcodes (`[h1]`\u2013`[h6]`) no longer save with their content on a separate line, which previously caused the markdown engine to wrap the inner text in a `<p>` and produced invalid HTML like `<h2><p>My Heading<\/p><\/h2>` on the frontend. The shortcode-block serializer now emits headings on a single line (`[h2]My Heading[\/h2]`) regardless of their block-level classification, since heading elements can't legally contain block-level children. Fixes [getgrav\/grav-premium-issues#569](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/569).\n"},"2.0.0":{"date":"04\/22\/2026","content":"1. [](#new)\n    * **Admin-next integration via a web component custom field.** Editor Pro now renders natively inside admin-next alongside its existing admin-classic form-field mode \u2014 no shims or iframes. Ships as a self-contained ES module (`admin-next\/fields\/editor-pro.js`) built with esbuild, with `EditorProClass` exposed on `window.EditorPro` so the web component wrapper can instantiate the editor with the same config path the admin-classic field uses.\n    * New `EditorProController` with API endpoints for config resolution, shortcode discovery, path lookup, and plugin-script loading. Routes are registered via `onApiRegisterRoutes`, so the editor fetches everything it needs through the standard Grav API \u2014 no direct filesystem or admin-session assumptions.\n    * `onApiBlueprintResolved` event hook rewrites `type: markdown` fields in page\/plugin\/theme blueprints to Editor Pro when admin-next requests a blueprint, giving every markdown editor in the admin a consistent modern experience without per-blueprint config. `type: editor` (explicit code editor \/ CodeMirror) is deliberately left alone.\n    * Bundled dark-theme support: all Tailwind `slate` greys swapped to `neutral` to match admin-next's palette, and the dark theme is aliased to the `.dark` class so it tracks admin-next's color-mode toggle instead of requiring a separate switch.\n2. [](#improved)\n    * Toolbar configuration set in plugin config (or field blueprint) is now honored by the admin-next editor field \u2014 previously the admin-next variant rendered the default toolbar regardless of the configured string.\n3. [](#bugfix)\n    * `createCodeMirrorCompatibility` no longer crashes with `jQuery is not defined` in admin-next, where jQuery isn't loaded. The bare `jQuery` reference is now guarded with a `typeof` check.\n    * Only `type: markdown` fields are overridden to Editor Pro in the blueprint resolver. `type: editor` fields (intended as CodeMirror code editors) stay on CodeMirror as intended \u2014 previously they were being swapped too, breaking fields that needed the code-editor behavior.\n"},"1.3.5":{"date":"03\/24\/2026","content":"1. [](#bugfix)\n    * Fix for single apostrophes in shortcodes breaking editor\n"},"1.3.4":{"date":"03\/24\/2026","content":"1. [](#bugfix)\n    * Another fix for markdown target\n"},"1.3.3":{"date":"03\/23\/2026","content":"1. [](#bugfix)\n    * Fix target attribute not updating to use Grav's markdown target\n    * Minor CSS fix for toolbar icon alignment\n"},"1.3.2":{"date":"03\/06\/2026","content":"1. [](#bugfix)\n    * Fix for shortcode first in content\n"},"1.3.1":{"date":"12\/23\/2025","content":"1. [](#improved)\n    * Add wrap support for code blocks\n"},"1.3.0":{"date":"12\/23\/2025","content":"1. [](#new)\n    * New **code shortcode block** support (needed for Codesh syntax highlighting plugin)\n1. [](#bugfix)\n    * Fix for raw shortcodes\n    * Fix for white border in dark mode\n    * Fix for bbcode syntax not being reliable\n"},"1.2.1":{"date":"12\/08\/2025","content":"1. [](#bugfix)\n    * Fixed nested bold\/italics [519](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/519)\n    * Fixed nested ol\/ul lists [520](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/520)\n"},"1.2.0":{"date":"12\/08\/2025","content":"1. [](#new)\n    * Added a new **raw markdown** editor mode\n"},"1.1.2":{"date":"12\/01\/2025","content":"1. [](#improved)\n    * Added `title` support to images [#514](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/514)\n"},"1.1.1":{"date":"12\/01\/2025","content":"1. [](#bugfix)\n    * CSS fix for drag-handle overriding Sortable Pages [#516](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/516)\n"},"1.1.0":{"date":"11\/23\/2025","content":"1. [](#improved) \n    * Added new `onEditorProExtractPaths` event\n    * Improved shortcode dropdown support with label + value options, not just values\n    * Improved shortcode dropdown styling\n"}}},"form-captcha-hcaptcha":{"name":"Form Captcha hCaptcha","version":"1.0.2","description":"Provides hCaptcha support for Grav Form plugin","description_html":"<p>Provides hCaptcha support for Grav Form plugin<\/p>","description_plain":"Provides hCaptcha support for Grav Form plugin","icon":"plug","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"form","version":">=8.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-form-captcha-hcaptcha","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-form-captcha-hcaptcha\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-form-captcha-hcaptcha\/issues","license":"MIT","tag_name":"1.0.2","date":"2026-05-05T14:11:04Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/form-captcha-hcaptcha\/1.0.2","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-form-captcha-hcaptcha","slug":"form-captcha-hcaptcha","install_path":"user\/plugins\/form-captcha-hcaptcha","content_sha256":"2522fc2e84b22fe6abc1db790d357a3f47b87873a7407278d5e1de407213367d","changelog":{"1.0.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.1":{"date":"08\/25\/2025","content":"1. [](#bugfix)\n    * Fix indent issue in hcaptcha blueprint\n"},"1.0.0":{"date":"08\/25\/2025","content":"1. [](#new)\n    * ChangeLog started..."}}},"scheduler-webhook":{"name":"Scheduler Webhook","version":"1.1.3","description":"Provides webhook and health check endpoints for Grav&#39;s Modern Scheduler","description_html":"<p>Provides webhook and health check endpoints for Grav&#39;s Modern Scheduler<\/p>","description_plain":"Provides webhook and health check endpoints for Grav&#39;s Modern Scheduler","icon":"plug","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.49"}],"compatibility":{"grav":["1.7","2.0"]},"docs":"https:\/\/github.com\/getgrav\/grav-plugin-scheduler-webhook\/blob\/main\/README.md","keywords":"grav, plugin, scheduler, webhook, api, cron","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-scheduler-webhook\/issues","license":"MIT","tag_name":"1.1.3","date":"2026-07-09T17:19:45Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/scheduler-webhook\/1.1.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-scheduler-webhook","homepage":"https:\/\/github.com\/getgrav\/grav-plugin-scheduler-webhook","slug":"scheduler-webhook","install_path":"user\/plugins\/scheduler-webhook","content_sha256":"1e8e18fee0bb8306269265446ed4cca7da50dbad1b8a9ee92396565485a73f29","changelog":{"1.1.3":{"date":"07\/09\/2026","content":"1. [](#bugfix)\n    * [security] A scheduler webhook that is enabled without a token set no longer runs jobs for anonymous callers; the endpoint now refuses every request until a token is configured, and compares tokens in constant time ([GHSA-xwv3-2mv2-w33x](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-xwv3-2mv2-w33x)).\n"},"1.1.2":{"date":"07\/06\/2026","content":"1. [](#bugfix)\n   * Fixed webhook token authentication returning a 401 on servers that strip the `Authorization` header, by recommending and reliably supporting the `X-Webhook-Token` header instead.\n"},"1.1.1":{"date":"07\/06\/2026","content":"1. [](#bugfix)\n   * Removed a redundant check that blocked webhook and health endpoints unless a `scheduler.modern.enabled` setting was on, a toggle that no longer exists in Grav 2.\n"},"1.1.0":{"date":"05\/06\/2026","content":"1. [](#new)\n   * Added Grav 2.0 compatibility \n"},"1.0.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.0.0":{"date":"08\/25\/2025","content":"1. [](#new)\n    * Initial release of Scheduler Webhook plugin\n    * Webhook endpoint for triggering scheduler\n    * Health check endpoint for monitoring\n    * Bearer token authentication\n    * Support for triggering specific jobs\n    * Optional CORS support\n    * Comprehensive documentation and examples"}}},"cloudflare-images":{"name":"Cloudflare Images","version":"1.0.1","description":"Provides Cloudflare image transformation with automatic fallback to Grav&#39;s Media handling","description_html":"<p>Provides Cloudflare image transformation with automatic fallback to Grav&#39;s Media handling<\/p>","description_plain":"Provides Cloudflare image transformation with automatic fallback to Grav&#39;s Media handling","icon":"image","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-cloudflare-images","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-cloudflare-images\/blob\/main\/README.md","keywords":"grav, plugin, cloudflare, images, cdn, optimization, responsive","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-cloudflare-images\/issues","license":"MIT","tag_name":"1.0.1","date":"2026-05-05T14:10:34Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cloudflare-images\/1.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-cloudflare-images","slug":"cloudflare-images","install_path":"user\/plugins\/cloudflare-images","content_sha256":"16c59f629aa5adbc306a681da7f31218d7dcc50eb8963390429e47e741d4e57c","changelog":{"1.0.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.0":{"date":"08\/17\/2025","content":"1. [](#new)\n    * Initial Release"}}},"revisions-pro":{"name":"Revisions Pro","version":"3.0.1","description":"Advanced revision system with tracking, comparison viewing, and restore","description_html":"<p>Advanced revision system with tracking, comparison viewing, and restore<\/p>","description_plain":"Advanced revision system with tracking, comparison viewing, and restore","icon":"history","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"admin","version":">=1.10.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/revisions-pro","docs":"https:\/\/getgrav.org\/premium\/revisions-pro\/docs","keywords":"grav, plugin, revisions, tracking, comparison, restore, admin","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/revisions-pro","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"3.0.1","date":"2026-05-05T13:32:30Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/revisions-pro\/3.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-revisions-pro","premium":{"permalink":"grav-premium-revisions-pro","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-revisions-pro","button":"Buy Now","filename":"grav-plugin-revisions-pro"},"slug":"revisions-pro","install_path":"user\/plugins\/revisions-pro","content_sha256":"47788de4572021ca28f9e45a69e10468e0730f288bd39ecef3ae6e5e2e271905","changelog":{"3.0.1":{"date":"05\/05\/2026","content":"1. [](#bugfix)\n    * Fixed 500 error on the revisions diff endpoint caused by a missing required argument when constructing the diff engine.\n"},"3.0.0":{"date":"04\/22\/2026","content":"1. [](#new)\n    * New Grav 2.0 + API + Admin 2.0 support\n"},"2.0.0":{"date":"10\/14\/2025","content":"1. [](#new)\n    * Added recoverable Trash workspace for deleted pages, including restore\/overwrite workflows and configurable retention.\n    * Introduced toolbar trash badge and dedicated panel for listing, restoring, and purging deleted pages.\n1. [](#improved)\n    * Extended configuration\/translation options to manage trash retention limits and disable the feature when not needed.\n"},"1.0.0":{"date":"07\/30\/2025","content":"1. [](#new)\n    * Initial Release..."}}},"polls":{"name":"Polls","version":"2.0.1","description":"Simple polls for Grav CMS","description_html":"<p>Simple polls for Grav CMS<\/p>","description_plain":"Simple polls for Grav CMS","icon":"check-square","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"admin","version":">=1.10.0"},{"name":"flex-objects","version":">=1.0.0"},{"name":"database","version":">=1.0.0"},{"name":"shortcode-core","version":">=5.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/polls","docs":"https:\/\/getgrav.org\/premium\/polls\/docs","demo":"http:\/\/demo.yoursite.com","keywords":"polls, voting, survey, questionnaire","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/polls","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"2.0.1","date":"2026-06-19T15:26:31Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/polls\/2.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-polls","premium":{"permalink":"grav-premium-polls","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-polls","button":"Buy Now","filename":"grav-plugin-polls"},"slug":"polls","install_path":"user\/plugins\/polls","content_sha256":"1b1dd251eaa40b538b5107a912df7a074e8192398abc00836b26182e482e0571","changelog":{"2.0.1":{"date":"06\/19\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.4 deprecation warnings from implicitly nullable function parameters.\n"},"2.0.0":{"date":"04\/23\/2026","content":"1. [](#new)\n    * Added Grav 2.0, API, and Admin 2.0 support\n"},"1.2.0":{"date":"09\/05\/2025","content":"1. [](#new)\n    * Added new show poll results after close option\n"},"1.1.0":{"date":"09\/05\/2025","content":"1. [](#new)\n    * Added open\/close dates for polls with countdown timer\n    * Added poll results tab in admin\n    * Hide results from users option\n"},"1.0.0":{"date":"07\/29\/2025","content":"1. [](#new)\n   * Initial release of the Polls plugin for Grav CMS.\n"},"0.1.0":{"date":"05\/22\/2025","content":"1. [](#new)\n   * ChangeLog started..."}}},"comments-pro":{"name":"Comments Pro","version":"3.0.4","description":"Powerful Commenting Plugin for Grav","description_html":"<p>Powerful Commenting Plugin for Grav<\/p>","description_plain":"Powerful Commenting Plugin for Grav","icon":"comments","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.49"},{"name":"sync","version":">=1.1.0"},{"name":"login","version":">=3.8.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/comments-pro","docs":"https:\/\/getgrav.org\/premium\/comments-pro\/docs","keywords":"grav, premium, comments, commenting, discussion, moderation, spam, security, authentication, markdown, realtime","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/comments-pro","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"3.0.4","date":"2026-07-24T10:49:04Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/comments-pro\/3.0.4","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-comments-pro","premium":{"permalink":"grav-premium-comments-pro","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-comments-pro","button":"Buy Now","filename":"grav-plugin-comments-pro"},"slug":"comments-pro","install_path":"user\/plugins\/comments-pro","content_sha256":"fa0eeb11ad8c54038bb3236501369006ae3009f29092680dc3ccbc2093699b88","changelog":{"3.0.4":{"date":"07\/24\/2026","content":"1. [](#bugfix)\n    * Fixed a comments error on pages that also contain a form.\n"},"3.0.3":{"date":"06\/19\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.4 deprecation warnings from implicitly nullable function parameters.\n"},"3.0.2":{"date":"06\/02\/2026","content":"1. [](#bugfix)\n    * Fixed a php function being used, now replaced by twig function\/filter\n"},"3.0.1":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n   * The Comments sidebar entry is now hidden from users who don't have system read access. Requires grav-plugin-api \u2265 1.0.0-rc.11.\n"},"3.0.0":{"date":"05\/13\/2026","content":"1. [](#new)\n    * New Light\/Dark support via `.dark` class.\n    * New `realtime.transport` setting picks between Ably (default, unchanged from 2.0.0) and the Grav Sync plugin for real-time updates.\n    * On the sync transport, Mercure-pushed updates are available on Grav 2.0 via the optional sync-mercure companion plugin; polling is the universal fallback.\n    * Typing indicators now also work on the sync transport (Mercure or polling presence), in addition to Ably presence.\n2. [](#improved)\n    * Now supports both Grav 1.7 and Grav 2.0.\n    * Lots of CSS fixes.\n3. [](#bugfix)\n    * Votes now sync in real time between browsers; previously only posts, edits and deletes did.\n    * Real-time updates work on Grav installs mounted at a subpath (e.g. `\/sync-testing\/grav-c\/`).\n    * Non-moderator users no longer see their own deleted comments; deleted posts are now hidden from everyone except moderators.\n"},"2.0.0":{"date":"04\/23\/2026","content":"1. [](#new)\n    * Added Grav 2.0, API, and Admin 2.0 support\n"},"1.3.0":{"date":"03\/15\/2026","content":"1. [](#new)\n    * Post submission toast notifications with configurable `display.post_toasts` setting and admin blueprint toggle\n    * Toast includes \"View comment\" permalink that scrolls to and highlights the new comment\n    * Pending comment visibility for logged-in users \u2014 own pending comments displayed inline with semi-transparent styling and \"PENDING APPROVAL\" badge\n    * Pending comment visibility for guests via PHP session tracking\n    * Admin panel actions (approve, delete, edit, bulk update) now publish Ably realtime events for live frontend updates\n    * Realtime notifications for all comment changes \u2014 status changes, deletions, and edits now trigger in-page toast notifications via both Ably and polling\n    * All user-facing notification strings added to `languages.yaml` for translation support\n2. [](#improved)\n    * Notification system unified \u2014 post toasts and realtime notifications now share the same `comment-notification` HTML\/CSS structure\n    * `HX-Trigger` response header now sent for all comment submissions (not just pending) with comment ID and status\n    * Moderation notice and pending badge text moved to language strings\n3. [](#bugfix)\n    * Fixed missing feedback when submitting comments with moderation enabled ([#557](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/557))\n    * Fixed admin HTMX page reload showing raw partial HTML instead of full admin layout\n"},"1.2.1":{"date":"02\/01\/2026","content":"1. [](#bugfix)\n    * Removed a conficting `.hidden` class in the CSS\n"},"1.2.0":{"date":"10\/10\/2025","content":"1. [](#improved)\n    * Added \"oldest first\" sort order\n    * Added ability to set default sort order in plugin settings\n"},"1.1.2":{"date":"09\/14\/2025","content":"1. [](#improved)\n    * Added blueprint inject to enable comments pro from the \"Content\" tab in admin\n"},"1.1.1":{"date":"09\/05\/2025","content":"3. [](#fixed)\n    * Fixed several zero-day bugs and edge cases with avatars, updates, and CSS issues\n"},"1.1.0":{"date":"09\/05\/2025","content":"1. [](#new)\n    * Ably-powered real-time updates and typing indicators\n    * Floating typing indicator: Always-visible, fixed bottom-right typing indicator powered by Ably Presence; inline per-form hints remain for context\n    * Ably-driven toasts: New-comment in-page notifications now triggered via Ably events; falls back to polling when Ably is disabled or unavailable\n    * Live comment count: Header comment count now refreshes on real-time events, polling updates, and after successful local submissions\n2. [](#improved)\n    * Reduced console noise: Removed most debug `console.log` statements, keeping meaningful warnings\/errors\n    * Toast positioning: Ensured toast and in-page notifications are fixed to viewport with high z-index and consistent placement\n3. [](#fixed)\n    * Continued to preserve adaptive polling as a robust fallback when Ably disconnects or fails\n"},"1.0.0":{"date":"07\/28\/2025","content":"1. [](#new)\n    * Initial release of Comments Pro plugin\n"},"0.1.0":{"date":"06\/13\/2025","content":"1. [](#new)\n    * ChangeLog started..."}}},"docker-hub-pulls":{"name":"Docker Hub Pulls","version":"0.1.0","description":"Retrieves pull count for configured Docker Hub images","description_html":"<p>Retrieves pull count for configured Docker Hub images<\/p>","description_plain":"Retrieves pull count for configured Docker Hub images","icon":"plug","author":{"name":"ABesnier","email":"contact@papycasu.fr"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/abesnier\/grav-plugin-docker-hub-pulls","docs":"https:\/\/github.com\/abesnier\/grav-plugin-docker-hub-pulls\/blob\/develop\/README.md","keywords":"grav, plugin, docker, dockerhub","bugs":"https:\/\/github.com\/abesnier\/grav-plugin-docker-hub-pulls\/issues","license":"MIT","tag_name":"0.1.1","date":"2025-09-26T11:30:33Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/docker-hub-pulls\/0.1.0","repository":"https:\/\/github.com\/abesnier\/grav-plugin-docker-hub-pulls","slug":"docker-hub-pulls","install_path":"user\/plugins\/docker-hub-pulls","content_sha256":"f368169b24c79c38c779016d2fa0be84be1596f9c319be5a43be394e97c354b1","changelog":{"0.1.0":{"date":" 04\/14\/2025","content":"1. [](#new)\n    * Initial Commit"}}},"email-office365":{"name":"Email Office365","version":"1.1.0","description":"Simplify your email workflow with our powerful Office365 plugin for Grav CMS, offering seamless Microsoft OAuth2 integration for secure, reliable email delivery","description_html":"<p>Simplify your email workflow with our powerful Office365 plugin for Grav CMS, offering seamless Microsoft OAuth2 integration for secure, reliable email delivery<\/p>","description_plain":"Simplify your email workflow with our powerful Office365 plugin for Grav CMS, offering seamless Microsoft OAuth2 integration for secure, reliable email delivery","icon":"envelope","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/email-office365","docs":"https:\/\/getgrav.org\/premium\/email-office365\/docs","keywords":"grav, plugin, email, office365","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/email-office365","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"1.1.0","date":"2026-05-02T22:10:36Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-office365\/1.1.0","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-email-office365","premium":{"permalink":"grav-premium-email-office365","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-email-office365","button":"Buy Now","filename":"grav-plugin-email-office365"},"slug":"email-office365","install_path":"user\/plugins\/email-office365","content_sha256":"c52d68153622e3b29568faf7a166437a0f1b7f4db4ffa068985b9b6d9855b51a","changelog":{"1.1.0":{"date":" 05\/02\/2026","content":"1. [](#new)\n    * Added admin-next integration for the `office365-access-token` custom field\n    * Added API endpoints for fetching plugin status, sending a test email, and clearing OAuth2 tokens\n    * OAuth2 callback now returns to admin-next when the authorization was started from there\n    * Added Grav `compatibility` flags to blueprints\n"},"1.0.6":{"date":" 01\/23\/2026","content":"1. [](#new)\n    * Added support for sending from shared mailboxes when authenticated user has \"Send As\" permission\n    * Added `Mail.Send.Shared` scope to OAuth2 authorization (re-authentication required for existing users)\n"},"1.0.5":{"date":" 06\/05\/2025","content":"1. [](#bugfix)\n    * Update composer vendor libs\n\n"},"1.0.4":{"date":" 06\/05\/2025","content":"1. [](#bugfix)\n    * For \"psr\/http-message\": \"^1.0\" to fix upload compatibility issues\n"},"1.0.3":{"date":" 04\/24\/2025","content":"1. [](#bugfix)\n    * Fix for null passed to the truncate_middle twig function\n"},"1.0.2":{"date":" 04\/24\/2025","content":"1. [](#bugfix)\n    * Forgot to add premium flag\n"},"1.0.1":{"date":" 04\/24\/2025","content":"1. [](#improved)\n    * Minor textual changes\n   "},"1.0.0":{"date":" 04\/24\/2025","content":"1. [](#new)\n    * Initial Release\n"},"0.1.0":{"date":" 04\/21\/2025","content":"1. [](#new)\n    * ChangeLog started..."}}},"github-markdown-alerts":{"name":"Github Markdown Alerts","version":"1.1.1","description":"Extends Grav&#039;s markdown implementation to add support for github&#039;s Alert markdown extensions","description_html":"<p>Extends Grav&#039;s markdown implementation to add support for github&#039;s Alert markdown extensions<\/p>","description_plain":"Extends Grav&#039;s markdown implementation to add support for github&#039;s Alert markdown extensions","icon":"exclamation-triangle","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.42"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-github-markdown-alerts","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-github-markdown-alerts\/blob\/develop\/README.md","keywords":"grav, plugin, markdown, github, GFM","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-github-markdown-alerts\/issues","license":"MIT","tag_name":"1.1.1","date":"2026-04-23T08:01:00Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/github-markdown-alerts\/1.1.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-github-markdown-alerts","slug":"github-markdown-alerts","install_path":"user\/plugins\/github-markdown-alerts","content_sha256":"039d30e853db0ca5dbab51888069c30b6ddce21b8bf9541df4e081ccb0d6f984","changelog":{"1.1.1":{"date":"04\/23\/2026","content":"1. [](#bugfix)\n    * Fix title inside .prose\n"},"1.1.0":{"date":"08\/25\/2025","content":"1. [](#new)\n    * Added support for **Editor Pro** integration with Shortcode UI custom blocks\n"},"1.0.0":{"date":"03\/21\/2025","content":"1. [](#new)\n    * Initial release...."}}},"admin-blocks":{"name":"Admin Content Blocks","version":"1.1.1","description":"Define blocks in your page blueprints and use them in the admin panel to orchestrate the content.","description_html":"<p>Define blocks in your page blueprints and use them in the admin panel to orchestrate the content.<\/p>","description_plain":"Define blocks in your page blueprints and use them in the admin panel to orchestrate the content.","icon":"empire","author":{"name":"Falk Mu:\/\/er","url":"https:\/\/falk-m.de","email":"grav@falk-m.org"},"dependencies":[{"name":"grav","version":">=1.7.42"},{"name":"admin","version":">=1.0.0"}],"homepage":"https:\/\/github.com\/falk-m\/grav-plugin-admin-blocks","docs":"https:\/\/github.com\/falk-m\/grav-plugin-admin-blocks\/blob\/master\/README.md","keywords":"admin, plugin, manager, panel","bugs":"https:\/\/github.com\/falk-m\/grav-plugin-admin-blocks\/issues","license":"MIT","tag_name":"v1.1.1","date":"2025-03-23T19:54:13Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-blocks\/1.1.1","repository":"https:\/\/github.com\/falk-m\/grav-plugin-admin-blocks","slug":"admin-blocks","install_path":"user\/plugins\/admin-blocks","content_sha256":"ee8edb9d48137bf6328788366e44bc12829c13307e9204764ce1f7069f3684bb","changelog":{"1.1.1":{"date":"2025-03-23","content":"1. [](#new)\n    * tnt search support"}}},"plan-compare":{"name":"Plan Compare","version":"1.2.0","description":"Create tables to compare features among different service plans or products","description_html":"<p>Create tables to compare features among different service plans or products<\/p>","description_plain":"Create tables to compare features among different service plans or products","icon":"plug","author":{"name":"Karmalakas"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/karmalakas\/grav-plugin-plan-compare","docs":"https:\/\/github.com\/karmalakas\/grav-plugin-plan-compare\/blob\/develop\/README.md","demo":"https:\/\/www.karmalakas.lt\/grav-plugins-demos\/","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/karmalakas\/grav-plugin-plan-compare\/issues","license":"MIT","tag_name":"1.2.0","date":"2025-03-06T17:53:51Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/plan-compare\/1.2.0","repository":"https:\/\/github.com\/Karmalakas\/grav-plugin-plan-compare","slug":"plan-compare","install_path":"user\/plugins\/plan-compare","content_sha256":"86667764f7bc5ae9236fdea59574c2c590ddd6f7be8f590f3bcb6987591beefa","changelog":{"1.2.0":{"date":" 03\/06\/2025","content":"1. [](#new)\n    * Add color option for a feature\n    * Option to hide plan names on a divider\n    * Add output of a tooltip on a divider\n    * Allow feature and plan with empty label\n\n1. [](#chore)\n    * Update README\n"},"1.1.1":{"date":" 03\/01\/2025","content":"1. [](#bugfix)\n    * Change Info icon entity to show correctly on more devices\n"},"1.1.0":{"date":" 02\/27\/2025","content":"1. [](#new)\n    * Add color option for plan column\n\n1. [](#bugfix)\n    * Fix some styles and headings\n"},"1.0.0":{"date":" 02\/27\/2025","content":"1. [](#new)\n    * ChangeLog started..."}}},"transliterate":{"name":"Transliterate","version":"1.0.0","description":"A Grav plugin that provides Twig and Markdown filters (transliterate and toAscii) for converting text to Latin\/ASCII equivalents.","description_html":"<p>A Grav plugin that provides Twig and Markdown filters (transliterate and toAscii) for converting text to Latin\/ASCII equivalents.<\/p>","description_plain":"A Grav plugin that provides Twig and Markdown filters (transliterate and toAscii) for converting text to Latin\/ASCII equivalents.","icon":"plug","author":{"name":"pmdesign","email":"pmoreno@pmdesign.dev"},"dependencies":[{"name":"grav","version":">=.1.7.8"}],"homepage":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-transliterate","docs":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-transliterate\/blob\/develop\/README.md","demo":"https:\/\/pmdesign.dev","keywords":"grav, plugin, transliterate, ascii","bugs":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-transliterate\/issues","license":"MIT","tag_name":"1.0.1","date":"2025-09-25T14:16:45Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/transliterate\/1.0.0","repository":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-transliterate","slug":"transliterate","install_path":"user\/plugins\/transliterate","content_sha256":"08b425bb17b43612e775173c84b55b0475866016a93ffab1f4939a849b96d7a7","changelog":{"1.0.1":{"date":"09\/25\/2025","content":"1. [](#bugfix)\n    * Fixed Grav version dependency requirement in `blueprints.yaml` (1.7.8 instead of .7.1.8)\n"},"1.0.0":{"date":" 02\/20\/2025","content":"1. [](#new)\n    * ChangeLog started..."}}},"mediumrss":{"name":"Medium RSS Plugin","version":"1.3.0","description":"A plugin for Grav CMS that fetches the RSS profile page feed from Medium and displays the titles and teasers of your articles in a list.","description_html":"<p>A plugin for Grav CMS that fetches the RSS profile page feed from Medium and displays the titles and teasers of your articles in a list.<\/p>","description_plain":"A plugin for Grav CMS that fetches the RSS profile page feed from Medium and displays the titles and teasers of your articles in a list.","icon":"medium","author":{"name":"Samuel Stein","url":"https:\/\/samuelstein.de","email":"mail@samuelstein.de"},"homepage":"https:\/\/github.com\/samuelstein\/mediumrss","keywords":"medium, rss, feed, plugin, grav","license":"MIT","tag_name":"1.3.0","date":"2025-11-04T13:33:18Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mediumrss\/1.3.0","repository":"https:\/\/github.com\/samuelstein\/mediumrss","slug":"mediumrss","install_path":"user\/plugins\/mediumrss","content_sha256":"2df32a5580dcb1e081d661cbe30a33fd6969cc3795cab6c1fd4231a7362063d9","changelog":{"1.1.0":{"date":"03\/05\/2025","content":"* Translated blueprint to english\n"},"1.0.0":{"date":"02\/19\/2025","content":"* Initial release"}},"dependencies":[]},"orestbida-cookie-consent":{"name":"Orestbida Cookie Consent","version":"2.3.3","description":"This grav plugin allows you to manage the cookies used in your site with the popular js lib Cookie Consent by Orestbida.","description_html":"<p>This grav plugin allows you to manage the cookies used in your site with the popular js lib Cookie Consent by Orestbida.<\/p>","description_plain":"This grav plugin allows you to manage the cookies used in your site with the popular js lib Cookie Consent by Orestbida.","icon":"plug","author":{"name":"pmdesign","email":"pmoreno@pmdesign.dev"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-orestbida-cookie-consent","docs":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-orestbida-cookie-consent\/blob\/develop\/README.md","demo":"https:\/\/pmdesign.dev","keywords":"grav, plugin, cookies, consent","bugs":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-orestbida-cookie-consent\/issues","license":"MIT","tag_name":"v2.3.3","date":"2026-06-22T14:39:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/orestbida-cookie-consent\/2.3.3","repository":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-orestbida-cookie-consent","slug":"orestbida-cookie-consent","install_path":"user\/plugins\/orestbida-cookie-consent","content_sha256":"4dcb9c359bc7020f0cfc3a7ad54253c0566212445ceed4c398055f9874a9d537","changelog":{"2.3.3":{"date":"06\/22\/2026","content":"1. [](#bugfix)\n    * Version number corrected in theme blueprint\n    "},"2.3.2":{"date":"06\/21\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    "},"2.3.1":{"date":"04\/08\/2026","content":"1. [](#bugfix)\n    * fix(core): skip JS injection on non-HTML pages (thanks to [pawellabaj](https:\/\/github.com\/pawellabaj))\n"},"2.3.0":{"date":"02\/14\/2026","content":"1. [](#new)\n    * Added complete default plugin configuration file with all supported options and sections.\n2. [](#bugfix)\n    * Fixed fallback consent modal position mapping to `bottom right`.\n3. [](#improved)\n    * Improved Twig JS serialization by using JSON-safe output for configuration strings.\n    * Added missing blueprint fields for `marketing` and `more_info` section content.\n    * Updated plugin metadata and documentation consistency (Composer homepage\/autoload and README config keys).\n"},"2.2.1":{"date":"11\/23\/2025","content":"1. [](#improved)\n    * Refactored `onTwigSiteVariables()` method to include hybrid injection.\n    * Optimized `onOutputGenerated()` to detect if script was already rendered before applying fallback.\n2. [](#bugfix)\n    * Fixed Twig template error that unnecessarily redefined `config` variable, causing plugin not to load properly.\n"},"2.2.0":{"date":"10\/13\/2025","content":"1. [](#improved)\n    * Improved template security with consistent input sanitization across all user-configurable content\n    * Added `onOutputGenerated` hook to ensure plugin works with all theme configurations\n    * Fixed CDN URLs to use HTTPS instead of HTTP\n"},"2.1.0":{"date":" 03\/22\/2025","content":"1. [](#improved)\n    * Updated some translations\n    * Replaced elements type fields with text and textarea fields in the plugin blueprints to improve usability and simplify content management\n    * Added required fields to improve plugin functionality\n2. [](#bugfix)\n    * Fix: Handle null values in escapeQuotes function to prevent type errors\n"},"2.0.1":{"date":" 03\/12\/2025","content":"1. [](#improved)\n    * Updated CDN version\n"},"2.0.0":{"date":" 03\/12\/2025","content":"1. [](#new)\n    * Upgraded to the latest version of Orestbida Cookie Consent library (v3.1.0)\n    * Added option `autoShow`: Automatically show the consent modal if consent is not valid\n    * Added option `show_delay` to set the delay in milliseconds before the cookie consent banner is shown\n    * Added option `hideFromBots`: Stops the plugin's execution when a bot\/crawler is detected, to prevent them from indexing the modal's content\n    * Added option `disablePageInteraction`: Creates a dark overlay and blocks the page scroll until consent is expressed\n2. [](#improved)\n    * Refactored the code to make it more maintainable and easier to extend in the future\n    * Updated documentation in README\n"},"1.0.0":{"date":" 01\/30\/2025","content":"1. [](#new)\n    * ChangeLog started..."}}},"facebook-conversion-api":{"name":"Facebook Conversion Api","version":"1.0.0","description":"Facebook Conversion API integration","description_html":"<p>Facebook Conversion API integration<\/p>","description_plain":"Facebook Conversion API integration","icon":"facebook","author":{"name":"Paul Massendari","email":"paulmassendari@pm.me"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/paulmassen\/grav-plugin-facebook-conversion-api","docs":"https:\/\/github.com\/paulmassen\/grav-plugin-facebook-conversion-api\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/paulmassen\/grav-plugin-facebook-conversion-api\/issues","license":"MIT","tag_name":"v1.0.0","date":"2025-01-30T11:41:42Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/facebook-conversion-api\/1.0.0","repository":"https:\/\/github.com\/paulmassen\/grav-plugin-fbconversionsapi","slug":"facebook-conversion-api","install_path":"user\/plugins\/facebook-conversion-api","content_sha256":"d3c3abcad098cdcb283cee2a20c954537917643c1e03946f457d35aa23145173","changelog":{"1.0.0":{"date":" 01\/30\/2025","content":"1. [](#new)\n    * ChangeLog started...\n    * Initial Release"}}},"subpages":{"name":"Subpages","version":"1.0.3","description":"Displays a list of direct sub-pages of the current page.","description_html":"<p>Displays a list of direct sub-pages of the current page.<\/p>","description_plain":"Displays a list of direct sub-pages of the current page.","icon":"list-alt","author":{"name":"Andrew Calcutt","email":"acalcutt@techidiots.net"},"homepage":"https:\/\/github.com\/acalcutt\/grav-plugin-subpages","tag_name":"v1.0.3","date":"2025-02-13T14:50:07Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/subpages\/1.0.3","repository":"https:\/\/github.com\/acalcutt\/grav-plugin-subpages","slug":"subpages","install_path":"user\/plugins\/subpages","content_sha256":"426e9421cc2e365cefa9a4ab2f5ad9085c70cb2ddb23fe1e8e5a91732abb1998","changelog":{"1.0.3\r":{"date":"02\/12\/2025\r","content":"1. [](#fix)\r\n    * Fixed ordered list not working\r\n2. [](#new)\r\n    * Added option to show or hide the previous page link\r\n\r"},"1.0.2\r":{"date":"01\/28\/2025\r","content":"1. [](#improved)\r\n    * Changed template name to `subpages.html.twig`\r\n2. [](#improved)\r\n    * Removed redundant checks for plugin enabled in `subpages.php`\r\n3. [](#new)\r\n    * Added GPM installation to the `README.md` file\r\n4. [](#new)\r\n    * Added conditional include to the `README.md` file\r\n5. [](#new)\r\n    * Added numbered prefix to the example folder structure in the `README.md` file\r\n6. [](#new)\r\n    * Added screenshot to the `README.md` file\r\n\r"},"1.0.1\r":{"date":"01\/27\/2025\r","content":"1. [](#new)\r\n    * Added changelog\r\n\r"},"1.0.0\r":{"date":"01\/27\/2025\r","content":"1. [](#new)\r\n    * Initial Release. Plugin shows subpages on the pages it is included on."}},"dependencies":[]},"healthcheck":{"name":"Healthcheck","version":"1.1.0","description":"Create a Healthcheck endpoint for your Grav site to monitor the status of your site","description_html":"<p>Create a Healthcheck endpoint for your Grav site to monitor the status of your site<\/p>","description_plain":"Create a Healthcheck endpoint for your Grav site to monitor the status of your site","icon":"stethoscope","author":{"name":"Crabston GmbH","url":"https:\/\/crabston.dev","email":"contact@crabston.dev"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/Crabston\/grav-plugin-healthcheck","docs":"https:\/\/github.com\/Crabston\/grav-plugin-healthcheck\/blob\/main\/README.md","demo":"https:\/\/grav.demo.crabston.dev\/health","keywords":"grav, plugin, healthcheck, monitoring, status","bugs":"https:\/\/github.com\/Crabston\/grav-plugin-healthcheck\/issues","license":"MIT","tag_name":"v1.1.0","date":"2024-05-28T14:02:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/healthcheck\/1.1.0","repository":"https:\/\/github.com\/Crabston\/grav-plugin-healthcheck","slug":"healthcheck","install_path":"user\/plugins\/healthcheck","content_sha256":"1a364b3902d8af0445b335d425ea0fc2bbd109b61f2e483e32f0cc5375d4119b","changelog":{"1.1.0":{"date":" 2024-05-28","content":"1. [](#new)\n    * added more config options\n1. [](#improved)\n    * added German translation\n"},"1.0.0":{"date":" 2024-04-17","content":"1. [](#new)\n    * Initial release"}}},"changelog":{"name":"Changelog","version":"1.0.0","description":"This plugin generates a history (changelog) from GIT repositories.","description_html":"<p>This plugin generates a history (changelog) from GIT repositories.<\/p>","description_plain":"This plugin generates a history (changelog) from GIT repositories.","icon":"code","author":{"name":"Jan Giebels","url":"https:\/\/giebels.biz","email":"info@giebels.biz"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/nerdyjan\/grav-plugin-changelog\/","keywords":"plugin, git, changelog, repository, history, version, release, commit, tag, branch","bugs":"https:\/\/github.com\/nerdyjan\/grav-plugin-changelog\/issues","license":"MIT","tag_name":"1.0.0","date":"2025-01-16T17:29:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/changelog\/1.0.0","repository":"https:\/\/github.com\/nerdyjan\/grav-plugin-changelog","slug":"changelog","install_path":"user\/plugins\/changelog","content_sha256":"cb114bb3b5a7143661052d8da068d9bf1b4991cc414ed8b0ed5c68f1599fdd23","changelog":{"1.0.0":{"date":"16-01-2025","content":"1. [](#new)\n    * changelog plugin first release"}}},"janolaw":{"name":"janolaw AGB-Hosting","version":"1.0.1","description":"The janolaw AGB-Hosting-Service for Websites and Shops","description_html":"<p>The janolaw AGB-Hosting-Service for Websites and Shops<\/p>","description_plain":"The janolaw AGB-Hosting-Service for Websites and Shops","icon":"legal","author":{"name":"Jan Giebels","url":"https:\/\/giebels.biz","email":"info@giebels.biz"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/nerdyjan\/grav-plugin-janolaw\/","keywords":"plugin, terms of use, imprint, privacy policy, janolaw","bugs":"https:\/\/github.com\/nerdyjan\/grav-plugin-janolaw\/issues","license":"MIT","tag_name":"1.0.1","date":"2025-01-27T11:58:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/janolaw\/1.0.1","repository":"https:\/\/github.com\/nerdyjan\/grav-plugin-janolaw","slug":"janolaw","install_path":"user\/plugins\/janolaw","content_sha256":"6afacd6256bade10737ab587dd9f08e280971d1876f173c2be370af1cf9f816f","changelog":{"1.0.1":{"date":"27-01-2025","content":"1. [](#improved)\n    * styling documentation\n\n2. [](#bugfix)\n    * fix for english documents\n"},"1.0.0":{"date":"16-01-2025","content":"1. [](#new)\n    * janolaw AGB-Hosting first release, get more informations at [janolaw GmbH](https:\/\/janolaw.de)"}}},"clockwork-web":{"name":"Clockwork Web","version":"1.0.1","description":"Enables a Web Interface for the Clockwork Debugger","description_html":"<p>Enables a Web Interface for the Clockwork Debugger<\/p>","description_plain":"Enables a Web Interface for the Clockwork Debugger","icon":"clock-o","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.47"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-clockwork-web","docs":"https:\/\/github.com\/getgrav\/grav-plugin-clockwork-web\/blob\/develop\/README.md","keywords":"grav, plugin, clockwork, debugger","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-clockwork-web\/issues","license":"MIT","tag_name":"1.0.1","date":"2026-05-05T14:05:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/clockwork-web\/1.0.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-clockwork-web","slug":"clockwork-web","install_path":"user\/plugins\/clockwork-web","content_sha256":"d6937c8b5416bc57a60956ed7a020c0128fef56aef88ab2bfc25d2671dd1d79b","changelog":{"1.0.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.0":{"date":" 10\/24\/2024","content":"1. [](#new)\n    * ChangeLog started..."}}},"grav-ray":{"name":"Grav Ray","version":"2.0.4","description":"Grav plugin for the Ray debugger app","description_html":"<p>Grav plugin for the Ray debugger app<\/p>","description_plain":"Grav plugin for the Ray debugger app","icon":"bug","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-grav-ray","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-grav-ray\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-grav-ray\/issues","license":"MIT","tag_name":"2.0.4","date":"2026-05-05T14:11:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/grav-ray\/2.0.4","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-grav-ray","slug":"grav-ray","install_path":"user\/plugins\/grav-ray","content_sha256":"e2598c0fa9debb041c88533cb6712580bf2ea9b10487a46794880d8f2954bc4a","changelog":{"2.0.4":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"2.0.3":{"date":"12\/29\/2025","content":"1. [](#improved)\n    * Addressed a `var-dumper` compatibility error\n"},"2.0.2":{"date":"11\/02\/2025","content":"1. [](#improved)\n    * Updated vendor dependencies\n"},"2.0.1":{"date":"10\/29\/2025","content":"1. [](#improved)\n    * fixed a deprecation warning\n"},"2.0.0":{"date":"10\/13\/2025","content":"1. [](#new)\n    * Add fluent Twig support, e.g. `{% do ray(page.title).blue().label('Page title') %}`\n1. [](#improved)\n    * Updated vendor dependencies\n"},"1.0.0":{"date":"10\/08\/2024","content":"1. [](#new)\n    * Initial release"}}},"shortcode-swiffy-slider":{"name":"Shortcode Swiffy Slider","version":"1.1.3","description":"This plugin provides a shortcode for Swiffy slider","description_html":"<p>This plugin provides a shortcode for Swiffy slider<\/p>","description_plain":"This plugin provides a shortcode for Swiffy slider","icon":"columns","author":{"name":"Pedro Moreno","url":"https:\/\/github.com\/pmoreno-rodriguez","email":"pmoreno@pmdesign.dev"},"dependencies":[{"name":"shortcode-core","version":">=4.1.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-shortcode-swiffy-slider","demo":"https:\/\/pmdesign.dev\/plugins\/swiffy-slider","keywords":"shortcode, swiffy-slsider, slider","bugs":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-shortcode-swiffy-slider\/issues","license":"MIT","tag_name":"V1.1.3","date":"2026-06-21T17:12:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-swiffy-slider\/1.1.3","repository":"https:\/\/github.com\/pmoreno-rodriguez\/grav-plugin-shortcode-swiffy-slider","slug":"shortcode-swiffy-slider","install_path":"user\/plugins\/shortcode-swiffy-slider","content_sha256":"23354554cb5fbf4b2a721f4f3f93408efb971ea40930fef73ac2312e237af02b","changelog":{"1.1.3":{"date":"06\/21\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    "},"1.1.2":{"date":"03\/08\/2025","content":"1. [](#new)\n   * Added demo page in plugin blueprints\n"},"1.1.1":{"date":"03\/03\/2025","content":"1. [](#bugfix)\n   * Fixed minified css classes\n   * Fixed error in shortcode in README\n"},"1.1.0":{"date":"10\/04\/2024","content":"1. [](#new)\n   * Added `data-slider-nav-animation` to shortcode classes\n2. [](#improved)\n   * Updated shortcode documentation in README\n   * Updated translations\n   * Removed autoplay options from blueprint\n   "},"1.0.0":{"date":"10\/01\/2024","content":"1. [](#new)\n   * ChangeLog started..."}}},"umami-analytics":{"name":"Umami Analytics","version":"1.1.0","description":"Grav plugin for adding Umami Analytics to your site","description_html":"<p>Grav plugin for adding Umami Analytics to your site<\/p>","description_plain":"Grav plugin for adding Umami Analytics to your site","icon":"bar-chart","author":{"name":"Crabston GmbH","url":"https:\/\/crabston.dev","email":"contact@crabston.dev"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/Crabston\/grav-plugin-umami-analytics","docs":"https:\/\/github.com\/Crabston\/grav-plugin-umami-analytics\/blob\/main\/README.md","demo":"https:\/\/grav.demo.crabston.dev","keywords":"grav, plugin, analytics, umami","bugs":"https:\/\/github.com\/Crabston\/grav-plugin-umami-analytics\/issues","license":"MIT","tag_name":"v1.1.0","date":"2024-05-28T07:58:05Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/umami-analytics\/1.1.0","repository":"https:\/\/github.com\/Crabston\/grav-plugin-umami-analytics","slug":"umami-analytics","install_path":"user\/plugins\/umami-analytics","content_sha256":"6f8bd70e263f43143bb56f3fb39455db100097c09d823306590e473b9e18c0c7","changelog":{"1.1.0":{"date":" 05\/28\/2024","content":"1. [](#new)\n    * Added more configuration options\n    * Added option to disable tracking in local environment\n1. [](#improved)\n    * Added German translation\n1. [](#bugfix)\n    * Fixed a translation string\n"},"1.0.0":{"date":" 05\/23\/2024","content":"1. [](#new)\n    * Initial release"}}},"likes-ratings":{"name":"Likes Ratings","version":"1.2.1","description":"Simple Likes and Dislikes ratings plugin that uses a SQLite DB","description_html":"<p>Simple Likes and Dislikes ratings plugin that uses a SQLite DB<\/p>","description_plain":"Simple Likes and Dislikes ratings plugin that uses a SQLite DB","icon":"thumbs-up","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"database","version":">=0.1.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings\/issues","license":"MIT","tag_name":"1.2.1","date":"2026-06-01T19:22:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/likes-ratings\/1.2.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings","slug":"likes-ratings","install_path":"user\/plugins\/likes-ratings","content_sha256":"d16e9ee8d1bdc2c5e147666322672f7cb588e9d15f8832bb6216d1f079d5ecca","changelog":{"1.2.1":{"date":"06\/01\/2026","content":"1. [](#bugfix)\n    * Fixed a duplicated label when a custom template wraps the widget, by replacing only the rating element on each vote [#5](https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings\/issues\/5)\n    * Stopped vote clicks from being counted more than once after the first vote\n    * Removed a broken error-message assignment that never displayed anything\n"},"1.2.0":{"date":"05\/20\/2026","content":"1. [](#new)\n    * Per-IP rate limiting on the vote endpoint, configurable via `rate_limit_enabled` and `rate_limit_per_minute` (default: 10\/minute) [#4](https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings\/issues\/4)\n    * Interval-gated auto-cleanup that sweeps rows with invalid ids from the database, configurable via `auto_cleanup_enabled` and `auto_cleanup_interval_hours` (default: every 24 hours)\n1. [](#improved)\n    * Validate vote `id` against a route-like allowlist (1-255 chars) to keep scanner payloads out of the database and options store [#4](https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings\/issues\/4)\n    * Allowlist `getAll()` `$order` column to prevent a latent ORDER BY injection in CLI usage [#4](https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings\/issues\/4)\n    * Drop the user-supplied value from the \"invalid vote type\" error message [#4](https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings\/issues\/4)\n"},"1.1.0":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Folded in pending working-tree changes (vendor refresh \/ minor PHP 8 modernization)\n"},"1.0.3":{"date":"05\/29\/2024","content":"1. [](#bugfix)\n   * Compatibility fix for SimpleSearch [#1](https:\/\/github.com\/trilbymedia\/grav-plugin-likes-ratings\/issues\/1)\n"},"1.0.2":{"date":"05\/24\/2024","content":"1. [](#improved)\n   * Removed unused 'use' statements\n"},"1.0.1":{"date":"05\/20\/2024","content":"1. [](#new)\n   * Set the plugin icon\n   "},"1.0.0":{"date":"05\/20\/2024","content":"1. [](#new)\n    * ChangeLog started..."}}},"amazon-affiliate-search-link":{"name":"Amazon Affiliate Search Link","version":"1.0.0","description":"Add Amazon affiliate search links in the top, middle and bottom of your pages, automatically, based on the content of your pages.","description_html":"<p>Add Amazon affiliate search links in the top, middle and bottom of your pages, automatically, based on the content of your pages.<\/p>","description_plain":"Add Amazon affiliate search links in the top, middle and bottom of your pages, automatically, based on the content of your pages.","icon":"amazon","author":{"name":"Roberto Travagliante","email":"roberto@travagliante.com"},"homepage":"https:\/\/www.travagliante.com","keywords":"grav, plugin, html, amazon, affiliate, search, link, css, js","bugs":"https:\/\/www.travagliante.com\/issues","tag_name":"grav","date":"2024-02-24T10:50:34Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/amazon-affiliate-search-link\/1.0.0","repository":"https:\/\/github.com\/robertotravagliante\/amazon-affiliate-search-link","slug":"amazon-affiliate-search-link","install_path":"user\/plugins\/amazon-affiliate-search-link","content_sha256":"82c1310e5dd033b4bf415b33544c77333ae5dc0a9ee1774574ef56329410479b","changelog":{"1.0.0":{"date":" 02\/24\/2024","content":"1. [](#bugfix)\n    * Minor bugfix\n"},"0.0.8":{"date":" 02\/23\/2024","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"string-replacer":{"name":"String Replacer","version":"1.0.0","description":"Substitute one or more specific strings with HTML, CSS, JS or other raw code, in pages and posts.","description_html":"<p>Substitute one or more specific strings with HTML, CSS, JS or other raw code, in pages and posts.<\/p>","description_plain":"Substitute one or more specific strings with HTML, CSS, JS or other raw code, in pages and posts.","icon":"retweet","author":{"name":"Roberto Travagliante","email":"roberto@travagliante.com"},"homepage":"https:\/\/www.travagliante.com","keywords":"grav, plugin, html, string, replace, css, js, substitution","bugs":"https:\/\/www.travagliante.com\/issues","tag_name":"grav","date":"2024-02-24T11:04:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/string-replacer\/1.0.0","repository":"https:\/\/github.com\/robertotravagliante\/string-replacer","slug":"string-replacer","install_path":"user\/plugins\/string-replacer","content_sha256":"85d32db969b89ef4a9fe89d27144dc6b001c18c92ba027734c276cd8b315219f","changelog":{"1.0.0":{"date":" 02\/19\/2024","content":"1. [](#bugfix)\n    * Minor bugfix\n"},"0.0.8":{"date":" 02\/19\/2024","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"image-optimize":{"name":"Image Optimize","version":"3.0.3","description":"Powerful image optimization plugin capable of using reSmush.it, Tinify, and Kraken.io APIs.","description_html":"<p>Powerful image optimization plugin capable of using reSmush.it, Tinify, and Kraken.io APIs.<\/p>","description_plain":"Powerful image optimization plugin capable of using reSmush.it, Tinify, and Kraken.io APIs.","icon":"compress","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/image-optimize","docs":"https:\/\/getgrav.org\/premium\/image-optimize\/docs","demo":"http:\/\/demo.yoursite.com","keywords":"tinify, resmushit, kraken, image optimize, image compress","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/image-optimize","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"3.0.3","date":"2026-06-19T15:32:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/image-optimize\/3.0.3","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-image-optimize","premium":{"permalink":"grav-premium-image-optimize","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-image-optimize","button":"Buy Now","filename":"grav-plugin-image-optimize"},"slug":"image-optimize","install_path":"user\/plugins\/image-optimize","content_sha256":"37ca5d0db898c0de94f6e05247829c1f0101975658385e2fe52e25439840ef60","changelog":{"3.0.3":{"date":"06\/19\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.4 deprecation warnings from implicitly nullable function parameters.\n"},"3.0.2":{"date":"06\/02\/2026","content":"1. [](#bugfix)\n    * Fixed a php function being used in Twig, now replaced by twig function\/filter\n"},"3.0.1":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n   * The Image Optimize sidebar entry is now hidden from users who don't have the Image Optimize permission. Requires grav-plugin-api \u2265 1.0.0-rc.11.\n"},"3.0.0":{"date":"04\/23\/2026","content":"1. [](#new)\n    * Added Grav 2.0, API, and Admin 2.0 support\n"},"2.3.1":{"date":"11\/05\/2025","content":"1. [](#bugfix)\n    * base_url fixes\n    * pagination fixes\n"},"2.3.0":{"date":"10\/14\/2025","content":"1. [](#improved)\n    * Improved error handling to show error in tooltip over thumnail\n    * In Rasterfox CLI provider, don't replace image if optimized version is larger\n    * Persist sort order in local storage\n    * Allow live-changing of quality chooser without reloading the page\n    * Set default quality to 85%\n"},"2.2.1":{"date":"10\/10\/2025","content":"1. [](#improved)\n  * HTMX-powered pagination to improve performance\n"},"2.2.0":{"date":"10\/10\/2025","content":"1. [](#improved)\n  * Improved error responses in the XHR request handling\n"},"2.1.2":{"date":"09\/16\/2025","content":"1. [](#new)\n  * Added pagination for improved performance with many images\n  * Converted JS from JQuery based to vanilla JS\n1. [](#bugfix)\n  * Fixed listing states when paginating\n"},"2.1.1":{"date":"09\/11\/2025","content":"1. [](#bugfix)\n  * Fixed an issue with initializing Pages in CLI broke bulk updates\n  * Fixed the revert button right after you have optimized\n"},"2.1.0":{"date":"09\/11\/2025","content":"1. [](#new)\n   * Listing filters! Filter by path or filename and sort by recent or default.\n1. [](#bugfix)\n   * Fixed pagination status so it shows your position properly\n"},"2.0.0":{"date":"09\/10\/2025","content":"1. [](#new)\n  * Async Batch Optimize: background workers via Symfony Process; Admin polls and updates rows live\n  * Concurrency: new `batch_workers` option with safe queue\/status handling under multiple workers\n  * UX: spinner on Bulk Optimize; centered pagination with page numbers; per\u2011page selector (10\/15\/20\/25\/50); `io-pagination` class\n  * Dev: npm\u2011based Sass workflow (`npm run build|watch`) replacing `watch.sh`\n  * New provider: **Rasterfox (local CLI)** service (auto\u2011detected or configured via \u201cRasterfox Binary Path\u201d). Uses local oxipng\/mozjpeg\/libwebp for SUPPER FAST, LOCAL optimization. Works with single and bulk flows and supports Restore.\n1. [](#bugfix)\n  * Correct site root when spawning workers; ensure worker stays detached\n  * Accurate batch progress with multiple workers; do not clear outbox during polling\n  * Batch result rows render with the same green success styling as single\u2011image optimize\n"},"1.1.0":{"date":"05\/20\/2024","content":"1. [](#improved)\n  * Refactored and optimized the optimization storage to better support bulk operations\n  * Better handle the use case where you can't optimized any further\n  * Better handling of thumbnails on images larger than 2MB. Now using `placehold.co` to show a dummy file.\n  * Handle issues with Tinify errors a bit better\n"},"1.0.3":{"date":"02\/13\/2024","content":"1. [](#improved)\n  * Improved blueprint links\n"},"1.0.2":{"date":" 02\/13\/2024","content":"1. [](#improved)\n  * Improved reliability of reSmush.it\n"},"1.0.1":{"date":"02\/13\/2024","content":"1. [](#bugfix)\n  * Fixed issue with reSmush.it filesize check\n"},"1.0.0":{"date":"02\/13\/2024","content":"1. [](#new)\n   * Image Optimize plugin released"}}},"tecart-session-login":{"name":"TecArt Session Login","version":"1.0.2","description":"Login as TecArt User via TecArt Session API Authentication","description_html":"<p>Login as TecArt User via TecArt Session API Authentication<\/p>","description_plain":"Login as TecArt User via TecArt Session API Authentication","icon":"sign-in","author":{"name":"TecArt GmbH - https:\/\/www.tecart.de | Christiana Holland-Jobb","email":"christiana.holland-jobb@tecart.de"},"dependencies":[{"name":"grav","version":">=1.7.23"},{"name":"login","version":">=3.5.6"},{"name":"admin","version":">=1.10.23"}],"homepage":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-session-login","keywords":"grav, plugin, login, tecart, api, session, curl, authentication","license":"MIT","tag_name":"v1.0.2","date":"2024-01-24T10:37:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tecart-session-login\/1.0.2","repository":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-session-login","slug":"tecart-session-login","install_path":"user\/plugins\/tecart-session-login","content_sha256":"482a83594cefbbb2255a8aba547f45ffc82342875156ee1fcad8fc7174db1262","changelog":{"1.0.2":{"date":" 01\/24\/2024","content":"1. [](#fix)\n   * Remove duplicated code lines\n"},"1.0.1":{"date":" 01\/23\/2024","content":"1. [](#feature)\n   * Add user group access\n"},"1.0.0":{"date":" 01\/18\/2024","content":"1. [](#new)\n    * ChangeLog started..."}}},"tecart-jira-login":{"name":"TecArt Jira Login","version":"0.1.3","description":"Login as Jira User via Jira basic authentication","description_html":"<p>Login as Jira User via Jira basic authentication<\/p>","description_plain":"Login as Jira User via Jira basic authentication","icon":"sign-in","author":{"name":"TecArt GmbH - https:\/\/www.tecart.de | Christiana Holland-Jobb","email":"christiana.holland-jobb@tecart.de"},"dependencies":[{"name":"grav","version":">=1.7.7"},{"name":"login","version":">=3.4.1"},{"name":"admin","version":">=1.10.6"}],"homepage":"https:\/\/www.tecart.de","keywords":"grav, plugin, login, jira, atlassian, curl, authentication","license":"MIT","tag_name":"v0.1.3","date":"2024-01-23T14:39:11Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tecart-jira-login\/0.1.3","repository":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-jira-login","slug":"tecart-jira-login","install_path":"user\/plugins\/tecart-jira-login","content_sha256":"c024702fec43dcd2f8cf4a26f3f98a8aaba323b81dec09b2a1b6c291b5d57552","changelog":{"0.1.3":{"date":" 01\/23\/2024","content":"1. [](#feature)\n   * add author info\n"},"0.1.2":{"date":" 01\/22\/2024","content":"1. [](#new)\n   * Add first release\n\n"},"0.1.1":{"date":" 07\/22\/2021","content":"1. [](#feature)\n    * Overwrite forgot password page with info text instead of forgot password form\n    * add language.yaml\n"},"0.1.0":{"date":" 04\/13\/2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"allinoneaccessibility":{"name":"All in One Accessibility","version":"1.0.24","description":"Quick Web Accessibility Implementation with All In One Accessibility!","description_html":"<p>Quick Web Accessibility Implementation with All In One Accessibility!<\/p>","description_plain":"Quick Web Accessibility Implementation with All In One Accessibility!","icon":"universal-access","author":{"name":"Skynet Technologies USA LLC","url":"https:\/\/www.skynettechnologies.com\/","email":"hello@skynettechnologies.com"},"dependencies":[{"name":"grav","version":">=1.7.48"},{"name":"admin","version":">=1.10.48"}],"docs":"https:\/\/www.dropbox.com\/s\/de41n4xm9zjwxix\/All-in-One-Accessibility-PRO-App-Usage-and-Functionality.pdf?dl=0","keywords":"WCAG, ATAG, ADA, Section 508, accessibility compliance, disability friendly site, accessibility rules, web accessibility, compliance,WCAG 2.1, web accessibility widget,accessibility widget,accessibility plugin,web accessibility plugin,digital accessibility plugin,digital accessibility widget,web accessibility compliance,accessibe alternative,userways alternative,accessible website,Australian DDA,European EAA EN 301 549,UK Equality Act,Israeli Standard 5568","license":"MIT","tag_name":"1.0.24","date":"2026-04-14T05:01:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/allinoneaccessibility\/1.0.24","repository":"https:\/\/github.com\/skynettechnologies\/grav-allinoneaccessibility","homepage":"https:\/\/github.com\/skynettechnologies\/grav-allinoneaccessibility","slug":"allinoneaccessibility","install_path":"user\/plugins\/allinoneaccessibility","content_sha256":"b01768933b4e87b0c6469db00d92f71397640befdc998c984c77771d9f42497d","changelog":[]},"staticmath":{"name":"StaticMath","version":"2.0.1","description":"Compiles LaTeX to static and accessible MathML using an [external rendering server](http:\/\/git.sr.ht\/~fd\/staticmath-server).","description_html":"<p>Compiles LaTeX to static and accessible MathML using an <a href=\"http:\/\/git.sr.ht\/~fd\/staticmath-server\">external rendering server<\/a>.<\/p>","description_plain":"Compiles LaTeX to static and accessible MathML using an external rendering server.","icon":"square-root-alt","author":{"name":"Ersei Saggi","email":"contact@ersei.net"},"dependencies":[{"name":"grav","version":">=1.6.0"},{"name":"shortcode-core","version":">=4.2.2"}],"homepage":"https:\/\/sr.ht\/~fd\/grav-plugin-staticmath","docs":"https:\/\/git.sr.ht\/~fd\/grav-plugin-staticmath\/tree\/main\/item\/README.md","demo":"https:\/\/ersei.net\/en\/blog\/rsa-basics","keywords":"math, latex","bugs":"https:\/\/todo.sr.ht\/~fd\/grav-plugin-staticmath","license":"MIT, LPPL-1.3c","tag_name":"2.0.1","date":"2025-02-21T18:01:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/staticmath\/2.0.1","repository":"https:\/\/github.com\/9p4\/grav-plugin-staticmath","slug":"staticmath","install_path":"user\/plugins\/staticmath","content_sha256":"8277de1fa2181be5c4ae8383e11be1e307ce445ac53bcec6b801e1bc91a19d51","changelog":{"2.0.1":{"date":"21-02-2025","content":"1. [](#new)\n    * Support \"$math$\" syntax for math\n1. [](#bugfix)\n    * Always enable plugin to fix occasional non-renders when using a cache.\n1. [](#improved)\n    * Clean up documentation, blueprints, and language strings.\n    * Clarify license with bundled font files\n    * Improve plugin metadata (icon, tags)\n"},"2.0.0":{"date":"27-10-2024","content":"1. [](#improved)\n    * Switch from KaTeX to Temml. MathML is the only valid output mode. This may break math rendering in ancient browsers. This fixes math rendering in RSS feeds, however.\n"},"1.0.3":{"date":"10-02-2024","content":"1. [](#improved)\n    * Update KaTeX CSS to 0.16.9\n"},"1.0.2":{"date":"07-10-2023","content":"1. [](#bugfix)\n    * Fix admin page crashing, wrong langauge, and configuration UI\n"},"1.0.1":{"date":"02-10-2023","content":"1. [](#bugfix)\n\t* Fix changelog\n"},"1.0.0":{"date":"14-03-2023","content":"1. [](#bugfix)\n\t* Fix versioning \/ demo metadata\n2. [](#improved)\n\t* Documentation\n"},"0.1.2":{"date":"13-03-2023","content":"1. [](#bugfix)\n\t* Only activate plugin on page when directed to do so with \"active: true\"\n"},"0.1.1":{"date":"13-03-2023","content":"1. [](#new)\n\t* Added block and inline rendering methods (requires server upgrade)\n2. [](#bugfix)\n\t* Fix LaTeX occasionally being not rendered after some time\n"},"0.1.0":{"date":"12-03-2023","content":"1. [](#new)\n    * Initial Release"}}},"chrip":{"name":"Chirp","version":"0.1.0","description":"Embed with shortcode and customize Tweets","description_html":"<p>Embed with shortcode and customize Tweets<\/p>","description_plain":"Embed with shortcode and customize Tweets","icon":"twitter","author":{"name":"Himmlisch Web","email":"web@himmlisch.com.mx"},"dependencies":[{"name":"grav","version":">=1.6.4"},{"name":"shortcode-core","version":">=5.0.0"}],"homepage":"https:\/\/github.com\/Himmlisch-Studios\/grav-plugin-chirp","docs":"https:\/\/github.com\/Himmlisch-Studios\/grav-plugin-chirp\/blob\/master\/README.md","keywords":"twitter, tweet, shortcode, social, media, customize, twig, template","bugs":"https:\/\/github.com\/Himmlisch-Studios\/grav-plugin-chirp\/issues","license":"MIT","tag_name":"0.1.0","date":"2023-05-19T21:41:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/chrip\/0.1.0","repository":"https:\/\/github.com\/Himmlisch-Studios\/grav-plugin-chirp","slug":"chrip","install_path":"user\/plugins\/chrip","content_sha256":"3aef9706e237b5861d88da9a2d8c2ad5279323ed6cff370b1139fe92d4aa5ac8","changelog":{"0.1.0":{"date":" 05\/19\/2023","content":"1. [](#new)\n    * ChangeLog started..."}}},"tecart-media":{"name":"TecArt Media","version":"0.1.1","description":"Add a media folder to grav admin panel to manage images, videos etc. The plugin is created by [TecArt GmbH](https:\/\/www.tecart.de) and based on [TinyFileManager](https:\/\/github.com\/prasathmani\/tinyfilemanager\/wiki).","description_html":"<p>Add a media folder to grav admin panel to manage images, videos etc. The plugin is created by <a href=\"https:\/\/www.tecart.de\">TecArt GmbH<\/a> and based on <a href=\"https:\/\/github.com\/prasathmani\/tinyfilemanager\/wiki\">TinyFileManager<\/a>.<\/p>","description_plain":"Add a media folder to grav admin panel to manage images, videos etc. The plugin is created by TecArt GmbH and based on TinyFileManager.","icon":"globe","author":{"name":"Christiana Holland-Jobb | TecArt GmbH","email":"technik@tecart.de"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"admin","version":">=1.9.16"}],"homepage":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-media","docs":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-media\/blob\/develop\/README.md","keywords":"grav, plugin, media, library, images, folder","bugs":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-media\/issues","license":"MIT","tag_name":"v0.1.1","date":"2023-09-08T13:10:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tecart-media\/0.1.1","repository":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-media","slug":"tecart-media","install_path":"user\/plugins\/tecart-media","content_sha256":"6e40a8dabc968b70101d4e5ee7697f05ca126594039955dc78d82cb8d0e5ee03","changelog":{"0.1.1":{"date":" 08\/09\/2023","content":"1. [](#new)\n   * Add required files for grav release process\n   "},"0.1.0":{"date":" 07\/19\/2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"nreach-livechat":{"name":"nReach Livechat","version":"1.0.1","description":"Simple plugin to install the nReach Livechat widget onto any Grav site","description_html":"<p>Simple plugin to install the nReach Livechat widget onto any Grav site<\/p>","description_plain":"Simple plugin to install the nReach Livechat widget onto any Grav site","icon":"comment","author":{"name":"nReach","email":"reach@nreach.tech"},"homepage":"https:\/\/github.com\/nishthabiz\/livechat-grav-plugin","keywords":"nreach, livechat","license":"MIT","tag_name":"v1.0.2","date":"2025-02-07T13:16:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/nreach-livechat\/1.0.1","repository":"https:\/\/github.com\/nishthabiz\/livechat-grav-plugin","slug":"nreach-livechat","install_path":"user\/plugins\/nreach-livechat","content_sha256":"e2edd209a446d5639b6f1cbdd9d0de57f49f200a1ff8948e573f49cc9aeba88a","changelog":{".1.0.2":{"date":"06-02-2025","content":"1. [](#improved)\n    - Update URL for widget script\n"},".1.0.1":{"date":"13-09-2023","content":"1. [](#bugfix)\n    - Readme Updates\n"},".1.0.0":{"date":"13-09-2023","content":"1. [](#new)\n    - Inital Release"}},"dependencies":[]},"custom-translate-widget":{"name":"Custom Translate Widget","version":"0.2.0","description":"Adds a floating block with a list of languages to translate your site into the visitor&#39;s language.","description_html":"<p>Adds a floating block with a list of languages to translate your site into the visitor&#39;s language.<\/p>","description_plain":"Adds a floating block with a list of languages to translate your site into the visitor&#39;s language.","icon":"language","author":{"name":"Bugo","email":"bugo@dragomano.ru"},"dependencies":[{"name":"grav","version":">=1.7.40"}],"homepage":"https:\/\/github.com\/dragomano\/grav-plugin-custom-translate-widget","keywords":"grav, grav-plugin, grav-translate-widget, custom-translate-widget, translate, yandex-translate","bugs":"https:\/\/github.com\/dragomano\/grav-plugin-custom-translate-widget\/issues","license":"MIT","tag_name":"0.2.0","date":"2023-04-14T05:55:41Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/custom-translate-widget\/0.2.0","repository":"https:\/\/github.com\/dragomano\/grav-plugin-custom-translate-widget","slug":"custom-translate-widget","install_path":"user\/plugins\/custom-translate-widget","content_sha256":"87c8e9709ff8d4e64083ea1af8877234b8f79467945e719771629f4e5c58539c","changelog":{"0.2.0":{"date":"04\/14\/2023","content":"1. [](#new)\n    * Auto translate function\n"},"0.1.1":{"date":"04\/12\/2023","content":"1. [](#improved)\n    * Minor fixes\n"},"0.1.0":{"date":"04\/11\/2023","content":"1. [](#new)\n    * Initial release"}}},"hotjar":{"name":"Hotjar","version":"1.0.1","description":"Hotjar integration","description_html":"<p>Hotjar integration<\/p>","description_plain":"Hotjar integration","icon":"code","author":{"name":"Greenrivers","url":"https:\/\/greenrivers.pl\/en\/","email":"kontakt@greenrivers.pl"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/greenrivers\/grav-plugin-hotjar","docs":"https:\/\/github.com\/greenrivers\/grav-plugin-hotjar\/blob\/develop\/README.md","keywords":"hotjar, integration, heatmaps, plugin, admin","bugs":"https:\/\/github.com\/greenrivers\/grav-plugin-hotjar\/issues","license":"MIT","tag_name":"1.0.1","date":"2023-08-18T09:02:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/hotjar\/1.0.1","repository":"https:\/\/github.com\/greenrivers\/grav-plugin-hotjar","slug":"hotjar","install_path":"user\/plugins\/hotjar","content_sha256":"c4464bbf3d8800f8415a2500cdf8ded3ef60d9b1cbc66f9723ec836f5f58f96a","changelog":{"1.0.1":{"date":" 08\/18\/2023","content":"1. [](#new)\n    * Added German translations\n"},"1.0.0":{"date":" 03\/09\/2023","content":"1. [](#new)\n    * ChangeLog started..."}}},"cnb-exchange-rates":{"name":"CNB Exchange Rates","version":"1.0.0","description":"The CNB Exchange Rates plugin obtains information about current exchange rates from source files published by the Czech National Bank (CNB) and subsequently provides their outputs.","description_html":"<p>The CNB Exchange Rates plugin obtains information about current exchange rates from source files published by the Czech National Bank (CNB) and subsequently provides their outputs.<\/p>","description_plain":"The CNB Exchange Rates plugin obtains information about current exchange rates from source files published by the Czech National Bank (CNB) and subsequently provides their outputs.","icon":"money","author":{"name":"V\u00edt Petira","url":"https:\/\/www.grav.cz","email":"petira@grav.cz"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/petira\/grav-plugin-cnb-exchange-rates","docs":"https:\/\/github.com\/petira\/grav-plugin-cnb-exchange-rates\/blob\/develop\/README.md","demo":"https:\/\/www.grav.cz\/demo\/cnb-exchange-rates","keywords":"grav, plugin, cnb, exchange, rates, currency, money, czk, petira","bugs":"https:\/\/github.com\/petira\/grav-plugin-cnb-exchange-rates\/issues","license":"MIT","tag_name":"1.0.0","date":"2023-02-27T07:42:18Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cnb-exchange-rates\/1.0.0","repository":"https:\/\/github.com\/petira\/grav-plugin-cnb-exchange-rates","slug":"cnb-exchange-rates","install_path":"user\/plugins\/cnb-exchange-rates","content_sha256":"1fd72a91d75d69222c5dfeec84c81b24c24e51617cc6e86db7f343b541151b89","changelog":{"1.0.0":{"date":" 02\/27\/2023","content":"1. [](#new)\n    * Initial Release"}}},"timestamp":{"name":"Timestamp","version":"1.0.0","description":"The Timestamp Plugin overrides the values of all listed `date` type variables from a recognizable `string` format to a value in `timestamp` format. Valid values are any string date values that `strtotime()` supports. Optionally, if a variable is not specified on a page, it can be created and the selected value returned to it.","description_html":"<p>The Timestamp Plugin overrides the values of all listed <code>date<\/code> type variables from a recognizable <code>string<\/code> format to a value in <code>timestamp<\/code> format. Valid values are any string date values that <code>strtotime()<\/code> supports. Optionally, if a variable is not specified on a page, it can be created and the selected value returned to it.<\/p>","description_plain":"The Timestamp Plugin overrides the values of all listed date type variables from a recognizable string format to a value in timestamp format. Valid values are any string date values that strtotime() supports. Optionally, if a variable is not specified on a page, it can be created and the selected value returned to it.","icon":"clock-o","author":{"name":"V\u00edt Petira","url":"https:\/\/www.grav.cz","email":"petira@grav.cz"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/petira\/grav-plugin-timestamp","docs":"https:\/\/github.com\/petira\/grav-plugin-timestamp\/blob\/develop\/README.md","demo":"https:\/\/www.grav.cz\/demo\/timestamp","keywords":"grav, plugin, timestamp, date, time, epoch, unix, format, frontmatter, petira","bugs":"https:\/\/github.com\/petira\/grav-plugin-timestamp\/issues","license":"MIT","tag_name":"1.0.0","date":"2023-01-23T07:36:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/timestamp\/1.0.0","repository":"https:\/\/github.com\/petira\/grav-plugin-timestamp","slug":"timestamp","install_path":"user\/plugins\/timestamp","content_sha256":"86e5c72801e7ac78650a0107aad4b5415ec0e5026049ba5c5a1789efdceec899","changelog":{"1.0.0":{"date":" 01\/23\/2023","content":"1. [](#new)\n    * Initial Release"}}},"ip-blacklist":{"name":"IP Blacklist","version":"1.0.7","description":"Detects abusive requests and blocks abusive IPs. Interfaces with AbuseIPDB for blacklisting and reporting.","description_html":"<p>Detects abusive requests and blocks abusive IPs. Interfaces with AbuseIPDB for blacklisting and reporting.<\/p>","description_plain":"Detects abusive requests and blocks abusive IPs. Interfaces with AbuseIPDB for blacklisting and reporting.","icon":"ban","author":{"name":"Ari Cooper-Davis","email":"grav@cooper-davis.net"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/aricooperdavis\/grav-plugin-ip-blacklist","docs":"https:\/\/github.com\/aricooperdavis\/grav-plugin-ip-blacklist\/blob\/develop\/README.md","keywords":"grav, plugin, security, blacklist, ip, abuseipdb","bugs":"https:\/\/github.com\/aricooperdavis\/grav-plugin-ip-blacklist\/issues","license":"MIT","tag_name":"1.0.7","date":"2023-02-06T10:01:32Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/ip-blacklist\/1.0.7","repository":"https:\/\/github.com\/aricooperdavis\/grav-plugin-ip-blacklist","slug":"ip-blacklist","install_path":"user\/plugins\/ip-blacklist","content_sha256":"c32e64a7e378e275f4758e3d17b0a7a25081c335e38a4ffdffaffb8ce203ad6d","changelog":{"1.0.7":{"date":"06-02-2023","content":"1. [](#new)\n    * Added `logging` config option to log filtering\/blacklisting actions to help troubleshoot custom filters.\n"},"1.0.6":{"date":"31-01-2023","content":"1. [](#improved)\n\t* Added more filter patterns for common exploits\n"},"1.0.5":{"date":"25-01-2023","content":"1. [](#new)\n    * Added notification in admin interface when plugin has been updated but filters have not.\n"},"1.0.4":{"date":"23-01-2023","content":"1. [](#improved)\n    * Changed format of `filters` config to string to improve admin interface useability.\n"},"1.0.3":{"date":" 20-01-2023","content":"1. [](#bugfix)\n    * Fixed bug where URI being passed to filters did not include file extension in some cases.\n"},"1.0.2":{"date":" 20-01-2023","content":"1. [](#new)\n    * Added auto-clean job to limit local blacklist size.\n2. [](#improved)\n    * Added more filter patterns for common exploits.\n"},"1.0.1":{"date":" 19-01-2023","content":"1. [](#new)\n    * Added stats panel to admin interface.\n2. [](#improved)\n    * Use European date format in changelog.\n"},"1.0.0":{"date":" 12-01-2023","content":"1. [](#new)\n    * ChangeLog started..."}}},"login-oauth2-apple":{"name":"Login OAuth2 Apple","version":"1.0.4","description":"OAuth2 Provider for &#34;Sign in with Apple&#34;","description_html":"<p>OAuth2 Provider for &#34;Sign in with Apple&#34;<\/p>","description_plain":"OAuth2 Provider for &#34;Sign in with Apple&#34;","icon":"apple","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"login-oauth2","version":">=2.2.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-apple","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-apple\/blob\/develop\/README.md","keywords":"grav, plugin, apple, login","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-apple\/issues","license":"MIT","tag_name":"1.0.4","date":"2026-05-05T14:11:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/login-oauth2-apple\/1.0.4","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-apple","slug":"login-oauth2-apple","install_path":"user\/plugins\/login-oauth2-apple","content_sha256":"14f5635937e316ea2e22af02fc2bdf7b228f322e5b87b7eae17579db8b8ddea5","changelog":{"1.0.4":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.3":{"date":"02\/02\/2023","content":"1. [](#bugfix)\n   * Revert to older style session cookie fix for reliability\n"},"1.0.2":{"date":"01\/02\/2023","content":"1. [](#bugfix)\n   * Set `composer.json` to use `^7.3.6 || ^8.0` + downgraded libs for PHP compatibility\n"},"1.0.1":{"date":"01\/01\/2023","content":"1. [](#bugfix)\n   * Fix for errant error message in Admin about oauth2 plugin being missing\n"},"1.0.0":{"date":" 12\/28\/2022","content":"1. [](#new)\n    * Initial Release"}}},"nyk-authors":{"name":"Nyk Authors","version":"1.0.4","description":"A plugin to display author names in Grav-powered blogs","description_html":"<p>A plugin to display author names in Grav-powered blogs<\/p>","description_plain":"A plugin to display author names in Grav-powered blogs","icon":"user-circle","author":{"name":"Jos\u00e9 Alves Amaro","url":"https:\/\/github.com\/Nykold","email":"jose.alves.amaro@gmail.com"},"dependencies":[{"name":"grav","version":">=1.6.3"},{"name":"admin","version":">=1.9.1"},{"name":"form","version":">=3.0.0"},{"name":"login","version":">=3.0.0"},{"name":"email","version":">=3.0.0"}],"homepage":"https:\/\/github.com\/Nykold\/nyk-authors","docs":"https:\/\/github.com\/Nykold\/nyk-authors\/blob\/main\/README.md","keywords":"grav, plugin, author, frontmatter, auto, automatic, taxonomy, blog, blogging","bugs":"https:\/\/github.com\/Nykold\/nyk-authors\/issues","license":"MIT","tag_name":"v1.0.4","date":"2022-12-15T11:26:07Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/nyk-authors\/1.0.4","repository":"https:\/\/github.com\/Nykold\/nyk-authors","slug":"nyk-authors","install_path":"user\/plugins\/nyk-authors","content_sha256":"48b9f0566cf46929d2ee2433ce49b046ff5c295aff5ab9cd7ceeea0b7e147205","changelog":{"1.0.4":{"date":"15\/12\/2022","content":"1. [](#new)\n    * Added spanish translation of plugin settings\n    "},"1.0.3":{"date":"13\/12\/2022","content":"1. [](#new)\n    * Added german translation of plugin settings\n    "},"1.0.2":{"date":"09\/12\/2022","content":"1. [](#new)\n    * Added french translation of plugin settings\n    "},"1.0.1":{"date":"06\/12\/2022","content":"1. [](#improved)\n    * Removed unused classes to reduce clutter in code\n2. [](#bugfix)\n    * Fixed bug preventing user from saving pages with an empty taxonomy\n    "},"1.0.0":{"date":"06\/12\/2022","content":"1. [](#new)\n    * First production release\n"},"0.8.0":{"date":"02\/12\/2022","content":"1. [](#new)\n    * Added setting to choose the taxonomy type used to add authors\n    "},"0.7.0":{"date":"02\/12\/2022","content":"1. [](#new)\n    * Added whitelist option to only allow chosen authors to be displayed\n    * Added blacklist option to prevent certain authors from being displayed\n    "},"0.6.0":{"date":"30\/11\/2022","content":"1. [](#new)\n    * Added option to include authors without an user account or to overwrite an author's display name\n    "},"0.5.0":{"date":"30\/11\/2022","content":"1. [](#new)\n    * Added possibility of customizing HTML attributes of the `<a>` tag for links to author pages\n"},"0.4.0":{"date":"29\/11\/2022","content":"1. [](#improved)\n    * Added logic to check if an author's page exists before adding a link to that page\n    * Added a tooltip in settings to help better understand how links to author pages work\n    "},"0.3.1":{"date":"08\/07\/2022","content":"1. [](#improved)\n    * Added a specific option in config to separate the final author just with a comma (previously the fallback if no config was selected)\n2. [](#bugfix)\n    * Fixed possible issues that could occur if no path for the author pages was chosen in config (added fallback to \/username)\n"},"0.3.0":{"date":"07\/07\/2022","content":"1. [](#new)\n    * Added a toggle to turn off adding links to each author's page\n    * Added the option to customize the folder where the author pages are located\n"},"0.2.0":{"date":"04\/07\/2022","content":"1. [](#new)\n    * Added language options for the conjunction before the final author in a string with multiple authors\n    * Added the option to write a custom conjunction\n    * Added a toggle to turn off the feature that automatically adds the current user as an author of a newly created page\n2. [](#improved)\n    * Made a better config page for the plugin to accomodate the new features\n"},"0.1.1":{"date":"30\/06\/2022","content":"1. [](#improved)\n    * Complete plugin rewrite, making it fully functional and fulfilling its original purpose\n"},"0.1.0":{"date":" 21\/04\/2022","content":"1. [](#new)\n    * Initial release"}}},"sender":{"name":"Sender","version":"1.0.0","description":"Form actions for the Sender mailing service","description_html":"<p>Form actions for the Sender mailing service<\/p>","description_plain":"Form actions for the Sender mailing service","icon":"arrow-right","author":{"name":"Ari Cooper-Davis","email":"grav@cooper-davis.net"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/aricooperdavis\/grav-plugin-sender","docs":"https:\/\/github.com\/aricooperdavis\/grav-plugin-sender\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/aricooperdavis\/grav-plugin-sender\/issues","license":"MIT","tag_name":"1.0.0","date":"2022-11-22T13:30:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/sender\/1.0.0","repository":"https:\/\/github.com\/aricooperdavis\/grav-plugin-sender","slug":"sender","install_path":"user\/plugins\/sender","content_sha256":"3032bf5959c67da44f1d21232abd818d1901c63425bc4b9d9e916a1f534fadc0","changelog":{"1.0.0":{"date":" 21-11-2022","content":"1. [](#new)\n    * Published plugin"}}},"zmarkdown-engine":{"name":"ZMarkdown Engine","version":"1.2.0","description":"Allows to use the ZMarkdown engine to parse the markdown.\n**Warning**: does not includes [zmarkdown](https:\/\/github.com\/zestedesavoir\/zmarkdown). It must be installed separately.\n","description_html":"<p>Allows to use the ZMarkdown engine to parse the markdown.\n<strong>Warning<\/strong>: does not includes <a href=\"https:\/\/github.com\/zestedesavoir\/zmarkdown\">zmarkdown<\/a>. It must be installed separately.<\/p>","description_plain":"Allows to use the ZMarkdown engine to parse the markdown.\nWarning: does not includes zmarkdown. It must be installed separately.","icon":"file-text-o","author":{"name":"Amaury Carrade","email":"amaury@carrade.eu"},"homepage":"https:\/\/github.com\/AmauryCarrade\/grav-plugin-zmarkdown-engine","docs":"https:\/\/github.com\/AmauryCarrade\/grav-plugin-zmarkdown-engine\/blob\/master\/README.md","demo":"https:\/\/amaury.carrade.eu\/grav-zmarkdown-engine-demo","keywords":"grav, plugin, zmarkdown, zmd","bugs":"https:\/\/github.com\/AmauryCarrade\/grav-plugin-zmarkdown-engine\/issues","license":"MIT","tag_name":"v1.2.0","date":"2022-11-21T14:09:35Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/zmarkdown-engine\/1.2.0","repository":"https:\/\/github.com\/AmauryCarrade\/grav-plugin-zmarkdown-engine","slug":"zmarkdown-engine","install_path":"user\/plugins\/zmarkdown-engine","content_sha256":"1b936e605145a82f8eaa6e4cd2b10cd0a1f4fa7c569c7dbafab5034c5892b6d5","changelog":{"0.1.0":{"date":" 18-06-2018","content":"1. [](#new)\n    * First version: fully functional, but the engine cannot be disabled if the plugin is enabled.\n"},"1.0.0":{"date":"19-06-2018","content":"1. [](#new)\n    * The ZMarkdown engine can now be enabled per-page or globally (either through frontmatter\/`system.yaml`, or via the admin plugin), as a `process` option has been added for it alongside `markdown` and `twig`.\n"},"1.0.1":{"date":"19-06-2018","content":"1. [](#bugfix)\n    * Fixed error if the page's content is empty.\n"},"1.1.0":{"date":"06-07-2019","content":"1. [](#new)\n    * Links are now processed correctly according to [Grav rules](https:\/\/learn.getgrav.org\/16\/content\/linking).\n\n2. [](#bugfix)\n    * Fixed encoding errors in images ALTs due to Grav's `Excerpts::getExcerptFromHtml` not handling encoding very well.\n"},"1.2.0":{"date":"21-11-2022","content":"1. [](#new)\n   * Now compatible with Grav 1.7+.\n\n2. [](#bugfix)\n   * Fixed HTML inside links being stripped by links post-processing, by moving back to Grav's `Excerpts::getExcerptFromHtml`, now fixed."}},"dependencies":[]},"email-amazon":{"name":"Email Amazon","version":"1.0.3","description":"Amazon SES integration for new Email plugin","description_html":"<p>Amazon SES integration for new Email plugin<\/p>","description_plain":"Amazon SES integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-amazon","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-amazon\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-amazon\/issues","license":"MIT","tag_name":"1.0.3","date":"2026-05-05T14:06:19Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-amazon\/1.0.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-amazon","slug":"email-amazon","install_path":"user\/plugins\/email-amazon","content_sha256":"853ce133549b5fe29ed1813cb7053557f009840857f1730c9615d50ad3eefe16","changelog":{"1.0.3":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.2":{"date":"03\/06\/2026","content":"1. [](#bugfix)\n   * Fixed Symfony contracts and PSR interface conflicts with Grav 1.8\n1. [](#improved)\n   * Updated vendor libs\n"},"1.0.1":{"date":"03\/06\/2026","content":"1. [](#new)\n   * Added support for configurable AWS region for SES\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n"},"1.0.0-rc.3":{"date":" 10\/12\/2022","content":"1. [](#bugfix)\n   * default to empty string in config values are null\n"},"1.0.0-rc.2":{"date":" 10\/05\/2022","content":"1. [](#bugfix)\n   * Set `email` plugin dependency to `4.0.0-rc.1`\n"},"1.0.0-rc.1":{"date":" 10\/05\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"email-gmail":{"name":"Email Gmail","version":"1.1.0","description":"Gmail integration for new Email plugin","description_html":"<p>Gmail integration for new Email plugin<\/p>","description_plain":"Gmail integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-gmail","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-gmail\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-gmail\/issues","license":"MIT","tag_name":"1.1.0","date":"2026-05-05T14:06:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-gmail\/1.1.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-gmail","slug":"email-gmail","install_path":"user\/plugins\/email-gmail","content_sha256":"d9883bb473cbdc57d7ab69ae39fbc255c5de725e3cb1f5f1ada58163ff81d376","changelog":{"1.1.0":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Folded in pending working-tree changes (vendor refresh \/ minor PHP 8 modernization)\n"},"1.0.1":{"date":"05\/09\/2023","content":"1. [](#bugfix)\n   * fix null config bug\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n"},"0.1.0":{"date":" 10\/01\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"email-mailersend":{"name":"Email Mailersend","version":"1.0.1","description":"Mailersend integration for new Email plugin","description_html":"<p>Mailersend integration for new Email plugin<\/p>","description_plain":"Mailersend integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailersend","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailersend\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailersend\/issues","license":"MIT","tag_name":"1.0.1","date":"2026-05-05T14:06:31Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-mailersend\/1.0.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailersend","slug":"email-mailersend","install_path":"user\/plugins\/email-mailersend","content_sha256":"9b88293a020e12a25d324b0b8a192382c3e59ef61a96af44434e810086a4618d","changelog":{"1.0.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n"},"1.0.0-rc.3":{"date":" 10\/12\/2022","content":"1. [](#bugfix)\n   * default to empty string in config values are null\n"},"1.0.0-rc.2":{"date":" 10\/05\/2022","content":"1. [](#bugfix)\n   * Set `email` plugin dependency to `4.0.0-rc.1`\n     "},"1.0.0-rc.1":{"date":" 10\/05\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"email-mailgun":{"name":"Email Mailgun","version":"1.0.2","description":"Mailgun integration for new Email plugin","description_html":"<p>Mailgun integration for new Email plugin<\/p>","description_plain":"Mailgun integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailgun","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailgun\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailgun\/issues","license":"MIT","tag_name":"1.0.2","date":"2026-05-05T14:06:36Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-mailgun\/1.0.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailgun","slug":"email-mailgun","install_path":"user\/plugins\/email-mailgun","content_sha256":"72b71c0f5dc0ba369355452a6954964e7fc5e789852f43915ece3564543e790a","changelog":{"1.0.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.1":{"date":"05\/09\/2023","content":"1. [](#bugfix)\n   * fix null config bug\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n   "},"0.1.0":{"date":" 10\/01\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"email-mailjet":{"name":"Email Mailjet","version":"1.1.0","description":"Mailjet integration for new Email plugin","description_html":"<p>Mailjet integration for new Email plugin<\/p>","description_plain":"Mailjet integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailjet","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailjet\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailjet\/issues","license":"MIT","tag_name":"1.1.0","date":"2026-05-05T14:06:42Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-mailjet\/1.1.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-mailjet","slug":"email-mailjet","install_path":"user\/plugins\/email-mailjet","content_sha256":"f8525548417fa51eba744969a69e9dde0c6f2187c47d721cf1b84d2246684f9a","changelog":{"1.1.0":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Folded in pending working-tree changes (vendor refresh \/ minor PHP 8 modernization)\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n"},"0.1.0":{"date":" 10\/01\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"email-mandrill":{"name":"Email Mandrill","version":"1.1.0","description":"Mandrill\/Mailchimp integration for new Email plugin","description_html":"<p>Mandrill\/Mailchimp integration for new Email plugin<\/p>","description_plain":"Mandrill\/Mailchimp integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-mandrill","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-mandrill\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-mandrill\/issues","license":"MIT","tag_name":"1.1.0","date":"2026-05-05T14:06:47Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-mandrill\/1.1.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-mandrill","slug":"email-mandrill","install_path":"user\/plugins\/email-mandrill","content_sha256":"35ecd06ae5e01f08e4fa9ab24e5779055bc8895a9123f2299e865b0721527ffb","changelog":{"1.1.0":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Folded in pending working-tree changes (vendor refresh \/ minor PHP 8 modernization)\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n"},"1.0.0-rc.3":{"date":" 10\/12\/2022","content":"1. [](#bugfix)\n   * default to empty string in config values are null\n"},"1.0.0-rc.2":{"date":" 10\/05\/2022","content":"1. [](#bugfix)\n   * Set `email` plugin dependency to `4.0.0-rc.1`\n"},"1.0.0-rc.1":{"date":" 10\/05\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"email-ohmysmtp":{"name":"Email OhMySmtp","version":"1.1.0","description":"OhMySmtp integration for new Email plugin","description_html":"<p>OhMySmtp integration for new Email plugin<\/p>","description_plain":"OhMySmtp integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-ohmysmtp","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-ohmysmtp\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-ohmysmtp\/issues","license":"MIT","tag_name":"1.1.0","date":"2026-05-05T14:06:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-ohmysmtp\/1.1.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-ohmysmtp","slug":"email-ohmysmtp","install_path":"user\/plugins\/email-ohmysmtp","content_sha256":"013395edd87b3abcc9a1196b9018400f14276d13e2b6c20033e88fffdda71763","changelog":{"1.1.0":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Folded in pending working-tree changes (vendor refresh \/ minor PHP 8 modernization)\n"},"1.0.1":{"date":"05\/09\/2023","content":"1. [](#bugfix)\n   * fix null config bug\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n"},"0.1.0":{"date":" 10\/01\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"email-postmark":{"name":"Email Postmark","version":"1.1.0","description":"Postmark integration for new Email plugin","description_html":"<p>Postmark integration for new Email plugin<\/p>","description_plain":"Postmark integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-postmark","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-postmark\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-postmark\/issues","license":"MIT","tag_name":"1.1.0","date":"2026-05-05T14:06:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-postmark\/1.1.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-postmark","slug":"email-postmark","install_path":"user\/plugins\/email-postmark","content_sha256":"76053d3736b46d7b11b8cb27add1e6f86b8123a5b9c70db578b56613ec093f57","changelog":{"1.1.0":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Folded in pending working-tree changes (vendor refresh \/ minor PHP 8 modernization)\n"},"1.0.1":{"date":"05\/09\/2023","content":"1. [](#bugfix)\n   * fix null config bug\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n"},"0.1.0":{"date":" 10\/01\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"email-sendgrid":{"name":"Email Sendgrid","version":"1.0.2","description":"Sendgrid integration for new Email plugin","description_html":"<p>Sendgrid integration for new Email plugin<\/p>","description_plain":"Sendgrid integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-sendgrid","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-sendgrid\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-sendgrid\/issues","license":"MIT","tag_name":"1.0.2","date":"2026-05-05T14:07:04Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-sendgrid\/1.0.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-sendgrid","slug":"email-sendgrid","install_path":"user\/plugins\/email-sendgrid","content_sha256":"868f07f820cc86de117f7e9c144e6847945e2908236135352eacbceaea77e11a","changelog":{"1.0.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.1":{"date":"03\/26\/2025","content":"1. [](#improve)\n   * Support for PHP 8.4+\n   * Updated to latest vendor libs\n1. [](#bugfix)\n   * fix null config bug\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n"},"1.0.0-rc.3":{"date":" 10\/12\/2022","content":"1. [](#bugfix)\n   * default to empty string in config values are null\n"},"1.0.0-rc.2":{"date":" 10\/05\/2022","content":"1. [](#bugfix)\n   * Set `email` plugin dependency to `4.0.0-rc.1`\n"},"1.0.0-rc.1":{"date":" 10\/05\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"email-sendinblue":{"name":"Email Sendinblue","version":"1.1.0","description":"Sendinblue integration for new Email plugin","description_html":"<p>Sendinblue integration for new Email plugin<\/p>","description_plain":"Sendinblue integration for new Email plugin","icon":"envelope","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"email","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email-sendinblue","docs":"https:\/\/github.com\/getgrav\/grav-plugin-email-sendinblue\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email-sendinblue\/issues","license":"MIT","tag_name":"1.1.0","date":"2026-05-05T14:07:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email-sendinblue\/1.1.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email-sendinblue","slug":"email-sendinblue","install_path":"user\/plugins\/email-sendinblue","content_sha256":"d16e4cdf6042c32ef03fd3af2dbc1f3ace63440e98ccfcf2e6bcd7d635d97c5a","changelog":{"1.1.0":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Folded in pending working-tree changes (vendor refresh \/ minor PHP 8 modernization)\n"},"1.0.1":{"date":"05\/09\/2023","content":"1. [](#bugfix)\n   * fix null config bug\n"},"1.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Initial public release\n"},"0.1.0":{"date":" 10\/01\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"mailersend":{"name":"MailerSend","version":"1.0.6","description":"Send email with the MailerSend API","description_html":"<p>Send email with the MailerSend API<\/p>","description_plain":"Send email with the MailerSend API","icon":"paper-plane-o","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.9"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-mailersend","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-mailersend\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-mailersend\/issues","license":"MIT","tag_name":"1.0.6","date":"2026-06-23T23:04:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mailersend\/1.0.6","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-mailersend","slug":"mailersend","install_path":"user\/plugins\/mailersend","content_sha256":"e2305adb90ac9f75e55177e1d8fb6c8e8f65f4f807a0cc08a44e31816eb4fc05","changelog":{"1.0.6":{"date":"06\/23\/2026","content":"1. [](#improved)\n    * `debug` mode now writes full send diagnostics (composed email, API response, and any warnings) to a dedicated `logs\/mailersend.log` instead of `grav.log`, and **still sends the email**. Previously `debug` was a silent dry-run that logged to `grav.log` at error level and never sent.\n    * Log MailerSend warnings such as `ALL_SUPPRESSED` \/ `hard_bounced` \u2014 these return a `202` but mean the email was NOT actually delivered, which was previously invisible.\n1. [](#new)\n    * Added a `dry_run` option (and admin toggle) for true no-send testing, preserving the old \"log but don't send\" behaviour separately from `debug`.\n1. [](#bugfix)\n    * Send exceptions are no longer silently swallowed \u2014 the real failure reason is now logged to `grav.log` (and `mailersend.log` when debug is on) in addition to being passed to the form validation error.\n"},"1.0.5":{"date":"05\/06\/2026","content":"1. [](#bugfix)\n    * Stop shipping a bundled `psr\/log` 1.x \u2014 declare `replace: psr\/log: '*'` in `composer.json` so the plugin uses the host Grav's psr\/log instead. Fixes a fatal `E_COMPILE_ERROR` (`AbstractLogger::emergency` signature incompatible with `LoggerInterface::emergency`) when the host ships `psr\/log` 3.x (Grav 2.0+, or any 1.7 install where another plugin pulls in 3.x).\n    * Required to make the 1.7\/2.0 compatibility flag added in 1.0.4 actually accurate.\n"},"1.0.4":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.3":{"date":"12\/13\/2023","content":"1. [](#new)\n   * Added a new 'debug' mode to log rather than send\n1. [](#bugfix)\n   * Better handling of email format errors\n"},"1.0.2":{"date":"10\/25\/2022","content":"1. [](#new)\n   * Throw validation exception if API token is missing or invalid\n1. [](#bugfix)\n   * Fixed an issue with basic array style email addresses\n"},"1.0.1":{"date":"09\/27\/2022","content":"1. [](#new)\n    * added `onMailerSendVars`, `onMailerSendBeforeSend` and `onMailerSendAfterSend` events\n    * added support for **arrays** and also **comma-separated strings** for multiple addresses\n    * added support for `Your Name <hello@yoursite.com>`, `{hello@yoursite.com: Your Name}` and `'<hello@yoursite.com>'` email formats\n"},"1.0.0":{"date":"09\/26\/2022","content":"1. [](#new)\n    * Initial release"}}},"popular-articles":{"name":"Popular Articles","version":"1.0.2","description":"Display a list of the most popular articles from a blog","description_html":"<p>Display a list of the most popular articles from a blog<\/p>","description_plain":"Display a list of the most popular articles from a blog","icon":"star","author":{"name":"Tanguy Dechiron","email":"tanguy.dechiron@gmail.com"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"admin","version":">=1.10.0"}],"homepage":"https:\/\/github.com\/techws-dev\/grav-plugin-popular-articles","docs":"https:\/\/github.com\/techws-dev\/grav-plugin-popular-articles\/blob\/main\/README.md","keywords":"grav, plugin, popular, articles, list","bugs":"https:\/\/github.com\/techws-dev\/grav-plugin-popular-articles\/issues","license":"MIT","tag_name":"v1.0.2","date":"2025-06-19T08:11:27Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/popular-articles\/1.0.2","repository":"https:\/\/github.com\/techws-dev\/grav-plugin-popular-articles","slug":"popular-articles","install_path":"user\/plugins\/popular-articles","content_sha256":"a1cd46e126d81ed19fc0d098fd3b38cc70a685f7fba8efd74b59490ced555174","changelog":{"1.0.0":{"date":" 08\/02\/2022","content":"1. [](#new)\n    * Default plugin functionalities\n"},"1.0.2":{"date":" 06\/19\/2022","content":"1. [](#bugfix)\n    * Fix urls in blueprints.yaml"}}},"page-stats":{"name":"Page Stats","version":"2.7.1","description":"Enhaced Analytics for grav","description_html":"<p>Enhaced Analytics for grav<\/p>","description_plain":"Enhaced Analytics for grav","icon":"plug","author":{"name":"Nuno Costa","email":"info@codehaha.com"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/francodacosta\/grav-plugin-page-stats","docs":"https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/blob\/master\/README.md","keywords":"grav, plugin, analytics, statistics","bugs":"https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/issues","license":"MIT","tag_name":"2.7.1.1","date":"2026-03-01T11:27:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/page-stats\/2.7.1","repository":"https:\/\/github.com\/francodacosta\/grav-plugin-page-stats","slug":"page-stats","install_path":"user\/plugins\/page-stats","content_sha256":"1fb5b6fdb04a7ec0cc627574aa9a4785b9255ba62e3f2a87d2cdebb7dc5c30c8","changelog":{"2.5.3\r":{"date":"09\/01\/2023\r","content":"1. [New Features](#new)\r\n1. [Bug Fixes](#bugfix)\r\n    * fix: Undefined index: HTTP_USER_AGENT (#32)\r\n1. [Improvements](#improvements)\r\n\r"},"2.5.2\r":{"date":"09\/01\/2023\r","content":"1. [New Features](#new)\r\n1. [Bug Fixes](#bugfix)\r\n    * dummy release to correct typo in release versions (#33)\r\n1. [Improvements](#improvements)\r\n\r"},"2.5.1\r":{"date":"05\/01\/2023\r","content":"1. [New Features](#new)\r\n1. [Bug Fixes](#bugfix)\r\n    * click on view all on recently pages viewed will now show you a list of recently viewed pages grouped by date\r\n1. [Improvements](#improvements)\r\n\r"},"2.5.0\r":{"date":"26\/09\/2022\r","content":"1. [New Features](#new)\r\n    * You can noe define a list of user agents to classify as bots\/crawlers\r\n1. [Bug Fixes](#bugfix)\r\n1. [Improvements](#improvements)\r\n\r"},"2.4.1\r":{"date":"21\/09\/2022\r","content":"1. [New Features](#new)\r\n1. [Bug Fixes](#bugfix)\r\n    *   Add missing translation strings\r\n1. [Improvements](#improvements)\r\n\n    # v2.4.0\r\n## 20\/09\/2022\r\n\n1. [New Features](#new)\r\n    * configuration option to show page title our route\r\n1. [Bug Fixes](#bugfix)\r\n    * don't error out if ip2location lib throws exception when geolocating ip\r\n    * add debug message with IP on error\r\n1. [Improvements](#improvements)\r\n    * page stats now shows details about all page views, not only the last 10 views\r\n    * time on page collect metrics once a second until the first `ping interval` value you specified and then every `ping interval` seconds, this is so that initial time on page is more accurate\r\n\n\r"},"2.3.0\r":{"date":"5\/09\/2022\r","content":"1. [New Features](#new)\r\n    * Show user agent on user detail page\r\n1. [Bug Fixes](#bugfix)\r\n    * Top country pages not showing\r\n\r"},"2.2.0\r":{"date":"31\/08\/2022\r","content":"1. [New Features](#new)\r\n    * Front End event collection support\r\n    * time on page\r\n    * top browsers as table or pie chart\r\n    * top platforms as table or pie chart\r\n    * top countries as table or pie chart\r\n    * View stats for all countries\r\n    * View stats for all browsers\r\n    * View stats for all platforms\r\n    * View stats for all users\r\n    * recently viewed page has link to user stats page\r\n    * list of urls to exclude from processing\r\n1. [Bug Fixes](#bugfix)\r\n    * fix error message when http_referer is not set\r\n    *  do not include FE tracker is not enabled for that page\r\n    * page stats widget not displaying on main dashboard page if url does not end in `\/dasboard`\r\n1. [Improvements](#improvements)\r\n    * moved sidebar menu entry to bottom of list\r\n    * top users only shows user name, page views are shown on hover\r\n\r"},"2.1.0\r":{"date":"27\/08\/2022\r","content":"1. [](#new)\r\n    * Log http referer ([65a006](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/65a0060c4ff55646e9c7eec32ba14109a30b7fa2))\r\n    * Show page view widget instead of grav default one ([3361fd](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/3361fd39e69ce0e7b96c438808370664e5b87667))\r\n1. [](#bugfix)\r\n    * Db file and size not were shown after refactoring ([bb5e07](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/bb5e0748120bf0ab985738520ea8dceac377c2fb))\r\n    * Migrate was not detecting version properly if migration happened at same time ([5691a5](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/5691a5d3fae4f1ddc855266befecc4e5774aa509))\r\n    * fix typo in plugin settings translation keys #20\r\n    * fix typo in geolocation #21\r\n    * fix Platform and browser column labels were switched #22\r\n\r"},"2.0.0\r":{"date":"27\/08\/2022\r","content":"1. [](#new)\r\n    * \u26a0 BREAKING CHANGES = Using bin geolocation db ([54b6a9](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/54b6a9e40e6b8c4ff8ad66d4aa3632d90635b843))\r\n    * Show all pages on most recent ([3c0784](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/3c07842e1be491f99dce7b0264167417f0af0c20))\r\n    * View all pages ([7cf039](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/7cf0396f451896c16b7d4fdd80224fbac81fb416))\r\n1. [](#bugfix)\r\n    * No limit on all pages ([cf3513](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/cf3513c47ff25c748c1a09324284fd05e4840444))\r\n\r"},"1.10.0\r":{"date":"16\/08\/2022\r","content":"1. [](#new)\r\n    * Show all pages on most recent ([3c0784](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/3c07842e1be491f99dce7b0264167417f0af0c20))\r\n    * View all pages ([7cf039](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/7cf0396f451896c16b7d4fdd80224fbac81fb416))\r\n\r"},"1.9.3\r":{"date":"18\/08\/2022\r","content":"1. [](#bugfix)\r\n    * Display date only on user detail page ([b4fb45](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/b4fb4537ce87a44a31246ea878e170009841c48c))\r\n\n\r"},"1.9.2\r":{"date":"16\/08\/2022\r","content":"1. [](#bugfix)\r\n    * Show correct day instead of current day in user details recent page views ([bf1329](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/bf13292f1f152efbea1d9bccc2320a740b37673d))\r\n\r"},"1.9.1\r":{"date":"16\/08\/2022\r","content":"1. [](#bugfix)\r\n    * Removed user name from recently viewed pages of user details screen ([13e612](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/13e6123d4369225b93ea6d4196a55a8286476ffa))\r\n\r"},"1.9.0\r":{"date":"16\/08\/2022\r","content":"1. [](#new)\r\n    * Group page views by day in user detail page ([184489](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/1844899445f7d6c894720214c32225f8e2d57bf2))\r\n\n\r"},"1.8.2\r":{"date":"15\/08\/2022\r","content":"1. [](#bugfix)\r\n    * Show platform data on user detail page ([d510cd](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/d510cd38a5a3d6a36cd009946286cf418a3cbdb5))\r\n\n\r"},"1.8.1\r":{"date":"15\/08\/2022\r","content":"1. [](#bugfix)\r\n    * Better user vs ip detection ([9d2216](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/9d2216bc98bda86cdfea6c23104739d39b25f79e))\r\n\r"},"1.8.0\r":{"date":"11\/08\/2022\r","content":"1. [](#new)\r\n    * Show location on recent views of page details ([ea7d29](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/ea7d290aae6dd783a570c50604835bd6d18adeac))\r\n    * User Details Page ([91fed4](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/91fed4f7702bb47a5ca132ec60472eb2f0719c88))\r\n\r"},"1.7.0\r":{"date":"11\/08\/2022\r","content":"1. [](#new)\r\n    * add stats icon to pages listing, so when you click on the stats icon you go to the stats page\r\n    * Show paltform and browser on recently viewed pages\r\n    * Show recent views on page details stats\r\n\r"},"1.6.1\r":{"date":"05\/08\/2022\r","content":"1. [](#new)\r\n   * Click on icon to open page in new tab ([701820](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/7018206c7986ad2c2322e88c3a37b01c9698c437))\r\n2. [](#bugfix)\r\n    * Error with double $$; make migrations more forgiving if updating from dev version (pre migrations) ([90a027](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/90a027f94174549fe6529b7ec60b8dff7f87575d))\r\n\r"},"1.6.0\r":{"date":"05\/08\/2022\r","content":"1. [](#bugfix)\r\n    * Fixed wrong labelled plugin setting ([6f8ca2](https:\/\/github.com\/francodacosta\/grav-plugin-page-stats\/commit\/6f8ca29443bf42685ffc85bed9b821c9f6153910))\r\n\n\r"}}},"draft-preview":{"name":"Draft Preview","version":"1.0.5","description":"Preview Pages that are not published yet","description_html":"<p>Preview Pages that are not published yet<\/p>","description_plain":"Preview Pages that are not published yet","icon":"eye","author":{"name":"Sebastian Laube","email":"hello@sebastianlaube.de"},"dependencies":[{"name":"grav","version":">=1.6.0"},{"name":"admin","version":">=1.8.0"}],"homepage":"https:\/\/github.com\/bitstarr\/grav-plugin-draft-preview","docs":"https:\/\/github.com\/bitstarr\/grav-plugin-draft-preview\/blob\/main\/README.md","keywords":"grav, plugin, admin, edeiting, preview, publish, blog, news","bugs":"https:\/\/github.com\/bitstarr\/grav-plugin-draft-preview\/issues","license":"MIT","tag_name":"1.0.5","date":"2025-07-09T20:02:35Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/draft-preview\/1.0.5","repository":"https:\/\/github.com\/bitstarr\/grav-plugin-draft-preview","slug":"draft-preview","install_path":"user\/plugins\/draft-preview","content_sha256":"54db765b7843fa4acf4cc082270a478ca0c23ea518c67f36532a6604e4dd2e18","changelog":{"1.0.5":{"date":" 2025-07-09","content":"1. [](#bugfix)\n    * Flaws introduced with multi language support got fixed ([issue #7](https:\/\/github.com\/bitstarr\/grav-plugin-draft-preview\/issues\/7))\n"},"1.0.4":{"date":" 2025-03-05","content":"1. [](#bugfix)\n    * Date correction in changelog ([issue #6](https:\/\/github.com\/bitstarr\/grav-plugin-draft-preview\/issues\/6))\n"},"1.0.3":{"date":" 2025-03-04","content":"1. [](#bugfix)\n    * Multi language support ([issue #5](https:\/\/github.com\/bitstarr\/grav-plugin-draft-preview\/issues\/5))\n    * Clearified error messages\n"},"1.0.2":{"date":" 2022-12-16","content":"1. [](#new)\n    * Added hint about misconfiguration in case sessions are not enabled\n"},"1.0.1":{"date":" 2022-12-07","content":"1. [](#bugfix)\n    * Subfolder installation comatibility ([issue #1](https:\/\/github.com\/bitstarr\/grav-plugin-draft-preview\/issues\/1))\n"},"1.0.0":{"date":" 2022-06-23","content":"1. [](#new)\n    * ChangeLog started...\n\n"}}},"console-log":{"name":"Console Log","version":"1.0.2","description":"This plugin allows you to print text to the browser&#39;s console using a Twig function.","description_html":"<p>This plugin allows you to print text to the browser&#39;s console using a Twig function.<\/p>","description_plain":"This plugin allows you to print text to the browser&#39;s console using a Twig function.","icon":"keyboard-o","author":{"name":"Liam Baron","url":"https:\/\/liambaron.com","email":"lsb@liambaron.com"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/liam1241\/grav-plugin-console-log","docs":"https:\/\/github.com\/liam1241\/grav-plugin-console-log\/blob\/main\/README.md","keywords":"console, print, plugin","bugs":"https:\/\/github.com\/liam1241\/grav-plugin-console-log\/issues","license":"MIT","tag_name":"1.0.2","date":"2022-06-29T05:20:11Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/console-log\/1.0.2","repository":"https:\/\/github.com\/liam1241\/grav-plugin-console-log","slug":"console-log","install_path":"user\/plugins\/console-log","content_sha256":"783435aa60852a4f923d683a60d6118da7bcc27ddc0d9ed305de810d124ceee6","changelog":{"1.0.2":{"date":"06\/29\/2022","content":"1. [](#new)\n\t* Added toggle to plugin config for enabling\/disabling plugin\n2. [](#bugfix)\n\t* Renamed directory and file names to better be in line with best practice\n"},"1.0.1":{"date":"06\/27\/2022","content":"1. [](#improved)\n\t* Simplified codebase\n2. [](#bugfix)\n\t* Replaced deprecated code\n"},"1.0.0":{"date":"06\/24\/2022","content":"1. [](#new)\n\t* Initial Release\n\t* Twig Function to Print to Console"}}},"whistleblower":{"name":"Whistleblower","version":"1.0.0","description":"Get notifications everytime someone tries to login using [ntfy.sh](https:\/\/ntfy.sh\/)","description_html":"<p>Get notifications everytime someone tries to login using <a href=\"https:\/\/ntfy.sh\/\">ntfy.sh<\/a><\/p>","description_plain":"Get notifications everytime someone tries to login using ntfy.sh","icon":"assistive-listening-systems","author":{"name":"Himmlisch Web","email":"web@himmlisch.com.mx"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/Himmlisch-Studios\/grav-plugin-whistleblower","docs":"https:\/\/github.com\/Himmlisch-Studios\/grav-plugin-whistleblower\/blob\/master\/README.md","demo":"https:\/\/himmlisch.com.mx","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/Himmlisch-Studios\/grav-plugin-whistleblower\/issues","license":"MIT","tag_name":"1.0.3","date":"2022-09-11T19:11:49Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/whistleblower\/1.0.0","repository":"https:\/\/github.com\/Himmlisch-Studios\/grav-plugin-whistleblower","slug":"whistleblower","install_path":"user\/plugins\/whistleblower","content_sha256":"4ac0b7cb9476c2a912f2c6911d10e153cb8827af08845652137f9e7fa16a83eb","changelog":{"1.0.3":{"date":"09\/11\/2022","content":"1. [](#bugfix)\n    - Removed `mixed` type, for `PHP 7.4` compatibility.\n"},"1.0.2":{"date":"09\/11\/2022","content":"1. [](#bugfix)\n    - Added vendor files.\n"},"1.0.1":{"date":"09\/11\/2022","content":"1. [](#bugfix)\n    - Bumped up PHP version to `7.4`.\n"},"1.0.0":{"date":"05\/22\/2022","content":"1. [](#new)\n    - ChangeLog started..."}}},"gis":{"name":"GIS","version":"0.1.0","description":"This plugin, using the Leaflet javascript library, aims to provide a simple way to geolocate contents and to display interactive maps.","description_html":"<p>This plugin, using the Leaflet javascript library, aims to provide a simple way to geolocate contents and to display interactive maps.<\/p>","description_plain":"This plugin, using the Leaflet javascript library, aims to provide a simple way to geolocate contents and to display interactive maps.","icon":"map-o","author":{"name":"Brice Boucard","email":"brice@reclic.dev"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"shortcode-core","version":">=5.1.1"}],"homepage":"https:\/\/github.com\/bricebou\/grav-plugin-gis","docs":"https:\/\/github.com\/bricebou\/grav-plugin-gis\/blob\/develop\/README.md","demo":"https:\/\/grav.reclic.dev","keywords":"grav, plugin, gis, leaflet, map","bugs":"https:\/\/github.com\/bricebou\/grav-plugin-gis\/issues","license":"MIT","tag_name":"v0.1.0","date":"2022-04-26T13:15:55Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/gis\/0.1.0","repository":"https:\/\/github.com\/bricebou\/grav-plugin-gis","slug":"gis","install_path":"user\/plugins\/gis","content_sha256":"1f509fe6b24d69b30a709a9b86486239b95f1c2368f741fc89064c5dca748c46","changelog":{"0.1.0":{"date":"25\/04\/2022","content":"1. [](#new)\n    * First release : page coordinates, `[gis \/]` shortcode and `{{ gis() }}` Twig function."}}},"better-typography":{"name":"Better Typography","version":"0.1.0","description":"Automatically improves the typography of your content. Provides a Twig filter.","description_html":"<p>Automatically improves the typography of your content. Provides a Twig filter.<\/p>","description_plain":"Automatically improves the typography of your content. Provides a Twig filter.","icon":"font","author":{"name":"Brice Boucard","email":"brice@reclic.dev"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/bricebou\/grav-plugin-better-typography","docs":"https:\/\/github.com\/bricebou\/grav-plugin-better-typography\/blob\/develop\/README.md","demo":"https:\/\/grav.reclic.dev","keywords":"grav, plugin, typography, content","bugs":"https:\/\/github.com\/bricebou\/grav-plugin-better-typography\/issues","license":"MIT","tag_name":"v0.1.2","date":"2022-08-06T20:23:08Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/better-typography\/0.1.0","repository":"https:\/\/github.com\/bricebou\/grav-plugin-better-typography","slug":"better-typography","install_path":"user\/plugins\/better-typography","content_sha256":"2af9aa5524aa25fa934e34717a420a58775b88bbf3f7c14ce41de46006a42848","changelog":{"0.1.0":{"date":" 04\/14\/2022","content":"1. [](#new)\n    * ChangeLog started..."}}},"image-server":{"name":"Image server (Responsive images)","version":"1.0.0~alpha2","description":"Adds responsive images with breakpoints, density (retina), lazy-loading and webp support. Additionally configure sets for editor including image ratios.","description_html":"<p>Adds responsive images with breakpoints, density (retina), lazy-loading and webp support. Additionally configure sets for editor including image ratios.<\/p>","description_plain":"Adds responsive images with breakpoints, density (retina), lazy-loading and webp support. Additionally configure sets for editor including image ratios.","icon":"object-group","author":{"name":"Xaver Maierhofer | catchIT GmbH","url":"https:\/\/catchit.xyz"},"dependencies":[{"name":"grav","version":">=1.7.32"}],"homepage":"https:\/\/github.com\/catch-IT\/grav-image-server\/","docs":"https:\/\/docs.catchit.xyz\/grav-plugins\/image-server\/settings\/","demo":"https:\/\/image-server.grav.catchit.xyz\/","keywords":"plugin, image, retina, responsive, webp, twig, helper","bugs":"https:\/\/github.com\/catch-IT\/grav-image-server\/issues","license":"MIT","tag_name":"v1.0.0-alpha2","date":"2022-03-24T21:13:36+01:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/image-server\/1.0.0~alpha2","repository":"https:\/\/github.com\/catch-IT\/grav-image-server","slug":"image-server","install_path":"user\/plugins\/image-server","content_sha256":"f75f11f15d142146e7c3f5546fca9d2139e17cfffb979da7ec8e9dc6daa7193d","changelog":{"Changelog":{"date":"1.0.0","content":"1. [](#new)\n    * Initial public release\n\n## 1.0.0~alpha2\n1. [](#new)\n    * Prerelease\n\n## 1.0.0~alpha1\n1. [](#new)\n    * Prerelease - no final API"}}},"highlight-php":{"name":"Highlight PHP","version":"1.0.0","description":"Server-side syntax highlighting (i.e., without JavaScript) using the [highlight.php](https:\/\/github.com\/scrivo\/highlight.php) library","description_html":"<p>Server-side syntax highlighting (i.e., without JavaScript) using the <a href=\"https:\/\/github.com\/scrivo\/highlight.php\">highlight.php<\/a> library<\/p>","description_plain":"Server-side syntax highlighting (i.e., without JavaScript) using the highlight.php library","icon":"paint-brush","author":{"name":"Iain Gillis","email":"iain@iainsgillis.com"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"shortcode-core","version":">=4.2.2"}],"homepage":"https:\/\/github.com\/iainsgillis\/grav-plugin-highlight-php","docs":"https:\/\/github.com\/iainsgillis\/grav-plugin-highlight-php\/blob\/develop\/README.md","demo":"https:\/\/www.iainsgillis.com\/","keywords":"grav, plugin, syntax, highlighting, syntax-highlighting, syntax-highlighter","bugs":"https:\/\/github.com\/iainsgillis\/grav-plugin-highlight-php\/issues","license":"MIT","tag_name":"v0.10.0","date":"2022-04-10T02:08:35Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/highlight-php\/1.0.0","repository":"https:\/\/github.com\/iainsgillis\/grav-plugin-highlight-php","slug":"highlight-php","install_path":"user\/plugins\/highlight-php","content_sha256":"d541b438cb84db015eed485504f4bba135db058285d95442580a5494ea1d41ab","changelog":{"1.0.0":{"date":" 09-04-2022","content":"1. [](#new)\n    * Option to enable or disable syntax highlighting site-wide or per-page by\n      default\n    * Per-page option to enable or disable the plugin on a per-page basis\n\n2. [](#improved)\n    * Improve performance by registering a single, paramterized shortcode\n      instead of registering each language automatically\n    * More flexibility in asset loading strategies\n    * Include sample override CSS stylesheet on plugin installation to show\n      less-experienced users how the user overrides work"},"0.9.0":{"date":" 20-03-2022","content":"1. [](#new)\n    * First version of the plugin ready for consideration to be included in the\n      Grav repository. (Works on my machine\u2122\ufe0f)."}}},"typography-helper":{"name":"Typography Helper","version":"1.1","description":"Adds a selection of special characters to Markdown fields in Admin, and highlights non-breakable spaces and double spaces.","description_html":"<p>Adds a selection of special characters to Markdown fields in Admin, and highlights non-breakable spaces and double spaces.<\/p>","description_plain":"Adds a selection of special characters to Markdown fields in Admin, and highlights non-breakable spaces and double spaces.","icon":"quote-left","author":{"name":"Netzhexe.de","email":"ak@netzhexe.de"},"dependencies":[{"name":"grav","version":">=1.6.0"},{"name":"admin"}],"homepage":"https:\/\/github.com\/skinofthesoul\/grav-plugin-typography-helper","docs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-typography-helper\/blob\/master\/README.md","keywords":"grav, plugin, admin, editor, markdown, special characters","bugs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-typography-helper\/issues","license":"MIT","tag_name":"v1.1","date":"2022-03-12T17:38:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/typography-helper\/1.1","repository":"https:\/\/github.com\/skinofthesoul\/grav-plugin-typography-helper","slug":"typography-helper","install_path":"user\/plugins\/typography-helper","content_sha256":"2bae79b2c5a12b6e93015472b55695d2d75382635b44f18c7fcbebbb286e90a2","changelog":{"1.1":{"date":" 12-03-2022","content":"1. [](#improved)\n    * updated the README and added two more default characters\n"},"1.0":{"date":" 12-03-2022","content":"1. [](#new)\n    * first version of Typography Helper for editor fields in Admin\n    * highlighting for no-break spaces and trailing spaces\n    * a configurable bar with extra chars for easy inserting"}}},"spacer":{"name":"Spacer","version":"0.1.0","description":"Typographical word spacing","description_html":"<p>Typographical word spacing<\/p>","description_plain":"Typographical word spacing","icon":"plug","author":{"name":"Dallas Lu","email":"914202+dallaslu@users.noreply.github.com"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/dallaslu\/grav-plugin-spacer","docs":"https:\/\/github.com\/dallaslu\/grav-plugin-spacer\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/dallaslu\/grav-plugin-spacer\/issues","license":"MIT","tag_name":"0.1.1","date":"2022-01-07T11:14:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/spacer\/0.1.0","repository":"https:\/\/github.com\/dallaslu\/grav-plugin-spacer","slug":"spacer","install_path":"user\/plugins\/spacer","content_sha256":"aee715fa2500b59ab6fbfac832e6d2c4425d9f2ac071bd5cc3f58060809f62c1","changelog":{"0.1.0":{"date":" 08\/27\/2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"downloads-pro":{"name":"Downloads Pro","version":"2.1.0","description":"The most advanced downloads manager for Grav","description_html":"<p>The most advanced downloads manager for Grav<\/p>","description_plain":"The most advanced downloads manager for Grav","icon":"cloud-download","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.32"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/downloads-pro","docs":"https:\/\/getgrav.org\/premium\/downloads-pro\/docs","demo":"https:\/\/demo.getgrav.org\/downloads-pro","keywords":"grav, plugin, downloads, premium","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/downloads-pro","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"2.1.0","date":"2026-07-28T15:01:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/downloads-pro\/2.1.0","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-downloads-pro","premium":{"permalink":"grav-premium-downloads-pro","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-downloads-pro","button":"Buy Now","filename":"grav-plugin-downloads-pro"},"slug":"downloads-pro","install_path":"user\/plugins\/downloads-pro","content_sha256":"50271289e653d130789a35860f4c08be41c5be50e715ec0fd0e246b56386dc3f","changelog":{"2.1.0":{"date":"07\/28\/2026","content":"1. [](#new)\n    * Added per-user access restrictions. A downloads page can now be limited to a list of usernames with the new **Restrict to users** field, and individual files can be limited the same way from the **File Overrides** list.\n    * Added **Private user folders**. Enable it on a parent page and every child folder becomes private to the user whose username matches the folder slug, so an admin only has to drop files into a folder named after the user.\n    * Added a `user_downloads(route)` Twig function that returns the logged-in user's own downloads folder underneath a route, plus a `downloads(route)` function for any downloads page.\n    * Added `hasUserAccess()` and `canDownload()` to the downloads object so custom layouts can check access on a page and on individual files.\n1. [](#bugfix)\n    * Access rules inherited from a parent page are no longer ignored. `Login::isUserAuthorizedForPage()` only applies the Login plugin's `parent_acl` setting when it is handed that config, and the plugin was calling it without one, so a download on a page that relied on a protected parent for its ACL was served to anybody holding its URL.\n    * Restricted downloads are now sent with `Cache-Control: private, no-store, no-cache, must-revalidate`. They previously inherited the public `max-age` from `system.pages.expires`, which allowed a CDN or proxy to cache a protected file and serve it to another visitor.\n    * The file selector in the Downloads panel no longer comes up empty in the new admin ([grav-premium-issues#609](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/609)).\n    * The file selector now works on the home page as well as on pages nested beneath a hidden home page.\n"},"2.0.3":{"date":"06\/19\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.4 deprecation warnings from implicitly nullable function parameters.\n"},"2.0.2":{"date":"06\/01\/2026","content":"1. [](#bugfix)\n    * Fixed the START\/END wrapper comments rendering as visible text because the delimiters used en-dashes instead of hyphens [getgrav\/grav-premium-issues#587](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/587)\n"},"2.0.1":{"date":"05\/05\/2026","content":"1. [](#bugfix)\n    * **Stop flattening every blueprint's columns.** The `onApiBlueprintResolved` listener was walking every field in every blueprint and rewriting `type: columns` \u2192 `type: fieldset`, then merging all `column` children into one flat list. Theme and plugin layouts that used columns for two-up forms (e.g. delivernext's `_Heading`, `_MediaOptions`) collapsed into a single stack in admin-next. The listener now only adds `data_url` to its own `selectunique` fields and leaves layout containers alone.\n"},"2.0.0":{"date":"04\/23\/2026","content":"1. [](#bugfix)\n    * Fix title inside .prose\n"},"1.1.2":{"date":"01\/14\/2026","content":"1. [](#bugfix)\n    * Fixed a regression where `--` was changed to `\u2013\u2013` breaking output in shortcode\n"},"1.1.1":{"date":"12\/29\/2025","content":"1. [](#improved)\n    * Improved PHP 8.4 compatibility\n"},"1.1.0":{"date":"03\/28\/2022","content":"1. [](#new)\n   * Added the ability to append file extension to hashed download URL [getgrav\/grav-premium-issues#260](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/260)\n2. [](#improved)\n   * Make the \"Enable Downloads\" `toggleable`, so it doesn't pollute frontmatter unless enabled. [getgrav\/grav-premium-issues#240](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/240)\n   * Various CSS fixes for dark mode and better Typhoon compatibility\n3. [](#bugfix)\n   * Fixed **Downloads** being an option in a module page [getgrav\/grav-premium-issues#216](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/216)\n   * Fixed bad default value in blueprints due to plugin name-change\n"},"1.0.1.2":{"date":"03\/08\/2022","content":"1. [](#bugfix)\n   * Do not present inline layout types as options from the \"Layout\" list [getgrav\/grav-premium-issues#232](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/232)\n"},"1.0.1.1":{"date":"02\/07\/2022","content":"1. [](#bugfix)\n   * Fixed bad date in breaking Changelog\n"},"1.0.1":{"date":"02\/03\/2022","content":"1. [](#bugfix)\n   * Fixed fatal error when page doesn't return media\n   * Fixed built-in CSS not loading\n"},"1.0.0":{"date":"01\/28\/2022","content":"1. [](#new)\n   * First public version"}}},"algolia-pro":{"name":"Algolia Pro","version":"1.2.3","description":"Algolia Pro takes searching your Grav site to the next level by **seamlessly integrating** your Grav content with the **leading-edge AI-powered search engine service**. [Agolia](https:\/\/www.algolia.com\/?target_blank=1) is used by over 10,000 businesses to power their search and there&#39;s nothing that beats the flexibility and speed, all at a reasonable price.","description_html":"<p>Algolia Pro takes searching your Grav site to the next level by <strong>seamlessly integrating<\/strong> your Grav content with the <strong>leading-edge AI-powered search engine service<\/strong>. <a href=\"https:\/\/www.algolia.com\/?target_blank=1\">Agolia<\/a> is used by over 10,000 businesses to power their search and there&#39;s nothing that beats the flexibility and speed, all at a reasonable price.<\/p>","description_plain":"Algolia Pro takes searching your Grav site to the next level by seamlessly integrating your Grav content with the leading-edge AI-powered search engine service. Agolia is used by over 10,000 businesses to power their search and there&#39;s nothing that beats the flexibility and speed, all at a reasonable price.","icon":"clock-o","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"php","version":">=8.1"},{"name":"grav","version":">=1.7.27"},{"name":"sitemap","version":">=3.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/algolia-pro","docs":"https:\/\/getgrav.org\/premium\/algolia-pro\/docs","keywords":"grav, plugin, algolia, search, premium","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/algolia-pro","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"1.2.3","date":"2026-06-19T15:29:32Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/algolia-pro\/1.2.3","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-algolia-pro","premium":{"permalink":"grav-premium-algolia-pro","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-algolia-pro","button":"Buy Now","filename":"grav-plugin-algolia-pro"},"slug":"algolia-pro","install_path":"user\/plugins\/algolia-pro","content_sha256":"c63edd5f0a5a2071045f0a591f339f9f32647b9fe83db065e215a2b09b5d3edd","changelog":{"1.2.3":{"date":"06\/19\/2026","content":"1. [](#bugfix)\n   * Fixed PHP 8.4 deprecation warnings from implicitly nullable function parameters.\n"},"1.2.2":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n   * The Algolia Pro sidebar entry is now hidden from users who don't have any Algolia Pro permission. Requires grav-plugin-api \u2265 1.0.0-rc.11.\n"},"1.2.1":{"date":"05\/05\/2026","content":"1. [](#bugfix)\n   * Algolia Pro no longer shows a duplicate untranslated `PLUGIN_ALGOLIA_PRO.ALGOLIA_PRO` row at the bottom of the admin-next sidebar. The plugin already registers its own dedicated entry, and the redundant auto-registered flex menu row is now suppressed via the new `hidden_in_admin_next` flag (requires flex-objects \u2265 1.4.0-rc.2).\n"},"1.2.0":{"date":"05\/04\/2026","content":"1. [](#new)\n   * Added Grav 2.0 compatibility\n   * Added Admin2 + API compatibility\n"},"1.1.1":{"date":"02\/24\/2026","content":"2. [](#bugfix)\n   * Fixed missing `Algolia\\AlgoliaSearch\\Log\\DebugLogger` class due to `Log\/` directory being excluded from the repository by a global gitignore rule\n"},"1.1.0":{"date":"02\/24\/2026","content":"1. [](#improved)\n   * Upgraded Algolia PHP client library from `v3` to `v4` with updated API usage across all search classes\n   * Updated Twig templates to use `{% apply spaceless %}` for Twig 3 compatibility\n   * Bumped minimum PHP requirement to `8.1`\n   * Replaced `SearchIndex` object usage with direct `SearchClient` method calls (`searchSingleIndex`, `saveObjects`, `deleteObjects`, `partialUpdateObjects`, `clearObjects`, `setSettings`, `getSettings`)\n   * Cleaned up `composer.json` dependencies and added `replace` entries for packages already provided by Grav core\n"},"1.0.15":{"date":"02\/03\/2024","content":"2. [](#bugfix)\n   * Fixed a long-standing bug when not having a `user\/plugins\/` already existing [getgrav\/grav-plugin-admin#2395](https:\/\/github.com\/getgrav\/grav-plugin-admin\/issues\/2395)\n\n"},"1.0.14":{"date":"08\/02\/2023","content":"2. [](#bugfix)\n   * Removed errant `onAlgoliaProPageSkip` listener\n\n"},"1.0.13":{"date":"08\/01\/2023","content":"2. [](#bugfix)\n   * Fixed an issue with an unpublished page getting indexed\n"},"1.0.12":{"date":"05\/10\/2023","content":"2. [](#bugfix)\n   * Fix issue when indexing via Admin and the browser's language is not set to the default language of the Grav site causing wrong pages in browser language to be indexed into the default language algolia index.\n"},"1.0.11":{"date":"05\/03\/2023","content":"2. [](#bugfix)\n    * Fixed a bug where reindexing multi-language setup with `flush = true` was not clearing language-based indexes\n    * Only index page when it's a regular page `save`, not on `copy` where the page language is not fully resolved which resulted in pages being indexed in wrong language index.\n"},"1.0.10":{"date":"04\/28\/2023","content":"2. [](#bugfix)\n    * Fixed a bug that caused old records not to be removed when updating an entry\n"},"1.0.9":{"date":"04\/20\/2023","content":"1. [](#improved)\n   * Better check for `application\/json` that works when gzipped [#351](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/351)\n2. [](#bugfix)\n   * Fixed an issue with controller configuration based on `lang` [#350](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/350)\n"},"1.0.8":{"date":"01\/13\/2023","content":"1. [](#improved)\n   * Algolia-pro now initiates `attributesToSnippet` during indexing\n"},"1.0.7":{"date":"01\/11\/2023","content":"1. [](#improved)\n   * Fix for languages reordering when specifying a single language\n   * Added custom `onAlgoliaProPageSkip()` event to allow custom logic for skipping\n   * Added `content.skip_empty` configuration option\n   * Vendor library updates\n2. [](#bugfix)\n   * Support for bad UTF-8 characters in search record\n"},"1.0.6":{"date":"05\/11\/2022","content":"1. [](#improved)\n   * Add a message for `--verbose` to notify you when a page was cached locally\n   * Updated default `crawl` configuration to include `snippet` to show up in frontend UI\n   * More useful CLI progress bar info with `Index Config:` and `Algolia Index:` values\n2. [](#bugfix)\n   * Fixed for `options['indexes']` throwing errors\n   * Fixed `crawl` queries using wrong index from CLI\n   * Fixed an issue with `index --verbose` option resulting in exceptions or bad output\n"},"1.0.5":{"date":"04\/25\/2022","content":"1. [](#improved)\n   * Try all the configured CSS selectors in the when indexing with the `CrawlPageSearch` class [getgrav\/grav-premium-issues#280](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/280)\n   * Scoped `base` and `components` CSS to prevent from taking over the parent theme. [getgrav\/grav-premium-issues#277](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/277)\n"},"1.0.4":{"date":"03\/14\/2022","content":"1. [](#new)\n    * Added method `FlexSearch::checkObject()` which must be implemented in overriding classes\n"},"1.0.3":{"date":"02\/02\/2022","content":"1. [](#new)\n   * cache the plugin's `getPluginMergedSettings()` method to save on API calls\n"},"1.0.2":{"date":"01\/31\/2022","content":"1. [](#new)\n   * Added abstract `Grav\\Plugin\\AlgoliaPro\\FlexSearch` class to help index Flex Objects\n"}}},"html-minifier":{"name":"HTML Minifier","version":"1.1.3","description":"Minifies HTML output of your Grav site","description_html":"<p>Minifies HTML output of your Grav site<\/p>","description_plain":"Minifies HTML output of your Grav site","icon":"search-minus","author":{"name":"rblinde"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/rblinde\/grav-plugin-html-minifier","docs":"https:\/\/github.com\/rblinde\/grav-plugin-html-minifier\/blob\/develop\/README.md","keywords":"grav, plugin, html, minify","bugs":"https:\/\/github.com\/rblinde\/grav-plugin-html-minifier\/issues","license":"MIT","tag_name":"v1.1.3","date":"2022-02-15T15:09:00Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/html-minifier\/1.1.3","repository":"https:\/\/github.com\/rblinde\/grav-plugin-html-minifier","slug":"html-minifier","install_path":"user\/plugins\/html-minifier","content_sha256":"3ef034ffa17a168474c005d51f0dc926488c196dce3fc538ae360b5d685e3fd4","changelog":{"1.1.3":{"date":" 02\/15\/2022","content":"1. [](#improved)\n    * Takes page 'cache_enable into account.\n"},"1.1.2":{"date":" 02\/07\/2022","content":"1. [](#improved)\n    * Correctly store paginated pages in cache.\n"},"1.1.1":{"date":" 01\/17\/2022","content":"1. [](#improved)\n    * Improved fetching config options from page.\n"},"1.1.0":{"date":" 01\/16\/2022","content":"1. [](#new)\n    * Enable\/disable cache on per page basis.\n"},"1.0.0":{"date":" 12\/21\/2021","content":"1. [](#new)\n    * Release of HTML Minifier plugin."}}},"sms77-form-notification":{"name":"sms77 Form SMS Notification","version":"1.0.0","description":"SMS notification for Grav form whenever there is submission on your Grav form.","description_html":"<p>SMS notification for Grav form whenever there is submission on your Grav form.<\/p>","description_plain":"SMS notification for Grav form whenever there is submission on your Grav form.","icon":"plug","author":{"name":"sms77 e.K.","email":"support@sms77.io"},"dependencies":[{"name":"form","version":"*"}],"homepage":"https:\/\/github.com\/sms77io\/grav-form-notification","docs":"https:\/\/github.com\/sms77io\/grav-form-notification\/master\/README.md","demo":"https:\/\/wwww.sms77.io","bugs":"https:\/\/github.com\/sms77io\/grav-form-notification\/issues","license":"MIT","tag_name":"v1.0.0","date":"2021-11-30T10:28:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/sms77-form-notification\/1.0.0","repository":"https:\/\/github.com\/seven-io\/grav-form-notification","slug":"sms77-form-notification","install_path":"user\/plugins\/sms77-form-notification","content_sha256":"ee6a84b7b6fc24b482e15f9219fc70ab7427c51c50d854180409294ea232ecd4","changelog":{"1.0.0":{"date":"09\/22\/2021","content":"1. [](#new)\n    * Initial release."}}},"videoembed":{"name":"VideoEmbed","version":"1.4.0","description":"Convert links to videos from popular sharing services to embed format. Now plugin supports: self-hosted videos, Youtube, Vimeo, Vine, Coub.com.","description_html":"<p>Convert links to videos from popular sharing services to embed format. Now plugin supports: self-hosted videos, Youtube, Vimeo, Vine, Coub.com.<\/p>","description_plain":"Convert links to videos from popular sharing services to embed format. Now plugin supports: self-hosted videos, Youtube, Vimeo, Vine, Coub.com.","icon":"youtube-play","author":{"name":"maximkou","email":"maximkou@gmail.com"},"homepage":"https:\/\/github.com\/maximkou\/grav-plugin-videoembed","keywords":"video, embed, videojs, youtube, vine, coub, vimeo","bugs":"https:\/\/github.com\/maximkou\/grav-plugin-videoembed\/issues","license":"MIT","tag_name":"v1.4.0","date":"2014-11-26T12:09:08Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/videoembed\/1.4.0","repository":"https:\/\/github.com\/dfacto-lab\/grav-plugin-videoembed","slug":"videoembed","install_path":"user\/plugins\/videoembed","content_sha256":"4c14dde3276b1965126f626191f38026061f2882503b6c17bf94ce158436a896","changelog":false,"dependencies":[]},"crypto-ticker":{"name":"Crypto Ticker","version":"0.1.0","description":"Live cryptocurrency ticker. Information from CoinPaprika","description_html":"<p>Live cryptocurrency ticker. Information from CoinPaprika<\/p>","description_plain":"Live cryptocurrency ticker. Information from CoinPaprika","icon":"btc","author":{"name":"Luan Himmlisch","email":"luanhimmlisch@himmlisch.com.mx"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/LuanHimmlisch\/grav-plugin-crypto-ticker","docs":"https:\/\/github.com\/LuanHimmlisch\/grav-plugin-crypto-ticker\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/LuanHimmlisch\/grav-plugin-crypto-ticker\/issues","license":"MIT","tag_name":"v0.1.0","date":"2021-09-07T01:28:39Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/crypto-ticker\/0.1.0","repository":"https:\/\/github.com\/LuanHimmlisch\/grav-plugin-crypto-ticker","slug":"crypto-ticker","install_path":"user\/plugins\/crypto-ticker","content_sha256":"06406e443a54c32a98134f26639caa554400c790f07eefdc1c1c3f06981f1fa8","changelog":{"0.1.0":{"date":" 09\/06\/2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"pagelocks":{"name":"PageLocks","version":"1.0.0-beta","description":"Set lock on page when edited in Admin by user","description_html":"<p>Set lock on page when edited in Admin by user<\/p>","description_plain":"Set lock on page when edited in Admin by user","icon":"lock","author":{"name":"Netzhexe","email":"ak@netzhexe.de"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/skinofthesoul\/grav-plugin-pagelocks","docs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-pagelocks\/blob\/master\/README.md","keywords":"grav, plugin, editing, multiuser","bugs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-pagelocks\/issues","license":"MIT","tag_name":"1.0.0-alpha","date":"2021-07-25T09:50:09+02:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/pagelocks\/1.0.0-beta","repository":"https:\/\/github.com\/skinofthesoul\/grav-plugin-pagelocks","slug":"pagelocks","install_path":"user\/plugins\/pagelocks","content_sha256":"4557c0c409ca7c03ff180cd12f008cfa899607caa443fe8197ad379222974765","changelog":{"1.0.0-beta":{"date":" 2021-07-19","content":"1. [](#new)\n    * initial draft & commit"}}},"cloudflare":{"name":"Cloudflare Manager","version":"2.0.1","description":"Easy Cloudflare integration and management for Grav","description_html":"<p>Easy Cloudflare integration and management for Grav<\/p>","description_plain":"Easy Cloudflare integration and management for Grav","icon":"cloud","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=2.0.0-beta.1"},{"name":"api","version":">=1.0.0-beta.1"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/cloudflare","docs":"https:\/\/getgrav.org\/premium\/cloudflare\/docs","keywords":"grav, cloudflare, dns, ddos, security, cdn, cache, plugin, premium","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/cloudflare","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"2.0.1","date":"2026-05-29T20:07:21Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cloudflare\/2.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-cloudflare","premium":{"permalink":"grav-premium-cloudflare","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-cloudflare","button":"Buy Now","filename":"grav-plugin-cloudflare"},"slug":"cloudflare","install_path":"user\/plugins\/cloudflare","content_sha256":"22f9931c73a98e00cb13156a4230847f778d46173bf236509b0766e8c4aa0093","changelog":{"2.0.1":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n   * The Cloudflare sidebar entry and Purge Cache toolbar button are now hidden from users without the Cloudflare permission. Requires grav-plugin-api \u2265 1.0.0-rc.11.\n"},"2.0.0":{"date":"05\/04\/2026","content":"1. [](#new)\n    * Rewritten for Grav 2.0 \/ Admin-Next. Now requires the API plugin and Grav `>= 2.0.0`.\n    * DNS records list now has proper pagination, server-side sort, and per-column filters \u2014 no more 100-row cap.\n    * Settings, DNS, analytics, and cache purge all run through versioned REST endpoints under `\/api\/v1\/cloudflare\/*`.\n1. [](#improved)\n    * Cloudflare admin UI is now a single web component that matches the rest of Admin-Next, replacing the bundled Vue\/Vuex\/Tailwind app.\n    * Confirmation dialogs (purge, delete record) use the admin's standard confirm modal instead of native browser dialogs.\n1. [](#breaking)\n    * Drops support for Admin-Classic and Grav 1.7. Sites still on those should pin to the `1.x` line.\n"},"1.2.0":{"date":"12\/29\/2025","content":"1. [](#improved)\n    * Update to newer vendor libraries\n    * Fixed PHP 8.4 nullable types deprecation notices\n"},"1.1.0":{"date":"04\/29\/2024","content":"1. [](#new)\n   * Added a `purge-cache` CLI command\n   * Added new `admin.cloudflare` permission to allow Cloudflare-only admin users.\n1. [](#bugfix)\n   * Temporary fix for DNS listing pagination issue by setting page size to `100`\n   *"},"1.0.2":{"date":"11\/15\/2021","content":"1. [](#bugfix)\n   * Fixed issue with MX records where Priority was never cast as number [grav-premium-issues#183](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/183)\n   * Minor padding tweak to DNS Only row in the Record deletion table\n"},"1.0.1":{"date":"10\/23\/2021","content":"1. [](#bugfix)\n   * Removed dependency of an un-released version of Grav, causing the plugin from failing after install\n"},"1.0.0":{"date":"10\/22\/2021","content":"1. [](#new)\n    * Initial release!"}}},"image-comparer":{"name":"Image Comparer","version":"1.0.0","description":"Compare three images using sliders","description_html":"<p>Compare three images using sliders<\/p>","description_plain":"Compare three images using sliders","icon":"picture-o","author":{"name":"Karmalakas"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/Karmalakas\/grav-plugin-image-comparer","docs":"https:\/\/github.com\/Karmalakas\/grav-plugin-image-comparer\/blob\/main\/README.md","demo":"https:\/\/www.karmalakas.lt\/grav-plugins-demos\/image-comparer","keywords":"images, comparison, comparer, photos, slider, gallery, before, after","bugs":"https:\/\/github.com\/Karmalakas\/grav-plugin-image-comparer\/issues","license":"MIT","tag_name":"1.0.0","date":"2021-06-27T19:08:31Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/image-comparer\/1.0.0","repository":"https:\/\/github.com\/Karmalakas\/grav-plugin-image-comparer","slug":"image-comparer","install_path":"user\/plugins\/image-comparer","content_sha256":"c3fd929eb74b3c907eafff88a50c3f4a8140f0e6e809f17bbcd68de342dbcd05","changelog":{"1.0.0":{"date":" 06\/27\/2021","content":"1. [](#new)\n    * Initial version..."}}},"tecart-search":{"name":"TecArt Search","version":"0.1.9","description":"Search Grav Pages in Frontend via JavaScript. Search based on JQuery. The plugin is created by [TecArt GmbH](https:\/\/www.tecart.de). Useful for static websites without PHP support.","description_html":"<p>Search Grav Pages in Frontend via JavaScript. Search based on JQuery. The plugin is created by <a href=\"https:\/\/www.tecart.de\">TecArt GmbH<\/a>. Useful for static websites without PHP support.<\/p>","description_plain":"Search Grav Pages in Frontend via JavaScript. Search based on JQuery. The plugin is created by TecArt GmbH. Useful for static websites without PHP support.","icon":"search","author":{"name":"Christiana Holland-Jobb","email":"christiana.holland-jobb@tecart.de"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"admin","version":">=1.9.16"}],"homepage":"https:\/\/www.tecart.de","keywords":"grav, plugin, search, frontend, pages, javascript, jquery","license":"MIT","tag_name":"v0.1.9","date":"2024-11-14T11:55:35Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tecart-search\/0.1.9","repository":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-search","slug":"tecart-search","install_path":"user\/plugins\/tecart-search","content_sha256":"7c77580018e3cf0aeab93c432444a944b1f01cc0624841c1aa3cc991a1243607","changelog":{"0.1.9":{"date":"05\/07\/2024","content":"1. [](#added)\n- New function `createSearchIndexJsonExtern()` for external index creation via a URL.\n- Ability to create the search index externally via cURL, e.g. `curl yourdomain.de\/admin\/plugins\/tecart-search?tecartsearchindexer=create-extern`.\n\n   "},"0.1.8":{"date":"08\/17\/2023","content":"1. [](#improved)\n   * add backlink\n"},"0.1.6":{"date":"08\/15\/2023","content":"1. [](#improved)\n   * Change blueprint information and changelog format\n   "},"0.1.5":{"date":" 02\/12\/2021","content":"1. [](#update)\n   * modifiy assets include in onTwigSiteVariables()\n   "},"0.1.4":{"date":" 01\/10\/2021","content":"1. [](#new)\n    * set focus on searchbox input field when search is shown\n    * add option to set higher priority in search result list to pages\n"},"0.1.3":{"date":" 17\/08\/2021","content":"1. [](#update)\n    * update BlueprintHelper.php. Eliminate deprecated message > \"Grav\\Plugin\\Admin\\Admin::getPermissions() is deprecated since Admin 1.10, use $grav['permissions']->getInstances() instead\"\n"},"0.1.2":{"date":" 10\/06\/2021","content":"1. [](#update)\n    * update blueprints.yaml\n"},"0.1.1":{"date":" 10\/06\/2021","content":"1. [](#new)\n    * add ignore from search option to pages\n"},"0.1.0":{"date":" 05\/05\/2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"tecart-cookie-manager":{"name":"TecArt Cookie Manager","version":"0.1.15","description":"TecArt cookie banner manager provides a cookie banner plugin with complete cookie management in admin and extended frontend views. The plugin is created by [TecArt GmbH](https:\/\/www.tecart.de) and based on the popular [CookieConsent](https:\/\/cookieconsent.osano.com\/) JS-library by Osano.","description_html":"<p>TecArt cookie banner manager provides a cookie banner plugin with complete cookie management in admin and extended frontend views. The plugin is created by <a href=\"https:\/\/www.tecart.de\">TecArt GmbH<\/a> and based on the popular <a href=\"https:\/\/cookieconsent.osano.com\/\">CookieConsent<\/a> JS-library by Osano.<\/p>","description_plain":"TecArt cookie banner manager provides a cookie banner plugin with complete cookie management in admin and extended frontend views. The plugin is created by TecArt GmbH and based on the popular CookieConsent JS-library by Osano.","icon":"shield","author":{"name":"Christiana Holland-Jobb | TecArt GmbH","url":"https:\/\/www.tecart.de","email":"christiana.holland-jobb@tecart.de"},"dependencies":[{"name":"grav","version":">=1.7.23"},{"name":"admin","version":">=1.10.23"}],"homepage":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-cookie-manager","docs":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-cookie-manager\/blob\/main\/README.md","keywords":"grav, plugin, cookie, banner, manager, cookieconsent, opt-in, opt-out, tecart","bugs":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-cookie-manager\/issues","license":"MIT","tag_name":"v0.1.15","date":"2024-11-14T11:36:46Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tecart-cookie-manager\/0.1.15","repository":"https:\/\/github.com\/TecArt\/grav-plugin-tecart-cookie-manager","slug":"tecart-cookie-manager","install_path":"user\/plugins\/tecart-cookie-manager","content_sha256":"3282f23d9b855e21fa91b843e3cf6e7439a95fa73955674fbb7c869cf89ad1ce","changelog":{"0.1.15":{"date":"14\/11\/2024","content":"1. [](#improved)\n   * Fixed double quotation marks in description\n"},"0.1.14":{"date":"04\/05\/2024","content":"1. [](#improved)\n   * Add the `SameSite` attribute to `Lax` for the `cookieconsent_categories`, `cookieconsent_onscroll_scripts` and `cookieconsent_scripts` cookies to comply with Firefox warnings and ensure consistent behavior.\n   "},"0.1.13":{"date":"04\/04\/2024","content":"1. [](#improved)\n   * Add spanish translation\n   "},"0.1.12":{"date":"08\/17\/2023","content":"1. [](#improved)\n    * Add backlinks\n"},"0.1.9":{"date":"02\/02\/2023","content":"1. [](#improved)\n   * make script text label required in blueprint\n   * fix bug that removes active scripts with disable toggler\n"},"0.1.8":{"date":"01\/02\/2023","content":"1. [](#improved)\n   * Add french translation\n"},"0.1.7":{"date":"3\/2022","content":"1. [](#new)\n   * add option to include a script only on specific pages\n"},"0.1.6":{"date":"02\/02\/2022","content":"1. [](#new)\n   * fix a missing |raw filter\n"},"0.1.5":{"date":"02\/02\/2022","content":"1. [](#new)\n   * add pull requests from github to solve bugs\n"},"0.1.4":{"date":"12\/12\/2021","content":"1. [](#new)\n   * add \"include on scroll\" and\/or \"include with delay\" option for scripts\n   * modify assets include in onTwigSiteVariables()\n"},"0.1.3":{"date":"08\/08\/2021","content":"1. [](#improved)\n   * Eliminate deprecated message  \"Non-static method Grav\\Plugin\\TecartCookieManager\\Classes\\CookieManager\\CookieManager::getCategoriesForBlueprintOptions() should not be called statically\"\n"},"0.1.2":{"date":"07\/07\/2021","content":"1. [](#improved)\n   * Update blueprints.yaml\n"},"0.1.1":{"date":"06\/06\/2021","content":"1. [](#improved)\n   * Correct README.md\n"},"0.1.0":{"date":"12\/12\/2020","content":"1. [](#improved)\n   * plugin to tecart cookie manager\n   * use latest build version assets\/vendor\/cookieconsent\/cookieconsent.min.js\n   * Actual cookie javascript source link:\n     https:\/\/cdn.jsdelivr.net\/npm\/cookieconsent@3\/build\/cookieconsent.min.js\n     https:\/\/cdn.jsdelivr.net\/npm\/cookieconsent@3\/build\/cookieconsent.min.css\n   * add admin menu entry for \"cookie manager\"\n   * add admin cookie manager functions with tabs for banner data, categories and scripts\n   * add frontend output with cookie consent banner and cookie settings modal\n   * add and remove cookie, scripts when item is activated or deactivated in frontend by user or  in admin modul\n\n"}}},"custom-http-headers":{"name":"Custom HTTP Headers","version":"1.0.4","description":"Ability add custom HTTP Headers for Content Security Policy (CSP), Cross Origin Resource Sharing (CORS), Referrer-Policy, Permissions Policy, and other security needs","description_html":"<p>Ability add custom HTTP Headers for Content Security Policy (CSP), Cross Origin Resource Sharing (CORS), Referrer-Policy, Permissions Policy, and other security needs<\/p>","description_plain":"Ability add custom HTTP Headers for Content Security Policy (CSP), Cross Origin Resource Sharing (CORS), Referrer-Policy, Permissions Policy, and other security needs","icon":"globe","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-custom-http-headers","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-custom-http-headers\/blob\/develop\/README.md","keywords":"grav, plugin, Content-Security-Policy, CSP, Cross Origin Resource Sharing, CORS, Strict-Transport-Security, Referrer-Policy, Permissions-Policy, X-Xss-Protection","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-custom-http-headers\/issues","license":"MIT","tag_name":"1.0.4","date":"2026-05-05T14:10:52Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/custom-http-headers\/1.0.4","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-custom-http-headers","slug":"custom-http-headers","install_path":"user\/plugins\/custom-http-headers","content_sha256":"96e3dc5b25937fa699dc6983e3e40cc63435cf8fa35090e57c8622e6b9db2126","changelog":{"1.0.4":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.3":{"date":"05\/24\/2024","content":"1. [](#new)\n   * Remove default`X-Frame-Options` as it can lead to issues [#4](https:\/\/github.com\/trilbymedia\/grav-plugin-custom-http-headers\/pull\/4)\n"},"1.0.2":{"date":"05\/24\/2024","content":"1. [](#new)\n   * Changed the default`X-Frame-Options` to `SAMEORIGIN` [#3](https:\/\/github.com\/trilbymedia\/grav-plugin-custom-http-headers\/pull\/3)\n"},"1.0.1":{"date":"05\/19\/2021","content":"1. [](#new)\n   * Added the ability to configure `adding` and `removing` HTTP headers from a page via `custom_http_headers:` frontmatter element.\n"},"1.0.0":{"date":"07\/07\/2021","content":"1. [](#new)\n    * Initial release"}}},"viewer3d":{"name":"Viewer3d","version":"0.1.0","description":"A 3D object viewer plugin for GravCMS","description_html":"<p>A 3D object viewer plugin for GravCMS<\/p>","description_plain":"A 3D object viewer plugin for GravCMS","icon":"plug","author":{"name":"X-Ryl669","email":"boite.pour.spam@gmail.com"},"dependencies":[{"name":"grav","version":">=1.6.0"},{"name":"shortcode-core","version":">=5.0.0"}],"homepage":"https:\/\/github.com\/X-Ryl669\/grav-plugin-viewer3d","docs":"https:\/\/github.com\/X-Ryl669\/grav-plugin-viewer3d\/blob\/develop\/README.md","demo":"https:\/\/blog.cyril.by\/en\/documentation\/3d%20models\/filament-detector","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/X-Ryl669\/grav-plugin-viewer3d\/issues","license":"MIT","tag_name":"v1.0.0","date":"2021-08-23T15:40:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/viewer3d\/0.1.0","repository":"https:\/\/github.com\/X-Ryl669\/grav-plugin-viewer3d","slug":"viewer3d","install_path":"user\/plugins\/viewer3d","content_sha256":"503c519a4eac2cc4ab0fc02a35427322894775808aad1e7c8c349637de668887","changelog":{"1.0.0":{"date":"08\/23\/2021","content":"1. [](#new)\n    * Support for multiple viewer per page\n    * Add zoom factor feature to limit\/speed or disable zooming the model\n"},"0.9.9":{"date":" 07\/02\/2021","content":"1. [](#new)\n    * All features are now fully optional and selectable from the plugin's main setting page\n"},"0.9.8":{"date":" 06\/29\/2021","content":"1. [](#new)\n    * Add support for section view (cut view) in viewer\n"},"0.9.7":{"date":" 06\/25\/2021","content":"1. [](#new)\n    * Reworked the panel information to it's collapsible and dynamic\n"},"0.9.6":{"date":" 06\/24\/2021","content":"1. [](#new)\n    * Compute volume, filament length and weight\n"},"0.9.5":{"date":" 06\/23\/2021","content":"1. [](#new)\n    * Add navigation cube\n    * Add volume computation\n"},"0.1.0":{"date":" 04\/28\/2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"extrawatch-grav-stats":{"name":"ExtraWatch - Real-time analytics and Stats","version":"1.0.1","description":"extrawatch","description_html":"<p>extrawatch<\/p>","description_plain":"extrawatch","icon":"plug","author":{"name":"extrawatch.com"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/www.extrawatch.com","docs":"https:\/\/github.com\/extrawatch\/extrawatch-grav-stats\/","demo":"https:\/\/www.extrawatch.com","keywords":"grav, plugin, tracking, google, analytics, stats, real time","bugs":"https:\/\/github.com\/extrawatch\/extrawatch-grav-stats\/issues","license":"MIT","tag_name":"1.0.1","date":"2021-04-18T20:04:34Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/extrawatch-grav-stats\/1.0.1","repository":"https:\/\/github.com\/extrawatch\/extrawatch-grav-stats","slug":"extrawatch-grav-stats","install_path":"user\/plugins\/extrawatch-grav-stats","content_sha256":"9ea85b92bed5572102b0c12718e3ca5a4f43bc87b9607a3311cb9b1ffafd46c1","changelog":{"1.0.1":{"date":" 04\/18\/2021","content":"1. [](#new)\n    * Initial plugin release"}}},"moceanapi-form-notification":{"name":"MoceanAPI Form SMS Notification","version":"1.0.1","description":"SMS notification for Grav form whenever there is submission on your Grav form.","description_html":"<p>SMS notification for Grav form whenever there is submission on your Grav form.<\/p>","description_plain":"SMS notification for Grav form whenever there is submission on your Grav form.","icon":"plug","author":{"name":"MoceanAPI","email":"support@moceanapi.com"},"dependencies":[{"name":"form","version":"*"},{"name":"guzzlehttp\/guzzle","version":">=6.3"}],"homepage":"https:\/\/github.com\/moceanapi\/grav-form-notification","docs":"https:\/\/github.com\/moceanapi\/grav-form-notification\/blob\/develop\/README.md","demo":"https:\/\/moceanapi.com","keywords":"grav,plugin,notification,sms,moceanapi,form","bugs":"https:\/\/github.com\/moceanapi\/grav-form-notification\/issues","license":"MIT","tag_name":"1.0.1","date":"2021-10-11T02:13:31Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/moceanapi-form-notification\/1.0.1","repository":"https:\/\/github.com\/MoceanAPI\/grav-form-notification","slug":"moceanapi-form-notification","install_path":"user\/plugins\/moceanapi-form-notification","content_sha256":"920f24b6dbccb8905695df50ed885ae835c5a1c7307779535a7f752d27c55936","changelog":{"1.0.1":{"date":"7\/10\/2021","content":"1. [](#bugfix)\n    * Fixes for installation.\n"},"1.0.0":{"date":"22\/04\/2021","content":"1. [](#new)\n    * Initial release."}}},"automagic-images":{"name":"Automagic Images","version":"1.2","description":"Generate responsive versions of images as they are uploaded, and add sizes directives per CSS class.","description_html":"<p>Generate responsive versions of images as they are uploaded, and add sizes directives per CSS class.<\/p>","description_plain":"Generate responsive versions of images as they are uploaded, and add sizes directives per CSS class.","icon":"picture-o","author":{"name":"Netzhexe","email":"ak@netzhexe.de"},"homepage":"https:\/\/github.com\/skinofthesoul\/grav-plugin-automagic-images","docs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-automagic-images\/blob\/master\/README.md","keywords":"images, responsive, srcset, sizes","bugs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-automagic-images\/issues","license":"MIT","tag_name":"v1.2","date":"2026-04-24T16:01:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/automagic-images\/1.2","repository":"https:\/\/github.com\/skinofthesoul\/grav-plugin-automagic-images","slug":"automagic-images","install_path":"user\/plugins\/automagic-images","content_sha256":"c39c4de686114c8a202bc6c6ce645890c55081b9383c30e73d2f73fb90f02ad1","changelog":{"1.2":{"date":" 24-04-2026","content":"1. [](#bugfix)\n    * the last version turned out to purge javascript tags, new version of HTML parsing implemented\n"},"1.1.1":{"date":" 01-04-2026","content":"1. [](#bugfix)\n    * version number was missing from blueprints.yaml, so no automatic updates\n\n"},"1.1":{"date":" 18-03-2026","content":"1. [](#bugfix)\n    * line breaks are now not removed from output (this interfered with code blocks)\n2. [](#improved)\n    * removed \u201cresized image 0 times\u201d message\n\n"},"1.0.5":{"date":" 14-06-2021","content":"1. [](#bugfix)\n    * included vendor code\u2026\n"},"1.0.4":{"date":" 11-06-2021","content":"1. [](#bugfix)\n    * removed debugging code\n"},"1.0.3":{"date":" 10-06-2021","content":"1. [](#improved)\n    * reverted the output changes because they didn't work for twig-generated content\n"},"1.0.2":{"date":" 27-05-2021","content":"1. [](#bugfix)\n    * fixed a bit of rogue code from the last update\n2. [](#improved)\n    * added some more information in the README about Grav\u2019s resizing bugs\n\n"},"1.0.1":{"date":" 25-05-2021","content":"1. [](#improved)\n    * made the output changes that add the sizes attributes cacheable\n\n"},"1.0":{"date":" 10-05-2021","content":"1. [](#new)\n    * Initial release as a fork from Fredrik Ekelund\u2019s plugin Resize Images, which seems unmaintained\n2. [](#improved)\n    * added translation file and German translation for Admin settings\n    * adapted code from Ole Vik\u2019s plugin Image Scrset to allow sizes attributes to be set per CSS class in the plugin settings"}},"dependencies":[]},"custom-banner":{"name":"Custom Banner","version":"1.0.16","description":"Add a custom banner to your Grav site","description_html":"<p>Add a custom banner to your Grav site<\/p>","description_plain":"Add a custom banner to your Grav site","icon":"bookmark","author":{"name":"Ari Cooper-Davis","email":"grav@cooper-davis.net"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/aricooperdavis\/grav-plugin-custom-banner","docs":"https:\/\/github.com\/aricooperdavis\/grav-plugin-custom-banner\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/aricooperdavis\/grav-plugin-custom-banner\/issues","license":"MIT","tag_name":"1.0.16","date":"2023-01-31T10:28:09Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/custom-banner\/1.0.16","repository":"https:\/\/github.com\/aricooperdavis\/grav-plugin-custom-banner","slug":"custom-banner","install_path":"user\/plugins\/custom-banner","content_sha256":"54e2a95b5d281d6d3fd6f8206423cf5167cb01f6153deb5b15fd1b36582390b4","changelog":{"1.0.16":{"date":"31-01-2023","content":"1. [](#new)\n\t* German language support added (thanks Gabbalo!)\n"},"1.0.15":{"date":"15-10-2022","content":"1. [](#new)\n    * New option to enable or disable the action button\n2. [](#improved)\n    * Improve documentation (README.md)\n    * Improved default configuration\n"},"1.0.14":{"date":"15-10-2022","content":"1. [](#bugfix)\n    * Correct changelog format\n"},"1.0.13":{"date":"15-10-2022","content":"1. [](#improved)\n    * Animate banner show\/hide\n"},"1.0.12":{"date":"14-10-2022","content":"1. [](#improved)\n    * CDN fix now defaults to non-visible banner revealed by JS\n2. [](#new)\n    * Added ability to whitelist pages for showing banner\n"},"1.0.11":{"date":"10-10-2022","content":"1. [](#improved)\n    * Align banner content left by default\n"},"1.0.10":{"date":"10-10-2022","content":"1. [](#improved)\n    * Improved flex layout\n"},"1.0.9":{"date":"10-10-2022","content":"1. [](#improved)\n    * Changed container from <p> to <div> to allow non-inline elements\n    * Added overflow-wrap: anywhere to improve responsive behaviour \n"},"1.0.8":{"date":"26-10-2021","content":"1. [](#improved)\n    * Changed CDN Fix behaviour to use client side JS to hide banner\n    * Added strict SameSite attribute to dismissal choice cookie \n"},"1.0.7":{"date":"19-10-2021","content":"1. [](#improved)\n    * Added option that fixes behaviour when site is served behind CDN\n"},"1.0.6":{"date":"24-07-2021","content":"1. [](#improved)\n    * Improved formatting of banner action buttons on mobile devices\n"},"1.0.5":{"date":"03-06-2021","content":"1. [](#bugfix)\n    * Fixed install via admin plugin by shipping vendor folder\n"},"1.0.4":{"date":"29-04-2021","content":"1. [](#improved)\n    * Processing stops if dismiss cookie is set\n    * Dismiss cookie is unset on plugin config change\n"},"1.0.3":{"date":"28-04-2021","content":"1. [](#new)\n    * Added option to choose banner location (top or bottom)\n2. [](#improved)\n    * Improved readme with Screenshots\n    * Improved config page with sections\n"},"1.0.2":{"date":"28-04-2021","content":"1. [](#new)\n    * Added optional dismiss button to dismiss banner for 30 mins\n"},"1.0.1":{"date":"28-04-2021","content":"1. [](#improved)\n    * Unset config values are now merged with defaults to catch unset value errors\n"},"1.0.0":{"date":" 27-04-2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"shortcode-media":{"name":"Shortcode Media","version":"1.1.1","description":"A variety of media related shortcodes","description_html":"<p>A variety of media related shortcodes<\/p>","description_plain":"A variety of media related shortcodes","icon":"code","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.6.4"},{"name":"shortcode-core","version":">=4.2.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-media","keywords":"shortcodes, slideshare","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-media\/issues","license":"MIT","tag_name":"1.1.1","date":"2026-05-05T14:09:19Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-media\/1.1.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-media","slug":"shortcode-media","install_path":"user\/plugins\/shortcode-media","content_sha256":"5fdb5f9a0f70a0939f7658f56e00facdd2b0cdb3262462d413327a43ab413649","changelog":{"1.1.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.1.0":{"date":"11\/17\/2025","content":"1. [](#new)\n    * Added **Editor Pro** integration for the IFrame, PDF\/DocViewer, and SlideShare shortcodes\n"},"1.0.0":{"date":"04\/08\/2021","content":"1. [](#new)\n    * Pass phpstan level 1 tests\n    * Requires shortcode-core plugin v4.2.0\n1. [](#improved)\n    * Code cleanup"}}},"swiper-js":{"name":"SwiperJS","version":"1.1.3","description":"SwiperJS implementation for Grav CMS","description_html":"<p>SwiperJS implementation for Grav CMS<\/p>","description_plain":"SwiperJS implementation for Grav CMS","icon":"ellipsis-h","author":{"name":"Karmalakas"},"dependencies":[{"name":"grav","version":">=1.7.5"}],"homepage":"https:\/\/github.com\/Karmalakas\/grav-plugin-swiper-js","docs":"https:\/\/github.com\/Karmalakas\/grav-plugin-swiper-js\/blob\/develop\/README.md","keywords":"grav, plugin, photos, slider, swiper, swiperjs, carousel","bugs":"https:\/\/github.com\/Karmalakas\/grav-plugin-swiper-js\/issues","license":"MIT","tag_name":"1.1.3","date":"2022-05-03T05:44:42Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/swiper-js\/1.1.3","repository":"https:\/\/github.com\/Karmalakas\/grav-plugin-swiper-js","slug":"swiper-js","install_path":"user\/plugins\/swiper-js","content_sha256":"902972b9b6c817c14359bc5310da56516b17a4baa324e29c51c5a3d15116627e","changelog":{"1.1.3":{"date":" 03-05-2022","content":"1. [](#bugfix)\n   * Fix GPM updates\n"},"1.1.2":{"date":" 02-05-2022","content":"1. [](#bugfix)\n   * Fix slide height CSS calculation on wide but short screens\/windows\n"},"1.1.1":{"date":" 04-01-2022","content":"1. [](#bugfix)\n   * Fix overlay switch when multiple same type videos are used.\n"},"1.1.0":{"date":" 22-06-2021","content":"1. [](#improved)\n    * Same behavior for local and YT videos - has initial overlay, which is   \n      removed on playback and added back on pause. Unable to swipe on playback,  \n      but accessible controls. On pause no controls, but able to swipe.\n"},"1.0.1":{"date":" 28-02-2021","content":"1. [](#bugfix)\n    * Fix saving swiper form data to unrelated pages frontmatter\n"},"1.0.0":{"date":" 17-02-2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"flex-objects-json":{"name":"Flex Objects Json","version":"0.1.0","description":"Add JSON templates for Flex Objects","description_html":"<p>Add JSON templates for Flex Objects<\/p>","description_plain":"Add JSON templates for Flex Objects","icon":"list-alt","author":{"name":"Karmalakas"},"dependencies":[{"name":"grav","version":">=1.7.5"},{"name":"flex-objects","version":">=1.0.3"}],"homepage":"https:\/\/github.com\/Karmalakas\/grav-plugin-flex-objects-json","docs":"https:\/\/github.com\/Karmalakas\/grav-plugin-flex-objects-json\/blob\/develop\/README.md","keywords":"grav, plugin, flex-objects, json, templates, theme","bugs":"https:\/\/github.com\/Karmalakas\/grav-plugin-flex-objects-json\/issues","license":"MIT","tag_name":"0.1.0","date":"2021-03-19T22:38:42Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/flex-objects-json\/0.1.0","repository":"https:\/\/github.com\/Karmalakas\/grav-plugin-flex-objects-json","slug":"flex-objects-json","install_path":"user\/plugins\/flex-objects-json","content_sha256":"2fbe10d7843d201cac24e3daac17e5778c64b72e3e83a0e24d9c804c016a621b","changelog":{"0.1.0":{"date":" 19-03-2021","content":"1. [](#new)\n    * Initial version"}}},"translate-date":{"name":"Translate Date","version":"0.4.0","description":"Define date formats for each language and easily use for dates in your templates","description_html":"<p>Define date formats for each language and easily use for dates in your templates<\/p>","description_plain":"Define date formats for each language and easily use for dates in your templates","icon":"calendar","author":{"name":"Karmalakas"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/Karmalakas\/grav-plugin-translate-date","docs":"https:\/\/github.com\/Karmalakas\/grav-plugin-translate-date\/blob\/main\/README.md","demo":"https:\/\/www.karmalakas.lt\/grav-plugins-demos\/translate-date","keywords":"grav, plugin, date, translation, languages, multi-language","bugs":"https:\/\/github.com\/Karmalakas\/grav-plugin-translate-date\/issues","license":"MIT","tag_name":"0.4.0","date":"2023-11-17T17:40:12Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/translate-date\/0.4.0","repository":"https:\/\/github.com\/Karmalakas\/grav-plugin-translate-date","slug":"translate-date","install_path":"user\/plugins\/translate-date","content_sha256":"126968068b255269d1f2e1c787a2cc1ef3670ff715a80eab15c065ec32eca3ac","changelog":{"0.4.0":{"date":" 17-11-2023","content":"1. [](#new)\n   * Add Czech translations for formats\n   * Add Indonesian translations for formats\n   * Add Spanish translations for formats\n2. [](#improved)\n   * Update README\n"},"0.3.0":{"date":" 29-01-2023","content":"1. [](#new)\n   * Add German translations for formats\n   * Add defaults config UI to Admin\n2. [](#improved)\n   * Update README\n"},"0.2.4":{"date":" 22-06-2021","content":"1. [](#bugfix)\n   * Fix README link\n1. [](#new)\n   * Add demo page link\n"},"0.2.3":{"date":" 21-06-2021","content":"1. [](#bugfix)\n   * Fix default EN datetime format\n"},"0.2.2":{"date":" 20-03-2021","content":"1. [](#bugfix)\n   * Fix how language is parsed if not provided\n2. [](#improved)\n   * Update README\n   * Prepare for a release to submit to GPM\n"},"0.2.1":{"date":" 11-03-2021","content":"1. [](#bugfix)\n   * Fix getting custom format for Intl\n"},"0.2.0":{"date":" 11-03-2021","content":"1. [](#new)\n   * Add Intl support (may choose via config)\n"},"0.1.1":{"date":" 09-03-2021","content":"1. [](#bugfix)\n   * Fallback to `GRAV.` translation if custom translation not found\n"},"0.1.0":{"date":" 08-03-2021","content":"1. [](#new)\n   * ChangeLog started..."}}},"photoswipe":{"name":"Photoswipe","version":"1.2.1","description":"Add Photoswipe gallery to your pages","description_html":"<p>Add Photoswipe gallery to your pages<\/p>","description_plain":"Add Photoswipe gallery to your pages","icon":"image","author":{"name":"Karmalakas","email":"cronus.raven@gmail.com"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/Karmalakas\/grav-plugin-photoswipe","docs":"https:\/\/github.com\/Karmalakas\/grav-plugin-photoswipe\/blob\/develop\/README.md","demo":"https:\/\/www.kacinskas.lt\/en\/photography\/best-shots","keywords":"grav, plugin, gallery, photo, photoswipe, lightbox","bugs":"https:\/\/github.com\/Karmalakas\/grav-plugin-photoswipe\/issues","license":"MIT","tag_name":"1.2.1","date":"2022-10-22T09:20:52Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/photoswipe\/1.2.1","repository":"https:\/\/github.com\/Karmalakas\/grav-plugin-photoswipe","slug":"photoswipe","install_path":"user\/plugins\/photoswipe","content_sha256":"98cb24cde9c0e51418ff53593321abae2acd70094008a44a7d46f73ebd1aae06","changelog":{"1.2.1":{"date":" 22-10-2022","content":"1. [](#bugfix)\n   * Fix version check in GPM\n"},"1.2.0":{"date":" 20-10-2022","content":"1. [](#new)\n   * Add CSS styles (fixes Y offset calculation)\n"},"1.1.0":{"date":" 21-06-2021","content":"1. [](#new)\n   * Add default template\n"},"1.0.1":{"date":" 14-03-2021","content":"1. [](#bugfix)\n   * Fix date format in changelog\n"},"1.0.0":{"date":" 14-03-2021","content":"1. [](#new)\n    * Initial version"}}},"dns-blacklist":{"name":"DNS Blacklist","version":"1.0.4","description":"Checks an IP address via mutliple DNS Blacklists","description_html":"<p>Checks an IP address via mutliple DNS Blacklists<\/p>","description_plain":"Checks an IP address via mutliple DNS Blacklists","icon":"ban","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-dns-blacklist","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-dns-blacklist\/blob\/develop\/README.md","keywords":"grav, plugin, dnsbl, spamhaus, spamcop","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-dns-blacklist\/issues","license":"MIT","tag_name":"1.0.4","date":"2026-05-05T14:10:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/dns-blacklist\/1.0.4","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-dns-blacklist","slug":"dns-blacklist","install_path":"user\/plugins\/dns-blacklist","content_sha256":"c002a07ed2e17573ce4bb01e766c7d20f1971cbe11eecf72deb1233e5834fa62","changelog":{"1.0.4":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.3":{"date":"12\/29\/2025","content":"1. [](#improved)\n    * Improved PHP 8.4 compatibility\n"},"1.0.2":{"date":"03\/10\/2021","content":"1. [](#improved)\n    * Improved instructions in readme\n1. [](#bugfix)\n    * Fixed an issue with Twig variable not working\n"},"1.0.1":{"date":"03\/04\/2021","content":"1. [](#new)\n    * Added the ability to pass in an IP to the Form action\n1. [](#improved)\n    * Reset blacklist provider list to a more sensible set of defaults\n    * Improved the README.md with explanation about the blacklist providers (thanks @marziyeh)"},"1.0.0":{"date":"03\/04\/2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"logger-channels":{"name":"Logger Channels","version":"1.1.2","description":"Add or replace logger handlers and targets for any grav system.","description_html":"<p>Add or replace logger handlers and targets for any grav system.<\/p>","description_plain":"Add or replace logger handlers and targets for any grav system.","icon":"paperclip","author":{"name":"Stephan Strate","email":"hello@stephan.codes"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/stephan-strate\/grav-plugin-logger-channels","docs":"https:\/\/github.com\/stephan-strate\/grav-plugin-logger-channels\/blob\/develop\/README.md","keywords":"grav, plugin, log, monolog","bugs":"https:\/\/github.com\/stephan-strate\/grav-plugin-logger-channels\/issues","license":"MIT","tag_name":"1.1.2","date":"2024-05-08T06:17:55Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/logger-channels\/1.1.2","repository":"https:\/\/github.com\/stephan-strate\/grav-plugin-logger-channels","slug":"logger-channels","install_path":"user\/plugins\/logger-channels","content_sha256":"bdba177f3d3fb13640b6b95f9c1ad046ef7586f11f6c41eda526a21a0f31b7fe","changelog":{"1.1.2":{"date":"05\/08\/2024","content":"1. [](#bugfix)\n    * Duplicate keys in blueprints.yaml [#6](https:\/\/github.com\/stephan-strate\/grav-plugin-logger-channels\/pull\/6)\n"},"1.1.1":{"date":"11\/22\/2021","content":"1. [](#improved)\n   * Replaced Discord handler\n"},"1.1.0":{"date":"11\/08\/2021","content":"1. [](#new)\n    * Graylog handler\n"},"1.0.0":{"date":" 02\/23\/2021","content":"1. [](#new)\n    * Discord and Telegram handlers\n    * Handler structure"}}},"password-protection":{"name":"Password Protection","version":"0.1.2","description":"Password protection is a simple plugin which allows you to specify a uniqe password for a page. Every page can have a different password.","description_html":"<p>Password protection is a simple plugin which allows you to specify a uniqe password for a page. Every page can have a different password.<\/p>","description_plain":"Password protection is a simple plugin which allows you to specify a uniqe password for a page. Every page can have a different password.","icon":"lock","author":{"name":"Tom Schwarz","email":"hi@tomschwarz.info"},"dependencies":[{"name":"admin"}],"homepage":"https:\/\/github.com\/tomschwarz\/grav-plugin-password-protection","docs":"https:\/\/github.com\/tomschwarz\/grav-plugin-password-protection\/blob\/master\/README.md","keywords":"grav, plugin, simple, password, protection, private","bugs":"https:\/\/github.com\/tomschwarz\/grav-plugin-password-protection\/issues","license":"MIT","tag_name":"v0.1.2","date":"2021-02-17T15:45:15Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/password-protection\/0.1.2","repository":"https:\/\/github.com\/qw3rtty\/grav-plugin-password-protection","slug":"password-protection","install_path":"user\/plugins\/password-protection","content_sha256":"faa29b3567c149276181e080c01c72db68d57c36a2bc1da865f660aa9c4e2d7c","changelog":{"0.1.2":{"date":" 17\/02\/2021","content":"1. [](#enhancement)\n    * Add markdown support for \"Description\" field\n"},"0.1.1":{"date":" 17\/02\/2021","content":"1. [](#bugfixes)\n    * Fix \"onAdminSave\" if no \"header()\" method exists\n"},"0.1.0":{"date":" 08\/01\/2021","content":"1. [](#new)\n    * Initial commit\n"}}},"affiliate-links":{"name":"Affiliate Links","version":"1.0.0","description":"Automatically add affiliate links to your pages","description_html":"<p>Automatically add affiliate links to your pages<\/p>","description_plain":"Automatically add affiliate links to your pages","icon":"code","author":{"name":"X-Ryl669","url":"https:\/\/blog.cyril.by","email":"boite.pour.spam@gmail.com"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/X-Ryl669\/grav-affiliate-links","keywords":"affiliate links, amazon, ebay, aliexpress, banggood","bugs":"https:\/\/github.com\/X-Ryl669\/grav-affiliate-links\/issues","license":"MIT","tag_name":"v1.0.1","date":"2021-02-02T17:21:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/affiliate-links\/1.0.0","repository":"https:\/\/github.com\/X-Ryl669\/grav-affiliate-links","slug":"affiliate-links","install_path":"user\/plugins\/affiliate-links","content_sha256":"90707a594fa87003fd27dc7881176c6ddebcec3a3919ec12205db9341e180c6a","changelog":{"1.0.1":{"date":" 02-02-2021","content":"1. [](#bugfix)\n    * Fix invalid key access in an array...\n\n"},"1.0.0":{"date":" 01-02-2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"matomo":{"name":"Matomo","version":"1.2.1","description":"Integrate Matomo analytics into Grav CMS","description_html":"<p>Integrate Matomo analytics into Grav CMS<\/p>","description_plain":"Integrate Matomo analytics into Grav CMS","icon":"bar-chart","author":{"name":"NicoHood","email":"grav@nicohood.de"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/NicoHood\/grav-plugin-matomo","docs":"https:\/\/github.com\/NicoHood\/grav-plugin-matomo\/blob\/develop\/README.md","keywords":"grav, plugin, matomo, piwik, tracking, analytics, log, visitor, count","bugs":"https:\/\/github.com\/NicoHood\/grav-plugin-matomo\/issues","license":"GPL3","tag_name":"1.3.0","date":"2021-03-06T07:23:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/matomo\/1.2.1","repository":"https:\/\/github.com\/NicoHood\/grav-plugin-matomo","slug":"matomo","install_path":"user\/plugins\/matomo","content_sha256":"dd01f966e88d95cce963352983e5bddd99a027e3ab6bd65112f0a4128757e35b","changelog":{"1.3.0":{"date":" 03\/06\/2021","content":"1. [](#new)\n\n    * Log php tracker errors instead of failing hard.\n\n    * Add support for client IP address blocking and a blocking cookie #2\n"},"1.2.1":{"date":" 12\/31\/2020","content":"1. [](#bugfix)\n    * Fixed language string to support Grav 1.7\n"},"1.2.0":{"date":" 12\/23\/2020","content":"1. [](#new)\n    * Added Grav Admin Plugin Dashboard integration\n"},"1.1.0":{"date":" 12\/23\/2020","content":"1. [](#new)\n    * Added javascript tracking support\n"},"1.0.0":{"date":" 12\/22\/2020","content":"1. [](#new)\n    * Initial release"}}},"shortcode-gallery-plusplus":{"name":"Shortcode Gallery++","version":"1.6.0","description":"A Shortcode extension to add sweet galleries with a lightbox to your Grav website.","description_html":"<p>A Shortcode extension to add sweet galleries with a lightbox to your Grav website.<\/p>","description_plain":"A Shortcode extension to add sweet galleries with a lightbox to your Grav website.","icon":"code","author":{"name":"Maximilian Salomon","email":"msal.coding@gmail.com"},"dependencies":[{"name":"grav","version":">=1.7.4"},{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/sal0max\/grav-plugin-shortcode-gallery-plusplus","docs":"https:\/\/github.com\/sal0max\/grav-plugin-shortcode-gallery-plusplus\/blob\/master\/README.md","keywords":"grav, plugin, shortcode, gallery, glightbox, justifiedgallery","bugs":"https:\/\/github.com\/sal0max\/grav-plugin-shortcode-gallery-plusplus\/issues","license":"MIT","tag_name":"1.6.0","date":"2023-04-18T00:51:19Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-gallery-plusplus\/1.6.0","repository":"https:\/\/github.com\/sal0max\/grav-plugin-shortcode-gallery-plusplus","slug":"shortcode-gallery-plusplus","install_path":"user\/plugins\/shortcode-gallery-plusplus","content_sha256":"b13356af0b82ce603d232e003615471c958872584d0901c97cd52363ad6d947a","changelog":{"1.6.0":{"date":" 04\/18\/2023","content":"1. [](#new)\n   * New option: configure the thumbnail size.\n2. [](#improved)\n   * Further improvements on thumbnail generation.\n"},"1.5.0":{"date":" 10\/02\/2022","content":"1. [](#new)\n   * New option to disable the `title` attribute on images.\n2. [](#bugfix)\n   * Fix a problem with Gantry.\n3. [](#improved)\n   * Better thumbnail generation.\n"},"1.4.2":{"date":" 05\/25\/2022","content":"1. [](#improved)\n   * Support for `loading` attributes on image thumbnails. To learn more, see\n      * https:\/\/learn.getgrav.org\/17\/advanced\/grav-development\/grav-17-upgrade-guide#media\n      * https:\/\/learn.getgrav.org\/17\/content\/media#loading\n"},"1.4.1":{"date":" 05\/06\/2022","content":"1. [](#improved)\n    * Make this plugin compatible with older PHP versions.\n"},"1.4.0":{"date":" 05\/05\/2022","content":"1. [](#new)\n    * Option configure \"See more\" text and text length until \"See more appears\" for the lightbox.\n"},"1.3.0":{"date":" 05\/04\/2022","content":"1. [](#new)\n    * Option to disable thumbnails on RSS, Atom and JSON feeds from the Feed plugin\n2. [](#improved)\n    * Updated GLightbox to [3.2.0](https:\/\/github.com\/biati-digital\/glightbox\/releases\/tag\/3.2.0)\n"},"1.2.1":{"date":" 09\/17\/2021","content":"1. [](#improved)\n    * Improved formatting of the generated HTML.\n"},"1.2.0":{"date":" 09\/07\/2021","content":"1. [](#new)\n    * The thumbnail images in the gallery will now use a smaller resolution, to improve performance. Change the thumbnail size in the settings!\n2. [](#bugfix)\n    * The toggle buttons in the settings were too narrow for some languages, cutting off text. This is fixed now.\n3. [](#improved)\n    * This plugin is now compatible to be used with all the caching features of Grav.\n"},"1.1.1":{"date":" 08\/29\/2021","content":"1. [](#improved)\n   * Updated GLightbox to [3.1.0](https:\/\/github.com\/biati-digital\/glightbox\/releases\/tag\/3.1.0)\n"},"1.1.0":{"date":" 06\/03\/2021","content":"1. [](#bugfix)\n   * Sometimes the descriptions could get mixed up and be displayed with the wrong image. This is now fixed.\n2. [](#new)\n   * You can now provide different values for **captions** (shown on the images in the gallery) and **descriptions** (shown in the lightbox):  \n     An images `alt`-value will be the caption, its `title`-value the description. Example:  \n     `![image caption](image.jpg \"image description\")`  \n     The descriptions can even be html formatted:  \n     `![image caption](image.jpg \"<strong>Descriptions<\/strong> can also<br>be <i>HTML<\/i> formatted.\")`\n"},"1.0.6":{"date":" 05\/23\/2021","content":"1. [](#improved)\n   * Updated GLightbox to 3.0.9\n"},"1.0.5":{"date":" 04\/10\/2021","content":"1. [](#improved)\n   * Updated GLightbox to 3.0.8\n"},"1.0.4":{"date":" 04\/04\/2021","content":"1. [](#bugfix)\n   * Fixes a problem where no images would be shown when used together with the `trilbymedia\/grav-plugin-image-captions` plugin\n"},"1.0.3":{"date":" 02\/10\/2021","content":"1. [](#bugfix)\n   * Provide backwards compatibility with PHP 7\n2. [](#bugfix)\n   * Fixes a problem where this plugin wouldn't work properly any more, when caching is enabled in the system settings\n"},"1.0.2":{"date":" 02\/05\/2021","content":"1. [](#bugfix)\n   * Added missing jQuery dependency\n   "},"1.0.1":{"date":" 01\/06\/2021","content":"1. [](#improved)\n    Updated GLightbox to 3.0.7\n2. [](#improved)\n   * Improved image parsing\n"},"1.0.0":{"date":" 12\/30\/2020","content":"1. [](#new)\n   * Initial release \ud83c\udf88"}}},"webp":{"name":"Webp","version":"1.5.0","description":"Webp image conversion","description_html":"<p>Webp image conversion<\/p>","description_plain":"Webp image conversion","icon":"image","author":{"name":"Greenrivers","url":"https:\/\/greenrivers.pl\/en\/","email":"kontakt@greenrivers.pl"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/greenrivers\/grav-plugin-webp","docs":"https:\/\/github.com\/greenrivers\/grav-plugin-webp\/blob\/develop\/README.md","keywords":"webp, conversion, image, optimization, plugin, admin","bugs":"https:\/\/github.com\/greenrivers\/grav-plugin-webp\/issues","license":"MIT","tag_name":"1.5.0","date":"2025-02-21T21:42:18Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/webp\/1.5.0","repository":"https:\/\/github.com\/greenrivers\/grav-plugin-webp","slug":"webp","install_path":"user\/plugins\/webp","content_sha256":"ab1cbd962ce2d48acd009f23b3211a0d0c5e6e6f1953863f8c0fa3c08ab968ad","changelog":{"1.5.0":{"date":" 02\/21\/2025","content":"1. [](#new)\n    * Added option to change where webp files are saved [#17](https:\/\/github.com\/greenrivers\/grav-plugin-webp\/issues\/17)\n"},"1.4.6":{"date":" 02\/03\/2024","content":"1. [](#bugfix)\n    * Fixed custom admin route [#14](https:\/\/github.com\/greenrivers\/grav-plugin-webp\/issues\/14)\n"},"1.4.5":{"date":" 11\/09\/2023","content":"1. [](#bugfix)\n    * Fixed relative path [#12](https:\/\/github.com\/greenrivers\/grav-plugin-webp\/issues\/12)\n"},"1.4.4":{"date":" 08\/26\/2023","content":"1. [](#improved)\n    * Updated README\n"},"1.4.3":{"date":" 02\/23\/2023","content":"1. [](#bugfix)\n    * Fixed undefined Orientation index\n"},"1.4.2":{"date":" 12\/26\/2022","content":"1. [](#bugfix)\n    * Fixed incorrect exif orientation [#7](https:\/\/github.com\/greenrivers\/grav-plugin-webp\/issues\/7)\n"},"1.4.1":{"date":" 10\/11\/2022","content":"1. [](#bugfix)\n    * Fixed progressbar\n2. [](#improved)\n    * Updated README\n"},"1.4.0":{"date":" 08\/16\/2022","content":"1. [](#new)\n    * Added unit tests\n2. [](#improved)\n    * Updated README\n"},"1.3.0":{"date":" 04\/17\/2022","content":"1. [](#new)\n    * Added console command for conversion\n    * Added console command for clear webp images\n2. [](#improved)\n    * Updated README\n"},"1.2.1":{"date":" 03\/19\/2022","content":"1. [](#bugfix)\n    * Fixed admin save\n"},"1.2.0":{"date":" 03\/19\/2022","content":"1. [](#new)\n    * Added image quality slider\n2. [](#bugfix)\n    * Fixed progress for Chrome browser\n3. [](#improved)\n    * Updated DocBlocks\n    * Updated README\n"},"1.1.0":{"date":" 10\/08\/2021","content":"1. [](#new)\n    * Added Clear All button\n    * Added label fields translations\n2. [](#improved)\n    * Updated DocBlocks\n    * Updated README\n"},"1.0.4":{"date":" 04\/13\/2021","content":"1. [](#bugfix)\n    * Fixed plugin crashes after enabled [#3](https:\/\/github.com\/greenrivers\/grav-plugin-webp\/issues\/3)\n2. [](#improved)\n    * Updated README\n"},"1.0.3":{"date":" 02\/28\/2021","content":"1. [](#bugfix)\n    * Fixed changelog date format\n"},"1.0.2":{"date":" 02\/28\/2021","content":"1. [](#bugfix)\n    * Fixed blueprints release\n"},"1.0.1":{"date":" 02\/20\/2021","content":"1. [](#bugfix)\n    * Fixed plugin crashes after activation [#1](https:\/\/github.com\/greenrivers\/grav-plugin-webp\/issues\/1)\n"},"1.0.0":{"date":" 01\/01\/2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"conditional-fields":{"name":"Conditional fields","version":"1.0.1","description":"Conditional fields","description_html":"<p>Conditional fields<\/p>","description_plain":"Conditional fields","icon":"toggle-on","author":{"name":"Greenrivers","url":"http:\/\/greenrivers.pl","email":"support@greenrivers.pl"},"dependencies":[{"name":"grav","version":">=1.6.0"},{"name":"form","version":">=3.0.0"}],"homepage":"https:\/\/github.com\/greenrivers\/grav-plugin-conditional-fields","docs":"https:\/\/github.com\/greenrivers\/grav-plugin-conditional-fields\/blob\/develop\/README.md","keywords":"conditional, fields, plugin, blueprints, admin","bugs":"https:\/\/github.com\/greenrivers\/grav-plugin-conditional-fields\/issues","license":"MIT","tag_name":"1.0.1","date":"2024-02-03T11:13:48Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/conditional-fields\/1.0.1","repository":"https:\/\/github.com\/greenrivers\/grav-plugin-conditional-fields","slug":"conditional-fields","install_path":"user\/plugins\/conditional-fields","content_sha256":"11ffc9b2ca5dac58e4667aa698b1a341f69f86cd992e0289968abbede6c41dc7","changelog":{"1.0.1":{"date":" 02\/03\/2024","content":"1. [](#bugfix)\n    * Fixed custom admin route\n"},"1.0.0":{"date":" 01\/01\/2021","content":"1. [](#new)\n    * ChangeLog started..."}}},"ipcount":{"name":"IPcount","version":"1.3.9","description":"Counts Website Visitors based on IP\/Session Data","description_html":"<p>Counts Website Visitors based on IP\/Session Data<\/p>","description_plain":"Counts Website Visitors based on IP\/Session Data","icon":"globe","author":{"name":"Werner Joss","email":"wernerjoss@users.noreply.github.com"},"homepage":"https:\/\/github.com\/wernerjoss\/grav-plugin-ipcount","keywords":"grav, plugin, visitor, counter","bugs":"https:\/\/github.com\/wernerjoss\/grav-plugin-ipcount\/issues","license":"MIT","tag_name":"1.3.9","date":"2023-07-18T17:34:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/ipcount\/1.3.9","repository":"https:\/\/github.com\/wernerjoss\/grav-plugin-ipcount","slug":"ipcount","install_path":"user\/plugins\/ipcount","content_sha256":"047e74adb3d0becc7f55c228d07a8ee5fdcc7570523119f8578f005481e74d11","changelog":{".1.3.9":{"date":" 18\/07\/2023","content":"1. [](#updates)\n   * register template correctly, so it can be used from the admin dropdown\n"},".1.3.8":{"date":" 30\/04\/2022","content":"1. [](#updates)\n   * merge pull request #3 from hughbris\n   * add translatable Chart Titles\n"},".1.3.7":{"date":" 26\/04\/2022","content":"1. [](#updates)\n   * update jaybizzle\/crawler-detect to v1.2.111\n"},".1.3.6":{"date":" 04\/30\/2021","content":"1. [](#updates)\n   * Improve usage composer\n   * Refactor\/cleanup ipcount.php\n   * Add template registration\n   * Move data logic from Twig extension into IPCounter\n   * Refactor creation of Twig function\n   * Move assets loading from Twig to ipcount.php\n   * Rewrite js library\n2. [](#bugfix)\n   * Fix {{ page.content }} requires filter |raw\n   * Show all days of month in chart\n"},"1.3.5":{"date":" 04\/11\/2021","content":"1. [](#new)\n    * Utility Script CountRotate.php added, see Docs in Comments there\n"},"1.3.3":{"date":" 02\/26\/2021","content":"1. [](#new)\n    * add Button for Month History in graphical Presentation\n"},"1.3.2":{"date":" 02\/10\/2021","content":"1. [](#bugfix)\n    * fixed display of dayly data in graphical Presentation when Grav is not installed in Base Url (e.g. http:\/\/yoursite\/grav)\n"},"1.3.1":{"date":" 08\/02\/2021","content":"1. [](#bugfix)\n    * fixed issue 'undefined index' when count data without daycount found\n"},"1.3.0":{"date":" 31\/01\/2021","content":"1. [](#new)\n    * add dayly Data graphical Presentation\n"},"1.2.1":{"date":" 30\/01\/2021","content":"1. [](#new)\n    * Data now stored in json File, yaml File access for future analysis might be blocked\n2. [](#new)\n    * add dayly count data to json File\n"},"1.2.0":{"date":" 22\/01\/2021","content":"1. [](#new)\n    * Data now stored in yaml File\n"},"1.1.0":{"date":" 21\/01\/2021","content":"1. [](#new)\n    * better filtering for bot visits\n2. [](#bugfix)\n    * fixed issue with data store since grav 1.7\n"},"1.0.0":{"date":" 04\/05\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"nextgen-editor":{"name":"NextGen Content Editor","version":"1.1.18","description":"The Next Generation Content Editor for Grav.  A true WYSIWYM Editor with markdown, shortcode, twig, and plugin capabilities.","description_html":"<p>The Next Generation Content Editor for Grav.  A true WYSIWYM Editor with markdown, shortcode, twig, and plugin capabilities.<\/p>","description_plain":"The Next Generation Content Editor for Grav.  A true WYSIWYM Editor with markdown, shortcode, twig, and plugin capabilities.","icon":"pencil-square","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.6.30"}],"homepage":"https:\/\/getgrav.org\/premium\/nextgen-editor","docs":"https:\/\/getgrav.org\/premium\/nextgen-editor\/docs","keywords":"grav, editor, wysiywg, wysiwym, plugin, modern, premium","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/nextgen-editor","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"1.1.18","date":"2023-07-25T04:35:07Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/nextgen-editor\/1.1.18","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-nextgen-editor","premium":{"permalink":"grav-premium-nextgen-editor","button":"Buy Now","filename":"grav-plugin-nextgen-editor"},"slug":"nextgen-editor","install_path":"user\/plugins\/nextgen-editor","content_sha256":"7c8bd776694b31d887da785372ab670f4fb1e3a583300ae1907c12f2599c31e2","changelog":{"1.1.18":{"date":"07\/24\/2023","content":"1. [](#improved)\n    * Removed option to merge table cells, to be more consistent with markdown capabilities\n"},"1.1.17":{"date":"06\/16\/2023","content":"1. [](#bugfix)\n    * Preserve new-lines in table cells by converting them to `<br>` tags\n"},"1.1.16":{"date":"05\/26\/2023","content":"1. [](#bugfix)\n    * Fixed encoded HTML entities breaking table cells\n"},"1.1.15":{"date":"05\/23\/2023","content":"1. [](#bugfix)\n    * Fixed table cells not preserving `<br>` tags [getgrav\/grav-premium-issues#346](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/346)\n"},"1.1.14":{"date":"05\/10\/2023","content":"1. [](#bugfix)\n    * Fixed `webp` not being recognized as images [getgrav\/grav-premium-issues#347](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/347)\n  "},"1.1.13":{"date":"01\/12\/2023","content":"1. [](#improved)\n    * Exposed `insertMedia` util (`nextgenEditor.insertMedia`) to allow 3rd party to integrate with adding media into NextGen programmatically\n    * Changed the convertUrl URL route to match new Flex Object approach\n    * Broke out nextgen field into `-editor` and `-logic` to provide override capability\n"},"1.1.12":{"date":"04\/19\/2022","content":"1. [](#improved)\n    * Added support for subscript\/superscript [getgrav\/grav-premium-issues#231](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/231)\n2. [](#bugfix)\n    * Fixed regression with Page Picker, preventing it from working [getgrav\/grav-premium-issues#272](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/272)\n"},"1.1.11":{"date":"02\/02\/2022","content":"1. [](#new)\n   * It is now possible to create custom advanced transformations through regex replacement [learn more](https:\/\/getgrav.org\/premium\/nextgen-editor\/docs#advanced-transformations) [getgrav\/grav-premium-issues#203](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/203)\n2. [](#bugfix)\n   * Ensure empty toolbar still translates as empty array [getgrav\/grav-premium-issues#210](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/210)\n   * Fixed issue with new language specific transformations not accurately turning on\/off\n"},"1.1.10":{"date":"02\/01\/2022","content":"1. [](#new)\n   * It is now possible to customize, per language, the **Auto Text Transformations** [getgrav\/grav-premium-issues#203](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/203)\n2. [](#bugfix)\n   * Fixed regression causing duplicate editors to initialize for the same field, due to race-condition issue [getgrav\/grav-premium-issues#201](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/201)\n\n"},"1.1.9":{"date":"01\/28\/2022","content":"1. [](#improved)\n   * Better initialization checks to prevent potential race-condition issue, resulting in duplicate editors [getgrav\/grav-premium-issues#201](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/201)\n   * Optimized package to not include or reference sourcemaps when building for release [getgrav\/grav-premium-issues#201](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/201)\n2. [](#bugfix)\n   * Fixed regression with Sticky bar, sticking to the top, behind the toolbar, rather than below\n"},"1.1.8":{"date":"01\/11\/2022","content":"1. [](#new)\n   * Added new field type `nextgen-editor`, use this to enable NextGen as text editor for fields (before was confusingly only available as `markdown`) [getgrav\/grav-premium-issues#188](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/188) \n2. [](#improved)\n   * Updated from CK5 v29.2 to v31.1\n   * Media picker now loads the current folder media by default. It also adds a sidebar navigation with pages tree structure [getgrav\/grav-premium-issues#168](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/168)\n3. [](#bugfix)\n   * Fixed issue with \"Default for All\" setting, not allowing for NextGen to be used in other fields [getgrav\/grav-premium-issues#188](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/188)\n   * Fixed issue with images using stream as a source, ending up with an undesired prefixed leading slash [getgrav\/grav-premium-issues#167](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/167)\n   * Fixed compatibility with `lists` field [getgrav\/grav-premium-issues#180](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/180)\n"},"1.1.7":{"date":"09\/28\/2021","content":"1. [](#bugfix)\n   * Do not append `?link` for non-image media files [getgrav\/grav-premium-issues#159](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/159)\n"},"1.1.6":{"date":"09\/27\/2021","content":"1. [](#bugfix)\n   * Fixed regression where insertion of images ended up throwing JS errors and not functioning as expected [getgrav\/grav-premium-issues#151](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/151)\n"},"1.1.5":{"date":"09\/23\/2021","content":"1. [](#improved)\n   * Updated to CK5 v29.2\n2. [](#bugfix)\n   * Fixed inserting Page Media assets getting transformed to image wrapped links [getgrav\/grav-premium-issues#142](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/142)\n   * Fixed issue with Media Picker losing the leading `\/` and causing images not to display or save correctly [getgrav\/grav-premium-issues#139](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/139) [getgrav\/grav-premium-issues#143](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/143)\n"},"1.1.4":{"date":"07\/21\/2021","content":"1. [](#improved)\n   * Updated from CK5 v27 to v29\n   * Previously selected code block language will be now remembered for the next selection\n   * Advanced: It is now possible to view and edit the source code of the content by adding the `sourceEditing` toolbar entry [getgrav\/grav-premium-issues#96](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/96)\n1. [](#bugfix)\n   * Allow using twig inside HTML Snippet and ensure `<twig>` tags get cleared on save [getgrav\/grav-premium-issues#124](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/124)\n   "},"1.1.3":{"date":"06\/02\/2021","content":"1. [](#improved)\n   * It is now possible to add new custom code block languages on top of the built-in ones (plaintext, bash, c, cs, cpp, css, diff, html, java, javascript, json, php, python, ruby, sh, typescript, xml, yaml).\n1. [](#bugfix)\n   * Fixed double scrollbar in Code Block dropdown menu\n"},"1.1.2":{"date":"05\/07\/2021","content":"1. [](#bugfix)\n   * Fixed issue with media sources URIs containing a fragment in the query and wrongly getting parsed by Grav [getgrav\/grav-premium-issues#95](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/95)\n"},"1.1.1":{"date":"04\/29\/2021","content":"1. [](#improved)\n   * Added `mark` to the list of allowed inline tags and to preserve [getgrav\/grav-premium-issues#92](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/92)\n"},"1.1.0":{"date":"04\/27\/2021","content":"1. [](#new)\n   * Added ability to define custom Media Embed Providers ([see documentation](https:\/\/getgrav.org\/premium\/nextgen-editor\/docs#media-embed-providers)) [getgrav\/grav-premium-issues#89](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/89)\n1. [](#improved)\n   * Updated from CK5 v27 to v27.1\n   * Added better support for [CK5 Media Embed](https:\/\/ckeditor.com\/docs\/ckeditor5\/latest\/features\/media-embed.html#displaying-embedded-media-on-your-website) feature.\n1. [](#bugfix)\n   * Fixed case where missing options would throw a JS error\n   * Better support for new non-paragraph lines (SHIFT + RETURN). They will now be converted to proper double-space markdown lines [getgrav\/grav-premium-issues#93](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/93)\n"},"1.0.8":{"date":"04\/19\/2021","content":"1. [](#bugfix)\n   * Proper fix for edge-case with non-breaking space from v1.0.7, only applying the fix once (oops!) [getgrav\/grav-premium-issues#32](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/32)\n"}}},"seo-magic":{"name":"Seo Magic","version":"7.0.7","description":"Powerful SEO plugin","description_html":"<p>Powerful SEO plugin<\/p>","description_plain":"Powerful SEO plugin","icon":"magic","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.32"},{"name":"sitemap","version":">=3.0.0"},{"name":"form","version":">=6.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/seo-magic","docs":"https:\/\/getgrav.org\/premium\/seo-magic\/docs","keywords":"grav, plugin, seo, premium, webshot","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/seo-magic","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"7.0.7","date":"2026-07-26T12:27:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/seo-magic\/7.0.7","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-seo-magic","premium":{"permalink":"grav-premium-seo-magic","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-seo-magic","button":"Buy Now","filename":"grav-plugin-seo-magic"},"slug":"seo-magic","install_path":"user\/plugins\/seo-magic","content_sha256":"6585601df1f5da84229afedd736f6c4436d0e5cbcbd31a1c59346bafafd7e7e3","changelog":{"7.0.7":{"date":"07\/26\/2026","content":"1. [](#improved)\n    * Saving a page in Admin now returns straight away and regenerates its SEO data in the background, instead of making you wait for the page and every link on it to be fetched ([grav-premium-issues#610](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/610)).\n    * Links to your own pages are now checked against Grav's own routes rather than fetched one by one, which is dramatically faster and counts several route aliases for the same page only once.\n    * The internal and external link concurrency settings now genuinely check links side by side, and are available in the plugin options.\n    * Email, phone and in-page anchor links are no longer fetched as if they were web addresses, and the report now shows them as nothing to check.\n    * The scheduler can now pick up any page whose SEO data is still pending, and the full site crawl and link check are configurable in the plugin options.\n1. [](#bugfix)\n    * Broken links to your own pages are now reported as broken instead of always coming back as working.\n    * The `process` and `link-checker` commands, and the scheduled jobs that run them, no longer report \"no pages to process\" on a site full of pages.\n    * Running those commands without a site address configured now says so, instead of quietly fetching every page from `http:\/\/localhost` and storing the results as broken.\n"},"7.0.6":{"date":"07\/06\/2026","content":"1. [](#bugfix)\n   * Fixed the page links in the SEO Magic dashboard summary opening a broken 404 route instead of the page editor when the admin isn't installed at the site root.\n   * Fixed custom keywords saving as an object instead of a plain comma-separated string in the page frontmatter.\n   * Fixed the custom title, description, and keywords fields losing focus while typing, so you can now enter text and add multiple keywords without re-clicking.\n"},"7.0.5":{"date":"06\/04\/2026","content":"1. [](#improved)\n   * The dynamic meta image URL now also works without a file extension, so older cached pages and previously shared social links keep resolving.\n2. [](#bugfix)\n   * Fixed PHP 8.4 deprecation warnings from implicitly nullable function parameters.\n"},"7.0.4":{"date":"06\/04\/2026","content":"1. [](#improved)\n   * Meta image generation now serves the original image untouched if resizing fails, instead of returning a broken response.\n2. [](#new)\n   * Added a \"Process Image\" option to serve the original meta image without resizing, useful when a host's image library is unstable.\n"},"7.0.3":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n   * The SEO-Magic sidebar entry and Crawl toolbar button are now hidden from users who can't read pages. Requires grav-plugin-api \u2265 1.0.0-rc.11.\n"},"7.0.2":{"date":"05\/08\/2026","content":"1. [](#bugfix)\n   * Fixed Re-crawl failing to (re)create the `user\/data\/seo-magic\/` directory on a fresh install or after a Purge \/ Delete SEO Data. The previous PHP 8.5 stream resolve-step ran before the target path existed, so the write silently no-op'd.\n"},"7.0.1":{"date":"04\/23\/2026","content":"1. [](#bugfix)\n   * Blueprint typo\n"},"7.0.0":{"date":"04\/22\/2026","content":"1. [](#new)\n    * Grav 2.0 + API + Admin 2.0 support\n    * Requires admin-next that exposes `window.__GRAV_CONTENT_LANG` to custom field web components\n1. [](#bugfix)\n    * Custom fields now read the active content language from `window.__GRAV_CONTENT_LANG` instead of `localStorage` directly \u2014 the stored key is site-scoped and was not resolvable from web components on sub-path installs, causing SEO checks to silently fall back to the default language\n"},"6.2.4":{"date":"03\/31\/2026","content":"1. [](#improved)\n  * Image code cleanup\n  * Safer handling of `null` values when getting images\n1. [](#bugfix)\n  * Fixed a PHP 8.5 stream bug\n"},"6.2.3":{"date":"03\/14\/2026","content":"1. [](#bugfix)\n  * Fix edge case of pages having custom extensions\n  * Try-catch to avoid rendering exceptions\n"},"6.2.2":{"date":"12\/08\/2025","content":"1. [](#bugfix)\n   * Fixed admin banner incorrectly showing \"unpublished\" or \"non-routable\" for valid pages by using `admin.page` instead of `form.object`\n   * Fixed SEO data not regenerating on save due to `published()` and `routable()` returning incorrect defaults from event object\n   * Fixed SEO data storage key mismatch in multilingual sites by using `rawRoute()` for consistent storage across languages and subdirectory installations\n   * Added `routable` check to banner template with appropriate warning message for non-routable pages\n"},"6.2.1":{"date":"12\/01\/2025","content":"1. [](#bugfix)\n   * Fix for \"This page is unpublished..\" banner showing incorrectly\n   * Tooltip for \"AI Suggest\" to explain AI-Pro required\n"},"6.2.0":{"date":"11\/27\/2025","content":"1. [](#bugfix)\n   * Fixed problems with CLI `link-checker` command\n"},"6.1.3":{"date":"11\/17\/2025","content":"1. [](#bugfix)\n   * Better handling for null pages\n"},"6.1.2":{"date":"09\/22\/2025","content":"1. [](#bugfix)\n    * Better guards for canonical injection to only inject into HTML with `<head><\/head>` tags\n"},"6.1.1":{"date":"09\/22\/2025","content":"1. [](#bugfix)\n    * More canonical injection fixes\n"},"6.1.0":{"date":"09\/20\/2025","content":"1. [](#new)\n    * Generate a new pre-calculated report for reach page for memory and speed improvements\n1. [](#improved)\n    * Performance improvements for indexing\n    * More reliable indexing with large page counts\n1. [](#bugfix)\n    * Link and Image checking fixes\n"},"6.0.2":{"date":"09\/19\/2025","content":"1. [](#bugfix)\n   * Resolved dashboard re-crawl stalls by detaching the background CLI process and syncing its environment with the admin poller so progress now runs through all pages\n"},"6.0.1":{"date":"09\/19\/2025","content":"1. [](#bugfix)\n   * Fixed canonical functionality triggering `open_basedir` restriction\n   * Fixed error when links were null\n"},"6.0.0":{"date":"09\/15\/2025","content":"1. [](#new)\n   * Added Admin SERP preview block with desktop\/mobile widths in the page SEO report\n   * Added `og:image:alt` support (falls back to page title; override with `header.seo-magic.opengraph.image_alt`)\n   * Added `og:locale` hint derived from current language (e.g., `en_US`)\n   * New configuration toggle `write_keywords_meta` (default: disabled) to de\u2011emphasize `<meta name=\"keywords\">`\n   * Structured Data (JSON\u2011LD): Organization, WebSite + SearchAction, BreadcrumbList, Article\/BlogPosting (with toggles in Admin). Optional Product\/Event toggles (off by default)\n   * Admin Dashboard at `\/admin\/seo-magic` with a modern summary UI (Pages, Avg Score, Pages with Issues, Broken Links, Broken Images, Trend)\n   * In-dashboard progress bar with live polling while a crawl is running (full or changed-only)\n   * New Admin tasks for progress + control: `taskSEOMagicStatus`, `taskSEOMagicCancel`, and `taskSEOMagicPartial` (HTML fragment swap)\n   * \u201cRe\u2011crawl\u201d split button with a dropdown action for \u201cRe\u2011crawl (changed)\u201d\n1. [](#improved)\n   * Hardened HTTP client defaults: TLS verification enabled by default with opt\u2011out `insecure_tls: false`\n   * Always inject a canonical link if missing (defaults to page absolute URL)\n   * Faster, more resilient crawling: falls back to enumerating routable\/published Grav pages when JSON sitemap is unavailable\n   * Link checker concurrency and throttling tuned; internal\/external batching with retries and backoff\n   * CLI commands rely on Grav bootstrap; removed redundant autoloading\n   * Multilingual: generates `<link rel=\"alternate\" hreflang=\"\u2026\">` tags for translated routes (frontend)\n   * Multilingual: sets `og:locale` and `og:locale:alternate` from current and translated languages\n   * Multilingual: expanded TextRank stop\u2011words support (Dutch, Turkish)\n   * Admin: better defaults for brand\u2011new pages without SEO data (summary\/keywords based on page content)\n   * Injection toggles: `inject.canonical_always`, `inject.canonical_if_missing`, `inject.hreflang_always`, `inject.hreflang_if_missing` (both \"always\" enabled by default)\n   * Crawl flags stored per page: `head.flags.missing_canonical`, `head.flags.missing_hreflang`, and `head.alternates`\n   * Scoring Model v2: dropped `meta keywords` from score; added checks for canonical, hreflang, JSON\u2011LD presence, and OG image quality; fixed canonical weighting\n   * Link checker: respects `robots.txt` Disallow for configured User\u2011agent (defaults to `*`), supports `link_ignore_patterns` filters\n   * Link checker: improved status messages (429\/4xx\/5xx) and clearer broken link summaries\n   * Site report: export buttons for JSON and CSV (CSV includes first broken link column) + filter to show only pages with broken links\n   * Scheduler integration: optional cron jobs to run crawl\/link checker periodically\n   * Sitemap check: switched Admin validation to GET (more compatible than HEAD for JSON endpoints)\n   * AI\u2011Pro Integration (optional): Admin buttons to generate Title\/Description using AI Pro default provider; results applied directly to form fields\n   * Partial HTML refresh of the dashboard on completion (no full page reload). Uses HTMX if present, otherwise a bundled lightweight `htmx-lite.js` fallback\n   * Metrics wording clarified: replaces ambiguous \u201cPages w\/ Broken\u201d with explicit \u201cPages with Issues\u201d, plus separate counters for \u201cBroken Links\u201d and \u201cBroken Images\u201d\n   * Admin QuickTray \u201cSEO\u2011Magic Process\u201d redirects to the dashboard to provide a consistent progress view\n   * Better compatibility with mod_php: releases the PHP session lock before long crawls, enabling concurrent status polling\n   * Safer template rendering for Admin tasks by explicitly registering the plugin\u2019s admin template path\n   * Added unit tests for scoring, metadata generation, and URL utilities (Codeception unit suite under `user\/plugins\/seo-magic\/tests`)\n1. [](#bugfix)\n   * Fixed Admin route resolution by adding the plugin\u2019s admin page stub (`admin\/pages\/seo-magic.md`) so `\/admin\/seo-magic` no longer 404s\n"}}},"lightbox-gallery":{"name":"Lightbox Gallery","version":"1.2.2","description":"A lightweight but flexible lightbox implementation for Grav that supports galleries","description_html":"<p>A lightweight but flexible lightbox implementation for Grav that supports galleries<\/p>","description_plain":"A lightweight but flexible lightbox implementation for Grav that supports galleries","icon":"window-restore","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.40"},{"name":"shortcode-core","version":">=4.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/lightbox-gallery","docs":"https:\/\/getgrav.org\/premium\/lightbox-gallery\/docs","keywords":"grav, plugin, lightbox, gallery","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/labels\/lightbox-gallery","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"1.2.2","date":"2026-07-14T00:26:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/lightbox-gallery\/1.2.2","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-lightbox-gallery","premium":{"permalink":"grav-premium-lightbox-gallery","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-lightbox-gallery","button":"Buy Now","filename":"grav-plugin-glightbox-gallery"},"slug":"lightbox-gallery","install_path":"user\/plugins\/lightbox-gallery","content_sha256":"576a48d3fc4128daf5d87b36247e8a660d27e19a9a766b8a3ba15c3ab14e5202","changelog":{"1.2.2":{"date":"07\/13\/2026","content":"1. [](#bugfix)\n   * Gallery thumbnails now display in a proper grid on any theme by shipping the `grid-cols-*` and `gap-*` helper styles the documented `class=\"grid grid-cols-4\"` relies on\n"},"1.2.1":{"date":"05\/03\/2026","content":"1. [](#new)\n   * Added Grav 2.0 compatibility \n"},"1.2.0":{"date":"12\/02\/2025","content":"1. [](#bugfix)\n   * Fix missing `video` support in new shortcode syntax\n   * Fix extra `<p>` tags getting put around thumbnails breaking layout\n   * Fix for empty 'content' in lightbox shortcode throwing JS error\n"},"1.1.1":{"date":"11\/23\/2025","content":"1. [](#bugfix)\n    * Fixed some bad logic in the lightbox shortcode that was not properly detecting content vs image accurately and was fallign back to using full size image.\n"},"1.1.0":{"date":"11\/23\/2025","content":"1. [](#new)\n    * Much improved shortcode support with parent\/child `[lightbox-gallery]` \u2192 `[lightbox]` shortcodes (see docs for details)\n    * Editor-Pro support of new shortcodes for true WYSIWG editor\n1. [](#improved)\n   * Updated GLightbox to `v3.3.1`\n   "},"1.0.6":{"date":"08\/24\/2023","content":"1. [](#improved)\n   * Updated GLightbox to `v3.2.0`\n   * Load `glightbox.min.js` in bottom group\n   * Fixed a deprecated message regarding null's being passed to `md5()` function\n1. [](#bugfix)\n   * Fixed a bug with the wrong page being used when shortcode is processed in a modular sub-page. [getgrav\/grav-premium-issues#382](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/382)\n"},"1.0.5":{"date":"05\/26\/2021","content":"1. [](#bugfix)\n   * Upgraded GLightbox library to fix issue with images types where width\/height values would get ignored\n"},"1.0.4":{"date":"04\/09\/2021","content":"1. [](#new)\n    * Fixed Videos not pausing while switching slide by updating to latest GLightbox `v3.0.7` library\n"},"1.0.3":{"date":"02\/25\/2021","content":"1. [](#new)\n    * Added basic Nextgen shortcode integration\n    * Added support for separate `image` and `video` tags in shortcode + Twig partial\n"},"1.0.2":{"date":"12\/14\/2020","content":"1. [](#bugfix)\n    * Only process if valid page\n"},"1.0.1":{"date":"09\/11\/2020","content":"1. [](#new)\n    * Initial Release..."}}},"svg-icons":{"name":"SVG Icons","version":"3.2.0","description":"Various SVG icons and utilities to use them.","description_html":"<p>Various SVG icons and utilities to use them.<\/p>","description_plain":"Various SVG icons and utilities to use them.","icon":"diamond","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.49"},{"name":"shortcode-core","version":">=4.2.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/site-toolbox#svg-icons","docs":"https:\/\/getgrav.org\/premium\/site-toolbox\/docs#svg-icons","keywords":"grav, premium, svg, icons, heroicons, social, tabler, nextgen-editor","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/issues?q=label:site-toolbox+label:svg-icons","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"3.2.0","date":"2026-05-03T20:28:41Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/svg-icons\/3.2.0","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-svg-icons","premium":{"permalink":"grav-premium-typhoon","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-site-toolbox","button":"Buy Now","filename":"grav-plugin-svg-icons"},"slug":"svg-icons","install_path":"user\/plugins\/svg-icons","content_sha256":"7cb5ffa0fa4fc7bf811236f7e5a00b6ec3f9def4a89362eddf72d8c12e6f2551","changelog":{"3.2.0":{"date":"05\/03\/2026","content":"1. [](#improved)\n    * Rebuilt the admin-next `svgicon` field as a Svelte 5 component compiled to a custom element, replacing the hand-written web component. Bundles its own runtime so it stays self-contained.\n    * Icon thumbnails now render with `<img>` (matching admin-classic) so multi-color sets display correctly, instead of being silhouetted via `mask-image`.\n    * Added Grav 2.0 compatibility\n"},"3.1.1":{"date":"04\/17\/2026","content":"1. [](#new)\n    * Added admin-next support for the `svgicon` field. Ships a web component at `admin-next\/fields\/svgicon.js` that renders a preview row (Choose \/ Clear) plus a modal icon picker with set tabs, search, and infinite-scroll grid. Icons use CSS `mask-image` + `currentColor` so they render correctly on both light and dark themes.\n    * New API endpoints (`GET \/svg-icons\/sets`, `GET \/svg-icons\/icons?set=&q=&offset=&limit=`) back the admin-next field, served by a dedicated `SvgIconsController` that reads the existing `data\/icons-manifest.min.json`. The legacy admin-classic endpoint is unchanged.\n"},"3.1.0":{"date":"12\/23\/2025","content":"1. [](#new)\n    * Added `editor-pro` support for shortcodes\n1. [](#bugfix)\n    * Fixed a bbcode formatting issue\n   "},"3.0.1":{"date":"12\/15\/2025","content":"1. [](#bugfix)\n    * Quick fix for badly formatted Tabler SVGs\n"},"3.0.0":{"date":"12\/14\/2025","content":"1. [](#new)\n   * Added a new custom `svgicon` field type that allows you to select \n   * Updated Tabler to `3.36.0` (5634 icons)\n   * Updated Boostrap Icons to `1.13.1` (2086 icons)\n   * Updated Lucide Icons to `0.561.0` (1867 icons)\n   * Updated Simple Brand Icons to `16.2.0` (3640 icons)\n"},"2.6.1":{"date":"09\/23\/2025","content":"1. [](#bugfix)\n   * Register stream paths in both admin + site to stop failure if Page::content() is called in admin\n"},"2.6.0":{"date":"12\/02\/2024","content":"1. [](#new)\n   * Upgraded Tabler to `3.23.0` (5536 icons)\n   * Upgraded Hero Icons to `2.2.0` (324 icons)\n   * Upgraded to Simple Brand Icons to `13.19.0` (3256 icons)\n   * Upgraded to Bootstrap Icons to `1.11.3` (2059 icons)\n   * Upgraded to Lucide Icons to `0.462.0` (1704 icons)\n"},"2.5.3":{"date":"08\/09\/2024","content":"1. [](#new)\n   * Upgraded Tabler to `3.12.0` (5347 icons)\n"},"2.5.2":{"date":"07\/23\/2024","content":"1. [](#new)\n   * Upgraded Tabler to `3.11.0` (5250 icons)\n\n"},"2.5.1":{"date":"01\/10\/2024","content":"1. [](#new)\n   * Upgraded Tabler to `2.45.0` (5063 icons)\n"},"2.5.0":{"date":"10\/19\/2023","content":"1. [](#new)\n   * Upgraded Tabler to `2.39.0` (4955 icons)\n   * Upgraded Simple Brands Icons to `9.18.0` (2746 icons)\n   * Upgraded Boostrap Icons to `1.11.1` (2056 icons)\n   * Upgraded Lucide Icons to `0.288.0` (1323 icons)\n"},"2.4.0":{"date":"08\/10\/2023","content":"1. [](#new)\n   * Support for custom icon location [getgrav\/grav-premium-issues#374](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/374)\n   * Upgraded Tabler to `2.30.0` (4601 icons)\n"},"2.3.0":{"date":"07\/18\/2023","content":"1. [](#new)\n   * Upgraded Tabler to `2.26.0` (4333 icons)\n"},"2.2.0":{"date":"05\/07\/2023","content":"1. [](#new)\n   * Upgraded Tabler to `2.17.0` (4140 icons)\n"},"2.1.0":{"date":"02\/10\/2023","content":"1. [](#new)\n   * Added new Lucide Icons set `0.112.0` (881 icons)\n   * Upgraded Tabler to `2.13.0` (3271 icons)\n"},"2.0.6":{"date":"01\/27\/2023","content":"1. [](#new)\n   * Upgraded Tabler to `2.1.2` (3222 icons)\n"},"2.0.5":{"date":"01\/12\/2023","content":"1. [](#new)\n   * Upgraded Tabler to `1.119.0` (3128 icons)\n   * Upgraded Hero Icons to `2.0.13` (292 icons)\n   * Upgraded Brands to `8.2.0` (2419 icons)\n   * Upgraded Bootstrap to `1.10.3` (1958 icons)\n"},"2.0.4":{"date":"09\/12\/2022","content":"1. [](#new)\n   * Upgraded Tabler to `1.95.1` (2664 icons)\n   * Upgraded Hero Icons to `2.0.11` (292 icons)\n   * Upgraded Brands to `7.11.0` (2340 icons)\n   * Upgraded Bootstrap to `1.9.1` (1811 icons)\n"},"2.0.3":{"date":"06\/01\/2022","content":"1. [](#new)\n   * Upgraded Tabler to `1.68.0` (1978 icons)\n"},"2.0.2":{"date":"02\/16\/2022","content":"1. [](#new)\n   * Upgraded Tabler to `1.53.0` (1518 icons)\n   * Brands updated to `6.10.0` (2172 icons)\n   * Bootstrap updated to `1.8.0` (1668 icons)\n"}}},"mega-frontmatter":{"name":"Mega Frontmatter","version":"1.1.1","description":"A plugin that allows certain frontmatter attributes to be stored and loaded via an external file. when viewing or editing a page.  Is not included into frontmatter during page initialization.  Particularly useful when dealing with a large amount of frontmatter data.","description_html":"<p>A plugin that allows certain frontmatter attributes to be stored and loaded via an external file. when viewing or editing a page.  Is not included into frontmatter during page initialization.  Particularly useful when dealing with a large amount of frontmatter data.<\/p>","description_plain":"A plugin that allows certain frontmatter attributes to be stored and loaded via an external file. when viewing or editing a page.  Is not included into frontmatter during page initialization.  Particularly useful when dealing with a large amount of frontmatter data.","icon":"list","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.48"},{"mame":"flex-objects","version":">=1.3.6"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/site-toolbox#mega-frontmatter","docs":"https:\/\/getgrav.org\/premium\/site-toolbox\/docs#mega-frontmatter","keywords":"grav, frontmatter, speed","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/issues?q=label:site-toolbox+label:mega-frontmatter","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"1.1.1","date":"2026-05-03T20:26:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mega-frontmatter\/1.1.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-mega-frontmatter","premium":{"permalink":"grav-premium-site-toolbox","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-site-toolbox","button":"Buy Now","filename":"grav-plugin-mega-frontmatter"},"slug":"mega-frontmatter","install_path":"user\/plugins\/mega-frontmatter","content_sha256":"2ad305d9af3172ad717991d59e583396ca6691b324ccde23997ded446ff66fa6","changelog":{"1.1.1":{"date":"05\/03\/2026","content":"1. [](#new)\n   * Added Grav 2.0 compatibility \n"},"1.1.0":{"date":"09\/08\/2025","content":"1. [](#bugfix)\n    * Fixed issue where empty mega-frontmatter caused invalid `{ }` to be stored, causing invalid YAML error\n    * Fixed issue with new page creation trying to save frontmatter before page was created\n"},"1.0.0":{"date":"05\/28\/2025","content":"1. [](#new)\n    * Initial Release"}}},"warm-cache":{"name":"Warm Cache","version":"3.1.1","description":"Warms the cache by hitting all the pages in the sitemap","description_html":"<p>Warms the cache by hitting all the pages in the sitemap<\/p>","description_plain":"Warms the cache by hitting all the pages in the sitemap","icon":"tachometer","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.24"},{"name":"sitemap","version":">=3.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/site-toolbox#warm-cache","docs":"https:\/\/getgrav.org\/premium\/site-toolbox\/docs#warm-cache","keywords":"grav, warm, cache, clear","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/issues?q=label:site-toolbox+label:warm-cache","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"3.1.1","date":"2026-05-29T20:22:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/warm-cache\/3.1.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-warm-cache","premium":{"permalink":"grav-premium-site-toolbox","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-site-toolbox","button":"Buy Now","filename":"grav-plugin-warm-cache"},"slug":"warm-cache","install_path":"user\/plugins\/warm-cache","content_sha256":"91ecb3486c784aa76ffa6844dbb48c5dc451e5d19eece05fb8959bab8972b124","changelog":{"3.1.1":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n   * The Warm Cache toolbar button is now hidden from users without configuration access. Requires grav-plugin-api \u2265 1.0.0-rc.11.\n"},"3.1.0":{"date":"04\/22\/2026","content":"1. [](#new)\n    * Added Admin Next menubar integration via API events\n2. [](#improved)\n    * Major performance improvement: use Symfony HttpClient async streaming for true concurrent requests within each batch\n    * Changed default `client_request_type` to `HEAD` instead of `GET` to avoid downloading full page bodies\n    * Increased default `client_connections` from `1` to `6` for parallel request processing\n    * Removed artificial `delay_between_requests` between individual URLs\n    * Reduced default `delay_between_batches` from `500ms` to `0`\n"},"3.0.0":{"date":"08\/03\/2025","content":"1. [](#new)\n    * Added extensive CLI options: `--show-all`, `--dry-run`, `--filter`, `--resume-from`, `--limit`, `--no-progress`, `--show-slow`\n    * Added real-time progress bar with ETA, memory usage, and success\/failure counts\n    * Added batch processing support for better memory management on large sites\n    * Added configurable retry logic with exponential backoff\n    * Added automatic saving of failed URLs to JSON file for analysis\n    * Added slow page detection to identify performance bottlenecks\n    * Added ability to resume from a specific URL if process is interrupted\n2. [](#improved)\n    * Significantly improved performance for large sites through batch processing\n    * Better error handling with detailed error messages\n    * Enhanced CLI output with color-coded status and summary statistics\n    * Improved memory management with automatic garbage collection between batches\n    * Updated default configuration with many new options for fine-tuning\n    * Better support for various sitemap formats\n3. [](#bugfix)\n    * Fixed memory issues when processing large sitemaps\n"},"2.0.3":{"date":"03\/13\/2023","content":"1. [](#improved)\n   * Allow for more flexible checking of `application\/json` [#351](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/351)\n"},"2.0.2":{"date":"03\/09\/2022","content":"1. [](#new)\n   * Added success message to the log after completing the warm-cache process [#189](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/189)\n"},"2.0.1":{"date":"02\/02\/2022","content":"1. [](#new)\n   * Added options for `client_connections` (concurrent calls) , `client_timeout` (timeout to wait before aborting) and `client_request_type` (HEAD, GET)\n"},"2.0.0":{"date":"10\/28\/2021","content":"1. [](#new)\n   * Require **Grav 1.7.24**\n   * Use Grav's new HTTP\\Client with Proxy support\n   * Added processing time to `warm` CLI command\n2. [](#improved)\n   * Use `HEAD` instead of `GET` for page warming for increased performance\n"},"1.1.3":{"date":"06\/28\/2021","content":"1. [](#bugfix)\n   * Fix issue with passing in sitemap URL [#119](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/119)\n"},"1.1.2":{"date":"06\/28\/2021","content":"1. [](#improved)\n   * Forcing re-release to get picked up in GPM\n"},"1.1.1":{"date":"06\/07\/2021","content":"1. [](#improved)\n    * Added an error if you try to use `.xml` URL passed in rather than new `.json` format\n"},"1.1.0":{"date":"04\/27\/2021","content":"1. [](#improved)\n    * Use sitemap plugin version 3.0's `.json` format for multi-language support\n    * Fully translate all strings in plugin for better internationalization\n"},"1.0.1":{"date":"01\/25\/2021","content":"1. [](#improved)\n    * Disable `verify_peer` and `verify_host` to allow for use in developmental SSL environments [#22](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/22)\n"},"1.0.0":{"date":"12\/14\/2020","content":"1. [](#new)\n    * Initial Release"}}},"zapier-rss":{"name":"Zapier RSS","version":"1.0.1","description":"Plugin to integrate Zapier with Grav via customized RSS feeds","description_html":"<p>Plugin to integrate Zapier with Grav via customized RSS feeds<\/p>","description_plain":"Plugin to integrate Zapier with Grav via customized RSS feeds","icon":"bolt","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.49"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/getgrav.org\/premium\/site-toolbox#zapier-rss","docs":"https:\/\/getgrav.org\/premium\/site-toolbox\/docs#zapier-rss","keywords":"grav, zapier, rss","bugs":"https:\/\/github.com\/getgrav\/grav-premium-issues\/issues?q=label:site-toolbox+label:zapier-rss","license":"https:\/\/getgrav.org\/premium\/license","tag_name":"1.0.1","date":"2026-05-03T20:31:52Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/zapier-rss\/1.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-zapier-rss","premium":{"permalink":"grav-premium-site-toolbox","checkout_url":"https:\/\/licensing.getgrav.org\/buy\/grav-premium-site-toolbox","button":"Buy Now","filename":"grav-plugin-zapier-rss"},"slug":"zapier-rss","install_path":"user\/plugins\/zapier-rss","content_sha256":"eac69551e931c9b3e2ed414f5aec98939ddef376c4492e7879716b509721a8c7","changelog":{"1.0.1":{"date":"05\/03\/2026","content":"1. [](#new)\n   * Added Grav 2.0 compatibility \n"},"1.0.0":{"date":"12\/14\/2020","content":"1. [](#new)\n    * Initial Release"}}},"license-manager":{"name":"License Manager","version":"2.0.4","description":"Allow easy management of Grav Premium licenses","description_html":"<p>Allow easy management of Grav Premium licenses<\/p>","description_plain":"Allow easy management of Grav Premium licenses","icon":"key","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-license-manager","docs":"https:\/\/github.com\/getgrav\/grav-plugin-license-manager\/blob\/develop\/README.md","keywords":"grav, plugin, theme, license, manager, premium","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-license-manager\/issues","license":"MIT","tag_name":"2.0.4","date":"2026-06-23T21:48:47Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/license-manager\/2.0.4","repository":"https:\/\/github.com\/getgrav\/grav-plugin-license-manager","slug":"license-manager","install_path":"user\/plugins\/license-manager","content_sha256":"3928f885f76c76ed8515e5894c6cd69c9aa00a67d7ad1586f338370177c77456","changelog":{"2.0.4":{"date":"06\/23\/2026","content":"1. [](#bugfix)\n    * Licensed themes that aren't installed yet are now correctly offered as a theme install instead of pointing to the plugin installer.\n"},"2.0.3":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n    * **The License Manager sidebar entry is now hidden from users who lack `api.system.read`**, matching the permission its API controller already requires. Editor-level users no longer see a menu they can't open. Requires grav-plugin-api \u2265 1.0.0-rc.11. Fixes [getgrav\/grav-plugin-admin2#23](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/23).\n"},"2.0.2":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n    * Fix for broken product links in Admin2\n"},"2.0.1":{"date":"04\/20\/2026","content":"1. [](#improved) \n    * Added compatibility setting for 2.0 in `blueprints.yaml`\n"},"2.0.0":{"date":"04\/17\/2026","content":"1. [](#new) \n    * New Grav 2.0 Support\n"},"1.0.2":{"date":"05\/10\/2023","content":"1. [](#improved)\n   * Fixed some deprecated issues for PHP 8.2+\n"},"1.0.1":{"date":"12\/16\/2020","content":"1. [](#bugfix)\n    * Fixed issue with import input field not letting select XML licenses in Safari [#5](https:\/\/github.com\/getgrav\/grav-plugin-license-manager\/issues\/5)\n    * Fixed repository references in blueprint [#4](https:\/\/github.com\/getgrav\/grav-plugin-license-manager\/issues\/4)\n    "},"1.0.0":{"date":"12\/14\/2020","content":"1. [](#new)\n    * Initial Release"}},"dependencies":[]},"markdown-yalinker":{"name":"Markdown Yet Another Linker","version":"1.0.0","description":"Adds the ability to create links with less typing in Markdown","description_html":"<p>Adds the ability to create links with less typing in Markdown<\/p>","description_plain":"Adds the ability to create links with less typing in Markdown","icon":"plug","author":{"name":"Huidae Cho","email":"grass4u@gmail.com"},"homepage":"https:\/\/github.com\/HuidaeCho\/grav-plugin-markdown-yalinker","docs":"https:\/\/github.com\/HuidaeCho\/grav-plugin-markdown-yalinker\/blob\/develop\/README.md","demo":"https:\/\/demo.isnew.info\/grav\/markdown-yalinker","keywords":"grav, plugin, links","bugs":"https:\/\/github.com\/HuidaeCho\/grav-plugin-markdown-yalinker\/issues","license":"MIT","tag_name":"1.0.0","date":"2020-12-10T18:00:06Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-yalinker\/1.0.0","repository":"https:\/\/github.com\/HuidaeCho\/grav-plugin-markdown-yalinker","slug":"markdown-yalinker","install_path":"user\/plugins\/markdown-yalinker","content_sha256":"792e6ea57bca4ee4af215cb60e002856d3323a89b9695e0c508a16564ba017fc","changelog":{"1.0.0":{"date":"12\/10\/2020","content":"Initial release"}},"dependencies":[]},"sentry":{"name":"Sentry","version":"0.1.0","description":"sentry.io Grav integration","description_html":"<p>sentry.io Grav integration<\/p>","description_plain":"sentry.io Grav integration","icon":"plug","author":{"name":"DigitRE Group","email":"digital-factory@digitregroup.com"},"homepage":"https:\/\/github.com\/digitregroup\/grav-plugin-sentry","docs":"https:\/\/github.com\/digitregroup\/grav-plugin-sentry\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/digitregroup\/grav-plugin-sentry\/issues","license":"MIT","tag_name":"1.2.1","date":"2020-10-14T23:45:46+02:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/sentry\/0.1.0","repository":"https:\/\/github.com\/digitregroup\/grav-plugin-sentry","slug":"sentry","install_path":"user\/plugins\/sentry","content_sha256":"2d77fb18ac1762154c57faf460301ce20dd792fae01741242b298ae41fbdb162","changelog":{"0.1.0":{"date":" 10\/18\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"geocoding":{"name":"Geocoding","version":"1.2.2","description":"Converts addresses into geographic coordinates","description_html":"<p>Converts addresses into geographic coordinates<\/p>","description_plain":"Converts addresses into geographic coordinates","icon":"globe","author":{"name":"NicoHood","email":"grav@nicohood.de"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/NicoHood\/grav-plugin-geocoding","docs":"https:\/\/github.com\/NicoHood\/grav-plugin-geocoding\/blob\/develop\/README.md","keywords":"grav, plugin, geocoding, coordinates, map, search, latitude, longitude, world, country, location, city","bugs":"https:\/\/github.com\/NicoHood\/grav-plugin-geocoding\/issues","license":"GPL3","tag_name":"1.2.2","date":"2025-01-02T19:56:17Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/geocoding\/1.2.2","repository":"https:\/\/github.com\/NicoHood\/grav-plugin-geocoding","slug":"geocoding","install_path":"user\/plugins\/geocoding","content_sha256":"9735b632cf93b6286c1389f93c07df797d83b17d14378dd3246b5ac73c4aff36","changelog":{"1.2.2":{"date":" 02\/01\/2025","content":"1.\n    * Fix API Query call with API Update\n    * Fix crash when result is null\n"},"1.2.1":{"date":" 29\/11\/2020","content":"1.\n    * Added geocoding as service to `grav['geocoding']`\n    * Introduce GeoLocation class\n    * Add optional parameter `$country_code` to `getLocation()`\n"},"1.1.1":{"date":" 04\/10\/2020","content":"1.\n    * Added Autoloader\n2.\n    * Changed Namespace\n3.\n    * Improved cache handling\n"},"1.1.0":{"date":" 06\/09\/2020","content":"1.\n    * Added getDistance() function\n2.\n    * Fix search requests with spaces\n"},"1.0.0":{"date":" 04\/09\/2020","content":"1.\n    * Initial release"}}},"plausible":{"name":"Plausible Analytics","version":"0.3.4","description":"Integrate Plausible Analytics into your Grav site.","description_html":"<p>Integrate Plausible Analytics into your Grav site.<\/p>","description_plain":"Integrate Plausible Analytics into your Grav site.","icon":"bar-chart","author":{"name":"Iain Gillis","email":"iain@iainsgillis.com"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/iainsgillis\/grav-plugin-plausible","docs":"https:\/\/github.com\/iainsgillis\/grav-plugin-plausible\/blob\/main\/README.md","keywords":"grav, plugin, plausible, analytics","bugs":"https:\/\/github.com\/iainsgillis\/grav-plugin-plausible\/issues","license":"MIT","tag_name":"v0.3.4","date":"2022-09-06T03:19:11Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/plausible\/0.3.4","repository":"https:\/\/github.com\/iainsgillis\/grav-plugin-plausible","slug":"plausible","install_path":"user\/plugins\/plausible","content_sha256":"e184deb0d186129a4db7334e12e1c26f125e5137f048355a2b20192ea496989e","changelog":{"0.3.4":{"date":"09\/05\/2022","content":"1. [](#bugfix)\n    * Wrapped `Yes` and `No` in quotes. Fixes #5. \n\n2. [](#improved)\n    * All fields in admin UI now translate properly.\n"},"0.3.3":{"date":"09\/05\/2022","content":"1. [](#bugfix)\n    * Fix incorrect keys in `languages.yaml`\n\n2. [](#improved)\n    * Add boolean validation to `blueprints.yaml`\n    * Fix 301 redirects to plausible docs in `languages.yaml`\n"},"0.3.2":{"date":"08\/01\/2021","content":"1. [](#bugfix)\n    * Fix self hosted configuration variables (thanks @markatk)\n"},"0.3.1":{"date":"07\/20\/2021","content":"1. [](#bugfix)\n    * Fix early return if custom domain not set\n    * Fix wrong parameter name\n\n2. [](#improved)\n    * Remove dead code\n"},"0.3.0":{"date":" 07\/20\/2021","content":"1. [](#new)\n    * Allow for self-hosted\/custom domain configuration (thanks @mascali33 and @rootarch)\n\n2. [](#improved)\n    * Tidied up languages.yaml\n"},"0.2.4":{"date":" 05\/15\/2021","content":"1. [](#bugfix)\n    * Fix languages.yaml syntax (thanks @mascali33)\n"},"0.2.3":{"date":" 01\/13\/2021","content":"1. [](#improved)\n    * Added translations from [DeepL](https:\/\/www.deepl.com\/en\/pro-license#free)\n"},"0.2.2":{"date":" 11\/22\/2020","content":"1. [](#improved)\n    * Updated README to refer to Shortcode Assets plugin\n"},"0.2.1":{"date":" 11\/21\/2020","content":"1. [](#improved)\n    * Updated README"},"0.2.0":{"date":" 11\/21\/2020","content":"1. [](#improved)\n    * Added `custom_event_goals` configuration.\n    * Added `outbound_link_tracking` configuration.\n    * Added configuration RE linking to a public dashboard.\n"},"0.1.0":{"date":" 11\/20\/2020","content":"1. [](#new)\n    * Plugin started..."}}},"tag-manager":{"name":"Tag Manager","version":"1","description":"Renames and deletes tags","description_html":"<p>Renames and deletes tags<\/p>","description_plain":"Renames and deletes tags","icon":"plug","author":{"name":"Kyle Alexander Buan","email":"work@ocube.net"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/orthocube\/grav-plugin-tag-manager","docs":"https:\/\/github.com\/orthocube\/grav-plugin-tag-manager\/blob\/develop\/README.md","keywords":"grav, plugin, tags","bugs":"https:\/\/github.com\/orthocube\/grav-plugin-tag-manager\/issues","license":"MIT","tag_name":"1.0","date":"2020-08-21T11:55:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tag-manager\/1","repository":"https:\/\/github.com\/OrthoCube\/grav-plugin-tag-manager","slug":"tag-manager","install_path":"user\/plugins\/tag-manager","content_sha256":"711dff0c4df508a05fcd2ecf365e750206acbb862a6968d1f8a41a6ab06e4e15","changelog":{"0.1.0":{"date":" 08\/21\/2020","content":"1. [](#new)\n    * First release"}}},"yandex-turbo":{"name":"Yandex Turbo","version":"0.8.0","description":"Generates a special **RSS feed** with blog pages, in accordance with the Yandex.Turbo technology.","description_html":"<p>Generates a special <strong>RSS feed<\/strong> with blog pages, in accordance with the Yandex.Turbo technology.<\/p>","description_plain":"Generates a special RSS feed with blog pages, in accordance with the Yandex.Turbo technology.","icon":"rss","author":{"name":"Bugo","email":"bugo@dragomano.ru"},"dependencies":[{"name":"grav","version":">=1.7.40"}],"homepage":"https:\/\/github.com\/dragomano\/grav-plugin-yandex-turbo","keywords":"grav, grav-plugin, yandex-turbo, rss","bugs":"https:\/\/github.com\/dragomano\/grav-plugin-yandex-turbo\/issues","license":"MIT","tag_name":"0.8.0","date":"2023-04-11T08:14:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/yandex-turbo\/0.8.0","repository":"https:\/\/github.com\/dragomano\/grav-plugin-yandex-turbo","slug":"yandex-turbo","install_path":"user\/plugins\/yandex-turbo","content_sha256":"bdfd384dc50dce927b577b3640767d99a8b80426b5ae3ca0fa13b87b99adf585","changelog":{"0.8.0":{"date":"04\/11\/2023","content":"1. [](#new)\n    * Increase minimum required PHP version (>= 7.3.6)\n    * Increase minimum required Grav version (>= 1.7.40)\n1. [](#improved)\n    * Do some refactoring\n1. [](#bugfix)\n    * Update link to russian docs\n"},"0.7.0":{"date":"01\/08\/2021","content":"1. [](#new)\n    * Added a setting to change content source for the feed items (page description or page content)\n    * Added a setting to toggle displaying the author name of each page\n    * Added a setting to toggle displaying the publication date of each page\n"},"0.6.0":{"date":"11\/19\/2020","content":"1. [](#new)\n    * Added a setting to change the maximum length of entry content (150 by default)\n1. [](#improved)\n    * Changed a field type for image_width and image_height (from \"text\" to \"number\")\n"},"0.5.0":{"date":"10\/15\/2020","content":"1. [](#new)\n    * Added custom effects for images\n    * Added settings for image width and height (are required for some custom effects)\n    * Added a custom sorting for pages (by title, by slug, by date, manual ordering, etc)\n"},"0.4.0":{"date":"10\/09\/2020","content":"1. [](#new)\n    * Added a setting to change the route for Turbo pages\n    * Added a setting to set the custom path for your content (`\/blog`, etc)\n1. [](#improved)\n    * Added truncate for title, author, and h1 tags in template RSS\n"},"0.3.2":{"date":"10\/08\/2020","content":"1. [](#bugfix)\n    * Fixed some undefined errors\n"},"0.3.1":{"date":"09\/21\/2020","content":"1. [](#new)\n    * Added the plugin id\n"},"0.3.0":{"date":"08\/22\/2020","content":"1. [](#new)\n    * Added support of \"active: true\" and \"active: false\" options (frontmatter's header)\n"},"0.2.0":{"date":" 08\/20\/2020","content":"1. [](#new)\n    * Added caching of pages\n    * Added \"Enable cache\" option\n"},"0.1.1":{"date":" 08\/19\/2020","content":"1. [](#improved)\n    * Updated the plugin description\n    * Updated the plugin keywords\n    * Improved retrieving data\n    * Improved Twig template\n"},"0.1.0":{"date":" 08\/18\/2020","content":"1. [](#new)\n    * Initial release"}}},"simplesamlphp-login":{"name":"SimpleSAMLphp Login","version":"0.1.0","description":"SSO SAML login with a SimpleSAMLphp SP.","description_html":"<p>SSO SAML login with a SimpleSAMLphp SP.<\/p>","description_plain":"SSO SAML login with a SimpleSAMLphp SP.","icon":"plug","author":{"name":"William Bargent","email":"git@williambargent.co.uk"},"dependencies":[{"name":"login","version":">=3.3.5"},{"name":"admin","version":">=1.9.15"}],"homepage":"https:\/\/github.com\/WilliamBargentLimited\/grav-plugin-simplesamlphp-login","docs":"https:\/\/github.com\/WilliamBargentLimited\/grav-plugin-simplesamlphp-login\/blob\/develop\/README.md","keywords":"grav, plugin, login, saml, simplesamlphp, sso, authentication","bugs":"https:\/\/github.com\/WilliamBargentLimited\/grav-plugin-simplesamlphp-login\/issues","license":"GPL-3.0","tag_name":"v0.1.0","date":"2020-07-19T17:24:35Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/simplesamlphp-login\/0.1.0","repository":"https:\/\/github.com\/williambargent-org\/grav-plugin-simplesamlphp-login","slug":"simplesamlphp-login","install_path":"user\/plugins\/simplesamlphp-login","content_sha256":"b772c72247d10c2a88ac6573fd0b6087d4fe73d60421e28f52e831bb0199c3cb","changelog":{"0.1.0":{"date":" 07\/19\/2020","content":"1. [](#new)\n    * ChangeLog started..."}}},"shortcode-chart-js-plusplus":{"name":"Shortcode Chart.js++","version":"1.0.20","description":"A shortcodes extension to add Chart.js charts to your Grav website.","description_html":"<p>A shortcodes extension to add Chart.js charts to your Grav website.<\/p>","description_plain":"A shortcodes extension to add Chart.js charts to your Grav website.","icon":"code","author":{"name":"Maximilian Salomon","email":"msal.coding@gmail.com"},"dependencies":[{"name":"grav","version":">=1.6.0"},{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/sal0max\/grav-plugin-shortcode-chart-js-plusplus","docs":"https:\/\/github.com\/sal0max\/grav-plugin-shortcode-chart-js-plusplus\/blob\/master\/README.md","keywords":"grav, plugin, shortcode, chart, graph, chart.js","bugs":"https:\/\/github.com\/sal0max\/grav-plugin-shortcode-chart-js-plusplus\/issues","license":"MIT","tag_name":"1.0.20","date":"2022-10-02T21:33:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-chart-js-plusplus\/1.0.20","repository":"https:\/\/github.com\/sal0max\/grav-plugin-shortcode-chart-js-plusplus","slug":"shortcode-chart-js-plusplus","install_path":"user\/plugins\/shortcode-chart-js-plusplus","content_sha256":"1ef9a452b8cfcfd28238edfccabd0f1c12a9619f3f28a79d1815aed539f58052","changelog":{"1.0.20":{"date":" 10\/02\/2022","content":"1. [](#improved)\n   * updated Chart.js from 3.8.0 to [3.9.1](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.8.1)\n"},"1.0.19":{"date":" 05\/25\/2022","content":"1. [](#improved)\n   * updated Chart.js from 3.7.1 to [3.8.0](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.8.0)\n"},"1.0.18":{"date":" 05\/04\/2022","content":"1. [](#improved)\n   * updated Chart.js from 3.7.0 to [3.7.1](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.7.1)\n"},"1.0.17":{"date":" 12\/30\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.6.2 to [3.7.0](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.7.0)\n"},"1.0.16":{"date":" 12\/05\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.6.1 to [3.6.2](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.6.2)\n"},"1.0.15":{"date":" 12\/05\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.6.0 to [3.6.1](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.6.1)\n"},"1.0.14":{"date":" 10\/24\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.5.1 to [3.6.0](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.6.0)\n"},"1.0.13":{"date":" 08\/20\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.5.0 to [3.5.1](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.5.1)\n"},"1.0.12":{"date":" 07\/27\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.4.1 to [3.5.0](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.5.0)\n"},"1.0.11":{"date":" 07\/04\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.4.0 to [3.4.1](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.4.1)\n"},"1.0.10":{"date":" 06\/29\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.3.2 to [3.4.0](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.4.0)\n"},"1.0.9":{"date":" 06\/03\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.3.0 to [3.3.2](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.3.2)\n"},"1.0.8":{"date":" 05\/21\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.2.1 to [3.3.0](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.3.0)\n"},"1.0.7":{"date":" 05\/21\/2021","content":"1. [](#bugfix)\n   * multi-dimensional arrays now working properly\n   * make canvasId unique\n"},"1.0.6":{"date":" 05\/03\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.2.0 to [3.2.1](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.2.1)\n"},"1.0.5":{"date":" 04\/24\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.1.1 to [3.2.0](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.2.0)\n"},"1.0.4":{"date":" 04\/18\/2021","content":"1. [](#improved)\n   * updated Chart.js from 3.1.0 to [3.1.1](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.1.1)\n"},"1.0.3":{"date":" 04\/11\/2021","content":"1. [](#improved)\n    * updated Chart.js from 3.0.2 to [3.1.0](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.1.0)\n"},"1.0.2":{"date":" 04\/04\/2021","content":"1. [](#improved)\n    * updated Chart.js from 2.9.4 to [3.0.2](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v3.0.2)\n"},"1.0.1":{"date":" 10\/25\/2020","content":"1. [](#improved)\n    * updated Chart.js from 2.9.3 to [2.9.4](https:\/\/github.com\/chartjs\/Chart.js\/releases\/tag\/v2.9.4)\n"}}},"shortcode-external-caller":{"name":"Shortcode External Caller","version":"0.2.0","description":"Use the Shortcode Core Plugin to provide the [external-caller] shortcode.","description_html":"<p>Use the Shortcode Core Plugin to provide the [external-caller] shortcode.<\/p>","description_plain":"Use the Shortcode Core Plugin to provide the [external-caller] shortcode.","icon":"code","author":{"name":"Kai Th\u00f6ne","url":"https:\/\/github.com\/kgitthoene","email":"k.git.thoene@gmx.net"},"dependencies":[{"name":"grav","version":">=1.6.4"},{"name":"shortcode-core","version":">=4.2.1"}],"homepage":"https:\/\/github.com\/kgitthoene\/grav-plugin-shortcode-external-caller","docs":"https:\/\/github.com\/kgitthoene\/grav-plugin-shortcode-external-caller\/blob\/master\/README.md","keywords":"grav, plugin, twig, leaflet, map, external, call","bugs":"https:\/\/github.com\/kgitthoene\/grav-plugin-shortcode-external-caller\/issues","license":"BSD","tag_name":"v0.2.0","date":"2024-01-24T15:14:11Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-external-caller\/0.2.0","repository":"https:\/\/github.com\/kgitthoene\/grav-plugin-shortcode-external-caller","slug":"shortcode-external-caller","install_path":"user\/plugins\/shortcode-external-caller","content_sha256":"f423afc9c998b38e48556844a44b5709e6a2f19f51cbd8bba61c5f0caa16dc36","changelog":{"0.2.0":{"date":"25\/01\/2024","content":"1. [](#improvement)\n    * Removed a bug.\n"},"0.1.9":{"date":"24\/01\/2024","content":"1. [](#improvement)\n    * Removed a minor bug.\n"},"0.1.8":{"date":"22\/01\/2024","content":"1. [](#improvement)\n    * Adopted latest changes from GRAV.\n"},"0.1.4":{"date":"16\/07\/2020","content":"1. [](#improvement)\n    * Add failsafe localization in bin\/create-embedded-map.rb\n\n"},"0.1.3":{"date":"16\/07\/2020","content":"1. [](#bugfix)\n    * Add the Shortcode Core plugin to blueprints.yaml\n\n"},"0.1.2":{"date":"16\/07\/2020","content":"1. [](#improvement)\n    * Check given YAML in bin\/create-embedded-map.rb\n\n"},"0.1.1":{"date":"14\/07\/2020","content":"1. [](#bugfix)\n    * Fixed names\n\n"},"0.1.0":{"date":"13\/07\/2020","content":"1. [](#new)\n    * Initial release"}}},"markdown-typography":{"name":"Markdown Typography","version":"1.0.5","description":"Enables substitution of typographic characters during Markdown processing","description_html":"<p>Enables substitution of typographic characters during Markdown processing<\/p>","description_plain":"Enables substitution of typographic characters during Markdown processing","icon":"quote-right","author":{"name":"Nathan Parsons","url":"https:\/\/github.com\/n-parsons","email":"github@parsons.digital"},"homepage":"https:\/\/github.com\/n-parsons\/grav-plugin-markdown-typography","keywords":"typography, markdown","bugs":"https:\/\/github.com\/n-parsons\/grav-plugin-markdown-typography\/issues","license":"MIT","tag_name":"1.0.5","date":"2021-02-27T18:12:46Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-typography\/1.0.5","repository":"https:\/\/github.com\/N-Parsons\/grav-plugin-markdown-typography","slug":"markdown-typography","install_path":"user\/plugins\/markdown-typography","content_sha256":"5196ee63901e0b83b80f40095f336e4245b6bc7927bce463f33155b2e82e18f1","changelog":{"1.0.5":{"date":"2021-02-27","content":"1. [](#bugfix)\n   - Fixed bug with multiplication symbols breaking pages.\n"},"1.0.4":{"date":"2020-12-27","content":"1. [](#bugfix)\n   - Forgot to push changes to GitHub before creating the release...\n"},"1.0.3":{"date":"2020-12-26","content":"1. [](#bugfix)\n   - Improved regex for shortcode content protection with smart-quotes.\n   - Fixed compatibility with Chart.js++ plugin (via above).\n"},"1.0.2":{"date":"2020-12-06","content":"1. [](#new)\n   - Added support for multiplication symbols via \" x \".\n"},"1.0.1":{"date":"2020-07-12","content":"1. [](#bugfix)\n   - Fixed issue with inline shortcodes breaking with smart-quotes.\n"},"1.0.0":{"date":"2020-07-09","content":"1. [](#new)\n   - ChangeLog started..."}},"dependencies":[]},"aura-authors":{"name":"Aura Authors","version":"1.0.0","description":"Store author bios in a central repository for display on multiple pages.","description_html":"<p>Store author bios in a central repository for display on multiple pages.<\/p>","description_plain":"Store author bios in a central repository for display on multiple pages.","icon":"users","author":{"name":"Matt Mulhall","url":"https:\/\/www.theskylab.net","email":"matt@theskylab.net"},"homepage":"https:\/\/github.com\/matt-j-m\/grav-plugin-aura-authors","keywords":"author, bio, blog","bugs":"https:\/\/github.com\/matt-j-m\/grav-plugin-aura-authors\/issues","license":"MIT","tag_name":"v1.0.0","date":"2020-06-23T21:50:36Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/aura-authors\/1.0.0","repository":"https:\/\/github.com\/matt-j-m\/grav-plugin-aura-authors","slug":"aura-authors","install_path":"user\/plugins\/aura-authors","content_sha256":"39999f531d4752bb3cea0bc6f89792658a62a4e05ae90497ef09cdcaaaf640a6","changelog":{"1.0.0":{"date":" 23-06-2020","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"color-tools":{"name":"Color Tools","version":"1.1.2","description":"Color Tools for PHP and Twig","description_html":"<p>Color Tools for PHP and Twig<\/p>","description_plain":"Color Tools for PHP and Twig","icon":"paint-brush","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.6.28"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-color-tools","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-color-tools\/blob\/develop\/README.md","keywords":"grav, plugin, colors, utility","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-color-tools\/issues","license":"MIT","tag_name":"1.1.2","date":"2026-05-05T14:10:47Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/color-tools\/1.1.2","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-color-tools","slug":"color-tools","install_path":"user\/plugins\/color-tools","content_sha256":"61039c8335084f03618d7cb81dc978b7ccf3c43fefdabd02368d04a9a72377c9","changelog":{"1.1.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.1.1":{"date":"04\/26\/2022","content":"1. [](#new)\n   * Added new `tailwindFormat()` function to convert Hex to Tailwind compatible channels\n"},"1.1.0":{"date":"01\/03\/2022","content":"1. [](#new)\n   * Updated to `dev-master` of `Mexitek\/PHPColors` to get latest functionality\n   * Added `name_to_hex` Twig function and filter [#4](https:\/\/github.com\/trilbymedia\/grav-plugin-color-tools\/issues\/4)\n"},"1.0.2":{"date":"12\/23\/2021","content":"1. [](#bugfix)\n    * Updated readme to reflect `|color` rather than `|color_object` [#3](https:\/\/github.com\/trilbymedia\/grav-plugin-color-tools\/pull\/3)\n"},"1.0.1":{"date":"09\/01\/2020","content":"1. [](#new)\n    * Initial Release"}}},"admin-addon-media-metadata":{"name":"Admin Addon Media Metadata","version":"1.2.4","description":"This plugin is an addon for the Grav CMS Admin plugin and lets you add and edit metadata for media files","description_html":"<p>This plugin is an addon for the Grav CMS Admin plugin and lets you add and edit metadata for media files<\/p>","description_plain":"This plugin is an addon for the Grav CMS Admin plugin and lets you add and edit metadata for media files","icon":"plug","author":{"name":"Clive Beckett","email":"clive@musikinsnetz.de"},"dependencies":[{"name":"grav","version":"1.5 - 1.7"},{"name":"admin","version":"1.8 - 1.10"}],"homepage":"https:\/\/github.com\/clivebeckett\/grav-plugin-admin-addon-media-metadata","docs":"https:\/\/github.com\/clivebeckett\/grav-plugin-admin-addon-media-metadata\/blob\/develop\/README.md","keywords":"grav, admin, plugin, metadata, image, alt, title, caption","bugs":"https:\/\/github.com\/clivebeckett\/grav-plugin-admin-addon-media-metadata\/issues","license":"MIT","tag_name":"v1.2.4","date":"2024-06-03T08:56:05Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-addon-media-metadata\/1.2.4","repository":"https:\/\/github.com\/clivebeckett\/grav-plugin-admin-addon-media-metadata","slug":"admin-addon-media-metadata","install_path":"user\/plugins\/admin-addon-media-metadata","content_sha256":"d68e07e8b93530b73e35121d80882e978218d964c3f4b90dfb000c18e73728b5","changelog":{"1.2.4":{"date":"2024-06-03","content":"1. [](#bugfix)\n    * Fix crash when custom metadata fields have no name defined (#32)\n2. [](#improved)\n    * Changelog format streamlined\n"},"1.2.3":{"date":"2024-03-11","content":"1. [](#bugfix)\n    * making sure all mandatory hidden fields are included in the form and are not omitted\/overwritten with custom form fields (#26)\n"},"1.2.2":{"date":"2024-01-16","content":"1. [](#bugfix)\n    * design fix for the dropzone trigger (#19)\n2. [](#improved)\n    * readme clarification for frontmatter usage (#18)\n    * readme clarification of not supporting nested array field names at the moment (#20)\n\n"},"1.2.1":{"date":"2024-01-10","content":"1. [](#bugfix)\n    * newly added files could not have metadata files, because there was no filepath information\n2. [](#improved)\n    * set line breaks to LF instead of CRLF\n\n"},"1.2.0":{"date":"2023-01-11","content":"1. [](#new)\n    * Added Support for files in flex-object data storage\n"},"1.1.0":{"date":"2020-06-05","content":"1. [](#new)\n    * Page specific media metadata fields can be added to a page\u2019s frontmatter (see README --> Configuration)\n2. [](#improved)\n    * meta.yaml file will not be created upon upload anymore: this allows the creation of the file with the setting media.auto_metadata_exif turned on (in Admin Plugin 1.9); in Admin Plugin 1.10 it did not work anyway \u2013 **NOTE: in Admin Plugin 1.10 with setting media.auto_metadata_exif turned on, make sure to save the page with a newly uploaded image before adding other metadata using this plugin**\n"},"1.0.2":{"date":"2020-04-16","content":"1. [](#improved)\n    * The button next to a media file will now also be translated. It was hard-coded to English before.\n"},"1.0.1":{"date":"2020-04-10","content":"1. [](#bugfix)\n    * meta.yaml file will now be created for an already uploaded media file that did not have an associated meta.yaml file before\n"},"1.0.0":{"date":"2020-03-20","content":"1. [](#improved)\n    * using core technology (Grav\\Common\\Yaml) for parsing and writing the meta.yaml files \u2013\u00a0kudos to https:\/\/github.com\/renards for adding crucial parts to the code\n"},"0.9.1":{"date":"2020-03-16","content":"1. [](#bugfix)\n    * adding \/vendor\/ and composer.lock, needed for composer autoload functionality\n"},"0.9.0":{"date":"2020-03-15","content":"1. [](#new)\n    * Initial release"}}},"tabs":{"name":"Tabs","version":"0.3.2","description":"Enables rendering content as tabs via partial templates\/blueprints","description_html":"<p>Enables rendering content as tabs via partial templates\/blueprints<\/p>","description_plain":"Enables rendering content as tabs via partial templates\/blueprints","icon":"folder","author":{"name":"Julien Dau","email":"julien.d.dau@gmail.com"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/domsson\/grav-plugin-tabs","docs":"https:\/\/github.com\/domsson\/grav-plugin-tabs\/blob\/develop\/README.md","keywords":"grav, plugin, tabs","bugs":"https:\/\/github.com\/domsson\/grav-plugin-tabs\/issues","license":"MIT","tag_name":"0.3.2","date":"2025-11-27T09:47:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tabs\/0.3.2","repository":"https:\/\/github.com\/domsson\/grav-plugin-tabs","slug":"tabs","install_path":"user\/plugins\/tabs","content_sha256":"b36d443a25e02a08f384325fdca1f6c9453bdedda6e8d9db06a697b66fe60bee","changelog":{"0.3.2":{"date":"2025-11-27","content":"1. [](#improved)\n    * Remove unused and unnecessary code from tabs.php\n2. [](#bugfix)\n    * Put `cfg.attribute` to use in the HTML; was hardcoded to `data-tabs` before\n"},"0.3.1":{"date":"2025-11-27","content":"1. [](#improved)\n    * Retroactively remove v0.2.0 and v0.2.1 into v0.3.0 to hopefully fix issues with GPM\n    * Remove `composer.json` since we're not using composer for this plugin\n"},"0.3.0":{"date":"2025-11-17","content":"1. [](#new)\n    * Built-in CSS now included (from 0.2.0)\n    * Updated to newest `tabs.js` version  (from 0.2.0)\n    * New config options, `nav_class` and `btn_class`  (from 0.2.0)\n2. [](#improved)\n    * Built-in CSS now enabled by default  (from 0.2.0)\n    * Hardcoded string in the blueprint are now coming from the language file (from 0.2.1)    \n3. [](#bugfix)\n    * Fixed crash caused by `autoload()` method trying to scan `vendor` directory when it doesn't exist\n"},"0.1.0":{"date":"2020-04-07","content":"1. [](#new)\n    * Initial release"}}},"mailchimp":{"name":"MailChimp","version":"0.2.1","description":"Add MailChimp subscribe form action support","description_html":"<p>Add MailChimp subscribe form action support<\/p>","description_plain":"Add MailChimp subscribe form action support","icon":"plug","author":{"name":"Aaron Hipple","email":"aaron@hippl.es"},"homepage":"https:\/\/github.com\/aaronhipple\/grav-plugin-mailchimp","docs":"https:\/\/github.com\/aaronhipple\/grav-plugin-mailchimp\/blob\/master\/README.md","keywords":"grav, plugin, mailchimp","bugs":"https:\/\/github.com\/aaronhipple\/grav-plugin-mailchimp\/issues","license":"MIT","tag_name":"v0.2.1","date":"2020-07-20T08:42:47-07:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mailchimp\/0.2.1","repository":"https:\/\/github.com\/aaronhipple\/grav-plugin-mailchimp","slug":"mailchimp","install_path":"user\/plugins\/mailchimp","content_sha256":"f39f234293dd11d97cb20f712560571d77c58bcee64ece121aa2365e215b8268","changelog":{"0.2.1":{"date":"07\/17\/2020","content":"1. [](#bugfix)\n   - Fix error when no default list ID is configured.\n"},"0.2.0":{"date":"04\/05\/2020","content":"1. [](#improved)\n   - Reorganized the codebase substantially for better testing.\n   - Updated changelog format in preparation for publishing to GPM.\n"},"0.1.0":{"date":"12\/04\/2018","content":"1. [](#new)\n   - Default list ID can be specified in config.\n1. [](#bugfix)\n   - Resubscribes failing due to POST instead of PUT.\n"},"0.0.5":{"date":"06\/27\/2017","content":"1. [](#new)\n   - Better handling of site\/project-level composer autoloading.\n   - Report MailChimp API errors in Grav's log.\n   - Added settings: language_detection_mode, default_status, and delete_first.\n   - i18n in admin settings.\n1. [](#improved)\n   - Changelog Formatting Improvements.\n"},"0.0.4":{"date":"10\/06\/2016","content":"1. [](#new)\n   - Default language chooser in admin plugin\n1. [](#improved)\n   - Fill out composer.json to permit composer-based installation\n"},"0.0.3":{"date":"10\/06\/2016","content":"1. [](#improved)\n   - Update release tagging convention in changelog (0.0.x -> v0.0.x)\n"},"0.0.2":{"date":"10\/05\/2016","content":"1. [](#new)\n   - Language detection support.\n1. [](#bugfix)\n   - General bug fixes \u2014 it works.\n"},"0.0.1":{"date":"10\/05\/2016","content":"1. [](#new)\n   - Basic MailChimp API Support.\n   - User IP submission.\n   - Merge fields mapping."}},"dependencies":[]},"stamp":{"name":"Stamp","version":"1.0.5","description":"Automatically adds or modifies the date, date_modified, author, editor, revision and taxonomy.author to frontmatter when a page is saved via the Grav Admin Plugin. Optionally adds Twig variable users which contains data from user accounts.","description_html":"<p>Automatically adds or modifies the date, date_modified, author, editor, revision and taxonomy.author to frontmatter when a page is saved via the Grav Admin Plugin. Optionally adds Twig variable users which contains data from user accounts.<\/p>","description_plain":"Automatically adds or modifies the date, date_modified, author, editor, revision and taxonomy.author to frontmatter when a page is saved via the Grav Admin Plugin. Optionally adds Twig variable users which contains data from user accounts.","icon":"save","author":{"name":"V\u00edt Petira","url":"https:\/\/www.grav.cz","email":"petira@grav.cz"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/petira\/grav-plugin-stamp","docs":"https:\/\/github.com\/petira\/grav-plugin-stamp\/blob\/develop\/README.md","demo":"https:\/\/www.grav.cz\/blog","keywords":"grav, plugin, auto, date, modified, author, editor, revision, taxonomy, frontmatter, petira","bugs":"https:\/\/github.com\/petira\/grav-plugin-stamp\/issues","license":"MIT","tag_name":"1.0.5","date":"2022-12-26T16:53:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/stamp\/1.0.5","repository":"https:\/\/github.com\/petira\/grav-plugin-stamp","slug":"stamp","install_path":"user\/plugins\/stamp","content_sha256":"8f33687f063b12c5f11b2d85ed7d4c36b853b119b9dd1025de2665de0ab26adc","changelog":{"1.0.5":{"date":"12\/26\/2022","content":"1. [](#new)\n    * Added Twig variable `users` which contains data from user accounts\n"},"1.0.4":{"date":"02\/22\/2022","content":"1. [](#new)\n    * Added support for taxonomy type of `author`\n1. [](#improved)\n    * Improved documentation of new configuration parameters in `README.md`\n"},"1.0.3":{"date":"08\/30\/2021","content":"1. [](#new)\n    * Added choice between using a full name and a username [#1](https:\/\/github.com\/petira\/grav-plugin-stamp\/issues\/1)\n1. [](#improved)\n    * Improved documentation of new configuration parameters and examples in `README.md`\n    * Changed settings for full compatibility with Grav v1.7 and Admin Panel v1.10\n"},"1.0.2":{"date":"01\/31\/2021","content":"1. [](#improved)\n    * Updated methods to ensure compatibility with Grav v1.7 and Admin Panel v1.10\n"},"1.0.1":{"date":"05\/16\/2020","content":"1. [](#new)\n    * Added separate settings for adding and\/or modifying the `date` and `author` variables\n1. [](#improved)\n    * Changed the properties of the `override` variable without affecting backward compatibility\n    * Improved control over adding and\/or modifying values of the `date` and `author` variables\n    * Improved documentation of new configuration parameters in `README.md`\n1. [](#bugfix)\n    * Fixed `revision` variable type from numeric to integer\n"},"1.0.0":{"date":" 05\/08\/2020","content":"1. [](#new)\n    * Initial Release"}}},"webpack-manifest":{"name":"Webpack Manifest","version":"1.0.0","description":"Reference assets from your webpack manifest in your theme","description_html":"<p>Reference assets from your webpack manifest in your theme<\/p>","description_plain":"Reference assets from your webpack manifest in your theme","icon":"plug","author":{"name":"Maarten de Boer","email":"maarten@cloudstek.nl"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/Cloudstek\/grav-plugin-webpack-manifest","docs":"https:\/\/github.com\/Cloudstek\/grav-plugin-webpack-manifest\/blob\/master\/README.md","keywords":"webpack, mix, encore, manifest","bugs":"https:\/\/github.com\/Cloudstek\/grav-plugin-webpack-manifest\/issues","license":"MIT","tag_name":"v1.0.1","date":"2020-04-27T13:24:34+02:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/webpack-manifest\/1.0.0","repository":"https:\/\/github.com\/Cloudstek\/grav-plugin-webpack-manifest","slug":"webpack-manifest","install_path":"user\/plugins\/webpack-manifest","content_sha256":"c8ce4c4221334004f1de5ccc06ccdf37c4db89f0831e2499ebdd1c6f2ce4beb3","changelog":{"1.0.0":{"date":"27-04-2020","content":"1. [](#new)\n    * First release"}}},"vcard":{"name":"VCard","version":"0.1.1","description":"Generates dynamic VCards","description_html":"<p>Generates dynamic VCards<\/p>","description_plain":"Generates dynamic VCards","icon":"address-card-o","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-vcard","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-vcard\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-vcard\/issues","license":"MIT","tag_name":"0.1.1","date":"2026-05-05T13:55:40Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/vcard\/0.1.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-vcard","slug":"vcard","install_path":"user\/plugins\/vcard","content_sha256":"71defefbffe97c2e01e7dbe1bce91d8c725859cc17c67b440a9ecc7bf2fb8ae6","changelog":{"0.1.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"0.1.0":{"date":"05\/20\/2020","content":"1. [](#new)\n    * ChangeLog started..."}}},"markdown-details":{"name":"Markdown Details","version":"2.0.1","description":"Adds the ability to render collapsible sections in Markdown","description_html":"<p>Adds the ability to render collapsible sections in Markdown<\/p>","description_plain":"Adds the ability to render collapsible sections in Markdown","icon":"caret-square-o-down","author":{"name":"Sebastian Laube","email":"bitstarr@users.noreply.github.com"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/bitstarr\/grav-plugin-markdown-details","docs":"https:\/\/github.com\/bitstarr\/grav-plugin-markdown-details\/blob\/main\/README.md","keywords":"markdown, details, summary, collapsible, a11y, accessability","bugs":"https:\/\/github.com\/bitstarr\/grav-plugin-markdown-details\/issues","license":"MIT","tag_name":"2.0.1","date":"2026-07-10T12:47:51Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-details\/2.0.1","repository":"https:\/\/github.com\/bitstarr\/grav-plugin-markdown-details","slug":"markdown-details","install_path":"user\/plugins\/markdown-details","content_sha256":"3142752f748d9d469a950ce48a3ca0005e9c90536bc33d44c076b15f31696793","changelog":{"2.0.1":{"date":"2026-07-10","content":"1. [](#new)\n   * Added Grav 2.0 compatibility \n  "},"2.0.0":{"date":"2021-05-13","content":"1. [](#improved)\n    * Complete refactoring to provide better quality and customizability\n"},"1.0.4":{"date":"2021-03-09","content":"1. [](#bugfix)\n    * Corrected plugin options interpretation\n"},"1.0.3":{"date":"2021-03-08","content":"1. [](#bugfix)\n    * Fix details.js include for onTwigSiteVariables()\n"},"1.0.2":{"date":"2020-03-19","content":"1. [](#bugfix)\n    * JS misbehaviour fixed\n"},"1.0.1":{"date":"2020-03-19","content":"1. [](#bugfix)\n    * undefined variable fixed (https:\/\/github.com\/bitstarr\/grav-plugin-markdown-details\/issues\/1)\n"},"1.0.0":{"date":"2020-03-18","content":"1. [](#new)\n    * ChangeLog started..."}}},"svg-extension":{"name":"SVG Extension","version":"1.1.0","description":"Inline SVG in Twig Templates","description_html":"<p>Inline SVG in Twig Templates<\/p>","description_plain":"Inline SVG in Twig Templates","icon":"picture-o","author":{"name":"Martin R\u00f6mer + Sebastian Laube","email":"bitstarr@users.noreply.github.com"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/bitstarr\/grav-plugin-svg-extension","license":"MIT","tag_name":"1.1.1","date":"2026-07-10T13:33:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/svg-extension\/1.1.0","repository":"https:\/\/github.com\/bitstarr\/grav-plugin-svg-extension","slug":"svg-extension","install_path":"user\/plugins\/svg-extension","content_sha256":"e23b864a9dd6860156d6e296743fd8b96716abef1f7e5a33548bd6233089e728","changelog":{"1.1.1":{"date":"2026-07-10","content":"1. [](#new)\n   * Added Grav 2.0 compatibility \n  "},"1.1.0":{"date":" 2023-08-01","content":"1. [](#new)\n    * Sprite functionality\n\n"},"1.0.2":{"date":" 2020-12-01","content":"1. [](#improved)\n    * Security and accessability fixes\n    "},"1.0.1":{"date":" 2020-03-17","content":"1. [](#improved)\n    * Added default CSS classes config option\n"},"1.0.0":{"date":" 2020-03-13","content":"1. [](#new)\n    * ChangeLog started..."}}},"yandex-map":{"name":"Yandex Map","version":"1.3.0","description":"Yandex Map plugin for Grav cms","description_html":"<p>Yandex Map plugin for Grav cms<\/p>","description_plain":"Yandex Map plugin for Grav cms","icon":"yahoo","author":{"name":"Reqweb","url":"http:\/\/reqweb.net","email":"reqweb-dev@yandex.ru"},"homepage":"https:\/\/github.com\/reqweb\/Yandex-map","keywords":"yandex, plugin, map","bugs":"https:\/\/github.com\/reqweb\/Yandex-map\/issues","license":"MIT","tag_name":"1.3.0","date":"2026-04-17T08:19:38Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/yandex-map\/1.3.0","repository":"https:\/\/github.com\/reqweb\/Yandex-map","slug":"yandex-map","install_path":"user\/plugins\/yandex-map","content_sha256":"6802d5b5848a7d0ddaba449b081362367eac9aae970cfd89c9f42c962e8a976e","changelog":{"1.3.0":{"date":"04\/17\/2026","content":"1. [](#new)\n    * Added switching of the map zoom option \"wheel\" - \"wheel+ctrl\"\n"},"1.2.1":{"date":"12\/13\/2024","content":"1. [](#new)\n    * It is now possible to adjust the width and height of the block from the admin panel\n1. [](#correction)\n    * Deleted yandex-map.css, by default, the height and width remained 100% and 400px\n"},"1.1.1":{"date":"03\/27\/2020","content":"1. [](#bugfix)\n    * Fixed the \"id not found\" error\n"},"1.1.0":{"date":"03\/03\/2020","content":"1. [](#new)\n    * Added an option on\/off css-file\n"},"1.0.0":{"date":"03\/02\/2020","content":"1. [](#new)\n    * First release of the plugin"}},"dependencies":[]},"xapi":{"name":"Xapi","version":"0.3.6","description":"Add to grav LRS connectivity and basic page activity statements tracking. Turns your favorite grav app into an simple Learning Management System.","description_html":"<p>Add to grav LRS connectivity and basic page activity statements tracking. Turns your favorite grav app into an simple Learning Management System.<\/p>","description_plain":"Add to grav LRS connectivity and basic page activity statements tracking. Turns your favorite grav app into an simple Learning Management System.","icon":"graduation-cap","author":{"name":"Gamahachaa","email":"gamahachaa@gmail.com"},"homepage":"https:\/\/github.com\/gamahachaa\/grav-xapi","docs":"https:\/\/github.com\/gamahachaa\/grav-xapi\/blob\/master\/README.md","keywords":"grav, plugin, xapi, e-learning, knowledge management, LRS, LMS","bugs":"https:\/\/github.com\/gamahachaa\/grav-xapi\/issues","license":"Apache 2.0","tag_name":"0.3.6","date":"2021-07-08T16:02:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/xapi\/0.3.6","repository":"https:\/\/github.com\/gamahachaa\/grav-xapi","slug":"xapi","install_path":"user\/plugins\/xapi","content_sha256":"a3afc292a4c0cf1b5a2d7401820edfa92a42daf444fa564d8945f6dd1ffae715","changelog":{"0.3.6":{"date":" 03\/01\/2020","content":"1. [](#improved)\n    * Query filtering\n1. [](#new)\n    * Cleanings before refactoring\n"},"0.3.0":{"date":" 03\/01\/2020","content":"1. [](#new)\n    * Inital release..."}},"dependencies":[]},"swiper":{"name":"Swiper","version":"1.0.2","description":"Swiper for Grav CMS","description_html":"<p>Swiper for Grav CMS<\/p>","description_plain":"Swiper for Grav CMS","icon":"plug","author":{"name":"Ole Vik","email":"git@olevik.net"},"homepage":"https:\/\/github.com\/OleVik\/grav-plugin-swiper","docs":"https:\/\/github.com\/OleVik\/grav-plugin-swiper\/blob\/develop\/README.md","demo":"https:\/\/swiperjs.com\/demos\/","keywords":"grav, plugin, swiper, slider, gallery","bugs":"https:\/\/github.com\/OleVik\/grav-plugin-swiper\/issues","license":"MIT","tag_name":"1.0.2","date":"2019-12-25T20:51:26Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/swiper\/1.0.2","repository":"https:\/\/github.com\/OleVik\/grav-plugin-swiper","slug":"swiper","install_path":"user\/plugins\/swiper","content_sha256":"ff48a881fe0864605405a84cbfbb4bb0cdf89dbe02af19b5ebcb8847c79f582e","changelog":{"1.0.2":{"date":" 25-12-2019","content":"1. [](#improved)\n    * Cache-proof asset-loading\n"},"1.0.1":{"date":" 25-12-2019","content":"1. [](#new)\n    * CSS- and JS-options\n2. [](#improved)\n    * Asset-loading\n"},"1.0.0":{"date":" 21-12-2019","content":"1. [](#new)\n    * Initial release"}},"dependencies":[]},"stripe-checkout":{"name":"Stripe Checkout","version":"1.1.0","description":"Simple Grav Stripe Checkout Wrapper with SCA2 support for european-selling shops","description_html":"<p>Simple Grav Stripe Checkout Wrapper with SCA2 support for european-selling shops<\/p>","description_plain":"Simple Grav Stripe Checkout Wrapper with SCA2 support for european-selling shops","icon":"plug","author":{"name":"ricardo","email":"ricardo@urbansquid.london"},"homepage":"https:\/\/github.com\/ricardo118\/grav-plugin-stripe-checkout","docs":"https:\/\/github.com\/ricardo118\/grav-plugin-stripe-checkout\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, stripe, cart, shop, commerce, gdpr, sca, sca2, checkout, shopping, ecom, ecommerce","bugs":"https:\/\/github.com\/ricardo118\/grav-plugin-stripe-checkout\/issues","license":"MIT","tag_name":"v1.1.0","date":"2021-02-10T11:16:39Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/stripe-checkout\/1.1.0","repository":"https:\/\/github.com\/ricardo118\/grav-plugin-stripe-checkout","slug":"stripe-checkout","install_path":"user\/plugins\/stripe-checkout","content_sha256":"e4876bf9f71fb7b52addf25dad574b759255b238d086b93c10cb730393893bb2","changelog":{"1.1.0":{"date":" 02\/10\/2021","content":"1. [](#bugfix)\n    * Updated to match the new changes to the Stripe API\n"},"1.0.0":{"date":" 01\/08\/2020","content":"1. [](#new)\n    * First Release\n"},"0.1.0":{"date":" 12\/25\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"login-oauth2-auth0":{"name":"Login OAuth2 Auth0","version":"1.0.9","description":"OAuth2 Provider for Auth0","description_html":"<p>OAuth2 Provider for Auth0<\/p>","description_plain":"OAuth2 Provider for Auth0","icon":"plug","author":{"name":"Tanay Sai (sponsored by Acquia\/Mautic)","email":"saitanay@gmail.com"},"dependencies":[{"name":"login-oauth2","version":">=2.0.2"}],"homepage":"https:\/\/github.com\/saitanay\/grav-plugin-login-oauth2-auth0","docs":"https:\/\/github.com\/saitanay\/grav-plugin-login-oauth2-auth0\/README.md","demo":"https:\/\/github.com\/saitanay\/grav-plugin-login-oauth2-auth0","keywords":"grav, plugin, auth0, mautic, acquia","bugs":"https:\/\/github.com\/saitanay\/grav-plugin-login-oauth2-auth0\/issues","license":"MIT","tag_name":"1.0.9","date":"2020-02-26T12:13:21Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/login-oauth2-auth0\/1.0.9","repository":"https:\/\/github.com\/mautic\/grav-plugin-login-oauth2-auth0","slug":"login-oauth2-auth0","install_path":"user\/plugins\/login-oauth2-auth0","content_sha256":"dcceb94776aa87d63e8f1d13263d94a20d6f0cdb16b5f461368bda9ef463e33d","changelog":{"1.0.9":{"date":"02\/26\/2020","content":"1. [](#bug)\n    * Fixed issue with incorrect dependency warning on admin pages.  \n\n"},"1.0.8":{"date":"02\/26\/2020","content":"1. [](#bug)\n    * Fixed an issue with config variables.  \n\n"},"1.0.7":{"date":"02\/20\/2020","content":"1. [](#maintenance)\n    * Updated dependency version. https:\/\/github.com\/getgrav\/grav\/issues\/2833  \n"},"1.0.6":{"date":"02\/20\/2020","content":"1. [](#maintenance)\n    * Removed version number for login-oauth2 dependency.  \n\n"},"1.0.5":{"date":"02\/20\/2020","content":"1. [](#maintenance)\n    * Updated dependency version of login-oauth2 plugin to ~2.0.2 \n"},"1.0.4":{"date":"02\/20\/2020","content":"1. [](#maintenance)\n    * Updated release version numbers in blueprint. \n"},"1.0.3":{"date":"02\/20\/2020","content":"1. [](#maintenance)\n    * Fixed release version numbering\n    * Updated readme to remove link to issue requesting plugin to be whitelisted for gpm.\n"},"1.0.2":{"date":"02\/20\/2020","content":"1. [](#maintenance)\n    * Update repo name to be inline with grav-plugin-login-oauth2-XXXX.\n"},"1.0.1":{"date":"02\/20\/2020","content":"1. [](#maintenance)\n    * Removed an orphan test default value. \n    * Updated Readme File to add a note about GPM.  \n"},"1.0.0":{"date":"02\/20\/2020","content":"1. [](#new)\n    * Initial version released"}}},"static-generator":{"name":"Static Generator","version":"4.0.1","description":"Static generation of Page(s) and Index.","description_html":"<p>Static generation of Page(s) and Index.<\/p>","description_plain":"Static generation of Page(s) and Index.","icon":"bolt","author":{"name":"Ole Vik","email":"git@olevik.net"},"dependencies":[{"name":"grav","version":">=1.7"}],"homepage":"https:\/\/github.com\/OleVik\/grav-plugin-static-generator","docs":"https:\/\/github.com\/OleVik\/grav-plugin-static-generator","keywords":"grav, plugin, static, index, search, data, json, html","bugs":"https:\/\/github.com\/OleVik\/grav-plugin-static-generator\/issues","license":"MIT","tag_name":"4.0.1","date":"2023-07-18T12:45:30Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/static-generator\/4.0.1","repository":"https:\/\/github.com\/OleVik\/grav-plugin-static-generator","slug":"static-generator","install_path":"user\/plugins\/static-generator","content_sha256":"989535c1aa4d71c8b3be93025d545396495fab89b14d68eafaf9d7b9a0496e7c","changelog":{"4.0.1":{"date":"18-07-2023","content":"1. [](#bugfix)\n    * `DataInterface`-compliance\n"},"4.0.0":{"date":"18-07-2023","content":"1. [](#new)\n    * URL-parameter to pass `custom_base_url` to CLI\n2. [](#improved)\n    * Initialize URI when constructring `AbstractData`\n3. [](#bugfix)\n    * Refer to own instance on `AbstractData->setup()`\n"},"3.1.1":{"date":"02-06-2021","content":"1. [](#bugfix)\n    * Link to docs\n"},"3.1.0":{"date":"10-04-2021","content":"1. [](#improved)\n    * API-alignment to use `Grav\\Common\\Page\\Interfaces\\PageInterface`, transparently\n    * Code cleanup\n2. [](#new)\n    * Revert content index-location to `user:\/\/data\/persist`\n3. [](#bugfix)\n    * Correct key in indexed metadata\n"},"3.0.0":{"date":"07-03-2021","content":"1. [](#new)\n    * Compatibility with Grav Core 1.7\n    * Separate buttons and tasks for Index and Content in Admin\n2. [](#improved)\n    * Stream-resolution in FileStorage Adapter\n    * Code-quality\n3. [](#bugfix)\n    * Method-alignment\n    * Method-fallback\n    * Exception-catching\n"},"2.1.3":{"date":"26-09-2020","content":"1. [](#bugfix)\n    * Handle route-prefix more gracefully\n"},"2.1.2":{"date":"24-09-2020","content":"1. [](#bugfix)\n    * Do not strip route-prefix\n"},"2.1.1":{"date":"24-09-2020","content":"1. [](#improved)\n    * Media routes sanitizing\n2. [](#bugfix)\n    * Canonical URLs\n"},"2.1.0":{"date":"22-09-2020","content":"1. [](#bugfix)\n    * Do not end copyMedia() prematurely\n    * Avoid double-slash prefix\n"},"2.0.0":{"date":"14-03-2020","content":"1. [](#new)\n    * Assets-prefix option\n2. [](#bugfix)\n    * CommandLineCollection-initialization\n3. [](#improved)\n    * Version-constraint\n"},"2.0.0-beta.1":{"date":"06-03-2020","content":"1. [](#improved)\n    * Grav-initialization\n    * API-cleanup\n    * Asset-parsing and -rewriting\n2. [](#new)\n    * Offline-option to avoid trying to download remote assets\n3. [](#bugfix)\n    * Lock version-dependency to Core v1.6.22\n    * Revert blueprints-logic\n    * Fix permissions-selectize field\n"},"2.0.0-alpha.3":{"date":"11-02-2020","content":"1. [](#new)\n    * Customizable permissions for Quick Tray, Generation-buttons\n    * Parameter-handling for Config and Twig\n    * Deprecate Preset-page in Admin\n2. [](#improved)\n    * Command-preview in Admin\n    * Admin tab-order\n    * README\n    * Blueprints\n"},"2.0.0-alpha.2":{"date":"06-02-2020","content":"1. [](#improved)\n    * Admin-preview\n    * Configuration\n    * Blueprints\n2. [](#new)\n    * Customizable permissions for Quick Tray, Generation-buttons\n    * Deprecate Preset-page in Admin\n"},"2.0.0-alpha.1":{"date":"01-02-2020","content":"1. [](#new)\n    * API-refactor\n    * Presets\n2. [](#improved)\n    * Blueprints\n    * Asset- and media-handling\n    * Script in Admin\n3. [](#bugfix)\n    * Blueprints & CLI (@klonfish)\n"},"1.0.1":{"date":"15-02-2020","content":"1. [](#bugfix)\n    * Target-selection (@klonfish, #1 and #2)\n"},"1.0.0":{"date":"30-11-2019","content":"1. [](#new)\n    * Initial public release"}}},"opening-hours":{"name":"Opening Hours","version":"0.1.0","description":"Insert business Hours to your Site","description_html":"<p>Insert business Hours to your Site<\/p>","description_plain":"Insert business Hours to your Site","icon":"plug","author":{"name":"Bjoern Bohr","email":"bjoern.bohr@gmail.com"},"homepage":"https:\/\/github.com\/bjoernbohr\/opening-hours","docs":"https:\/\/github.com\/bjoernbohr\/opening-hours\/blob\/master\/README.md","keywords":"grav, gravcms, grav plugin, plugin, shopping hours, hours, business hours, opening hours, etc","bugs":"https:\/\/github.com\/bjoernbohr\/opening-hours\/issues","license":"MIT","tag_name":"0.1.1","date":"2019-11-29T09:35:29Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/opening-hours\/0.1.0","repository":"https:\/\/github.com\/bjoernbohr\/opening-hours","slug":"opening-hours","install_path":"user\/plugins\/opening-hours","content_sha256":"d2068d76d466ce58540fb82d20a179db6e665f0859df97f795acf7ab56654452","changelog":{"0.1.0":{"date":" 10\/28\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"photoimages":{"name":"Photo Images","version":"0.1.0","description":"Applies photograph &#34;printed&#34; effect to images (frame, shadow and rotation) via [ultrix3x\/JQueryPhotoImages](https:\/\/github.com\/ultrix3x\/JQueryPhotoImages)","description_html":"<p>Applies photograph &#34;printed&#34; effect to images (frame, shadow and rotation) via <a href=\"https:\/\/github.com\/ultrix3x\/JQueryPhotoImages\">ultrix3x\/JQueryPhotoImages<\/a><\/p>","description_plain":"Applies photograph &#34;printed&#34; effect to images (frame, shadow and rotation) via ultrix3x\/JQueryPhotoImages","icon":"camera","author":{"name":"Jonathan Leaders","email":"jonathanleaders@gmail.com"},"homepage":"https:\/\/github.com\/jleaders\/grav-plugin-photoimages","docs":"https:\/\/github.com\/jleaders\/grav-plugin-photoimages\/blob\/master\/README.md","demo":"https:\/\/github.com\/jleaders\/grav-plugin-photoimages\/","keywords":"grav, plugin, jquery, photoimages, border, frame, rotate, vintage, frames, photograph, print","bugs":"https:\/\/github.com\/jleaders\/grav-plugin-photoimages\/issues","license":"MIT","tag_name":"v1.0","date":"2019-10-29T18:23:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/photoimages\/0.1.0","repository":"https:\/\/github.com\/jleaders\/grav-plugin-photoimages","slug":"photoimages","install_path":"user\/plugins\/photoimages","content_sha256":"8847aafe9a39f9fbfa4e2dfb40f2c1428dd7e378a2f126e5b8bf0a90fbfa7e94","changelog":{"0.1.0":{"date":" 10\/29\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"rich-preview":{"name":"Rich Preview","version":"0.1.2","description":"Sets thumbnail and description so wyou can control how a linke to your website looks like when shared, for example in whatsapp","description_html":"<p>Sets thumbnail and description so wyou can control how a linke to your website looks like when shared, for example in whatsapp<\/p>","description_plain":"Sets thumbnail and description so wyou can control how a linke to your website looks like when shared, for example in whatsapp","icon":"plug","author":{"name":"Nuno Costa","email":"info@codehaha.com"},"homepage":"https:\/\/github.com\/francodacosta\/grav-plugin-rich-preview","docs":"https:\/\/github.com\/francodacosta\/grav-plugin-rich-preview\/blob\/develop\/README.md","demo":"http:\/\/www.francodacosta.com","keywords":"grav, plugin, grav-admin, seo, rich preview","bugs":"https:\/\/github.com\/francodacosta\/grav-plugin-rich-preview\/issues","license":"MIT","tag_name":"0.1.2","date":"2019-11-12T10:11:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/rich-preview\/0.1.2","repository":"https:\/\/github.com\/francodacosta\/grav-plugin-rich-preview","slug":"rich-preview","install_path":"user\/plugins\/rich-preview","content_sha256":"1607b51fe77a71c4c99fb2d9dece31a471c25b90c070876eb529035987e65277","changelog":{"0.1.2":{"date":" 11\/12\/2019","content":"1. [](#new)\n    * fix crash when page has no media\n\n    "},"0.1.1":{"date":" 10\/17\/2019","content":"1. [](#new)\n    * more descriptive blueprints.yaml file, no actual code changes\n"},"0.1.0":{"date":" 10\/16\/2019","content":"1. [](#new)\n    * initial functionality"}},"dependencies":[]},"detect-adblock":{"name":"Detect AdBlock","version":"2.1.0","description":"This plugin help you to detect and manage adblock in order to display message, send blocking user status to Google analytics...","description_html":"<p>This plugin help you to detect and manage adblock in order to display message, send blocking user status to Google analytics...<\/p>","description_plain":"This plugin help you to detect and manage adblock in order to display message, send blocking user status to Google analytics...","icon":"ban","author":{"name":"clemdesign","url":"https:\/\/www.clemdesign.fr","email":"contact@clemdesign.fr"},"homepage":"https:\/\/github.com\/clemdesign\/grav-plugin-detect-adblock","docs":"https:\/\/github.com\/clemdesign\/grav-plugin-detect-adblock\/blob\/master\/README.md","bugs":"https:\/\/github.com\/clemdesign\/grav-plugin-detect-adblock\/issues","license":"MIT","tag_name":"2.1.0","date":"2026-03-19T16:39:17Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/detect-adblock\/2.1.0","repository":"https:\/\/github.com\/clemdesign\/grav-plugin-detect-adblock","slug":"detect-adblock","install_path":"user\/plugins\/detect-adblock","content_sha256":"ce46a12d723d6c82c4e3e1418727f89f9573a9354bca52a7fcd7917bf7e86a5e","changelog":{"2.1.0":{"date":" 03\/19\/2026","content":"1. [](#bugfix)\n   * General Operations: \n     - fix global operation\n     - fix Admin panel operation error about \"Grav\\Framework\\Flex\\Pages\\Traits\\PageLegacyTrait::file(): Not Implemented\"\n"},"2.0.4":{"date":" 03\/27\/2022","content":"1. [](#bugfix)\n   * Fix #2: apply breaking changes from ref site: rename ads.js to peel.js, rename ads tag\n"},"2.0.3":{"date":" 02\/01\/2022","content":"1. [](#bugfix)\n   * Fix #1: \"Display message for pages\" empty has no effect\n\n"},"2.0.2":{"date":" 11\/17\/2019","content":"1. [](#bugfix)\n    * Fix robustness issue.\n"},"2.0.1":{"date":" 11\/08\/2019","content":"1. [](#bugfix)\n    * Fix issue for multi-language inside message.\n"},"2.0.0":{"date":" 11\/04\/2019","content":"1. [](#improve)\n    * Manage block reading operation: Force user to disable ad blocker to read full article.\n    * Manage data caching for translations of messages\n\n"},"1.1.0":{"date":" 10\/23\/2019","content":"1. [](#improve)\n    * Set-up message content directly in plugin configuration with markdown facilities.\n"},"1.0.1":{"date":" 10\/16\/2019","content":"1. [](#bugfix)\n    * Fix issue for Google Analytics connection.\n"},"1.0.0":{"date":" 10\/13\/2019","content":"1. [](#new)\n    * Initial version..."}},"dependencies":[]},"simple-events":{"name":"Simple Events","version":"1.4.1","description":"Add a simple list of events to your site.","description_html":"<p>Add a simple list of events to your site.<\/p>","description_plain":"Add a simple list of events to your site.","icon":"calendar","author":{"name":"Netzhexe.de","email":"ak@netzhexe.de"},"homepage":"https:\/\/github.com\/skinofthesoul\/grav-plugin-simple-events","docs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-simple-events\/blob\/master\/README.md","keywords":"grav, plugin, events","bugs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-simple-events\/issues","license":"MIT","tag_name":"v1.4.1","date":"2021-05-06T14:24:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/simple-events\/1.4.1","repository":"https:\/\/github.com\/skinofthesoul\/grav-plugin-simple-events","slug":"simple-events","install_path":"user\/plugins\/simple-events","content_sha256":"396e6ca02ba55b846b77380ab22c6d1f8b3d1d55d5e5e6ae822b6947920e46eb","changelog":{"1.4.1":{"date":" 05\/06\/2021","content":"1. [](#improved)\n    * removed redundant content tab\n"},"1.4":{"date":" 05\/03\/2021","content":"1. [](#new)\n    * added option to show past events\n2. [](#bugfix)\n    * added raw filter to template output\n    * fixed language string in Admin settings\n"},"1.3.2":{"date":" 03\/13\/2020","content":"1. [](#bugfix)\n    * fixed blueprint default to correct sorting by date\n    * fixed typo in `eventslist.html.twig`\n"},"1.3.1":{"date":" 02\/26\/2020","content":"1. [](#bugfix)\n    * automatically restructure every event's frontmatter to fit the new format\n"},"1.3":{"date":" 02\/24\/2020","content":"1. [](#new)\n    * added option to delete past events automatically\n2. [](#improved)\n    * Admin will now create a page collection for you upon saving an `Events` page\n    * extra `Events` tab with sorting settings for the collection    \n    * updated README file\n"},"1.2.1":{"date":" 01\/27\/2020","content":"1. [](#bugfix)\n    * fixed the code to make it fully usable again, and established a developing branch for learning by trial and error \u2013 my apologies to everyone who had problems with the plugin in the last weeks!\n"},"1.2":{"date":" 12\/24\/2019","content":"1. [](#improved)\n    * both links and regions are now fully optional, meaning that if you disable them in the plugin settings, you won't see those fields in the admin interface\n    * updated README file\n2. [](#new)\n    * added an optional location field for more styling options in your templates\n    * added an option to automatically delete past events\n3.[](#bugfix)\n    * fixed a buggy if clause in `events.html.twig`\n"},"1.1.3":{"date":" 11\/04\/2019","content":"1. [](#bugfix)\n    * corrections in changelog for last version number\n"},"1.1.2":{"date":" 11\/04\/2019","content":"1. [](#improved)\n    * changed templates to list future events only\n2. [](#bugfix)\n    * don't link events if no url is passed to the function\n\n"},"1.1.1":{"date":" 10\/11\/2019","content":"1. [](#improved)\n    * changed Admin icon\n"},"1.1.0":{"date":" 10\/11\/2019","content":"1. [](#new)\n    * support for regions in the templates\n    * new block template `partials\/eventslist.html.twig` for easy inclusion a smaller list anywhere\n2. [](#improved)\n    * took types out again, better done with taxonomy\n    * renamed categories to regions to avoid misunderstandings with taxonomy\n    * massively extended README.md\n"},"1.0.1":{"date":" 10\/08\/2019","content":"1. [](#new)\n    * first public release\n    * optional categories for events\n    * optional types for events\n\n2. [](#bugfix)\n    * tiny code fix for links\n    * changed version number in `blueprints.yaml`\n\n"},"1.0.0":{"date":" 10\/06\/2019","content":"1. [](#new)\n    * first usable version\n    * `event` as a new post type\n    * template for a parent page that lists all `event` children\n    * multilang options included\n    * optional end dates\n    * optional linking of event text"}},"dependencies":[]},"simple-cookie":{"name":"Simple Cookie","version":"0.1.8","description":"Simple cookie plugin is based on the popular CookieConsent JS-library. For Advanced Opt-In\/Opt-Out configurations you can use the &#39;Custom configuration&#39; option.","description_html":"<p>Simple cookie plugin is based on the popular CookieConsent JS-library. For Advanced Opt-In\/Opt-Out configurations you can use the &#39;Custom configuration&#39; option.<\/p>","description_plain":"Simple cookie plugin is based on the popular CookieConsent JS-library. For Advanced Opt-In\/Opt-Out configurations you can use the &#39;Custom configuration&#39; option.","icon":"shield","author":{"name":"Tom Schwarz","email":"thomasschwarz96@web.de"},"homepage":"https:\/\/github.com\/tomschwarz\/grav-plugin-simple-cookie","docs":"https:\/\/github.com\/tomschwarz\/grav-plugin-simple-cookie\/blob\/develop\/README.md","keywords":"grav, plugin, cookie, cookieconsent, simple, opt-in, opt-out","bugs":"https:\/\/github.com\/tomschwarz\/grav-plugin-simple-cookie\/issues","license":"MIT","tag_name":"0.1.8","date":"2020-08-30T13:54:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/simple-cookie\/0.1.8","repository":"https:\/\/github.com\/qw3rtty\/grav-plugin-simple-cookie","slug":"simple-cookie","install_path":"user\/plugins\/simple-cookie","content_sha256":"9c1e57f0a242e8caa7f4d549c49fab9e42cdefcd94d2cab59df9aedbdface620","changelog":{"0.1.8":{"date":" 30\/08\/2020","content":"1. [](#bugfix)\n    * Downgrade to 0.1.6\n"},"0.1.7":{"date":" 03\/08\/2020","content":"1. [](#bugfix)\n    * Fix issue #8\n"},"0.1.6":{"date":" 18\/07\/2020","content":"1. [](#bugfix)\n    * Fix issue #9\n\n"},"0.1.5":{"date":" 02\/03\/2020","content":"1. [](#bugfix)\n    * Fix issue #5\n"},"0.1.4":{"date":" 21\/01\/2020","content":"1. [](#bugfix)\n    * Fix issue #2\n"},"0.1.3":{"date":" 12\/01\/2020","content":"1. [](#enhancement)\n    * Merge cusotm configuration with default configuration\n"},"0.1.2":{"date":" 28\/11\/2019","content":"1. [](#bugfix)\n    * Fix issue #1\n"},"0.1.1":{"date":" 29\/10\/2019","content":"1. [](#new)\n    * Fix blueprint.yaml multiline\n"},"0.1.0":{"date":" 10\/07\/2019","content":"1. [](#new)\n    * Initial commit"}},"dependencies":[]},"cbrcurrency":{"name":"CBRcurrency","version":"1.0.0","description":"Plugin for Grac CMS for currency conversion, CBR (Russian)","description_html":"<p>Plugin for Grac CMS for currency conversion, CBR (Russian)<\/p>","description_plain":"Plugin for Grac CMS for currency conversion, CBR (Russian)","icon":"euro","author":{"name":"Reqweb","url":"http:\/\/reqweb.net","email":"reqweb-dev@yandex.ru"},"homepage":"https:\/\/github.com\/reqweb\/CBRcurrency","keywords":"plugin, currency","license":"MIT","tag_name":"1.0.0","date":"2019-10-03T21:17:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cbrcurrency\/1.0.0","repository":"https:\/\/github.com\/reqweb\/CBRcurrency","slug":"cbrcurrency","install_path":"user\/plugins\/cbrcurrency","content_sha256":"d90a8ebb4f8e58c5961f146501a0ed3e636de4377bdeb26e726e07a8e186883d","changelog":{"1.0.0":{"date":"15\/09\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"translator":{"name":"Translator","version":"1.1.0","description":"A grav CMS plugin for easily allowing translators to translate your website without needing admin access.","description_html":"<p>A grav CMS plugin for easily allowing translators to translate your website without needing admin access.<\/p>","description_plain":"A grav CMS plugin for easily allowing translators to translate your website without needing admin access.","icon":"globe","author":{"name":"ricardo","email":"ricardo@urbansquid.london"},"homepage":"https:\/\/github.com\/ricardo118\/grav-plugin-translator","docs":"https:\/\/github.com\/ricardo118\/grav-plugin-translator\/blob\/develop\/README.md","demo":"http:\/\/translator.urbansquid.london","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/ricardo118\/grav-plugin-translator\/issues","license":"MIT","tag_name":"v1.1.1","date":"2020-03-23T18:53:11Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/translator\/1.1.0","repository":"https:\/\/github.com\/ricardo118\/grav-plugin-translator","slug":"translator","install_path":"user\/plugins\/translator","content_sha256":"3ba49edf7a2c9985d87993cc52267ad3c47b77cddc44b06dc748c5d1ea8094f4","changelog":{"1.1.1":{"date":" 23\/01\/2020","content":"1. [](#improved)\n    * added lang remap config support for google translate\n    * added onBeforeGoogleTranslate Event so plugins can override the method for their own custom handling\n"},"1.1.0":{"date":" 23\/01\/2020","content":"1. [](#new)\n    * ADDED GOOGLE TRANSLATE AUTO TRANSLATE SUPPORT!\n    * added a screenshot\n    * added a preview original language link\n    * added support for ckeditor5 plugin\n    * added simple keep alive function\n    * added `{{ isPreview }}` twig variable to help theme makers\n    * new function `superMerge` allows for merging as many pages as needed in order via an array `$wip_page->header($this->mergeHeaders($wip_page, [$english_page, $live_page]));`\n\n2. [](#improved)\n    * oninput js functions to only trigger on the translated side\n    * improved PHPdocs\n    * improved type: list clarity using a new custom form field\n\n3. [](#bugfix)\n    * Dirty form js fix\n    * Fix the merging of header variables to the correct priority order\n    * Minor `type: list` fixes\n    * Fix js change language button\n    * Fix saving bug for saving lists only partially\n    * fix for multiple saves of the same page overriding the previous save\n"},"1.0.1":{"date":" 02\/09\/2019","content":"1. [](#bugfix)\n    * README fix\n"},"1.0.0":{"date":" 26\/08\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"flex-objects":{"name":"Flex Objects","version":"1.4.7","description":"Flex Objects plugin allows you to manage Flex Objects in Grav Admin.","description_html":"<p>Flex Objects plugin allows you to manage Flex Objects in Grav Admin.<\/p>","description_plain":"Flex Objects plugin allows you to manage Flex Objects in Grav Admin.","icon":"list-alt","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=2.0.0"},{"name":"form","version":">=6.0.0"},{"name":"api","version":">=1.0.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/blob\/develop\/README.md","keywords":"grav, plugin, crud, directory","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues","license":"MIT","tag_name":"1.4.7","date":"2026-07-25T20:24:35Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/flex-objects\/1.4.7","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects","slug":"flex-objects","install_path":"user\/plugins\/flex-objects","content_sha256":"27e0b4e572c0ff346b77a6722a95ad68e45188a0f9061cf22283752621c87d89","changelog":{"1.4.7":{"date":"07\/25\/2026","content":"1. [](#bugfix)\n    * [security] A user with delegated user-management permission can no longer reset another account's password or grant it super-admin access by editing the account through the generic Flex Objects write endpoint, which skipped the checks the dedicated user and group endpoints apply; user and group records must now be changed through those dedicated endpoints ([GHSA-pc8m-jxvh-vmrc](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-pc8m-jxvh-vmrc)).\n"},"1.4.6":{"date":"07\/09\/2026","content":"1. [](#bugfix)\n    * Flex directory sidebar labels now display in the signed-in user's admin language instead of the site's content language, so the new admin's sidebar no longer mixes languages ([#232](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/232)).\n    * Removing an image from a Flex object's file field now deletes the file from disk when you save, instead of leaving it orphaned in the object's folder.\n"},"1.4.5":{"date":"07\/07\/2026","content":"1. [](#bugfix)\n    * [security] Scoped API keys are now capped on every Flex object, media, and export endpoint, so a narrowly-scoped key can no longer reach Flex directories outside its scope (GHSA-x7hm).\n    * [security] Restored the page-level access check for embedded Flex edit forms, so an unauthorized visitor can no longer open a pre-filled edit form through a page's own route.\n"},"1.4.4":{"date":"07\/03\/2026","content":"1. [](#bugfix)\n    * A non-super-admin user who is granted a Flex directory's own admin permission can now see and edit that directory's objects through the Admin Next API and sidebar without needing any other admin access. The check used `FlexDirectory::isAuthorized()`, which applies a `test` scope prefix when a user is passed explicitly and so always denied non-super-admins in API context; the API controller and the sidebar registration now resolve the directory's `admin.permissions` prefixes through the API PermissionResolver (with parent-key inheritance) ([#229](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/229), [#230](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/230)).\n1. [](#improved)\n    * The Flex API and admin-next sidebar permission checks are unified in a shared `DirectoryPermission::isAuthorized()` helper so they can't drift apart, and the sidebar sweep now builds a single `PermissionResolver` instead of one per directory.\n"},"1.4.3":{"date":"06\/29\/2026","content":"1. [](#new)\n    * The Flex API now exposes the metadata and filtering Admin Next needs to show nested detail rows under a list item, such as a user's related records ([#227](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/227)).\n1. [](#bugfix)\n    * [security] Flex directories whose blueprint defines no permissions block are no longer open to every user with API access; they now default to denied, matching the authorization the directory listing already enforces (GHSA-23vq-365v-qcmh).\n    * The Flex blueprint metadata endpoints now return directory titles and descriptions in the signed-in user's admin language instead of raw translation keys ([#228](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/228)).\n"},"1.4.2":{"date":"06\/23\/2026","content":"1. [](#improved)\n    * Removed the legacy classic-admin interface and its Vue build, so Flex Objects now runs entirely on the Admin Next interface.\n"},"1.4.1":{"date":"06\/21\/2026","content":"1. [](#bugfix)\n    * Release with version fix\n"},"1.4.0":{"date":"06\/20\/2026","content":"1. [](#new)\n    * Version 1.4 stable release for Grav 2.x\n1. [](#bugfix)\n    * The flex directories API now reports the real field type for list-only columns and includes select option labels, so the admin can show formatted dates and choice labels instead of raw timestamps and keys ([#220](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/220)).\n    * The flex object list API now falls back to a directory's configured default page size and sort order when the request doesn't ask for its own ([#221](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/221)).\n"},"1.4.0-rc.8":{"date":"06\/19\/2026","content":"1. [](#bugfix)\n    * A dynamic collection or object title set in page frontmatter is now evaluated through Grav's sandboxed Twig instead of as a full template, so an editor can no longer use a title to run arbitrary code on the server.\n    * The flex directories list API now localizes admin config labels, such as directory titles and list column headers, to the signed-in user's admin language instead of returning raw translation keys ([#219](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/219)).\n"},"1.4.0-rc.7":{"date":"06\/15\/2026","content":"1. [](#new)\n    * Added an experimental, opt-in media proxy that serves a flex object's media through Grav, so object media can stay in a locked-down `user\/data` instead of being linked directly; when enabled, existing `medium.url` links route through it automatically while resized images still serve from the cache ([getgrav\/grav#4129](https:\/\/github.com\/getgrav\/grav\/issues\/4129)).\n    * A flex object's API response now includes its id, directory, and storage location, which admin-next shows in a copyable info panel on the editor ([getgrav\/grav#4130](https:\/\/github.com\/getgrav\/grav\/issues\/4130)).\n    * Added a `[flex-objects]` shortcode (alias `[flex]`) to render a collection inline in page content, a safe alternative to putting Twig in content now that the Grav 2.0 sandbox blocks it ([#217](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/217)).\n    * Object media uploads now honor a file field's `random_name`, `accept`, and other blueprint upload settings, matching the classic admin.\n"},"1.4.0-rc.6":{"date":"06\/10\/2026","content":"1. [](#bugfix)\n    * A custom collection registered under more than one type no longer appears twice in the admin-next sidebar ([#4122](https:\/\/github.com\/getgrav\/grav\/issues\/4122)).\n"},"1.4.0-rc.5":{"date":"06\/09\/2026","content":"1. [](#new)\n    * Added API endpoints to list, upload, and delete a flex object's media files, stored alongside the object in its own folder ([#215](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/215)).\n"},"1.4.0-rc.4":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n    * Custom flex directories no longer disappear from the admin-next sidebar for super-admins whose account only carries `access.api.super` (the admin-next gate) rather than the legacy `access.admin.super` ([#209](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/209)).\n2. [](#improved)\n    * Cleared the 3 high-severity `npm audit` advisories (axios SSRF \/ prototype-pollution chain, `follow-redirects` header leak) by replacing the yarn-only `resolutions` block with an npm-native `overrides` that pins vuetable-2's nested `axios` to the top-level v1.x. Note: the previous `resolutions` field was silently ignored under npm, so vuetable-2 had been shipping its bundled axios 0.x all along.\n    * Bumped `axios` to `^1.15.2` and refreshed `@babel\/core`, `@babel\/eslint-parser`, and `@babel\/preset-env` to their current 7.28-7.29 releases, dropping a long list of deprecated `@babel\/plugin-proposal-*` transitives.\n    * Renamed the deprecated `@babel\/plugin-proposal-object-rest-spread` to `@babel\/plugin-transform-object-rest-spread` (also updated in `webpack.conf.js`).\n    * Removed the unused `gulp-sourcemaps` devDependency, which existed only to pull in an ancient `postcss`.\n    * Switched the project's package manager to npm: deleted the stale `yarn.lock` and committed `package-lock.json`. Supersedes dependabot PRs [#205](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/205), [#206](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/206), [#208](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/208), [#210](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/210), [#211](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/211), [#212](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/pull\/212).\n"},"1.4.0-rc.3":{"date":"05\/05\/2026","content":"1. [](#bugfix)\n    * Custom flex directories whose blueprint doesn't declare an `admin.menu` block now appear as their own entries in the admin-next sidebar, falling back to the directory's title and icon. Previously they were collapsed into a single placeholder by `getAdminMenuItems()` and silently skipped, so a working `admin\/<type>` directory in admin-classic had no row at all in admin-next ([#209](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-objects\/issues\/209)).\n"},"1.4.0-rc.2":{"date":"05\/05\/2026","content":"1. [](#bugfix)\n    * Auto-registered admin-next sidebar entries from flex types now translate their labels and normalize legacy FontAwesome 4 icon names (e.g. `fa-clock-o`), so plugin-supplied flex menus no longer render raw `PLUGIN_*.KEY` strings or land with an empty icon slot.\n2. [](#new)\n    * Added a `hidden_in_admin_next` flag on flex `admin.menu.base` entries so plugins that already register their own admin-next sidebar item can suppress the duplicate auto-registered row.\n"},"1.4.0-rc.1":{"date":"05\/04\/2026","content":"1. [](#new)\n    * Tag as RC.1\n"},"1.4.0-beta.6":{"date":"05\/04\/2026","content":"1. [](#new)\n    * Support blueprints resolved for API clients\n    * Adding a new sibling page under a parent whose existing children use a wider order prefix (e.g. `005.foo`) now matches that width instead of falling back to two digits ([grav-plugin-admin#2492](https:\/\/github.com\/getgrav\/grav-plugin-admin\/issues\/2492))\n"},"1.4.0-beta.5":{"date":"04\/29\/2026","content":"1. [](#bugfix)\n    * **Fix: plugin settings page now renders the Directories field properly in Admin 2.0.** It was previously falling back to a raw JSON editor because the `flex-objects` field type didn't have an admin-next implementation. A new web component shows one Enabled\/Disabled toggle per available flex directory blueprint, matching the admin-classic UI.\n"},"1.4.0-beta.4":{"date":"04\/17\/2026","content":"1. [](improved)\n    * Fixed compatiblity\n"},"1.4.0-beta.3":{"date":"04\/16\/2026","content":"1. [](#new)\n    * Admin-next API integration: registers `onApiRegisterRoutes` and `onApiSidebarItems` so flex directories show up in the Admin 2.0 SPA. `FlexApiController` exposes paginated\/sortable\/filterable list, show, create, update, delete, and export endpoints; `FlexBlueprintController` serves directory blueprints for form rendering\n    * `save-redirect` custom field web component for configurable post-save navigation\n    * `\/flex-objects\/config` endpoint + server-side gating on admin-next event handlers so Admin 2.0 honors the plugin's `enabled_admin` \/ directory `enabled` toggles without the client having to guess\n    * `api.*` permission family alongside the existing `admin.*` set \u2014 `api.flex-objects` (crudl) registered globally, `api.contacts` (crudpl) on the contacts blueprint, with `requireFlexPermission()` accepting either prefix so operators can grant API authority without Admin-Classic implications. Sidebar items include the directory's `api.*` authorize field\n2. [](#improved)\n    * Page creation now auto-deduplicates folder names (appending a numeric suffix) instead of throwing an error, matching existing copy behavior\n    * Resolved all open Dependabot security advisories by bumping axios, lodash, webpack, terser-webpack-plugin, js-yaml, picomatch, minimatch, flatted, braces and related transitive deps; removed the dead `whatwg-fetch` ProvidePlugin from `webpack.conf.js`\n    * Contacts blueprint icon updated to Font Awesome 6 format\n"}}},"aura":{"name":"Aura","version":"2.1.2","description":"Automatically add meta tags and structured data to your pages for visually appealing and informative search results and social media sharing.","description_html":"<p>Automatically add meta tags and structured data to your pages for visually appealing and informative search results and social media sharing.<\/p>","description_plain":"Automatically add meta tags and structured data to your pages for visually appealing and informative search results and social media sharing.","icon":"code","author":{"name":"Matt Mulhall","url":"https:\/\/www.theskylab.net","email":"matt@theskylab.net"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"homepage":"https:\/\/github.com\/matt-j-m\/grav-plugin-aura","keywords":"seo, structured data, open graph","bugs":"https:\/\/github.com\/matt-j-m\/grav-plugin-aura\/issues","license":"MIT","tag_name":"v2.1.2","date":"2021-05-14T04:34:48Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/aura\/2.1.2","repository":"https:\/\/github.com\/matt-j-m\/grav-plugin-aura","slug":"aura","install_path":"user\/plugins\/aura","content_sha256":"6b1393873700c39c5f9216e9626fc176e420357183d2c7bb4c556c0f90233a8e","changelog":{"2.1.2":{"date":"02-02-2021","content":"1. [](#bugfix)\n* Fix page image URL Issue #16\n* Fix double encoded HTML entities Issue #12\n"},"2.1.1":{"date":"02-02-2021","content":"1. [](#bugfix)\n* Fixed issue with initial save on new pages\n"},"2.1.0":{"date":"15-12-2020","content":"1. [](#new)\n    * Added support for flex pages in Grav 1.7\n"},"2.0.2":{"date":"03-11-2020","content":"1. [](#bugfix)\n    * Fixed bug where custom metadata could not be removed\n"},"2.0.1":{"date":"07-07-2020","content":"1. [](#bugfix)\n    * Added check to include metadata saved prior to v2.0.0\n\n1. [](#bugfix)\n    * Updated date published\/modified functionality to ensure output of valid timestamp\n"},"2.0.0":{"date":"23-06-2020","content":"1. [](#improved)\n    * Changed the way metadata is stored in frontmatter to capitalise on Grav page caching. **Important:** When upgrading from a previous version existing Aura metadata output will be disabled. You will not be required to re-enter any information, but you will need to actively re-save each page via the page editor to re-enable metadata output.\n\n1. [](#new)\n    * Metadata input moved from Options tab to Aura tab in page editor for central editing location and to enable overriding of individual meta tags\n\n1. [](#new)\n    * Added support for individual author per page via Aura Authors plugin\n\n1. [](#bugfix)\n    * Changed storage location of Organization logo so it will be retained after plugin updates\n\n1. [](#bugfix)\n    * Fixed issue with URL extension appearing within page image URL\n"},"1.0.3":{"date":"29-02-2020","content":"1. [](#bugfix)\n    * Adjusted scope of autoloader so it will not interfere with other 'Aura' prefixed plugins\n"},"1.0.2":{"date":"09-02-2020","content":"1. [](#bugfix)\n    * Now appends to existing metadata rather than replacing\n"},"1.0.1":{"date":"06-09-2019","content":"1. [](#improved)\n    * Get language defined in page frontmatter with fallbacks to active language then default language\n1. [](#bugfix)\n    * Adjusted JSON output to suit Grav versions > 1.5\n"},"1.0.0":{"date":" 21-08-2019","content":"1. [](#new)\n    * ChangeLog started..."}}},"tinypng":{"name":"TinyPNG","version":"1.0.0","description":"Compress all image with TinyPNG","description_html":"<p>Compress all image with TinyPNG<\/p>","description_plain":"Compress all image with TinyPNG","icon":"compress","author":{"name":"Dallas Lu","email":"i@luda.me"},"homepage":"https:\/\/github.com\/ladotech\/grav-plugin-tinypng","keywords":"grav, tinypng, plugin, compress, tinify","bugs":"https:\/\/github.com\/ladotech\/grav-plugin-tinypng\/issues","license":"MIT","tag_name":"1.0.0","date":"2019-08-21T09:09:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tinypng\/1.0.0","repository":"https:\/\/github.com\/dallaslu\/grav-plugin-tinypng","slug":"tinypng","install_path":"user\/plugins\/tinypng","content_sha256":"97872fd2255d0c48b7db96c08f74644fb85506c9521bebdaafc9d9154aa3ab76","changelog":false,"dependencies":[]},"consistent-backup-name":{"name":"ConsistentBackupName","version":"1.0.0","description":"ConsistentBackupName let the last backup be accessible via LATEST.zip.","description_html":"<p>ConsistentBackupName let the last backup be accessible via LATEST.zip.<\/p>","description_plain":"ConsistentBackupName let the last backup be accessible via LATEST.zip.","icon":"dashboard","author":{"name":"Cyril RUSSO","url":"http:\/\/getgrav.org","email":"fwd.rebootisme@pho.by"},"homepage":"https:\/\/github.com\/X-Ryl669\/grav-plugin-consistent-backup-name","keywords":"static, backup, plugin, name","bugs":"https:\/\/github.com\/X-Ryl669\/grav-plugin-consistent-backup-name\/issues","license":"MIT","tag_name":"1.0.0","date":"2019-08-18T20:56:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/consistent-backup-name\/1.0.0","repository":"https:\/\/github.com\/X-Ryl669\/grav-plugin-consistent-backup-name","slug":"consistent-backup-name","install_path":"user\/plugins\/consistent-backup-name","content_sha256":"451851c0121d661a4cc3fbd5afed2bd11507883a4ebc21fb2222ccf1a241965f","changelog":{"1.0.0":{"date":"18\/08\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"markdown-collapsible":{"name":"Markdown Collapsible","version":"1.0.2","description":"Adds the ability to render collapsible sections in Markdown","description_html":"<p>Adds the ability to render collapsible sections in Markdown<\/p>","description_plain":"Adds the ability to render collapsible sections in Markdown","icon":"asterisk","author":{"name":"Cyril Russo","url":"https:\/\/rebootisme.com","email":"fwd.rebootisme@pho.by"},"homepage":"https:\/\/github.com\/X-Ryl669\/grav-plugin-markdown-collapsible","license":"MIT","tag_name":"v1.0.2","date":"2023-09-28T09:29:07Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-collapsible\/1.0.2","repository":"https:\/\/github.com\/X-Ryl669\/grav-plugin-markdown-collapsible","slug":"markdown-collapsible","install_path":"user\/plugins\/markdown-collapsible","content_sha256":"5376633dab491d8e878570d3f473cb656b5d468879e2402947cce5f8e4fa8fb7","changelog":{"1.0.2":{"date":"27\/09\/2023","content":"1. [](#bugfix)\n    * Should fix #4 (unnamed collapsible).\n\n"},"1.0.1":{"date":"03\/09\/2018","content":"1. [](#improved)\n    * Updated blueprint file\n"},"1.0.0":{"date":"12\/22\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"glossary":{"name":"Glossary","version":"0.1.1","description":"Maintain a glossary of words and automatically add abbreviations to all pages via Markdown Extra.","description_html":"<p>Maintain a glossary of words and automatically add abbreviations to all pages via Markdown Extra.<\/p>","description_plain":"Maintain a glossary of words and automatically add abbreviations to all pages via Markdown Extra.","icon":"list","author":{"name":"Nathan Parsons","url":"https:\/\/github.com\/n-parsons","email":"github@tantalum.blue"},"homepage":"https:\/\/github.com\/n-parsons\/grav-plugin-glossary","keywords":"grav, plugin, glossary, abbreviation, definitions","bugs":"https:\/\/github.com\/n-parsons\/grav-plugin-glossary\/issues","license":"MIT","tag_name":"v0.1.1","date":"2019-08-08T15:04:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/glossary\/0.1.1","repository":"https:\/\/github.com\/N-Parsons\/grav-plugin-glossary","slug":"glossary","install_path":"user\/plugins\/glossary","content_sha256":"b9e7d22011e1d1c5518273705bb8b0007d80c56c0aa0aab1e333e076da99e174","changelog":{"0.1.1":{"date":" 2019-08-08","content":"1. [](#improved)\n    * Reordered and sectioned configuration options.\n\n"},"0.1.0":{"date":" 2019-08-08","content":"1. [](#new)\n    * Glossary plugin created.\n    * Site-wide abbreviations enabled.\n    * Glossary search implemented."}},"dependencies":[]},"embed-fontawesome":{"name":"Embed Font Awesome","version":"0.1.9","description":"Embed Font Awesome icons into your HTML output as inline SVGs.","description_html":"<p>Embed Font Awesome icons into your HTML output as inline SVGs.<\/p>","description_plain":"Embed Font Awesome icons into your HTML output as inline SVGs.","icon":"flag","author":{"name":"Nathan Parsons","url":"https:\/\/github.com\/n-parsons","email":"github@tantalum.blue"},"homepage":"https:\/\/github.com\/n-parsons\/grav-plugin-embed-fontawesome","keywords":"icons, font awesome, svg, inline, embed, custom icons","bugs":"https:\/\/github.com\/n-parsons\/grav-plugin-embed-fontawesome\/issues","license":"MIT","tag_name":"v0.1.9","date":"2020-06-22T21:45:52Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/embed-fontawesome\/0.1.9","repository":"https:\/\/github.com\/N-Parsons\/grav-plugin-embed-fontawesome","slug":"embed-fontawesome","install_path":"user\/plugins\/embed-fontawesome","content_sha256":"ae39eceb2ced8ce6b41b22d9629cece57eea4d43001159e07b6b6b964b5a553e","changelog":{"0.1.8":{"date":"2020-06-20","content":"1. [](#bugfix)\n    * Added support for inline style attributes.\n"},"0.1.7":{"date":"2020-05-31","content":"1. [](#bugfix)\n    * Fix regex compatibility issue with PHP < 7.3.\n"},"0.1.6":{"date":"2020-05-23","content":"1. [](#bugfix)\n    * Fix issue with 'icon' or 'fa' in the middle of a class name.\n"},"0.1.5":{"date":"2020-04-28","content":"1. [](#bugfix)\n    * Fix placeholder icon sizing for referenced instances.\n"},"0.1.4":{"date":"2020-04-05","content":"1. [](#improved)\n    * Added compatibility with Tailwind CSS class naming.\n"},"0.1.3":{"date":"2019-08-14","content":"1. [](#bugfix)\n    * Fixed issues with icon width for custom icons.\n    * Fixed conflict with Advanced Page Cache - caching no longer breaks icons.\n"},"0.1.2":{"date":"2019-08-12","content":"1. [](#bugfix)\n    * Fixed issues with icon with in Chrome\/Chromium.\n"},"0.1.1":{"date":"2019-08-09","content":"1. [](#bugfix)\n    * Fixed exception that occurred when there were no icons to replace.\n"},"0.1.0":{"date":"2019-08-08","content":"1. [](#new)\n    * Implemented embedding of Font Awesome icons and custom icons.\n    * Added methods for including custom icons in pages."}},"dependencies":[]},"google-analytics":{"name":"Google Analytics (gtag.js)","version":"1.1.0","description":"Easily integrate and configure Google Analytics in your site with the global site tag (gtag.js) framework and API.","description_html":"<p>Easily integrate and configure Google Analytics in your site with the global site tag (gtag.js) framework and API.<\/p>","description_plain":"Easily integrate and configure Google Analytics in your site with the global site tag (gtag.js) framework and API.","icon":"google","author":{"name":"Christian Worreschk","email":"cw@marsec.de"},"homepage":"https:\/\/github.com\/cworreschk\/grav-plugin-google-analytics","docs":"https:\/\/github.com\/cworreschk\/grav-plugin-google-analytics\/blob\/develop\/README.md","keywords":"google, tracking, analytics, gtag, global site tag, grav, plugin","bugs":"https:\/\/github.com\/cworreschk\/grav-plugin-google-analytics\/issues","license":"MIT","tag_name":"v1.2.0","date":"2022-03-15T16:52:01Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/google-analytics\/1.1.0","repository":"https:\/\/github.com\/mminer237\/grav-plugin-google-analytics","slug":"google-analytics","install_path":"user\/plugins\/google-analytics","content_sha256":"d1aec63d352811be6abd05c9e1de8ac44e8d000f42e9cda89bd3f8f6dc3faec3","changelog":{"1.2.0":{"date":" 03\/15\/2021","content":"1. [](#bugfix)\n    * Fix inserting code a second time in header\n    * Check if options are empty correctly\n"},"1.1.0":{"date":" 08\/05\/2019","content":"1. [](#new)\n    * Support for `Do Not Track (DNT)`\n    * German translation\n1. [](#bugfix)\n    * Fixed issue with renaming the global `gtag()` object    \n"},"1.0.0":{"date":" 07\/31\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"lazysizes":{"name":"Lazysizes","version":"1.0.0","description":"Adds lazyloading to page images","description_html":"<p>Adds lazyloading to page images<\/p>","description_plain":"Adds lazyloading to page images","icon":"image","author":{"name":"Jan St\u00fcmmel","email":"info@janstuemmel.de"},"homepage":"https:\/\/github.com\/websitemacherei\/grav-plugin-lazysizes","docs":"https:\/\/github.com\/websitemacherei\/grav-plugin-lazysizes\/blob\/develop\/README.md","keywords":"lazy, lazyloading, lazysizes","bugs":"https:\/\/github.com\/websitemacherei\/grav-plugin-lazysizes\/issues","license":"MIT","tag_name":"v1.0.0","date":"2019-07-31T09:15:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/lazysizes\/1.0.0","repository":"https:\/\/github.com\/websitemacherei\/grav-plugin-lazysizes","slug":"lazysizes","install_path":"user\/plugins\/lazysizes","content_sha256":"d4da403532309e0bf320d1f405896d6681a655c0c1b511b16fe4b9a430687a65","changelog":{"1.0.0":{"date":" 07\/31\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"zooming":{"name":"Zooming","version":"1.0.1","description":"Zooming is a simple [Grav](http:\/\/github.com\/getgrav\/grav) plugin that adds **image zoom \/ lightbox** functionality via [Zooming](https:\/\/github.com\/kingdido999\/zooming) and acts as an alternative to the [featherlight](https:\/\/github.com\/getgrav\/grav-plugin-featherlight) plugin.","description_html":"<p>Zooming is a simple <a href=\"http:\/\/github.com\/getgrav\/grav\">Grav<\/a> plugin that adds <strong>image zoom \/ lightbox<\/strong> functionality via <a href=\"https:\/\/github.com\/kingdido999\/zooming\">Zooming<\/a> and acts as an alternative to the <a href=\"https:\/\/github.com\/getgrav\/grav-plugin-featherlight\">featherlight<\/a> plugin.<\/p>","description_plain":"Zooming is a simple Grav plugin that adds image zoom \/ lightbox functionality via Zooming and acts as an alternative to the featherlight plugin.","icon":"file-photo-o","author":{"name":"Julian Sch\u00f6nb\u00e4chler","url":"https:\/\/julian-s.ch","email":"info@julian-s.ch"},"homepage":"https:\/\/github.com\/JulianSchoenbaechler\/grav-plugin-zooming","keywords":"zooming, zoom, plugin, code, lightbox, featherlight","bugs":"https:\/\/github.com\/JulianSchoenbaechler\/grav-plugin-zooming\/issues","license":"MIT","tag_name":"v1.0.1","date":"2019-08-21T15:15:07Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/zooming\/1.0.1","repository":"https:\/\/github.com\/JulianSchoenbaechler\/grav-plugin-zooming","slug":"zooming","install_path":"user\/plugins\/zooming","content_sha256":"78b5e62ef856bece0443ba16968ff665f3bcb2c8fbd949e2eccd2df358bb8c27","changelog":{"1.0.1":{"date":"08\/02\/2019","content":"1. [](#bugfix)\n    * Fixed file path to dependencies on case-sensitive systems\n"},"1.0.0":{"date":"07\/25\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"shortcode-citation":{"name":"Shortcode Citations","version":"0.2.0","description":"Provides the ability to add citations via shortcodes such as [cite=id \/]","description_html":"<p>Provides the ability to add citations via shortcodes such as [cite=id \/]<\/p>","description_plain":"Provides the ability to add citations via shortcodes such as [cite=id \/]","icon":"superscript","author":{"name":"Nathan Parsons","url":"https:\/\/tantalum.blue","email":"github@tantalum.blue"},"dependencies":[{"name":"shortcode-core"}],"homepage":"https:\/\/github.com\/n-parsons\/grav-plugin-shortcode-citation","keywords":"cite, citation, reference, academic, bibliography, shortcode","bugs":"https:\/\/github.com\/n-parsons\/grav-plugin-shortcode-citation\/issues","license":"MIT","tag_name":"v0.2.0","date":"2019-07-31T14:17:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-citation\/0.2.0","repository":"https:\/\/github.com\/N-Parsons\/grav-plugin-shortcode-citation","slug":"shortcode-citation","install_path":"user\/plugins\/shortcode-citation","content_sha256":"65fadf6ceb25f2cb2758bec298e6d6b1afb521731f19c71d9d2ab3210f888d86","changelog":{"0.2.0":{"date":"31-07-2019","content":"1. [](#new)\n    - Added option for listing only cited, uncited, or all references from the page.\n    - Added option for whether to reorder uncited works alphabetically by ID.\n\n2. [](#bugfix)\n    - Fixed issue with citations in blog posts displaying incorrectly in the listing.\n"},"0.1.4":{"date":"25-07-2019","content":"1. [](#bugfix)\n    - Fixed bug related to numeric IDs.\n"},"0.1.3":{"date":"24-07-2019","content":"1. [](#bugfix)\n    - Fix incorrectly formatted anchors\n"},"0.1.2":{"date":"24-07-2019","content":"1. [](#bugfix)\n    - Update documentation\n"},"0.1.1":{"date":"24-07-2019","content":"1. [](#bugfix)\n    - Update documentation\n"},"0.1.0":{"date":"24-07-2019","content":"1. [](#new)\n    - Initial version"}}},"shortcode-modal":{"name":"Shortcode Modal","version":"1.0.0","description":"Provides shortcodes for displaying content in a modal popup","description_html":"<p>Provides shortcodes for displaying content in a modal popup<\/p>","description_plain":"Provides shortcodes for displaying content in a modal popup","icon":"code","author":{"name":"Matt Marsh","email":"matt@crazedbytes.net"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/marshmn\/grav-plugin-shortcode-modal","docs":"https:\/\/github.com\/marshmn\/grav-plugin-shortcode-modal\/blob\/master\/README.md","demo":"https:\/\/demos.crazedbytes.net\/shortcode-modal","keywords":"grav, plugin, shortcode, ui","bugs":"https:\/\/github.com\/marshmn\/grav-plugin-shortcode-modal\/issues","license":"MIT","tag_name":"v1.0.0","date":"2019-07-13T16:26:47Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-modal\/1.0.0","repository":"https:\/\/github.com\/marshmn\/grav-plugin-shortcode-modal","slug":"shortcode-modal","install_path":"user\/plugins\/shortcode-modal","content_sha256":"59c33e555bb304c01ce0620bc63e40728f188012c1b7af8447063ab325bc74ba","changelog":{"1.0.0":{"date":" 07\/13\/2019","content":"1. [](#new)\n    * Initial `modal` and `modal-launch` shortcodes added"}}},"tools-collection":{"name":"Tools Collection","version":"0.1.4","description":"A collection of tools that make working with Grav easier","description_html":"<p>A collection of tools that make working with Grav easier<\/p>","description_plain":"A collection of tools that make working with Grav easier","icon":"info","author":{"name":"Thomas Anderson","email":"mr.anderson@onixmail.ch"},"homepage":"https:\/\/github.com\/Memurame\/grav-plugin-tools-collection","keywords":"collection, tools, tools-collection, resize, image, blueprints, blueprint","bugs":"https:\/\/github.com\/Memurame\/grav-plugin-tools-collection","license":"MIT","tag_name":"0.1.4","date":"2020-02-19T08:39:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tools-collection\/0.1.4","repository":"https:\/\/github.com\/Memurame\/grav-plugin-tools-collection","slug":"tools-collection","install_path":"user\/plugins\/tools-collection","content_sha256":"eeeecb6f877f28db1d85ce4979807bdfa43e33c324ffb84b38144f44c02537e8","changelog":{"0.1.4":{"date":"19-02-2020","content":"1. [](#bugfix)\n    * fixed algorithm (resize images)\n1. [](#new)\n    * Set characters which are not allowed"},"0.1.3":{"date":"21-08-2019","content":"1. [](#improved)\n    * removed nonexistent blueprint"},"0.1.2":{"date":"16-08-2019","content":"1. [](#improved)\n    * change default settings\n    * update language\n"},"0.1.1":{"date":"16-08-2019","content":"1. [](#improved)\n    * Extend the readme\n    "},"0.1.0":{"date":"14-08-2019","content":"1. [](#bugfix)\n    * fix changelog version\n"},"0.0.18":{"date":"13-08-2019","content":"1. [](#bugfix)\n    * Plugin variablename in admin template\n"},"0.0.17":{"date":"13-08-2019","content":"1. [](#new)\n    * Add multilanguage support\n    * Change README language to english\n    "},"0.0.16":{"date":"12-08-2019","content":"1. [](#new)\n    * New name for the plugin\n    "},"0.0.15":{"date":"12-08-2019","content":"1. [](#bugfix)\n    * Update readme\n    * little changes\n    "},"0.0.14":{"date":"12-08-2019","content":"1. [](#improved)\n    * Change Name of Plugin\n    "},"0.0.13":{"date":"15-07-2019","content":"1. [](#bugfix)\n    * Change the filename of admin template\n"},"0.0.12":{"date":"15-07-2019","content":"1. [](#improved)\n    * Rename the repo from grav-plugin-toolbox to grav-plugin-smartthings\n    "},"0.0.11":{"date":"10-07-2019","content":"1. [](#improved)\n    * Rename the repo from grav-toolbox to grav-plugin-toolbox\n    "},"0.0.1":{"date":"09-07-2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"mermaid-diagrams":{"name":"Mermaid Diagrams","version":"1.4.0","description":"This plugin adds the simple and powerful [mermaid diagram language](https:\/\/mermaidjs.github.io\/) to Grav.","description_html":"<p>This plugin adds the simple and powerful <a href=\"https:\/\/mermaidjs.github.io\/\">mermaid diagram language<\/a> to Grav.<\/p>","description_plain":"This plugin adds the simple and powerful mermaid diagram language to Grav.","icon":"edit","author":{"name":"Daniel Flaum","url":"https:\/\/danielflaum.net","email":"talk@danielflaum.net"},"homepage":"https:\/\/github.com\/DanielFlaum\/grav-plugin-mermaid-diagrams","keywords":"diagrams, charts, graphs","bugs":"https:\/\/github.com\/DanielFlaum\/grav-plugin-mermaid-diagrams\/issues","license":"MIT","tag_name":"v1.4.0","date":"2024-03-03T00:24:03Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mermaid-diagrams\/1.4.0","repository":"https:\/\/github.com\/DanielFlaum\/grav-plugin-mermaid-diagrams","slug":"mermaid-diagrams","install_path":"user\/plugins\/mermaid-diagrams","content_sha256":"6a316b07c7d7f4ba3313ea0b1ff29d726ea4580b56000729aecda001243bbaae","changelog":{"1.4.0":{"date":"02-03-2024","content":"1. [](#new)\n   * Upgraded [mermaid](https:\/\/github.com\/mermaid-js\/mermaid) to v10.8.0, which (among many other things) adds Gitgaph diagrams.\n"},"1.3.0":{"date":"30-03-2022","content":"1. [](#new)\n   * Upgraded [mermaid](https:\/\/github.com\/mermaid-js\/mermaid) to v8.14.0. (Credit: https:\/\/github.com\/mojerro)\n"},"1.2.0":{"date":"14-05-2021","content":"1. [](#new)\n   * Upgraded [mermaid](https:\/\/github.com\/mermaid-js\/mermaid) to v8.10.1.\n"},"1.1.0":{"date":"18-12-2019","content":"1. [](#new)\n   * Upgraded [mermaid](https:\/\/github.com\/mermaid-js\/mermaid) to v8.4, which adds pie charts and state diagrams.\n"},"1.0.1":{"date":"02-07-2019","content":"1. [](#improved)\n    * Small corrections to README.md\n"},"1.0.0":{"date":"02-07-2019","content":"1. [](#new)\n    * Converted Aur\u00e9lien Wolz's Diagram Plugin into the present work.\n    * Removed the Flow and Sequence diagram generators."}},"dependencies":[]},"form-prefiller":{"name":"Form Prefiller","version":"1.1.5","description":"Prefill form fields from various data sources","description_html":"<p>Prefill form fields from various data sources<\/p>","description_plain":"Prefill form fields from various data sources","icon":"list-alt","author":{"name":"Ron Wardenier","email":"bleutzinn@rwgc.nl"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/bleutzinn\/grav-plugin-form-prefiller","docs":"https:\/\/github.com\/bleutzinn\/grav-plugin-form-prefiller\/blob\/master\/README.md","keywords":"grav, plugin, form, prefill","bugs":"https:\/\/github.com\/bleutzinn\/grav-plugin-form-prefiller\/issues","license":"MIT","tag_name":"v1.1.5","date":"2020-05-18T10:14:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/form-prefiller\/1.1.5","repository":"https:\/\/github.com\/bleutzinn\/grav-plugin-form-prefiller","slug":"form-prefiller","install_path":"user\/plugins\/form-prefiller","content_sha256":"03e6e95acc83c014b164cc50fa9b5dd4e9b83a01f8dc7b15983998f8efa1f54b","changelog":{"1.1.5":{"date":" 05\/18\/2020","content":"1. [](#bugfix)\n    * Fixed (included) missing 'vendor' directory\n"},"1.1.4":{"date":" 05\/17\/2020","content":"1. [](#improved)\n    * Restricted response of all data-*@ functions to page requests only\n    * Enriched Debug Bar messages with the requested variable name\n"},"1.1.3":{"date":" 05\/15\/2020","content":"1. [](#improved)\n    * Improved stability by catching and logging errors\n    * Restored data-*@ functions to static\n    * Renamed the function \"getParameter\" to \"getURLParameter\" (\"getParameter\" still works for backwards compatibility)\n    * Updated to new devtools plugin standards\n    * Renamed \"demo\" to the more appropriate \"example-prefill-form-page\"\n    * Changed some examples so that they are clearer\n    * Updated documentation\n"},"1.1.2":{"date":" 05\/02\/2020","content":"1. [](#improved)\n    * Updated documentation\n    "},"1.1.1":{"date":" 05\/02\/2020","content":"1. [](#bugfix)\n    * Fixed a problem in detecting YAML type templates.\n1. [](#improved)\n    * Restricted examples to form fields only.\n    "},"1.1.0":{"date":" 05\/02\/2020","content":"1. [](#bugfix)\n    * Fixed issue [#2](https:\/\/github.com\/bleutzinn\/grav-plugin-form-prefiller\/issues\/2) about an error when 'prefill_data' was missing in the frontmatter; thanks to [thekenshow](https:\/\/github.com\/thekenshow) for reporting an the fix.\n    * Fixed a problem causing a Page not found error immediately after a page save.\n1. [](#improved)\n    * Improved errors in and inconsistencies between the provided example files and the documentation.\n    "},"1.0.1":{"date":" 01\/29\/2020","content":"1. [](#improved)\n    * Corrected the link to the `README.md` file in `blueprints.yaml` file.\n"},"1.0.0":{"date":" 06\/23\/2019","content":"1. [](#improved)\n    * Updated documentation in `README.md`\n    * Included more complete demo page\n"},"0.2.0":{"date":" 06\/23\/2019","content":"1. [](#new)\n    * Added custom processing through Twig templates (\"getTwigRender\")\n    * Added a call to view all available Twig variables via `getTwig` with parameter `@ALL`\n1. [](#improved)\n    * Fixed a problem with extra Twig variables not being added\n"},"0.1.0":{"date":" 06\/16\/2019","content":"1. [](#new)\n    * ChangeLog started...\n    * First release"}}},"readability":{"name":"Readability","version":"2.1.1","description":"Measure the readability of your writing.","description_html":"<p>Measure the readability of your writing.<\/p>","description_plain":"Measure the readability of your writing.","icon":"file-text-o","author":{"name":"Ole Vik","email":"git@olevik.net"},"dependencies":[{"name":"grav","version":">=1.6"},{"name":"admin","version":">=1.9"}],"homepage":"https:\/\/github.com\/OleVik\/grav-plugin-readability","docs":"https:\/\/github.com\/OleVik\/grav-plugin-readability\/blob\/master\/README.md","keywords":"grav, plugin, readability, automated readability index, characters, coleman-liau, flesch, flesch-kincaid, letters, lix, localized, long words, paragraphs, periods, polysillabic words, punctuations, readability, rix, sentences, smog, syllables, textstat, whitespaces, words","bugs":"https:\/\/github.com\/OleVik\/grav-plugin-readability\/issues","license":"MIT","tag_name":"v2.1.1","date":"2022-02-24T20:21:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/readability\/2.1.1","repository":"https:\/\/github.com\/OleVik\/grav-plugin-readability","slug":"readability","install_path":"user\/plugins\/readability","content_sha256":"b1dc42de5a2d87342c89627697316f28b4e0b0da95a0aa58fdd04c2943222ea2","changelog":{"2.1.1":{"date":" 24-02-2022","content":"1. [](#bugfix)\n    * Fix boolean-error for PHP 8\n"},"2.1.0":{"date":" 20-07-2020","content":"1. [](#new)\n    * Add German\n    * Bump library-version\n2. [](#improved)\n    * Use user's language\n    * Fall back to default language\n    * Note used language in browser console\n"},"2.0.0":{"date":" 14-07-2020","content":"1. [](#new)\n    * Responsive CSS\n2. [](#bugfix)\n    * Twig-extensions namespacing\n"},"1.1.0":{"date":" 08-05-2020","content":"1. [](#new)\n    * TinyMCE-editor compatibility\n2. [](#improved)\n    * Filenames\n3. [](#bugfix)\n    * Pages-check\n    * Docs-link\n"},"1.0.7":{"date":" 24-06-2019","content":"1. [](#improved)\n    * Separate screen- and print-styles\n"},"1.0.6":{"date":" 18-06-2019","content":"1. [](#new)\n    * Blueprint-field for max words\n"},"1.0.5":{"date":" 18-06-2019","content":"1. [](#new)\n    * Template-separation\n    * Style-separation\n    * JavaScript-separation\n    * JavaScript Events\n    * Front-end template\n    * Max words option\n    * CallStatic and FindResource Twig-extensions\n2. [](#improved)\n    * Asset-loading in Admin\n    * JavaScript-debug\n    * Norwegian translation\n"},"1.0.4":{"date":" 17-06-2019","content":"1. [](#new)\n    * Norwegian translation\n"},"1.0.3":{"date":" 16-06-2019","content":"1. [](#improved)\n    * Pathing in scripts, workers\n    * Inline registerPromiseWorker\n    * Console-debug\n    * Languages.yaml\n    * Styling\n2. [](#new)\n    * Visual indicator and display\n    * Toggle to hide output\n"},"1.0.2":{"date":" 15-06-2019","content":"1. [](#bugfix)\n    * Blueprints\n2. [](#new)\n    * Console-debug\n"},"1.0.1":{"date":" 15-06-2019","content":"1. [](#new)\n    * Add descriptions\n2. [](#improved)\n    * Dependencies, keywords, assets\n"},"1.0.0":{"date":" 15-06-2019","content":"1. [](#new)\n    * Initial release"}}},"admin-frontmatter-yaml":{"name":"Admin Frontmatter Yaml","version":"0.1.3","description":"Support frontmatter.yaml files in Admin plugin","description_html":"<p>Support frontmatter.yaml files in Admin plugin<\/p>","description_plain":"Support frontmatter.yaml files in Admin plugin","icon":"plug","author":{"name":"Igor Kuznetsov","email":"igk@igk.ru"},"homepage":"https:\/\/github.com\/igk1972\/grav-plugin-admin-frontmatter-yaml","docs":"https:\/\/github.com\/igk1972\/grav-plugin-admin-frontmatter-yaml\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/igk1972\/grav-plugin-admin-frontmatter-yaml\/issues","license":"MIT","tag_name":"0.1.3","date":"2020-11-08T17:04:52Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-frontmatter-yaml\/0.1.3","repository":"https:\/\/github.com\/igk1972\/grav-plugin-admin-frontmatter-yaml","slug":"admin-frontmatter-yaml","install_path":"user\/plugins\/admin-frontmatter-yaml","content_sha256":"a6b6977e7e7eb6cbc6928e86b965f7a0566149160bd370fb4605ee438af22b7a","changelog":{"0.1.3":{"date":" 11\/08\/2020","content":"1. [](#new)\n    * Add rules for nested fields\n"},"0.1.2":{"date":" 04\/05\/2020","content":"1. [](#fix)\n    * Store frontmatter yaml only after save page\n"},"0.1.1":{"date":" 09\/01\/2019","content":"1. [](#fix)\n    * Fix reads fields array from config\n"},"0.1.0":{"date":" 06\/17\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"markdown-fontawesome":{"name":"Markdown Font Awesome","version":"1.1.1","description":"Adds support for Font Awesome icons in Markdown using :emoji: syntax","description_html":"<p>Adds support for Font Awesome icons in Markdown using :emoji: syntax<\/p>","description_plain":"Adds support for Font Awesome icons in Markdown using :emoji: syntax","icon":"flag","author":{"name":"Nathan Parsons","url":"https:\/\/github.com\/n-parsons","email":"github@tantalum.blue"},"homepage":"https:\/\/github.com\/n-parsons\/grav-plugin-markdown-fontawesome","keywords":"font awesome, emoji, icons","bugs":"https:\/\/github.com\/n-parsons\/grav-plugin-markdown-fontawesome\/issues","license":"MIT","tag_name":"v1.1.1","date":"2019-07-31T10:05:48Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-fontawesome\/1.1.1","repository":"https:\/\/github.com\/N-Parsons\/grav-plugin-markdown-fontawesome","slug":"markdown-fontawesome","install_path":"user\/plugins\/markdown-fontawesome","content_sha256":"c6e747a3fb6ecd21acf80fcb172daf2ee9a19b04c224c7a2345eaca7c7eff0f1","changelog":{"1.1.1":{"date":"2019-07-31","content":"1. [](#new)\n    * Added support for duotone icons (`fad`)\n"},"1.1.0":{"date":"2019-06-15","content":"1. [](#new)\n    * Added support for variants (eg. `fas`, `fal`).\n    * Added support for additional arbitrary classes (eg. `fa-spin`, `icon`).\n\n2. [](#improved)\n    * Fixed issues with other colons inline with icons, eg. in times.\n    * Documented conflict with Markdown Extra definition lists.\n"},"1.0.1":{"date":"2016-04-27","content":"1. [](#improved)\n    * Better plugin description added\n"},"1.0.0":{"date":"2016-04-23","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"file-browser":{"name":"File Browser","version":"0.2.8","description":"File browser plugin providing directory listing","description_html":"<p>File browser plugin providing directory listing<\/p>","description_plain":"File browser plugin providing directory listing","icon":"folder","author":{"name":"Nathan Parsons","url":"https:\/\/tantalum.blue","email":"github@tantalum.blue"},"homepage":"https:\/\/github.com\/N-Parsons\/grav-plugin-file-browser","keywords":"grav, plugin, files, directory, file browser, directory listing","bugs":"https:\/\/github.com\/N-Parsons\/grav-plugin-file-browser\/issues","license":"MIT","tag_name":"v0.2.8","date":"2021-03-17T10:02:19Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/file-browser\/0.2.8","repository":"https:\/\/github.com\/N-Parsons\/grav-plugin-file-browser","slug":"file-browser","install_path":"user\/plugins\/file-browser","content_sha256":"558564b3712ead042daa584ec571c2c57f18c3b1ee173d896075f40082ea66ae","changelog":{"0.2.8":{"date":" 17-03-2021","content":"1. [](#bugfix)\n    * Remove duplicate key (which caused errors in Admin).\n"},"0.2.7":{"date":" 28-04-2020","content":"1. [](#improved)\n    * Improved support for Font Awesome 4.\n"},"0.2.6":{"date":" 13-10-2019","content":"1. [](#new)\n    * Added option for disabling sort button.\n    * Added option for default reversal of sort order.\n2. [](#bugfix)\n    * Fixes issue caused by dots in folder names.\n"},"0.2.5":{"date":" 16-08-2019","content":"1. [](#new)\n    * Added requested file sorting functionality.\n"},"0.2.4":{"date":" 16-08-2019","content":"1. [](#bugfix)\n    * Fix issue with class for list-view as default.\n"},"0.2.3":{"date":" 15-08-2019","content":"1. [](#bugfix)\n    * Prepend base url to get true paths for files.\n"},"0.2.2":{"date":" 12-08-2019","content":"1. [](#bugfix)\n    * Handle cases where folders only contain folders.\n"},"0.2.1":{"date":" 12-08-2019","content":"1. [](#bugfix)\n    * Fix compatibility with the 'embed-fontawesome' plugin.\n"},"0.2.0":{"date":" 12-08-2019","content":"1. [](#improved)\n    * Improved thumbnail generation.\n    * Thumbnail types are now handled via the site config.\n2. [](#bugfix)\n    * Spaces in file\/folder names are now supported.\n"},"0.1.3":{"date":" 08-08-2019","content":"1. [](#improved)\n    * Improved robustness of file icons and names in the browser view.\n"},"0.1.2":{"date":" 05-08-2019","content":"1. [](#bugfix)\n    * Fix compatibility with Font Awesome via JS\/SVG\n"},"0.1.1":{"date":" 24-07-2019","content":"1. [](#improved)\n    * Add usage instruction\n2. [](#bugfix)\n    * Switch Font Awesome to use CSS via the CDN (the JS kit was inappropriate)\n"},"0.1.0":{"date":" 03-06-2019","content":"1. [](#new)\n    * Create file browser plugin.\n    * Implement extension-specific icons.\n    * Implement thumbnail generation."}},"dependencies":[]},"image-color":{"name":"Image Color","version":"1.0.0","description":"The Grav Image Color Plugin for Grav adds the ability to get the dominant color from an image. You can generate a color palette from an image.","description_html":"<p>The Grav Image Color Plugin for Grav adds the ability to get the dominant color from an image. You can generate a color palette from an image.<\/p>","description_plain":"The Grav Image Color Plugin for Grav adds the ability to get the dominant color from an image. You can generate a color palette from an image.","icon":"paint-brush","author":{"name":"Dimitri Longo","url":"https:\/\/github.com\/dimitrilongo\/grav-plugin-image-color","email":"dimitri.longo@elanathemes.fr"},"homepage":"https:\/\/github.com\/dimitrilongo\/grav-plugin-image-color","docs":"https:\/\/github.com\/dimitrilongo\/grav-plugin-image-color\/blob\/master\/README.md","bugs":"https:\/\/github.com\/dimitrilongo\/grav-plugin-image-color\/issues","license":"MIT","tag_name":"v1.0.0","date":"2019-05-11T19:33:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/image-color\/1.0.0","repository":"https:\/\/github.com\/dimitrilongo\/grav-plugin-image-color","slug":"image-color","install_path":"user\/plugins\/image-color","content_sha256":"c9ff980987258d90791151e31be726f5621d1260dd0d2b66520f34e60d30b339","changelog":{"1.0.0":{"date":"11\/05\/2019","content":"1. [](#new)\n    * Initial Release"}},"dependencies":[]},"fullcalendar":{"name":"FullCalendar","version":"0.3.5","description":"show Calendar Widget from ICS File(s), based on fullcalendar.io","description_html":"<p>show Calendar Widget from ICS File(s), based on fullcalendar.io<\/p>","description_plain":"show Calendar Widget from ICS File(s), based on fullcalendar.io","icon":"calendar","author":{"name":"Werner Joss","email":"wernerjoss@users.noreply.github.com"},"dependencies":[{"name":"problems","version":"*"},{"name":"error","version":"*"},{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/wernerjoss\/grav-plugin-fullcalendar","docs":"https:\/\/github.com\/wernerjoss\/grav-plugin-fullcalendar","keywords":"grav, plugin, ICS, Icalendar, fullcalendar.io","bugs":"https:\/\/github.com\/wernerjoss\/grav-plugin-fullcalendar\/issues","license":"MIT","tag_name":"0.3.5","date":"2023-07-19T14:30:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/fullcalendar\/0.3.5","repository":"https:\/\/github.com\/wernerjoss\/grav-plugin-fullcalendar","slug":"fullcalendar","install_path":"user\/plugins\/fullcalendar","content_sha256":"27d6af1347b5e72b05cd43176e7042df32661e1057d70802b62520083c79af99","changelog":{"0.3.5":{"date":" 07\/18\/2023","content":"1. [](#new)\n    * fix template Selection from Grav Admin\n"},"0.3.4":{"date":" 03\/20\/2023","content":"1. [](#new)\n    * make first Weekday configurable\n"},"0.3.3":{"date":" 09\/01\/2022","content":"1. [](#bugfix)\n    * fix issue #53, google-ics german Umlaut not converted\n"},"0.3.2":{"date":" 04\/15\/2022","content":"1. [](#new)\n    * add minutes Timezone Offset config Option\n2. [](#bugfix)\n    * fix day shift for recurring all-day events\n3. [](#new)\n    * merge docs improvement pull requests #48 + #49 from elgandoz\n3. [](#bugfix)\n    * fix issue #50, calendar file not found for non-root calendar page\n"},"0.3.0":{"date":" 01\/10\/2022","content":"1. [](#bugfix)\n    * fix issue #44 (Incorrect time shown for recurring items)\n2. [](#new)\n    * improve external calendar usage documentation\n    * provide more default values in fullcalendar.yaml\n    * add Event Description Popup Option\n    * add Option to enable Plugin selective via page frontmatter (instead of global)\n"},"0.2.13":{"date":" 11\/11\/2021","content":"1. [](#bugfix)\n    * fix issue #38 ($config undefined when using custom page template)\n"},"0.2.12":{"date":" 11\/07\/2021","content":"1. [](#new)\n    * merged pull request #36 from @aloxe:\n    * remove the need to add jQuery if not done by Theme\n    * find correct URL for proxy.php even when Grav isn't installed at the root\n    * respect user provided CORS Url if present\n    * fix Legend display toggle\n    * fix error when Language not set in Grav\n2. [](#new)\n    * merged pull request #37 from @aloxe\n"},"0.2.11":{"date":" 10\/31\/2021","content":"1. [](#new)\n    * Added Color support from ics files (merge pull request #33 from Johannes Loose)\n    * Add config Option useCustomPageTemplate - useful e.g. for modular Calendar Pages (caution: affects page speed if set to true !)\n"},"0.2.10":{"date":" 06\/14\/2021","content":"1. [](#new)\n    * add config Option to add jquery asset in case the used Theme does not.\n    * add Frontmatter Variable lang to allow override of language for page\n"},"0.2.9":{"date":" 05\/20\/2021","content":"1. [](#new)\n    * use grav.language.getLanguage instead of config Options - Hint from Ulrich Wolf, thanks :-)\n"},"0.2.8":{"date":" 05\/12\/2021","content":"1. [](#new)\n    * add local CORS Proxy (as default external proxy herokuapp stopped working)\n"},"0.2.7":{"date":" 02\/26\/2021","content":"1. [](#bugfix)\n    * fix weekNumbers setting not recognized, code formatting\n"},"0.2.6":{"date":" 02\/20\/2021","content":"1. [](#new)\n    * improve Monthpics search\/display (disable javascript month change event watching when no month pics available)\n    * introduce page Template in Plugin, make this selectable in Admin Backend without copy to Theme Templates Folder\n    * move javascript out of twig template into separate js File for easier Maintenance\n    * enhance blueprints.yaml for easier configuration in admin backend\n"},"0.2.5":{"date":" 09\/05\/2020","content":"1. [](#new)\n    * fix missing event time display when allDay=false\n    * fix picture artifact in html when no month pics in page folder\n    * add experimental config option tz_offset as a workaround for wrong event times in repeating events (see source code..)\n"},"0.2.4":{"date":" 07\/21\/2020","content":"1. [](#new)\n    * add config Option cors_api_url (overrides default value, if present)\n"},"0.2.3":{"date":" 06\/22\/2020","content":"1. [](#new)\n    * add Event Description as Tooltip\n"},"0.2.2":{"date":" 04\/06\/2020","content":"1. [](#new)\n    * automatically add CORS proxy URL for remote ics Files\n"},"0.2.1":{"date":" 02\/17\/2020","content":"1. [](#new)\n    * fix parsing long lines in ics File(s)\n    * new config Option weekNumbers (show week Numbers in calendar grid)\n    * fix BYDAY n+- Bug (bysetpos)\n"},"0.2.0":{"date":" 01\/06\/2020","content":"1. [](#new)\n    * update fullcalendar.io to V 4.3.1, including rrule Plugin\n    * rewrite ICAL to fullcalendar.io Objects Mapping to support repeating Events (rrule)\n    * new locale configuration Option\n\nRepeating Events are now basically supported by incorporating the rrule Plugin from fullcalendar.io V 4.3.1.\nThere are, however, some rrule Options left, that are not yet supported - should work for most common rrules, though.\nAdditionaly, a new configuration Option has been introduced: locale - just set this to your Preferred value in fullcalendar.yaml.\nDefault is en.\nAlso note that file assets\/custom.css has been renamed to daygrid.css - custom.css is for user adaptions and will also be used, if present (but is not provided with plugin) !\n"},"0.1.5":{"date":" 12\/30\/2019","content":"1. [](#new)\n    * allow custom colors for multiple calendars\n\nCalendars can now be assigned custom colors for nicer display by adding an entry 'colors' to fullcalendar.yaml - this should be a comma-separated list of HTML\ncolors (predifined Names like lightBlue can be used as well as HEX notation, like #ffaabc).\nIf colors entry is not defined, standard fullcalendar.css color is used for all calendars, same behaviour as before.\nIn Addition, a Legend (html List, css class cal_legend) can be enabled by adding showlegend: true\n"}}},"cloudinary":{"name":"Cloudinary","version":"1.2.3","description":"Cloudinary service integration for Grav.","description_html":"<p>Cloudinary service integration for Grav.<\/p>","description_plain":"Cloudinary service integration for Grav.","icon":"cloud","author":{"name":"Netzhexe.de","email":"ak@netzhexe.de"},"homepage":"https:\/\/github.com\/skinofthesoul\/grav-plugin-cloudinary","docs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-cloudinary\/blob\/master\/README.md","keywords":"grav, plugin, video management, image management, asset management","bugs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-cloudinary\/issues","license":"MIT","tag_name":"v1.2.3","date":"2021-05-06T14:23:09Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cloudinary\/1.2.3","repository":"https:\/\/github.com\/skinofthesoul\/grav-plugin-cloudinary","slug":"cloudinary","install_path":"user\/plugins\/cloudinary","content_sha256":"de20ad3258d1c4903dfa126f745cd28e80464230c5086eb8f03ba0d8d9c5f48e","changelog":{"1.2.3":{"date":" 06-05-2021","content":"1. [](#improved)\n    * removed redundant content tabs\n"},"1.2.2":{"date":" 18-02-2020","content":"1. [](#bugfix)\n    * replaced a hardcoded cloudname with the appropriate plugin setting\n"},"1.2.1":{"date":" 14-02-2020","content":"1. [](#improved)\n    * upload widget now also works for images\n    * took out some plugin options that are not in use yet\n"},"1.2":{"date":" 13-02-2020","content":"1. [](#new)\n    * upload file button for Grav Admin!\n\n2. [](#improved)\n    * code improvements, small language corrections\n"},"1.1.5":{"date":" 08-05-2019","content":"1. [](#improved)\n    * better defaults, code improvements\n"},"1.1.4":{"date":" 06-05-2019","content":"1. [](#improved)\n    * some templating and code improvements, ready to be tested out in production\n"},"1.1.3":{"date":" 04-05-2019","content":"1. [](#improved)\n    * _really_ included `vendor\/` directory in git so it's actually installable via GPM\n"},"1.1.2":{"date":" 03-05-2019","content":"1. [](#improved)\n    * code improvements\n    * included `vendor\/` directory in git so it's actually installable via GPM\n"},"1.1.1":{"date":" 02-05-2019","content":"1. [](#improved)\n    * added credits to README\n    * fixed and bumped version numbers in `blueprints.yaml`\n    * fixed a templating error\n"},"1.1.0":{"date":" 01-05-2019","content":"1. [](#new)\n    * default options for galleries and single pages\n    * support for images\n    * configurable via Admin\n2. [](#improved)\n    * updated Usage and Future Plans sections of README\n    * more language support\n"},"1.0.0":{"date":" 04\/23\/2019","content":"1. [](#new)\n    * first release\n    * support for single video pages and galleries of thumbnails linked to their respective video pages\n    * language support included"}},"dependencies":[]},"login-oauth2-extras":{"name":"Login OAuth2 Extras","version":"2.2.1","description":"Extra Login OAuth2 Providers (requires Login OAuth2 Plugin)","description_html":"<p>Extra Login OAuth2 Providers (requires Login OAuth2 Plugin)<\/p>","description_plain":"Extra Login OAuth2 Providers (requires Login OAuth2 Plugin)","icon":"plug","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"login-oauth2","version":"~2.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/issues","license":"MIT","tag_name":"2.2.1","date":"2026-05-05T14:11:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/login-oauth2-extras\/2.2.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras","slug":"login-oauth2-extras","install_path":"user\/plugins\/login-oauth2-extras","content_sha256":"a11b74f05051992b5ff2159d473fd1a3fe3d4086d11bec41a9c4dc4415ed6960","changelog":{"2.2.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"2.2.0":{"date":"03\/30\/2022","content":"1. [](#new)\n   * Added Okta provider [#7](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/pull\/7)\n2. [](#bugfix)\n   * Fixed issues with TwitchHelix provider [#6](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/issues\/6)\n   "},"2.1.2":{"date":"03\/16\/2022","content":"1. [](#new)\n   * Added Keycloak provider [#5](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/pull\/5)\n2. [](#improved)\n   * Updated Twitch provider to TwitchHelix [#6](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/issues\/6)\n   * Updated all vendor libraries to latest\n"},"2.1.1":{"date":"12\/02\/2020","content":"1. [](#improved)\n    * Azure - Add tenant option for OpenID scopes [#3](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/pull\/3)\n    * Azure - Get profile picture form Azure [#3](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/pull\/3)\n    * Azure - Get group memberships from Azure [#3](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/pull\/3)\n"},"2.1.0":{"date":"05\/11\/2020","content":"1. [](#new)\n    * Added Patreon Provider\n    * Added Azure Provider [#1](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2-extras\/pull\/1)\n"},"2.0.1":{"date":"04\/27\/2019","content":"1. [](#new)\n    * Added Twitch Provider\n"},"2.0.0":{"date":" 04\/26\/2019","content":"1. [](#new)\n    * ChangeLog started..."}}},"backtotop":{"name":"Back to Top","version":"0.6.3","description":"This grav plugin displays a &#34;Back to Top&#34; link at the end of every section, so the reader can jump back up to the table of contents. The plugin integrates the js lib &#34;Return to Top Arrow&#34; by [rdallaire](https:\/\/codepen.io\/rdallaire\/pen\/apoyx).","description_html":"<p>This grav plugin displays a &#34;Back to Top&#34; link at the end of every section, so the reader can jump back up to the table of contents. The plugin integrates the js lib &#34;Return to Top Arrow&#34; by <a href=\"https:\/\/codepen.io\/rdallaire\/pen\/apoyx\">rdallaire<\/a>.<\/p>","description_plain":"This grav plugin displays a &#34;Back to Top&#34; link at the end of every section, so the reader can jump back up to the table of contents. The plugin integrates the js lib &#34;Return to Top Arrow&#34; by rdallaire.","icon":"chevron-circle-up","author":{"name":"Marco Segato"},"homepage":"https:\/\/github.com\/marcosegato\/grav-plugin-backtotop","docs":"https:\/\/github.com\/marcosegato\/grav-plugin-backtotop\/blob\/master\/README.md","keywords":"grav, plugin, back, return, top, link","bugs":"https:\/\/github.com\/marcosegato\/grav-plugin-backtotop\/issues","license":"MIT","tag_name":"v0.6.3","date":"2022-12-08T15:13:03Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/backtotop\/0.6.3","repository":"https:\/\/github.com\/marcosegato\/grav-plugin-backtotop","slug":"backtotop","install_path":"user\/plugins\/backtotop","content_sha256":"5b71dd45c3811f6b8d309ae682661a8a729e524639ad2a0a436af5d735f48dc5","changelog":{"0.6.3":{"date":" 12\/08\/2022","content":"1. [](#improved)\n    * Accessibility improved with title attribute [#8](https:\/\/github.com\/marcosegato\/grav-plugin-backtotop\/issues\/8), thanks to [@awrog](https:\/\/github.com\/awrog)!\n"},"0.6.2":{"date":" 12\/04\/2022","content":"1. [](#improved)\n    * Feature made accessible to screen readers [#7](https:\/\/github.com\/marcosegato\/grav-plugin-backtotop\/issues\/7), thanks to [@zamentur](https:\/\/github.com\/zamentur)!\n"},"0.6.1":{"date":" 01\/28\/2021","content":"1. [](#bugfix)\n    * Font Awesome fonts added to the package [#4](https:\/\/github.com\/marcosegato\/grav-plugin-backtotop\/issues\/4)\n"},"0.6.0":{"date":" 10\/27\/2019","content":"1. [](#improved)\n    * Add option to display button's icons as FontAwesome or SVG images\n    * Add option to include Font Awesome library if your theme does not include it\n"},"0.5.2":{"date":" 10\/13\/2019","content":"1. [](#bugfix)\n    * Fix release version\n"},"0.5.1":{"date":" 10\/13\/2019","content":"1. [](#bugfix)\n    * Reliance on Font Awesome removed [#1](https:\/\/github.com\/marcosegato\/grav-plugin-backtotop\/issues\/1)\n"},"0.5.0":{"date":" 04\/20\/2019","content":"1. [](#new)\n    * First public release"}},"dependencies":[]},"icalendar":{"name":"Icalendar","version":"0.2.3","description":"Reads ICS Files and shows Events from it","description_html":"<p>Reads ICS Files and shows Events from it<\/p>","description_plain":"Reads ICS Files and shows Events from it","icon":"calendar","author":{"name":"Werner Joss","email":"werner@hoernerfranzracing.de"},"homepage":"https:\/\/github.com\/wernerjoss\/grav-plugin-icalendar","docs":"https:\/\/github.com\/wernerjoss\/grav-plugin-icalendar\/blob\/master\/README.md","keywords":"grav, plugin, ICS, Icalendar","bugs":"https:\/\/github.com\/wernerjoss\/grav-plugin-icalendar\/issues","license":"MIT","tag_name":"0.2.4","date":"2019-07-10T06:11:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/icalendar\/0.2.3","repository":"https:\/\/github.com\/wernerjoss\/grav-plugin-icalendar","slug":"icalendar","install_path":"user\/plugins\/icalendar","content_sha256":"a38b44860469bf6c685e2434834d50fa98dce7a68d2fe8846afa7e9b53596ae4","changelog":{"0.2.3":{"date":" 07\/08\/2019","content":"1. [](#new)\n    * added Date Format Config Variable\n"},"0.2.2":{"date":" 05\/04\/2019","content":"1. [](#bugfix)\n    * fixed Links in blueprints.yaml, removed unused Subdirectorys from om\\icalparser\n   "},"0.2.1":{"date":" 04\/25\/2019","content":"1. [](#bugfix)\n    * removed om\\icalparser dependency from blueprints.yaml as patched version already included\n   "},"0.2.0":{"date":" 04\/20\/2019","content":"1. [](#new)\n    * added patched Version of om\\icalparser to Project\n"},"0.1.0":{"date":" 04\/05\/2019","content":"1. [](#new)\n    * Initial commit, ChangeLog started..."}},"dependencies":[]},"prism-highlight":{"name":"Prism Highlight","version":"3.0.1","description":"This plugin provides code highlighting functionality via the [Prism.js](http:\/\/prismjs.com\/) syntax highlighter with lots of themes and plugins.","description_html":"<p>This plugin provides code highlighting functionality via the <a href=\"http:\/\/prismjs.com\/\">Prism.js<\/a> syntax highlighter with lots of themes and plugins.<\/p>","description_plain":"This plugin provides code highlighting functionality via the Prism.js syntax highlighter with lots of themes and plugins.","icon":"code","author":{"name":"Trilby Media","url":"https:\/\/trilby.media","email":"hello@trilby.media"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-prism-highlight","keywords":"highlight, plugin, code, prism.js","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-prism-highlight\/issues","license":"MIT","tag_name":"3.0.1","date":"2026-05-05T14:12:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/prism-highlight\/3.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-prism-highlight","slug":"prism-highlight","install_path":"user\/plugins\/prism-highlight","content_sha256":"c92fbfe221f632b889b966ddd7779a3ed1585e5f23e877cef114b82f3ce9844f","changelog":{"3.0.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"3.0.0":{"date":"08\/23\/2022","content":"1. [](#new)\n    * Added support for custom-built JS, CSS, and Theme files\n    * Instructions on how to modify\/build\/use custom-built JS and CSS files\n    * Upgraded to latest PrismJS `1.29.0`\n    * Added 7 new themes: `gruvbox-light`, `holi-theme`, `laserwave`, `one-dark`, `one-light`, `soloarized-dark-atom`, and `z-touch`\n    * Changed default theme to `prism-one-light.css`\n"},"2.0.6":{"date":"02\/22\/2022","content":"1. [](#bugfix)\n    * Fixed issue with Twig templating\n    "},"2.0.5":{"date":"02\/18\/2022","content":"1. [](#bugfix)\n   * Fixed bad page header tag `prism:` should be `prism-highlight:`\n"},"2.0.4":{"date":"01\/27\/2022","content":"1. [](#new)\n   * Added `bbcode`\/`shortcode` language, compatible with Grav's Shortcodes plugin\n "},"2.0.3":{"date":"01\/26\/2022","content":"1. [](#improved)\n    * Upgraded to latest 1.26.0 Prism.JS version (with fixes)\n    * Added `C`, `C#`, and `C++` languages\n"},"2.0.2":{"date":"11\/23\/2021","content":"1. [](#bugfix)\n   * Fixed a CSS issue causing \"Copy\" button to have double styling\n   * Fixed a security issue that allowed the `git` param of shortcode to load local files (thanks xmco.fr)\n"},"2.0.1":{"date":"05\/28\/2021","content":"1. [](#new)\n    * Added support for `cl-filter-output` and provided examples in the README.md\n    * Added 35 new themes\n    * Added support for custom `EcScript`  \n"},"2.0.0":{"date":"02\/23\/2021","content":"1. [](#new)\n    * Added Support for Git URLs to grab and embed git files\n    * Support for `linkable-line-numbers` but does require a unique `id` to be set on the element.\n1. [](#improved)\n    * Upgraded to latest 1.23.0 Prism.JS version (with fixes)\n"},"1.0.2":{"date":"06\/22\/2019","content":"1. [](#bugfix)\n    * Removed xdebug statement\n"},"1.0.1":{"date":"06\/20\/2019","content":"1. [](#improved)\n    * Moved away from jQuery syntax and converted to VanillaJS\n    * Fixed typos\n    * Added extra syntax highlighting format\n"},"1.0.0":{"date":"04\/16\/2019","content":"1. [](#new)\n    * Initial Version"}},"dependencies":[]},"deferred-instagram":{"name":"Deferred Instagram","version":"1.0.0","description":"Makes an API call to Instagram after page was loaded and then dynamically loads the conent.","description_html":"<p>Makes an API call to Instagram after page was loaded and then dynamically loads the conent.<\/p>","description_plain":"Makes an API call to Instagram after page was loaded and then dynamically loads the conent.","icon":"instagram","author":{"name":"Bartosz Jab\u0142o\u0144ski | Code in the Cup","email":"bjablonski@codeinthecup.pl"},"dependencies":[{"name":"instagram"}],"homepage":"https:\/\/github.com\/thewunsz\/grav-plugin-deferred-instagram","docs":"https:\/\/github.com\/thewunsz\/grav-plugin-deferred-instagram\/blob\/develop\/README.md","keywords":"instagram, deferred, js, ajax, api","bugs":"https:\/\/github.com\/thewunsz\/grav-plugin-deferred-instagram\/issues","license":"MIT","tag_name":"1.0.0","date":"2019-04-14T22:50:19+02:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/deferred-instagram\/1.0.0","repository":"https:\/\/github.com\/Wunsz\/grav-plugin-deferred-instagram","slug":"deferred-instagram","install_path":"user\/plugins\/deferred-instagram","content_sha256":"bd0db82d60f9a5f8964eeadf70cc0e8b8da594c7da21b779a36454d4cd92ee56","changelog":{"1.0.0":{"date":" 04\/14\/2019","content":"1. [](#new)\n    * Added main functionality of the plugin"}}},"antispam":{"name":"Antispam","version":"1.5.9","description":"Automatic obfuscation of plain text email addresses in Grav pages.","description_html":"<p>Automatic obfuscation of plain text email addresses in Grav pages.<\/p>","description_plain":"Automatic obfuscation of plain text email addresses in Grav pages.","icon":"at","author":{"name":"Netzhexe.de","email":"ak@netzhexe.de"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/skinofthesoul\/grav-plugin-antispam","docs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-antispam\/blob\/master\/README.md","keywords":"grav, plugin, spam protection, email obfuscation","bugs":"https:\/\/github.com\/skinofthesoul\/grav-plugin-antispam\/issues","license":"MIT","tag_name":"v1.5.9","date":"2026-06-18T13:10:36Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/antispam\/1.5.9","repository":"https:\/\/github.com\/skinofthesoul\/grav-plugin-antispam","slug":"antispam","install_path":"user\/plugins\/antispam","content_sha256":"840b7d6cd1bd366fefa53ea28798e10abc81001d48fb16a6d42715d155573643","changelog":{"1.5.9":{"date":" 17-06-2026","content":"1. [](#bugfix)\n    * bumped version number in blueprint\n"},"1.5.8":{"date":" 17-06-2026","content":"1. [](#new)\n    * indication of compatibility with Grav 1.7 and 2.0\n"},"1.5.7":{"date":" 12-01-2023","content":"1. [](#improved)\n    * attributes like class can be passed via query parameter now (thanks @aricooperdavis!)\n"},"1.5.6":{"date":" 02-09-2022","content":"1. [](#bugfix)\n    * long top level domains like .solutions also work now\n"},"1.5.5":{"date":" 23-07-2022","content":"1. [](#improved)\n    * type and language attributes removed from script output\n"},"1.5.4":{"date":" 21-07-2022","content":"1. [](#bugfix)\n    * parameters in mailto links can now contain urls\n"},"1.5.3":{"date":" 24-06-2022","content":"1. [](#bugfix)\n    * parameters in mailto links are now possible (e.g. ?subject=something&body=anotherthing)\n"},"1.5.2":{"date":" 10-07-2021","content":"1. [](#improved)\n    * new option in settings to add encryption on output (without caching), to avoid conflict with other output-altering plugins such as Automagic Images\n"},"1.5.1":{"date":" 25-05-2021","content":"1. [](#improved)\n    * changed code to add encryption before caching, not on output\n    * removed mention of an old bug that has since been fixed from README\n"},"1.5":{"date":" 16-03-2021","content":"1. [](#bugfix)\n    * fixed output of mailto links with title tags\n    * added default settings for target (thanks @JohnWalkerx!)\n"},"1.4.2":{"date":" 13-02-2021","content":"1. [](#improved)\n    * added option in plugin settings to set target=\"\\_blank\" on mailto links\n"},"1.4.1":{"date":" 24-11-2020","content":"1. [](#bugfix)\n    * changed curly braces to square ones for accessing array items since that notation is deprecated as of PHP 7.4\n"},"1.4":{"date":" 13-07-2020","content":"1. [](#bugfix)\n    * email addresses wrapped in mailto: tags now get properly encrypted in the linked text as well\n"},"1.3":{"date":" 26-12-2019","content":"1. [](#new)\n    * you can now wrap images in a mailto link and these will also get encrypted; please refer to the README for caveats\n1. [](#bugfix)\n    * the bug where every other noscript text was getting vanished when javascript was disabled seems to have gone away now\n"},"1.2.6":{"date":" 28-11-2019","content":"1. [](#improved)\n    * the plugin can now be disabled for individual pages\n    * README.md updated to reflect this change\n"},"1.2.5":{"date":" 17-09-2019","content":"1. [](#improved)\n    * existing mailto links are now converted properly too (fixes a compatibility issue with the flex-directory plugin)\n    * README.md updated to reflect this change\n"},"1.2.4":{"date":" 02-08-2019","content":"1. [](#bugfix)\n    * fixed link to README in `blueprints.yaml`\n"},"1.2.3":{"date":" 18-07-2019","content":"1. [](#improved)\n    * took out html comment tags around the inline javascript to fix a [compatibility issue](https:\/\/github.com\/skinofthesoul\/grav-plugin-antispam\/issues\/3) with the [minifyHTML](https:\/\/github.com\/jimblue\/grav-plugin-minify-html) plugin\n"},"1.2.2":{"date":" 02-07-2019","content":"1. [](#bugfix)\n    * bumped the version number in `blueprints.yaml`\n"},"1.2.1":{"date":" 01-07-2019","content":"1. [](#improved)\n    * modified regex again to only exclude domains that consist of only a digit followed by an x\n"}},"dependencies":[]},"leaflet-address":{"name":"Leaflet Address","version":"1.0.5","description":"With the Leaflet address plugin you can easily show an address as text and on a leaflet map.","description_html":"<p>With the Leaflet address plugin you can easily show an address as text and on a leaflet map.<\/p>","description_plain":"With the Leaflet address plugin you can easily show an address as text and on a leaflet map.","icon":"map","author":{"name":"Fabian Dennler","email":"fd@fabforge.ch"},"dependencies":[{"name":"grav","version":">=1.5.0"}],"homepage":"https:\/\/github.com\/foxfabi\/grav-plugin-leaflet-address","docs":"https:\/\/github.com\/foxfabi\/grav-plugin-leaflet-address\/blob\/master\/README.md","keywords":"grav, plugin, leaflet, map, address","bugs":"https:\/\/github.com\/foxfabi\/grav-plugin-leaflet-address\/issues","license":"MIT","tag_name":"1.0.6","date":"2022-05-03T12:15:21Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/leaflet-address\/1.0.5","repository":"https:\/\/github.com\/foxfabi\/grav-plugin-leaflet-address","slug":"leaflet-address","install_path":"user\/plugins\/leaflet-address","content_sha256":"87164ebec707a18fab502b34631bf772ba590454f39b0147d89296b777a22709","changelog":{"1.0.6":{"date":"05\/03\/2022","content":"1. [](#bugfix)\n    * Updated photon API URL\n"},"1.0.5":{"date":"04\/24\/2019","content":"1. [](#new)\n    * Added translation (IT)\n1. [](#bugfix)\n    * Seems onAdminTwigTemplatePaths does not work anymore\n    * Removed dump on plugin config page (admin)\n"},"1.0.4":{"date":"04\/22\/2019","content":"1. [](#bugfix)\n    * Grav 1.6 YAML has stricter parsing\n    * Removed commented out code\n"},"1.0.3":{"date":"04\/22\/2019","content":"1. [](#new)\n    * Limit zoom to map provider max zoom\n1. [](#bugfix)\n    * I didn't updated the version number in blueprints.yaml :\/\n    * Link to [README.md](README.md) now points to master branch\n    * Removed footnotes to comply with changelog format\n    * Meets the rules of markdownlint MD022, MD006, MD032, MD040\n"},"1.0.2":{"date":"04\/15\/2019","content":"1. [](#bugfix)\n    * Wrong comparison link in the changelog\n"},"1.0.1":{"date":"04\/15\/2019","content":"1. [](#new)\n   * Added translations (EN, DE)\n   * Added many map providers\n   * Fullfill OSM requirement _fixthemap_\n1. [](#improved)\n   * Missing Leaflet-providers, OpenStreetMap and map providers in credits\n   * Default marker icon is red\n"},"0.1.3":{"date":"04\/14\/2019","content":"1. [](#new)\n   * Separated the map from address twig template\n   * Added a shortcode `[place]` with argument `type=map` or `type=addr` ([#2433: Suggestion from Andy Miller @rhukster](https:\/\/github.com\/getgrav\/grav\/issues\/2433#issuecomment-481479209))\n1. [](#improved)\n   * Backend also use configured icon\n   * Added description to configure plugin using the Administration Panel\n   * Replaced empty default configuration with a sample configuration\n   * Added grav 1.5 dependency because I don't know the older one :)\n   * Simplified onPluginsInitialized event\n1. [](#bugfix)\n   * Backend didn't know about config\n   * Removed debugging lines\n"},"0.1.2":{"date":" 04\/05\/2019","content":"1. [](#new)\n    * First github release\n"},"0.1.0":{"date":" 04\/03\/2019","content":"1. [](#new)\n    * ChangeLog started..."}}},"markdown-underline":{"name":"Markdown Underline","version":"1.0.0","description":"Override the HTML tags generated by inline `*`, `**`, `_` and `__`.\nThe plugin defaults `__` to `u` for example to yield underlined text.\n","description_html":"<p>Override the HTML tags generated by inline <code>*<\/code>, <code>**<\/code>, <code>_<\/code> and <code>__<\/code>.\nThe plugin defaults <code>__<\/code> to <code>u<\/code> for example to yield underlined text.<\/p>","description_plain":"Override the HTML tags generated by inline *, **, _ and __.\nThe plugin defaults __ to u for example to yield underlined text.","icon":"underline","author":{"name":"Antoine Goutenoir","email":"antoine@goutenoir.com"},"homepage":"https:\/\/github.com\/Goutte\/grav-plugin-markdown-underline","docs":"https:\/\/github.com\/Goutte\/grav-plugin-markdown-underline\/blob\/develop\/README.md","demo":"https:\/\/courses.m3p2.ljbac.com","keywords":"grav, plugin, markdown, underline, override, inline, block","bugs":"https:\/\/github.com\/Goutte\/grav-plugin-markdown-underline\/issues","license":"MIT","tag_name":"1.0.0","date":"2019-03-21T04:27:18+01:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-underline\/1.0.0","repository":"https:\/\/github.com\/Goutte\/grav-plugin-markdown-underline","slug":"markdown-underline","install_path":"user\/plugins\/markdown-underline","content_sha256":"200bee67fab84283815170925e0046887eaf0449e574489d68b2f28b7e79cdc6","changelog":{"0.1.0":{"date":"03\/20\/2019","content":"1. [](#new)\n    * Convert double underscore inline blocks to underline.\n    * Allow override of the 4 basic inline blocks.\n    * Allow per-page override of the configuration"}},"dependencies":[]},"editable-contenttools":{"name":"Editable with ContentTools","version":"1.6.3","description":"A Frontend WYSIWYG Editor using ContentTools","description_html":"<p>A Frontend WYSIWYG Editor using ContentTools<\/p>","description_plain":"A Frontend WYSIWYG Editor using ContentTools","icon":"edit","author":{"name":"bleutzinn","email":"bleutzinn@rwgc.nl"},"dependencies":[{"name":"login","version":"*"}],"homepage":"https:\/\/github.com\/bleutzinn\/grav-plugin-editable-contenttools","demo":"https:\/\/festeto.net\/demo-grav-plugin-editable-contenttools\/","keywords":"grav, plugin, editor, wysiwyg, markdown, frontend","bugs":"https:\/\/github.com\/bleutzinn\/grav-plugin-editable-contenttools\/issues","license":"MIT","tag_name":"v1.6.3","date":"2022-03-31T18:09:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/editable-contenttools\/1.6.3","repository":"https:\/\/github.com\/bleutzinn\/grav-plugin-editable-contenttools","slug":"editable-contenttools","install_path":"user\/plugins\/editable-contenttools","content_sha256":"85ade642a548da49efe83ce4c5bc944dd17512fd4556ae7c5a34d1cd2cd39f0d","changelog":{"1.6.3":{"date":" 31\/03\/2022","content":"1. [](#bugfix)\n    * Fixed an invalid path to the editor.js file when open_basedir restriction is in effect (issue [https:\/\/github.com\/bleutzinn\/grav-plugin-editable-contenttools\/issues\/12](#12)), thanks to [https:\/\/github.com\/k-512](k512) for reporting.\n"},"1.6.2":{"date":" 01\/11\/2021","content":"1. [](#bugfix)\n    * Corrected version number in blueprints.yaml\n    "},"1.6.1":{"date":" 01\/10\/2021","content":"1. [](#bugfix)\n    * Fixed a minor code glitch\n1. [](#improved)\n    * Updated ReadMe to show compatibility with Grav version 1.7\n"},"1.6.0":{"date":" 01\/10\/2021","content":"1. [](#bugfix)\n    * Fixed a problem with saving when installed in a subdirectory\n1. [](#improved)\n    * Switched to using CDN for external libraries\n    "},"1.5.0":{"date":" 03\/02\/2019","content":"1. [](#new)\n    * Multi language support\n1. [](#improved)\n    * Added Login plugin as a plugin dependency\n    * Removed dependency of theme bottom block for plugin Javascript code\n"},"1.4.7":{"date":" 02\/25\/2019","content":"1. [](#new)\n    * First official public release\n1. [](#improved)\n    * Improved the removal of 'anonymous' editable tags prior to displaying a page\n"},"1.4.6-beta1":{"date":" 02\/17\/2019","content":"1. [](#new)\n    * First public Beta release\n1. [](#improved)\n    * Small non functional changes\n"},"1.4.5":{"date":" 02\/15\/2019","content":"1. [](#improved)\n    * Optimized shortcode processing\n    * Disabled the inspector widget\n    "},"1.4.4":{"date":" 02\/15\/2019","content":"1. [](#new)\n    * The ContentTools inspector widget is now hidden\n1. [](#improved)\n    * Improved page recaching\n    "},"1.4.3":{"date":" 02\/14\/2019","content":"1. [](#new)\n    * The ContentTools inspector widget is now hidden\n1. [](#improved)\n    * Improved page recaching\n"},"1.4.2":{"date":" 02\/13\/2019","content":"1. [](#improved)\n    * Added call to Page::content() to force editor initialization on first page load\n    * Placed editor initialization JS code into DOMContentLoaded event\n"},"1.4.1":{"date":" 02\/13\/2019","content":"1. [](#improved)\n    * Fixed permanent presence of shortcodes in page\n"},"1.4.0":{"date":" 02\/12\/2019","content":"1. [](#improved)\n    * Removed dependency upon Shortcode Core plugin\n"},"1.3.1":{"date":" 02\/09\/2019","content":"1. [](#improved)\n    * Reduced available ContentTools tools\n"},"1.3.0":{"date":" 02\/08\/2019","content":"1. [](#added)\n    * Added auto naming of editable shortcodes\n"},"1.2.1":{"date":" 02\/07\/2019","content":"1. [](#improved)\n    * Improved server OS detection\n    * Fixed typo in configuration\n    * Changed CDN resource to local\n"},"1.2.0":{"date":" 02\/07\/2019","content":"1. [](#added)\n    * Added option to do a Git Sync in fore or background\n"},"1.1.0":{"date":" 02\/06\/2019","content":"1. [](#added)\n    * Git Sync support\n"},"1.0.0":{"date":" 02\/02\/2019","content":"1. [](#improved)\n    * Code optimized\n    * Removed edit permissions per user\/group\n"},"0.1.0":{"date":" 01\/25\/2019","content":"1. [](#new)\n    * ChangeLog started..."}}},"smart-banner":{"name":"Smart Banner","version":"1.0.0","description":"A quick and simple way to add Apple&#39;s Smart Banners for iOS apps to your Grav website.","description_html":"<p>A quick and simple way to add Apple&#39;s Smart Banners for iOS apps to your Grav website.<\/p>","description_plain":"A quick and simple way to add Apple&#39;s Smart Banners for iOS apps to your Grav website.","icon":"adn","author":{"name":"Craig Phillips","email":"support@craigphillips.biz"},"homepage":"https:\/\/github.com\/cppl\/grav-plugin-smart-banner","docs":"https:\/\/github.com\/cppl\/grav-plugin-smart-banner\/blob\/develop\/README.md","demo":"https:\/\/sunrisetimes.app","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/cppl\/grav-plugin-smart-banner\/issues","license":"MIT","tag_name":"1.0.0","date":"2019-01-15T04:19:38Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/smart-banner\/1.0.0","repository":"https:\/\/github.com\/CPPL\/grav-plugin-smart-banner","slug":"smart-banner","install_path":"user\/plugins\/smart-banner","content_sha256":"99fba2b3d8250f152f6a9a9fee578a55e4fed721a87979bc14b15208a03b49ae","changelog":{"1.0.0":{"date":" 01\/15\/2019","content":"1. [](#new)\n    * First public release\n    * Smart Banner functionality implemented\n"},"0.1.0":{"date":" 01\/13\/2019","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"presentation-deckset":{"name":"Presentation Deckset","version":"1.3.4","description":"Use Deckset Syntax with the Presentation-plugin","description_html":"<p>Use Deckset Syntax with the Presentation-plugin<\/p>","description_plain":"Use Deckset Syntax with the Presentation-plugin","icon":"plug","author":{"name":"Ole Vik","email":"git@olevik.net"},"dependencies":[{"name":"grav","version":">=1.6"},{"name":"presentation","version":">=3.0.0"}],"homepage":"https:\/\/github.com\/OleVik\/grav-plugin-presentation-deckset","docs":"https:\/\/github.com\/OleVik\/grav-plugin-presentation-deckset\/blob\/master\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/OleVik\/grav-plugin-presentation-deckset\/issues","license":"MIT","tag_name":"v1.3.4","date":"2019-12-20T22:13:51Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/presentation-deckset\/1.3.4","repository":"https:\/\/github.com\/OleVik\/grav-plugin-presentation-deckset","slug":"presentation-deckset","install_path":"user\/plugins\/presentation-deckset","content_sha256":"d7805e2c3e1a223653f2fff2296144dd0d08bb0db83d7c2565bf444cc4c661ef","changelog":{"1.3.4":{"date":"20-12-2019","content":"1. [](#bugfix)\n   - Revert v1.3.3, add in simpler checks\n2. [](#new)\n   - Bump Presentation-version dependency\n"},"1.3.3":{"date":"20-12-2019","content":"1. [](#new)\n   - Stable release of v1.3.2-beta.1\n"},"1.3.2-beta.1":{"date":"20-12-2019","content":"1. [](#bugfix)\n   - Test whether parent exists\n"},"1.3.1":{"date":"10-06-2019","content":"1. [](#bugfix)\n   - API-interface alignment\n"},"1.3.0":{"date":"10-06-2019","content":"1. [](#new)\n   - API-alignment with parent\n   - Change \/API to \/classes\n2. [](#improved)\n   - Remove Admin dependency\n"},"1.2.3":{"date":"05-06-2019","content":"1. [](#new)\n   - Handle Notes\n"},"1.2.2":{"date":"03-06-2019","content":"1. [](#improved)\n   - GPM fix\n"},"1.2.1":{"date":"31-05-2019","content":"1. [](#improved)\n   - Properties placeholder to align with API\n"},"1.2.0":{"date":"19-04-2019","content":"1. [](#improved)\n   - Image parsing\n   - Image backgrounds are now all contained within slide\n"},"1.1.4":{"date":"23-02-2019","content":"1. [](#improved)\n   - Blueprints\n"},"1.1.3":{"date":"13-02-2019","content":"1. [](#improved)\n   - Add support for Aria-attributes and role\n"},"1.1.2":{"date":"21-01-2019","content":"1. [](#improved)\n   - REGEX_IMG\n"},"1.1.1":{"date":"20-01-2019","content":"1. [](#bugfix)\n   - REGEX_WORDS\n   - REGEX_IMG\n   - Background Media handling\n"},"1.1.0":{"date":"14-01-2019","content":"1. [](#new)\n   - First stable release\n"},"1.1.0-beta.1":{"date":"14-01-2019","content":"1. [](#improved)\n   - README\n2. [](#new)\n   - API-expansion\n"},"1.0.0-beta.1":{"date":"08-01-2019","content":"1. [](#new)\n   - Initial release"}}},"presentation":{"name":"Presentation","version":"4.0.3","description":"Responsive navigational slideshows with Reveal.js","description_html":"<p>Responsive navigational slideshows with Reveal.js<\/p>","description_plain":"Responsive navigational slideshows with Reveal.js","icon":"arrows-alt","author":{"name":"Ole Vik","email":"git@olevik.net"},"dependencies":[{"name":"grav","version":">=1.7"}],"homepage":"https:\/\/github.com\/OleVik\/grav-plugin-presentation\/","docs":"https:\/\/github.com\/OleVik\/grav-plugin-presentation\/blob\/master\/README.md","demo":"https:\/\/olevik.me\/staging\/grav-skeleton-presentation\/","keywords":"presentation, fullscreen, slides, slideshow, reveal.js","bugs":"https:\/\/github.com\/OleVik\/grav-plugin-presentation\/issues","license":"MIT","tag_name":"v4.0.3","date":"2021-04-10T08:24:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/presentation\/4.0.3","repository":"https:\/\/github.com\/OleVik\/grav-plugin-presentation","slug":"presentation","install_path":"user\/plugins\/presentation","content_sha256":"3299ca2763dc85fb0396487945784a8b3c0e25796f74c93064464efb62107548","changelog":{"4.0.3":{"date":"10-04-2021","content":"1. [](#improved)\n   - More theme-select redundancy\n"},"4.0.2":{"date":"20-01-2021","content":"1. [](#improved)\n   - Theme-select redundancy\n"},"4.0.1":{"date":"19-07-2020","content":"1. [](#bugfix)\n   - Language-string for advanced options\n"},"4.0.0":{"date":"15-07-2020","content":"1. [](#new)\n   - Stable release of 4.0.0\n"},"4.0.0-beta.2":{"date":"15-07-2020","content":"1. [](#improved)\n   - Twig-extensions namespacing\n"},"4.0.0-beta.1":{"date":"12-07-2020","content":"1. [](#bugfix)\n   - Re-processing content with Parsedown broke slides\n2. [](#new)\n   - `process`-option\n"},"3.1.4-beta.1":{"date":"12-07-2020","content":"1. [](#bugfix)\n   - Flexibility in declaring styles from config and FrontMatter\n   - Reinstate `reveal_init` initialization\n2. [](#improved)\n   - Stricter type-checking on styles\n"},"3.1.3":{"date":"23-05-2020","content":"1. [](#bugfix)\n   - Fix transport for styles\n"},"3.1.2":{"date":"10-02-2020","content":"1. [](#bugfix)\n   - Reduce reliance on config()\n"},"3.1.1":{"date":"09-02-2020","content":"1. [](#bugfix)\n   - Handle null-values saved by Admin\n"},"3.1.0":{"date":"09-02-2020","content":"1. [](#new)\n   - Enable ParsedownExtra when set in system.yaml\n2. [](#bugfix)\n   - Variable in blueprints.yaml and languages.yaml\n"},"3.0.2":{"date":"01-10-2019","content":"1. [](#bugfix)\n   - Testing-parameter is useless, let me have Semantic Versioning!\n"},"3.0.1":{"date":"01-10-2019","content":"1. [](#new)\n   - Release 3.0.1\n"},"3.0.0-beta.1":{"date":"15-09-2019","content":"1. [](#improved)\n   - Align content processing with Shortcode Core (https:\/\/github.com\/getgrav\/grav-plugin-shortcode-core\/issues\/75#issuecomment-531596152)\n"},"2.1.0":{"date":"09-08-2019","content":"1. [](#improved)\n   - Defer assets loading (#11)\n   - README\n   - Blueprints\n"},"2.0.3":{"date":"17-07-2019","content":"1. [](#bugfix)\n   - Blank value fallback in shortcode-processing\n"},"2.0.2":{"date":"22-06-2019","content":"1. [](#improved)\n   - Cache-manipulation\n   - Config-retrieval\n"},"2.0.1":{"date":"10-06-2019","content":"1. [](#bugfix)\n   - API-interface alignment\n"},"2.0.0":{"date":"10-06-2019","content":"1. [](#new)\n   - Backward-incompatible API-changes\n   - Simplified shortcode-processing\n2. [](#improved)\n   - Prevent Twig-caching\n   - Fragment-parsing\n   - Shortcode-handling through Transport\n   - Styles-handling through Parser\n   - API-selection in blueprints\n   - Default textsizing-scale and breakpoint-check\n3. [](#bugfix)\n   - Data-shortcode handling\n"},"1.7.4":{"date":"03-06-2019","content":"1. [](#new)\n   - Trim quotes in iframe-shortcode\n"}}},"cadphp":{"name":"Cadphp","version":"1","description":"Include PHP simply inside Grav CMS","description_html":"<p>Include PHP simply inside Grav CMS<\/p>","description_plain":"Include PHP simply inside Grav CMS","icon":"plug","author":{"name":"CaDJoU","email":"cadjou@gmail.com"},"homepage":"https:\/\/github.com\/cadjou\/grav-plugin-cadphp","docs":"https:\/\/github.com\/cadjou\/grav-plugin-cadphp\/blob\/master\/README.md","keywords":"grav, php, plugin, markdown","bugs":"https:\/\/github.com\/cadjou\/grav-plugin-cadphp\/issues","license":"MIT","tag_name":"V1.0.2","date":"2019-01-21T15:28:05Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cadphp\/1","repository":"https:\/\/github.com\/cadjou\/grav-plugin-cadphp","slug":"cadphp","install_path":"user\/plugins\/cadphp","content_sha256":"29f0aabe946ed2a967f2bc4f879d2c283b238823d5f7a98b85c3194ebeebf8f4","changelog":{"1.0.2\r":{"date":"21\/01\/2019\r","content":"1. [Change](#Change)\r\n    * Add comment to Cadphp class\r\n\t* Remove Variables Type for PHP 5.6.4 compatibily Issue #1\r\n\n\r"},"1.0.1\r":{"date":"23\/12\/2018\r","content":"1. [New](#new)\r\n    * Creation of the App\r\n\t "}},"dependencies":[]},"custom-js":{"name":"Custom JS","version":"0.1.0","description":"Adds some custom JavaScript to your Grav site","description_html":"<p>Adds some custom JavaScript to your Grav site<\/p>","description_plain":"Adds some custom JavaScript to your Grav site","icon":"plug","author":{"name":"Dmitry Yakovlev","email":"web-dimayakovlev@outlook.com"},"homepage":"https:\/\/github.com\/dimayakovlev\/grav-plugin-custom-js","docs":"https:\/\/github.com\/dimayakovlev\/grav-plugin-custom-js\/blob\/develop\/README.md","keywords":"grav, plugin, javascript, assets","bugs":"https:\/\/github.com\/dimayakovlev\/grav-plugin-custom-js\/issues","license":"MIT","tag_name":"v0.1.0","date":"2018-12-18T15:35:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/custom-js\/0.1.0","repository":"https:\/\/github.com\/dimayakovlev\/grav-plugin-custom-js","slug":"custom-js","install_path":"user\/plugins\/custom-js","content_sha256":"c03f40d41bd1d6806f55784e0fa6b814e720f33f45939952cb58b058ee17ee47","changelog":{"0.1.0":{"date":" 12\/18\/2018","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"views":{"name":"Views","version":"1.3.3","description":"Simple View tracking and reporting","description_html":"<p>Simple View tracking and reporting<\/p>","description_plain":"Simple View tracking and reporting","icon":"eye","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0-rc.13"},{"name":"database","version":">=1.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-views","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-views\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, views","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-views\/issues","license":"MIT","tag_name":"1.3.3","date":"2026-07-16T16:40:33Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/views\/1.3.3","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-views","slug":"views","install_path":"user\/plugins\/views","content_sha256":"382d96474d0cc2941943e80bb95ba3193d353dcb4b80c79efe00a4c502b23f01","changelog":{"1.3.3":{"date":"06\/19\/2026","content":"1. [](#bugfix)\n    * Skipped tracking when manual or Twig calls pass an empty view ID\n"},"1.3.2":{"date":"06\/18\/2026","content":"1. [](#bugfix)\n    * Skipped automatic page-view tracking when generated or plugin pages do not expose a real route\n"},"1.3.1":{"date":"06\/12\/2026","content":"1. [](#bugfix)\n    * Fixed PostgreSQL tracking upserts by qualifying the existing `count` column in `ON CONFLICT` updates\n"},"1.3.0":{"date":"06\/11\/2026","content":"1. [](#new)\n    * Added **Admin2** integration: a `Grav Views` report and an optional top pages dashboard widget via the API plugin events\n    * Added support for **Database plugin named connections** (e.g. PostgreSQL) alongside the default file-based SQLite database\n    * Added `tracking.humans_only` option to skip automatic tracking of bots \/ non-trackable requests\n2. [](#improved)\n    * Made tracking and listing queries portable across SQLite and PostgreSQL (upsert parameter binding, no negative `LIMIT`)\n    * The Admin2 dashboard widget now reads from a dedicated lightweight `\/views\/top-pages` API endpoint instead of the heavyweight `\/reports` endpoint, which ran a full-site XSS scan on every dashboard load\n"},"1.2.0":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Folded in pending working-tree changes (vendor refresh \/ minor PHP 8 modernization)\n"},"1.1.0":{"date":"12\/02\/2020","content":"1. [](#new)\n    * Require Grav 1.7\n    * Code cleanup\n    * Pass `phpstan` tests\n    * Added `select` method that allows you to perform custom SELECT queries\n    * Remove `admin.css` as it's no longer needed\n1. [](#bugfix)\n    * Fixed default `limit` for `getAll` from `0` to `-1` in order to actually return all items\n    * Fix CLI commands to use new format\n"},"1.0.1":{"date":"12\/09\/2018","content":"1. [](#new)\n    * Added a new `type` column to support multiple view types concurrently\n    * Updated README.md\n"},"1.0.0":{"date":"12\/08\/2018","content":"1. [](#new)\n    * Added support for CLI\n    * Allow `{{ track_views(object) }}` format if object can be casted to string containing a key\n    * Make `{{ track_views(object) }}` HTML safe, allowing it to be used without `|raw` filter\n    * Use new `user-data:\/\/` stream\n    * Added support for `autotrack` to track any page based on `onPageInitialized()` event\n"},"0.1.0":{"date":"11\/01\/2018","content":"1. [](#new)\n    * ChangeLog started..."}}},"database":{"name":"Database","version":"1.2.0","description":"Allows a unified way to access databases within Grav via PDO","description_html":"<p>Allows a unified way to access databases within Grav via PDO<\/p>","description_plain":"Allows a unified way to access databases within Grav via PDO","icon":"database","author":{"name":"Team Grav","email":"developers@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-database","docs":"https:\/\/github.com\/getgrav\/grav-plugin-database\/blob\/develop\/README.md","keywords":"grav, plugin, database, sqlite, mysql","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-database\/issues","license":"MIT","tag_name":"1.2.0","date":"2026-06-18T21:55:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/database\/1.2.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-database","slug":"database","install_path":"user\/plugins\/database","content_sha256":"e015648510836ab16977961b5934041b29e14a9790eb1c917adab1452eb81c3a","changelog":{"1.2.0":{"date":"06\/18\/2026","content":"1. [](#new)\n    * Added an `onDatabaseDrivers` event so third-party plugins can register their own connection types via `$grav['database']->registerDriver()` (see the `database-yetisql` plugin for an example)\n2. [](#security)\n    * Fixed a potential SQL injection in `tableExists()` by replacing inline table-name interpolation with a parameterized, driver-aware catalog lookup ([GHSA-8jxg-4pw9-xcwf](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-8jxg-4pw9-xcwf))\n    * Hardened DSN construction against attribute injection from connection settings: reject `;`\/line-breaks\/null bytes in host\/dbname\/charset\/server\/database, cast the port to an integer, and stop embedding PostgreSQL credentials in the DSN ([GHSA-jm58-p4pv-qcwc](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-jm58-p4pv-qcwc))\n"},"1.1.2":{"date":"06\/09\/2026","content":"1. [](#bugfix)\n    * Fixed broken PostgreSQL connections caused by the SSL mode never being applied to the connection settings correctly.\n    * Fixed SQL Server connections always requesting encryption regardless of the configured setting.\n"},"1.1.1":{"date":"04\/23\/2026","content":"1. [](#new)\n    * Added compatibility for Grav 2.0\n"},"1.1.0":{"date":"04\/23\/2026","content":"1. [](#new)\n    * Named connections: define multiple database connections in plugin config and address them by name \u2014 each connection keeps its own driver, host, port, database, credentials, and PDO options. The admin UI exposes per-connection fields so setups with separate read\/write or per-service databases no longer need ad-hoc wiring in user code. [#6](https:\/\/github.com\/getgrav\/grav-plugin-database\/pull\/6)\n    * PostgreSQL support alongside MySQL and SQLite via a new `pgsql` driver (default port 5432). Connection configs select driver per-connection, so a single site can mix engines.\n2. [](#improved)\n    * Driver logic consolidated into the `Database` class with consistent formatting across all drivers, making future driver additions a smaller surface change.\n    * All drivers are now registered through Composer autoload instead of hand-wired includes.\n    * Expanded README with configuration examples covering single- and multi-connection setups.\n3. [](#bugfix)\n    * PostgreSQL default port corrected to 5432.\n    * Removed unused `text_var` placeholder from the admin blueprint.\n"},"1.0.2":{"date":"04\/27\/2020","content":"1. [](#improved)\n    * Updated languages\n"},"1.0.1":{"date":"12\/04\/2019","content":"1. [](#new)\n    * Adding additional PDO constructor's args to allow its \"full\" db agnostic attributes #1\n    * Add username, pwd and options to PDO instances creations #4\n    * Added russian language #2\n"},"1.0.0":{"date":"12\/08\/2018","content":"1. [](#new)\n    * Added support for CLI\n    * Added a README.md\n"},"0.1.0":{"date":"11\/01\/2018","content":"1. [](#new)\n    * ChangeLog started..."}}},"world-maps":{"name":"World Maps","version":"1.0.2","description":"This plugin provides customizable and vectorial world maps","description_html":"<p>This plugin provides customizable and vectorial world maps<\/p>","description_plain":"This plugin provides customizable and vectorial world maps","icon":"globe","author":{"name":"Widebob","email":"info@widebob.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/widebob\/grav-plugin-world-maps","docs":"https:\/\/github.com\/widebob\/grav-plugin-world-maps\/blob\/develop\/README.md","demo":"http:\/\/widebob.com\/grav-world-maps-plugin","keywords":"grav, plugin, jqvmap, vector, map, world, travel, widebob","bugs":"https:\/\/github.com\/widebob\/grav-plugin-world-maps\/issues","license":"MIT","tag_name":"1.0.2","date":"2019-11-22T11:57:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/world-maps\/1.0.2","repository":"https:\/\/github.com\/Tatayoyoh\/grav-plugin-world-maps","slug":"world-maps","install_path":"user\/plugins\/world-maps","content_sha256":"19d8f65be95920dfc4bc584f0fc8d6056cf144d10390e98208c039a17310985a","changelog":{"1.0.2":{"date":"22\/11\/2019","content":"1. [](#improved)\n    * REAMDE improved\n"},"1.0.1":{"date":"22\/11\/2019","content":"1. [](#bugfix)\n    * Missing template for modular\n\n1. [](#improved)\n    * Added REAMDE content\n"},"1.0.0":{"date":"14\/11\/2018","content":"1. [](#new)\n    * Using JQVMap Javascript lib\n    * A lot of interactive vectorial maps available\n    * Easy configuration with Shortcode, blueprint or header\n    * Customizing maps (legend, colors, links)\n    * Shortcode integration\n    * Extentable blueprint"}}},"darkadmin":{"name":"Dark Admin","version":"1.0.0","description":"Modified customadmin plugin to have a nice dark theme matching MacOS Mojave. Special thanks to Romain Fallet, who created the customadmin plugin.","description_html":"<p>Modified customadmin plugin to have a nice dark theme matching MacOS Mojave. Special thanks to Romain Fallet, who created the customadmin plugin.<\/p>","description_plain":"Modified customadmin plugin to have a nice dark theme matching MacOS Mojave. Special thanks to Romain Fallet, who created the customadmin plugin.","icon":"empire","author":{"name":"Norman Wink","email":"nw@vonheldenundgestalten.de"},"dependencies":[{"name":"admin","version":"*"}],"homepage":"https:\/\/github.com\/normanwink\/grav-darkadmin","keywords":"admin, plugin, manager, panel, custom, dark, mojave","bugs":"https:\/\/github.com\/normanwink\/grav-darkadmin\/issues","license":"MIT","tag_name":"v1.0.01","date":"2018-11-08T09:47:29Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/darkadmin\/1.0.0","repository":"https:\/\/github.com\/normanwink\/grav-darkadmin","slug":"darkadmin","install_path":"user\/plugins\/darkadmin","content_sha256":"9572bf9c1785f6a4415c9c59b4a98583d0a5e65ec5bf64869637a765cf04273d","changelog":{"1.0.0":{"date":"18\/10\/2018","content":"1. [](#new)\n    * ChangeLog started..."}}},"tingle-form":{"name":"Tingle Form","version":"1.0.3","description":"A standard form inside a tingle modal popup. Click on a button (created with a shortcode) and the form pops up.","description_html":"<p>A standard form inside a tingle modal popup. Click on a button (created with a shortcode) and the form pops up.<\/p>","description_plain":"A standard form inside a tingle modal popup. Click on a button (created with a shortcode) and the form pops up.","icon":"arrow-up","author":{"name":"Richard N Hainsworth","email":"rnhainsworth@gmail.com"},"dependencies":[{"name":"shortcode-core"}],"homepage":"https:\/\/github.com\/finanalyst\/grav-plugin-tingle-form","docs":"https:\/\/github.com\/finanalyst\/grav-plugin-tingle-form\/blob\/develop\/README.md","keywords":"grav, plugin, popup, form, modal, tingle","bugs":"https:\/\/github.com\/finanalyst\/grav-plugin-tingle-form\/issues","license":"MIT","tag_name":"v1.0.3","date":"2022-01-27T21:24:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tingle-form\/1.0.3","repository":"https:\/\/github.com\/finanalyst\/grav-plugin-tingle-form","slug":"tingle-form","install_path":"user\/plugins\/tingle-form","content_sha256":"caf2614ebf4b36273e15502631e609d4b070d7434b1035da0b58fece4b3fcebc","changelog":{"1.0.3":{"date":"27 January 2022","content":"1. [] (#add dep)\n    * Add shortcode core as a dependency\n    "},"1.0.2":{"date":"22 December 2020","content":"1. [](#update)\n    * Add raw to template\n    "},"1.0.1":{"date":"4 Oct 2018","content":"1.  [](#update)\n    * Add option to provide class for popup calling button\n    * Improve README\n    * Move asset adding to plugin initalisation out of shortcode initialisation.\n"},"1.0.0":{"date":" 3 Oct 2018","content":"1. [](#new)\n    * Plugin published."}}},"quando":{"name":"Quando","version":"0.6.4","description":"Stores and exposes business opening and service-specific hours to Grav\/Twig. Provides some starter templates.","description_html":"<p>Stores and exposes business opening and service-specific hours to Grav\/Twig. Provides some starter templates.<\/p>","description_plain":"Stores and exposes business opening and service-specific hours to Grav\/Twig. Provides some starter templates.","icon":"plug","author":{"name":"Hugh Barnes","email":"dev@hubns.com"},"homepage":"https:\/\/github.com\/hughbris\/grav-plugin-quando","docs":"https:\/\/github.com\/hughbris\/grav-plugin-quando\/blob\/develop\/README.md","demo":"https:\/\/behold.metamotive.co.nz\/quando","keywords":"grav, plugin, opening hours","bugs":"https:\/\/github.com\/hughbris\/grav-plugin-quando\/issues","license":"MIT","tag_name":"v0.6.4","date":"2019-07-01T22:38:48+12:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/quando\/0.6.4","repository":"https:\/\/github.com\/hughbris\/grav-plugin-quando","slug":"quando","install_path":"user\/plugins\/quando","content_sha256":"3fd3a87999f91581fa302975ce8e6fe58be642a8f6cc5c45e1bf31fa61d8edf9","changelog":{"0.2.0":{"date":" 06-06-2018","content":"1. [](#new)\n    * Initial public release (Github) of oldish private repo\n"},"0.3.1":{"date":"12-06-2018","content":"1. [](#new)\n    * Demo link\n    * List bugs and limitations in README\n2. [](#improved)\n    * Sample data\n    * Rename from 'grav-plugin-opaque'\n    * Weekly schedule template\n3. [](#bugfix)\n     * Working Github self links, gaahhhh\n"},"0.6.0":{"date":"09-07-2018","content":"1. [](#new)\n    * Document PHP class API in README\n    * ServiceTimes::getMeta() method\n2. [](#improved)\n    * Schedule derivation code\n    * Terminology (\"service availability\" rather than \"open\") and names in code\n    * Sample data\n    * Translations\n3. [](#bugfix)\n     * Probable fix for #8\n"},"0.6.1":{"date":"03-10-2018","content":"1. [](#improved)\n    * Shameless README tweaks\n    * Bump version for submission to repo\n2. [](#bugfix)\n     * Handle some missing headers in schedule data\n"},"0.6.2":{"date":"03-10-2018","content":"1. [](#improved)\n    * Proper changelog for submission to Grav repo\n"}},"dependencies":[]},"smoochchat":{"name":"Smooch Chat","version":"1.0.0","description":"Smooch.io live chat web messenger integration","description_html":"<p>Smooch.io live chat web messenger integration<\/p>","description_plain":"Smooch.io live chat web messenger integration","icon":"comments","author":{"name":"Matt Marsh","email":"matt@crazedbytes.net"},"homepage":"https:\/\/github.com\/marshmn\/grav-plugin-smoochchat","docs":"https:\/\/github.com\/marshmn\/grav-plugin-smoochchat\/blob\/master\/README.md","demo":"https:\/\/demos.crazedbytes.net\/smoochchat","keywords":"grav, plugin, live chat, smooch","bugs":"https:\/\/github.com\/marshmn\/grav-plugin-smoochchat\/issues","license":"MIT","tag_name":"v1.0.0","date":"2018-09-18T17:43:33Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/smoochchat\/1.0.0","repository":"https:\/\/github.com\/marshmn\/grav-plugin-smoochchat","slug":"smoochchat","install_path":"user\/plugins\/smoochchat","content_sha256":"04c5942839e99c9b1a68eda4cdb5757f7ed9a69c39c39cf58fa103ceb1e15c3d","changelog":{"1.0.0":{"date":"18-09-2018","content":"1. [](#new)\n    * Basic integration of the Smooch.io web messenger"}},"dependencies":[]},"timeline":{"name":"Timeline","version":"2.2.1","description":"Create and manage timelines in an ordered, hierarchical manner.","description_html":"<p>Create and manage timelines in an ordered, hierarchical manner.<\/p>","description_plain":"Create and manage timelines in an ordered, hierarchical manner.","icon":"align-center","author":{"name":"Ole Vik","email":"git@olevik.net"},"dependencies":[{"name":"grav","version":">=1.7"}],"homepage":"https:\/\/github.com\/OleVik\/grav-plugin-timeline\/","docs":"https:\/\/github.com\/OleVik\/grav-plugin-timeline\/blob\/master\/README.md","demo":"https:\/\/web.archive.org\/web\/20250826101242\/https:\/\/olevik.net\/staging\/grav-skeleton-timeline\/","keywords":"timeline, timelines","bugs":"https:\/\/github.com\/OleVik\/grav-plugin-timeline\/issues","license":"MIT","tag_name":"v2.2.1","date":"2025-12-13T12:42:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/timeline\/2.2.1","repository":"https:\/\/github.com\/OleVik\/grav-plugin-timeline","slug":"timeline","install_path":"user\/plugins\/timeline","content_sha256":"09491e80b6fd6b6fc09c5e68d91d506a29a16d10c76ec0e76943eaa018996429","changelog":{"2.2.1":{"date":"13-12-2025","content":"1. [](#bugfix)\n   - Resolve Carbon-library error ([#21](https:\/\/github.com\/OleVik\/grav-plugin-timeline\/issues\/21))\n    * Demo-link\n2. [](#new)\n   - Bump Carbon-library to version compatible with PHP v8.2 (Carbon [#2728](https:\/\/github.com\/briannesbitt\/Carbon\/issues\/2728))\n"},"2.2.0":{"date":"29-07-2023","content":"1. [](#new)\n    * Publish 2.2.0\n2. [](#bugfix)\n    * Demo-link\n"},"2.2.0-rc.1":{"date":"12-02-2023","content":"1. [](#new)\n    * Filter timeline by date range\n2. [](#improved)\n    * Processing overhead\n    * Qode-quality\n"},"2.1.2":{"date":"10-06-2021","content":"1. [](#bugfix)\n    * Autoload-fallback\n"},"2.1.1":{"date":"02-05-2021","content":"1. [](#bugfix)\n    * Remove debug-message\n"},"2.1.0":{"date":"02-05-2021","content":"1. [](#improved)\n    * Bumped spatie\/schema-org\n    * Bumped nesbot\/carbon\n"},"2.0.1":{"date":"04-03-2021","content":"1. [](#bugfix)\n    * Bad, bad elements\n    * Copying and pasting at the speed of light\n"},"2.0.0":{"date":"20-01-2021","content":"1. [](#new)\n    * Stable release\n"},"2.0.0-beta.1":{"date":"30-12-2020","content":"1. [](#new)\n    * Support for alternative text with `image_alt`-property\n    * Support for image caption with `image_caption`-property, including Markdown\n    * Support for header image in `timeline.html.twig`\n    * `truncate_image`-setting, to hide header image(s)\n    * Replaced `language`-setting with `locale`\n    * Expose `Content->buildTree()`-method as `build_timeline` in Twig\n    * Expose `LinkedData->buildTree()`-method as `build_linkeddata` in Twig\n    * Set `timeline_content` in Twig, not PHP, by default\n    * Set `application\/ld+json` in Twig, not PHP, by default\n    * Render date in template\n2. [](#improved)\n    * Build tree-data in template rather than globally\n    * Build Linked Data in template rather than globally\n    * Reduce deprecation-warnings\n    * Locale-handling `dt`-function in Twig\n    * Replaced `jenssegers\/date` with `nesbot\/carbon`-dependency\n    * Increase supported locales from 136 to 305\n    * Remove `phpextra\/sorter`-dependency\n    * Remove `ext-intl`-dependency\n    * PSR-4 autoloading and code-quality\n    * Blueprints\n    * README-documentation\n3. [](#bugfix)\n    * Do not truncate standalone Page(s)\n"},"1.3.3":{"date":"17-07-2020","content":"1. [](#bugfix)\n    * Blueprints\n    * Caching-logic\n"},"1.3.2":{"date":"26-02-2020","content":"1. [](#improved)\n    * Link to right branch in Docs-link\n"},"1.3.1":{"date":"16-06-2019","content":"1. [](#improved)\n    * Conditional Linked Data\n"},"1.3.0":{"date":"16-06-2019","content":"1. [](#new)\n    * Deprecate FileStorage\n    * Bump Grav-dependency\n2. [](#improved)\n    * Event-blueprint formatting\n"},"1.2.1":{"date":"06-06-2019","content":"1. [](#improved)\n    * Raw-filter assets\n"},"1.2.0":{"date":"07-12-2018","content":"1. [](#new)\n    * Added template-partials and blocks for header and footer\n    * Change template-partial name from \"header\" to \"period\"\n    * Added functionality for injecting timelines\n    * Added support for subdirectory-installations\n2. [](#improved)\n    * Code quality\n    * .header-styling\n    * Pathing\n"},"1.1.6":{"date":"30-11-2018","content":"1. [](#improved)\n    * Added blueprint option for linked_data\n"},"1.1.5":{"date":"30-11-2018","content":"1. [](#bugfix)\n    * Fix LinkedData-assets\n    * Fix misaligned events\n"},"1.1.4":{"date":"30-11-2018","content":"1. [](#bugfix)\n    * Fix missing orderBy-options\n    * Fix Utilities::sortLeaf defaults\n"},"1.1.3":{"date":"30-11-2018","content":"1. [](#bugfix)\n    * Fix missing `static`-keyword\n"},"1.1.2":{"date":"27-11-2018","content":"1. [](#bugfix)\n    * Fix event template\n2. [](#improved)\n    * Add image alt-attribute\n"}}},"map-marker-leaflet":{"name":"Map Marker Leaflet","version":"1.1.2","description":"Short codes to embed a map and markers using Leaflet, Extra-markers and OpenStreetMap (optionally other providers)","description_html":"<p>Short codes to embed a map and markers using Leaflet, Extra-markers and OpenStreetMap (optionally other providers)<\/p>","description_plain":"Short codes to embed a map and markers using Leaflet, Extra-markers and OpenStreetMap (optionally other providers)","icon":"map","author":{"name":"Richard N Hainsworth","email":"rnhainsworth@gmail.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/finanalyst\/grav-plugin-map-marker-leaflet","docs":"https:\/\/github.com\/finanalyst\/grav-plugin-map-marker-leaflet\/blob\/master\/README.md","keywords":"grav, plugin, map, markers, leaflet, openstreetmap, thunderforest, mapbox, opensource","bugs":"https:\/\/github.com\/finanalyst\/grav-plugin-map-marker-leaflet\/issues","license":"MIT","tag_name":"v1.1.2","date":"2020-12-22T14:51:39Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/map-marker-leaflet\/1.1.2","repository":"https:\/\/github.com\/finanalyst\/grav-plugin-map-marker-leaflet","slug":"map-marker-leaflet","install_path":"user\/plugins\/map-marker-leaflet","content_sha256":"8a202cf0b7636ba949d52869ea9e6ebee8d4f390c023404b6012eb133cead17d","changelog":{"1.1.2":{"date":"22 December 2020","content":"1.[](#Gantry compatibility)\n    * Gantry needs raw setting in templates\n2.[](Security)\n    * js vulnerability recommendation\n"},"1.1.1":{"date":"24 July 2020","content":"1.[](#bugfixes)\n"},"1.1.0":{"date":"18 July 2020","content":"1.[](#Enhancement)\n   * Work by A----- to change the way map handlers are provided.\n   * Improvement of dependency handling\n2.[](#security)\n   * Require minimist >1.2.3 - github recommendation\n"},"1.0.8":{"date":"28 Feb 2019","content":"1.[](#typo)\n   * in blueprints for README\n"},"1.0.7":{"date":"1 Jan 2019","content":"1.[](#typo)\n   * in Readme, credit to githum\/awrog\n"},"1.0.6":{"date":"28 Dec 2018","content":"1.[](#enhancement)\n   * modified Thunderforest stanza to allow for retina support.\n"},"1.0.5":{"date":"10 Oct 2018","content":"1.[](#enhancement)\n   * added scale option to shortcode, default False (to be compatible with existing API)\n"},"1.0.4":{"date":"4 Oct 2018","content":"1.[](#update)\n   * move asset adding from shortcode to plugin initialisation\n"},"1.0.3":{"date":"27 Sep 2018","content":"1.[](#update)\n   * Change width\/height option defaults in the presence of a class for the map (to allow for responsive map size).\n"},"1.0.2":{"date":"19 Sep 2018","content":"1.[](#update)\n   * Twig process 'style' option so that it can be set with Twig in page.\n"},"1.0.1":{"date":"18 Sep 2018","content":"1.[](#update)\n   * added 'classes option to map shortcode'\n   * changed README to eliminate confusing error\n"},"1.0.0":{"date":"13 Sep 2018","content":"1.[](#initial)\n   * publication for GRAV with new name"}}},"social-media-links":{"name":"Social Media Links","version":"1.0.3","description":"Add links to social media sites","description_html":"<p>Add links to social media sites<\/p>","description_plain":"Add links to social media sites","icon":"plug","author":{"name":"Torsten Sauer","email":"grav-dev@torsten-sauer.de"},"homepage":"https:\/\/github.com\/torsten-sauer\/social-media-links","docs":"https:\/\/github.com\/torsten-sauer\/social-media-links\/blob\/master\/README.md","demo":"https:\/\/github.com\/torsten-sauer\/social-media-links","keywords":"grav, plugin, social, media, facebook, twitter, instagram","bugs":"https:\/\/github.com\/torsten-sauer\/social-media-links\/issues","license":"MIT","tag_name":"1.0.3","date":"2021-02-09T18:02:03Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/social-media-links\/1.0.3","repository":"https:\/\/github.com\/torsten-sauer\/social-media-links","slug":"social-media-links","install_path":"user\/plugins\/social-media-links","content_sha256":"178773ddcbb693130c7d73231af6ffb759fb6c7523931f2cf1100dc1127f5717","changelog":{"1.0.3":{"date":" 02\/09\/2021","content":"1. [](#improvement)\n    * fixed deprecated PHP warning (thx to @paulrudy for contribution)\n"},"1.0.2":{"date":" 12\/06\/2018","content":"1. [](#improvement)\n    * fixed some broken links in blueprint.yaml\n\nv1.0.1\n##  10\/01\/2018\n1. [](#improvement)\n    * fixed some broken links in blueprint.yaml\n    "},"1.0.0":{"date":" 09\/13\/2018","content":"1. [](#new)\n    * Initial creation of the plugin"}},"dependencies":[]},"fortune":{"name":"Fortune","version":"1.0.0","description":"Select a random quote from a collection of properly formatted &#34;fortune&#34; files","description_html":"<p>Select a random quote from a collection of properly formatted &#34;fortune&#34; files<\/p>","description_plain":"Select a random quote from a collection of properly formatted &#34;fortune&#34; files","icon":"book","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/perlkonig\/grav-plugin-fortune","docs":"https:\/\/github.com\/perlkonig\/grav-plugin-fortune\/blob\/develop\/README.md","demo":"https:\/\/www.perlkonig.com\/demos\/fortune","keywords":"grav, plugin, fortune, quotes, random","bugs":"https:\/\/github.com\/perlkonig\/grav-plugin-fortune\/issues","license":"MIT","tag_name":"v1.0.0","date":"2018-09-13T14:24:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/fortune\/1.0.0","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-fortune","slug":"fortune","install_path":"user\/plugins\/fortune","content_sha256":"30f94fa3fd7948cf597f3716c174306ea66885f8ade6786036ca5c7a81bd702e","changelog":{"1.0.0":{"date":" 09\/12\/2018","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"webhook":{"name":"Slack Webhook","version":"0.1.0","description":"Push forms results into slack messages","description_html":"<p>Push forms results into slack messages<\/p>","description_plain":"Push forms results into slack messages","icon":"plug","author":{"name":"Damien Bry","url":"https:\/\/damienbry.io","email":"damien@elyios.com"},"homepage":"https:\/\/github.com\/Orbmancer\/grav-plugin-slack-webhook","docs":"https:\/\/github.com\/Orbmancer\/grav-plugin-slack-webhook\/blob\/master\/README.md","keywords":"grav, plugin, slack, webhook, form, process, action, backend, automate","bugs":"https:\/\/github.com\/Orbmancer\/grav-plugin-slack-webhook\/issues","license":"MIT","tag_name":"v0.1.0","date":"2018-09-12T08:56:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/webhook\/0.1.0","repository":"https:\/\/github.com\/damienbry\/grav-plugin-slack-webhook","slug":"webhook","install_path":"user\/plugins\/webhook","content_sha256":"58d9ae954c882400a40f6428413b90cbe5a5ae032e625e172406fdd384ca67c2","changelog":{"0.1.0":{"date":"12-09-2018","content":"1. [](#new)\n    * Initial version\n"}},"dependencies":[]},"webpush":{"name":"Web Push Notifications","version":"1.0.1","description":"Add web push notifications based on OneSignal service for your grav project.","description_html":"<p>Add web push notifications based on OneSignal service for your grav project.<\/p>","description_plain":"Add web push notifications based on OneSignal service for your grav project.","icon":"bell","author":{"name":"Devlom","url":"https:\/\/devlom.com","email":"info@devlom.com"},"homepage":"https:\/\/devlom.com\/en\/blog\/grav-webpush-notifications-onesignal","docs":"https:\/\/github.com\/devlom\/grav-plugin-webpush\/blob\/develop\/README.md","keywords":"grav, plugin, onesignal, web push notifications, notifications, push","bugs":"https:\/\/github.com\/devlom\/grav-plugin-webpush\/issues","license":"MIT","tag_name":"1.0.1","date":"2018-09-17T14:43:36Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/webpush\/1.0.1","repository":"https:\/\/github.com\/devlom\/grav-plugin-webpush","slug":"webpush","install_path":"user\/plugins\/webpush","content_sha256":"b8a1fe0b54c788f2a8aa6d9bba68842043a1a63a803423ac9743bea4f450809c","changelog":{"1.0.1":{"date":" 09\/17\/2018","content":"1. [](#new)\n    * Readme updates, minor fixes\n"},"1.0.0":{"date":" 09\/04\/2018","content":"1. [](#new)\n    * Initial release"}},"dependencies":[]},"babel":{"name":"Babel","version":"1.1.5","description":"Translation services for GRAV","description_html":"<p>Translation services for GRAV<\/p>","description_plain":"Translation services for GRAV","icon":"language","author":{"name":"Uli Hake","url":"http:\/\/www.saveva.com","email":"uli.hake@gmaill.com"},"dependencies":[{"name":"grav","version":">=1.4.0"},{"name":"admin","version":">=1.8.0"}],"homepage":"https:\/\/github.com\/leotiger\/grav-plugin-babel","docs":"https:\/\/github.com\/leotiger\/grav-plugin-babel\/blob\/master\/README.md","keywords":"plugin, i18n, translation, language administration, language synchronization","bugs":"https:\/\/github.com\/leotiger\/grav-plugin-babel\/issues","license":"MIT","tag_name":"v1.1.5","date":"2024-04-11T18:58:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/babel\/1.1.5","repository":"https:\/\/github.com\/leotiger\/grav-plugin-babel","slug":"babel","install_path":"user\/plugins\/babel","content_sha256":"6fd23f71ba3459ee9c316f9d10dee9ae333bda35a0db5aa7474d5c96662a6958","changelog":{"1.1.5":{"date":"11-04-2024","content":"1. [](#bugfix)\n    * Make valid composer files available to allow for side by side execution with tntsearch plugin\n"},"1.1.4":{"date":"11-04-2024","content":"1. [](#bugfix)\n    * Create valid composer json file\n    * Create valid and non-conflicting vendor\/composer files\n"},"1.1.3":{"date":"11-04-2024","content":"1. [](#bugfix)\n    * Make compatible with PHP version 8+\n    * Update TNTSearch Vendor library\n"},"1.1.2":{"date":"10-08-2018","content":"1. [](#improved)\n    * Add quicktray icon and make entry in admin menu sidebar optional (thx olevik)\n    * remove unnecessary logging code\n    * add hints to the interface\n    * apply GRAV styles to some elements\n    * remove bootstrap css\n    * better documentation in README\n1. [](#bugfix)\n    * Copy correct existing translation into empty translation if user click on language identifier of existing translation\n    * Fix compatibility issue: TNTSearch uses an older vendor version of the teamtnt\/tntsearch (thx iusvar)\n\n"},"1.1.1":{"date":"09-08-2018","content":"1. [](#new)\n    * Track theme variables\n    * Add export for theme language packages\n1. [](#bugfix)\n    * Fix order of flat array elements with numeric keys.\n    * Display flat array elements in correct order (keys ordered alphabetically and not numerically)\n"},"1.1.0":{"date":"08-08-2018","content":"1. [](#new)\n    * Hide away complex system internals that include Regular Expressions to assure hassle-free usage of the plugin by less experienced site administrators\n1. [](#bugfix)\n    * Plugin domains, once translated with Babel, did not show status information correctly. Fixed.\n"},"1.0.4":{"date":"08-08-2018","content":"1. [](#bugfix)\n    * Fixed indexing problem for variables with no parent group identifier aka domain. These are no routed into domain *unclassified*\n    * Indexing as unclassified should fix as well wrong attributions and counts for the rest of the domains\n"},"1.0.3":{"date":"08-08-2018","content":"1. [](#new)\n    * Zip exported domain definitions into language packs\n    * Make domain language packs available in the Babel interface\n"},"1.0.2":{"date":"08-08-2018","content":"1. [](#improved)\n    * Return to saving only edited (babelized) definitions\n    * Track edited definitions on re-index keeping track forever\n"},"1.0.1":{"date":"08-08-2018","content":"1. [](#bugfix)\n    * Save all definitions for merge to avoid losing previous translation work\n    * Show changed translation in domain context, not only in babelized context\n    * remove output test traces from Babel template\n"},"1.0.0":{"date":"08-08-2018","content":"1. [](#new)\n    * Changelog started\n"}}},"injectphp":{"name":"Injectphp","version":"0.1.0","description":"Replace a markdown page with a php page","description_html":"<p>Replace a markdown page with a php page<\/p>","description_plain":"Replace a markdown page with a php page","icon":"plug","author":{"name":"Larry Vennard","email":"lvennard@yahoo.com"},"homepage":"https:\/\/github.com\/lvennard\/grav-plugin-injectphp","docs":"https:\/\/github.com\/lvennard\/grav-plugin-injectphp\/blob\/master\/README.md","keywords":"grav, php, plugin, markdown","bugs":"https:\/\/github.com\/lvennard\/grav-plugin-injectphp\/issues","license":"MIT","tag_name":"v0.1.1","date":"2019-07-29T18:20:00Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/injectphp\/0.1.0","repository":"https:\/\/github.com\/lvennard\/grav-plugin-injectphp","slug":"injectphp","install_path":"user\/plugins\/injectphp","content_sha256":"f666de57f679f16efe9dd39f8b2cb43c3e5f11fa31cd2a0312fc06a8624b2d7a","changelog":{"0.1.1":{"date":" 02\/13\/2019","content":"1. \n    * Fixed Readmefile url\n\n##  08\/04\/2018\n\n1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"content-edit":{"name":"Content Edit","version":"1.3.0","description":"Frontend edit of content pages by users in groups","description_html":"<p>Frontend edit of content pages by users in groups<\/p>","description_plain":"Frontend edit of content pages by users in groups","icon":"pencil-square-o","author":{"name":"Richard N Hainsworth","email":"rnhainsworth@gmail.com"},"homepage":"https:\/\/github.com\/finanalyst\/grav-plugin-content-edit","docs":"https:\/\/github.com\/finanalyst\/grav-plugin-content-edit\/blob\/develop\/README.md","keywords":"grav, plugin, content, edit, frontend, multi-language","bugs":"https:\/\/github.com\/finanalyst\/grav-plugin-content-edit\/issues","license":"MIT","tag_name":"v1.3.0","date":"2018-08-12T10:34:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/content-edit\/1.3.0","repository":"https:\/\/github.com\/finanalyst\/grav-plugin-content-edit","slug":"content-edit","install_path":"user\/plugins\/content-edit","content_sha256":"ae18e8a76d69dd407c6bb3e92393f0d188877ce689df612579dbff92c154ae6d","changelog":{"1.3.0":{"date":"12 August 2018","content":"1. [](#enhancement)\n    * Add file\/image delete button on file editor\n    * Content of `content-edit.md` page is used as placeholder text before md content moved.\n    * Fix bug when menu not set in page header_navigation\n"},"1.2.1":{"date":"8 August 2018","content":"1. [](#bugfix)\n    * Add language data to load file\/image (not used, but option needs to be set)\n"},"1.2.0":{"date":"30 July 2018","content":"1. [](#enhancement)\n    * Inclusion of functionality to handle multi-language sites.\n    * removed all but 'saving' message, which now appears over Save button\n    * placed save & review buttons on right of editor window.\n    * Included possibility to edit the 'menu' item of the page header\n    * When multiple language files are available for a page, and the site configuration is set for multiple languages,\n        * The languages pages present and are supported are included in the tree.\n        * The language of the page is included in the editor header\n    * A page header option`dontInclude` is provided to remove a route from the page.collection.\n    * Various style sheet changes.\n    * Text in code and in Twig files moved to `languages.yaml`.\n"},"1.1.0":{"date":"24 July 2018","content":"1. [](#enhancement)\n    * Removed iframePreview and divPreview\n    * Combined into single option `preview`\n    * Created new template `content-edit-review` to allow for frontend visualisation of edits by month\n    * iframe container for Preview can be used for all servers, no X-Frame errors.\n"},"1.0.0":{"date":" 22 July 2018","content":"1. [](#new)\n    * Plugin ready for publication"}},"dependencies":[]},"shoppingcart-personalizer":{"name":"Shopping Cart Personalizer Addon","version":"1.0.1","description":"Power overload the Shopping Cart Plugin with stock management, variations, product personalizations, country restrictions and plenty of other tweaks and features.","description_html":"<p>Power overload the Shopping Cart Plugin with stock management, variations, product personalizations, country restrictions and plenty of other tweaks and features.<\/p>","description_plain":"Power overload the Shopping Cart Plugin with stock management, variations, product personalizations, country restrictions and plenty of other tweaks and features.","icon":"shopping-cart","author":{"name":"Uli Hake","url":"https:\/\/www.saveva.com","email":"uli.hake@gmail.com"},"dependencies":[{"name":"shoppingcart","version":"~1.1"}],"homepage":"https:\/\/github.com\/leotiger\/grav-plugin-shoppingcart-personalizer","docs":"https:\/\/github.com\/leotiger\/grav-plugin-shoppingcart-personalizer\/blob\/master\/README.md","demo":"https:\/\/www.tessa.es","keywords":"shoppingcart, ecommerce, e-commerce, plugin, shop, cart, stock management, variations, product configuration","bugs":"https:\/\/github.com\/leotiger\/grav-plugin-shoppingcart-personalizer\/issues","license":"MIT","tag_name":"v1.0.1","date":"2018-08-10T09:16:03Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shoppingcart-personalizer\/1.0.1","repository":"https:\/\/github.com\/leotiger\/grav-plugin-shoppingcart-personalizer","slug":"shoppingcart-personalizer","install_path":"user\/plugins\/shoppingcart-personalizer","content_sha256":"ab82a37ff61dd6d790ae02bb78d80bfcb801a6ba1d7a3678d21376afd9ffbfde","changelog":{"1.0.1":{"date":"02-08-2018","content":"1. [](#new)\n    * Add product gallery to product configuration\n    * Show product gallery in product detail page\n\n1. [](#bugfix)\n    * Fix image display and link bugs\n"},"1.0.0":{"date":"01-08-2018","content":"1. [](#new)\n    * Add option to force email notifications\n    * Add automatic stock updates with multi-language support\n    * Add stock updates for variations with multi-language support\n    * Trigger clear cache after stock updates if configured\n    * Add option to configure a dedicated shop email\n    * Minimum cart amount\n    * Minimum free shipping amount   \n1. [](#improved)\n    * Minimum price for product with variations\n    * Show products with missing variation stocks as unavailable \n"},"0.9.5":{"date":"30-07-2018","content":"1. [](#new)\n    * Add detail order page in admin\n    * Add customer personalize page\n    * Add personalize upload for product variationns and configurations\n    * Show variation uploads and configurations in admin, frontend\n    * Allow additional basket personalizations, e.g. add a billing form to be filled in after checkout, etc.\n1. [](#improved)\n    * Add existing plugins to add-on overview page\n1. [](#bugfix)\n    * only show active variation images in fancybox\n"},"0.9.4":{"date":"27-07-2018","content":"1. [](#new)\n    * Allow quantity steps\n    * Display variation images\n    * Display hint if file upload is available for a customer after checkout in the context of a product configuration or variant\n1. [](#improved)\n    * Display of product variations and configurations\n    * Translations for product configuration section in product pages added to languages.yaml\n    * Show submitted customer text in backend\n"},"0.9.3":{"date":"27-07-2018","content":"1. [](#new)\n    * Move restrict countries from notify plugin into this one as this is a basic and necessary feature\n"},"0.9.2":{"date":"26-07-2018","content":"1. [](#new)\n    * Add taxes to order confirmation and backend breakdown of orders\n    * Display ordered product variations and configurations in confirmation\n    * Display ordered product variations and configurations in backend\n1. [](#improved)\n    * Make admin strings translatable\n    * Labels in order breakdown in backend added to languages.yaml\n1. [](#bugfix)\n    * Try to fix changelog format for output in grav plugin store\n"},"0.9.1":{"date":"24-07-2018","content":"1. [](#bugfix)\n    * Fix bug if no groups and variations are present in onAdminSave\n"},"0.9.0":{"date":"23-07-2018","content":"1. [](#improved)\n    * Add language variables\n\n"},"0.8.0":{"date":"23-07-2018","content":"1. [](#improved)\n    * Show selected variations and configurations in cart on demand\n    "},"0.7.0":{"date":"22-07-2018","content":"1. [](#improved)\n    * Allow stock management for variations in grouped context\n    "},"0.6.0":{"date":"22-07-2018","content":"1. [](#improved)\n    * Enhance variations with customer input\n2. [](#bugfix)\n    * Minor compatibility fixes and overwrites for Shoppingcart\n\n"},"0.5.0":{"date":"21-07-2018","content":"1. [](#improved)\n    * Allow grouping of product variations\n"},"0.4.0":{"date":"21-07-2018","content":"1. [](#improved)\n    * Start with product variation support\n"},"0.3.0":{"date":"21-07-2018","content":"1. [](#improved)\n    * Add option to remove existing product in cart before adding product again\n    "},"0.2.0":{"date":"21-07-2018","content":"1. [](#improved)\n    * Better theme support allowing admins to specify the base template to be extended\n"},"0.1.4":{"date":"20-07-2018","content":"1. [](#bugfix)\n    * Fix page blueprints\n"},"0.1.3":{"date":"20-07-2018","content":"1. [](#bugfix)\n    * Support for fancybox was incomplete\n"},"0.1.2":{"date":"19-07-2018","content":"1. [](#bugfix)\n    * Update detail item template to support fancybox correctly\n"},"0.1.1":{"date":"19-07-2018","content":"1. [](#new)\n    * Support for fancybox\n\n1. [](#improved)    \n    * Decoupled from Studio Theme\n"},"0.1.0":{"date":"26-06-2018","content":"1. [](#new)\n    * Changelog started\n"}}},"static-social-embeds":{"name":"Static Social Embeds","version":"1.1.6","description":"Embeds social status (like tweets, instagram posts, toots, etc.) in articles without using their embed iframe,\nbut rather statically without any dependency to the service.\n","description_html":"<p>Embeds social status (like tweets, instagram posts, toots, etc.) in articles without using their embed iframe,\nbut rather statically without any dependency to the service.<\/p>","description_plain":"Embeds social status (like tweets, instagram posts, toots, etc.) in articles without using their embed iframe,\nbut rather statically without any dependency to the service.","icon":"newspaper-o","author":{"name":"Amaury Carrade","email":"amaury@carrade.eu"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/Nebulius\/grav-plugin-static-social-embeds","docs":"https:\/\/github.com\/Nebulius\/grav-plugin-static-social-embeds\/blob\/master\/README.md","keywords":"grav, plugin, embed, static, twitter, instagram, mastodon, tweet, toot, integration, post","bugs":"https:\/\/github.com\/Nebulius\/grav-plugin-static-social-embeds\/issues","license":"MIT","tag_name":"v1.1.6","date":"2020-07-26T14:06:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/static-social-embeds\/1.1.6","repository":"https:\/\/github.com\/Nebulius\/grav-plugin-static-social-embeds","slug":"static-social-embeds","install_path":"user\/plugins\/static-social-embeds","content_sha256":"05b98a40c9ff36bec5be504e5507d915743165d7c3c10de76241fa4fb4a76723","changelog":{"1.1.6":{"date":"26-07-2020","content":"1. [](#bugfix)\n    * Fixed \u201cProblemChecker class not found\u201d due to bad classes autoload ([#5](https:\/\/github.com\/Nebulius\/grav-plugin-static-social-embeds\/pull\/5), thanks to funilrys!).\n"},"1.1.5":{"date":"22-04-2019","content":"1. [](#bugfix)\n    * Fixed Matodon medias not correctly downloaded (they were downloaded, but the local copy was not used).\n    * Fixed Mastodon's custom emojis not correclty supported (they are now correctly displayed in spoiler texts and display names).\n1. [](#improved)\n    * Improved some embeds stylings to match their models.\n    * Improved compatibility with some themes.\n    * Improved embeds accessibility a little bit.\n"},"1.1.4":{"date":"21-04-2019","content":"1. [](#bugfix)\n    * Fixed plugin admin rendering error in English, because the blueprint referred translation files with an inconsistent format (#1).\n    * Miscellaneous minor fixes and improvements.\n1. [](#improved)\n    * Improved styles and in-flow integration (margins\u2026).\n    * Improved video playing:\n      * the video will stop if the user switches to the next image;\n      * the controls are not under the navigation links.\n    * Updated documentation for new Twitter developer accounts.\n"},"1.1.3":{"date":"23-08-2018","content":"1. [](#bugfix)\n    * Fixed error while embedding non-existant Instagram post.\n"},"1.1.2":{"date":"14-08-2018","content":"1. [](#bugfix)\n    * Fixed Instagram posts failing to be retrieved in some cases.\n"},"1.1.1":{"date":"14-08-2018","content":"1. [](#bugfix)\n    * Fixed a regression where download options were no longer working since the per-network download options (oh the irony).\n"},"1.1.0":{"date":"11-07-2018","content":"1. [](#new)\n    * Added [Pleroma](https:\/\/pleroma.social) support (using the same `toot` shortcode as Mastodon).\n1. [](#improved)\n    * Download options can be configured per-network.\n    * Better explanations regarding Firefox privacy shield and Instagram changing URLs.\n1. [](#bugfix)\n    * Fixed some Mastodon URLs wrongly parsed.\n"},"1.0.1":{"date":"07-07-2018","content":"1. [](#bugfix)\n    * Fixes broken icons if the template does not provide Font Awesome 5.1.0+.\n    * Small CSS fixes on the default theme (and every theme, for that matter).\n"},"1.0.0":{"date":" 07-07-2018","content":"1. [](#new)\n    * First version\n    * Support for Twitter, Mastodon and Instagram, with light or dark embeds, using simple shortcodes.\n    * Support for texts, images, videos, GIF, multiple medias, Mastodon's CW.\n    * Images and videos can be downloaded locally for enhanced independence."}}},"darkskyweather":{"name":"DarkSky Weather","version":"0.1.2","description":"Weather based on DarkSky.net (Forecast.io)","description_html":"<p>Weather based on DarkSky.net (Forecast.io)<\/p>","description_plain":"Weather based on DarkSky.net (Forecast.io)","icon":"plug","author":{"name":"Peter \u013dupt\u00e1k","email":"luptakinfo@gmail.com"},"homepage":"https:\/\/github.com\/PeterL83\/grav-plugin-darkskyweather","docs":"https:\/\/github.com\/PeterL83\/grav-plugin-darkskyweather\/blob\/master\/README.md","keywords":"grav, plugin, etc, darksky, forecast, weather","bugs":"https:\/\/github.com\/PeterL83\/grav-plugin-darkskyweather\/issues","license":"MIT","tag_name":"v0.1.2","date":"2018-08-30T19:00:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/darkskyweather\/0.1.2","repository":"https:\/\/github.com\/PeterL83\/grav-plugin-darkskyweather","slug":"darkskyweather","install_path":"user\/plugins\/darkskyweather","content_sha256":"1b3605126c4a4c87258a74e7b87f89f07e7d7216d04fe05c7fd28936a00f2b60","changelog":{"0.1.2":{"date":" 08\/30\/2018","content":"1. [](#bugfix)\n    * Fix templates and language labels\n"},"0.1.1":{"date":" 08\/04\/2018","content":"1. [](#bugfix)\n    * Fix Full Page Weather 7 days section\n    * Fix Wind Bearing (Full Page Weather)\n    * Fix Twig templates and CSS styles\n1. [](#improved)\n    * Plugin settings\n"},"0.1.0":{"date":" 06\/25\/2018","content":"1. [](#new)\n    * Initial Release"}},"dependencies":[]},"crawler-detect":{"name":"Crawler Detect","version":"0.1.0","description":"CrawlerDetect detects bots\/crawlers\/spiders via the user agent and http_from header.","description_html":"<p>CrawlerDetect detects bots\/crawlers\/spiders via the user agent and http_from header.<\/p>","description_plain":"CrawlerDetect detects bots\/crawlers\/spiders via the user agent and http_from header.","icon":"plug","author":{"name":"Basile Trujillo","email":"basile.trujillo@digitregroup.com"},"homepage":"https:\/\/github.com\/digitregroup\/grav-plugin-crawler-detect","docs":"https:\/\/github.com\/digitregroup\/grav-plugin-crawler-detect\/blob\/develop\/README.md","keywords":"grav, plugin, bot, crawler, detector","bugs":"https:\/\/github.com\/digitregroup\/grav-plugin-crawler-detect\/issues","license":"MIT","tag_name":"0.2.0","date":"2018-06-21T12:46:40+02:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/crawler-detect\/0.1.0","repository":"https:\/\/github.com\/digitregroup\/grav-plugin-crawler-detect","slug":"crawler-detect","install_path":"user\/plugins\/crawler-detect","content_sha256":"d9b634ead2f5ddf8f7dd9a2623aaad1229801288c1dffa240218a710b2a601e2","changelog":{"0.1.0":{"date":" 06\/21\/2018","content":"1. [0.2.0](#new)\n    * Added todo in README\n    * Added .idea to .gitignore\n\n2. [0.1.0](#new)\n    * Added CrawlerDetect library\n    * Added isCrawler twig function"}},"dependencies":[]},"gdprprivacysetup":{"name":"GDPR Privacy Setup","version":"0.1.1","description":"Show privacy information popup and manage CSP (Content Security Policy) based on visitor privacy consents","description_html":"<p>Show privacy information popup and manage CSP (Content Security Policy) based on visitor privacy consents<\/p>","description_plain":"Show privacy information popup and manage CSP (Content Security Policy) based on visitor privacy consents","icon":"shield","author":{"name":"Krzysztof Ga\u0142","url":"http:\/\/krzysztofgal.pl","email":"dev@krzysztofgal.pl"},"dependencies":[{"name":"grav","version":"~1.5.5"}],"homepage":"https:\/\/github.com\/krzysztofgal\/GravGdprPrivacySetupPlugin","keywords":"GDPR, CSP, Privacy, Popup","bugs":"https:\/\/github.com\/krzysztofgal\/GravGdprPrivacySetupPlugin\/issues","license":"MIT","tag_name":"0.1.1","date":"2018-11-29T18:35:50+01:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/gdprprivacysetup\/0.1.1","repository":"https:\/\/github.com\/krzysztofgal\/GravGdprPrivacySetupPlugin","slug":"gdprprivacysetup","install_path":"user\/plugins\/gdprprivacysetup","content_sha256":"63350161fcee69f02ffc540a722474956f7e4492ce5293bb3a447aeb50c75cb6","changelog":{"0.1.1":{"date":"11\/29\/2018","content":"1. [](#new)\n    * Added bottom bar popup style\n    * Added consent optional field to prevent possibility of disabling required consents\n    * Added option to disable default styles\n   [](#improved)\n    * Added base_url to popup page route, may fix error on non direct domain grav install (not tested :\/)\n"},"0.1.0":{"date":"09\/06\/2018","content":"1. [](#bugfix)\n    * Plugin now works with Gantry5 (Hydrogen) theme\n    "},"0.0.6":{"date":"06\/29\/2018","content":"1. [](#improved)\n    * PHP 5 compatibility\n    * Some code refactor\n    * Moved templates to subdirectory templates\/partials\/gdpr_privacy\n"},"0.0.5":{"date":"06\/21\/2018","content":"1. [](#improved)\n    * Modal content now checks screen overflow.\n    * Changed time format in changelog.\n"},"0.0.4":{"date":"06\/18\/2018","content":"1. [](#new)\n    * Added Page Whitelist feature, on selected pages popup won`t be shown.\n1. [](#improved)\n    * Blueprint labels and help improved.\n"},"0.0.3":{"date":"06\/18\/2018","content":"1. [](#bugfix)\n    * Fixed bug with crashing grav when no real page was found (when quering by taxonomies etc...).\n1. [](#improved)\n    * Changed some logic with opening popup and consent versioning.\n"},"0.0.2":{"date":"06\/12\/2018","content":"1. [](#bugfix)\n    * Privacy Information SHA1 generation on save fixed.\n"},"0.0.1":{"date":"06\/09\/2018","content":"1. [](#new)\n    * ChangeLog started..."}}},"atools":{"name":"Atools","version":"0.1.1","description":"Anarchy Tools extends additional functionality to both the grav cli and grav admin plugins.","description_html":"<p>Anarchy Tools extends additional functionality to both the grav cli and grav admin plugins.<\/p>","description_plain":"Anarchy Tools extends additional functionality to both the grav cli and grav admin plugins.","icon":"plug","author":{"name":"Jeremy Gonyea","email":"jeremy.gonyea@gmail.com"},"homepage":"https:\/\/github.com\/jgonyea\/grav-plugin-atools","docs":"https:\/\/github.com\/jgonyea\/grav-plugin-atools\/blob\/develop\/README.md","keywords":"grav, plugin, cli, tools","bugs":"https:\/\/github.com\/jgonyea\/grav-plugin-atools\/issues","license":"MIT","tag_name":"0.1.1","date":"2018-05-31T04:19:26Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/atools\/0.1.1","repository":"https:\/\/github.com\/jgonyea\/grav-plugin-atools","slug":"atools","install_path":"user\/plugins\/atools","content_sha256":"7342260c807ecb2c9d79b12a96b7954865d44244af38f82996e050dc8675a4d5","changelog":{"0.1.1":{"date":"05\/31\/2018","content":"1. [](#new)\n2. [](#improved)\n    * Fixed aliases (was accidentally overriding 'list')\n    * Added standard cache clears on enabling\/ disabling a plugin.\n3. [](#bugfix)"},"0.1.0":{"date":" 05\/29\/2018","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"latest-tweets":{"name":"Latest Tweets","version":"0.1.6","description":"Display latest tweets from your twitter account using PHP and OAuth.","description_html":"<p>Display latest tweets from your twitter account using PHP and OAuth.<\/p>","description_plain":"Display latest tweets from your twitter account using PHP and OAuth.","icon":"twitter","author":{"name":"Karol Orzel","email":"info@devlom.com"},"homepage":"https:\/\/github.com\/hexplor\/grav-plugin-latest-tweets","docs":"https:\/\/github.com\/hexplor\/grav-plugin-latest-tweets\/blob\/develop\/README.md","keywords":"grav, plugin, twitter, oauth, latest tweets","bugs":"https:\/\/github.com\/hexplor\/grav-plugin-latest-tweets\/issues","license":"MIT","tag_name":"0.1.6","date":"2018-07-05T13:28:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/latest-tweets\/0.1.6","repository":"https:\/\/github.com\/hexplor\/grav-plugin-latest-tweets","slug":"latest-tweets","install_path":"user\/plugins\/latest-tweets","content_sha256":"fb32d0572ad03850e4cdc9e1175226f09071e91500ee443b26ff1d338d961f1f","changelog":{"0.1.6":{"date":" 07\/05\/2018","content":"1. [](#bugfix)\n    * Fix for retweet counts\n"},"0.1.5":{"date":" 07\/04\/2018","content":"1. [](#bugfix)\n    * Open links using intents\n    * Minor styling bugfixes\n2. [](#new)\n    * Added Read More feature\n    * Both image and screen name are now linked\n"},"0.1.4":{"date":" 07\/04\/2018","content":"1. [](#bugfix)\n    * Loading retweet and favourite in new window\n"},"0.1.3":{"date":" 07\/04\/2018","content":"1. [](#bugfix)\n    * Minor styling improvements\n1. [](#new)\n    * Added retweet feature\n    * Added favourite feature\n    * Added ability to turn on\/off loading of FontAwesome icons\n"},"0.1.2":{"date":" 05\/26\/2018","content":"1. [](#bugfix)\n    * Fixed avatar image urls displaying over http\n"},"0.1.":{"date":" 05\/21\/2018","content":"1. [](#new)\n    * Initial release"}},"dependencies":[]},"login-ldap":{"name":"Login LDAP","version":"1.2.2","description":"Allows for Grav user authentication against an LDAP Server such as OpenLDAP or ActiveDirectory","description_html":"<p>Allows for Grav user authentication against an LDAP Server such as OpenLDAP or ActiveDirectory<\/p>","description_plain":"Allows for Grav user authentication against an LDAP Server such as OpenLDAP or ActiveDirectory","icon":"user-circle-o","author":{"name":"Trilby Media","email":"hello@trilby.media"},"dependencies":[{"name":"login","version":">=3.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, login, ldap, active directory, authentication","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/issues","license":"MIT","tag_name":"1.2.2","date":"2026-07-26T12:46:06Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/login-ldap\/1.2.2","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap","slug":"login-ldap","install_path":"user\/plugins\/login-ldap","content_sha256":"0abca610f6b671ac20bcf5f6cdacbdb6a29ad52142e2abcec05a3053a68446bb","changelog":{"1.2.2":{"date":"07\/26\/2026","content":"1. [](#bugfix)\n    * LDAP logins no longer fail immediately after succeeding on Grav 2.0. The user is now saved to `accounts\/` whenever the API plugin is enabled, which is what the Grav 2.0 admin needs to keep you signed in, and a note is written to the log explaining it ([#37](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/issues\/37)).\n"},"1.2.1":{"date":"04\/29\/2026","content":"1. [](#bugfix)\n    * Fixed hard fatal during admin login when the LDAP host wasn't configured \u2014 now returns gracefully so the standard file-based authenticator can handle the request\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.2.0":{"date":"02\/24\/2026","content":"1. [](#new)\n    * Added search bind support for LDAP environments with restrictive ACLs [#36](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/36)\n1. [](#bugfix)\n    * Fixed `User::load()` using full DN instead of username [#35](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/35)\n    * Fixed assignment operator bug in error handling for invalid credentials [#35](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/35)\n    * Fixed `group_identifier` typo - now accepts both spellings with backwards compatibility [#36](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/36)\n    * Fixed empty `gidNumber` producing broken LDAP filter on non-posixAccount setups [#36](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/36)\n"},"1.1.0":{"date":"04\/16\/2024","content":"1. [](#improved)\n     * Stop event propagation on empty username [#27](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/27)\n     * Add LDAP configuration example for Active Directory [#19](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/19)\n     * Fix plugin installation under PHP 8.1 [#31](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/31)\n"},"1.0.2":{"date":"11\/16\/2020","content":"1. [](#improved)\n    * Allow to login if LDAP user's DN contains double quotes [#18](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/18)\n    * Ignore authentication requests with empty username [#14](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/14)\n    * Better handling a null condition with `array_shift` [#8](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/pulls\/8)\n"},"1.0.1":{"date":"06\/11\/2018","content":"1. [](#improved)\n    * Added ability to search for groups with customizable `distinguishedName` setting of the bound user (useful for ActiveDirectory domains) [#1](https:\/\/github.com\/trilbymedia\/grav-plugin-login-ldap\/issues\/1)\n "},"1.0.0":{"date":"05\/18\/2018","content":"1. [](#new)\n    * Plugin released..."}}},"login-oauth2":{"name":"Login OAuth2","version":"2.2.6","description":"OAuth2 Client Plugin to integrate with Grav&#39;s Login","description_html":"<p>OAuth2 Client Plugin to integrate with Grav&#39;s Login<\/p>","description_plain":"OAuth2 Client Plugin to integrate with Grav&#39;s Login","icon":"plug","author":{"name":"Trilby Media, LLC","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"login","version":">=3.4"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/trilby.media","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/blob\/develop\/README.md","keywords":"grav, plugin, oauth2, login, social","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/issues","license":"MIT","tag_name":"2.2.6","date":"2026-05-05T14:11:39Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/login-oauth2\/2.2.6","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2","slug":"login-oauth2","install_path":"user\/plugins\/login-oauth2","content_sha256":"2000af784ed0255c156597678888ee8eceb33dfefb782f13715967ed0d9ca1aa","changelog":{"2.2.6":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"2.2.5":{"date":"10\/28\/2024","content":"1. [](#improved)\n   * Vendor updates for compatibility improvements \n"},"2.2.4":{"date":"05\/09\/2023","content":"1. [](#improved)\n   * Removed a deprecation message for PHP 8.2+\n"},"2.2.3":{"date":"03\/06\/2023","content":"1. [](#bugfix)\n   * Fixed an issue with default `access` and `groups` configuration not being merged into user object correctly.\n"},"2.2.2":{"date":"01\/02\/2023","content":"1. [](#bugfix)\n   * Set `composer.json` to use `^7.3.6 || ^8.0` + downgraded libs for PHP compatibility\n"},"2.2.1":{"date":"12\/28\/2022","content":"1. [](#bugfix)\n   * Fix for `remember_me` functionality not working with OAuth2 providers (always defaults to `true`)\n"},"2.2.0":{"date":"12\/28\/2022","content":"1. [](#improved)\n   * Improved Exception to show any invalid providers [#42](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/pull\/42)\n   * CSS has been improved for better consistency of layout\n   * Login button text moved to Lang file for easier modification and translation\n   * Added some debug information for async\/post calls to callback\n   * Updated Vendor libraries to latest   \n1. [](#bugfix)\n   * Don't fail with exception when provider name is invalid or empty\n   * Change `self::getCallbackUrl()` to `static::getCallbackUrl()` to support overriding the method\n   * Properly support after login redirect logic (was not working as intended)\n"},"2.1.1":{"date":"05\/24\/2021","content":"1. [](#bugfix)\n    * Fixed Facebook login never showing up [#40](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/issues\/40)\n"},"2.1.0":{"date":"05\/13\/2021","content":"1. [](#new)\n   * Require **Grav 1.7.0**\n   * Added configuration option to require existing Grav user\n   * Assign OAuth2 to existing user [#35](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/issues\/35)\n1. [](#improved)\n   * Code improvements and updates\n   * Only enable configured oauth2 providers\n1. [](#bugfix)\n    * Google: non-hosted google accounts cannot be used [#25](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/issues\/25)\n    * Fixed missing translations in the template file [#37](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/pull\/37)\n    * Fixed login buttons exceeding available width on mobile screens [#31](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/pull\/31)\n    * Fixed login redirects in admin plugin\n"},"2.0.5":{"date":"12\/02\/2020","content":"1. [](#improved)   \n    * Removed user scope from github by default [#36](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/pull\/36)\n"},"2.0.4":{"date":"06\/03\/2020","content":"1. [](#improved)    \n    * If no provider is enabled for site connections, simply omit the template [#28](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/pull\/28)\n    * Vendor updates\n    * Use `UserLogin::defaultRedirectAfterLogin()` helper method\n"},"2.0.3":{"date":"02\/24\/2019","content":"1. [](#improved)\n    * Added `copy-to-clipboard` support for Callback URIs\n    * Added support for providers that callback via POST (ie, Apple)\n    * Fixed issues with saving in Admin 1.7 with strict form validation\n"},"2.0.2":{"date":"04\/28\/2019","content":"1. [](#improved)\n    * Removed configurable callback URL.\n"},"2.0.1":{"date":"04\/28\/2019","content":"1. [](#bugfix)\n    * Fixed login version requirements (`~3.0`) [#17](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/issues\/17)\n"},"2.0.0":{"date":"04\/26\/2019","content":"1. [](#new)\n    * Support for OAuth2 login via Admin plugin\n    * Support for default groups\n1. [](#improved)\n    * Updated vendor libraries to use latest Google \/ LinkedIn providers\n1. [](#bugfix)\n    * Fix bad redirect on login error\n"},"1.0.1":{"date":"06\/07\/2018","content":"1. [](#new)\n    * Added new Hosted Domain option for Google Provider that allows to limit the login per domain [#1](https:\/\/github.com\/trilbymedia\/grav-plugin-login-oauth2\/issues\/1)\n"},"1.0.0":{"date":" 05\/18\/2018","content":"1. [](#new)\n    * Plugin released"}}},"map-quest":{"name":"Map Quest","version":"1.0.7","description":"Short code to embed an interactive MapQuest map into a page","description_html":"<p>Short code to embed an interactive MapQuest map into a page<\/p>","description_plain":"Short code to embed an interactive MapQuest map into a page","icon":"map","author":{"name":"Richard N Hainsworth","email":"rnhainsworth@gmail.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/finanalyst\/grav-plugin-map-quest","docs":"https:\/\/github.com\/finanalyst\/grav-plugin-map-quest\/blob\/develop\/README.md","keywords":"grav, plugin, mapquest, map","bugs":"https:\/\/github.com\/finanalyst\/grav-plugin-map-quest\/issues","license":"MIT","tag_name":"v1.0.7","date":"2018-06-16T02:45:36Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/map-quest\/1.0.7","repository":"https:\/\/github.com\/finanalyst\/grav-plugin-map-quest","slug":"map-quest","install_path":"user\/plugins\/map-quest","content_sha256":"286538f28aacee38de5d1568345e4cb9801f10f5484ff179fb058cacacd7d568","changelog":{"1.0.6":{"date":"14 June 2018","content":"1. [](#Enhancement)\n    * Enum option is made available for marker as well as flag\n    * Added option to provide primaryColor, secondaryColor, and size for each marker individually from within json content of marker shortcode."},"1.0.5":{"date":"11 June 2018","content":"1. [](Bugfix)\n    * TileLayer should be set to 'map' even if id of <div> element is set by 'mapname'.\n    * If Markercode returns empty array then, output is Null, not Empty Array.\n"},"1.0.4":{"date":"7 June 2018","content":"1. [](Update)\n    * Add shortcode dependency to blueprints\n"},"1.0.3":{"date":"4 June 2018","content":"1. [](Update)\n    * If no json for marker data cannot be decoded, then null is returned, so only map shown\n"},"1.0.2":{"date":"20 May 2018","content":"1. [](Update)\n    * instantiate blank titles and points in case of no valid json in marker shortcode.\n"},"1.0.1":{"date":"15 May 2018","content":"1. [](update)\n    * Some typos\n    * Better handling of twig inside Shortcode\n    * Added draggable to marker\n    * Added title for points\n    * Allowed points to be hash as well as array\n"},"0.1.0":{"date":" 05\/11\/2018","content":"1. [](#new)\n    * ChangeLog started..."}}},"sequential-form":{"name":"Sequential Form","version":"1.0.7","description":"A sequence of pages, each with a form is linked, with all form data processed according to the final process","description_html":"<p>A sequence of pages, each with a form is linked, with all form data processed according to the final process<\/p>","description_plain":"A sequence of pages, each with a form is linked, with all form data processed according to the final process","icon":"link","author":{"name":"Richard Hainsworth","email":"rnhainsworth@gmail.com"},"homepage":"https:\/\/github.com\/finanalyst\/grav-plugin-sequential-form","docs":"https:\/\/github.com\/finanalyst\/grav-plugin-sequential-form\/blob\/develop\/README.md","keywords":"grav, plugin, form, sequence","bugs":"https:\/\/github.com\/finanalyst\/grav-plugin-sequential-form\/issues","license":"MIT","tag_name":"v1.0.7","date":"2018-06-26T05:46:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/sequential-form\/1.0.7","repository":"https:\/\/github.com\/finanalyst\/grav-plugin-sequential-form","slug":"sequential-form","install_path":"user\/plugins\/sequential-form","content_sha256":"cebdb8a74e2be31d988a7ce52c797c460c9d2b8655630acb9633c9692d67fcbb","changelog":{"1.0.7":{"date":"26 June 2018","content":"1. [](#bugfix)\n    * reset page on parent route to enable shortcode-core to work.\n"},"1.0.6":{"date":"26 June 2018","content":"1. [](#bugfix)\n    * added own 'onFormValidationError' function so that errors in subprocesses are\n    handled in the first sequence.md form, and not in the subform.\n"},"1.0.5":{"date":"8 June 2018","content":"1. [](#bug fix)\n    * update to slug when on home page.\n"},"1.0.4":{"date":"6 June 2018","content":"1. [](#bug fix)\n    * fixed main form 'process' analysis for processes after sequence\n    * take name of named sequences from page header, and do not take from `new_page` parameter.\n"},"1.0.3":{"date":"13 May 2018","content":"1. [](#update)\n    * check a form exists on OnTwigSiteVariables\n    * make sure param['name'] exists"},"1.0.2":{"date":"10 May 2018","content":"1. [](#update)\n    * change TwigPageVariables to onTwigSiteVariables"},"1.0.1":{"date":"10 May 2018","content":"1. [](#update)\n    * adjust origin route to slug if origin is home page. Otherwise redirects do not work."},"1.0.0":{"date":" 05\/03\/2018","content":"1. [](#first release)\n    * ChangeLog started..."}},"dependencies":[]},"persistent-data":{"name":"Persistent Data Plugin","version":"1.2.3","description":"Store user related information persistently in site","description_html":"<p>Store user related information persistently in site<\/p>","description_plain":"Store user related information persistently in site","icon":"plug","author":{"name":"Richard Hainsworth","email":"rnhainsworth@gmail.com"},"homepage":"https:\/\/github.com\/finanalyst\/grav-plugin-persistent-data","keywords":"grav, plugin, persistent, data","bugs":"https:\/\/github.com\/finanalyst\/grav-plugin-persistent-data\/issues","license":"MIT","tag_name":"1.2.3","date":"2018-06-24T09:05:32Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/persistent-data\/1.2.3","repository":"https:\/\/github.com\/finanalyst\/grav-plugin-persistent-data","slug":"persistent-data","install_path":"user\/plugins\/persistent-data","content_sha256":"43fda5f36b2827fa6c85a55718b81b0a60742f73dfd0663cd9a80d3b0db3098f","changelog":{"1.2.3":{"date":"24 June 2018","content":"1. [](#enhancement)\n    * Add include option that only includes listed fields.\n    * Bugfix on file name -> .yaml\n"},"1.2.2":{"date":"23 June 2018","content":"1. [](#enhancement)\n    * persistent data is stored as yaml, so name with yaml extension.\n    Allows for the data to be visualised by DataManager plugin.\n"},"1.2.1":{"date":"16 June 2018","content":"1. [](#bugfix)\n    * fix wrong permission on stored file"},"1.2.0":{"date":" 04\/24\/2018","content":"1. [](#new)\n    * Initial implementation.\n2. [](#update)\n    * make sure permission on new user file is correct\n3. [](#upgrade)\n    * enhance to allow for multiple forms.\n4. [](#upgrade 29-04-2018)\n    * add configuration variable `forget_on_logout`\n    * pick up `login` event `onUserLogout` and delete persistent data file if `forget_on_logout` is true."}},"dependencies":[]},"editor":{"name":"Editor","version":"0.1.12","description":"Edit theme, plugin, and markdown files from the browser.","description_html":"<p>Edit theme, plugin, and markdown files from the browser.<\/p>","description_plain":"Edit theme, plugin, and markdown files from the browser.","icon":"edit","author":{"name":"TwelveTone LLC","email":"info@twelvetone.tv"},"dependencies":[{"name":"core-service-manager","version":">=1.1.0"},{"name":"admin-power-tools","version":">=0.1.13"}],"homepage":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-editor-plugin","docs":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-editor-plugin","keywords":"grav, plugin, css, stylesheet, editor, codemirror, twig, php, javascript","license":"MIT","tag_name":"0.1.12","date":"2020-12-10T02:52:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/editor\/0.1.12","repository":"https:\/\/github.com\/Flamenco\/grav-plugin-editor","slug":"editor","install_path":"user\/plugins\/editor","content_sha256":"4fc5fdebd6a590c659c4ef5d4870508ed8596bdc05d219aa34c08430065fa22b","changelog":{"0.1.12":{"date":" 12\/9\/2019","content":"1. [](#improvement)\n    * Make editor full height\n    "},"0.1.11":{"date":" 12\/6\/2019","content":"1. [](#bugfix)\n    * Add Grav 1.7 compatibility\n    * Use ServiceManagerUtil for dependency checks\n    "},"0.1.10":{"date":" 10\/02\/2019","content":"1. [](#improvement)\n    * Add user\/config to twig paths.\n    "},"0.1.9":{"date":" 09\/28\/2019","content":"1. [](#improvement)\n    * Add icons to dropdown list items.\n    * Update language icons.\n    "},"0.1.8":{"date":" 06\/05\/2018","content":"1. [](#bugfix)\n    * Remove negative lookbehind from regex\n    "},"0.1.7":{"date":" 06\/05\/2018","content":"1. [](#maintainance)\n    * Remove console.log from AJAX response.\n\n2. [](#bugfix)\n    * Do not rely on admin blank.html.twig.\n    "},"0.1.6":{"date":" 06\/04\/2018","content":"1. [](#new)\n    * Add support for YAML files.\n    "},"0.1.5":{"date":" 05\/21\/2018","content":"1. [](#bugfix)\n    * Add workaround for gm-scrollbar issue.\n    * Do not load file already loaded in twig.\n"},"0.1.4":{"date":" 04\/29\/2018","content":"1. [](#bugfix)\n    * Commit missing lib files that were excluded.\n"},"0.1.3":{"date":" 04\/24\/2018","content":"1. [](#bugfix)\n    * Avoid conflict with admin editor twig \n"},"0.1.2":{"date":" 04\/12\/2018","content":"1. [](#bugfix)\n    * Fix dependency versions \n"},"0.1.1":{"date":" 04\/11\/2018","content":"1. [](#bugfix)\n    * Catch exceptions in version check \n"},"0.1.0":{"date":" 04\/09\/2018","content":"1. [](#new)\n    * Initial commit"}}},"admin-power-tools":{"name":"Admin Power Tools","version":"0.1.18","description":"Power tools for Grav.","description_html":"<p>Power tools for Grav.<\/p>","description_plain":"Power tools for Grav.","icon":"plug","author":{"name":"TwelveTone LLC","email":"info@twelvetone.tv"},"dependencies":[{"name":"grav","version":">=1.0.0"},{"name":"admin","version":">=1.0.0"},{"name":"core-service-manager","version":">=1.1.4"}],"homepage":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-power-tools","docs":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-power-tools","keywords":"grav, plugin, page, add, tools, admin, create, add page, report, edit","bugs":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-power-tools","license":"MIT","tag_name":"0.1.18","date":"2025-08-31T12:38:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-power-tools\/0.1.18","repository":"https:\/\/github.com\/Flamenco\/admin-power-tools","slug":"admin-power-tools","install_path":"user\/plugins\/admin-power-tools","content_sha256":"08deb12facc23b8843d8991aee6dcdce4081fb942c2c93c291a6885990b8c321","changelog":{"0.1.18":{"date":"8\/31\/2025","content":"1. [](#bugfix)      \n    * Support PHP 8.4\n"},"0.1.17":{"date":"12\/9\/2020","content":"1. [](#bugfix)      \n    * Use an absolute path for admin routes\n   "},"0.1.16":{"date":"12\/8\/2020","content":"1. [](#bugfix)      \n    * Use CoreServiceUtil to generate URLs\n   "},"0.1.15":{"date":"12\/7\/2020","content":"1. [](#bugfix)      \n    * Fix regexp format\n   "},"0.1.14":{"date":"12\/7\/2020","content":"1. [](#improved)\n    * Remove hardcoded admin paths\n    * Update changelog sections\n2. [](#bugfix)      \n    * check that 'base_url_relative' is set\n   "},"0.1.13":{"date":"12\/6\/2020","content":"1. [](#improved)\n    * Fix whitespace formatting\n    * Set minimum height for editor\n1. [](#bugfix)\n    * Grav 1.7 Compatibility\n    * Fix invalid regex\n    * Check that base_url_relative is set\n    * Check for empty route\n    * Catch RuntimeExceptions for empty HTML\n    * Lookup root slug name\n    * Check for post data not set\n    * Strip leading slash\n    * Use correct package for Utils::startsWith\n    * Workaround for query getting removed\n    * Use CoreServiceUtil:save\n    * Disable broken tasks for Grav 1.7\n   "},"0.1.12":{"date":"09\/28\/2019","content":"1. [](#bugfix)\n    * Fix changelog date formatting\n    "},"0.1.11":{"date":"09\/22\/2019","content":"1. [](#bugfix)\n    * Remove hardcoded admin paths from report URLs\n    "},"0.1.10":{"date":"10\/10\/2018","content":"1. [](#bugfix)\n    * Add beta version in dependency util\n    "},"0.1.9":{"date":"06\/22\/2018","content":"1. [](#bugfix)\n    * Update CSS styling for section editor - Fixes issues with update messages.\n"},"0.1.8":{"date":"06\/22\/2018","content":"1. [](#bugfix)\n    * Update CSS styling for section editor - Fixes issues with update messages.\n"},"0.1.7":{"date":"06\/12\/2018","content":"1. [](#bugfix)\n    * Make Save+Back asynchronous\n"},"0.1.6":{"date":"06\/12\/2018","content":"1. [](#new)\n    * Add syntax highlight support for section editor\n    "},"0.1.5":{"date":"06\/12\/2018","content":"1. [](#feature)\n    * Add a Save+Back command to the section editor\n\n2. [](#task)\n    * Refactor section editor actions\n"},"0.1.4":{"date":"04\/11\/2018","content":"1. [](#bugfix)\n    * Catch exceptions in version check \n"},"0.1.3":{"date":"03\/29\/2018","content":"1. [](#bugfix)\n    * Use correct parameter order for startsWith()\n"},"0.1.2":{"date":"03\/29\/2018","content":"1. [](#bugfix)\n    * Fix reference to utility function startsWith()\n    "},"0.1.1":{"date":"03\/26\/2018","content":"1. [](#new)\n    * Add options to enable move_page and rename_page\n\n2. [](#bugfix)\n    * Move missing getPages() twig extension function into plugin    \n    "},"0.1.0":{"date":"03\/25\/2018","content":"1. [](#new)\n    * Initial commit"}}},"adsense":{"name":"Google AdSense","version":"2.0.0","description":"This plugin enables to use AdSense inside a page content or modular page to be rendered by Grav.","description_html":"<p>This plugin enables to use AdSense inside a page content or modular page to be rendered by Grav.<\/p>","description_plain":"This plugin enables to use AdSense inside a page content or modular page to be rendered by Grav.","icon":"google","author":{"name":"clemdesign","url":"https:\/\/www.clemdesign.fr","email":"contact@clemdesign.fr"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/clemdesign\/grav-plugin-adsense","docs":"https:\/\/github.com\/clemdesign\/grav-plugin-adsense\/blob\/master\/README.md","bugs":"https:\/\/github.com\/clemdesign\/grav-plugin-adsense\/issues","license":"MIT","tag_name":"2.0.0","date":"2019-10-15T15:19:40Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/adsense\/2.0.0","repository":"https:\/\/github.com\/clemdesign\/grav-plugin-adsense","slug":"adsense","install_path":"user\/plugins\/adsense","content_sha256":"6f595492f00283b33a0233965b05d066be1f10d911d9c9b4d08037e22a4ff512","changelog":{"2.0.0":{"date":"10\/15\/2019","content":"1.  [](#improved)\n-   Rename plugin repository `adsense2` to `adsense`.\n\n"},"1.1.4":{"date":"10\/14\/2019","content":"1.  [](#bugfix)\n-   Fix issue [#6](https:\/\/github.com\/clemdesign\/grav-plugin-adsense\/issues\/6)\n"},"1.1.3":{"date":"12\/18\/2018","content":"1.  [](#improved)\n-   Merge of Pull request [#3](https:\/\/github.com\/clemdesign\/grav-plugin-adsense\/pull\/3)\n"},"1.1.2":{"date":"06\/11\/2018","content":"1.  [](#bugfix)\n-   Fix [Issue #2](https:\/\/github.com\/clemdesign\/grav-plugin-adsense\/issues\/2)\n-   Fix issue on sandbox picture path.\n"},"1.1.1":{"date":"04\/05\/2018","content":"1.  [](#improved)\n-   Add filter feature for Auto Ads: User have possibility to Apply Auto Ads to filtered URN items.\n"},"1.1.0":{"date":"03\/24\/2018","content":"1.  [](#improved)\n-   Integrate Auto Ads (new feature of Adsense)\n"},"1.0.1":{"date":"03\/11\/2018","content":"1.  [](#bugfix)\n-   Fix issue for sandbox renderer\n\n1.  [](#improved)\n-   Update README to add GPM installation\n-   Update README to add Modular page - Fixed configuration method\n"},"1.0.0":{"date":"02\/18\/2018","content":"1.  [](#new)\n\n-   Initiate plugin inspired by [https:\/\/github.com\/muuvmuuv\/grav-plugin-adsense](https:\/\/github.com\/muuvmuuv\/grav-plugin-adsense)"}}},"markdown-tasklists":{"name":"Markdown Task Lists","version":"1.0.0","description":"Adds the ability to render task lists in Markdown","description_html":"<p>Adds the ability to render task lists in Markdown<\/p>","description_plain":"Adds the ability to render task lists in Markdown","icon":"asterisk","author":{"name":"Tim Robertson","url":"https:\/\/funkjedi.com"},"homepage":"https:\/\/github.com\/funkjedi\/grav-plugin-markdown-tasklists","keywords":"markdown","bugs":"https:\/\/github.com\/funkjedi\/grav-plugin-markdown-tasklists\/issues","license":"MIT","tag_name":"1.0.0","date":"2018-02-24T04:25:03Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-tasklists\/1.0.0","repository":"https:\/\/github.com\/funkjedi\/grav-plugin-markdown-tasklists","slug":"markdown-tasklists","install_path":"user\/plugins\/markdown-tasklists","content_sha256":"13b12333ed9b04f51750061f210fafd9da20b40a48ed6afe12a325e5ca6de4f0","changelog":{"1.0.0":{"date":"02\/24\/2018","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"lazy-image":{"name":"Lazy Image","version":"1.0.3","description":"Defers loading your page&#39;s images until they are scrolled into view.","description_html":"<p>Defers loading your page&#39;s images until they are scrolled into view.<\/p>","description_plain":"Defers loading your page&#39;s images until they are scrolled into view.","icon":"image","author":{"name":"Matthew M. Crumley","url":"https:\/\/matt.unsaturated.com","email":"matt@unsaturated.com"},"homepage":"https:\/\/github.com\/unsaturated\/grav-plugin-lazy-image","docs":"https:\/\/github.com\/unsaturated\/grav-plugin-lazy-image\/blob\/master\/README.md","demo":"https:\/\/matt.unsaturated.com\/","keywords":"grav, plugin, image, images, lazy, load, loading, delay","bugs":"https:\/\/github.com\/unsaturated\/grav-plugin-lazy-image\/issues","license":"MIT","tag_name":"1.0.3","date":"2018-04-02T01:00:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/lazy-image\/1.0.3","repository":"https:\/\/github.com\/unsaturated\/grav-plugin-lazy-image","slug":"lazy-image","install_path":"user\/plugins\/lazy-image","content_sha256":"287f0505c9a759eec9a670663de28c64d0807f2cabe738f6b91fbeb66e0ff0f1","changelog":{"1.0.3":{"date":"04\/01\/2018","content":"1. [](#bugfix)\n    * Verify `$page->content()` is a string; specify all arguments for `DiDom\\Document` constructor.\n"},"1.0.2":{"date":"03\/31\/2018","content":"1. [](#bugfix)\n    * Preserve `data-src` if already specified in content.\n"},"1.0.1":{"date":" 03\/18\/2018","content":"1. [](#bugfix)\n    * Remove unique identifier from `autoload.php`, `autoload_real.php`, and `autoload_static.php`.\n"},"1.0.0":{"date":" 02\/11\/2018","content":"1. [](#new)\n    * Initial plugin code."}},"dependencies":[]},"private-site":{"name":"Private Site","version":"0.2.0","description":"( ON BETA ) Enables user authentication and login screen for private site or page.","description_html":"<p>( ON BETA ) Enables user authentication and login screen for private site or page.<\/p>","description_plain":"( ON BETA ) Enables user authentication and login screen for private site or page.","icon":"plug","author":{"name":"DiYzzuf","email":"diyzzuf@gmail.com"},"dependencies":[{"name":"grav","version":">=1.1"},{"name":"form","version":">=1.3"},{"name":"email","version":">=2.0"},{"name":"login","version":">=2.0"}],"homepage":"https:\/\/github.com\/diyzzuf\/grav-plugin-private-site","docs":"https:\/\/github.com\/diyzzuf\/grav-plugin-private-site\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/diyzzuf\/grav-plugin-private-site\/issues","license":"MIT","tag_name":"v0.2.0","date":"2018-02-11T16:59:30Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/private-site\/0.2.0","repository":"https:\/\/github.com\/Diyzzuf\/grav-plugin-private-site","slug":"private-site","install_path":"user\/plugins\/private-site","content_sha256":"dd8f9b4b1b66468c90536ad74e27767659149ac2fe0b139a78ab091f85174af8","changelog":{"0.2.0":{"date":"11\/02\/2018","content":"1. [](#new)\n   * First Beta Release\n"},"0.1.0":{"date":" 06\/02\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"core-service-manager":{"name":"Core Service Manager","version":"1.1.4","description":"Adds a service manager layer to the Grav API.","description_html":"<p>Adds a service manager layer to the Grav API.<\/p>","description_plain":"Adds a service manager layer to the Grav API.","icon":"plug","author":{"name":"TwelveTone LLC","email":"info@twelvetone.tv"},"dependencies":[{"name":"grav","version":">=1.0.0"},{"name":"admin","version":">=1.8.3"}],"homepage":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-core-service-manager","docs":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-core-service-manager","keywords":"grav, plugin, core, service, manager, osgi, twig, ajax","bugs":"https:\/\/github.com\/flamenco\/grav-plugin-core-service-manager\/issues","license":"MIT","tag_name":"1.1.4","date":"2020-12-09T21:22:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/core-service-manager\/1.1.4","repository":"https:\/\/github.com\/Flamenco\/grav-plugin-core-service-manager","slug":"core-service-manager","install_path":"user\/plugins\/core-service-manager","content_sha256":"337948e1d64d4aac7a9b17345768e063d92c99d399524df82132f3cf251eddb2","changelog":{"1.1.4":{"date":" 12\/7\/2020","content":"1. [](#bugfix)\n   * Use an absolute path for admin routes\n   "},"1.1.3":{"date":" 12\/7\/2020","content":"1. [](#bugfix)\n   * Fix regexp format\n   "},"1.1.2":{"date":" 12\/7\/2020","content":"1. [](#bugfix)\n    * Update license year\n    * Add functions for generating routes\n    * Update changelog sections\n   "},"1.1.1":{"date":" 12\/6\/2020","content":"1. [](#bugfix)\n    * Add missing function\n\n##  12\/6\/2020\n\n1. [](#improved)\n    * Fix whitespace formatting\n    * Add core-service-util\n2. [](#bugfix)\n    * Fix startsWith() parameter order\n3. [](#improved)\n   * Add Grav v1.7 compatibility \n\n    "},"1.0.20":{"date":" 9\/21\/2019","content":"1. [](#bugfix)\n    * Update template for Grav 1.7 compatibility\n2. [](#improved)\n    * Refactor template directory layout\n3. [](#improved)\n    * Update CSS for sidebar button group\n4. [](#bugfix)\n    * Fix finicky changelog format\n    "},"1.0.19":{"date":" 9\/21\/2019","content":"1. [](#bugfix)\n    * Update template for Grav 1.7 compatibility\n2. [](#improved)\n    * Refactor template directory layout\n3. [](#improved)\n    * Update CSS for sidebar button group\n    "},"1.0.18":{"date":" 8\/28\/2019","content":"1. [](#improved)\n    * Add icon support to dropdown menus\n    "},"1.0.17":{"date":" 8\/08\/2019","content":"1. [](#bugfix)\n    * Merge admin 1.10.0 templates\n    "},"1.0.16":{"date":" 2\/09\/2019","content":"1. [](#bugfix)\n    * Register asset 'modal.js'. Fixes 'Modal is not defined'\n    "},"1.0.15":{"date":" 12\/11\/2018","content":"1. [](#bugfix)\n    * Avoid conflict with PEAR module constants\n    "},"1.0.14":{"date":" 12\/11\/2018","content":"1. [](#bugfix)\n    * Check for defined constants\n    "},"1.0.13":{"date":" 11\/26\/2018","content":"1. [](#feature)\n    * Prepare for admin v1.9.x\n"},"1.0.12":{"date":" 10\/10\/2018","content":"1. [](#bugfix)\n    * Ensure order is numeric when adding javascript asset\n"},"1.0.11":{"date":" 10\/10\/2018","content":"1. [](#bugfix)\n    * Add beta version in dependency util\n    "},"1.0.10":{"date":" 05\/31\/2018","content":"1. [](#new)\n    * Merge templates with latest admin plugin\n"},"1.0.9":{"date":" 05\/06\/2018","content":"1. [](#bugfix)\n    * Rename internal PEAR class to MYPEAR\n"},"1.0.8":{"date":" 04\/17\/2018","content":"1. [](#new)\n    * Add assets.js('bottom') to block\n"},"1.0.7":{"date":" 04\/11\/2018","content":"1. [](#bugfix)\n    * Catch exceptions in version check\n"},"1.0.6":{"date":" 04\/01\/2018","content":"1. [](#bugfix)\n    * Hide the 'more menu' if no menu items exist \n"},"1.0.5":{"date":" 03\/25\/2018","content":"1. [](#new)\n    * Add serverHandler support to action service \n    "}}},"admin-media-replace":{"name":"Admin Media Replace","version":"1.0.4","description":"Replaces media in the page media bin.","description_html":"<p>Replaces media in the page media bin.<\/p>","description_plain":"Replaces media in the page media bin.","icon":"plug","author":{"name":"TwelveTone LLC","email":"info@twelvetone.tv"},"dependencies":[{"name":"grav","version":">=1.0.0"},{"name":"admin","version":">=1.0.0"},{"name":"admin-media-actions","version":">=1.0.2"}],"homepage":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-media-replace-plugin","docs":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-media-replace-plugin","keywords":"grav, plugin, admin, media","bugs":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-media-replace-plugin","license":"MIT","tag_name":"1.0.4","date":"2018-12-11T16:01:05Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-media-replace\/1.0.4","repository":"https:\/\/github.com\/Flamenco\/grav-admin-media-replace","slug":"admin-media-replace","install_path":"user\/plugins\/admin-media-replace","content_sha256":"4149079dc33d94f2c7116f3f4a27a32553c29229023960224c69ccc0bcdfc4fa","changelog":{"1.0.4":{"date":"12\/11\/2018","content":"1. [](#feature)\n    * Update documentation\n"},"1.0.3":{"date":"2\/24\/2018","content":"1. [](#new)\n    * Check that dependencies are enabled before loading\n"},"1.0.2":{"date":"2\/24\/2018","content":"1. [](#new)\n    * Check for dependencies before loading\n"},"1.0.1":{"date":" 1\/25\/2018","content":"1. [](#new)\n    * Add dialog\n    * Add quicksend option\n    * Enforce extension, image, and file-rename options\n    * Refactor project layout\n    "},"1.0.0":{"date":" 1\/24\/2018","content":"1. [](#initial)\n    * "}}},"admin-media-move":{"name":"Admin Media Move","version":"1.0.4","description":"Moves media from one page to another.","description_html":"<p>Moves media from one page to another.<\/p>","description_plain":"Moves media from one page to another.","icon":"plug","author":{"name":"TwelveTone LLC","email":"info@twelvetone.tv"},"dependencies":[{"name":"grav","version":">=1.0.0"},{"name":"admin","version":">=1.0.0"},{"name":"admin-media-actions","version":">=1.0.0"}],"homepage":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-media-move-plugin","docs":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-media-move-plugin","keywords":"grav, plugin, admin, media","bugs":"https:\/\/github.com\/Flamenco\/grav-admin-media-move","license":"MIT","tag_name":"1.0.4","date":"2018-12-11T16:01:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-media-move\/1.0.4","repository":"https:\/\/github.com\/Flamenco\/grav-admin-media-move","slug":"admin-media-move","install_path":"user\/plugins\/admin-media-move","content_sha256":"a8ecf02b148a92b865c2e2de3abd4786970c92c331848e3bcde8e8451230f2d5","changelog":{"1.0.4":{"date":"12\/11\/2018","content":"1. [](#bugfix)\n    * Update addInlineJs load order\n    "},"1.0.3":{"date":"2\/24\/2018","content":"1. [](#new)\n    * Check that dependencies are enabled before loading\n    "},"1.0.2":{"date":"2\/24\/2018","content":"1. [](#new)\n    * Check for dependencies before loading\n"},"1.0.1":{"date":"2\/14\/2018","content":"1. [](#new)\n    * Update bugs URL\n    * Update addAction signature\n    "},"1.0.0":{"date":" 1\/24\/2018","content":"1. [](#initial)\n    * "}}},"admin-media-actions":{"name":"Admin Media Actions","version":"1.0.4","description":"A plugin that extends Grav with an API for adding actions to media items in the page media bin.  This plugin is required by other plugins that add media actions.","description_html":"<p>A plugin that extends Grav with an API for adding actions to media items in the page media bin.  This plugin is required by other plugins that add media actions.<\/p>","description_plain":"A plugin that extends Grav with an API for adding actions to media items in the page media bin.  This plugin is required by other plugins that add media actions.","icon":"plug","author":{"name":"TwelveTone LLC","email":"info@twelvetone.tv"},"dependencies":[{"name":"grav","version":">=1.0.0"},{"name":"admin","version":">=1.0.0"}],"homepage":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-media-actions-plugin","docs":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-admin-media-actions-plugin","keywords":"grav, plugin, admin, media, action","bugs":"https:\/\/github.com\/Flamenco\/grav-admin-media-actions\/issues","license":"MIT","tag_name":"1.0.4","date":"2018-12-11T16:01:33Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-media-actions\/1.0.4","repository":"https:\/\/github.com\/Flamenco\/grav-admin-media-actions","slug":"admin-media-actions","install_path":"user\/plugins\/admin-media-actions","content_sha256":"18bfd41cf8f5fdf74fed1a37ce24b7b31c310131eff0947ad979db97c4a648db","changelog":{"1.0.4":{"date":"2\/15\/2018","content":"1. [](#new)\n    * Update styles for Grav Admin v1.7.\n"},"1.0.3":{"date":"2\/15\/2018","content":"1. [](#new)\n    * Add column margin to media actions.\n    * Add border-radius to media actions.\n    "},"1.0.2":{"date":"2\/14\/2018","content":"1. [](#new)\n    * Update bugs URL.\n    * Update addAction signature\n"},"1.0.1":{"date":"2\/7\/2018","content":"1. [](#new)\n    * Show alert dialog for sample actions.\n    * Update sample action log message.\n"},"1.0.0":{"date":" 1\/24\/2018","content":"1. [](#Initial)\n    * "}}},"datatables":{"name":"Datatables","version":"1.0.4","description":"shortcode to embed DataTables jquery plugin","description_html":"<p>shortcode to embed DataTables jquery plugin<\/p>","description_plain":"shortcode to embed DataTables jquery plugin","icon":"plug","author":{"name":"Richard Hainsworth","email":"rnhainsworth@gmail.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/finanalyst\/grav-plugin-datatables","docs":"https:\/\/github.com\/finanalyst\/grav-plugin-datatables\/blob\/master\/README.md","keywords":"grav, plugin, datatables","bugs":"https:\/\/github.com\/finanalyst\/grav-plugin-datatables\/issues","license":"MIT","tag_name":"v1.0.4","date":"2018-06-07T03:19:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/datatables\/1.0.4","repository":"https:\/\/github.com\/finanalyst\/grav-plugin-datatables","slug":"datatables","install_path":"user\/plugins\/datatables","content_sha256":"1e624250716391d23f5934f39d112c49e2b4622b7a6c13b1c1356bdc50f6b2cb","changelog":{"1.0.4":{"date":"7 June 2018","content":"1. [](#update)\n    * add shortcode dependency to blueprints\n"},"1.0.3":{"date":" 02\/01\/2018","content":"1. [](#new)\n    * ChangeLog started...\n2. [](#update)\n    * correct blueprint typo\n    * add content if no <table> found\n    * modify README\n3. [](#hotfix)\n    * Assets added in `onAssetsInitialized`"}}},"sqlite":{"name":"Sqlite","version":"1.5.4","description":"Plugin to select, update and insert into an sqlite3 database","description_html":"<p>Plugin to select, update and insert into an sqlite3 database<\/p>","description_plain":"Plugin to select, update and insert into an sqlite3 database","icon":"database","author":{"name":"Richard N Hainsworth","email":"rnhainsworth@gmail.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/finanalyst\/grav-plugin-sqlite","bugs":"https:\/\/github.com\/finanalyst\/grav-plugin-sqlite\/issues","license":"MIT","tag_name":"v1.5.4","date":"2020-12-22T13:57:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/sqlite\/1.5.4","repository":"https:\/\/github.com\/finanalyst\/grav-plugin-sqlite","slug":"sqlite","install_path":"user\/plugins\/sqlite","content_sha256":"8ea7f5443afda7a51057be28358ab1e105b81836536fd0f7509cbadf9eb1f6d5","changelog":{"1.5.4":{"date":"22 Dec 2020","content":"1. [](#typo)\n``* fixed readme\n"},"1.5.3":{"date":"18 July 2020","content":"1. []](#bugfix) Extra security measure added - credit @hughbris\n"},"1.5.2":{"date":"19 December 2018","content":"1. [](#bugfix)\n    * propagate id in shortcode to table,\n    * credit to Matt Marsh @marshmn\n2. [](#bugfix)\n    * log function at line 16 SqlTableShortcode requires two parameters, not one.\n    * credit to @dlannan\n"},"1.5.1":{"date":"1 August 2018","content":"1. [](#documentation)\n    * A more elaborate example is added to show how to obtain data from a database, change data by  creating a form, then update the row in the database.\n"},"1.5.0":{"date":"16 June 2018","content":"1. [](#enhancement)\n    * Extra security option. Allows for more paranoia\n    * When enabled, each page with an [sql-table] shortcode must have explicit header permission\n        * This is to prevent shortcode being added in the front end by an editor\n1. [](#minorbug)\n    * fix file permission from 0666 to 0664\n"},"1.4.0":{"date":"23 June 2018","content":"1. [](#enhancement)\n    * More logging options, allowing for the SELECT, INSERT and UPDATE stanzas (in addition to Errors)\n    to be trapped.\n    * Append the logged data to the directory `user\/data\/sqlite` as a 'log.txt' file\n        * This allows an Administrator to view the data from within the Admin panel using the DataManager plugin.\n2. [](#change of configuration)\n    * The default configuration for the placement of the sqlite3 database is now `user\/data\/sqlite`\n"},"1.3.0":{"date":"11 June 2018","content":"1. [](#enhancement)\n    * Add `ignore` field in `sql-insert` and `sql-update`\n    * Add `error_logging` configuration option, so that SQL errors are written to hard drive\n"},"1.2.3":{"date":"7 June 2018","content":"1. [](#update)\n    * Add shortcode dependency to blueprints\n"},"1.2.2":{"date":" 5\/05\/2018","content":"1. [*](#bug and enhancement)\n    * Process `sqlite-insert` corrected to `sql-insert`\n    * Removed fields provided by `Form` plugin, viz. `_xxx` & `form-nonce`\n"},"1.2.1":{"date":" 5 May 2018","content":"1. [*](#minor)\n        * error in translate call\n"},"1.0.0 - v1.2.0":{"date":" < 28 April 2018","content":"1. [*](#new)\n    * Initial work\n2. [*](#minor)\n    * Removal of debug code\/messages\n    * refactor in case of zero data in form.\n3. [*](#minor)\n    * Allow for `where` to be a Form Field as well as a Process parameters\n4. [*](#major)\n    * New sql option to provide json serialisation instead of HTML serialisation of data"}}},"quicksave":{"name":"Quick Save","version":"1.0.13","description":"Save your page content without requiring a refresh or scroll reset.","description_html":"<p>Save your page content without requiring a refresh or scroll reset.<\/p>","description_plain":"Save your page content without requiring a refresh or scroll reset.","icon":"save","author":{"name":"TwelveTone LLC","email":"info@twelvetone.tv"},"dependencies":[{"name":"grav","version":">=1.0.0"},{"name":"admin","version":">=1.0.0"},{"name":"core-service-manager","version":">=1.1.0"}],"homepage":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-quick-save-plugin","docs":"https:\/\/www.twelvetone.tv\/docs\/developer-tools\/grav-plugins\/grav-quick-save-plugin","keywords":"grav, plugin, scroll, save, ajax, refresh, fast, quick","bugs":"https:\/\/github.com\/flamenco\/grav-plugin-quicksave\/issues","license":"MIT","tag_name":"1.0.13","date":"2020-12-07T03:59:23Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/quicksave\/1.0.13","repository":"https:\/\/github.com\/Flamenco\/grav-plugin-quicksave","slug":"quicksave","install_path":"user\/plugins\/quicksave","content_sha256":"e2e72da9268fad7455a25d1df68c8e64ee20c8135be1e9a050edb1ac625f2156","changelog":{"1.0.13":{"date":" 12\/6\/2020","content":"1. [](#bugfix)\n    * Check for core dependency\n"},"1.0.12":{"date":" 12\/6\/2020","content":"1. [](#bugfix)\n    * Grav v 1.7 compatibility\n    * Use core-service-util for dependency check\n    * Use core-service-util for save\n"},"0.1.11":{"date":" 11\/6\/2019","content":"1. [](#bugfix)\n    * Initialize pages in admin scope\n"},"0.1.10":{"date":" 3\/20\/2019","content":"1. [](#bugfix)\n    * Add strict mode syntax\n"},"0.1.9":{"date":" 3\/20\/2019","content":"1. [](#feature)\n    * Add support for the TinyMCE plugin\n"},"0.1.8":{"date":" 11\/26\/2018","content":"1. [](#bugfix)\n    * Do not rely on jQuery when installing the plugin's Javascript\n"},"0.1.7":{"date":" 04\/17\/2018","content":"1. [](#new)\n    * Remove redundant pages.html.twig override\n"},"0.1.6":{"date":" 04\/16\/2018","content":"1. [](#new)\n    * Add licensing info to source files\n    * Add support for custom markdown editors\n    "},"0.1.4":{"date":" 03\/15\/2018","content":"1. [](#new)\n    * Add keyboard shortcut to quick save (Shift-Meta-A)\n    * Add CSS for multiline button\n    * Add runtime dependency check\n    * Use core service manager\n    "},"0.1.5":{"date":" 03\/25\/2018","content":"1. [](#new)\n    * Add option to use Shift-Meta-S or Shift-Control-S as the keyboard shortcut\n    "},"0.1.3":{"date":" 02\/06\/2018","content":"1. [](#new)\n    * Nothing new\n    "},"0.1.2":{"date":" 02\/06\/2018","content":"1. [](#new)\n    * Update documentation links\n    * Update error messages\n    * Remove comments from twig\n    * Use array_merge in onAdminTwigTemplatePaths() \n    "},"0.1.1":{"date":" 02\/05\/2018","content":"1. [](#new)\n    * Update documentation links\n    * Update error messages\n    * Remove comments from twig\n"},"0.1.0":{"date":" 01\/31\/2018","content":"1. [](#new)\n    * Initial release."}}},"scrolled-table-shortcode":{"name":"Scrolled Table Shortcode","version":"1.0.1","description":"Provides a table container in which the body of the table scrolls","description_html":"<p>Provides a table container in which the body of the table scrolls<\/p>","description_plain":"Provides a table container in which the body of the table scrolls","icon":"table","author":{"name":"RNH","email":"rnhainsworth@gmail.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/finanalyst\/grav-plugin-scrolled-table-shortcode","bugs":"https:\/\/github.com\/finanalyst\/grav-plugin-scrolled-table-shortcode\/issues","license":"MIT","tag_name":"v1.0.1","date":"2018-06-07T03:20:41Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/scrolled-table-shortcode\/1.0.1","repository":"https:\/\/github.com\/finanalyst\/grav-plugin-scrolled-table-shortcode","slug":"scrolled-table-shortcode","install_path":"user\/plugins\/scrolled-table-shortcode","content_sha256":"a7d9f0d567738f86470e3baf522257b31c6a9184572433172e7dc14393da1ff4","changelog":{"1.0.1":{"date":"7 June 2018","content":"1. [](#update)\n    * Add shortcode depedency to blueprints\n    "},"1.0.0":{"date":" 01\/24\/2018","content":"1. [](#new)\n    * Initialisation"}}},"haml":{"name":"Haml","version":"0.1.0","description":"Haml Twig template support","description_html":"<p>Haml Twig template support<\/p>","description_plain":"Haml Twig template support","icon":"plug","author":{"name":"Numa for D-facto Lab","email":"info@dfacto.ch"},"homepage":"https:\/\/github.com\/numito\/grav-haml","docs":"https:\/\/github.com\/numito\/grav-haml\/README.md","demo":"http:\/\/www.fabbricapienza.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/numito\/grav-haml\/issues","license":"MIT","tag_name":"0.1","date":"2018-01-04T16:13:11Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/haml\/0.1.0","repository":"https:\/\/github.com\/dfacto-lab\/grav-haml","slug":"haml","install_path":"user\/plugins\/haml","content_sha256":"78adbe73eec3bd6ca2d642c8d3861ee83b8e1f70bf3ce6a0b0fa246896e84c1e","changelog":{"0.1.0":{"date":" 08\/16\/2017","content":"1. [](#new)\n    * first version with integration of haml template inside grav"}},"dependencies":[]},"hax":{"name":"HAX","version":"9.0.6","description":"HAX Headless authoring eXperience made available to GravCMS","description_html":"<p>HAX Headless authoring eXperience made available to GravCMS<\/p>","description_plain":"HAX Headless authoring eXperience made available to GravCMS","icon":"google","author":{"name":"Bryan Ollendyke","url":"https:\/\/haxtheweb.org","email":"hax@psu.edu"},"dependencies":[{"name":"admin","version":"*"},{"name":"atools","version":"*"},{"name":"webcomponents","version":"*"}],"homepage":"https:\/\/github.com\/haxtheweb\/grav-plugin-hax","keywords":"webcomponents,hax,lit,plugin","bugs":"https:\/\/github.com\/haxtheweb\/grav-plugin-hax\/issues","license":"Apache 2.0","tag_name":"9.0.6","date":"2024-11-14T18:56:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/hax\/9.0.6","repository":"https:\/\/github.com\/haxtheweb\/grav-plugin-hax","slug":"hax","install_path":"user\/plugins\/hax","content_sha256":"b605e085838e2f9561f6bf22706bdae516e9bf9b5123d075c81a7247aaba1372","changelog":false},"admin-addon-media-sort":{"name":"Admin Addon Media Sort","version":"0.1.0","description":"A simple addon which adds the option to reorder media files in the admin panel per drag and drop.","description_html":"<p>A simple addon which adds the option to reorder media files in the admin panel per drag and drop.<\/p>","description_plain":"A simple addon which adds the option to reorder media files in the admin panel per drag and drop.","icon":"plug","author":{"name":"Alex K\u00e4fer","email":"alex.kaefer@ui-designs.de"},"homepage":"https:\/\/github.com\/alka-dev\/grav-plugin-admin-addon-media-sort.git","docs":"https:\/\/github.com\/alka-dev\/grav-plugin-admin-addon-media-sort\/blob\/master\/README.md","keywords":"grav, plugin, admin, media","bugs":"https:\/\/github.com\/alka-dev\/grav-plugin-admin-addon-media-sort\/issues","license":"MIT","tag_name":"v1.0","date":"2017-12-24T00:10:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-addon-media-sort\/0.1.0","repository":"https:\/\/github.com\/alka-dev\/grav-plugin-admin-addon-media-sort","slug":"admin-addon-media-sort","install_path":"user\/plugins\/admin-addon-media-sort","content_sha256":"d2e4344965a2f9a8dddd46ef8cbb98bdfb261dec11385dc4a02c931a8201baab","changelog":{"0.1.0":{"date":" 12\/21\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"codepen-embed":{"name":"Codepen Embed","version":"0.1.0","description":"easily embed codepens from markdown","description_html":"<p>easily embed codepens from markdown<\/p>","description_plain":"easily embed codepens from markdown","icon":"plug","author":{"name":"Andrew Scofield","email":"andrew@andrewscofield.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/andrewscofield\/grav-plugin-codepen-embed","docs":"https:\/\/github.com\/andrewscofield\/grav-plugin-codepen-embed\/blob\/develop\/README.md","demo":"http:\/\/andrewscofield.com\/","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/andrewscofield\/grav-plugin-codepen-embed\/issues","license":"MIT","tag_name":"0.1.0","date":"2017-12-22T07:32:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/codepen-embed\/0.1.0","repository":"https:\/\/github.com\/andrewscofield\/grav-plugin-codepen-embed","slug":"codepen-embed","install_path":"user\/plugins\/codepen-embed","content_sha256":"85514c7fddaebf7f1bf83b8ddbb56d134a8c19ab1a3d4cf2f73a7cd734d9d391","changelog":{"0.1.0":{"date":" 12\/20\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"image-captions":{"name":"Image Captions","version":"2.1.1","description":"Looks for images with defined title attribute and converts them to fig-captions.","description_html":"<p>Looks for images with defined title attribute and converts them to fig-captions.<\/p>","description_plain":"Looks for images with defined title attribute and converts them to fig-captions.","icon":"image","author":{"name":"Trilby Media, LLC","email":"devs@trilby.media"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions\/blob\/develop\/README.md","keywords":"image, caption, figure, figcaption, grav, plugin","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions\/issues","license":"MIT","tag_name":"2.1.1","date":"2026-05-05T14:11:20Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/image-captions\/2.1.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions","slug":"image-captions","install_path":"user\/plugins\/image-captions","content_sha256":"e61e182f36a96de3db8f6fd591a2ceb1568d496e6739be6b7117f92b259866eb","changelog":{"2.1.1":{"date":"04\/29\/2026","content":"1. [](#bugfix)\n    * Patched bundled `imangazaliev\/didom` for PHP 8.4 compatibility \u2014 implicitly nullable parameters in `Document::load()` and `Element::attributes()` now use the explicit `?type` syntax. Removes the deprecation notice on PHP 8.4.\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"2.1.0":{"date":"05\/08\/2023","content":"1. [](#improved)\n   * Upgraded to latest `v2.0.1` of DiDOM library to support PHP 8.0\n"},"2.0.3":{"date":"12\/03\/2021","content":"1. [](#improved)\n   * Improved default `scope` to ensure that existing `<figure>` tags are not double-processed\n   * Alt attribute as the caption source [#15](https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions\/issues\/15)\n   * Updated vendor libraries\n"},"2.0.2":{"date":"12\/02\/2020","content":"1. [](#improved)\n  * Updated vendor libraries\n  * Use `Page::getRawContent()` rather than `Page::content()` to stop any potential 'looping'\n"},"2.0.1":{"date":"04\/23\/2019","content":"1. [](#improved)\n  * Updated `didom` library to 1.14.1\n"},"2.0.0":{"date":"01\/31\/2019","content":"1. [](#new)\n  * Added the ability to override settings per-page [#5](https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions\/issues\/5)\n1. [](#bugfix)\n  * Fixed various issues with multiple image captions [#2](https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions\/issues\/2)\n"},"1.0.3":{"date":"07\/27\/2018","content":"1. [](#improved)\n    * Remove extra `<p>` tags surrounding figure that breaks W3C validation [#8](https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions\/issues\/8)\n1. [](#bugfix)\n    * Remove extra `<html>` and `<body>` tags from output [#9](https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions\/pull\/9)\n    * Extra check for empty content causing out of memory or loop errors [grav#2113](https:\/\/github.com\/getgrav\/grav\/issues\/2113)\n"},"1.0.2":{"date":"07\/13\/2018","content":"1. [](#bugfix)\n    * Empty page throws errors [#7](https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions\/pull\/7)\n"},"1.0.1":{"date":"12\/17\/2017","content":"1. [](#bugfix)\n    * Empty page throws errors [#1](https:\/\/github.com\/trilbymedia\/grav-plugin-image-captions\/issues\/1)\n"},"1.0.0":{"date":"11\/15\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"frontend-edit-button":{"name":"Frontend Edit Button","version":"1.2.2","description":"Adds an &#39;edit this page&#39; on the frontend when logged in as administrator","description_html":"<p>Adds an &#39;edit this page&#39; on the frontend when logged in as administrator<\/p>","description_plain":"Adds an &#39;edit this page&#39; on the frontend when logged in as administrator","icon":"newspaper-o","author":{"name":"Johan van de Merwe","url":"https:\/\/github.com\/enovision","email":"j.vd.merwe@enovision.net"},"homepage":"https:\/\/github.com\/enovision\/grav-frontend-edit-button","docs":"https:\/\/github.com\/enovision\/grav-frontend-edit-button\/blob\/master\/README.md","keywords":"grav, plugin, frontend","bugs":"https:\/\/github.com\/enovision\/grav-frontend-edit-button\/issues","license":"MIT","tag_name":"1.2.2.2","date":"2021-05-13T00:55:29Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/frontend-edit-button\/1.2.2","repository":"https:\/\/github.com\/enovision\/grav-frontend-edit-button","slug":"frontend-edit-button","install_path":"user\/plugins\/frontend-edit-button","content_sha256":"7179aa242b3ce2e7bb2f818fe5e2472dd67aa7f070382998e5c4ec5197ef399c","changelog":{"1.2.3":{"date":"12-05-2021","content":"1. [](#modification)\n    * [solved] Portugese translation added\n"},"1.2.2":{"date":"14-01-2019","content":"1. [](#bug)\n    * [solved] Problem with assets organization solved, button sometimes didn't show properly\n"},"1.2.1":{"date":"28-10-2018","content":"1. [](#bug)\n    * [solved] Button was not removed, even when admin cookie did not exist (anymore)\n"},"1.2":{"date":"25-10-2018","content":"1. [](#modification)\n    * Restructuring of the assets folder and combined sass\/css.\n    * Corrected bug where button was only shown after doing a page refresh\n"},"1.0.12.1":{"date":"19-10-2018","content":"1. [](#bugfix)\n    * Corrected the check if admin is logged on. In the former version the button was not on shown when not logged in.\n    * Version 1.12 (former version) is not working with release 1.5 and later of Grav CMS. \n"},"1.0.12":{"date":"22-07-2018","content":"1. [](#bugfix)\n    * Corrected that the button still was showing sometimes, even after the admin was logged out. (Paul Hibbits, thanks for noticing)\n"},"1.0.11":{"date":"16-07-2018","content":"1. [](#bugfix)\n    * Corrected that page kept on refreshing, even after logged out. Now it refreshes 1 time after logging out to remove the button and the JavaScript to reload the page.\n"},"1.0.10":{"date":"13-07-2018","content":"1. [](#bugfix)\n    * Button is not displayed anymore when admin has logged out, button disappears after refresh (when clicking the tab with the page)\n\n"},"1.0.9":{"date":"02-06-2018","content":"1. [](#feature)\n    * Automatic update of the contents in other tabs is now optional\n"},"1.0.8":{"date":"23-03-2018","content":"1. [](#feature)\n    * Button icon is now an independent font for this plugin\n2. [](#new)\n    * New language Croatian\n\n"},"1.0.7":{"date":"16-03-2018","content":"1. [](#feature)\n    * Optional, if user has to be logged in before showing the button\n"},"1.0.6":{"date":"15-03-2018","content":"1. [](#bugfix)\n    * Fix for incorrect edit button href\n2. [](#new)\n    * New language Spanish and Catalunian\n"},"1.0.5":{"date":" 27-01-2018","content":"1. [](#bugfix)\n    * Solved problem of multilanguage URL redirecting to wrong corresponding URL in backend\n\n2. [](#bugfix)\n    * Updated README.md content\n"},"1.0.4":{"date":" 16-12-2017","content":"1. [](#bugfix)\n    * Solved the hardcoded '\/admin' in relocate URL in case the admin route has been modified to something other than '\/admin'\n\n2. [](#bugfix)\n    * Updated README.md content\n\n3. [](#bugfix)\n    * Renamed some files\n"},"1.0.3":{"date":" 14-10-2017","content":"1. [](#bugfix)\n    * Solved problem when Grav is installed in sub folder\n"},"1.0.2":{"date":" 01-11-2017","content":"1. [](#bugfix)\n    * Solved issue when Grav is installed in sub folder \n\n"},"1.0.1":{"date":" 04-08-2017","content":"1. [](#bugfix)\n    * Problem solved with `NULL` on the `header()` function\n     in the `onOutputGenerated` event\n\n"},"1.0.0":{"date":" 04-03-2017","content":"1. [](#new)\n    * Initial version committed to Github"}},"dependencies":[]},"webcomponents":{"name":"Web components loader","version":"9.0.6","description":"Loads web components and associated polyfill so you can use custom elements in your site.","description_html":"<p>Loads web components and associated polyfill so you can use custom elements in your site.<\/p>","description_plain":"Loads web components and associated polyfill so you can use custom elements in your site.","icon":"google","author":{"name":"Bryan Ollendyke","url":"https:\/\/haxtheweb.org\/","email":"bto108@psu.edu"},"homepage":"https:\/\/github.com\/haxtheweb\/grav-plugin-webcomponents","keywords":"webcomponents, lit, plugin","bugs":"https:\/\/github.com\/haxtheweb\/grav-plugin-webcomponents\/issues","license":"Apache 2.0","tag_name":"9.0.6","date":"2024-11-14T19:26:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/webcomponents\/9.0.6","repository":"https:\/\/github.com\/haxtheweb\/grav-plugin-webcomponents","slug":"webcomponents","install_path":"user\/plugins\/webcomponents","content_sha256":"4160567a7534632791712afcbd111b740fcdbbec703ef455b9e512513bb03dbc","changelog":[],"dependencies":[]},"simple-responsive-tables":{"name":"Simple Responsive Tables","version":"1.1.1","description":"Wraps tables in a div, enabling them to be scrolled vertically on small screens.","description_html":"<p>Wraps tables in a div, enabling them to be scrolled vertically on small screens.<\/p>","description_plain":"Wraps tables in a div, enabling them to be scrolled vertically on small screens.","icon":"table","author":{"name":"Beni Gartenmann","email":"mail@benigartenmann.ch"},"homepage":"https:\/\/github.com\/bgartenmann\/grav-plugin-simple-responsive-tables","docs":"https:\/\/github.com\/bgartenmann\/grav-plugin-simple-responsive-tables\/blob\/develop\/README.md","keywords":"grav, plugin, table, responsive, wrap","bugs":"https:\/\/github.com\/bgartenmann\/grav-plugin-simple-responsive-tables\/issues","license":"MIT","tag_name":"v1.1.1","date":"2017-11-03T11:06:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/simple-responsive-tables\/1.1.1","repository":"https:\/\/github.com\/bgartenmann\/grav-plugin-simple-responsive-tables","slug":"simple-responsive-tables","install_path":"user\/plugins\/simple-responsive-tables","content_sha256":"8351171a676c28cfaf01e0b17fc5b138856e75b96654f1e422639cdf5abf4a0f","changelog":{"1.1.1":{"date":" 11\/03\/2017","content":"1. [](#bugfix)\n    * enable `onPageContentProcessed` and `onTwigSiteVariables` directly in `onPluginsInitialized`. Otherwise it would not work, if another plugin uses the same hooks (like grav-plugin-shortcode-core).\n2. [](#improved)\n    * only include css and js files, if the plugin is active on current page\n\n"},"1.1.0":{"date":" 10\/27\/2017","content":"1. [](#new)\n    * Introduced new config \"active\" which is false by default. Enables the user to activate the plugin for the entire site or only specific pages.\n"},"1.0.1":{"date":" 10\/25\/2017","content":"1. [](#bugfix)\n    * Fixed code and list styling in the README\n"},"1.0.0":{"date":" 10\/25\/2017","content":"1. [](#new)\n    * Initial release"}},"dependencies":[]},"one-time-login":{"name":"One Time Login","version":"0.2.5","description":"Generates a one-time login URL via the CLI for an existing user.","description_html":"<p>Generates a one-time login URL via the CLI for an existing user.<\/p>","description_plain":"Generates a one-time login URL via the CLI for an existing user.","icon":"key","author":{"name":"Jeremy Gonyea","email":"jeremy.gonyea@gmail.com"},"dependencies":[{"name":"admin","version":"*"},{"name":"login","version":"*"}],"homepage":"https:\/\/github.com\/jgonyea\/grav-plugin-one-time-login","docs":"https:\/\/github.com\/jgonyea\/grav-plugin-one-time-login\/blob\/develop\/README.md","keywords":"grav, user, login, one-time, cli","bugs":"https:\/\/github.com\/jgonyea\/grav-plugin-one-time-login\/issues","license":"MIT","tag_name":"0.2.5","date":"2025-06-05T23:04:51Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/one-time-login\/0.2.5","repository":"https:\/\/github.com\/jgonyea\/grav-plugin-one-time-login","slug":"one-time-login","install_path":"user\/plugins\/one-time-login","content_sha256":"7ab915110515ea757de34862503a16356241ab95cd4bb2f57dae55d5372614c6","changelog":{"0.2.5":{"date":"06\/05\/2025","content":"1. [](#new)\n2. [](#improved)\n    * Updated help text.\n3. [](#bugfix)\n"},"0.2.4":{"date":"06\/03\/2025","content":"1. [](#new)\n2. [](#improved)\n    * Support for admin panels with custom routes.\n3. [](#bugfix)\n"},"0.2.3":{"date":"05\/29\/2025","content":"1. [](#new)\n2. [](#improved)\n3. [](#bugfix)\n    * Regression fix for CLI command in Grav <1.8\n"},"0.2.2":{"date":"10\/25\/2024","content":"1. [](#new)\n2. [](#improved)\n3. [](#bugfix)\n    * Updated compatibility for Grav 1.8-beta.\n"},"0.2.1":{"date":"03\/11\/2022","content":"1. [](#new)\n2. [](#improved)\n3. [](#bugfix)\n    * Fixed documentation.  Disabling split session no longer required."},"0.2.0":{"date":"03\/11\/2022","content":"1. [](#new)\n    * Changed otl_route default to '\/admin\/otl' to address split-session system configurations.\n2. [](#improved)\n    * Redirects and notifications optimized.\n    * User-side validation of the otl_route.\n3. [](#bugfix)\n"},"0.1.6":{"date":"11\/20\/2018","content":"1. [](#new)\n    * Messages display to website if an invalid OTL URL is attempted.\n\n2. [](#improved)\n    * Readme instructions for using OTL URL's for admin section.\n\n3. [](#bugfix)\n    * Invalid usernames during the OTL generation now display an error and no longer create empty users.\n    * Invalid OTL URL's no longer crash Grav.\n"},"0.1.5":{"date":"10\/20\/2017","content":"1. [](#new)\n    * CLI generated URL now authenticates as that user to the site instead of just presenting a password reset form.\n\n2. [](#improved)\n    * CLI options are better defined\n\n3. [](#bugfix)\n\n"},"0.1.0":{"date":" 10\/13\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"freshdesk":{"name":"Freshdesk","version":"1.0.1","description":"Adds a form action to create a Freshdesk ticket","description_html":"<p>Adds a form action to create a Freshdesk ticket<\/p>","description_plain":"Adds a form action to create a Freshdesk ticket","icon":"headphones","author":{"name":"Beno\u00eet Rouleau","email":"benoit.rouleau@icloud.com"},"dependencies":[{"name":"form","version":"^2.0 || ^3.0 || ^4.0"}],"homepage":"https:\/\/github.com\/benface\/grav-plugin-freshdesk","docs":"https:\/\/github.com\/benface\/grav-plugin-freshdesk\/blob\/master\/README.md","keywords":"grav, plugin, freshdesk","bugs":"https:\/\/github.com\/benface\/grav-plugin-freshdesk\/issues","license":"MIT","tag_name":"1.0.1","date":"2019-10-29T16:50:46Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/freshdesk\/1.0.1","repository":"https:\/\/github.com\/benface\/grav-plugin-freshdesk","slug":"freshdesk","install_path":"user\/plugins\/freshdesk","content_sha256":"922a1bc8838993004b19608edcd44a5912dd77d97afa27c9ae6713a9e58fdc76","changelog":{"1.0.1":{"date":"29\/10\/2019","content":"1. [](#improved)\n    * Marked as compatible with versions 3 and 4 of the Form plugin\n"},"1.0.0":{"date":"19\/10\/2017","content":"1. [](#new)\n    * First release"}}},"proposal":{"name":"Proposal","version":"1.0.1","description":"[Create online sales proposals for free](https:\/\/github.com\/jackbrycesmith\/grav-plugin-proposal) & let the recipient accept by paying a \ud83d\udcb3 deposit with Stripe.","description_html":"<p><a href=\"https:\/\/github.com\/jackbrycesmith\/grav-plugin-proposal\">Create online sales proposals for free<\/a> &amp; let the recipient accept by paying a \ud83d\udcb3 deposit with Stripe.<\/p>","description_plain":"Create online sales proposals for free &amp; let the recipient accept by paying a \ud83d\udcb3 deposit with Stripe.","icon":"briefcase","author":{"name":"Jack Bryce-Smith","url":"https:\/\/markage.uk","email":"mail@markage.uk"},"homepage":"https:\/\/github.com\/jackbrycesmith\/grav-plugin-proposal","docs":"https:\/\/github.com\/jackbrycesmith\/grav-plugin-proposal\/blob\/master\/README.md","keywords":"grav, plugin, proposal, sales, markdown, stripe","bugs":"https:\/\/github.com\/jackbrycesmith\/grav-plugin-proposal\/issues","license":"MIT","tag_name":"1.0.1","date":"2019-11-02T11:07:06Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/proposal\/1.0.1","repository":"https:\/\/github.com\/jackbrycesmith\/grav-plugin-proposal","slug":"proposal","install_path":"user\/plugins\/proposal","content_sha256":"c11dfd4adcc38e31ea8eed2d470782097187fc247cf54a564354b6167e43ae23","changelog":{"1.0.1":{"date":" 02-11-2019","content":"1. [](#bugfix)\n   * Correct documention link\n"},"1.0.0":{"date":" 16-10-2017","content":"1. [](#new)\n    * Initial Release"}},"dependencies":[]},"speech-bubble":{"name":"Speech Bubble","version":"2.1.0","description":"The Speech Bubble Plugin is for Grav CMS. Easily display a dialogue style speech bubble.","description_html":"<p>The Speech Bubble Plugin is for Grav CMS. Easily display a dialogue style speech bubble.<\/p>","description_plain":"The Speech Bubble Plugin is for Grav CMS. Easily display a dialogue style speech bubble.","icon":"comments-o","author":{"name":"Kazuya Kanatani","email":"kanatani.social@gmail.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/kinformation\/grav-plugin-speech-bubble","docs":"https:\/\/github.com\/kinformation\/grav-plugin-speech-bubble\/blob\/master\/README.md","keywords":"grav, plugin, speech bubble","bugs":"https:\/\/github.com\/kinformation\/grav-plugin-speech-bubble\/issues","license":"MIT","tag_name":"v2.1.0","date":"2017-11-03T14:48:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/speech-bubble\/2.1.0","repository":"https:\/\/github.com\/kinformation\/grav-plugin-speech-bubble","slug":"speech-bubble","install_path":"user\/plugins\/speech-bubble","content_sha256":"7dc3870ff76fb31bc3869c97c3cdb9acc7f24a42ccb9d24bd5572adb13992c14","changelog":{"2.1.0":{"date":" 11\/03\/2017","content":"1. [](#improved)\n    * Improved icon designation method of config.\n    * Improve image resizing.\n"},"2.0.2":{"date":" 10\/29\/2017","content":"1. [](#improved)\n    * Update css.\n"},"2.0.0":{"date":" 10\/26\/2017","content":"1. [](#new)\n    * Add new bubble style.\n1. [](#improved)\n    * Change CSS to Sass(SCSS).\n"},"1.1.0":{"date":" 10\/18\/2017","content":"1. [](#new)\n    * Added pattern of icon shape\n    * Icon label display function\n1. [](#improved)\n    * Change default icon\n"},"1.0.0":{"date":" 10\/13\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"fetchwp":{"name":"FetchWP","version":"0.6.0","description":"This plugin fetches and displays posts from the Wordpress REST Api.","description_html":"<p>This plugin fetches and displays posts from the Wordpress REST Api.<\/p>","description_plain":"This plugin fetches and displays posts from the Wordpress REST Api.","icon":"wordpress","author":{"name":"Christian Pannwitz","url":"https:\/\/github.com\/cpannwitz","email":"ch.von.pa@googlemail.com"},"homepage":"https:\/\/github.com\/cpannwitz\/grav-plugin-fetchwp","keywords":"plugin, grav, wordpress","bugs":"https:\/\/github.com\/cpannwitz\/grav-plugin-fetchwp\/issues","license":"MIT","tag_name":"v0.6.0","date":"2017-09-29T14:59:01Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/fetchwp\/0.6.0","repository":"https:\/\/github.com\/cpannwitz\/grav-plugin-fetchwp","slug":"fetchwp","install_path":"user\/plugins\/fetchwp","content_sha256":"07697a2027ff7a163f0970cf076646189939273ee4acc7a528e9858b9c87d34c","changelog":{"0.6.0":{"date":"09\/29\/2017","content":"1. [](#new)\n    * Added missing files for publishing\n    * Neutral standart template implemented\n    * Made more queries available\n"},"0.5.0":{"date":"09\/27\/2017","content":"1. [](#new)\n    * Changelog started\n    * First development\n"}},"dependencies":[]},"tinymce-editor":{"name":"TinyMCE Editor Integration","version":"1.3.3","description":"This is _the_ TinyMCE integration plugin for those not chosen to love Markdown over all comfort.","description_html":"<p>This is <em>the<\/em> TinyMCE integration plugin for those not chosen to love Markdown over all comfort.<\/p>","description_plain":"This is the TinyMCE integration plugin for those not chosen to love Markdown over all comfort.","icon":"edit","author":{"name":"Newb I the Newbd","url":"https:\/\/github.com\/newbthenewbd"},"homepage":"https:\/\/github.com\/newbthenewbd\/grav-plugin-tinymce-editor","docs":"https:\/\/github.com\/newbthenewbd\/grav-plugin-tinymce-editor\/blob\/develop\/README.md","keywords":"tinymce, html, wysiwyg, editor, integration, plugin","bugs":"https:\/\/github.com\/newbthenewbd\/grav-plugin-tinymce-editor\/issues","license":"Integration plugin under the MIT License, TinyMCE under LGPL 2.1","tag_name":"v1.3.3","date":"2021-03-02T16:01:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tinymce-editor\/1.3.3","repository":"https:\/\/github.com\/newbthenewbd\/grav-plugin-tinymce-editor","slug":"tinymce-editor","install_path":"user\/plugins\/tinymce-editor","content_sha256":"0734dd0b6fcda51342e90358d1feaf57571bd4f5d81cd0b62a449c4f6c3ee89a","changelog":{"1.3.3":{"date":" 02-03-2021","content":"1. [](#bugfix)\n    * Worked around an error while saving a page in a new language without Flex Pages\n"},"1.3.2":{"date":" 16-01-2021","content":"1. [](#bugfix)\n    * Fixed languages.yaml\n"},"1.3.1":{"date":" 12-01-2021","content":"1. [](#bugfix)\n    * Fixed the handling of HTML void elements\n"},"1.3.0":{"date":" 09-01-2021","content":"1. [](#new)\n    * **Deprecated the semi-absolute media path handling in favor of fully relative paths - existing media will keep working on pages, but issues with its rendering may occur in the editor, and the function that automatically updates absolute URLs of media is scheduled for removal in v2.0.0**\n    * **Deprecated processing Twig inside the HTML attributes used for media URLs without `twig_first: true` set - starting with v2.0.0, `twig_first` will have to be set to `true` and `never_cache_twig` to `false` on pages using Twig in the composition of HTML media URL attributes; for relative media paths, this change is effective immediately**\n    * Updated TinyMCE to 4.9.11\n    * Added a whitelist and a blacklist for customizing on which pages TinyMCE is used\n    * Added the `evals` field for advanced TinyMCE parameters, only modifiable directly in `tinymce-editor.yaml`\n2. [](#improved)\n    * Made dragging and dropping media into the editor work\n    * Reworked how TinyMCE is initialized for minor performance gains\n    * Improved fullscreen handling\n3. [](#bugfix)\n    * Fixed API key warnings when no key is entered\n    * Suppressed the console warnings that appeared as the inserted media type was determined\n    * Worked around the GHSA-w7jx-j77m-wp65 vulnerability in TinyMCE\n"},"1.2.7":{"date":" 16-09-2019","content":"1. [](#improved)\n    * Updated TinyMCE to 4.9.6\n2. [](#bugfix)\n    * Fixed the handling of fields with `validate.required` set to true\n"},"1.2.6":{"date":" 22-02-2019","content":"1. [](#bugfix)\n    * Fixed the handling of tinymce fields unrelated to pages\n"},"1.2.5":{"date":" 14-12-2018","content":"1. [](#bugfix)\n    * Fixed the handling of what libxml considers to be invalid tags\n"},"1.2.4":{"date":" 03-12-2018","content":"1. [](#bugfix)\n    * Fixed the handling of libxml versions older than 2.7.8\n"},"1.2.3":{"date":" 15-10-2018","content":"1. [](#improved)\n    * Removed a sillier overlooked debug check that magically appeared in v1.2.2\n"},"1.2.2":{"date":" 15-10-2018","content":"1. [](#improved)\n    * Improved the method used for TinyMCE path lookups\n    * Removed a debug check from the code that was previously overlooked\n"},"1.2.1":{"date":" 01-10-2018","content":"1. [](#bugfix)\n    * Fixed the handling of Grav installs in subdirectories\n"},"1.2.0":{"date":" 27-09-2018","content":"1. [](#new)\n    * Added a persistable method of modifying the plugin's files\n2. [](#improved)\n    * Updated TinyMCE to 4.8.3\n    * Improved modular page media handling\n    * Improved default configuration\n3. [](#bugfix)\n    * Got bugged one time too many, `tinymce.html.twig` is unminified now\n"},"1.1.8":{"date":" 26-04-2018","content":"1. [](#improved)\n    * Improved parameter handling\n"},"1.1.7":{"date":" 05-02-2018","content":"1. [](#bugfix)\n    * Fixed label handling\n"},"1.1.6":{"date":" 12-01-2018","content":"1. [](#bugfix)\n    * Improved modular page handling again\n"},"1.1.5":{"date":" 11-01-2018","content":"1. [](#bugfix)\n    * Worked around GPM quirkyness, hopefully\n"},"1.1.4":{"date":" 10-01-2018","content":"1. [](#bugfix)\n    * Removed calls to a rarely available JavaScript function\n"},"1.1.3":{"date":" 10-01-2018","content":"1. [](#improved)\n    * Improved modular page handling\n"},"1.1.2":{"date":" 01-11-2017","content":"1. [](#bugfix)\n    * Fixed boolean values in parameters\n"},"1.1.1":{"date":" 28-10-2017","content":"1. [](#improved)\n    * Improved the file picker's URL handling\n"}},"dependencies":[]},"shortcode-ruby":{"name":"Shortcode Ruby","version":"1.0.0","description":"Use the Shortcode Core Plugin to provide the [ruby] shortcode.","description_html":"<p>Use the Shortcode Core Plugin to provide the [ruby] shortcode.<\/p>","description_plain":"Use the Shortcode Core Plugin to provide the [ruby] shortcode.","icon":"language","author":{"name":"Sven H\u00fcser, Fran\u00e7ois VIDIT","url":"http:\/\/www.huesersohn.de","email":"s.hueser@gmail.com"},"license":"MIT","tag_name":"1.0.0","date":"2017-08-31T20:21:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-ruby\/1.0.0","repository":"https:\/\/github.com\/huesersohn\/grav-plugin-shortcode-ruby","homepage":"https:\/\/github.com\/huesersohn\/grav-plugin-shortcode-ruby","slug":"shortcode-ruby","install_path":"user\/plugins\/shortcode-ruby","content_sha256":"0a7ee9c5fdcdda767126af6449f01898978f41139a4e8bb4767d7dd76e532c8c","changelog":{"1.0.0":{"date":"31-08-2017","content":"1. [](#new)\n    * Extracted plugin from [pullrequest](https:\/\/github.com\/tidiview\/grav-plugin-markdown-rubytext\/pull\/2)"}},"dependencies":[]},"auto-author":{"name":"Auto Author","version":"0.1.0","description":"Automatically adds an author to frontmatter when creating a new page via Grav Admin plugin","description_html":"<p>Automatically adds an author to frontmatter when creating a new page via Grav Admin plugin<\/p>","description_plain":"Automatically adds an author to frontmatter when creating a new page via Grav Admin plugin","icon":"user-circle","author":{"name":"Sven Sanzenbacher"},"dependencies":[{"name":"admin","version":">=1.2.3"}],"homepage":"https:\/\/github.com\/naucon\/grav-plugin-auto-author","docs":"https:\/\/github.com\/naucon\/grav-plugin-auto-author\/blob\/develop\/README.md","keywords":"grav, plugin, auto-author, author, autor, frontmatter","bugs":"https:\/\/github.com\/naucon\/grav-plugin-auto-author\/issues","license":"MIT","tag_name":"0.1.0","date":"2017-09-03T10:20:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/auto-author\/0.1.0","repository":"https:\/\/github.com\/naucon\/grav-auto-author","slug":"auto-author","install_path":"user\/plugins\/auto-author","content_sha256":"8cf84496008754c4a6283907dfb1aefd100cedd1fab573e91498ebf54c64d9f8","changelog":{"0.1.0":{"date":" 09\/03\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"shortcode-chartjs":{"name":"Shortcode Chart.js","version":"1.0.1","description":"A shortcodes extension that add support for Chart.js to your Grav website.","description_html":"<p>A shortcodes extension that add support for Chart.js to your Grav website.<\/p>","description_plain":"A shortcodes extension that add support for Chart.js to your Grav website.","icon":"code","author":{"name":"Craig Phillips","email":"support@craigphillips.biz"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/cppl\/grav-plugin-shortcode-chartjs","docs":"https:\/\/github.com\/cppl\/grav-plugin-shortcode-chartjs\/blob\/master\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/cppl\/grav-plugin-shortcode-chartjs\/issues","license":"MIT","tag_name":"1.0.1","date":"2017-08-30T12:12:47Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-chartjs\/1.0.1","repository":"https:\/\/github.com\/CPPL\/grav-plugin-shortcode-chartjs","slug":"shortcode-chartjs","install_path":"user\/plugins\/shortcode-chartjs","content_sha256":"7881a28d8ddf39f58780fc2df1cadb7dbf4825b6c4f4e55793a2772aa25132f7","changelog":{"1.0.1":{"date":" 08\/30\/2017","content":"1. [](#improved)\n    * Fixed docs url\n    * Removed non-existent demo link\n"},"1.0.0":{"date":" 08\/30\/2017","content":"1. [](#new)\n    * Initial release with basic Chart.js options.\n"},"0.1.0":{"date":" 08\/24\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"cookieconsent":{"name":"Cookie Consent","version":"0.4.0","description":"This grav plugin is to alert users about the use of cookies on your website. The plugin integrates the popular js lib cookie consent by insites.","description_html":"<p>This grav plugin is to alert users about the use of cookies on your website. The plugin integrates the popular js lib cookie consent by insites.<\/p>","description_plain":"This grav plugin is to alert users about the use of cookies on your website. The plugin integrates the popular js lib cookie consent by insites.","icon":"gavel","author":{"name":"naucon"},"homepage":"https:\/\/github.com\/naucon\/grav-plugin-cookieconsent","docs":"https:\/\/github.com\/naucon\/grav-plugin-cookieconsent\/blob\/develop\/README.md","keywords":"grav, plugin, cookie, consent, eu, law, policy, insites","bugs":"https:\/\/github.com\/naucon\/grav-plugin-cookieconsent\/issues","license":"MIT","tag_name":"0.4.0","date":"2018-06-24T13:28:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cookieconsent\/0.4.0","repository":"https:\/\/github.com\/naucon\/grav-plugin-cookieconsent","slug":"cookieconsent","install_path":"user\/plugins\/cookieconsent","content_sha256":"d232750e429794f1977076ed35aa8eb9a9eb174ee117ec5d3ee34b6d508b17e6","changelog":{"0.4.0":{"date":" 06\/24\/2018","content":"1. [](#new)\n    * Added plugin setting to include cookie consent js and css from official cdn or local\n    * Added sections to structure plugin settings\n2. [](#improved)\n    * Updated cookie consent js and css from version 3.0.3 to 3.0.6.\n3. [](#bugfix)\n    * Fixed typo in helper text for color of button background.\n    * Fixed typos in README.\n"},"0.3.0":{"date":" 06\/24\/2018","content":"1. [](#new)\n    * Added color picker to fields with color in blueprint\n2. [](#improved)\n    * Changed the validation for policy link to be less strict to allow absolute as well as relative URl and path\n3. [](#bugfix)\n    * Fixed typo in labels and helper\n\n"},"0.2.0":{"date":" 10\/29\/2017","content":"1. [](#new)\n    * Add translations for english, french, spanish, german and italian.\n    * Translations will be used if no `content_message`, `content_dismiss`, `content_link` or `content_href` are defined in `cookieconsent.yaml`.\n"},"0.1.0":{"date":" 08\/17\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"astrobin":{"name":"Astrobin","version":"1.0.9","description":"This plugin provides astrobin shortcodes for images and galleries","description_html":"<p>This plugin provides astrobin shortcodes for images and galleries<\/p>","description_plain":"This plugin provides astrobin shortcodes for images and galleries","icon":"picture-o","author":{"name":"Marco Gulino","url":"http:\/\/gulinux.net","email":"marco@gulinux.net"},"dependencies":[{"name":"shortcode-core","version":"*"},{"name":"featherlight","version":"*"}],"homepage":"https:\/\/github.com\/GuLinux\/grav-plugin-astrobin","keywords":"astrobin, media","bugs":"https:\/\/github.com\/GuLinux\/grav-plugin-astrobin\/issues","license":"GPLv3","tag_name":"v1.0.9","date":"2022-11-07T21:55:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/astrobin\/1.0.9","repository":"https:\/\/github.com\/GuLinux\/grav-plugin-astrobin","slug":"astrobin","install_path":"user\/plugins\/astrobin","content_sha256":"16c8b632a8bad2f073c52a053230eff1f68bd25c0433f6aaccaaa227ce954d4d","changelog":{"1.0.9":{"date":"07\/11\/2022","content":"1. [](#bugfix)\n    * Fix null pointer when no revision is marked as final\n\n"},"1.0.8":{"date":"18\/10\/2022","content":"1. [](#bugfix)\n    * Fix revision selection algorithm\n\n"},"1.0.7":{"date":"15\/10\/2022","content":"1. [](#new)\n    * Use revision for astrobin link URL\n\n2. [](#bugfix)\n    * Fix astrobin link URL\n\n"},"1.0.6":{"date":"11\/10\/2022","content":"1. [](#bugfix)\n    * Fix featherlight modal by setting unique ID for featherlight figure using revision as well as image ID.\n"},"1.0.5":{"date":"11\/10\/2022","content":"1. [](#bugfix)\n    * Fix revision tag by using match by label\n"},"1.0.4":{"date":"01\/01\/2018","content":"1. [](#bugfix)\n    * Properly catch exceptions\n"},"1.0.3":{"date":"30\/08\/2017","content":"1. [](#new)\n    * New parameter `animated=true` to display gif as animated when using regular, real and hd formats\n"},"1.0.2":{"date":"28\/08\/2017","content":"1. [](#new)\n    * Handle astrobin revision as image parameter.\n"},"1.0.1":{"date":"19\/08\/2017","content":"1. [](#new)\n    * Fix collection html tags\n    * Add available formats to README\n"},"1.0.0":{"date":"18\/08\/2017","content":"1. [](#new)\n    * Initial release\n    * Support for images and collections"}}},"quick-tray-links":{"name":"Quick Tray Links","version":"1.1.4","description":"Easily add customizable admin quick tray links","description_html":"<p>Easily add customizable admin quick tray links<\/p>","description_plain":"Easily add customizable admin quick tray links","icon":"link","author":{"name":"Trilby Media, LLC","email":"devs@trilbymedia.com"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-quick-tray-links","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-quick-tray-links\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-quick-tray-links\/issues","license":"MIT","tag_name":"1.1.4","date":"2026-06-27T05:34:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/quick-tray-links\/1.1.4","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-quick-tray-links","slug":"quick-tray-links","install_path":"user\/plugins\/quick-tray-links","content_sha256":"3004113c4d084614c873c388d442c08e6954179cb5708fc190bfe99f115ff6a0","changelog":{"1.1.4":{"date":"06\/26\/2026","content":"1. [](#new)\n    * Links now show in the Admin2 top-right tray via the new menubar API [#19](https:\/\/github.com\/trilbymedia\/grav-plugin-quick-tray-links\/issues\/19)\n"},"1.1.3":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.1.2":{"date":"01\/29\/2025","content":"1. [](#improved)\n   * Added access rights configuration in admin [#18](https:\/\/github.com\/trilbymedia\/grav-plugin-quick-tray-links\/pull\/18)\n"},"1.1.1":{"date":"01\/01\/2023","content":"1. [](#bugfix)\n   * Fixed error when `$link['external']` is not set\n"},"1.1.0":{"date":"12\/28\/2022","content":"1. [](#new)\n   * Support external links [#10](https:\/\/github.com\/trilbymedia\/grav-plugin-quick-tray-links\/pull\/10)\n1. [](#improved)\n   * Skip empty links + support authorization [#13](https:\/\/github.com\/trilbymedia\/grav-plugin-quick-tray-links\/pull\/13)\n1. [](#bugfix)\n   * Fixed translations because of special chars [#14](https:\/\/github.com\/trilbymedia\/grav-plugin-quick-tray-links\/pull\/14)\n"},"1.0.1":{"date":"12\/02\/2020","content":"1. [](#improved)\n   * Added translations\n   * Updated blueprints\n"},"1.0.0":{"date":"08\/15\/2017","content":"1. [](#new)\n   * ChangeLog started..."}},"dependencies":[]},"tntsearch":{"name":"TNT Search","version":"3.4.6","description":"Powerful indexed-based full text search engine powered by TNTSearch","description_html":"<p>Powerful indexed-based full text search engine powered by TNTSearch<\/p>","description_plain":"Powerful indexed-based full text search engine powered by TNTSearch","icon":"binoculars","author":{"name":"Trilby Media, LLC","email":"devs@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/blob\/develop\/README.md","keywords":"grav, plugin, search, search-engine","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues","license":"MIT","tag_name":"3.4.6","date":"2026-07-09T20:05:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tntsearch\/3.4.6","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch","slug":"tntsearch","install_path":"user\/plugins\/tntsearch","content_sha256":"a4b0807c661beeccedaa19dd54c5331ae69082504acfe7faab7ec6aae90d54ee","changelog":{"3.4.6":{"date":"07\/09\/2026","content":"1. [](#bugfix)\n    * Fixed a 500 error when saving a page through Admin2 \/ the API by initialising Twig before the on-save reindex [#145](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues\/145)\n"},"3.4.5":{"date":"06\/19\/2026","content":"1. [](#new)\n    * Added Dutch language stemmer support [#143](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/143)\n1. [](#bugfix)\n    * Fixed PHP 8.4 deprecation warnings from implicitly nullable function parameters.\n"},"3.4.4":{"date":"06\/06\/2026","content":"1. [](#bugfix)\n    * Register the index-update events regardless of `isAdmin()`, since admin2 saves run through the API plugin where `isAdmin()` is still false at init time, so the handlers were never being subscribed and create\/update\/delete from the new admin did not reindex [#142](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues\/142)\n"},"3.4.3":{"date":"06\/05\/2026","content":"1. [](#bugfix)\n    * Fixed admin index not updating on Grav 2.0: listen for the real Flex event names (`onFlexObjectAfterSave`\/`onFlexObjectAfterDelete`) and reindex on page move\/rename (`onAdminAfterSaveAs`) [#142](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues\/142)\n"},"3.4.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"3.4.1":{"date":"10\/04\/2024","content":"1. [](#improved)\n    * Various blueprint fixes and improvements [#125](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/125) [#132](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues\/132) \n"},"3.4.0":{"date":"03\/06\/2023","content":"1. [](#improved)\n   * Updated TNTSearch library to `2.9.0`\n   * Enable Fuzy search [#123](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/123)\n   * Add configuration for Levenshtein distance for fuzzy search [#124](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/124)\n   * Added French translation [#100](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues\/100)\n   * Added missing stemmers [#115](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/115) [#116](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/116)\n"},"3.3.1":{"date":"02\/25\/2021","content":"1. [](#improved)\n    * Upgraded to TNTSearch version `2.6.0`\n    * Added German (de) language [#103](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/103)\n1. [](#bugfix)\n    * Fixed `query` truncation when containing a hash (`#`) and preventing proper search results [#110](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/110)\n    * Fixed `q` query parameter not working [#111](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/111)\n    * Fix default stemmer and description [#105](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/105)  \n    * Fixed PHP 8 compatibility issues\n"},"3.3.0":{"date":"12\/02\/2020","content":"1. [](#improved)\n    * Upgraded to TNTSearch version `2.5.0`\n    * Pass phpstan level 7 tests\n1. [](#bugfix)\n    * Fixed FlexPages events for add+delete\n    * Fixed running scheduled index job [#104](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/104) \n"},"3.2.1":{"date":"09\/04\/2020","content":"1. [](#bugfix)\n    * Fixed bad `require(\"history\")...` JS warning [#101](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues\/101)\n"},"3.2.0":{"date":"06\/08\/2020","content":"1. [](#new)\n    * Added support for CLI `bin\/plugin index` to index only a single language (`--language=en`)\n1. [](#improved)\n    * Renamed CLI classes to avoid class name conflicts\n1. [](#bugfix)\n    * Fixed non-routable and non-published pages showing up in search results\n    * Fixed indexing in multi-language sites\n    * Use CLI command directly in scheduler command to work [#95](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues\/95) \n"},"3.1.1":{"date":"02\/12\/2020","content":"1. [](#improved)\n    * Search with JS disabled [#75](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/75)\n    * Added RU \ud83c\uddf7\ud83c\uddfa language [#74](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/74) \n    * Various JS dependency updates & recompiled production JS\n1. [](#bugfix)\n    * Added missing `search_object_type` to blueprint\n"},"3.1.0":{"date":"02\/11\/2020","content":"1. [](#new)\n    * Require Grav v1.6.21 \n    * Upgraded to TNTSearch version 2.2 (PHP 7.4 fixes)\n1. [](#improved)\n    * Code cleanup\n1. [](#bugfix)\n    * Fixed Grav initialization in CLI\n    * Work around inconsistencies in page content if page template uses `grav.page` instead of `page`\n"},"3.0.1":{"date":"02\/03\/2020","content":"1. [](#bugfix)\n    * Fixed an issue indexing via Admin with Grav 1.7\n"},"3.0.0":{"date":"04\/14\/2019","content":"1. [](#new)\n    * Added new Grav Scheduler integration\n    * Added new Multi-Language Support\n1. [](#improved)\n    * Switched to latest TNTSearch version 2.0 (PHP 7.1+)\n    * Added a new `onFlexObjecSave()` event\n    * Simplified indexing logic\n    * Code cleanup\n    * Minor CSS improvements for search field\n    * Implemented a unified indexer process that always uses the CLI command for consistency\n    * Use Grav YAML handler\n1. [](#bugfix)\n    * Use custom search object in query [#63](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues\/63)  \n    * Fixed issue with Ajax results escaping\n    * Fixed issues when updating search index  \n    * Set the db index file as a property of `GravTNTSearch` to allow for better overriding\n    * Put better type checking around `onTNTSearchIndex()` example that indexes `page.header.author`\n   "},"2.0.4":{"date":"09\/21\/2018","content":"1. [](#new)\n    * Added new `tntsearch: index: true|false` page header option to skip specific pages\n1. [](#bugfix)\n    * Skip indexing of pages with `redirect` set in page header [#21](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/issues\/21)\n"},"2.0.3":{"date":"08\/16\/2018","content":"1. [](#new)\n    * New option to allow disabling of page events, manual updates will be required to pick up changes\n1. [](#bugfix)\n    * Don't remove the X button if `built_in_css` is `false`\n"},"2.0.2":{"date":"07\/20\/2018","content":"1. [](#bugfix)\n    * Ensure that credentials are passed in when searching via `fetch`\n    * Compressed JS for better performance\n"},"2.0.1":{"date":"05\/21\/2018","content":"1. [](#bugfix)\n    * Potential fix for history conflicts.\n"},"2.0.0":{"date":"05\/11\/2018","content":"1. [](#new)\n    * Refactored TNTSearch to allow core classes to be extensible by other plugins\n    * Added `phrases` search support [#32](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/32)\n1. [](#improved)\n    * Defaulted TNTSearch to search **all pages** out of the box. This should be tweaked though\n    * Added auto-focus to search input [#28](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/28)\n    * Added option to control `powered by` [#34](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/34)\n    * Added a timer on CLI index command\n    * Exposing `GravTNTSearch` to the browser for JS manipulation\n    * Dispatching `tntsearch:start` and `tntsearch:done` events when starting\/rendering results\n    * README.md typo fixes\n1. [](#bugfix)\n    * Implemented options as default values that were being ignored\n    * Fixed missing `break` in foreach [#33](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/33)\n    * Add missing `use` statement [#41](https:\/\/github.com\/trilbymedia\/grav-plugin-tntsearch\/pull\/41)   \n"}}},"markdown-spoilers":{"name":"Markdown Spoilers","version":"1.0.0","description":"Allows the rendering of spoiler elements through markdown","description_html":"<p>Allows the rendering of spoiler elements through markdown<\/p>","description_plain":"Allows the rendering of spoiler elements through markdown","icon":"asterisk","author":{"name":"Thomas Threadgold","url":"http:\/\/threadgold.nz","email":"thomas@threadgold.nz"},"homepage":"https:\/\/github.com\/regaez\/grav-plugin-markdown-spoilers","docs":"https:\/\/github.com\/regaez\/grav-plugin-markdown-spoilers\/blob\/master\/README.md","keywords":"grav, plugin, markdown, spoilers","bugs":"https:\/\/github.com\/regaez\/grav-plugin-markdown-spoilers\/issues","license":"MIT","tag_name":"1.0.0","date":"2017-08-15T15:06:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-spoilers\/1.0.0","repository":"https:\/\/github.com\/Regaez\/grav-plugin-markdown-spoilers","slug":"markdown-spoilers","install_path":"user\/plugins\/markdown-spoilers","content_sha256":"d7c30022c7afda17f2011e3d942325994db69dea93ee4ebcb84b8199fe8086f1","changelog":{"1.0.0":{"date":" 08\/15\/2017","content":"1. [](#new)\n    * Created plugin"}},"dependencies":[]},"amazon-products":{"name":"Amazon Products","version":"0.5.0","description":"Displays Amazon products by ASIN\/ISBN-10 on your pages.","description_html":"<p>Displays Amazon products by ASIN\/ISBN-10 on your pages.<\/p>","description_plain":"Displays Amazon products by ASIN\/ISBN-10 on your pages.","icon":"amazon","author":{"name":"Kazuya Kanatani","email":"kanatani.social@gmail.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/kinformation\/grav-plugin-amazon-products","docs":"https:\/\/github.com\/kinformation\/grav-plugin-amazon-products\/blob\/master\/README.md","keywords":"grav, plugin, amazon, products","bugs":"https:\/\/github.com\/kinformation\/grav-plugin-amazon-products\/issues","license":"MIT","tag_name":"0.5.0","date":"2017-12-10T09:53:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/amazon-products\/0.5.0","repository":"https:\/\/github.com\/kinformation\/grav-plugin-amazon-products","slug":"amazon-products","install_path":"user\/plugins\/amazon-products","content_sha256":"534e7a43bdea3e5d95ca65a5467940a12b68ecf0ecafc8aa17645162cb6c4139","changelog":{"0.5.0":{"date":" 12\/10\/2017","content":"1. [](#improved)\n   * fix: Anonymize form of AWS Secret Access Key\n\n1. [](#new)\n    * add: Editor button\n"},"0.4.0":{"date":" 09\/28\/2017","content":"1. [](#improved)\n   * add: Extract ASIN by raw amazonURL\n"},"0.3.0":{"date":" 08\/08\/2017","content":"1. [](#improved)\n   * update: Improve ad template\n   * update: Optimize API request generation method\n   * update: Optimize distribution of ProductGroup\n"},"0.2.1":{"date":" 08\/04\/2017","content":"1. [](#improved)\n    * update: Modify docs url\n"},"0.2.0":{"date":" 07\/30\/2017","content":"1. [](#improved)\n    * update: Plugin name change (amazon -> amazon-products)\n"},"0.1.0":{"date":" 07\/26\/2017","content":"1. [](#new)\n    * First Release!"}}},"page-toc":{"name":"Page Toc","version":"4.0.1","description":"Generate a table of contents and anchors from a page","description_html":"<p>Generate a table of contents and anchors from a page<\/p>","description_plain":"Generate a table of contents and anchors from a page","icon":"list","author":{"name":"Trilby Media, LLC","url":"http:\/\/trilby.media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=2.0-beta.1"},{"name":"php","version":">=8.0"}],"compatibility":{"grav":["2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/blob\/develop\/README.md","keywords":"grav, plugin, toc, anchors","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/issues","license":"MIT","tag_name":"4.0.1","date":"2026-07-09T15:36:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/page-toc\/4.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc","slug":"page-toc","install_path":"user\/plugins\/page-toc","content_sha256":"3507dc86d4ad18e65df190541ddd2cab2b7f143a476fe0edb94280263a41b8a4","changelog":{"4.0.1":{"date":"07\/09\/2026","content":"1. [](#bugfix)\n    * Corrected the plugin homepage link, which pointed to a mistyped author URL instead of the project repository ([#49](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/issues\/49))\n"},"4.0.0":{"date":"06\/20\/2026","content":"1. [](#new)\n    * Version 4.0 stable release for Grav 2.x\n"},"4.0.0-beta.4":{"date":"05\/11\/2026","content":"1. [](#new)\n    * Added admin settings to customize how slugs are generated, including separator, lowercase, and language rulesets [#48](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/pull\/48)\n1. [](#bugfix)\n    * Slug max-length now counts characters instead of bytes so non-Latin slugs are no longer truncated mid-character\n"},"4.0.0-beta.3":{"date":"05\/02\/2026","content":"1. [](#improved)\n    * Updated for Grav 2.0\n"},"4.0.0-beta.2":{"date":"03\/14\/2026","content":"1. [](#improved)\n    * Updates for PHP 8.3+ support\n"},"3.2.5":{"date":"03\/14\/2026","content":"1. [](#bugfix)\n   * Load twig in admin\n"},"4.0.0-beta.1":{"date":"12\/10\/2024","content":"1. [](#improved)\n    * Updates for PHP 8.2 support, now requires Grav 1.8+\n"},"3.2.4":{"date":"05\/16\/2024","content":"1. [](#improved)\n   * Updated Spanish translation [#40](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/pulls\/40)\n1. [](#bugfix)\n   * Reverted to use `mb_encode_nuericentity()` instead of `htmlspecialchars` \/ `iconv` approach to fix breaking UTF-8 characters\n"},"3.2.3":{"date":"05\/06\/2024","content":"1. [](#new)\n   * Added french translation [#28](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/pulls\/28)\n   * Added option to whitelist HTML tags in TOC [#36](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/pulls\/36)\n   * Added option to set user templates in which anchors are generated [#37](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/pulls\/37)\n1. [](#bugfix)\n   * Revert Twig macro to use `_self` as it was breaking the recursion.  Deprecated message remains but can't be helped. [#38](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/issues\/38)\n"},"3.2.2":{"date":"05\/10\/2023","content":"1. [](#bugfix)\n   * Use `mb_encode_nuericentity()` instead of `htmlspecialchars` \/ `iconv` approach to fix breaking UTF-8 characters\n   * Fix a deprecated message in the Twig macro\n"},"3.2.1":{"date":"05\/08\/2023","content":"1. [](#improved)\n   * Fixed a \"Deprecated: mb_convert_encoding()\" error\n"},"3.2.0":{"date":"02\/23\/2022","content":"1. [](#new)\n   * Support for HTML or Shortcode based headers with custom `id` attributes to specify an anchor\n   * Added German translation\n"},"3.1.3":{"date":"01\/03\/2022","content":"1. [](#new)\n   * Require Grav `v1.7.26` to make use of built in `Plugin::inheritedConfigOption()`\n   * NOTE: `page-toc v3.1.2` was released prior to `Grav v1.7.26` and has been removed\n2. [](#improved)\n   * Don't force inclusion of `<html>` or `<body>` tags to reduce chance of invalid HTML\n   * Improved `README.md`\n"},"3.1.1":{"date":"12\/16\/2021","content":"1. [](#bugfix)\n   * Fixed some blueprint errors that caused errors on save\n   * Force `start` and `depth` to be integers [#17](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/issues\/17)\n"},"3.1.0":{"date":"12\/09\/2021","content":"1. [](#new)\n   * **NEW** Added option to automatically copying to clipboard an anchor URL when clicking on it\n"},"3.0.0":{"date":"12\/03\/2021","content":"1. [](#new)\n   * **NEW** Support built-in `anchors` with customization of icon\/classes\/css etc.\n   * **NEW** `[anchor]` shortcode for creating manual anchors for easy linking to page content\n   * Moved the vendor-based TOC functionality in-plugin to provide more flexibility and additional features\n   * Added several more Twig functions for increased flexibility\n   * Ability to limit the length of a fragment link\n   * Ability to set a custom prefix for anchor links\n   * Added `languages.yaml` file for text translations\n2. [](#improved)\n   * Independent control over the levels of anchors that should be built and the TOC displayed\n   * `page-toc:` page-level configuration can be set in parent pages and trickles down to child pages\n   * Removed dependency on HTML5 library and use the faster PHP `DOMDocument` class\n   * Translated text for the \"Table of Contents\" in the `page-toc.html.twig` template\n"},"2.0.0":{"date":"11\/24\/2021","content":"1. [](#new)\n   * Added new `components\/page-toc.html.twig` that can be extended and the HTML output modified\n   * Updated core TOC library to latest `3.0.2` version\n   * Requires PHP `7.3.6`\n   * Requires Grav `1.7+`\n   * Added Shortcode-like in-page syntax support. e.g. `[toc]`\n"},"1.1.2":{"date":"06\/01\/2021","content":"1. [](#new)\n    * Added page-toc blueprints under \"Advanced\" tab for admin\n1. [](#improved)\n    * Updated to latest `knplabs\/knp-menu` library\n1. [](#bugfix)\n    * Added `|raw` filter to twig output in README.md\n"},"1.1.1":{"date":"12\/02\/2020","content":"1. [](#improved)\n    * Updated to latest `masterminds\/html5` and `knplabs\/knp-menu` libraries\n"},"1.1.0":{"date":"04\/01\/2019","content":"1. [](#improved)\n    * Updated to latest `caseyamcl\/toc` library\n1. [](#bugfix)\n    * Fixes relative levels [#6](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/pull\/9)\n    * Fixes incorrect reference to `end` when it should be `depth` [#7](https:\/\/github.com\/trilbymedia\/grav-plugin-page-toc\/pull\/7)\n"}}},"cascade-filters":{"name":"Cascade Filters","version":"0.1.0","description":"Cascadefilters is a Grav plugin that generates a multiple layer filters collected throughout the site. main features includes: selectable taxonomy types; links have 3 states: normal, active, disable ( the plugin will loop the child items&#39;s taxomomies to check if a link will continue to work or not, in another words, the filters are associated; Generally, the plugin provides a pages selector to let you choice where to place the filters on, but it not designed for a site-wide usage.","description_html":"<p>Cascadefilters is a Grav plugin that generates a multiple layer filters collected throughout the site. main features includes: selectable taxonomy types; links have 3 states: normal, active, disable ( the plugin will loop the child items&#39;s taxomomies to check if a link will continue to work or not, in another words, the filters are associated; Generally, the plugin provides a pages selector to let you choice where to place the filters on, but it not designed for a site-wide usage.<\/p>","description_plain":"Cascadefilters is a Grav plugin that generates a multiple layer filters collected throughout the site. main features includes: selectable taxonomy types; links have 3 states: normal, active, disable ( the plugin will loop the child items&#39;s taxomomies to check if a link will continue to work or not, in another words, the filters are associated; Generally, the plugin provides a pages selector to let you choice where to place the filters on, but it not designed for a site-wide usage.","icon":"shower","author":{"name":"Elvis Cheng","email":"ash0080@gmail.com"},"homepage":"https:\/\/github.com\/ash0080\/grav-plugin-cascade-filters","docs":"https:\/\/github.com\/ash0080\/grav-plugin-cascade-filters\/blob\/develop\/README.md","keywords":"filters, multiple condition filters, multiple layer filters, taxonomy, list, tags, categories, grav, plugin","bugs":"https:\/\/github.com\/ash0080\/grav-plugin-cascade-filters\/issues","license":"MIT","tag_name":"1.0.0","date":"2017-07-27T06:02:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cascade-filters\/0.1.0","repository":"https:\/\/github.com\/ash0080\/grav-plugin-cascade-filters","slug":"cascade-filters","install_path":"user\/plugins\/cascade-filters","content_sha256":"fb6d21151d771c01ced9491d23b3829380ef4546a35cc9b7a6512192c3efd442","changelog":{"0.1.0":{"date":" 05\/27\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"language-selector":{"name":"Language Selector","version":"1.1.0","description":"Language Selector is a [Grav](http:\/\/github.com\/getgrav\/grav) plugin that provides native language selector with flags to switch between [multiple languages](http:\/\/learn.getgrav.org\/content\/multi-language).","description_html":"<p>Language Selector is a <a href=\"http:\/\/github.com\/getgrav\/grav\">Grav<\/a> plugin that provides native language selector with flags to switch between <a href=\"http:\/\/learn.getgrav.org\/content\/multi-language\">multiple languages<\/a>.<\/p>","description_plain":"Language Selector is a Grav plugin that provides native language selector with flags to switch between multiple languages.","icon":"globe","author":{"name":"Cl\u00e9ment G.","url":"http:\/\/www.clemdesign.fr","email":"contact@clemdesign.fr"},"homepage":"https:\/\/github.com\/clemdesign\/grav-plugin-language-selector","docs":"https:\/\/github.com\/clemdesign\/grav-plugin-language-selector\/blob\/master\/README.md","keywords":"mulitlang, multilanguage, translation, switcher, selector, flag","bugs":"https:\/\/github.com\/clemdesign\/grav-plugin-language-selector\/issues","license":"MIT","tag_name":"1.1.0","date":"2018-11-23T10:20:00Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/language-selector\/1.1.0","repository":"https:\/\/github.com\/clemdesign\/grav-plugin-language-selector","slug":"language-selector","install_path":"user\/plugins\/language-selector","content_sha256":"ff30ed82a508c6b0f4b001c9e8a8fe8119b22257faaeede1aaeb9e87828d7d9b","changelog":{"1.1.0":{"date":"11\/23\/2018","content":"1. [](#improved)\n    * Add pull-request [#7](https:\/\/github.com\/clemdesign\/grav-plugin-language-selector\/pull\/7): Need jQuery 1.8 or later.\n\n"},"1.0.1":{"date":"08\/10\/2018","content":"1. [](#improved)\n    * Add pull-request [#1](https:\/\/github.com\/clemdesign\/grav-plugin-language-selector\/pull\/1)\n\n2. [](#bugfix)\n    * Fix issue [#2](https:\/\/github.com\/clemdesign\/grav-plugin-language-selector\/issues\/2)\n      -> Improve jQuery integration\n"},"1.0.0":{"date":"07\/22\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"social-feed":{"name":"Social Feed","version":"1.5.0","description":"This Grav plugin allow you to fetch feeds from social networks, and give you tools for displaying them in your website.","description_html":"<p>This Grav plugin allow you to fetch feeds from social networks, and give you tools for displaying them in your website.<\/p>","description_plain":"This Grav plugin allow you to fetch feeds from social networks, and give you tools for displaying them in your website.","icon":"share-alt","author":{"name":"K\u00e9vin Marcachi","email":"kevin.marcachi@acseo.fr"},"homepage":"https:\/\/github.com\/moduleon\/grav-plugin-social-feed","docs":"https:\/\/github.com\/moduleon\/grav-plugin-social-feed\/blob\/develop\/README.md","keywords":"grav, plugin, social feed","bugs":"https:\/\/github.com\/moduleon\/grav-plugin-social-feed\/issues","license":"MIT","tag_name":"v1.5.0","date":"2025-08-25T14:53:49Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/social-feed\/1.5.0","repository":"https:\/\/github.com\/moduleon\/grav-plugin-social-feed","slug":"social-feed","install_path":"user\/plugins\/social-feed","content_sha256":"c344ed40d9bffab2489ccfb73f4f969c395feab71e5edd03b2fca1e495def960","changelog":{"1.5.0":{"date":" 08\/05\/2025","content":"1. [](#new)\n    * add command to refresh access token\n1. [](#improved)\n    * clean up vendor and ide files\n"},"1.4.1":{"date":" 31\/05\/2021","content":"1. [](#improved)\n    * add fetch url to error message\n1. [](#bugfix)\n    * remove unused avatar from instagram api\n"},"1.4.0":{"date":" 29\/05\/2021","content":"1. [](#new)\n\t* Fetch instagram stories\n    * Specify facebook and instagram api version which will be used for fetch data\n"},"1.3.1":{"date":" 12\/04\/2021","content":"1. [](#improved)\n\t* Update post author image download\n    * Ignore uppercase letters in tags compare\n"},"1.3.0":{"date":" 12\/04\/2021","content":"1. [](#new)\n\t* fetch message_tags from facebook posts so u can filter facebook posts by tag in twig\n"},"1.2.0":{"date":" 12\/10\/2020","content":"1. [](#improved)\n\t* fetch instagram user poster direct from api\n\t* remove old instagram poster field from blueprints\n"},"1.1.1":{"date":" 06\/10\/2020","content":"1. [](#improved)\n\t* Set fix version for instagram and facebook api\n"},"1.1.0":{"date":" 28\/09\/2020","content":"1. [](#new)\n\t* Add the possibility to send mail if data could not be received\n\n##  24\/06\/2020\n\n1. [](#new)\n\t* Replace deprecated instagram legacy API by instagram basic display API\n1. [](#improved)\n    * Remove facebook api dependency and fetch facebook data as same as instagram data\n\n##  21\/01\/2020\n\n1. [](#new)\n\t* option to prevent duplicate posts from appearing based on the text\n1. [](#improved)\n    * if an image of a post has already been downloaded, use it instead of the remote url\n"},"0.2.0":{"date":" 16\/10\/2019","content":"1. [](#new)\n\t* fetch facebook posts with site key\n1. [](#improved)\n    * update php skd\n1. [](#bugfix)\n    * fix static error which occurs with php 7.2 or greater\n"},"0.1.2":{"date":" 11\/07\/2017","content":"1. [](#improved)\n    * Versionning vendor, and registering namespaces with autoload\n1. [](#bugfix)\n    * Removing some php 7 instructions\n"},"0.1.1":{"date":" 07\/23\/2017","content":"1. [](#improved)\n    * Uploading media in user\/media, calculating absolute urls on demand, updating readme\n\n1. [](#bugfix)\n    * Setting files to null when unable to download them\n    * Fix rights on downloaded media\n"},"0.1.0":{"date":" 07\/22\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"social-seo-metatags":{"name":"Social & SEO Meta Tags","version":"3.0.2","description":"Meta-tags for SEO and Social integration (Facebook Open Graph and Twitter Cards)","description_html":"<p>Meta-tags for SEO and Social integration (Facebook Open Graph and Twitter Cards)<\/p>","description_plain":"Meta-tags for SEO and Social integration (Facebook Open Graph and Twitter Cards)","icon":"code","author":{"name":"Cl\u00e9ment G.","url":"http:\/\/www.clemdesign.fr","email":"contact@clemdesign.fr"},"homepage":"https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags","docs":"https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/blob\/master\/README.md","keywords":"grav, plugin, facebook, open graph, twitter cards, google, seo, description, metatags, tags","bugs":"https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/issues","license":"MIT","tag_name":"3.0.2","date":"2021-11-09T12:24:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/social-seo-metatags\/3.0.2","repository":"https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags","slug":"social-seo-metatags","install_path":"user\/plugins\/social-seo-metatags","content_sha256":"bdc010831f045a962614ae647cbdc413d8b6376bb93c0f358edd1e9e39dc520b","changelog":{"3.0.2":{"date":"11\/09\/2021","content":"1. [](#bugfix)\n   * Issue #28: robustness for $image initialization in getDefaultImage()\n   "},"3.0.1":{"date":"11\/08\/2021","content":"1. [](#bugfix)\n   * Issue #26: fix getImage bad argument type\n   "},"3.0.0":{"date":"11\/07\/2021","content":"1. [](#bugfix)\n   * Issue #25: operation of header_image_file for antimatter theme\n2. [](#new)\n   * Issue #23: implement SE breadcrumb (beta)\n   * Issue #24: implement option to use cache to render images\n"},"2.2.1":{"date":"03\/19\/2021","content":"1. [](#bugfix)\n    * Change strategy for support of `header_image_file` from Antimatter theme (issue #20).\n\n"},"2.2.0":{"date":"03\/16\/2021","content":"1. [](#new)\n    * Add support for `header_image_file` field from header page (issue #15).\n\n"},"2.1.1":{"date":"03\/15\/2021","content":"1. [](#bugfix)\n    * Fix issue https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/issues\/19\n\n"},"2.1.0":{"date":"01\/01\/2020","content":"1. [](#new)\n    * Add support for a default image.\n\n"},"2.0.1":{"date":"10\/21\/2019","content":"1. [](#bugfix)\n    * Fix issue for `og:url` when different slug is defined for a page.\n\n"},"2.0.0":{"date":"10\/03\/2019","content":"1. [](#new)\n    * Merge pull request [#14](https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/pull\/14)\n       > Allow the use of Open Graph without Facebook Insights.\n\n2. [](#bugfix)\n    * Fix issue [#8](https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/issues\/8)\n       > Add regex to validate twitter username\n    * Fix issue [#9](https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/issues\/9)\n       > Add option to enable convertion of simple quote to html entity.\n\n"},"1.2.0":{"date":"02\/06\/2019","content":"1. [](#improved)\n    * Treat request of Issue [#7](https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/issues\/7)\n       > Improve set-up of description from frontmatter header page\n\n"},"1.1.3":{"date":"01\/30\/2019","content":"1. [](#bugfix)\n    * Merge pull request [#5](https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/pull\/5)\n       > Fix issue #1: howto personalize description for a specific page\n\n"},"1.1.2":{"date":"12\/04\/2018","content":"1. [](#improved)\n    * Treat request of Issue [#4](https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/issues\/4)\n       > Add option \"NoArchive, NoODP\" for robots meta-tag\n\n"},"1.1.1":{"date":"09\/10\/2018","content":"1. [](#improved)\n    * Merge pull request [#3](https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/pull\/3)\n       > Extend image search to childs (for modular page)\n"},"1.1.0":{"date":"06\/11\/2018","content":"1. [](#bugfix)\n    * Resolve description page metadata definition [Issue #1](https:\/\/github.com\/clemdesign\/grav-plugin-social-seo-metatags\/issues\/1)\n\n2. [](#new)\n    * Integration of [Meta Page Headers](https:\/\/learn.getgrav.org\/content\/headers#meta-page-headers): When defined in page, the meta-tag is used.\n"},"1.0.2":{"date":"15\/04\/2018","content":"1. [](#bugfix)\n    * Fix issue on og:type metatag\n    * Fix issue on blueprints about configuration field\n"},"1.0.1":{"date":"07\/13\/2017","content":"1. [](#bugfix)\n    * Resolve bug\/Add robustness on og:locale building\n    * Resolve bug\/Add robustness on description building\n"},"1.0.0":{"date":" 07\/12\/2017","content":"1. [](#new)\n    * Initial version..."}},"dependencies":[]},"get-id3":{"name":"GetId3","version":"1.0.7","description":"Integrates the getID3 PHP library into Grav CMS.","description_html":"<p>Integrates the getID3 PHP library into Grav CMS.<\/p>","description_plain":"Integrates the getID3 PHP library into Grav CMS.","icon":"file-audio-o","author":{"name":"Jeremy Gonyea","email":"jeremy.gonyea@gmail.com"},"homepage":"https:\/\/github.com\/jgonyea\/grav-plugin-get-id3","docs":"https:\/\/github.com\/jgonyea\/grav-plugin-get-id3\/blob\/develop\/README.md","keywords":"grav, plugin, getid3, audio, metadata","bugs":"https:\/\/github.com\/jgonyea\/grav-plugin-get-id3\/issues","license":"MIT","tag_name":"1.0.7","date":"2026-04-12T07:22:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/get-id3\/1.0.7","repository":"https:\/\/github.com\/jgonyea\/grav-plugin-get-id3","slug":"get-id3","install_path":"user\/plugins\/get-id3","content_sha256":"ccc1fd1e91330a7eef742fd170163392e3e35db01cca7b7fad216228db8957cf","changelog":{"1.0.7":{"date":"04\/12\/26","content":"1. [](#new)\n2. [](#improved)\n3. [](#bugfix)\n    * Fixed logic bug where logging may fail if filesystem isn't writable.\n"},"1.0.6":{"date":"03\/12\/2024","content":"1. [](#new)\n2. [](#improved)\n    * Bumped get-id3 library to 1.9.23.\n3. [](#bugfix)\n"},"1.0.5":{"date":"03\/19\/2022","content":"1. [](#new)\n2. [](#improved)\n    * Lots of improvements with how file paths are called.\n    * Grav's tmp folder is now used to download instead of a folder within the plugin.\n    * Better handling of missing library folder.\n3. [](#bugfix)\n\n"},"1.0.4":{"date":"02\/26\/2022","content":"1. [](#new)\n2. [](#improved)\n    * Upgraded getID3 library to support PHP 8.x\n3. [](#bugfix)\n"},"1.0.3":{"date":"05\/25\/2018","content":"1. [](#new)\n2. [](#improved)\n    * Better logging if getID3 library fails to download\/ install properly.\n3. [](#bugfix)\n"},"1.0.2":{"date":"12\/14\/2017","content":"1. [](#new)\n2. [](#improved)\n3. [](#bugfix)\n    * Fixed automated install if `\/tmp` and `__DIR__` were on different drives\n"},"1.0.1":{"date":"11\/01\/2017","content":"1. [](#new)\n2. [](#improved)\n    * GetID3 PHP library attempts to install automatically.\n3. [](#bugfix)\n\n"},"1.0.0":{"date":" 07\/12\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"shoppingcart-2checkout-dev":{"name":"Shoppingcart 2checkout Addon","version":"0.0.1","description":"Adding 2checkout (hosted checkout) functionality to gravcart","description_html":"<p>Adding 2checkout (hosted checkout) functionality to gravcart<\/p>","description_plain":"Adding 2checkout (hosted checkout) functionality to gravcart","icon":"shopping-cart","author":{"name":"Jaime Lee","email":"weput@outlook.com"},"dependencies":[{"name":"shoppingcart","version":"~1.1"}],"homepage":"https:\/\/github.com\/weput\/grav-plugin-shoppingcart-2checkout-dev","keywords":"grav, plugin, etc","license":"MIT","tag_name":"0.01","date":"2017-07-12T18:36:06Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shoppingcart-2checkout-dev\/0.0.1","repository":"https:\/\/github.com\/plebeiu\/grav-plugin-shoppingcart-2checkout-dev","slug":"shoppingcart-2checkout-dev","install_path":"user\/plugins\/shoppingcart-2checkout-dev","content_sha256":"6aa1a32bd026b905582694f1c684616617029db5c74a2df7d8b9088aa975ddab","changelog":{"0.1.0":{"date":" 06\/14\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"grav-form-notifier":{"name":"Clicksend Form Notifier","version":"1.0.0","description":"A simple Grav plugin that allows you to send SMS notification every time someone submits your Grav form.","description_html":"<p>A simple Grav plugin that allows you to send SMS notification every time someone submits your Grav form.<\/p>","description_plain":"A simple Grav plugin that allows you to send SMS notification every time someone submits your Grav form.","icon":"plug","author":{"name":"ClickSend","email":"support@clicksend.com"},"dependencies":[{"name":"form","version":"*"}],"homepage":"https:\/\/github.com\/clicksend\/grav-form-notifier","docs":"https:\/\/github.com\/clicksend\/grav-form-notifier\/blob\/develop\/README.md","demo":"https:\/\/clicksend.com","keywords":"grav,plugin,clicksend,form,sms","bugs":"https:\/\/github.com\/clicksend\/grav-form-notifier\/issues","license":"MIT","tag_name":"1.1.0","date":"2017-08-24T11:07:04Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/grav-form-notifier\/1.0.0","repository":"https:\/\/github.com\/ClickSend\/grav-form-notifier","slug":"grav-form-notifier","install_path":"user\/plugins\/grav-form-notifier","content_sha256":"decb124549c707c42e00d1636948e997b0ee086f1fe5ca40b49756b782a8c805","changelog":{"1.0.0":{"date":" 07\/06\/2017","content":"1. [](#new)\n    * Initial release."}}},"podcast":{"name":"Podcast","version":"3.1.0","description":"Creates Podcast page types and related podcast RSS feeds","description_html":"<p>Creates Podcast page types and related podcast RSS feeds<\/p>","description_plain":"Creates Podcast page types and related podcast RSS feeds","icon":"microphone","author":{"name":"Jeremy Gonyea","email":"jeremy.gonyea@gmail.com"},"dependencies":[{"name":"breadcrumbs","version":"*"},{"name":"feed","version":"*"},{"name":"get-id3","version":"*"}],"homepage":"https:\/\/github.com\/jgonyea\/grav-plugin-podcast","docs":"https:\/\/github.com\/jgonyea\/grav-plugin-podcast\/blob\/develop\/README.md","keywords":"grav, plugin, podcast, music","bugs":"https:\/\/github.com\/jgonyea\/grav-plugin-podcast\/issues","license":"MIT","tag_name":"3.1.0","date":"2024-04-11T19:31:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/podcast\/3.1.0","repository":"https:\/\/github.com\/jgonyea\/grav-plugin-podcast","slug":"podcast","install_path":"user\/plugins\/podcast","content_sha256":"646412ee9e6bf68f76a85c6e3304ec31dee3f21cb71d6417be512b601cba1033","changelog":{"3.1.0":{"date":"04\/11\/2024","content":"1. [](#new)\n\n2. [](#improved)\n   * PR #58 - Add iTunes summary field (thanks aleclerc7)\n\n3. [](#bugfix)\n    * Issue #61 - Podcast title should come from page.header.podcast.title\n    * Issue #63 - Fix for xml validation\n    * Fix for missing channel image on series RSS feeds.\n"},"3.0.80":{"date":"03\/19\/2021","content":"1. [](#new)\n\n2. [](#improved)\n\n3. [](#bugfix)\n    * Issue #57 - Series should now be restricted to the channel they are in.\n"},"3.0.7":{"date":"03\/19\/2021","content":"1. [](#new)\n\n2. [](#improved)\n    * Some minor PSR2 fixes.\n    * Updated a few hardcoded paths to use Grav's locator instead.\n    * Remote files are now downloaded to Grav's tmp folder instead of the system's \/tmp folder.\n\n3. [](#bugfix)\n    * Bandaid fixed feed.rss.twig override clobbering regular rss feeds.\n"},"3.0.6":{"date":"03\/16\/2021","content":"1. [](#new)\n\n2. [](#improved)\n    * French and Portugese languages added.\n\n3. [](#bugfix)\n    * Fixed a harcoded text string.\n"},"3.0.5":{"date":"02\/05\/2021","content":"1. [](#new)\n\n2. [](#improved)\n    * Removed admin plugin as dependency.\n\n3. [](#bugfix)\n    * Fixed an h3 closing tag\n"},"3.0.4":{"date":"10\/04\/2021","content":"1. [](#new)\n\n2. [](#improved)\n    * Issue #44 Series and Episode author information is prepopulated based on info in the currently signed in Grav user.\n\n3. [](#bugfix)\n\n"},"3.0.3":{"date":"10\/02\/2021","content":"1. [](#new)\n\n2. [](#improved)\n\n3. [](#bugfix)\n    * Fix for Series and Channel pages rss feeds.\n    * Fix for incorrect publish date time calculations.\n"},"3.0.2":{"date":"10\/01\/2021","content":"1. [](#new)\n\n2. [](#improved)\n\n3. [](#bugfix)\n    * Invalid \"Explicit content\" flag validation check removed\n"},"3.0.1":{"date":"01\/25\/2021","content":"1. [](#new)\n\n2. [](#improved)\n\n3. [](#bugfix)\n    * Series images now loading properly\n    * Subtitle field label now say \"Subtitle\" vs \"Title\" in languages.yaml\n    * Small fix for mini list of episodes if no parent series (e.g. parent page is a channel page)"},"3.0.0":{"date":"01\/25\/2021","content":"1. [](#new)\n    * Grav v1.7 support.  Grav v1.6 is no longer supported.\n    * Individual file field uploads are no longer supported in Grav v1.7.  Instead, use the general media upoader and then the filepicker fields to select the appropriate audio\/ image files.\n2. [](#improved)\n    * Better multi-language support while creating new content via the admin plugin.\n    * Twig theming is improved considerably.\n    * Updated README to indicate that admin is now required.  If this becomes a problem, I can revisit the requirements.\n    * Removed `max_upload` audio file size value from plugin configuration.\n3. [](#bugfix)\n    * Episode subtitle in the rss feed now points to the correct field in the admin form.  You may need to re-save this data on v2 Podcast episodes to update them to the v3 Podcast format.\n"},"2.1.10":{"date":"01\/21\/2021","content":"1. [](#new)\n\n2. [](#improved)\n    * Changed some more settings in the plugin blueprint to utilize the core's ML labels.\n3. [](#bugfix)\n    * Fixes for 0byte sized feeds for RSS feeds by using `page.template` vs `page.name`\n"},"2.1.9":{"date":"01\/20\/2021","content":"1. [](#new)\n    * Adding a languages.yaml file to begin work on multi-language support.\n2. [](#improved)\n\n3. [](#bugfix)\n    * Multilanguage fixes for RSS feeds.\n"},"2.1.8":{"date":"01\/20\/2021","content":"1. [](#new)\n\n2. [](#improved)\n\n3. [](#bugfix)\n    * Grav 1.7 compatibility fix for podcast-episode content field.\n"},"2.1.7":{"date":"10\/19\/2020","content":"1. [](#new)\n\n2. [](#improved)\n\n3. [](#bugfix)\n    * Added missing twig brackets (thanks to [PalmTreeVI](https:\/\/github.com\/PalmTreeVI))\n"},"2.1.6":{"date":"09\/20\/2020","content":"1. [](#new)\n    * Added podcast episode number to feed.\n\n2. [](#improved)\n    * Updated News category options\n\n3. [](#bugfix)\n    * Updated field name to disable page media upload field on channels, series, and episodes.\n"},"2.1.5":{"date":"01\/28\/2020","content":"1. [](#new)\n\n2. [](#improved)\n\n3. [](#bugfix)\n    * Fixed multi-language support while saving a podcast episode\n    * Fixed incompatibility with Spotify ellipsis support\n    * Added check for image on channel page if no image exists\n"},"2.1.4":{"date":"02\/11\/2019","content":"1. [](#new)\n\n2. [](#improved)\n\n3. [](#bugfix)\n    * Updated gemfiles.  Fixes ffi security warning.\n"},"2.1.3":{"date":"05\/25\/2018","content":"1. [](#new)\n\n2. [](#improved)\n\n3. [](#bugfix)\n    * Fixed remote media urls in the media player.\n"},"2.1.2":{"date":"05\/14\/2018","content":"1. [](#new)\n    * New podcast configuration field for max podcast filesize.\n\n2. [](#improved)\n    * More audio tags supported (audio\/* vs. just mp3).\n\n3. [](#bugfix)\n    * Fixed various typos.\n    * Fixed media paths for episodes to use base_url's.\n    * Fixed truncation of summaries.\n"},"2.1.1":{"date":"08\/05\/2017","content":"1. [](#new)\n    * No new features.\n\n2. [](#improved)\n    * No new improvements.\n\n3. [](#bugfix)\n    * Removed broken podcast-host blueprint\n"}}},"users-page-ownership":{"name":"Users Page Ownership","version":"0.9.6","description":"Adds user ownership functionality to your pages","description_html":"<p>Adds user ownership functionality to your pages<\/p>","description_plain":"Adds user ownership functionality to your pages","icon":"user","author":{"name":"Dalen Catt","url":"http:\/\/cascadeap.com","email":"dalen@cascadeap.com"},"dependencies":[{"name":"grav","version":">=1.3.7"}],"homepage":"https:\/\/github.com\/Moonlight63\/grav-plugin-users-page-ownership","keywords":"admin, users, managment, plugin","license":"MIT","tag_name":"0.9.6","date":"2019-08-08T04:08:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/users-page-ownership\/0.9.6","repository":"https:\/\/github.com\/Moonlight63\/grav-plugin-users-page-ownership","slug":"users-page-ownership","install_path":"user\/plugins\/users-page-ownership","content_sha256":"ea276464da112eccde7ed1a290df27df5b3153c3999f77060d13979ed030620c","changelog":{"0.9.6":{"date":"08\/06\/19","content":"1. [](#bug-fix)\n    * Fixed issue with page type filtering breaking modular pages; this now works for both modular and non-modular pages.\n\n"},"0.9.5":{"date":"02\/11\/18","content":"1. [](#feature)\n    * Added a collaboration feature. Pages can now be shared with a specific user, and that user will be able to see that page in the pages view, and will be able to modify it's contents. Possibly useful for co-authoring or just as a debugging feature.\n2. [](#bug-fix)\n    * Fixed non authorized users from being able to access pages through the \"page ordering.\" I still recommend modifying the page blueprints of page types that should not be reordered to not include the ordering section at all. Any user can still re-order pages or enable\/disable numeric folder ordering for a page that they own or have control over.\n    * Removes being able to move a page to be the child of a page you do not control. -Thanks noxify!\n\n"},"0.9.4":{"date":"08\/05\/17","content":"1. [](#feature)\n    * Can now hide pages and child pages\/folders from the parent selection menu. (In my case, useful because my site has a section with hundreds of sub-folders for client data and media files, sevearly clutering this dropdown menu. This does not affect visability on the admin pages page (what?), so it is completly non-destructive.)\n"},"0.9.3":{"date":"08\/05\/17","content":"1. [](#bug-fix)\n    * Hopefully fixed a bug by adding an integrity check.\n2. [](#feature)\n    * Users and Groups can be limited to specific page types.\n"},"0.9.2":{"date":"08\/03\/17","content":"1. [](#bug-fix)\n    * Changed parentfilter to use ownerUtils instead of users twig var.\n2. [](#improvment)\n    * Page filtering uses a repeatable macro.\n3. [](#bug-fix)\n    * Page delete now properly checks permissions.\n4. [](#improvment)\n    * Page next\/prev buttons will skip over pages that cant be edited.\n    "},"0.9.1":{"date":"08\/01\/17","content":"1. [](#bug-fix)\n    * Changed name of the twig var to avoid a conflict with another plugin.\n    "},"0.9.0":{"date":"08\/01\/17","content":"1. [](#new)\n    * Changed the whole plugin structure and name.\n"},"0.8.8":{"date":"07\/07\/17","content":"1. [](#improved)\n    * New change and cosmetic fix to pages.\n    "},"0.8.7":{"date":"07\/05\/17","content":"1. [](#new)\n    * First public release."}}},"widget":{"name":"Widget","version":"1.5.0","description":"**Widget** is a plugin that lets you embed reusable modular components into pages using a simple header configuration","description_html":"<p><strong>Widget<\/strong> is a plugin that lets you embed reusable modular components into pages using a simple header configuration<\/p>","description_plain":"Widget is a plugin that lets you embed reusable modular components into pages using a simple header configuration","icon":"trello","author":{"name":"Oluwasoji Ojo","email":"itwizardy@gmail.com"},"homepage":"https:\/\/github.com\/sojimaxi\/grav-plugin-widget","docs":"https:\/\/github.com\/sojimaxi\/grav-plugin-widget\/blob\/master\/README.md","keywords":"widget, modular, inject, embed, markdown, twig, grav","bugs":"https:\/\/github.com\/sojimaxi\/grav-plugin-widget\/issues","license":"MIT","tag_name":"1.5.0","date":"2021-04-05T11:12:46+01:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/widget\/1.5.0","repository":"https:\/\/github.com\/sojimaxi\/grav-plugin-widget","slug":"widget","install_path":"user\/plugins\/widget","content_sha256":"eb94c867b3ead568954327d301f4024bc3a5bfdb0d1c1c277623aa43d76f0d77","changelog":{"1.5.0":{"date":"04\/05\/2021","content":"1. [](#bugfix)\n    * Fix the Internal error due to admin plugin v1.10+\n"},"1.4.3":{"date":"08\/28\/2020","content":"1. [](#bugfix)\n    * Fix error from undefined $locations variable.\n"},"1.4.2":{"date":"05\/20\/2020","content":"1. [](#bugfix)\n    * Updated the folder regex rule.\n"},"1.4.1":{"date":"05\/18\/2020","content":"1. [](#bugfix)\n    * Fixed conflict with the new parent page explorer [#19](https:\/\/github.com\/sojimaxi\/grav-plugin-widget\/issues\/19).\n    * Fixed the folder regex pattern and apply it to only modular pages within the widgets parent folder.\n"},"1.4.0":{"date":"05\/18\/2020","content":"1. [](#new)\n    * Added Inherited widgets for subpage from parent pages [#18](https:\/\/github.com\/sojimaxi\/grav-plugin-widget\/issues\/18)\n1. [](#improved)\n    * Improved widget loading performance with a static cache of already processed widgets\n"},"1.3.2":{"date":"06\/25\/2019","content":"1. [](#improved)\n    * Remove redundancy in the \"area\" form dropdown [#16](https:\/\/github.com\/sojimaxi\/grav-plugin-widget\/issues\/16)\n"},"1.3.1":{"date":"06\/24\/2019","content":"1. [](#bugfix)\n    * Fixed yaml lint errors\n"},"1.3.0":{"date":"03\/17\/2018","content":"1. [](#new)\n    * Multilingual support\n    * Added French locale\n1. [](#bugfix)\n    * Fixed changelog formatting\n"},"1.2.0":{"date":"10\/10\/2017","content":"1. [](#new)\n    * Ability to use widget in markdown via shortcode.\n1. [](#bugfix)\n    * Fixed changelog formatting\n1. [](#improved)\n    * Update documentations\n"},"1.1.5":{"date":"09\/12\/2017","content":"1. [](#bugfix)\n    * Fix Twig runtime error Github issues [#7](https:\/\/github.com\/sojimaxi\/grav-plugin-widget\/issues\/7) & [#8](https:\/\/github.com\/sojimaxi\/grav-plugin-widget\/issues\/8)\n"},"1.1.4":{"date":"08\/10\/2017","content":"1. [](#improved)\n    * Improved widget extra options\n"},"1.1.3":{"date":"07\/26\/2017","content":"1. [](#bugfix)\n    * Fix for invalid argument when empty widget field exist\n"},"1.1.2":{"date":"07\/05\/2017","content":"1. [](#bugfix)\n    * Add ordering@ to widget extra section to kept it below order fields\n    * Remove default from background image and all other extras\n    * Improve help tips text\n"},"1.1.1":{"date":"07\/04\/2017","content":"1. [](#improved)\n    * Fix various documentations\n"},"1.1.0":{"date":"07\/04\/2017","content":"1. [](#new)\n    * Added Site-wide Widget. It is now possible to define widgets in the site configuration and they will be available to all pages\n    * Added Background Color to Widget Extra\n1. [](#improved)\n    * Changed Background fields to header.background_*\n    * Changed Background Image field to text instead of filepicker to enable support for internal and external sources\n    * Removed Background Image Source from Widget Blueprint\n    * Update README\n"},"1.0.0":{"date":"07\/01\/2017","content":"1. [](#new)\n    * ChangeLog started...\n    * Add blueprints and  update README"}},"dependencies":[]},"editable-simplemde":{"name":"Editable With SimpleMDE","version":"1.1.2","description":"Edit page content in the frontend using the SimpleMDE markdown editor","description_html":"<p>Edit page content in the frontend using the SimpleMDE markdown editor<\/p>","description_plain":"Edit page content in the frontend using the SimpleMDE markdown editor","icon":"edit","author":{"name":"Ron Wardenier","email":"ron@rwgc.nl"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/bleutzinn\/grav-plugin-editable-simplemde","docs":"https:\/\/github.com\/bleutzinn\/grav-plugin-editable-simplemde\/blob\/master\/README.md","keywords":"plugin, editor, wysiwyg, markdown, editing, editable, front-end","bugs":"https:\/\/github.com\/bleutzinn\/grav-plugin-editable-simplemde\/issues","license":"MIT","tag_name":"v1.1.2","date":"2019-12-06T07:05:40Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/editable-simplemde\/1.1.2","repository":"https:\/\/github.com\/bleutzinn\/grav-plugin-editable-simplemde","slug":"editable-simplemde","install_path":"user\/plugins\/editable-simplemde","content_sha256":"abb2c63849ecc774adba6bbb9ce560a21625297a883ddd1df6a645867b14e5c0","changelog":{"1.1.2":{"date":" 12\/05\/2019","content":"1. [](#bugfix)\n    * Fixed inconsistancies in version numbering which prevented the addition of the latest update in the Grav Plugin repository. \n"},"1.1.1":{"date":" 07\/09\/2019","content":"1. [](#bugfix)\n    * Fixed problem with markdown parsers introduced with Grav 1.6 [#12](https:\/\/github.com\/bleutzinn\/grav-plugin-editable-simplemde\/issues\/12)\n1. [](#new)\n    * Introduced dependency upon Grav core version 1.6 and above\n"},"1.1.0":{"date":" 04\/21\/2018","content":"1. [](#new)\n    * In edit mode syntax highlighting in preview is active when using the Grav Highlight Plugin\n"},"1.0":{"date":" 04\/20\/2018","content":"1. [](#new)\n    * Added multi user editing. Allows editing of a page by individual users.\n    * Added support for editing by backend users (requires \"Split sessions\" to be off)\n"},"0.1.3":{"date":" 07\/07\/2017","content":"1. [](#changed)\n    * Removed testing flag and fixed broken link\n"},"0.1.2":{"date":" 07\/07\/2017","content":"1. [](#changed)\n    * Fixed URLs in bleuprints.yaml\n"},"0.1.1":{"date":" 02\/07\/2017","content":"1. [](#new)\n    * Added missing template\n"},"0.1.0":{"date":" 04\/16\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"autoseo":{"name":"Auto SEO","version":"1.7.2","description":"Grav AutoSEO is a plugin for Grav with which you can fill automatically the description and keywords metadata of a page using its content. It also adds Facebook Open Graph metadata and Twitter Cards Meta Tags.","description_html":"<p>Grav AutoSEO is a plugin for Grav with which you can fill automatically the description and keywords metadata of a page using its content. It also adds Facebook Open Graph metadata and Twitter Cards Meta Tags.<\/p>","description_plain":"Grav AutoSEO is a plugin for Grav with which you can fill automatically the description and keywords metadata of a page using its content. It also adds Facebook Open Graph metadata and Twitter Cards Meta Tags.","icon":"magic","author":{"name":"Nuno Costa","url":"http:\/\/www.codehaha.com","email":"info@codehaha.com"},"dependencies":[{"name":"admin","version":">=1.5.0"}],"homepage":"https:\/\/github.com\/francodacosta\/grav-plugin-autoseo","docs":"https:\/\/github.com\/francodacosta\/grav-plugin-autoseo\/blob\/master\/README.md","keywords":"plugin, seo, metadata extraction, auto fill","bugs":"https:\/\/github.com\/francodacosta\/grav-plugin-autoseo\/issues","license":"MIT","tag_name":"1.7.2.1","date":"2025-02-21T08:54:11Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/autoseo\/1.7.2","repository":"https:\/\/github.com\/francodacosta\/grav-plugin-autoseo","slug":"autoseo","install_path":"user\/plugins\/autoseo","content_sha256":"f568ece38c5d0608598321ed3f3e5b9efba98a6bf8ac87c2010210beaf798ad4","changelog":{"1.7.2":{"date":"25\/10\/2024","content":"1. [](#bugfix)\n    * pcre.backtrack_limit to 10000000, should fix (#4).\n"},"1.7.1":{"date":"10\/10\/2024","content":"1. [](#new)\n    * Ability to disable Auto SEO on specific pages.\n    * Contributed by [Jorge Sepulveda (jorluiseptor@gmail.com)](https:\/\/github.com\/jorluiseptor)\n"},"1.6.1":{"date":"06\/20\/2024","content":"1. [](#bugfix)\n    * Remove incomplete feature until further update.\n2. [](#improved)\n    * Clean-up README.\n    * Contributed by [Jorge Sepulveda (jorluiseptor@gmail.com)](https:\/\/github.com\/jorluiseptor)\n"},"1.6.0":{"date":"06\/20\/2024","content":"1. [](#improved)\n    * For the \"title\" metadata, add option to append the site title to the page title.\n    * For \"title\" metadata, add option to specify the text that separates the page and site titles.\n    * Contributed by [Jorge Sepulveda (jorluiseptor@gmail.com)](https:\/\/github.com\/jorluiseptor)\n"},"1.5.0":{"date":"01\/04\/2024","content":"1. [](#new)\n    * Adds SEO tab so you can set\/overide auto generated values\n"},"1.4.0":{"date":"04\/08\/2022","content":"1. [](#new)\n    * takeover release\n2. [](#bugfix)\n    * do not crash on mbregex search failure in php_mbereg_replace_exec.\n"},"1.3.5":{"date":"01\/26\/2018","content":"1. [](#bugfix)\n    * fix release dates in changelog.\n"},"1.3.3":{"date":"01\/26\/2018","content":"1. [](#bugfix)\n    * replace meta title content by page title instead of page slug.\n"},"1.3.2":{"date":"01\/10\/2018","content":"1. [](#bugfix)\n    * The meta tag fields were wrongly named \"property\" instead of \"name\".\n"},"1.3.1":{"date":"08\/03\/2017","content":"1. [](#improved)\n    * Add Admin plugin dependency (D\u00e1vid Szab\u00f3 <david.szabo97@gmail.com>)\n    * Use Slug utility function (D\u00e1vid Szab\u00f3 <david.szabo97@gmail.com)\n"},"1.3.0":{"date":"07\/31\/2017","content":"1. [](#bugfix)\n    * the metadata were not overridden if some of them were already set in the site settings\n    * the content was not used when its length in words was less than the value of the \"length\" settings\n    * rename the metadata \"keyword\" to \"keywords\" (its valid name !)\n2. [](#improved)\n    * code optimizations\n    * remove some code redundancies\n"},"1.2.6":{"date":"07\/30\/2017","content":"1. [](#bugfix)\n    * fix: plugin was not running as expected after the 1.3.1 grav update\n"},"1.2.5":{"date":"07\/27\/2017","content":"1. [](#bugfix)\n    * fix version numbering in changelog\n"},"1.2.4":{"date":"07\/27\/2017","content":"1. [](#bugfix)\n    * fix a bug in changelog that prevents auto upgrading\n"},"1.2.3":{"date":"07\/27\/2017","content":"1. [](#bugfix)\n    * fix a bug in changelog that prevents auto upgrading\n    * remove useless dependency\n"},"1.2.2":{"date":"07\/27\/2017","content":"1. [](#improved)\n    * minor changes in config files\n\t* update readme and changelog files\n"},"1.2.1":{"date":"07\/27\/2017","content":"1. [](#improved)\n    * update readme file\n"},"1.2.0":{"date":"07\/26\/2017","content":"1. [](#new)\n    * add metadata for Facebook Open Graph (thanks to Victor Rosset for the Social Meta Tags plugin source code I used for this part)\n    * add metadata for Twitter Cards Meta Tags (thanks to Victor Rosset for the Social Meta Tags plugin source code I used for this part)\n2. [](#improved)\n    * heavy code refactoring\n"},"1.1.1":{"date":"07\/04\/2017","content":"1. [](#improved)\n    * update readme file\n"},"1.1.0":{"date":"07\/04\/2017","content":"1. [](#improved)\n    * simplify the plugin structure by removing subclasses and autoload\n2. [](#bugfix)\n    * per-page configuration is now fully functional\n"}}},"admin-addon-user-manager":{"name":"Admin Addon User Manager","version":"2.6.0","description":"A simple admin panel extension which adds the option to manage users and groups","description_html":"<p>A simple admin panel extension which adds the option to manage users and groups<\/p>","description_plain":"A simple admin panel extension which adds the option to manage users and groups","icon":"plug","author":{"name":"D\u00e1vid Szab\u00f3","email":"david.szabo97@gmail.com"},"dependencies":[{"name":"grav","version":"<1.7.0"},{"name":"admin","version":">=1.0.0"}],"homepage":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-user-manager","docs":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-user-manager\/blob\/master\/README.md","keywords":"grav, plugin, admin, media","bugs":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-user-manager\/issues","license":"MIT","tag_name":"2.6.0","date":"2021-05-06T07:58:00Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-addon-user-manager\/2.6.0","repository":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-user-manager","slug":"admin-addon-user-manager","install_path":"user\/plugins\/admin-addon-user-manager","content_sha256":"1c768d2654226b9177a0ea3c4e1f5f63a3195495149578d2fb0d24c681bbbdb5","changelog":{"2.6.0":{"date":"06\/05\/2021","content":"1. [](#new)\n    * Since Grav v1.7.0 has a built-in interface for managing users and groups, it's time to say goodbye! Thanks for using my plugin!\n"},"2.5.0":{"date":"01\/12\/2021","content":"1. [](#new)\n    * It's now possible to do simple searches rather than advanced searches in the user and group manager. (#69)\n"},"2.4.0":{"date":"01\/12\/2021","content":"1. [](#new)\n    * German translation (Thanks: https:\/\/github.com\/Markus00000 PR #73)\n    * Event hook for user removal: AAUM_onUserRemove\n    * Event hook for group removal: AAUM_OnGroupRemove\n\n2. [](#improved)\n    * Full name column is now shown in the User Manager list display (#77)\n\n3. [](#bugfix)\n    * Fixed an issue when Grav pages folder is mounted on docker causing the plugin to malfunction (#75)\n"},"2.3.0":{"date":"04\/05\/2020","content":"1. [](#new)\n    * Chinese translation (Thanks: https:\/\/github.com\/dallaslu PR #68)\n\n2. [](#improved)\n    * Replace deprecated User::load (#66)\n    * Updated dependencies\n    * Better compatibility with v1.7\n"},"2.2.1":{"date":"12\/11\/2019","content":"1. [](#bugfix)\n    * Fix YAML linting error (#63)\n"},"2.2.0":{"date":"10\/11\/2019","content":"1. [](#new)\n    * Brazilian Portuguese translation (Thanks: https:\/\/github.com\/diegomagikal PR #61)\n    * Added \"Enabled\" toggle to user editor\n\n2. [](#bugfix)\n    * Fixed avatar upload\n"},"2.1.8":{"date":"05\/28\/2019","content":"1. [](#new)\n    * French translation (Thanks: https:\/\/github.com\/Miaourt PR #58)\n\n2. [](#bugfix)\n    * Fixed a problem with saving groups (#59)\n"},"2.1.7":{"date":" 02\/13\/2019","content":"1. [](#new)\n    * Serbian translation (Thanks: https:\/\/github.com\/tomaja-linuxo PR #47)\n    * Russian translation (Thanks: https:\/\/github.com\/Lufog-git PR #50)\n    * Ukrainian translation (Thanks: https:\/\/github.com\/Lufog-git PR #51)\n\n2. [](#improved)\n    * Fixed some non-translatable strings (Thanks: https:\/\/github.com\/Lufog-git PR #52)\n"},"2.1.6":{"date":" 06\/06\/2018","content":"1. [](#bugfix)\n    * Fixed error when using 'Login As' feature with an user without admin permissions (#43)\n"},"2.1.5":{"date":" 04\/09\/2018","content":"1. [](#bugfix)\n    * Fixed error when rendering front-end (#40)\n"},"2.1.4":{"date":" 04\/09\/2018","content":"1. [](#improved)\n    * Moved 'site.login' permission to the front of permission list. (#36)\n"},"2.1.3":{"date":" 04\/02\/2018","content":"1. [](#improved)\n    * Validate user object on save\n\n2. [](#bugfix)\n    * Fixed unset user permissions being pushed into the access array with an empty string value. Causing inherited permissions to be overwritten. (#38)\n"},"2.1.2":{"date":" 03\/29\/2018","content":"1. [](#new)\n    * Norwegian translation (Thanks: https:\/\/github.com\/achwell PR #37)\n"},"2.1.1":{"date":" 03\/22\/2018","content":"1. [](#improved)\n    * Added 'site.login' permission to the permission list. (#36)\n"},"2.1.0":{"date":" 03\/14\/2018","content":"1. [](#new)\n    * Czech translation (Thanks: https:\/\/github.com\/07pepa Issue #29)\n    * Spanish translation (Thanks: https:\/\/github.com\/filisko PR #31)\n\n2. [](#bugfix)\n    * Fixed user editor using wrong task when saving, which caused save error when you didn't have 'admin.super'. (#34)\n    * Added a temporary fix for user editor's permission area. The toggles moved below the permission's name at a specific width. (#22)\n    * Minor bugfixes\n"},"2.0.3":{"date":" 02\/27\/2018","content":"1. [](#improved)\n    * Added missing translations\n"},"2.0.2":{"date":" 01\/27\/2018","content":"1. [](#bugfix)\n    * Fixed wrong redirection after deleting an user (#28)\n    * Added missing translation for user delete confirmation\n"},"2.0.1":{"date":" 01\/01\/2018","content":"1. [](#bugfix)\n    * Fixed admin links not working when something is changed in the form (#27)\n"},"2.0.0":{"date":" 12\/29\/2017","content":"1. [](#new)\n    * 'Login As' button\n\n2. [](#bugfix)\n    * Fixed being redirected to the deleted user, now redirects to the user manager\n    * The delete button now shows up when editing the user\n    * Avatar upload now works\n"},"1.9.1":{"date":" 12\/29\/2017","content":"1. [](#bugfix)\n    * Fixed 'Memory leak when using non-ascii character (?) to create group' (#26)\n    * Fixed being redirected to the deleted group, now redirects to the group manager\n"}}},"bibleref":{"name":"BibleRef","version":"0.1.2","description":"References Bible passages by version, book, and chapter","description_html":"<p>References Bible passages by version, book, and chapter<\/p>","description_plain":"References Bible passages by version, book, and chapter","icon":"book","author":{"name":"Jeremy Gonyea","email":"jeremy.gonyea@gmail.com"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/jgonyea\/grav-bibleref","docs":"https:\/\/github.com\/jgonyea\/grav-bibleref\/blob\/develop\/README.md","keywords":"grav, plugin, bible","bugs":"https:\/\/github.com\/jgonyea\/grav-bibleref\/issues","license":"MIT","tag_name":"0.1.2","date":"2026-04-30T01:11:05Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/bibleref\/0.1.2","repository":"https:\/\/github.com\/jgonyea\/grav-bibleref","slug":"bibleref","install_path":"user\/plugins\/bibleref","content_sha256":"61ca170e591d6c8a2854906bf6abedbc7d25f3678bc3b38a75393f6bbaac2424","changelog":{"0.1.2":{"date":"04\/29\/26","content":"1. [](#new)\n    * Added Grav 2.0 compatibility\n2. [](#improved)\n    * Updated README for usage instructions.\n3. [](#bugfix)\n    *\n"},"0.1.1":{"date":"02\/22\/2018","content":"1. [](#new)\n    * None\n2. [](#improved)\n    * Improved documentation in README.md\n    * Improved PSR2 code adherence\n3. [](#bugfix)\n     * Fixed missing bracket in getBookChapterOptions\n"},"0.1.0":{"date":" 06\/19\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"nomnoml-uml-diagrams":{"name":"Nomnoml Uml Diagrams","version":"1.1.1","description":"Render nomnoml UML Diagrams in Markdown","description_html":"<p>Render nomnoml UML Diagrams in Markdown<\/p>","description_plain":"Render nomnoml UML Diagrams in Markdown","icon":"sitemap","author":{"name":"Ole Vik","email":"git@olevik.net"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/OleVik\/grav-plugin-nomnoml-uml-diagrams","docs":"https:\/\/github.com\/OleVik\/grav-plugin-nomnoml-uml-diagrams","demo":"http:\/\/nomnoml.com","keywords":"diagram, uml, nomnoml","bugs":"https:\/\/github.com\/OleVik\/grav-plugin-nomnoml-uml-diagrams\/issues","license":"MIT","tag_name":"v1.1.1","date":"2024-12-22T10:44:32Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/nomnoml-uml-diagrams\/1.1.1","repository":"https:\/\/github.com\/OleVik\/grav-plugin-nomnoml-uml-diagrams","slug":"nomnoml-uml-diagrams","install_path":"user\/plugins\/nomnoml-uml-diagrams","content_sha256":"9f1b0b8181ecec5bf822a12efd83efb1b79bdeebf9e96fc7926bdc53656aba04","changelog":{"1.1.1":{"date":"22-12-2024","content":"1. [](#bugfix)\n    * Set docs-page as https:\/\/github.com\/OleVik\/grav-plugin-nomnoml-uml-diagrams\n"},"1.1.0":{"date":"23-02-2022","content":"1. [](#improved)\n    * Slight re-organization of repository to match official grav repos (#2), thanks @cubuzz\n2. [](#new)\n    * Adds support for the [Nextgen Editor](https:\/\/getgrav.org\/premium\/nextgen-editor) premium plugin (#2), thanks @cubuzz\n"},"1.0.2":{"date":"08-10-2018","content":"1. [](#bugfix)\n    * Handle unset defaults\n"},"1.0.1":{"date":"04-07-2018","content":"1. [](#bugfix)\n    * Script-execution timing\n2. [](#new)\n    * Update scripts to [dev-master](344e3f58781c2185a4087cd9680929ec9ced358b)\n    * Default-options array\n3. [](#improved)\n    * README\n    * Code quality\n"},"1.0.0":{"date":"23-06-2017","content":"1. [](#new)\n    * Initial release"}}},"bigfoot-js":{"name":"Bigfoot JS","version":"0.1.4","description":"Loads the BigfootJS script (and jQuery if required) to enable better Footnotes.","description_html":"<p>Loads the BigfootJS script (and jQuery if required) to enable better Footnotes.<\/p>","description_plain":"Loads the BigfootJS script (and jQuery if required) to enable better Footnotes.","icon":"plug","author":{"name":"Craig Phillips","email":"support@craigphillips.biz"},"homepage":"https:\/\/github.com\/CPPL\/grav-bigfootjs","docs":"https:\/\/github.com\/CPPL\/grav-bigfootjs\/blob\/develop\/README.md","demo":"http:\/\/thesumof.it\/blog\/2017-06-21-bigfootjs-for-grav","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/CPPL\/grav-bigfootjs\/issues","license":"MIT","tag_name":"0.1.4","date":"2017-06-21T23:26:57+10:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/bigfoot-js\/0.1.4","repository":"https:\/\/github.com\/CPPL\/grav-bigfootjs","slug":"bigfoot-js","install_path":"user\/plugins\/bigfoot-js","content_sha256":"ef2774f3ae1a35680c6be1c1268d1ea7b51879db51c4e7ee986bb6125eede3ee","changelog":{"0.1.4":{"date":" 06\/22\/2017","content":"1. [](#new)\n    * Added support for the default styles of Bigfoot.js\n"},"0.1.3":{"date":" 06\/21\/2017","content":"1. [](#improved)\n    * More cleanup of README\n"},"0.1.2":{"date":" 06\/21\/2017","content":"1. [](#improved)\n    * Added default values to default config yaml\n"},"0.1.1":{"date":" 06\/21\/2017","content":"1. [](#improved)\n    * Minor changes to README\n"},"0.1.0":{"date":" 06\/20\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"fullpage":{"name":"FullPage","version":"1.3.0","description":"Fullscreen navigational slideshows through fullPage.js","description_html":"<p>Fullscreen navigational slideshows through fullPage.js<\/p>","description_plain":"Fullscreen navigational slideshows through fullPage.js","icon":"arrows-alt","author":{"name":"Ole Vik","email":"git@olevik.net"},"dependencies":[{"name":"grav","version":">=1.3"},{"name":"admin","version":">=1.5"}],"homepage":"https:\/\/github.com\/OleVik\/grav-plugin-fullpage","docs":"https:\/\/github.com\/OleVik\/grav-plugin-fullpage\/blob\/develop\/README.md","demo":"https:\/\/olevik.me\/staging\/grav-plugin-fullpage\/","keywords":"fullpage, fullpage.js, fullscreen, slides, fullscreen.js, presentation","bugs":"https:\/\/github.com\/OleVik\/grav-plugin-fullpage\/issues","license":"MIT","tag_name":"v1.3.0","date":"2020-07-17T18:26:09Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/fullpage\/1.3.0","repository":"https:\/\/github.com\/OleVik\/grav-plugin-fullpage","slug":"fullpage","install_path":"user\/plugins\/fullpage","content_sha256":"603780863236c84e8bd1f07ca2e2509b133e4d19ecd490218e5a778cc163816a","changelog":{"1.3.0":{"date":"17-07-2020","content":"1. [](#new)\n    * Blueprints for Admin\n"},"1.2.1":{"date":"28-08-2018","content":"1. [](#bugfix)\n    * Links to demo and docs\n"},"1.2.0":{"date":"03-06-2018","content":"1. [](#new)\n    * Bumped FullPage.js-version to 2.9.7\n2. [](#improved)\n    * Inline documentation\n3. [](#bugfix)\n    * Prevent caching Fullpage-template to fix #2\n"},"1.1.0-beta.1":{"date":"11-02-2018","content":"1. [](#improved)\n    * Move asset logic to template\n"},"1.0.0":{"date":"28-01-2018","content":"1. [](#new)\n    * Release as stable\n"},"0.9.6":{"date":"17-06-2017","content":"1. [](#improved)\n    * Transition\n    * README\n"},"0.9.5":{"date":"16-06-2017","content":"1. [](#new)\n    * Add settings for heading font and block-text font\n2. [](#improved)\n    * Optimize CSS\n    * Merge config with page, clean up Utilities\n    * Clean up Utilities\n    * Blueprints, CSS, and README\n"},"0.9.4":{"date":"14-06-2017","content":"1. [](#new)\n    * OnLoad Page-Transition\n2. [](#improved)\n    * Responsive built-in CSS from SCSS\n    * Blueprints and README\n3. [](#bugfix)\n    * Revert to Page's content-method\n"},"0.9.3":{"date":"13-06-2017","content":"1. [](#improved)\n    * Blueprints with limited defaults\n    * Fullpage.yaml with limited defaults\n"},"0.9.2":{"date":"12-06-2017","content":"1. [](#new)\n    * Section- and slide-specific styling from Utilities->interpretShortcodes()\n2. [](#improved)\n    * Gantry-compatibility\n    * Twig-template injection\n    * README and Blueprints\n3. [](#bugfix)\n    * Revert to Page's rawMarkdown-method\n    * If empty styles in Utilities->applyStyles(), return null\n"},"0.9.1":{"date":"11-06-2017","content":"1. [](#new)\n    * Initial Blueprints\n    * Include Theme CSS\n    * Inject Twig-template\n2. [](#improved)\n    * README\n    * Blocks in fullpage.html.twig\n    * Render Twig in Markdown\n    * Render page's body_classes-property\n"},"0.9.0":{"date":"11-06-2017","content":"1. [](#new)\n    * Initial beta-release"}}},"responsive-images":{"name":"Responsive Images","version":"3.3.1","description":"The **Responsive Images** plugin makes websites faster by auto-generating `srcset` attributes for foreground images and CSS media queries for background images.","description_html":"<p>The <strong>Responsive Images<\/strong> plugin makes websites faster by auto-generating <code>srcset<\/code> attributes for foreground images and CSS media queries for background images.<\/p>","description_plain":"The Responsive Images plugin makes websites faster by auto-generating srcset attributes for foreground images and CSS media queries for background images.","icon":"picture-o","author":{"name":"OliverO2","email":"oliver.o456i@gmail.com"},"dependencies":[{"name":"grav","version":">=1.6"}],"homepage":"https:\/\/github.com\/OliverO2\/grav-plugin-responsive-images","docs":"https:\/\/github.com\/OliverO2\/grav-plugin-responsive-images\/blob\/master\/README.md","keywords":"grav, plugin, media, images, responsive, srcset","bugs":"https:\/\/github.com\/OliverO2\/grav-plugin-responsive-images\/issues","license":"MIT","tag_name":"v3.3.1","date":"2022-03-24T21:11:34Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/responsive-images\/3.3.1","repository":"https:\/\/github.com\/OliverO2\/grav-plugin-responsive-images","slug":"responsive-images","install_path":"user\/plugins\/responsive-images","content_sha256":"85ede49a85e3e98f6757ccdbbdbbb34700ee5afa8f2675fb90b01fe8da704228","changelog":{"3.3.1":{"date":"24-03-2022","content":"1. [](#bugfix)\n    * Fix generated <source> elements within <picture>, removing 'src' tag\n"},"3.3.0":{"date":"24-03-2022","content":"1. [](#improved)\n    * Add Twig function html_image_support_classes().\n"},"3.2.0":{"date":"24-03-2022","content":"1. [](#improved)\n    * Support alternative image formats (e.g. WebP).\n"},"3.1.0":{"date":"22-03-2022","content":"1. [](#improved)\n    * background_image_class(): Prefer higher image resolution.\n"},"3.0.3":{"date":"05-06-2021","content":"1. [](#improved)\n    * Relax required PHP version to >=7.3.\n"},"3.0.2":{"date":"08-03-2021","content":"1. [](#improved)\n    * Documented Twig caching problems on modular pages (Grav issue #1934).\n"},"3.0.1":{"date":"07-03-2021","content":"1. [](#bugfix)\n    * Fixed page-relative links for modular pages.\n1. [](#improved)\n    * Upgraded to PHP 7.4.\n"},"3.0.0":{"date":"01-03-2021","content":"1. [](#new)\n    * Added support for page-relative image links ([#1](https:\/\/github.com\/OliverO2\/grav-plugin-responsive-images\/issues\/1)). **UPGRADE NOTE:** Formerly relative image paths must now be changed to absolute ones. Paths will be interpreted in a way consistent with Grav's documentation on [Image Linking](https:\/\/learn.getgrav.org\/16\/content\/image-linking).\n1. [](#improved)\n    * Documented using background images in page content ([#2](https:\/\/github.com\/OliverO2\/grav-plugin-responsive-images\/issues\/2)).\n1. [](#improved)\n    * Added support for Grav 1.7 with Twig auto-escaping enabled by default. This plugin's Twig functions can be used with auto-escape enabled without requiring the `...|raw` filter.\n"},"2.0.3":{"date":"30-05-2020","content":"1. [](#new)\n    * Added `background_image_class()` for responsive background images with auto-generated CSS media queries.\n1. [](#improved)\n    * Removed Microsoft Edge `srcset` workaround as the corresponding bug had been fixed in Edge 16 released in October 2017.\n"},"1.0.0":{"date":"13-05-2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"admin-addon-revisions":{"name":"Admin Addon Revisions","version":"2.0.2","description":"An extension for Admin plugin which adds revisions for pages. Integrates with admin, easily revert back to a previous revision whenever you want!","description_html":"<p>An extension for Admin plugin which adds revisions for pages. Integrates with admin, easily revert back to a previous revision whenever you want!<\/p>","description_plain":"An extension for Admin plugin which adds revisions for pages. Integrates with admin, easily revert back to a previous revision whenever you want!","icon":"plug","author":{"name":"D\u00e1vid Szab\u00f3","email":"david.szabo97@gmail.com"},"dependencies":[{"name":"grav","version":">=1.6.0"},{"name":"admin","version":">=1.0.0"}],"homepage":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-revisions","docs":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-revisions\/blob\/master\/README.md","keywords":"grav, plugin, admin, revisions","bugs":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-revisions\/issues","license":"MIT","tag_name":"2.0.2","date":"2024-12-21T16:10:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-addon-revisions\/2.0.2","repository":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-revisions","slug":"admin-addon-revisions","install_path":"user\/plugins\/admin-addon-revisions","content_sha256":"dd6ea86c8f36e12fb5dce661fd3a82f6810bcbe65020dcc366780bc1566dd463","changelog":{"2.0.2":{"date":" 21\/12\/2024","content":"1. [](#bugfix)\n    * Fix read only exception when accessing plugin custom pages\n"},"2.0.1":{"date":" 03\/12\/2024","content":"1. [](#bugfix)\n    * Fix revisions directory not created\n"},"2.0.0":{"date":" 08\/11\/2023","content":"1. [](#new)\n    * Scheduled cleanup job\n\n2. [](#bugfix)\n    * Fixed multibyte strings in text diffs (Fix #26)\n    * Fixed deleting old revisions\n    * Fixed image diff exception\n    * Bail out if revisions directory is not writable (Fix #28)\n    * Code cleanup \/ fixes\n"},"1.4.0":{"date":" 04\/05\/2020","content":"1. [](#bugfix)\n    * Fixed error when non-default URL parameter separator used (Fix #22)\n    * Fixed \"unsaved changes\" modal coming up on configuration page every time (Fix #23)\n    * Rename autoload method to support v1.7\n"},"1.3.3":{"date":" 06\/13\/2018","content":"1. [](#bugfix)\n    * Fixed error when generating a revision for a virtual page (Fix #17)\n"},"1.3.2":{"date":" 12\/08\/2017","content":"1. [](#bugfix)\n    * Fixed error when accesing a generated page (Fix #13)\n"},"1.3.1":{"date":" 12\/02\/2017","content":"1. [](#bugfix)\n    * Fixed null page error\n"},"1.3.0":{"date":" 12\/02\/2017","content":"1. [](#feature)\n    * Add ignore files feature\n"},"1.2.1":{"date":" 12\/02\/2017","content":"1. [](#bugfix)\n    * Fixed wrong configuration keys were used (none at all)\n"},"1.2.0":{"date":" 08\/30\/2017","content":"1. [](#new)\n    * Delete all revisions via button\n\n2. [](#bugfix)\n    * Fixed redirect after task handling\n"},"1.1.1":{"date":" 08\/09\/2017","content":"1. [](#improved)\n    * PHP5 compatibility\n    * Permissions\n"},"1.1.0":{"date":" 08\/01\/2017","content":"1. [](#improved)\n    * Debug mode is toggleable\n"},"1.0.1":{"date":" 05\/16\/2017","content":"1. [](#improved)\n    * Changed default directory\n"},"1.0.0":{"date":" 05\/13\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"seo":{"name":"SEO","version":"2.3.5","description":"Manage your site\u2019s meta tags for display in search engine results or social media networks. Includes an easy-to-use live preview feature.","description_html":"<p>Manage your site\u2019s meta tags for display in search engine results or social media networks. Includes an easy-to-use live preview feature.<\/p>","description_plain":"Manage your site\u2019s meta tags for display in search engine results or social media networks. Includes an easy-to-use live preview feature.","icon":"google","author":{"name":"Paul Massendari","email":"paul@massendari.com"},"dependencies":[{"name":"grav","version":">=1.3.8"},{"name":"admin","version":">=1.6.6"}],"homepage":"https:\/\/github.com\/paulmassen\/grav-plugin-seo","bugs":"https:\/\/github.com\/paulmassen\/grav-plugin-seo\/issues","license":"MIT\/GPL","tag_name":"v2.3.5","date":"2018-09-14T10:00:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/seo\/2.3.5","repository":"https:\/\/github.com\/paulmassen\/grav-plugin-seo","slug":"seo","install_path":"user\/plugins\/seo","content_sha256":"9a41c1fabb92ed626ed462f2a1002cf2fcdb3cd0dd196b62c8c912dbbcd459ab","changelog":{"2.3.5":{"date":"09\/14\/2018","content":"1. [](#fix)\n    * Changed the currency field from a select field to a text field to allow rare currencies\n    * Fixed the button to validate the page microdata\n"},"2.3.4":{"date":"03\/19\/2018","content":"1. [](#fix)\n    * Fixed whoops on opengraph image\n    "},"2.3.2":{"date":"01\/26\/2018","content":"1. [](#fix)\n    * Fixed opengraph and twitter error\n    * Fixed facebook default not fetched from plugin configuration\n\n"},"2.3.1":{"date":"01\/26\/2018","content":"1. [](#fix)\n    * Fixed whoops on twitter image\n    "},"2.3.0":{"date":"01\/26\/2018","content":"1. [](#fix)\n    * Fixed tag not stripped from description\n    * Added areaserved to organization and restaurant microdata\n    * Fixed event date problem\n"},"2.2.0":{"date":"01\/26\/2018","content":"1. [](#new)\n    * Fixed script and style tags in page content causing problem\n    * Few languages fixes\n    * Re-added date modified and date published that mysteriously disappeared\n    "},"2.1.9":{"date":"01\/09\/2018","content":"1. [](#new)\n    * Fixed Changelog causing trouble with GPM\n    "},"2.1.8":{"date":"01\/08\/2018","content":"1. [](#new)\n    * Added Nederland translation\n    * Fixed founder field causing crash when empty \n    * Fixed default twitter image not being displayed\n    * Fixed default values for opengraph and twitter\n    * Small changes in microdata blueprints\n"},"2.1.7":{"date":"12\/17\/2017","content":"1. [](#new)\n    * Added product microdata\n"},"2.1.6":{"date":"12\/12\/2017","content":"1. [](#new)\n    * Added better styling for the fieldset field\n    * Added icons on fieldsets fields\n    * Added some required fields to the organization microdata\n    * Added button label on the microdata tabs.\n\n1. [](#fix)\n    * Fixed the error Invalid Index Type on blueprints that did not use a \"content\" field\n    * Fixed the music album microdata not being displayed\n    * Removed duplicate attribute on the blueprint\n"},"2.1.5":{"date":"12\/07\/2017","content":"1. [](#new)\n    * Removed the empty script tags that appeared on page that did not use microdata\n    * Added some required fields to the organization microdata\n"},"2.1.4":{"date":"11\/22\/2017","content":"1. [](#fix)\n    * Fixed the url of structured data testing tool for non-english language\n   "},"2.1.3":{"date":"11\/22\/2017","content":"1. [](#new)\n    * Added a button to validate the page microdata with Google structured data testing tool\n"},"2.1.2":{"date":"10\/12\/2017","content":"1. [](#bugfix)\n    * Fixed site_name open graph\n    "},"2.1.1":{"date":"10\/12\/2017","content":"1. [](#bugfix)\n    * Fixed duplicate toggle\n    "},"2.1.0":{"date":"10\/12\/2017","content":"1. [](#bugfix)\n    * Added highlight to Toggle fields\n    * Few languages fixes\n    * Added url for Organization microdata\n    * Few css fixes\n    * Added more placeholder\n"},"2.0.9":{"date":"10\/04\/2017","content":"1. [](#bugfix)\n    * Fixed string manipulation causing error on some install\n"},"2.0.8":{"date":"10\/04\/2017","content":"1. [](#new)\n    * Added Logo url to Organization Microdata\n"},"2.0.7":{"date":"10\/03\/2017","content":"1. [](#new)\n    * Added Organization Microdata\n"},"2.0.6":{"date":"09\/10\/2017","content":"1. [](#bugfix)\n    * Changed Description\n"}}},"admin-addon-media-rename":{"name":"Admin Addon Media Rename","version":"1.6.3","description":"A simple but powerful plugin which adds the option to rename media files in the admin panel","description_html":"<p>A simple but powerful plugin which adds the option to rename media files in the admin panel<\/p>","description_plain":"A simple but powerful plugin which adds the option to rename media files in the admin panel","icon":"plug","author":{"name":"D\u00e1vid Szab\u00f3","email":"david.szabo97@gmail.com"},"dependencies":[{"name":"grav","version":">=1.0.0"},{"name":"admin","version":">=1.0.0"}],"homepage":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-media-rename","docs":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-media-rename\/blob\/master\/README.md","keywords":"grav, plugin, admin, media","bugs":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-media-rename\/issues","license":"MIT","tag_name":"1.6.3","date":"2019-01-03T18:53:27Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin-addon-media-rename\/1.6.3","repository":"https:\/\/github.com\/david-szabo97\/grav-plugin-admin-addon-media-rename","slug":"admin-addon-media-rename","install_path":"user\/plugins\/admin-addon-media-rename","content_sha256":"8d6f016ce031f3eb2dc2e77c8819992da7d79f732296cd796a946b793511e744","changelog":{"1.6.3\r":{"date":" 01\/03\/2019\r","content":"1. [](#bugfix)\r\n    * Fixed #16 , plugin breaks on newer Grav versions.\r\n\r"},"1.6.2\r":{"date":" 10\/24\/2017\r","content":"1. [](#bugfix)\r\n    * Fixed #13 , plugin breaks Admin panel when no home page is available\r\n\r"},"1.6.1\r":{"date":" 10\/02\/2017\r","content":"1. [](#improved)\r\n    * Added translation for Yes and No\r\n    * Added German translation\r\n\r"},"1.6.0\r":{"date":" 08\/25\/2017\r","content":"1. [](#new)\r\n    * Rename button\r\n\r"},"1.5.2\r":{"date":" 07\/06\/2017\r","content":"1. [](#improved)\r\n    * Prevents rename when new file name is already in use\r\n\r"},"1.5.1\r":{"date":" 07\/06\/2017\r","content":"1. [](#improved)\r\n    * Changes cursor when it is over the name\r\n\r"},"1.5.0\r":{"date":" 07\/06\/2017\r","content":"1. [](#feature)\r\n    * Now it supports blueprint file inputs too\r\n\n2. [](#improved)\r\n    * Now using admin task rather than custom path\r\n\r"},"1.4.0\r":{"date":" 06\/23\/2017\r","content":"1. [](#feature)\r\n    * The plugin will update the links on every page. (Toggleable)\r\n\r"},"1.3.0\r":{"date":" 06\/08\/2017\r","content":"1. [](#feature)\r\n    * The plugin will update the links on the current page. (Toggleable)\r\n\n2. [](#improved)\r\n    * Continue button is disabled until you don't do any changes.\r\n\r"},"1.2.4\r":{"date":" 05\/17\/2017\r","content":"1. [](#bugfix)\r\n    * Rename now works with folder numeric prefix enabled pages.\r\n\r"},"1.2.3\r":{"date":" 05\/13\/2017\r","content":"1. [](#bugfix)\r\n    * Revert back to locator.\r\n\r"},"1.2.2\r":{"date":" 05\/12\/2017\r","content":"1. [](#improved)\r\n    * Plugin doesn't rely on the RocketTheme locator anymore.\r\n\r"},"1.2.1\r":{"date":" 05\/12\/2017\r","content":"1. [](#improved)\r\n    * Error reports are now more informative.\r\n\r"},"1.2.0\r":{"date":" 05\/11\/2017\r","content":"1. [](#bugfix)\r\n    * Fixed renaming was available without logging in to admin #6\r\n    * Fixed media couldn't be deleted after rename #1\r\n2. [](#improved)\r\n    * Removed extra margin from loading spinner in the modal #5\r\n    * Plugin is now translate compatible #4\r\n    * Form is now configurable #3\r\n\r"},"1.1.1\r":{"date":" 05\/09\/2017\r","content":"1. [](#bugfix)\r\n    * Fix missing credentials.\r\n\r"},"1.1.0\r":{"date":" 05\/08\/2017\r","content":"1. [](#improved)\r\n    * Replaced browser confirmation and alert box with Grav's built-in modals.\r\n\r"},"1.0.0\r":{"date":" 04\/30\/2017\r","content":"1. [](#new)\r\n    * Initial release\r"}}},"pingdom_rum":{"name":"Pingdom Real User Monitoring Analytics","version":"0.2.1","description":"Pingdom RUM plugin lets you easily add the Pingdom Real User Monitoring to your GRAV website.","description_html":"<p>Pingdom RUM plugin lets you easily add the Pingdom Real User Monitoring to your GRAV website.<\/p>","description_plain":"Pingdom RUM plugin lets you easily add the Pingdom Real User Monitoring to your GRAV website.","icon":"bar-chart","author":{"name":"Craig Phillips","url":"http:\/\/craigphillips.biz","email":"support@craigphillips.biz"},"homepage":"https:\/\/github.com\/cppl\/grav-pingdom_rum","docs":"https:\/\/github.com\/cppl\/grav-pingdom_rum\/blob\/master\/README.md","keywords":"pingdom, plugin, rum, tracking, analytics","bugs":"https:\/\/github.com\/cppl\/grav-pingdom_rum\/issues","license":"MIT","tag_name":"0.2.1","date":"2017-06-19T17:12:29+10:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/pingdom_rum\/0.2.1","repository":"https:\/\/github.com\/CPPL\/grav-pingdom_rum","slug":"pingdom_rum","install_path":"user\/plugins\/pingdom_rum","content_sha256":"c55a2d490ef1df74083e01718b2451fe98e5c3c4b1a6b156f0d6b73669d82b21","changelog":{"0.2.1":{"date":"19-06-2017","content":"1. [](#improved)\n    * Update README.md with basic details of Tag feature\n"},"0.2.0":{"date":"18-06-2017","content":"1. [](#new)\n    * Added support for page tags in RUM reporting\n"},"0.1.2":{"date":"17-06-2017","content":"1. [](#improved)\n    * Fix date format in changelog\n"},"0.1.1":{"date":"12-03-2017","content":"1. [](#bugfix)\n    * Use PRUM ID from configuration not hardcoded ID\n"},"0.1.0":{"date":"12-03-2017","content":"1. [](#new)\n    * Initial version"}},"dependencies":[]},"blackhole":{"name":"Blackhole","version":"1.1.0","description":"Static site generator for Grav","description_html":"<p>Static site generator for Grav<\/p>","description_plain":"Static site generator for Grav","icon":"circle","author":{"name":"Barry Anders"},"homepage":"https:\/\/github.com\/barryanders\/grav-plugin-blackhole","docs":"https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/blob\/main\/README.md","keywords":"grav, plugin, static, site, generator","bugs":"https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/issues","license":"MIT","tag_name":"v1.1.0","date":"2022-07-30T09:18:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/blackhole\/1.1.0","repository":"https:\/\/github.com\/barryanders\/grav-plugin-blackhole","slug":"blackhole","install_path":"user\/plugins\/blackhole","content_sha256":"69c0b958eb509a32f8bb34e81cc792a48440b943ec0e692620e8799c42451f02","changelog":{"1.1.0":{"date":"7\/30\/2022","content":"1. [](#new)\n    * Added sitemap option [#47](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/pull\/47)\n"},"1.0.2":{"date":"7\/29\/2022","content":"1. [](#improved)\n    * Updating author info.\n"},"1.0.1":{"date":"1\/19\/2022","content":"1. [](#bugfix)\n    * Applied fix from fork.\n"},"1.0.0":{"date":"3\/4\/2021","content":"1. [](#new)\n    * No reported issues. No changes from beta 3. Done.\n"},"1.0.0-beta.3":{"date":"10\/30\/2020","content":"1. [](#new)\n    * Verbose Mode\n1. [](#improved)\n    * Asset changes detected by MD5 hash\n    * Removed Taxonomy\n1. [](#bugfix)\n    * Fix [#39](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/issues\/39)\n"},"1.0.0-beta.2":{"date":"10\/23\/2020","content":"1. [](#bugfix)\n    * Attempt to fix [#39](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/issues\/39)\n"},"1.0.0-beta.1":{"date":"4\/7\/2018","content":"1. [](#new)\n    * Breaking change: absolute URLs must be enabled in Grav System Configuration\n    * Beautiful blueprints for the generate command in Admin Plugin\n    * Taxonomy option added ([#6](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/issues\/6))\n1. [](#improved)\n    * Major code restructuring\n1. [](#bugfix)\n    * `assets` was reportedly buggy and is now confirmed to be working ([#26](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/issues\/26) and [#27](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/issues\/27))\n"},"0.12.0":{"date":"3\/29\/2018","content":"1. [](#new)\n    * Generate button added to Grav admin ([#5](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/issues\/5))\n1. [](#improved)\n    * Assets no longer logs errors when processing data URIs\n    * Assets ignores canonical links\n"},"0.11.2":{"date":"3\/28\/2018","content":"1. [](#improved)\n    * Breaking change: `--copy-assets` -> `--assets`\n    * Assets has been simplified and no longer accepts input.\n"},"0.11.1":{"date":"3\/14\/2018","content":"1. [](#bugfix)\n    * `--copy-assets` didn't previously take external assets into consideration\n"},"0.11.0":{"date":"3\/13\/2018","content":"1. [](#new)\n    * Copy assets option searches for standard web assets and copies them into the output path (you may specify file types)\n"},"0.10.0":{"date":"3\/11\/2018","content":"1. [](#bugfix)\n    * Fixed bug in RollingCurl where `prunePendingRequestQueue` was limiting the generation count ([#24](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/issues\/24))\n    * Fixed bug with the simultaneous limit where manual entry was returning an error\n"},"0.9.2":{"date":"11\/29\/2017","content":"1. [](#new)\n    * Set how many files will be generated simultaneously\n"},"0.9.1":{"date":"10\/23\/2017","content":"1. [](#bugfix)\n    * Fixed bug where only the home page was generated when `-r` wasn't set\n"},"0.9.0":{"date":"10\/23\/2017","content":"1. [](#new)\n    * `--force` option allows for users to overwrite previously generated files\n    * `--routes` option allows the user to choose which pages get generated\n1. [](#improved)\n    * Separated the admin plugin settings from the CLI\n"},"0.8.4":{"date":"9\/1\/2017","content":"1. [](#bugfix)\n    * Reverted to previous route method because collections are inadequate\n"},"0.8.3":{"date":"8\/18\/2017","content":"1. [](#improved)\n    * Remove modular pages from routes ([#18](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/pull\/18))\n2. [](#bugfix)\n    * Fixed output-url ([#19](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/pull\/19))\n"},"0.8.2":{"date":"8\/1\/2017","content":"1. [](#bugfix)\n    * Fixed issue where generating path was blank in the CL\n"},"0.8.1":{"date":"8\/1\/2017","content":"1. [](#new)\n    * Added timer\n2. [](#bugfix)\n    * Fixed memory growth problem ([#16](https:\/\/github.com\/barryanders\/grav-plugin-blackhole\/issues\/16))\n"},"0.8.0":{"date":"7\/30\/2017","content":"1. [](#improved)\n    * Lightning fast generation with asynchronous curl\n"}},"dependencies":[]},"unitegallery":{"name":"Unitegallery","version":"1.1.3","description":"This plugin adds twig function to create media galleries using Unitegallery js library","description_html":"<p>This plugin adds twig function to create media galleries using Unitegallery js library<\/p>","description_plain":"This plugin adds twig function to create media galleries using Unitegallery js library","icon":"th-large","author":{"name":"Anton Filimonov","email":"anton.filimonov@gmail.com"},"homepage":"https:\/\/github.com\/variar\/grav-plugin-unitegallery","keywords":"gallery, images, unitegallery","bugs":"https:\/\/github.com\/variar\/grav-plugin-unitegallery\/issues","license":"MIT","tag_name":"v1.1.3","date":"2017-05-18T21:41:34Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/unitegallery\/1.1.3","repository":"https:\/\/github.com\/variar\/grav-plugin-unitegallery","slug":"unitegallery","install_path":"user\/plugins\/unitegallery","content_sha256":"ea2e476af0558a53d66c17807e79bd79fe276f5b2757f55d3a919ffb145f6cfb","changelog":{"1.1.3":{"date":"2017-05-19","content":"1. [](#bugfix)\n    * Allow to use gallery in non-modular pages\n    [https:\/\/github.com\/variar\/grav-plugin-unitegallery\/issues\/8](https:\/\/github.com\/variar\/grav-plugin-unitegallery\/issues\/8)\n\n"},"1.1.2":{"date":"2017-04-03","content":"1. [](#new)\n    * Allow to pass custom gallery id in json options\n"},"1.1.1":{"date":"2017-04-03","content":"1. [](#new)\n    * Allow to pass custom gallery id to have several galleries per page.\n"},"1.1.0":{"date":"2017-04-02","content":"1. [](#new)\n    * Changed assets loading scheme to allow caching of pages with galleries\n"},"1.0.1":{"date":"2017-03-26","content":"1. [](#bugfix)\n    * Fix validation of gallery div id field\n    [https:\/\/github.com\/variar\/grav-plugin-unitegallery\/issues\/2](https:\/\/github.com\/variar\/grav-plugin-unitegallery\/issues\/2)\n\n"},"1.0.0":{"date":"2017-03-19","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"groove":{"name":"Groove","version":"0.9.0","description":"Adds a form action to create a Groove ticket","description_html":"<p>Adds a form action to create a Groove ticket<\/p>","description_plain":"Adds a form action to create a Groove ticket","icon":"ticket","author":{"name":"Beno\u00eet Rouleau","email":"benoit.rouleau@icloud.com"},"dependencies":[{"name":"form","version":"~2.0"}],"homepage":"https:\/\/github.com\/benface\/grav-plugin-groove","docs":"https:\/\/github.com\/benface\/grav-plugin-groove\/blob\/master\/README.md","keywords":"grav, plugin, groove","bugs":"https:\/\/github.com\/benface\/grav-plugin-groove\/issues","license":"MIT","tag_name":"0.9.0","date":"2017-03-08T04:40:05Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/groove\/0.9.0","repository":"https:\/\/github.com\/benface\/grav-plugin-groove","slug":"groove","install_path":"user\/plugins\/groove","content_sha256":"e88f3139e98d4788ebfc6546397879168a7089c59cb50b3fe499029a8f33cb7c","changelog":{"1.0.0":{"date":"07-03-2017","content":"1. [](#new)\n    * First release"}}},"esperanto-helper":{"name":"Esperanto Helper","version":"1.0.2","description":"Some simple tools to make writing in Esperanto easier.","description_html":"<p>Some simple tools to make writing in Esperanto easier.<\/p>","description_plain":"Some simple tools to make writing in Esperanto easier.","icon":"globe","author":{"name":"Jacob Mastel","email":"jacob@mastel.org"},"homepage":"https:\/\/github.com\/jacobm001\/grav-plugin-esperanto-helper","docs":"https:\/\/github.com\/jacobm001\/grav-plugin-esperanto-helper\/blob\/master\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/jacobm001\/grav-plugin-esperanto-helper\/issues","license":"MIT","tag_name":"1.0.2","date":"2017-06-25T22:51:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/esperanto-helper\/1.0.2","repository":"https:\/\/github.com\/jacobm001\/grav-plugin-esperanto-helper","slug":"esperanto-helper","install_path":"user\/plugins\/esperanto-helper","content_sha256":"db73076c1236bb0a090d50e6dff2a5a866145ba674639b64e9208f8d89fa67da","changelog":{"0.1.0":{"date":" 03\/06\/2017","content":"1. [](#new)\n    * First Release\n    * Support for all of Esperanto's standard non-english characters.\n"},"1.0.0":{"date":" 03\/14\/2017","content":"1. [](#new)\n    * Testing release finished. First production version released\n"},"1.0.1":{"date":" 03\/14\/2017","content":"1. [](#fixed)\n    * Fixed the blueprint to include the updated version number\n"},"1.0.2":{"date":" 06\/25\/2017","content":"1. [](#changed)\n    * Changed the plugin icon"}},"dependencies":[]},"flex-directory":{"name":"Flex-Directory","version":"2.0.1","description":"Simple Flexible Directory Plugin","description_html":"<p>Simple Flexible Directory Plugin<\/p>","description_plain":"Simple Flexible Directory Plugin","icon":"list","author":{"name":"Trilby Media","email":"hello@trilby.media"},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-flex-directory","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-flex-directory\/blob\/develop\/README.md","keywords":"grav, plugin, crud, directory","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-flex-directory\/issues","license":"MIT","tag_name":"2.0.1","date":"2017-03-14T17:33:55Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/flex-directory\/2.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-flex-directory","slug":"flex-directory","install_path":"user\/plugins\/flex-directory","content_sha256":"5753f454ab411d060459545751ef0710241f7d9ca84c74cb8eea881da85ac52a","changelog":{"2.0.1":{"date":" 03\/14\/2017","content":"1. [](#bugfix)\n    * Fixed an issue where no save option is selected with new session\n"},"2.0.0":{"date":" 03\/13\/2017","content":"1. [](#new)\n    * Added new field to allow `create-new`, `edit`, and `list` on **Save** of item [#10](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-directory\/issues\/10)\n    * Added support for `file` form field type [#9](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-directory\/issues\/9)\n"},"1.0.2":{"date":" 03\/05\/2017","content":"1. [](#bugfix)\n    * Fixed issue with deleting entry from edit page [#3](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-directory\/issues\/3)\n"},"1.0.1":{"date":" 03\/05\/2017","content":"1. [](#bugfix)\n    * Removed sort order on `website` [#2](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-directory\/issues\/2)\n    * Fixed `last_name` label in various places [#1](https:\/\/github.com\/trilbymedia\/grav-plugin-flex-directory\/pull\/1)\n"},"1.0.0":{"date":" 03\/03\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"social-meta-tags":{"name":"Social Meta Tags","version":"0.3.0","description":"Facebook Open Graph and Twitter Cards Meta Tags","description_html":"<p>Facebook Open Graph and Twitter Cards Meta Tags<\/p>","description_plain":"Facebook Open Graph and Twitter Cards Meta Tags","icon":"code","author":{"name":"Victor Rosset","email":"victorrosset@gmail.com"},"homepage":"https:\/\/github.com\/tucho235\/grav-plugin-social-meta-tags","docs":"https:\/\/github.com\/tucho235\/grav-plugin-social-meta-tags\/blob\/develop\/README.md","demo":"https:\/\/github.com\/tucho235\/grav-plugin-social-meta-tags","keywords":"grav, plugin, facebook, open graph, twitter cards, google","bugs":"https:\/\/github.com\/tucho235\/grav-plugin-social-meta-tags\/issues","license":"MIT","tag_name":"v0.3.0","date":"2026-03-17T01:46:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/social-meta-tags\/0.3.0","repository":"https:\/\/github.com\/tucho235\/grav-plugin-social-meta-tags","slug":"social-meta-tags","install_path":"user\/plugins\/social-meta-tags","content_sha256":"ec2e45254b127bb4b26b55320ed43775781ab349ed1da1ca76c78f2649e9cbbe","changelog":{"0.3.0":{"date":"03\/16\/2026","content":"1. [](#new)\n    * JSON-LD \/ Schema.org structured data support (`WebSite`, `Article`, `WebPage`) injected automatically before `<\/head>`\n    * Per-page overrides via `social_meta` frontmatter block (title, description, type)\n    * `og:locale` support \u2014 detects active Grav language and maps to locale format (e.g. `en_US`)\n    * `og:image:width`, `og:image:height`, `og:image:alt`, `og:image:type` for richer image previews\n    * `article:published_time` and `article:modified_time` tags for article pages\n    * `og:type` is now dynamic: `website` for home page, `article` for all other pages\n2. [](#improved)\n    * Fixed `og:sitename` typo \u2014 corrected to `og:site_name` per Open Graph spec\n    * `og:site_name` now uses `site.title` from Grav config instead of `$page->value('name')`\n    * Description and image resolution now traverses modular page children when parent has no content\n    * Added whitespace collapsing to `sanitizeMarkdowns()`\n    * Increased description truncation limit from 140 to 280 characters\n"},"0.2.1":{"date":"(unreleased)","content":"1. [](#improved)\n    * Minor fixes\n"},"0.2.0":{"date":"03\/06\/2017","content":"1. [](#improved)\n    * Remove mandatory dependencies to AboutMe plugin for twitter:site integration\n    * Use summary for meta-tag description instead content for description\n"},"0.1.0":{"date":"09\/28\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"hypothesis":{"name":"Hypothesis","version":"1.0.3","description":"This plugin displays the [Hypothesis](https:\/\/hypothes.is\/) sidebar on your Grav site.","description_html":"<p>This plugin displays the <a href=\"https:\/\/hypothes.is\/\">Hypothesis<\/a> sidebar on your Grav site.<\/p>","description_plain":"This plugin displays the Hypothesis sidebar on your Grav site.","icon":"plug","author":{"name":"Hibbitts Design","url":"http:\/\/hibbittsdesign.org","email":"hello@hibbittsdesign.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/hibbitts-design\/grav-plugin-hypothesis","docs":"https:\/\/github.com\/hibbitts-design\/grav-plugin-hypothesis\/blob\/master\/README.md","demo":"http:\/\/demo.hibbittsdesign.org\/grav-hypothesis-plugin\/","keywords":"grav, plugin, hypothesis, annotation","bugs":"https:\/\/github.com\/hibbitts-design\/grav-plugin-hypothesis\/issues","license":"MIT","tag_name":"v1.0.3","date":"2026-07-07T17:25:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/hypothesis\/1.0.3","repository":"https:\/\/github.com\/hibbitts-design\/grav-plugin-hypothesis","slug":"hypothesis","install_path":"user\/plugins\/hypothesis","content_sha256":"7fa769c710a382dabd7c4ea8da8c133d4016dfdcfcfa633aed39183bdbe354da","changelog":{"1.0.3":{"date":" 07\/07\/2026","content":"1. [](#improved)\n    * Add 1.7|2.0 compatibility flags\n\n1. [](#bugfix)\n    * Fix Hypothesis embed script being escaped as text by injecting via Grav's 2.0 asset manager instead of raw page content\n"},"1.0.2":{"date":" 01\/26\/2021","content":"1. [](#improved)\n    * Updated plugin blueprints for Grav 1.7\n"},"1.0.1":{"date":" 08\/28\/2019","content":"1. [](#improved)\n    * Hypothesis sidebar is not displayed within Presentations or Slides (by the Presentation Plugin)\n"},"1.0.0":{"date":" 03\/02\/2018","content":"1. [](#new)\n    * Changed plugin author information to Hibbitts Design\n"},"0.9.3":{"date":" 03\/16\/2017","content":"1. [](#new)\n    * Added plugin demo link\n"},"0.9.2":{"date":" 03\/06\/2017","content":"1. [](#new)\n    * Added hide\/show Hypothesis sidebar page option in Admin Panel\n1. [](#improved)\n    * Updated Blueprints plugin description\n"},"0.9.1":{"date":" 03\/03\/2017","content":"1. [](#new)\n    * Added support for 'hide_hypothesis' option in page header\/frontmatter\n"},"0.9.0":{"date":" 02\/27\/2017","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"srcset":{"name":"srcset Helper","version":"1.0.0","description":"**srcset Helper** is a powerful plugin, that levels Grav&#39;s media processing features to make all images in pages responsive. For now limited to .jpg files.","description_html":"<p><strong>srcset Helper<\/strong> is a powerful plugin, that levels Grav&#39;s media processing features to make all images in pages responsive. For now limited to .jpg files.<\/p>","description_plain":"srcset Helper is a powerful plugin, that levels Grav&#39;s media processing features to make all images in pages responsive. For now limited to .jpg files.","icon":"trello","author":{"name":"Simon Cramer","email":"cramer.simon@gmail.com"},"homepage":"https:\/\/github.com\/simoncramer\/grav-plugin-srcset","keywords":"srcset, responsive, image, mobile, friendly, page speed","bugs":"https:\/\/github.com\/simoncramer\/grav-plugin-srcset\/issues","license":"MIT","tag_name":"v1.0.0","date":"2017-03-01T13:00:17Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/srcset\/1.0.0","repository":"https:\/\/github.com\/simoncramer\/grav-plugin-srcset","slug":"srcset","install_path":"user\/plugins\/srcset","content_sha256":"3b705d41626b5cf6b8ea3da8cc5860938bfb898954980ddd68b187858753cfd5","changelog":{"1.0.0":{"date":"03\/01\/2017","content":"1. [](#new)\n    * Inital Release. ChangeLog started..."}},"dependencies":[]},"shortcode-assets":{"name":"Shortcode Assets","version":"1.0.3","description":"Easily add page-level CSS and JS assets via shortcode tags","description_html":"<p>Easily add page-level CSS and JS assets via shortcode tags<\/p>","description_plain":"Easily add page-level CSS and JS assets via shortcode tags","icon":"plug","author":{"name":"Team Grav","email":"devs@getgrav.org"},"dependencies":[{"name":"shortcode-core","version":"*"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-assets","docs":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-assets\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-assets\/issues","license":"MIT","tag_name":"1.0.3","date":"2026-05-05T14:09:07Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-assets\/1.0.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-assets","slug":"shortcode-assets","install_path":"user\/plugins\/shortcode-assets","content_sha256":"fb33f16021f614f0d402978fa10d6b845f446735b137718fffa3f08fd77b240c","changelog":{"1.0.3":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.0.2":{"date":" 02\/26\/2017","content":"1. [](#improved)\n    * Made `isValidUrl()` regex more permssive to allow for stream-based URLs\n    "},"1.0.1":{"date":" 02\/21\/2017","content":"1. [](#bugfix)\n    * Moved `isValidUrl()` into shortcode until new Grav is released\n"},"1.0.0":{"date":" 02\/21\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"oerschema":{"name":"OER Schema","version":"0.1.0","description":"Enables oerschema.org vocab for grav site content","description_html":"<p>Enables oerschema.org vocab for grav site content<\/p>","description_plain":"Enables oerschema.org vocab for grav site content","icon":"github","author":{"name":"Michael Collins"},"homepage":"https:\/\/open-curriculum.org","docs":"https:\/\/github.com\/open-curriculum\/grav-plugin-oerschema","keywords":"grav, plugin, oer, oerschema","bugs":"https:\/\/github.com\/open-curriculum\/grav-plugin-oerschema\/issues","license":"MIT","tag_name":"v0.1.0-beta","date":"2017-02-15T00:07:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/oerschema\/0.1.0","repository":"https:\/\/github.com\/open-curriculum\/grav-plugin-oerschema","slug":"oerschema","install_path":"user\/plugins\/oerschema","content_sha256":"ef97ca190e78fffd5833c617b77797e1173e1f2ccc109c6e53552d81156de2c5","changelog":{"0.1.0":{"date":" 02\/14\/2017","content":"1. [](#new)\n    * Initialized plugin"}},"dependencies":[]},"social-counters":{"name":"Social Counters","version":"2.0.1","description":"Provides counts for social accounts such as GitHub and Twitter","description_html":"<p>Provides counts for social accounts such as GitHub and Twitter<\/p>","description_plain":"Provides counts for social accounts such as GitHub and Twitter","icon":"share-square","author":{"name":"Trilby Media","email":"devs@trilby.media"},"dependencies":[{"name":"github","version":">=2.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-social-counters","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-social-counters\/blob\/develop\/README.md","demo":"https:\/\/getgrav.org","keywords":"grav, plugin, twitter, github","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-social-counters\/issues","license":"MIT","tag_name":"2.0.1","date":"2026-05-05T14:12:19Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/social-counters\/2.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-social-counters","slug":"social-counters","install_path":"user\/plugins\/social-counters","content_sha256":"0089126008a0b2b801dae225d3f8fd2dbbff659bc492772d409cb8669f7dd896","changelog":{"2.0.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"2.0.0":{"date":"12\/10\/2018","content":"1. [](#bugfix)\n    * Fixed to support GitHub 2.0.0 plugin\n"},"1.0.0":{"date":"02\/04\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"slack-invite":{"name":"Slack Invite","version":"1.0.1","description":"Easily invite users to Slack","description_html":"<p>Easily invite users to Slack<\/p>","description_plain":"Easily invite users to Slack","icon":"slack","author":{"name":"Trilby Media","email":"devs@trilby.media"},"dependencies":[{"name":"form","version":"~2.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/trilbymedia\/grav-plugin-slack-invite","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-slack-invite\/blob\/develop\/README.md","demo":"https:\/\/getgrav.org\/slack","keywords":"grav, plugin, slack, chat, invite","bugs":"https:\/\/github.com\/trilbymedia\/grav-plugin-slack-invite\/issues","license":"MIT","tag_name":"1.0.1","date":"2026-05-05T14:12:13Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/slack-invite\/1.0.1","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-slack-invite","slug":"slack-invite","install_path":"user\/plugins\/slack-invite","content_sha256":"a1edfacc8c18e2fa7aeca67aa2b981585db85fd755543c90e976b05aeb746fdb","changelog":{"1.0.1":{"date":"04\/29\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n    * Fixed `Cannot use bool as array` fatal on PHP 8.x when the `slack_members` cache entry hadn't been seeded yet. `Cache::fetch()` returns `false` on a miss, but the plugin was destructuring the return value directly. Now guards on `is_array()` before unpacking.\n    * Skip all Slack API work when `slack_token` is empty. Previously the plugin would still hit Slack on every frontend request even without a token, paying ~200ms of network round-trip just to receive a 401 \u2014 slowing down every page on a freshly-installed-but-unconfigured site.\n"},"1.0.0":{"date":"02\/04\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"directorylisting":{"name":"Directory Listing","version":"3.0.1","description":"Builds hierarchical HTML-list from page-structure.","description_html":"<p>Builds hierarchical HTML-list from page-structure.<\/p>","description_plain":"Builds hierarchical HTML-list from page-structure.","icon":"folder-open","author":{"name":"Ole Vik","url":"http:\/\/olevik.me","email":"git@olevik.me"},"homepage":"https:\/\/github.com\/olevik\/grav-plugin-directorylisting","keywords":"directory, folders, files, tree, pages","bugs":"https:\/\/github.com\/olevik\/grav-plugin-directorylisting\/issues","license":"MIT","tag_name":"v3.0.1","date":"2024-09-14T20:50:41Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/directorylisting\/3.0.1","repository":"https:\/\/github.com\/olevik\/grav-plugin-directorylisting","slug":"directorylisting","install_path":"user\/plugins\/directorylisting","content_sha256":"a4c2440439f29768f6e512c4c3af3b77706a98cb955b88655da0d0c6285a07f8","changelog":{"3.0.1":{"date":"14-09-2024","content":"1. [](#bugfix)\n    * Add `| raw ` in README-examples (#21)\n"},"3.0.0":{"date":"02-01-2023","content":"1. [](#new)\n    * Remove reference to FontAwesome\n"},"2.4.0":{"date":"16-07-2020","content":"1. [](#new)\n    * Stable release\n"},"2.4.0-beta.1":{"date":"23-05-2020","content":"1. [](#bugfix)\n    * Fix media-linking\n"},"2.3.0":{"date":"07-12-2018","content":"1. [](#bugfix)\n    * Fix linking\n"},"2.2.1":{"date":"30-11-2018","content":"1. [](#bugfix)\n    * Fix class-inclusion\n"},"2.2.0":{"date":"24-11-2018","content":"1. [](#new)\n    * Added `max_depth`-setting (thanks @MadEmperorYuri, #11)\n2. [](#improved)\n    * Twig-variable robustness\n    * Code quality\n"},"2.1.0":{"date":"10-08-2018","content":"1. [](#new)\n    * Added showfiles-option to disable media showing up in the tree, #10.\n"},"2.0.0-rc.1":{"date":"16-05-2017","content":"1. [](#improved)\n    * Rewrote and restructured plugin\n    * Use pages and media rather than scandir()\n2. [](#new)\n    * Twig-function for building the Directory Listing in templates\n    * Use metisMenu jQuery-plugin for default functionality\n"},"1.1.1":{"date":"15-05-2017","content":"1. [](#improved)\n    * Facilitate page-level configuration\n    * Readme updates\n2. [](#bugfix)\n    * Excluding modules now targets children, not modular FrontMatter\n"},"1.1.0":{"date":"01-03-2017","content":"1. [](#improved)\n    * Inline JavaScript to accomodate level-option\n    * Readme updates\n2. [](#new)\n    * Add ability to include other folders\n    * Add option to select initial level of folders to expand on load\n3. [](#bugfix)\n    * Wrong field-name in blueprint\n    * Redundancy in dirToArray-method\n    * Keywords in blueprint\n"},"1.0.7":{"date":"28-02-2017","content":"1. [](#improved)\n    * Add ability to exclude specific files\/folders\n    * Switch to onTwigPageVariables in getSubscribedEvents\n    * Replace 'DIRECTORY_SEPARATOR' with '\/'\n    * PSR-1 and PSR-2 compliance\n    * Change plugin icon\n2. [](#new)\n    * Document class and methods\n3. [](#bugfix)\n    * Recursion call\n    * Improve default excludes to target all dotfiles\n"},"1.0.6":{"date":"07-02-2017","content":"1. [](#bugfix)\n    * Change paths from system to server\n"},"1.0.5":{"date":"06-02-2017","content":"1. [](#bugfix)\n    * Fix text in blueprint-field for excluding modular pages\n"},"1.0.4":{"date":"03-02-2017","content":"1. [](#new)\n    * Added option to exclude modular pages\n"},"1.0.3":{"date":"31-01-2017","content":"1. [](#improved)\n    * CHANGELOG fix\n"},"1.0.2":{"date":"31-01-2017","content":"1. [](#improved)\n    * Expanded README\n"},"1.0.1":{"date":"31-01-2017","content":"1. [](#improved)\n    * Changed icons\n"},"1.0.0":{"date":"30-01-2017","content":"1. [](#new)\n    * Initial release"}},"dependencies":[]},"bibtexify":{"name":"BibTeXify","version":"1.2.0","description":"This plugin turn a list of BibTeX references into an interactive page","description_html":"<p>This plugin turn a list of BibTeX references into an interactive page<\/p>","description_plain":"This plugin turn a list of BibTeX references into an interactive page","icon":"book","author":{"name":"Cristian Martinez","url":"http:\/\/martinec.org","email":"me@martinec.org"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/martinec\/grav-plugin-bibtexify","docs":"https:\/\/github.com\/martinec\/grav-plugin-bibtexify\/blob\/master\/README.md","demo":"http:\/\/unitexgramlab.org\/related-publications","keywords":"ui, plugin, bibtex, shortcode","bugs":"https:\/\/github.com\/martinec\/grav-plugin-bibtexify\/issues","license":"MIT","tag_name":"v1.2.0","date":"2021-05-11T21:10:38Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/bibtexify\/1.2.0","repository":"https:\/\/github.com\/martinec\/grav-plugin-bibtexify","slug":"bibtexify","install_path":"user\/plugins\/bibtexify","content_sha256":"0054e7fdaa1e18c33ebb88b59a389ac7369a07c48d8b1ccea836c939d22b819c","changelog":{"1.2.0":{"date":"05\/07\/2021","content":"1. [](#new)\n    * Allow to customize authors style using CSS (feature-request #11)\n"},"1.1.1":{"date":"04\/24\/2018","content":"1. [](#improved)\n    * Turn vertically year labels\n"},"1.1.0":{"date":"02\/17\/2017","content":"1. [](#new)\n    * Allow to customize publication entries using CSS styles (feature-request #1)\n    * Use icons to twitter, pdf, online and bibtex links\n"},"1.0.0":{"date":"01\/23\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"backup-manager":{"name":"Backup Manager","version":"0.1.7","description":"Enhanced backup for GRAV with CLI support","description_html":"<p>Enhanced backup for GRAV with CLI support<\/p>","description_plain":"Enhanced backup for GRAV with CLI support","icon":"battery-3","author":{"name":"Uli Hake","url":"http:\/\/www.saveva.com","email":"info@saveva.com"},"dependencies":[{"name":"admin","version":"*"}],"homepage":"https:\/\/github.com\/leotiger\/grav-plugin-backup-manager","docs":"https:\/\/github.com\/leotiger\/grav-plugin-backup-manager\/blob\/master\/README.md","keywords":"backup, partial, archive, support, image extraction, pages backup, media backup, cli","bugs":"https:\/\/github.com\/leotiger\/grav-plugin-backup-manager\/issues","license":"MIT","tag_name":"v0.1.7","date":"2024-04-15T09:13:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/backup-manager\/0.1.7","repository":"https:\/\/github.com\/leotiger\/grav-plugin-backup-manager","slug":"backup-manager","install_path":"user\/plugins\/backup-manager","content_sha256":"d7e6bad4df4f844b8a0227a315e27290282f020a243c9e763998f37fd18e58dc","changelog":{"0.1.7":{"date":"04\/15\/2024","content":"1. [](#fixed)\n    * Language yaml problem (Issue #20)\n"},"0.1.6":{"date":"20\/08\/2018","content":"1. [](#fixed)\n    * Compatibility with JQuery 3.x (Issue #13, thx @underr_ua)\n"},"0.1.5":{"date":"04\/06\/2017","content":"1. [](#fixed)\n    * undefined variable casesensitive changed to caseinsensitive which runs in via CLI config (Issue #8)\n"},"0.1.4":{"date":"02\/13\/2017","content":"1. [](#fixed)\n    * Make setting for number of backups to show operative (Issue 5)\n    * Fix internal function call inside storeStatus function (Issue 6)\n"},"0.1.3":{"date":"01\/26\/2017","content":"1. [](#fixed)\n    * Remove unused setting admin.pages from blueprint (Issue 2)\n\t* Display for backups older than today works now\n\n2. [](#new)\n    * Add setting and support for number of backups to show\n\t  in the latest backups list\n\n3. [](#improved)\n    * Make last backup graph display work like proposed in issue 910\n\t  for grav-plugin-admin\n\t* Delete backup.log file when no related site backup exists\n\t* Update last backup graph when purging or adding related site backups\n\t  "},"0.1.2":{"date":"01\/25\/2017","content":"1. [](#fixed)\n    * Issues with some purge scopes not working for naming problems\n\t* Issue with statistics showing partial backups under the site counter too\n\t* Showing \"Download test\" instead of \"Download\" after a live run in the \n\t  Details\n"},"0.1.1":{"date":"01\/25\/2017","content":"1. [](#new)\n    * Added phpinfo output to config and system scope\n\t  to offer insights into system if used for support\n\n2. [](#fixed)\n    * Strict error for Google Chrome and others (Issue 1 by @iusvar)\n\t* Permissions to allow the plugin to show up correctly in the sidebar menu\n\t  for users without admin.super rights \n\t* A false error showing up when not admin.super\n\n3. [](#improved)\n    * Allow supression of messages for task authorize function\n\t  (Something admin plugin should offer as well)\n"},"0.1.0":{"date":"01\/21\/2017","content":"1. [](#new)\n    * Initial release..."}}},"ui-libraries":{"name":"Ui Libraries","version":"0.1.0","description":"Gives you the ability to include any UI Library you might need (jQuery UI, UI Kit, etc)","description_html":"<p>Gives you the ability to include any UI Library you might need (jQuery UI, UI Kit, etc)<\/p>","description_plain":"Gives you the ability to include any UI Library you might need (jQuery UI, UI Kit, etc)","icon":"plug","author":{"name":"A+ Media","email":"hello@aplusmedia.org"},"homepage":"https:\/\/github.com\/Carve\/grav-ui-libraries","docs":"https:\/\/github.com\/Carve\/grav-ui-libraries\/blob\/develop\/README.md","demo":"http:\/\/aplusmedia.org","keywords":"libraries, ui, ui kit","bugs":"https:\/\/github.com\/Carve\/grav-ui-libraries\/issues","license":"MIT","tag_name":"0.1.0","date":"2017-01-21T00:01:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/ui-libraries\/0.1.0","repository":"https:\/\/github.com\/Carve\/grav-ui-libraries","slug":"ui-libraries","install_path":"user\/plugins\/ui-libraries","content_sha256":"06cbba9cb8fa7a6059558439194c3fece1db7cd3ef05268e2a66c48703266b2a","changelog":{"0.1.0":{"date":" 01\/20\/2017","content":"1. [](#new)\n    * Creation"}},"dependencies":[]},"twigfeeds":{"name":"Twig Feeds","version":"5.1.0","description":"Parse RSS, Atom, and JSON feeds with Twig.","description_html":"<p>Parse RSS, Atom, and JSON feeds with Twig.<\/p>","description_plain":"Parse RSS, Atom, and JSON feeds with Twig.","icon":"feed","author":{"name":"Ole Vik","url":"http:\/\/olevik.me","email":"git@olevik.me"},"dependencies":[{"name":"grav","version":">=1.7"}],"homepage":"https:\/\/github.com\/olevik\/grav-plugin-twigfeeds","keywords":"rss, atom, json, feed, feeds, twig","bugs":"https:\/\/github.com\/olevik\/grav-plugin-twigfeeds\/issues","license":"MIT","tag_name":"v5.1.0","date":"2026-01-31T08:23:15Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/twigfeeds\/5.1.0","repository":"https:\/\/github.com\/OleVik\/grav-plugin-twigfeeds","slug":"twigfeeds","install_path":"user\/plugins\/twigfeeds","content_sha256":"3580fad8d4da5ec04a11f72c58c31dbbfe0ea209952bd58b515cd6190cc68347","changelog":{"5.1.0":{"date":"31-01-2026","content":"1. [](#new)\n   - Minor-release from betas\n2. [](#improved)\n   - README\n"},"5.1.0-beta.13":{"date":"05-11-2025","content":"1. [](#improved)\n   - Compatibility with Grav 1.7 and 1.8 using unified Psr\/Log-fix\n"},"5.1.0-beta.12":{"date":"02-11-2025","content":"1. [](#improved)\n   - Note in README regarding compatibility with Grav 1.8 and PHP\n   - Add enabled-check earlier in processing\n   - Change version-specification for library\n"},"5.1.0-beta.11":{"date":"14-09-2025","content":"1. [](#improved)\n   - Structure of and details in README\n   - Simplify Logging-method\n   - Command-line methods\n2. [](#bugfix)\n   - Parsing-modes and normalizations with 'direct'\n   - Corrections for testing\n   - Downgrade `psr\/log`-library, both major-version 2 and 3 contain invalid interfaces\n"},"5.1.0-beta.10":{"date":"12-09-2025","content":"1. [](#new)\n   - Unit-testing\n2. [](#improved)\n   - Updated `psr\/log`-library\n2. [](#bugfix)\n   - Method-call in Parser\n"},"5.1.0-beta.9":{"date":"11-09-2025","content":"1. [](#improved)\n   - Error-logging to defined log-file as well as `error_log`\n   - Error-handling in Parser-class\n"},"5.1.0-beta.8":{"date":"24-08-2025","content":"1. [](#bugfix)\n   - Add missing `config` to live feed data\n"},"5.1.0-beta.7":{"date":"24-08-2025","content":"1. [](#bugfix)\n   - Selectize-field misbehaving because of data-defaults\n"},"5.1.0-beta.6":{"date":"10-08-2025","content":"1. [](#new)\n   - Categories- and Tags-settings for feeds\n   - `taxonomyValues`-method to get used taxons\n   - Add `Categories`- and `Tags`-setting natively\n1. [](#improved)\n   - README\n   - Move descriptions into placeholders in Admin-blueprints to conserve space\n   - Add execution-timers\n"},"5.1.0-beta.5":{"date":"09-08-2025","content":"1. [](#new)\n   - `mode`-setting to switch operation between regular feed-parsing and direct-query\n2. [](#improved)\n   - `Parser`-class construction and method-separation\n"},"5.1.0-beta.4":{"date":"02-08-2025","content":"1. ## [](#bugfix)\n   - Testing-setting in blueprints\n"},"5.1.0-beta.3":{"date":"02-08-2025","content":"1. [](#new)\n   - Extended logging of Parser-output to `log:\/\/twigfeeds.log` with `log_file`-setting\n2. [](#improved)\n   - README\n   - Code quality\n   - Pass `request_options` per feed\n3. ## [](#bugfix)\n   - Shift blueprints\n   - Patch `FeedIo\/Adapter\/GuzzleClient.php` to re-enable GET-requests, see [upstream](https:\/\/github.com\/php-feed-io\/feed-io\/pull\/15) pull request\n"},"5.1.0-beta.2":{"date":"25-07-2025","content":"1. [](#new)\n    * Added redundant fallbacks for `name` in cached feeds\n    * Bump parser-library to newest compatible minor-version\n2. [](#improved)\n    * Examples in README\n    * Main PHP-file internals\n"},"5.1.0-beta.1":{"date":"07-06-2025","content":"1. [](#new)\n    * Refactor blueprints to allow for easier overrides\n    * Add Feed-config to `twig_feeds`\n1. [](#bugfix)\n    * Parsed feed regression\n    * Amount as argument and as property\n"},"5.0.0":{"date":"30-05-2025","content":"1. [](#new)\n    * Release major-version\n"},"5.0.0-beta.2":{"date":"12-04-2022","content":"1. [](#bugfix)\n    * Debug-parameter (#33), thanks @hughbris\n    * Testing-parameter (#32), thanks @hughbris\n"},"5.0.0-beta.1":{"date":"02-02-2022","content":"1. [](#new)\n    * Major-version bump of FeedIO (#30, #31), thanks @lesion\n2. [](#improved)\n    * Require PHP v8\n    * Require Grav v1.7\n    * Remove PicoFeed-legacy [#ca09a6b](https:\/\/github.com\/OleVik\/grav-plugin-twigfeeds\/pull\/31\/commits\/ca09a6b0c65be52adbc6441b2c7b200e4acba4b9) and cleanup\n"},"4.0.1":{"date":"16-10-2019","content":"1. [](#bugfix)\n    * Wrong variable in Parser\n"},"4.0.0":{"date":"13-10-2019","content":"1. [](#new)\n    * Stable release of 4.0.0 refactor\n"},"4.0.0-beta.1":{"date":"01-10-2019","content":"1. [](#new)\n    * Refactor: Replaced PicoFeed with FeedIO\n    * The `extra_tags` option has been deprecated\n    * A `request_options` option has been added\n2. [](#improved)\n    * Error-handling\n    - Use PSR-4 for autoloading\n    - Blueprints, Translations\n"}}},"shortcode-owl-carousel":{"name":"Shortcode Owl Carousel","version":"1.0.5","description":"This plugin provides a shortcode for Owl Carousel slider","description_html":"<p>This plugin provides a shortcode for Owl Carousel slider<\/p>","description_plain":"This plugin provides a shortcode for Owl Carousel slider","icon":"columns","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"shortcode-core","version":">=4.1.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-owl-carousel","demo":"http:\/\/learn.getgrav.org","keywords":"shortcode, owl carousel, slider","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-owl-carousel\/issues","license":"MIT","tag_name":"1.0.5","date":"2026-05-05T14:09:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-owl-carousel\/1.0.5","repository":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-owl-carousel","slug":"shortcode-owl-carousel","install_path":"user\/plugins\/shortcode-owl-carousel","content_sha256":"8a679719454c82b1fbfb02e7babfe689e6bde34813e7886fd0fb18c6c1d56873","changelog":{"1.0.5":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.4":{"date":"03\/12\/2021","content":"1. [](#bugfix)\n   * Fixed raw HTML shown instead of an image [#18](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-owl-carousel\/issues\/18)\n"},"1.0.3":{"date":"06\/08\/2020","content":"1. [](#bugfix)\n    * Fix match type for parameter values [#21](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-owl-carousel\/issues\/21)\n"},"1.0.2":{"date":"05\/06\/2018","content":"1. [](#bugfix)\n    * Fixed issue with OwlCarousel not initializing when cached in modular pages [#16](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-owl-carousel\/issues\/16)\n"},"1.0.1":{"date":"01\/19\/2017","content":"1. [](#improved)\n    * Fixed FontAwesome icon\n"},"1.0.0":{"date":"01\/19\/2017","content":"1. [](#new)\n    * ChangeLog started..."}}},"adminidenticons":{"name":"Admin Identicons","version":"1.1.0","description":"Use Identicons for avatars in the Admin-plugin.","description_html":"<p>Use Identicons for avatars in the Admin-plugin.<\/p>","description_plain":"Use Identicons for avatars in the Admin-plugin.","icon":"user-circle","author":{"name":"Ole Vik","url":"http:\/\/olevik.me","email":"git@olevik.me"},"dependencies":[{"name":"grav","version":">=1.2"},{"name":"admin","version":">=1.3.2"}],"homepage":"https:\/\/github.com\/olevik\/grav-plugin-adminidenticons","keywords":"avatar, avatars, identicon, identicons","bugs":"https:\/\/github.com\/olevik\/grav-plugin-adminidenticons\/issues","license":"MIT","tag_name":"v1.1.0","date":"2019-04-07T10:52:51Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/adminidenticons\/1.1.0","repository":"https:\/\/github.com\/OleVik\/grav-plugin-adminidenticons","slug":"adminidenticons","install_path":"user\/plugins\/adminidenticons","content_sha256":"cc21cf46f2b4822b2f89886c25cd8602b391ade677b77f0ca9145a3f47530d0d","changelog":{"1.1.0":{"date":"07-04-2019","content":"1. [](#improved)\n    * Code quality\n2. [](#bugfix)\n    * Template conflicts\n"},"1.0.3":{"date":"14-04-2017","content":"1. [](#improved)\n    * Released v1.0.3-RC.1 as v1.0.3\n"},"1.0.3-RC.1":{"date":"03-04-2017","content":"1. [](#improved)\n    * Use less destructive, core templates\n    * Improve template paths\n    * Compatibility with custom avatars\n    * Code cleanup\n2. [](#bugfix)\n    * Image scaling\n    * Bump Grav dependencies\n3. [](#new)\n    * Deprecated range-field template\n    * Inline documentation, cleanup\n"},"1.0.2":{"date":"24-02-2017","content":"1. [](#bugfix)\n    * Use less-destructive templates\n    * Changelog Date Formats\n2. [](#improved)\n    * Code formatting and simplification\n    * PSR-1 and PSR-2 compliance\n    * Less generic plugin icon\n"},"1.0.1":{"date":"17-02-2017","content":"1. [](#bugfix)\n    * Fix Composer-dependencies\n"},"1.0.0":{"date":"15-01-2017","content":"1. [](#new)\n    * Initial release"}}},"adminstyles":{"name":"Admin Styles","version":"2.1.0","description":"Adds custom styles for Grav&#39;s Admin interface.","description_html":"<p>Adds custom styles for Grav&#39;s Admin interface.<\/p>","description_plain":"Adds custom styles for Grav&#39;s Admin interface.","icon":"css3","author":{"name":"Ole Vik","url":"http:\/\/olevik.me","email":"git@olevik.me"},"dependencies":[{"name":"grav","version":"~1.5"},{"name":"admin","version":">=1.8"}],"homepage":"https:\/\/github.com\/olevik\/grav-plugin-adminstyles","keywords":"admin, admin-plugin, style, styles, custom, custom style","bugs":"https:\/\/github.com\/olevik\/grav-plugin-adminstyles\/issues","license":"MIT","tag_name":"v2.1.0","date":"2019-04-07T10:52:31Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/adminstyles\/2.1.0","repository":"https:\/\/github.com\/OleVik\/grav-plugin-adminstyles","slug":"adminstyles","install_path":"user\/plugins\/adminstyles","content_sha256":"1d94bb9cc2d82b24be9fefda2371321b2cde0a0db8440102332bed935e0e3ac6","changelog":{"2.1.0":{"date":"07-04-2019","content":"1. [](#improved)\n    * Code quality\n2. [](#bugfix)\n    * Template conflicts\n"},"2.0.2":{"date":"09-10-2018","content":"1. [](#new)\n    * Added Hoth-theme\n"},"2.0.1":{"date":"17-08-2018","content":"1. [](#bugfix)\n    * GPM error hiding plugins\n"},"2.0.0":{"date":"15-08-2018","content":"1. [](#new)\n    * Custom themes from Admin-interface\n    * Added a few default themes\n    * Reworked Plugin-settings in Admin\n2. [](#improved)\n    * Refactored logic, code-quality\n    * Languages.yaml\n"},"1.1.1":{"date":"01-06-2017","content":"1. [](#bugfix)\n    * Theme Preview Page\n"},"1.1.0":{"date":"13-04-2017","content":"1. [](#new)\n    * 'current'-option to define Style-picker\n    * getConfigType-method to retrieve 'type' from configuration\n2. [](#bugfix)\n    * onAdminTwigTemplatePaths priority\n    * RadioImage-template values\n"},"1.0.2":{"date":"24-02-2017","content":"1. [](#new)\n    * Range-field compatibility\n    * Inline documentation\n2. [](#improved)\n    * Improve template paths\n    * Code cleanup\n3. [](#bugfix)\n    * Bump Grav dependencies\n"},"1.0.1":{"date":"24-02-2017","content":"1. [](#improved)\n    * Code formatting and simplification\n    * PSR-1 and PSR-2 compliance\n    * Less generic plugin icon\n2. [](#bugfix)\n    * Changelog Date Formats\n"},"1.0.0":{"date":"20-01-2017","content":"1. [](#improved)\n    * Consistency of theme elements\n    * Corrected README for release\n2. [](#bugfix)\n    * Statistics-widget preview\n    * Corrected references to and in languages.yaml\n"},"0.9.2":{"date":"19-01-2017","content":"1. [](#bugfix)\n    * Version bump.\n"},"0.9.1":{"date":"13-01-2017","content":"1. [](#bugfix)\n    * Fix malformed .gitignore\n"},"0.9.0":{"date":"13-01-2017","content":"1. [](#new)\n    * Initial release"}}},"qrcode":{"name":"QR Code","version":"1.1.0","description":"**QR Code** is a plugin that generates QR Codes simply by using the shortcode `[qrcode]` in your content.","description_html":"<p><strong>QR Code<\/strong> is a plugin that generates QR Codes simply by using the shortcode <code>[qrcode]<\/code> in your content.<\/p>","description_plain":"QR Code is a plugin that generates QR Codes simply by using the shortcode [qrcode] in your content.","icon":"qrcode","author":{"name":"Christian Worreschk","email":"cw@marsec.de"},"homepage":"https:\/\/github.com\/cworreschk\/grav-plugin-qrcode","docs":"https:\/\/github.com\/cworreschk\/grav-plugin-qrcode\/blob\/master\/README.md","keywords":"qr code, code","bugs":"https:\/\/github.com\/cworreschk\/grav-plugin-qrcode\/issues","license":"MIT","tag_name":"v1.1.0","date":"2017-03-13T10:46:49Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/qrcode\/1.1.0","repository":"https:\/\/github.com\/cworreschk\/grav-plugin-qrcode","slug":"qrcode","install_path":"user\/plugins\/qrcode","content_sha256":"5ffbb5f0d704a6c3821b094aecef87409593bda5910c91faf07a6dbcb6f87231","changelog":{"1.1.0":{"date":" 03\/13\/2017","content":"1. [](#improved)\n    * Support of multiple `qrcode` tags on a page. \n    * Line breaks in `qrcode` tags are now supported ([Issue #6](https:\/\/github.com\/cworreschk\/grav-plugin-qrcode\/issues\/6)).\n"},"1.0.3":{"date":" 03\/07\/2017","content":"1. [](#bugfix)\n    * Dependency from the `Login Plugin` removed ([Issue #4](https:\/\/github.com\/cworreschk\/grav-plugin-qrcode\/issues\/4)). Plugin can now be used without the `Admin Panel`.\n"},"1.0.2":{"date":" 02\/17\/2017","content":"1. [](#bugfix)\n    * Fixed a bug which could cause problems with the Grav Admin Plugin\n"},"1.0.1":{"date":" 01\/18\/2017","content":"1. [](#improved)\n    * Added french translation (@MATsxm)\n"},"1.0.0":{"date":" 01\/11\/2017","content":"1. [](#new)\n    * Simply create QR Codes with the shortcode `[qrcode]`\n    * Override the QR Code parameters for each page\n    * Inline parameters for the QR Code shortcode element    \n    * Button to add Qr Codes in the content editor\n    * Twig functions to embed QR Codes in your templates\n    * Multi-Language Support"}},"dependencies":[]},"vimeo":{"name":"Vimeo","version":"1.0.3","description":"**Vimeo** is a plugin that converts markdown video links into the [Vimeo](https:\/\/vimeo.com) Universal Embed Code.","description_html":"<p><strong>Vimeo<\/strong> is a plugin that converts markdown video links into the <a href=\"https:\/\/vimeo.com\">Vimeo<\/a> Universal Embed Code.<\/p>","description_plain":"Vimeo is a plugin that converts markdown video links into the Vimeo Universal Embed Code.","icon":"vimeo","author":{"name":"Christian Worreschk","email":"cw@marsec.de"},"homepage":"https:\/\/github.com\/cworreschk\/grav-plugin-vimeo","docs":"https:\/\/github.com\/cworreschk\/grav-plugin-vimeo\/blob\/master\/README.md","keywords":"vimeo, markdown, video, embed, iframe","bugs":"https:\/\/github.com\/cworreschk\/grav-plugin-vimeo\/issues","license":"MIT","tag_name":"v1.0.3","date":"2017-03-07T15:25:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/vimeo\/1.0.3","repository":"https:\/\/github.com\/cworreschk\/grav-plugin-vimeo","slug":"vimeo","install_path":"user\/plugins\/vimeo","content_sha256":"662b81d9d5d266f352518ca121abcb0ef4db387d0475294c1b239b4ab09b6fba","changelog":{"1.0.3":{"date":" 03\/07\/2017","content":"1. [](#bugfix)\n    * Dependency from the `Login Plugin` removed. Plugin can now be used without the `Admin Panel`.\n"},"1.0.2":{"date":" 02\/17\/2017","content":"1. [](#bugfix)\n    * Fixed a problem with the Grav Admin Plugin ([Issue #2](https:\/\/github.com\/cworreschk\/grav-plugin-vimeo\/issues\/2))\n"},"1.0.1":{"date":" 01\/09\/2017","content":"1. [](#improved)\n    * Added french translation (@MATsxm)\n"},"1.0.0":{"date":" 01\/05\/2017","content":"1. [](#new)\n    * Embed Vimeo videos and configure the player\n    * Override the player parameters for each page\n    * Button to add Vimeo videos in the content editor\n    * Twig functions to embed Vimeo videos in your templates\n    * Multi-Language Support"}},"dependencies":[]},"add-page-by-form":{"name":"Add Page By Form","version":"3.3.0","description":"Adds a page by means of a form","description_html":"<p>Adds a page by means of a form<\/p>","description_plain":"Adds a page by means of a form","icon":"plus-square-o","author":{"name":"Ron Wardenier","email":"ron@wardenier.com"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form","docs":"https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/blob\/master\/README.md","keywords":"grav, plugin, page, form, frontmatter","bugs":"https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues","license":"MIT","tag_name":"v3.3.0","date":"2023-09-14T10:37:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/add-page-by-form\/3.3.0","repository":"https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form","slug":"add-page-by-form","install_path":"user\/plugins\/add-page-by-form","content_sha256":"1f8bf6028e32abae2ea53b28e45900467149d77920900412fb02387de2b99be4","changelog":{"3.3.0":{"date":" 09\/14\/2023","content":"1. [](#improved)\n   - Added support multiple slug_fields to form unique slug, either as comma separated list or as array. Many thanks to walkload for the [pull request](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/pull\/65)\n   "},"3.2.0":{"date":" 02\/17\/2023","content":"1. [](#bugfix)\n   - Fixed a problem when `pagefrontmatter.content` was set (issue [#63](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/63))\n1. [](#bugfix)\n   - Fixed incorrect handling of using `pageconfig.parent: \/` (issue [#59](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/59))\n1. [](#improved)\n   - Added composer\n"},"3.1.0":{"date":" 12\/13\/2022","content":"1. [](#improved)\n   - Tested with PHP version 8 (8.1.10)\n   - Fixed some incorrect variable types in PHPDoc Comments\n1. [](#bugfix)\n   - Changed the declaration of the function `sanitize` to \"static\". [#62](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/62)). Thanks to masetto for raising this issue.\n"},"3.0.4":{"date":" 03\/28\/2022","content":"1. [](#bugfix)\n   - A title containing diacritic characters prevented a form submit (issues [#56](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/56) and [#60](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/60)). Thanks goes to davay for the pull request.\n   "},"3.0.3":{"date":" 05\/29\/2020","content":"1. [](#bugfix)\n   - Fixed not handling overwrite_mode setting properly, issue [#54](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/54), thanks to mooomooo for reporting and testing\n   "},"3.0.2":{"date":" 05\/17\/2020","content":"1. [](#improved)\n   - Yet another release. This time just to synchronize the versioning number in 'bleuprints.yaml' and this Changelog. For interesting changes see v3.0.0.\n"},"3.0.1":{"date":" 05\/17\/2020","content":"1. [](#improved)\n   - Removed a newline between the version number and the date in this Changelog file in an attempt to restore the correct display of this file in the Grav repository\n"},"3.0.0":{"date":" 05\/03\/2020","content":"1. [](#new)\n   - New 'overwrite_mode' option 'edit' allows for editing a page. Note: yet undocumented.\n   - Removing upload files is now handled\n1. [](#bugfix)\n   - Switched to Laravel str_slug function to remedy problems with hyphens on some Windows systems\n1. [](#improved)\n   * (Possibly breaking change:) Changed uploaded files data structure from numeric array to associative array\n   * (Possibly breaking change:) Changed default setting of 'physical_template_name' to 'true'\n   * Minimum Grav version is set to 1.6\n"},"2.4.1":{"date":" 04\/12\/2020","content":"1. [](#bugfix)\n   * Fixed a bug ([issue #52](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/52)) where an empty value for the 'slug' variable would delete folder(s). Thanks to [anton-mellit](https:\/\/github.com\/anton-mellit) for reporting this.\n"},"2.4.0":{"date":" 01\/28\/2020","content":"1. [](#new)\n    * Added a new config variable 'physical_template_name' to make using the new page template name as the new page's file name optional.\n1. [](#improved)\n    * Removed the Changelog entry that was included in [https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/pull\/47](PR #47) from this file as it was not in the Grav Changelog format and prevented changes showing up correctly in the Grav Plugins download section.\n"},"2.3.5":{"date":"01\/25\/2020","content":"1. [](#new)\n    * Add option to suppress loading of simpleMDE assets (reduces overhead if its known it will not be used) \n"},"2.3.4":{"date":" 01\/20\/2020","content":"1. [](#bugfix)\n    * Prepared a new release to mainly consolidate the fix \"Use moveTo method not native copy to move uploaded files to final destination\" and to bring this changelog format back in line with Grav requirements. Thanks to Dave Nichols (pd-giz-dave).\n1. [](#improved)\n    * Also included the ability to use the new page template name as the new page's folder name. Thanks to Dave Nichols (pd-giz-dave).\n"},"2.3.3":{"date":" 12\/05\/2019","content":"1. [](#bugfix)\n    * Fixed inconsistancies in version numbering which prevented the addition of the latest updates in the Grav Plugin repository. \n"},"2.3.2":{"date":" 11\/24\/2019","content":"1. [](#bugfix)\n    * Prepared a new release to fix a bug in version numbering. The letter \"v\" appears to be case sensitive. The versions 2.3.0 and 2.3.1 were tagged with a capital \"V\" as V2.3.0 and V2.3.1 respectively. Previous versions were tagged using a lowercase \"v\". This difference causes the Grav Repository to think these are two different plugins.\n"},"2.3.1":{"date":" 10\/10\/2019","content":"1. [](#bugfix)\n    * Fixed a subsequent failure to save file uploads to new page folder (form field File with `destination: @self`) introduced with Grav version 1.6.11 ([issue #44](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/44)). Thanks goes to mahagr for tips and to tranduyhung for the fix itself.\n"},"2.3.0":{"date":" 06\/06\/2019","content":"1. [](#bugfix)\n    * Fixed the failure to save file uploads to new page folder (form field File with `destination: @self`) introduced with Grav version 1.6 ([issue #40](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/40))\n"},"2.2.0":{"date":" 04\/15\/2018","content":"1. [](#new)\n    * Added support for `process.redirect: @self-admin` ([issue #13](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/31))\n1. [](#improved)\n    * Fixed a problem with uploading files\n"},"2.1.0":{"date":" 09\/18\/2017","content":"1. [](#new)\n    * Added support for taxonomy types and tags\n"},"2.0.0":{"date":" 06\/18\/2017","content":"1. [](#new)\n    * Added support for multiple textarea editors ([issue #21](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/21))\n    * Added support for `process.redirect: @self` ([issue #23](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/23))\n    * Added the `overwrite_mode` configuration frontmatter variable\n    * Added the `subroute` configuration frontmatter variable\n    * Added the `slug_field` configuration frontmatter variable \n    * Added filename sanitizing of uploaded files\n1. [](#improved)\n    * In the form page frontmatter configuration variables are separated from variables which main purpose it is to get passed on to the new page\n    * Uploaded file properties are now included in the new page frontmatter\n    * Improved safe slug generator\n    * Removed \"use editor\" option from `blueprints.yaml` (to allow [issue #21](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/21))\n    * Extended `blueprints.yaml` to set \"fallback\" configuration values\n1. [](#bugfix)\n    * Fixed an issue with form pages outside the web root ([issue #20](https:\/\/github.com\/bleutzinn\/grav-plugin-add-page-by-form\/issues\/20))\n    * Fixed a problem that prevented having different destinations for file uploads\n"},"1.4.2":{"date":" 03\/22\/2017","content":"1. [](#new)\n    * Cleaned up code for release.\n"}}},"git-sync":{"name":"Git Sync","version":"3.4.5","description":"Allows to synchronize portions of Grav with Git Repositories (GitHub, BitBucket, GitLab)","description_html":"<p>Allows to synchronize portions of Grav with Git Repositories (GitHub, BitBucket, GitLab)<\/p>","description_plain":"Allows to synchronize portions of Grav with Git Repositories (GitHub, BitBucket, GitLab)","icon":"git","author":{"name":"Trilby Media, LLC","url":"http:\/\/trilby.media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"form","version":">=3.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"http:\/\/trilby.media","docs":"https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync","keywords":"grav, plugin, git, sync, github, bitbucket, gitlab","license":"MIT","tag_name":"3.4.5","date":"2026-07-28T22:33:05Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/git-sync\/3.4.5","repository":"https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync","slug":"git-sync","install_path":"user\/plugins\/git-sync","content_sha256":"dbaf06c0f8837f27ecc2e75adce96d519d75934f36d06d288a8f794f4671f87e","changelog":{"3.4.5":{"date":"07\/28\/2026","content":"1. [](#bugfix)\n    * Fixed `{{pageTitle}}` and `{{pageRoute}}` in the commit message coming out as `NO TITLE FOUND` \/ `NO ROUTE FOUND` when saving from Admin Next [#254](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/254).\n    * Fixed the committer falling back to `GitSync` instead of the logged-in account when \"Use Grav User Name\" or \"Use Grav User Full Name\" is selected and the save comes from Admin Next.\n    * Page title and route are now also picked up on delete and media changes, not just page saves.\n"},"3.4.4":{"date":"06\/30\/2026","content":"1. [](#bugfix)\n    * The default branch is now `main` instead of `master` throughout \u2014 the setup Wizard (every hosting service, including \"All others\"), the Local Branch \/ Remote Branch settings fields, and the API defaults \u2014 matching the current default branch on GitHub, modern GitLab (14.0+), and Bitbucket Cloud. Previously the Wizard silently pre-filled `master` for GitLab and Bitbucket, which caused `git fetch origin master` to fail with `couldn't find remote ref master` on a freshly created repo [#251](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/251).\n    * `hasRemote()` now performs a genuine, quiet existence check (`git remote`) rather than running `remote get-url <name>` and relying on a thrown error. With command logging enabled this no longer writes a misleading `error: No such remote` line every time a remote hasn't been added yet.\n"},"3.4.3":{"date":"06\/01\/2026","content":"1. [](#bugfix)\n    * Fixed commits failing with `fatal: empty ident name (for <\u2026>) not allowed` when the committer name resolved to an empty string \u2014 for example a blank **Committer Name** field, or \"Use Grav User Full Name\" selected for an admin account with no full name set. Blank names\/emails now fall back to the `GitSync` \/ `git-sync@trilby.media` defaults [#249](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/249).\n"},"3.4.2":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n    * **The Git Sync sidebar entry and the toolbar Synchronize button are now hidden from users who lack any Git Sync permission**, matching how admin-classic gates the same menu. The items only appear for users with one of `api.git-sync`, `api.git-sync.read`, `api.git-sync.write`, or `api.git-sync.admin` (or super-admins). Requires grav-plugin-api \u2265 1.0.0-rc.11. Fixes [getgrav\/grav-plugin-admin2#23](https:\/\/github.com\/getgrav\/grav-plugin-admin2\/issues\/23).\n"},"3.4.1":{"date":"05\/07\/2026","content":"1. [](#bugfix)\n    * Fixed automatic sync not running after page save \/ delete \/ media changes in Admin2 [#250](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/250).\n    * Fixed the Wizard's webhook URL preview leaving out the install sub-folder when Grav is hosted under a path [#249](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/249).\n"},"3.4.0":{"date":"05\/06\/2026","content":"1. [](#new)\n    * Added a dedicated Git Sync page in Admin2 with a sidebar entry and Wizard \/ Synchronize \/ Reset Local Copy \/ Save buttons in the page header.\n    * Added a step-by-step setup Wizard in Admin2 that walks you through hosting service, repository, webhook and folders, with a one-click button to verify your credentials and branch.\n    * Added a quick Synchronize button to the Admin2 toolbar that's available everywhere once Git Sync is configured.\n    * Added a proper password input for the Git Password \/ Token field in Admin2 with a show \/ hide toggle and the same \"securely stored\" placeholder you're used to.\n1. [](#improved)\n    * The plugin's entry under Admin2 \u2192 Plugins now shows just the enable \/ disable toggle and a pointer to the dedicated Git Sync page, so you don't see the same form twice.\n    * Synchronize and Reset Local Copy keep the rest of Admin2 responsive while they're running.\n"},"3.2.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"3.2.0":{"date":"12\/29\/2025","content":"1. [](#improved)\n    * Improved PHP 8.4 compatibility\n1. [](#bugfix)\n    * Fix issue with saving reporting problems with `Folders`.\n"},"3.1.0":{"date":"12\/03\/2025","content":"1. [](#new)\n    * Added sync direction configuration to enable one-way (pull only) synchronization [#224](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/pull\/224)\n1. [](#improved)\n    * Fixed git pull command for modern git versions by adding `--ff` flag [#246](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/pull\/246)\n    * Removed unnecessary `config->reload()` call in `onAdminAfterSave` event\n"},"3.0.0":{"date":"10\/19\/2025","content":"1. [](#improved)\n    * Grav 1.8 support\n    * Use `{$var}` instead of `${var}` causing deprecation notices\n    * Prevent accepting webhooks when they are disabled in config [#216](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/216)\n    * Updated FAQ link to discussion\n"},"2.3.2":{"date":"06\/03\/2021","content":"1. [](#bugfix)\n   * Better validation for Git Repository value on both Wizard and Backend. \n   * Prevent malicious commands from being executed in Wizard when \"Verifying Authentication, Connection and Branch\".\n"},"2.3.1":{"date":"04\/30\/2021","content":"1. [](#bugfix)\n   * Fixed regression where `testRepository` would erroneously pass with invalid credentials [#200](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/200)\n   * Fixed Exception thrown with `bin\/plugin git-sync status` command, preventing `sync` [#200](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/200)\n"},"2.3.0":{"date":"04\/27\/2021","content":"1. [](#new)\n   * Added new Advanced Git Ignore field where it is possible to specify custom git ignore entries to play along with GitSync [#197](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/197) [#117](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/117) \n   * Support `ssh:\/\/` protocol and SSH Key authentication ([read more](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync#ssh--enterprise)) [#110](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/110)\n1. [](#improved)\n   * Updated PHP Encryption dependency\n1. [](#bugfix)\n   * Fixed issue with Flex Objects, preventing GitSync's settings to get refreshed `onAdminSave` when \"Sync on Page Save\" disabled\n   * Return raw URL for repositories setup with `ssh:\/\/` protocol, instead of injecting the password like `git:\/\/` and `http:\/\/` protocols do [#104](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/104)\n"},"2.2.0":{"date":"04\/17\/2021","content":"1. [](#improved)\n   * Better support for branches other than `master`. This includes the transition to `main` from GitHub and the groundwork to support other big providers making the change as announced soon. GitSync is now capable of preset the branch based on the provider selected. You are now also able to specify any custom branch and when testing the repository connection it will also ensure the branch exists and provide feedback if not. \n1. [](#bugfix)\n   * Changing remote branch is now going to properly reference it instead of remaining stuck to `master` [#192](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/192), [#183](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/183)\n   * Fixed issue where the Folders to synchronize from the Wizard wouldn't get properly saved [#178](https:\/\/github.com\/trilbymedia\/grav-plugin-git-sync\/issues\/178)\n"},"2.1.1":{"date":"07\/17\/2020","content":"1. [](#new)\n    * Added `No User` option to allow disabling the username requirement. This is useful for when you have a token and the user is not required. (#166, thanks GwynethLlewelyn)\n    * Added `passwd` command for programmatically change user\/password (use: `bin\/plugin git-sync passwd`) (#146)\n    * Fixed regression wrongly returning the installed Git version and causing all sort of problems, including unrelated histories not kicking off (#61, #168, #171, #173)\n    * Fixed potential issue where the new feature `no_user` my throw an error\n    * Fixed issue with autoload\n1. [](#bugfix)\n    * Fixed classes not being loaded in `cli` commands due to Grav changes (#167)\n    * Updated dependencies \/ recompiled JS for production\n1. [](#improved)\n    * Bumped modules versions\n"},"2.1.0":{"date":"03\/13\/2020","content":"1. [](#new)\n    * Requires Grav v1.6.0\n    * Pass phpstan level 2 tests\n1. [](#improved)\n    * Code cleanup\n    * Added support for Gitea \/ Gogs webhook secret (#149, thanks @Aisbergg)\n"},"2.0.5":{"date":"05\/06\/2019","content":"1. [](#bugfix)\n    * Fixed validation error with commalist in Folders to Sync field (#141)\n"},"2.0.4":{"date":"04\/22\/2019","content":"1. [](#improved)\n    * urlencode username to allow for special characters (#139)\n"},"2.0.3":{"date":"03\/07\/2019","content":"1. [](#bugifx)\n    * Properly fallback to config message if not there yet (#134)\n"},"2.0.2":{"date":"02\/21\/2019","content":"1. [](#improved)\n    * Fixed InitCommand spelling (#132, thanks @alex-mohemian)\n1. [](#bugfix)\n    * Fixed PHP 5.6 incompatibility introduced by latest release.\n"}}},"loginldap":{"name":"LoginLdap","version":"0.3.3","description":"Enables user authentication via LDAP.","description_html":"<p>Enables user authentication via LDAP.<\/p>","description_plain":"Enables user authentication via LDAP.","icon":"sign-in","author":{"name":"Mark Leary","url":"https:\/\/github.com\/markleary","email":"leary.mark@gmail.com"},"dependencies":[{"name":"grav","version":">1.1.8"},{"name":"form","version":"~2.0"}],"homepage":"https:\/\/github.com\/markleary\/grav-plugin-loginldap","keywords":"login, authentication, security, ldap","bugs":"https:\/\/github.com\/markleary\/grav-plugin-loginldap\/issues","license":"MIT","tag_name":"0.3.3","date":"2017-03-09T18:48:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/loginldap\/0.3.3","repository":"https:\/\/github.com\/markleary\/grav-plugin-loginldap","slug":"loginldap","install_path":"user\/plugins\/loginldap","content_sha256":"dbe0069e9c74191e30bc962b7de3286569478228e9371845ca963d7b32a30a92","changelog":{"0.3.3":{"date":"3\/9\/2017","content":"1. [](#bugfix)\n  * Composer update.\n2. [](#bugfix)\n  * Language update.\n"},"0.3.2":{"date":"3\/6\/2017","content":"1. [](#new)\n  * Czech translation.\n"},"0.3.1":{"date":"1\/4\/2017","content":"1. [](#new)\n   * FR language support.\n"},"0.3.0":{"date":"12\/16\/2016","content":"1. [](#bugfix)\n   * Refactored some code to fix rememberme functionality.\n"},"0.2.0":{"date":"12\/14\/2016","content":"1. [](#new)\n   * Added functionality to define new roles, mapped to LDAP groups.\n"},"0.1.0":{"date":"12\/13\/2016","content":"1. [](#new)\n   * Initial release,changelog started..."}}},"gantry5":{"name":"Gantry 5 Framework","version":"5.6.2","description":"Gantry 5 Theme framework","description_html":"<p>Gantry 5 Theme framework<\/p>","description_plain":"Gantry 5 Theme framework","icon":"gantry","author":{"name":"Tiger12","url":"http:\/\/tiger12.com","email":"gantry@tiger12.com"},"dependencies":[{"name":"grav","version":">=1.7.25"},{"name":"admin","version":">=1.10.25"}],"homepage":"http:\/\/gantry.org","keywords":"gantry, gantry5, theme, framework","bugs":"https:\/\/github.com\/gantry\/gantry5\/issues","license":"MIT","tag_name":"5.6.2","date":"2026-06-04T11:56:38Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/gantry5\/5.6.2","repository":"https:\/\/github.com\/gantry\/gantry5","slug":"gantry5","install_path":"user\/plugins\/gantry5","content_sha256":"cb0b86213678c166b401423659b2a33e7bf84327241232612e6a1896ff80f9c8","changelog":{"5.6.2":{"date":"06\/03\/2026","content":"1. [WordPress](#WordPress)\n    1. [](#improved)\n      - Added compatibility with Wordpress 7\n      - Highest supported Wordpress major for this release is Wordpress 7.x\n      - Minimum PHP version for Wordpress packages is 8.1.0 and maximum supported is up to PHP 8.4.x\n2. [joomla](#joomla)\n    1. [](#improved)\n     - Added compatibility with Joomla 6\n     - Highest supported Joomla major for this release is Joomla 6.x\n     - Minimum PHP version for Joomla packages is 8.1.0 and maximum supported is up to PHP 8.4.x\n"},"5.6.1":{"date":"04\/08\/2026","content":"1. [joomla](#joomla)\n    1. [](#bugfix)\n      - Fixed table line rendering issue in Helium template (Joomla 5) (#3373)\n      - Fixed header size inconsistency in Hydrogen template (Joomla 5) (#3374)\n      - Fixed checksum warning preventing successful package updates (#3371)\n      - Fixed issue where Hydrogen and Helium template updates were incorrectly shown in Joomla 5 update list (#3367)\n      - Fixed \u201cPlease install Gantry 5 Framework\u201d error appearing in Joomla 5 installations (#3375)"},"5.6.0":{"date":"02\/24\/2026","content":"1. [Common](#common)\n    1. [](#improved)\n        - Added native compatibility with Joomla 5\n        - Dropped support for Joomla 4 (Joomla 3.9+ and 4.x no longer compatible)\n        - Limited compatibility to PHP 8.x only (minimum PHP 8.1.0, maximum supported up to PHP 8.3.x PHP 8.4+ not supported in this release)\n        - Added release compatibility matrix for all platforms:\n        - PHP support range: 8.1.0 to 8.3.x\n        - Joomla support range: 5.0+ (Joomla 4.x dropped)\n        - WordPress support range: 5.2+ (tested up to 6.9.1)\n        - Grav support range: 1.7.25+ (tested up to 1.7.49.5 requires Grav Admin 1.10.25+, tested up to 1.10.48)\n2. [Joomla](#joomla)\n    1. [](#improved)\n        - Minimum Joomla version is now 5.0.0\n        - Highest supported Joomla major for this release is Joomla 5.x\n        - Minimum PHP version for Joomla packages is 8.1.0 and maximum supported is up to PHP 8.3.x\n3. [WordPress](#wordpress)\n    1. [](#improved)\n        - WordPress compatibility tested through 6.9.1\n        - Minimum PHP version for WordPress package\/runtime is 8.1.0 and maximum supported is up to PHP 8.3.x\n    2. [](#bugfix)\n        - Fixed deprecation warning related to $types events\n4. [Grav](#grav)\n    1. [](#improved)\n        - Minimum Grav version is now 1.7.25 (tested up to 1.7.49.5)\n        - Minimum Grav Admin plugin version is 1.10.25 (tested up to 1.10.48)\n        - Minimum PHP version for Grav package\/runtime is 8.1.0 and maximum supported is up to PHP 8.3.x\n"},"5.5.25":{"date":"09\/15\/2025","content":"1. [Common](#common)\n    1. [](#improved)\n        - Added support for Font awesome 7\n        - Implemented preg_split function support in twig file (#2590, thanks @thexmanxyz)\n2. [Joomla](#joomla)\n    1. [](#improved)\n        - Implemented joomla article filter tag name and tag id (#2561,thanks @Kubik-Rubik)\n3. [Wordpress](#wordpress)\n    1. [](#bugfix)\n        - Fixed issue with WordPress theme update notification (#3342 and #3343)\n"},"5.5.24":{"date":"09\/15\/2025","content":"1. [Common](#common)\n    1. [](#improved)\n        - Added support for Font awesome 7\n        - Implemented preg_split function support in twig file (#2590, thanks @thexmanxyz)\n2. [Joomla](#joomla)\n    1. [](#improved)\n        - Implemented joomla article filter tag name and tag id (#2561,thanks @Kubik-Rubik)\n3. [Wordpress](#wordpress)\n    1. [](#bugfix)\n        - Fixed issue with WordPress update notification (#3342 and #3343)\n"},"5.5.23":{"date":"08\/11\/2025","content":"1. [Common](#common)\n    1. [](#improved)\n        - Updated author name.\n2. [Joomla](#joomla)\n    1. [](#bugfix)\n        - Fixed dark mode dialog background \u2014 (#3336)\n3. [Wordpress](#wordpress)\n    1. [](#improved)\n        - Updated readme.txt file for Requires PHP 8.1.0\n    2. [](#new)\n        - Added a feature to display notifications for new releases in themes.\n4. [Grav](#grav)\n    1. [](#improved)\n        - Updated changelog to fix the Grav parser issue (removed: Set for release \u2013 This list has been marked from prior dev changelog (March 2025) beside version 5.5.20) \u2014 (#3334)\n"},"5.5.22":{"date":"07\/28\/2025","content":"1. [Common](#common)\n    1. [](#new)\n        - Added PHP 8.3 compatibility\n        - Dark mode for Joomla\n        - Gulp tasks fix\n        - Updated minimum PHP version to 8.1.0\n        - Added native Joomla 5 compatibility without requiring the Compatibility Plugin\n        - Fixed Joomla 5 compatibility issues with JForm classes to support both J4 and J5\n        - Fixed JObject not found errors in Joomla 5 by using namespaced CMSObject (#3308)\n        - Fixed ContentHelperRoute class references to use namespaced RouteHelper in Joomla 5\n        - Fixed JTableMenu and JTableMenuType references for Joomla 5 compatibility\n        - Fixed JDatabaseQuery references to use namespaced DatabaseQuery in Joomla 5\n    2. [](#improved)\n        - Replaced deprecated utf8_encode\/utf8_decode functions with mb_convert_encoding\n        - Updated dependency versions for PHP 8.3 compatibility\n        - Added explicit extension requirements (mbstring, json, dom, xml, simplexml)\n        - Modified composer scripts to handle missing PHP extensions\n        - Removed abandoned leafo\/scssphp package in favor of scssphp\/scssphp\n        - Removed support for PHP versions below 8.1\n        - Added documentation about CSP requirements - 'unsafe-eval' is needed for admin functionality (#3255)\n    3. [](#bugfix)\n        - Fixed \"INVALID FIELDS\" alert and block size formatting issues with large collections like Infolist particle (#3243)\n        - Fixed incorrect formatting in changelog file (#3305)\n        - Fixed missing translation on WordPress for \"Content\" tab (#3302)\n        - Fixed unwanted whitespace before DOCTYPE in Grav platform HTML output (#3287)\n        - Fixed SVG images display issues on login and 404 pages in Joomla 5 (#3277)\n        - Fixed potential infinite recursion with large menus in multi-column layouts (#3266)\n        - Fixed PHP compile error in NullLogger class for method signature compatibility (#3264)\n        - Fixed PSR compatibility issues with Joomla 5.1.1 by updating dependencies (#3259)\n        - Fixed pageblock head_top and head_meta not working in WordPress particles (#3250)\n        - Fixed the source URL of some CSS and Javascript assets is prefixed with an extra slash (Gantry 5.5.20) #3309\n        - Fixed Grav's Extras Menu Prod\/Dev Toggle creating deprecated custom environment path instead of using user\/config\/plugins\/ (#3169)\n        - Fixed Grav's siteUrl() returning just '\/' instead of the full site URL (#2605)\n2. [Joomla](#joomla)\n    1. [](#improved)\n        - Removed support for Joomla 3.x\n        - Added support for Joomla 4.x and 5.x (4.0.0 or higher)\n        - Updated code to use modern Joomla namespace references instead of legacy J-prefixed classes\n        - Implemented proper support for WebAssetManager in Joomla 5\n        - Removed dependency on Joomla Compatibility Plugin\n        - Fixed Joomla 5 backend error \"Unable to load application: site\" by adding proper error handling for site application access\n        - Fixed the installation error in Joomla 5 with the compatibility plugin disabled (#3328)\n        - Fixed incorrect placeholder height styling in Joomla 4.3.0+ when dragging and sorting particles\/grids(#3144)\n        - Fixed incorrect display of SVG icons on the frontend login page and 404 error page in Joomla 5 (#3277)\n        - Fixed issue where Joomla modules used as Gantry 5 particles did not render correctly, especially in Joomla 5 environment(#3326)\n        - Fixed Gantry template edit page opening in dark mode even if dark mode is turned off (#3329 )\n    2. [](#todo)\n        - ~~Update Bootstrap from 5.0.2 to 5.3.3 to match Joomla 5.2+ (#3275)~~ (This will be released in the next version - Note this prior comment: https:\/\/github.com\/gantry\/gantry5\/issues\/3275)\n3. [Wordpress](#wordpress)\n    1. [](#improved)\n        - Updated PHP version check to require 8.1.0 minimum\n4. [Grav](#grav)\n    1. [](#improved)\n        - Added explicit PHP 8.1.0 minimum requirement\n        - Updated Grav dependencies to newer versions\n"},"5.5.21":{"date":"07\/23\/2025","content":"1. [Common](#common)\n    1. [](#new)\n        - Added PHP 8.3 compatibility\n        - Dark mode for Joomla\n        - Gulp tasks fix\n        - Updated minimum PHP version to 8.1.0\n        - Added native Joomla 5 compatibility without requiring the Compatibility Plugin\n        - Fixed Joomla 5 compatibility issues with JForm classes to support both J4 and J5\n        - Fixed JObject not found errors in Joomla 5 by using namespaced CMSObject (#3308)\n        - Fixed ContentHelperRoute class references to use namespaced RouteHelper in Joomla 5\n        - Fixed JTableMenu and JTableMenuType references for Joomla 5 compatibility\n        - Fixed JDatabaseQuery references to use namespaced DatabaseQuery in Joomla 5\n    2. [](#improved)\n        - Replaced deprecated utf8_encode\/utf8_decode functions with mb_convert_encoding\n        - Updated dependency versions for PHP 8.3 compatibility\n        - Added explicit extension requirements (mbstring, json, dom, xml, simplexml)\n        - Modified composer scripts to handle missing PHP extensions\n        - Removed abandoned leafo\/scssphp package in favor of scssphp\/scssphp\n        - Removed support for PHP versions below 8.1\n        - Added documentation about CSP requirements - 'unsafe-eval' is needed for admin functionality (#3255)\n    3. [](#bugfix)\n        - Fixed \"INVALID FIELDS\" alert and block size formatting issues with large collections like Infolist particle (#3243)\n        - Fixed incorrect formatting in changelog file (#3305)\n        - Fixed missing translation on WordPress for \"Content\" tab (#3302)\n        - Fixed unwanted whitespace before DOCTYPE in Grav platform HTML output (#3287)\n        - Fixed SVG images display issues on login and 404 pages in Joomla 5 (#3277)\n        - Fixed potential infinite recursion with large menus in multi-column layouts (#3266)\n        - Fixed PHP compile error in NullLogger class for method signature compatibility (#3264)\n        - Fixed PSR compatibility issues with Joomla 5.1.1 by updating dependencies (#3259)\n        - Fixed pageblock head_top and head_meta not working in WordPress particles (#3250)\n        - Fixed the source URL of some CSS and Javascript assets is prefixed with an extra slash (Gantry 5.5.20) #3309\n        - Fixed Grav's Extras Menu Prod\/Dev Toggle creating deprecated custom environment path instead of using user\/config\/plugins\/ (#3169)\n        - Fixed Grav's siteUrl() returning just '\/' instead of the full site URL (#2605)\n2. [Joomla](#joomla)\n    1. [](#improved)\n        - Removed support for Joomla 3.x\n        - Added support for Joomla 4.x and 5.x (4.0.0 or higher)\n        - Updated code to use modern Joomla namespace references instead of legacy J-prefixed classes\n        - Implemented proper support for WebAssetManager in Joomla 5\n        - Removed dependency on Joomla Compatibility Plugin\n        - Fixed Joomla 5 backend error \"Unable to load application: site\" by adding proper error handling for site application access\n        - Fixed the installation error in Joomla 5 with the compatibility plugin disabled (#3328)\n    2. [](#todo)\n        - ~~Update Bootstrap from 5.0.2 to 5.3.3 to match Joomla 5.2+ (#3275)~~ (This will be released in the next version - Note this prior comment: https:\/\/github.com\/gantry\/gantry5\/issues\/3275)\n3. [Wordpress](#wordpress)\n    1. [](#improved)\n        - Updated PHP version check to require 8.1.0 minimum\n4. [Grav](#grav)\n    1. [](#improved)\n        - Added explicit PHP 8.1.0 minimum requirement\n        - Updated Grav dependencies to newer versions\n"},"5.5.20":{"date":"07\/23\/2025","content":"1. [Common](#common)\n    1. [](#new)\n        - Added PHP 8.3 compatibility\n        - Dark mode for Joomla\n        - Gulp tasks fix\n        - Updated minimum PHP version to 8.1.0\n        - Added native Joomla 5 compatibility without requiring the Compatibility Plugin\n        - Fixed Joomla 5 compatibility issues with JForm classes to support both J4 and J5\n        - Fixed JObject not found errors in Joomla 5 by using namespaced CMSObject (#3308)\n        - Fixed ContentHelperRoute class references to use namespaced RouteHelper in Joomla 5\n        - Fixed JTableMenu and JTableMenuType references for Joomla 5 compatibility\n        - Fixed JDatabaseQuery references to use namespaced DatabaseQuery in Joomla 5\n    2. [](#improved)\n        - Replaced deprecated utf8_encode\/utf8_decode functions with mb_convert_encoding\n        - Updated dependency versions for PHP 8.3 compatibility\n        - Added explicit extension requirements (mbstring, json, dom, xml, simplexml)\n        - Modified composer scripts to handle missing PHP extensions\n        - Removed abandoned leafo\/scssphp package in favor of scssphp\/scssphp\n        - Removed support for PHP versions below 8.1\n        - Added documentation about CSP requirements - 'unsafe-eval' is needed for admin functionality (#3255)\n    3. [](#bugfix)\n        - Fixed \"INVALID FIELDS\" alert and block size formatting issues with large collections like Infolist particle (#3243)\n        - Fixed incorrect formatting in changelog file (#3305)\n        - Fixed missing translation on WordPress for \"Content\" tab (#3302)\n        - Fixed unwanted whitespace before DOCTYPE in Grav platform HTML output (#3287)\n        - Fixed SVG images display issues on login and 404 pages in Joomla 5 (#3277)\n        - Fixed potential infinite recursion with large menus in multi-column layouts (#3266)\n        - Fixed PHP compile error in NullLogger class for method signature compatibility (#3264)\n        - Fixed PSR compatibility issues with Joomla 5.1.1 by updating dependencies (#3259)\n        - Fixed pageblock head_top and head_meta not working in WordPress particles (#3250)\n        - Fixed the source URL of some CSS and Javascript assets is prefixed with an extra slash (Gantry 5.5.20) #3309\n        - Fixed Grav's Extras Menu Prod\/Dev Toggle creating deprecated custom environment path instead of using user\/config\/plugins\/ (#3169)\n        - Fixed Grav's siteUrl() returning just '\/' instead of the full site URL (#2605)\n2. [Joomla](#joomla)\n    1. [](#improved)\n        - Removed support for Joomla 3.x\n        - Added support for Joomla 4.x and 5.x (4.0.0 or higher)\n        - Updated code to use modern Joomla namespace references instead of legacy J-prefixed classes\n        - Implemented proper support for WebAssetManager in Joomla 5\n        - Removed dependency on Joomla Compatibility Plugin\n        - Fixed Joomla 5 backend error \"Unable to load application: site\" by adding proper error handling for site application access\n    2. [](#todo)\n        - ~~Update Bootstrap from 5.0.2 to 5.3.3 to match Joomla 5.2+ (#3275)~~ (This will be released in the next version - Note this prior comment: https:\/\/github.com\/gantry\/gantry5\/issues\/3275)\n3. [Wordpress](#wordpress)\n    1. [](#improved)\n        - Updated PHP version check to require 8.1.0 minimum\n4. [Grav](#grav)\n    1. [](#improved)\n        - Added explicit PHP 8.1.0 minimum requirement\n        - Updated Grav dependencies to newer versions\n"},"5.5.19":{"date":"05\/23\/2024","content":"1. [Common](#common)\n    1. [](#bugfix)\n        - Fix Joomla 5.1 \"Invalid extension update\" bug\n        - FontAwesome 6 Fix (#3253)\n"},"5.5.18":{"date":"05\/22\/2024","content":"1. [Common](#common)\n    1. [](#bugfix)\n        - Regression: Mobile Menu fix (#3198)\n        - Joomla 5 FontAwesome 6 bugfix (#3196)\n        - Error on previous\/next button fix (#3218)\n        - Minor english translation bugfixes\n        - Contentarray issue with Pagination (#3239)\n        - Minor Joomla 5 compatibility fixes\n"},"5.5.17":{"date":"10\/30\/2023","content":"1. [Common](#common)\n    1. [](#bugfix)\n        - Added Webp file extension to lightcase (#3159)\n        - Spanish translation of Gantry 5 administration common platforms (#3120)\n        - PHP 8.x compatibility fixes\n2. [Joomla](#joomla)\n    1. [](#bugfix)\n        - Update target platforms to match Joomla 4.3 and up (#3170)\n        - Helium login forms css styling bugfixes (#3185)\n        - Helium register forms css styling bugfixes (#3185)\n        - Hydrogen login and register forms css styling bugfixes (#3185)\n        - Fix for Joomla 5.x debug css (#3190)\n        - Basic support for Joomla 5\n3. [Wordpress](#wordpress)\n    1. [](#improved)\n        - Timber updated to 1.23\n"},"5.5.16":{"date":"03\/31\/2023","content":"1. [Common](#common)\n    1. [](#new)\n        - Updated SCSS compiler to v1.11\n        - Updated: RocketTheme Toolbox to v1.6.4\n        - Updated: Flip Whoops to 2.15.1\n        - Updated: Symfony Yaml to 4.0.0\n        - Updated: Twig to 2.5.15\n2. [Joomla](#joomla)\n    1. [](#bugfix)\n        - Fixed fatal error in Menu particle on PHP 8 when using Joomla 4 (#3048)\n        - Fixed Menu Manager throw\u00edng deprecated error in PHP 8.1 (#3073)\n        - Fixed numerous php 8.x deprecations\n3. [WordPress](#wordpress)\n    1. [](#new)\n        - Updated Timber to v1.20\n    2. [](#bugfix)\n        - Fixed Menu Manager throwing deprecated error in PHP 8.1 (#3073)\n"},"5.5.15":{"date":"09\/05\/2022","content":"1. [Common](#common)\n    1. [](#improved)\n        - Improved Twig 2\/3 compatibility in the template files (#3052)\n    2. [](#bugfix)\n        - Fixed PHP 8.1 error in Twig (#3052)\n3. [Joomla](#joomla)\n    1. [](#new)\n        - Added Joomla 4.2 support\n3. [WordPress](#wordpress)\n    1. [](#new)\n        - Added WordPress 6 support\n"},"5.5.14":{"date":"06\/15\/2022","content":"1. [Common](#common)\n   1. [](#new)\n       - Implemented possibility to replace `gantry\/theme.yaml` with your own in `custom\/` folder (#782, #904, #2578, #3032)\n   2. [](#bugfix)\n       - Fixed `Config::flatten()` when the value is not defined or isn't an array\n2. [Joomla](#joomla)\n    1. [](#bugfix)\n        - Helium \/ Hydrogen: Fixed deprecated message in PHP 8.1 when `moduleclass_sfx` is not defined in a module\n"},"5.5.13":{"date":"04\/29\/2022","content":"1. [Common](#common)\n   1. [](#bugfix)\n        - Fixed fatal error if menu item child cannot be accessed from the menu (#3025)\n        - Fixed missing translation for Prev\/Next in Content Array particle (#3023)\n2. [Joomla](#joomla)\n    1. [](#bugfix)\n        - Fixed broken Fontawesome version override (#2969)\n3. [WordPress](#wordpress)\n    1. [](#improved)\n        - Improved Helium and Hydrogen themes\n        - Added `textdomain` variable to theme context\n    2. [](#bugfix)\n        - Fixed incorrect language code (#3029)\n        - Fixed loading default language file for nucleus\n        - Fixed CSS not to include schema and domain name\n"},"5.5.12":{"date":"03\/29\/2022","content":"1. [Common](#common)\n    1. [](#bugfix)\n        - Fixed `try\/catch` twig tag if there's no catch\n        - Minified CSS and JS files, fixes missing source map files (#3005)\n2. [Joomla](#joomla)\n    1. [](#improved)\n        - Added SHA512 checksums to Joomla packages (#3004)\n    2. [](#bugfix)\n         - Fixed Bootstrap5 RTL CSS is not being loaded in Joomla 4 (#3007)\n         - Fixed not able to close system messages in Joomla 4 (#2983)\n           - ALL THEMES should update `html\/layouts\/joomla\/system\/message.php` file\n3. [WordPress](#wordpress)\n    1. [](#bugfix)\n        - Menu error: `Undefined index: parent_id` (#3012)\n"},"5.5.11":{"date":"02\/15\/2022","content":"1. [Common](#common)\n    1. [](#improved)\n        - Reworked backwards compatibility code\n2. [Joomla](#joomla)\n    1. [](#new)\n        - Added Joomla 4.1 support\n    2. [](#bugfix)\n        - Fixed platform check to be PHP >= 5.6.20 (#2998)\n        - Fixed parent menu item showing dropdown icon and empty dropdown if all children disabled (#2968, #2997)\n3. [WordPress](#wordpress)\n    1. [](#bugfix)\n        - Fixed platform check to be PHP >= 5.6.20 (#2998)\n"},"5.5.10":{"date":"02\/15\/2022","content":"1. [Common](#common)\n    1. [](#new)\n        - Broken release (build script issues)\n"},"5.5.9":{"date":"01\/26\/2022","content":"1. [Common](#common)\n    1. [](#bugfix)\n        - Fixed `Use of undefined constant PATHINFO_ALL`\n"}}},"gffi":{"name":"Gallery","version":"0.0.1","description":"test","description_html":"<p>test<\/p>","description_plain":"test","icon":"plug","author":{"name":"Sergey Stepanov","email":"sergey.stepanov@lenta.ru"},"homepage":"https:\/\/github.com\/Stepanov-Sergey\/GFFI","docs":"https:\/\/github.com\/Stepanov-Sergey\/GFFI\/blob\/master\/README.md","demo":"http:\/\/webmaster.page4biz.ru\/demo-gffi","keywords":"grav, plugin, gallery, images, folder","bugs":"https:\/\/github.com\/Stepanov-Sergey\/GFFI\/issues","license":"MIT","tag_name":"0.0.1","date":"2016-12-07T15:04:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/gffi\/0.0.1","repository":"https:\/\/github.com\/Stepanov-Sergey\/GFFI","slug":"gffi","install_path":"user\/plugins\/gffi","content_sha256":"6d4bba8afefc7462fbc8931da3377d907f3322b9101b86a345b68d56ec0653a4","changelog":false,"dependencies":[]},"scheduler":{"name":"Scheduler","version":"1.0.0","description":"Simple content scheduling","description_html":"<p>Simple content scheduling<\/p>","description_plain":"Simple content scheduling","icon":"calendar","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/perlkonig\/grav-plugin-scheduler","docs":"https:\/\/github.com\/perlkonig\/grav-plugin-scheduler\/blob\/master\/README.md","demo":"https:\/\/perlkonig.com\/demos\/scheduler","keywords":"grav, plugin, scheduling","bugs":"https:\/\/github.com\/perlkonig\/grav-plugin-scheduler\/issues","license":"MIT","tag_name":"v1.0.0","date":"2016-11-22T16:15:17Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/scheduler\/1.0.0","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-scheduler","slug":"scheduler","install_path":"user\/plugins\/scheduler","content_sha256":"09497d6c01aaec0ad5efb08a83718e816b07ac92588f4b628bc6e6adc674e56b","changelog":{"1.0.0":{"date":" 11\/22\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"backlinks":{"name":"Backlinks","version":"1.0.0","description":"Find pages that point to another page","description_html":"<p>Find pages that point to another page<\/p>","description_plain":"Find pages that point to another page","icon":"link","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/perlkonig\/grav-plugin-backlinks","docs":"https:\/\/github.com\/perlkonig\/grav-plugin-backlinks\/blob\/master\/README.md","demo":"https:\/\/perlkonig.com\/demos\/backlinks","keywords":"grav, plugin, backlinks, internal, links","bugs":"https:\/\/github.com\/perlkonig\/grav-plugin-backlinks\/issues","license":"MIT","tag_name":"v1.0.0","date":"2016-11-17T17:00:39Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/backlinks\/1.0.0","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-backlinks","slug":"backlinks","install_path":"user\/plugins\/backlinks","content_sha256":"c7a191bcc6e32d6cc434f9bd0f35bffa2cb974b6b89f2c23d40da5507ee195e8","changelog":{"1.0.0":{"date":" 11\/14\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"roman":{"name":"Roman","version":"1.0.0","description":"A simple roman numeral plugin for Grav CMS. Convert an integer into a roman numeral and vice versa.","description_html":"<p>A simple roman numeral plugin for Grav CMS. Convert an integer into a roman numeral and vice versa.<\/p>","description_plain":"A simple roman numeral plugin for Grav CMS. Convert an integer into a roman numeral and vice versa.","icon":"italic","author":{"name":"Dimitri Longo","url":"https:\/\/github.com\/dimitrilongo\/grav-plugin-roman","email":"dimitri.longo@gmail.com"},"homepage":"https:\/\/github.com\/dimitrilongo\/grav-plugin-roman","bugs":"https:\/\/github.com\/dimitrilongo\/grav-plugin-roman\/issues","license":"MIT","tag_name":"v1.0.0","date":"2016-11-07T08:32:32Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/roman\/1.0.0","repository":"https:\/\/github.com\/dimitrilongo\/grav-plugin-roman","slug":"roman","install_path":"user\/plugins\/roman","content_sha256":"8f4dbbd87333cf2ae20e6ac936bfebe3e05583c292f40cacec896c546a309425","changelog":{"1.0.0":{"date":"11\/07\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"wordcount":{"name":"Word Count","version":"1.0.0","description":"A simple word count plugin","description_html":"<p>A simple word count plugin<\/p>","description_plain":"A simple word count plugin","icon":"italic","author":{"name":"Dimitri Longo","url":"https:\/\/github.com\/dimitrilongo\/grav-plugin-wordcount","email":"dimitri.longo@gmail.com"},"homepage":"https:\/\/github.com\/dimitrilongo\/grav-plugin-wordcount","bugs":"https:\/\/github.com\/dimitrilongo\/grav-plugin-wordcount\/issues","license":"MIT","tag_name":"v1.0.0","date":"2016-11-07T10:10:12Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/wordcount\/1.0.0","repository":"https:\/\/github.com\/dimitrilongo\/grav-plugin-wordcount","slug":"wordcount","install_path":"user\/plugins\/wordcount","content_sha256":"88f643f03aa64a6dcaeb35ca0842ab9c3cc7e8d588eb62cb9770a8d860eee668","changelog":{"1.0.0":{"date":"11\/07\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"google-charts":{"name":"Google Charts","version":"1.2.0","description":"Embeds Google charts into pages","description_html":"<p>Embeds Google charts into pages<\/p>","description_plain":"Embeds Google charts into pages","icon":"bar-chart","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/perlkonig\/grav-plugin-google-charts","docs":"https:\/\/github.com\/perlkonig\/grav-plugin-google-charts\/blob\/master\/README.md","demo":"http:\/\/perlkonig.com\/demos\/google-charts","keywords":"grav, plugin, google, charts, graphs","bugs":"https:\/\/github.com\/perlkonig\/grav-plugin-google-charts\/issues","license":"MIT","tag_name":"v1.2.0","date":"2020-08-24T18:30:21Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/google-charts\/1.2.0","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-google-charts","slug":"google-charts","install_path":"user\/plugins\/google-charts","content_sha256":"0509c35963beef32a620d07754d0c5172fc5ab38defa9808e48798bd025377da","changelog":{"1.2.0":{"date":"08\/24\/2020","content":"1. [](#new)\n    * IDs may now include underscores (thank you @Skymirrh).\n    * Now works properly with modular pages (thank you @Skymirrh).\n"},"1.1.1":{"date":"04\/19\/2019","content":"1. [](#new)\n    * Added support for Timelines. Thanks to @leycec for prompting me to dig a little.\n"},"1.1.0":{"date":"07\/06\/2018","content":"1. [](#bugfix)\n    * Fixed caching problem (thanks to @pamtbaau on Discourse)\n"},"1.0.1":{"date":" 01\/31\/2017","content":"1. [](#bugfix)\n    * Fixed bug with shortcode not rendering with Admin plugin\n"},"1.0.0":{"date":" 10\/30\/2016","content":"1. [](#new)\n    * ChangeLog started..."}}},"mobile-detect":{"name":"Mobile Detect","version":"1.4.4","description":"The Grav Mobile Detect Plugin for Grav adds the ability to detect mobile devices (including tablets). It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.","description_html":"<p>The Grav Mobile Detect Plugin for Grav adds the ability to detect mobile devices (including tablets). It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.<\/p>","description_plain":"The Grav Mobile Detect Plugin for Grav adds the ability to detect mobile devices (including tablets). It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.","icon":"mobile","author":{"name":"Dimitri Longo","url":"https:\/\/github.com\/dimitrilongo\/grav-plugin-mobile-detect","email":"dimitri.longo@gmail.com"},"homepage":"https:\/\/github.com\/dimitrilongo\/grav-plugin-mobile-detect","docs":"https:\/\/github.com\/dimitrilongo\/grav-plugin-mobile-detect\/blob\/master\/README.md","bugs":"https:\/\/github.com\/dimitrilongo\/grav-plugin-mobile-detect\/issues","license":"MIT","tag_name":"v1.4.4","date":"2020-03-24T15:43:36Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mobile-detect\/1.4.4","repository":"https:\/\/github.com\/dimitrilongo\/grav-plugin-mobile-detect","slug":"mobile-detect","install_path":"user\/plugins\/mobile-detect","content_sha256":"54e34abe7abbc2a2d7859242add5a829e04c4c30ba9af68408978252917a063b","changelog":{"1.4.4":{"date":" 03\/24\/2020","content":"1. [](#improved)\n    - Change changelog date format (missing date)\n"},"1.4.3":{"date":" 03\/21\/2020","content":"1. [](#improved)\n    - Update Mobile Detect library with `composer install`\n"},"1.4.2":{"date":" 03\/19\/2020","content":"1. [](#bugfix)\n    - Remove Mobile Detect submodule [#9](https:\/\/github.com\/dimitrilongo\/grav-plugin-mobile-detect\/issues\/9)\n"},"1.4.1":{"date":" 03\/17\/2020","content":"1. [](#improved)\n    - Change changelog date format\n"},"1.4":{"date":" 03\/17\/2020","content":"1. [](#improved)\n    - Add composer.json to include Mobile Detect library\n"},"1.3.3":{"date":" 05\/11\/2019","content":"1. [](#improved)\n    - Update Mobile_Detect.php class to version 2.8.33\n"},"1.3.2":{"date":" 01\/05\/2018","content":"1. [](#improved)\n    - Update Mobile_Detect.php class to version 2.8.30\n"},"1.3.1":{"date":" 09\/13\/2017","content":"1. [](#improved)\n    - Update Mobile_Detect.php class to version 2.8.26\n"},"1.3.0":{"date":" 09\/13\/2017","content":"1. [](#improved)\n    - Update Mobile_Detect.php class to version 2.8.26\n"},"1.2.0":{"date":" 02\/14\/2017","content":"1. [](#improved)\n    - Update Mobile_Detect.php class to version 2.8.24\n"},"1.1.0":{"date":" 11\/07\/2016","content":"1. [](#new)\n    - Get the version of the given property in the User-Agent\n      - example :`{{ version('Android') }}`\n"},"1.0.0":{"date":"11\/04\/2016","content":"1. [](#new)\n    - ChangeLog started..."}},"dependencies":[]},"view-source":{"name":"View Source","version":"1.0.1","description":"Allows you to display the raw header and Markdown for a given page","description_html":"<p>Allows you to display the raw header and Markdown for a given page<\/p>","description_plain":"Allows you to display the raw header and Markdown for a given page","icon":"eye","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/perlkonig\/grav-plugin-view-source","docs":"https:\/\/github.com\/perlkonig\/grav-plugin-view-source\/blob\/master\/README.md","demo":"http:\/\/perlkonig.com\/demos","keywords":"grav, plugin, markdown, view, source","bugs":"https:\/\/github.com\/perlkonig\/grav-plugin-view-source\/issues","license":"MIT","tag_name":"v1.0.1","date":"2016-11-07T23:51:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/view-source\/1.0.1","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-view-source","slug":"view-source","install_path":"user\/plugins\/view-source","content_sha256":"b2ef82506ae576f1fdc28924e1fd6e5ffe48752f696faee0842111daf165dd73","changelog":{"1.0.1":{"date":" 11\/07\/2016","content":"1. [](#bugfix)\n    * Provided a sensible fallback if there is no \"interpolated\" source\n"},"1.0.0":{"date":" 10\/30\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"chessboard":{"name":"Chessboard","version":"0.1.0","description":"Embed a chessboard on your site","description_html":"<p>Embed a chessboard on your site<\/p>","description_plain":"Embed a chessboard on your site","icon":"plus-square-o","author":{"name":"Dennis Ranke","email":"dennis.ranke@gmail.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/exoticorn\/grav-plugin-chessboard","docs":"https:\/\/github.com\/exoticorn\/grav-plugin-chessboard\/blob\/develop\/README.md","keywords":"grav, plugin, chess","bugs":"https:\/\/github.com\/exoticorn\/grav-plugin-chessboard\/issues","license":"MIT","tag_name":"v0.1.0","date":"2016-10-30T11:48:29Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/chessboard\/0.1.0","repository":"https:\/\/github.com\/exoticorn\/grav-plugin-chessboard","slug":"chessboard","install_path":"user\/plugins\/chessboard","content_sha256":"9e041d122205c3945d2d3b3923ae01fb3a5d4b0091239f423e164eb595b5ab65","changelog":{"0.1.0":{"date":" 10\/29\/2016","content":"1. [](#new)\n    * Initial release"}}},"classifier":{"name":"Classifier","version":"1.0.3","description":"Add class declarations to rendered HTML tags","description_html":"<p>Add class declarations to rendered HTML tags<\/p>","description_plain":"Add class declarations to rendered HTML tags","icon":"css3","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-classifier","docs":"https:\/\/github.com\/Perlkonig\/grav-plugin-classifier\/blob\/master\/README.md","keywords":"grav, plugin, HTML, class, style","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-classifier\/issues","license":"MIT","tag_name":"v1.0.3","date":"2016-12-22T00:57:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/classifier\/1.0.3","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-classifier","slug":"classifier","install_path":"user\/plugins\/classifier","content_sha256":"d1fdad47b3438a937cd8b344d64ed8bdf0f2a26877fdb2b5183cd39164350abe","changelog":{"1.0.3":{"date":" 12\/21\/2016","content":"1. [](#bugfix)\n    * Tags in the global config are now managed properly.\n"},"1.0.2":{"date":" 11\/21\/2016","content":"1. [](#bugfix)\n    * Fixed an issue that occurred with tags containing forward slashes.\n    * Self-closing tags are also now replaced properly, too.\n"},"1.0.1":{"date":" 11\/06\/2016","content":"1. [](#bugfix)\n    * Fixed a bug where the wildcard wasn't being interpreted correctly.\n"},"1.0.0":{"date":" 10\/20\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"facebook":{"name":"Facebook","version":"1.7.1","description":"**Facebook** is a plugin that embeds Facebook page content, album or events into your Grav website.","description_html":"<p><strong>Facebook<\/strong> is a plugin that embeds Facebook page content, album or events into your Grav website.<\/p>","description_plain":"Facebook is a plugin that embeds Facebook page content, album or events into your Grav website.","icon":"facebook","author":{"name":"Mika H\u00e4nninen","email":"mika.hanninen@gmail.com"},"homepage":"https:\/\/github.com\/mikahanninen\/grav-plugin-facebook","docs":"https:\/\/github.com\/mikahanninen\/grav-plugin-facebook\/blob\/master\/README.md","keywords":"facebook","bugs":"https:\/\/github.com\/mikahanninen\/grav-plugin-facebook\/issues","license":"MIT","tag_name":"1.7.1","date":"2019-03-31T19:59:38Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/facebook\/1.7.1","repository":"https:\/\/github.com\/mikahanninen\/grav-plugin-facebook","slug":"facebook","install_path":"user\/plugins\/facebook","content_sha256":"a948a98ba8151d36ce84d0658d4aff83b6f930f1755ceb164e0e6c800e2bb856","changelog":{"1.7.1":{"date":"3\/31\/2019","content":"1. [](#improved)\n  * Use Facebook API v3.2 to get posts\n\n2. [](#improved)\n  * Get Access Token with Application ID and secret\n"},"1.7.0":{"date":"10\/29\/2017","content":"1. [](#improved)\n  * Add more checks into Events place.\n  https:\/\/github.com\/mikahanninen\/grav-plugin-facebook\/issues\/36\n\n2. [](#improved)\n  * Translated day and month names in the Events\n  https:\/\/github.com\/mikahanninen\/grav-plugin-facebook\/issues\/37\n"},"1.6.2":{"date":"09\/16\/2017","content":"1. [](#improved)\n  * Add |raw filter for HTML templates\n\n2. [](#bugfix)\n  * Fix jQuery usage with UniteGallery\n"},"1.6.0":{"date":"06\/08\/2017","content":"1. [](#improved)\n  * Pull request #24 \"Remove plugin specific theming of headings\"\n\n2. [](#improved)\n  * Pull request #27 \"Grab first sub-image if several images on page\"\n\n3. [](#improved)\n  * Pull request #28 \"Order by unique count id rather than by date\"\n"},"1.5.0":{"date":"04\/01\/2017","content":"1. [](#improved)\n  * Remove jQuery 1.11 from plugin assets\n"},"1.4.2":{"date":"03\/12\/2017","content":"1. [](#bugfix)\n  * Fix version information\n"},"1.4.1":{"date":"03\/12\/2017","content":"1. [](#improved)\n  * Refactor how Facebook Page cover image is placed into template\n"},"1.4.0":{"date":"12\/03\/2016","content":"1. [](#new)\n  * Add Facebook Album\n"},"1.3.2":{"date":"11\/20\/2016","content":"1. [](#improved)\n  * Refactor how Facebook Event cover image is placed into template\n"},"1.3.1":{"date":"11\/18\/2016","content":"1. [](#new)\n  * Add Facebook Events coverpage if enabled on configuration\n"},"1.3.0":{"date":"11\/18\/2016","content":"1. [](#new)\n  * Add links to Facebook events\n"},"1.2.2":{"date":"11\/12\/2016","content":"1. [](#bugfix)\n  * Fix errors with empty feeds and events\n"},"1.2.1":{"date":"11\/12\/2016","content":"1. [](#bugfix)\n  * Fix figcaption\n"},"1.2.0":{"date":"11\/12\/2016","content":"1. [](#new)\n  * Add Facebook events functionality\n\n2. [](#improved)\n  * Refactored configuration structure\n"},"1.1.1":{"date":"11\/11\/2016","content":"1. [](#bugfix)\n  * Fix issue with empty tag filter\n"},"1.1.0":{"date":"11\/11\/2016","content":"1. [](#new)\n  * Add ability to filter posts by tag or tags\n\n2. [](#improved)\n  * Remove inline styles from HTML output\n"},"1.0.2":{"date":"11\/08\/2016","content":"1. [](#bugfix)\n  * Update plugin version number in the blueprints\n\n2. [](#improved)\n    * Update README to reflect plugin HTML output example\n"},"1.0.1":{"date":"11\/04\/2016","content":"1. [](#improved)\n  * Changed plugin icon to Facebook icon\n\n2. [](#improved)\n  * Moved post images after post message\n"},"1.0.0":{"date":"10\/20\/2016","content":"1. [](#new)\n  * ChangeLog started..."}},"dependencies":[]},"resize-images":{"name":"Resize Images","version":"0.2.2","description":"Generate responsive versions of images as they are uploaded","description_html":"<p>Generate responsive versions of images as they are uploaded<\/p>","description_plain":"Generate responsive versions of images as they are uploaded","icon":"picture-o","author":{"name":"Fredrik Ekelund","email":"fredrik@fredrik.computer"},"homepage":"https:\/\/github.com\/fredrikekelund\/grav-plugin-resize-images","docs":"https:\/\/github.com\/fredrikekelund\/grav-plugin-resize-images\/blob\/develop\/README.md","keywords":"images, responsive, srcset","bugs":"https:\/\/github.com\/fredrikekelund\/grav-plugin-resize-images\/issues","license":"MIT","tag_name":"v0.2.2","date":"2017-03-03T13:45:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/resize-images\/0.2.2","repository":"https:\/\/github.com\/fredrikekelund\/grav-plugin-resize-images","slug":"resize-images","install_path":"user\/plugins\/resize-images","content_sha256":"43b4c143d9863aa9002544e317dba16b39c8c084b262ace96306281ba11cec86","changelog":{"0.2.2":{"date":" 03\/03\/2017","content":"1. [](#bugfix)\n    * Fixed issue that arose when `system.images.cache_all` was enabled with a more reliable method for determining image source paths.\n"},"0.2.1":{"date":" 03\/03\/2017","content":"1. [](#new)\n    * Added option to enable removing of original image after it has been resized.\n"},"0.2.0":{"date":" 03\/03\/2017","content":"1. [](#bugfix)\n    * Fixed adapter fallback logic and print a warning when no adapter is installed.\n"},"0.1.0":{"date":" 10\/14\/2016","content":"1. [](#new)\n    * Initial release"}},"dependencies":[]},"count-views":{"name":"Count Views","version":"3.0.0","description":"Naive page view counter","description_html":"<p>Naive page view counter<\/p>","description_plain":"Naive page view counter","icon":"eye","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/perlkonig\/grav-plugin-count-views","docs":"https:\/\/github.com\/perlkonig\/grav-plugin-count-views\/blob\/master\/README.md","keywords":"grav, plugin, hits, views, counter","bugs":"https:\/\/github.com\/perlkonig\/grav-plugin-count-views\/issues","license":"MIT","tag_name":"v3.0.0","date":"2018-07-13T13:25:51Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/count-views\/3.0.0","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-count-views","slug":"count-views","install_path":"user\/plugins\/count-views","content_sha256":"d9650792f6643994584531b0c30106e3d7fa7cc33d3d43a3ab41ff93917af951","changelog":{"3.0.0":{"date":"07\/13\/2018","content":"1. [](#new)\n    * Empty route is now coded as the 404 route (default `\/error\/404`), thanks to @Kage.\n    * Removing the deprecated interface. Use the `viewcounts` array.\n    * Added some concrete examples to the README and linked to the demo page.\n"},"2.0.0":{"date":" 11\/17\/2016","content":"1. [](#new)\n    * Now dumping the count data into the special Twig variable `viewcounts`.\n    * DEPRECATED: The data is still passed via `config.plugins.view-count.counts` as well, *but this is officially deprecated*. This functionality will be removed in a later major release.\n1. [](#improved)\n\t* BACKWARDS INCOMPATIBLE: Removed the `datadir` config parameter. Just provide any folder structure with the `datafile`.\n\t* `datafile` is now properly sanitized.\n\t* Moved the data dump to `onPagesInitialized` so that the data is also visible when twig is processed in the page. This means, though, that the data file gets loaded twice. Let me know if performance becomes a problem.\n"},"1.0.0":{"date":" 10\/18\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"recent-posts":{"name":"Recent Posts","version":"1.0.0","description":"Displays a list of the most recent blogs posts in a sidebar widget.","description_html":"<p>Displays a list of the most recent blogs posts in a sidebar widget.<\/p>","description_plain":"Displays a list of the most recent blogs posts in a sidebar widget.","icon":"clock-o","author":{"name":"Pius Ladenburger","url":"https:\/\/pius-ladenburger.de","email":"info@pius-ladenburger.de"},"homepage":"https:\/\/github.com\/GittiHab\/grav-recent-posts","keywords":"recent-posts, plugin, blog, month, year, date, navigation, sidebar","bugs":"https:\/\/github.com\/GittiHab\/grav-recent-posts\/issues","license":"MIT","tag_name":"1.0.0","date":"2016-10-15T20:14:48Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/recent-posts\/1.0.0","repository":"https:\/\/github.com\/GittiHab\/grav-recent-posts","slug":"recent-posts","install_path":"user\/plugins\/recent-posts","content_sha256":"d5f7719366cafc81621f80544ffdd8eb76dff944d6f19c549c0b32b8fdd6f4b3","changelog":{"1.0.0":{"date":"10\/14\/2016","content":"1. [](#new)\n    * Select a parent blog page, which children pages will be displayed\n2. [](#improved)\n    * Customized template for the recent posts widget\n    * For older changes, checkout the [Archives Plugin](https:\/\/github.com\/getgrav\/grav-plugin-archives) from which this plugin has been forked."}},"dependencies":[]},"twig-jasny-array":{"name":"Twig Jasny Array","version":"1.0.1","description":"Incorporates the Array module from [Jasny&#39;s Twig extensions](https:\/\/github.com\/jasny\/twig-extensions)","description_html":"<p>Incorporates the Array module from <a href=\"https:\/\/github.com\/jasny\/twig-extensions\">Jasny&#39;s Twig extensions<\/a><\/p>","description_plain":"Incorporates the Array module from Jasny&#39;s Twig extensions","icon":"filter","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-twig-jasny-array","docs":"https:\/\/github.com\/Perlkonig\/grav-plugin-twig-jasny-array\/blob\/master\/README.md","demo":"https:\/\/perlkonig.com\/demos\/twig-jasny-array","keywords":"grav, plugin, twig, extensions, array","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-twig-jasny-array\/issues","license":"MIT","tag_name":"v1.0.1","date":"2016-09-30T18:20:27Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/twig-jasny-array\/1.0.1","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-twig-jasny-array","slug":"twig-jasny-array","install_path":"user\/plugins\/twig-jasny-array","content_sha256":"87bc4a8d9292b8aa0fdf8ff8b4ec4963910e726a086d4770b1e02ac135a865a5","changelog":{"1.0.1":{"date":" 09\/30\/2016","content":"1. [](#new)\n    * Added a demo URL\n"},"1.0.0":{"date":" 09\/30\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"auto-date":{"name":"Auto Date","version":"1.0.3","description":"Automatically adds date to frontmatter when creating a new page via Grav Admin plugin","description_html":"<p>Automatically adds date to frontmatter when creating a new page via Grav Admin plugin<\/p>","description_plain":"Automatically adds date to frontmatter when creating a new page via Grav Admin plugin","icon":"clock-o","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"admin","version":">=1.2.3"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-auto-date","docs":"https:\/\/github.com\/getgrav\/grav-plugin-auto-date\/blob\/develop\/README.md","keywords":"plugin, auto-date, date, frontmatter","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-auto-date\/issues","license":"MIT","tag_name":"1.0.3","date":"2026-05-05T14:05:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/auto-date\/1.0.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-auto-date","slug":"auto-date","install_path":"user\/plugins\/auto-date","content_sha256":"15ae2d8670a083bdc2cbce8e5dfa912b085ada5265c5f17d9853aab27d15af70","changelog":{"1.0.3":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.0.2":{"date":" 05\/29\/2016","content":"1. [](#bugfix)\n    * Fixed links in blueprint\n"},"1.0.1":{"date":" 09\/30\/2016","content":"1. [](#improved)\n    * Fixed icon\n"},"1.0.0":{"date":" 09\/30\/2016","content":"1. [](#new)\n    * Initial Release"}}},"twig-extensions":{"name":"Twig Extensions","version":"1.3.2","description":"Incorporates a subset of the archived official [Twig Extensions](https:\/\/github.com\/twigphp\/Twig-extensions) and custom enhancements","description_html":"<p>Incorporates a subset of the archived official <a href=\"https:\/\/github.com\/twigphp\/Twig-extensions\">Twig Extensions<\/a> and custom enhancements<\/p>","description_plain":"Incorporates a subset of the archived official Twig Extensions and custom enhancements","icon":"filter","author":{"name":"Sebastian Laube","email":"hello@sebastianlaube.de"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/bitstarr\/grav-plugin-twig-extensions","docs":"https:\/\/github.com\/bitstarr\/grav-plugin-twig-extensions\/blob\/main\/README.md","keywords":"grav, plugin, twig, extensions","bugs":"https:\/\/github.com\/bitstarr\/grav-plugin-twig-extensions\/issues","license":"MIT","tag_name":"1.3.2","date":"2026-07-24T13:56:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/twig-extensions\/1.3.2","repository":"https:\/\/github.com\/bitstarr\/grav-plugin-twig-extensions","slug":"twig-extensions","install_path":"user\/plugins\/twig-extensions","content_sha256":"fb5007103022816d9b5826167daab35d424294226215634e4be7637e2a0a3ab3","changelog":{"1.3.2":{"date":" 2026-07-24","content":"1. [](#improved)\n   * Clarify Twig version scope and Intl support (#5). Thanks to @Rotzbua\n   * Improving parameter types\n"},"1.3.1":{"date":" 2026-07-02","content":"1. [](#improved)\n   * Clarify archived Twig Extensions source (#4). Thanks to @Rotzbua\n"},"1.3.0":{"date":" 2026-07-02","content":"1. [](#improved)\n   * Updated namespacing for grav 2.0 compatibility (#3). Thanks to @sdegrande\n"},"1.2.2":{"date":" 2023-12-03","content":"1. [](#improved)\n   * Setting to enable the plugin for the admin interface as well\n"},"1.2.1":{"date":" 2023-11-24","content":"1. [](#improved)\n   * You can now use custom formats for dates in `localizeddate` filter\n   * Enhanced Readme\n"},"1.2.0":{"date":" 2022-10-17","content":"1. [](#new)\n    * Added `array_push` filter to overcome some issues with `merge`\n2. [](#improved)\n   * Revived Plugin\n"},"1.1.0":{"date":" 2018-12-09","content":"1. [](#new)\n    * Updated to Twig-extensions 1.5.4\n"},"1.0.2":{"date":" 2017-05-14","content":"1. [](#new)\n    * Tweaked `shuffle` to handle associative arrays as well, thanks to @Lamecarlate.\n"},"1.0.1":{"date":" 2016-09-30","content":"1. [](#new)\n    * Added demo URL\n"},"1.0.0":{"date":" 2016-09-30","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"table-importer":{"name":"Table Importer","version":"3.1.0","description":"Imports tables from JSON, YAML, and CSV formats into HTML tables within a page","description_html":"<p>Imports tables from JSON, YAML, and CSV formats into HTML tables within a page<\/p>","description_plain":"Imports tables from JSON, YAML, and CSV formats into HTML tables within a page","icon":"table","author":{"name":"Jeffrey Robbins","email":"jeffreyrobbins@gmail.com"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/jwrobb\/grav-plugin-table-importer","docs":"https:\/\/github.com\/jwrobb\/grav-plugin-table-importer\/blob\/develop\/README.md","keywords":"grav, plugin, tables, import, json, yaml, csv","bugs":"https:\/\/github.com\/jwrobb\/grav-plugin-table-importer\/issues","license":"MIT","tag_name":"3.1.0","date":"2025-06-21T17:47:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/table-importer\/3.1.0","repository":"https:\/\/github.com\/jwrobb\/grav-plugin-table-importer","slug":"table-importer","install_path":"user\/plugins\/table-importer","content_sha256":"f73613909de5472a658ea8b196aa7599cf84bf1dc5fdc750fceb5143ba34c863","changelog":{"3.1.0":{"date":"06\/21\/2025","content":"1. [](#bugfix)\n    * Fixed issue with when type was set in the shortcode\n1. [](#improved)\n    * Now, except for the file path indeed, a site wide default value can be set for all params. (fixes breaking change where the header was previously set to true)\n"},"3.0.1":{"date":"12\/30\/2024","content":"1. [](#bugfix)\n    * Fixed issue with raw cell data being escaped\n    * Fixed issue with captions param not enabling table caption rendering\n"},"3.0.0":{"date":"09\/07\/2024","content":"1. [](#new)\n    * Added table footer param and logic\n1. [](#improved)\n    * Rewrote table HTML output logic to use DOMElements rather than string concatenation\n    * Cleaned up param parsing code\n"},"2.3.0":{"date":"04\/23\/2024","content":"1. [](#new)\n    * Updated League CSV to version 9.8 (drops support for PHP < v7.4) \n    * Updated CSV logic for new lib methods\n    * Updated Readme\n"},"2.2.1":{"date":"11\/12\/2019","content":"1. [](#bugfix)\n    * Fixed a bug involving a blank `page` variable (thanks to @gamahachaa).\n"},"2.2.0":{"date":"07\/16\/2018","content":"1. [](#new)\n    * You can now add custom `id` tags to the tables (thanks to @mwender).\n1. [](#improved)\n    * Improved error reporting when things go wrong.\n"},"2.1.5":{"date":"07\/06\/2017","content":"1. [](#bugfix)\n    * Fixed a bug with abbreviated shortcodes ('[ti=filename.ext\/]').\n"},"2.1.4":{"date":"05\/05\/2017","content":"1. [](#bugfix)\n    * Fixed a bug with `data:\/\/` calls. Thanks, @kyleblanker!\n"},"2.1.3":{"date":"01\/31\/2017","content":"1. [](#bugfix)\n    * Fixed a problem with the code not running with the Admin plugin installed.\n"},"2.1.2":{"date":"11\/08\/2016","content":"1. [](#new)\n    * Added a `caption` option to add a caption to the table.\n"},"2.0.2":{"date":"11\/07\/2016","content":"1. [](#bugfix)\n    * The `trim` functions don't work the way I thought they did. Fixed it.\n"},"2.0.1":{"date":"11\/05\/2016","content":"1. [](#new)\n    * Added `raw` option to allow you to include HTML in your table data.\n"},"2.0.0":{"date":"11\/05\/2016","content":"1. [](#improved)\n    * Moved to `shortcode-core` interface. NOT BACKWARDS COMPATIBLE! Please read the revised documentation.\n"},"1.0.2":{"date":"10\/06\/2016","content":"1. [](#bugfix)\n    * Fixed a bug that occurred when no options were passed (issue #2)\n"},"1.0.1":{"date":" 09\/30\/2016","content":"1. [](#new)\n    * Added demo URL\n"},"1.0.0":{"date":" 09\/26\/2016","content":"1. [](#new)\n    * ChangeLog started..."}}},"tablesorter":{"name":"Tablesorter","version":"1.1.4","description":"Applies the jQuery plugin [Tablesorter](https:\/\/mottie.github.io\/tablesorter\/docs\/) to tables in a page","description_html":"<p>Applies the jQuery plugin <a href=\"https:\/\/mottie.github.io\/tablesorter\/docs\/\">Tablesorter<\/a> to tables in a page<\/p>","description_plain":"Applies the jQuery plugin Tablesorter to tables in a page","icon":"table","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-tablesorter","docs":"https:\/\/github.com\/Perlkonig\/grav-plugin-tablesorter\/blob\/master\/README.md","demo":"https:\/\/perlkonig.com\/demos\/tablesorter","keywords":"grav, plugin, table, sort, jquery","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-tablesorter\/issues","license":"MIT","tag_name":"v1.1.4","date":"2016-11-06T21:20:23Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tablesorter\/1.1.4","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-tablesorter","slug":"tablesorter","install_path":"user\/plugins\/tablesorter","content_sha256":"682fd4602252cb5e4eb044e4dfa4eed27a528ae9272f3003d23be930fec31ab5","changelog":{"1.1.4":{"date":"11\/06\/2016","content":"1. [](#bugfix)\n    * Correctly clobbers any existing table id tag because the HTML spec doesn't allow multiples to exist.\n"},"1.1.3":{"date":"10\/22\/2016","content":"1. [](#new)\n    * Plugin now only looks at the page's output, not the full rendered page\n"},"1.1.2":{"date":" 09\/30\/2016","content":"1. [](#bugfix)\n    * Had two `demo` tags in the `blueprints.yaml` file\n"},"1.1.1":{"date":" 09\/30\/2016","content":"1. [](#new)\n    * Added demo URL\n"},"1.1.0":{"date":" 09\/25\/2016","content":"1. [](#new)\n    * Made it possible to customize themes\n"},"1.0.0":{"date":" 09\/25\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"webmention":{"name":"Webmention","version":"1.3.1","description":"Implementation of the Webmention protocol (https:\/\/www.w3.org\/TR\/webmention\/) with the Vouch extension","description_html":"<p>Implementation of the Webmention protocol (<a href=\"https:\/\/www.w3.org\/TR\/webmention\/\">https:\/\/www.w3.org\/TR\/webmention\/<\/a>) with the Vouch extension<\/p>","description_plain":"Implementation of the Webmention protocol (https:\/\/www.w3.org\/TR\/webmention\/) with the Vouch extension","icon":"commenting-o","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-webmention","docs":"https:\/\/github.com\/Perlkonig\/grav-plugin-webmention\/blob\/master\/README.md","keywords":"grav, plugin, pingback, webmention","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-webmention\/issues","license":"MIT","tag_name":"v1.3.1","date":"2018-09-08T12:49:07Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/webmention\/1.3.1","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-webmention","slug":"webmention","install_path":"user\/plugins\/webmention","content_sha256":"fc3c5d0aa3129f3c31b2267a1cdc4f1674d0101764515067cdfa99af1a092d55","changelog":{"1.3.1":{"date":"09\/08\/2018","content":"1. [](#bugfix)\n    * Fixes to the \"select\" fields.\n"},"1.3.0":{"date":"09\/01\/2018","content":"1. [](#new)\n    * Now configurable via the Admin module thanks to @metbril.\n"},"1.2.0":{"date":"08\/05\/2018","content":"1. [](#new)\n    * Added Dutch translation thanks to @metbril.\n"},"1.1.0":{"date":" 05\/30\/2017","content":"1. [](#new)\n\t* Added French translation thanks to @MATsxm.\n\n2. [](#bugfix)\n    * Fixed webmention advertising to not affect non-HTML pages, along with a couple other minor fixes. Thank you, @Zegnat!\n"},"1.0.0":{"date":" 09\/14\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"subscriber":{"name":"Subscriber","version":"1.0.1","description":"Let users simply (un)subscribe to a newsletter with a single click.","description_html":"<p>Let users simply (un)subscribe to a newsletter with a single click.<\/p>","description_plain":"Let users simply (un)subscribe to a newsletter with a single click.","icon":"envelope-o","author":{"name":"RobGnu","url":"https:\/\/github.com\/robgnu\/","email":"rob@gmx.de"},"homepage":"https:\/\/github.com\/robgnu\/grav-plugin-subscriber","keywords":"plugin, newsletter, subscribe, unsubscribe, singleclick","bugs":"https:\/\/github.com\/robgnu\/grav-plugin-subscriber\/issues","license":"MIT","tag_name":"1.0.1","date":"2017-03-13T13:46:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/subscriber\/1.0.1","repository":"https:\/\/github.com\/robgnu\/grav-plugin-subscriber","slug":"subscriber","install_path":"user\/plugins\/subscriber","content_sha256":"60cbeb11c74aa69a8246babac45478388bf75c5ce7c79674eb00a1ad46480008","changelog":{"1.0.1":{"date":" 03\/13\/2017","content":"1. [](#improved)\n    * Added spanish (es) language by @joebordes - Thanks!\n"},"1.0.0":{"date":" 01\/22\/2017","content":"1. [](#improved)\n    * Removed some temporary code to optimize the parsing of $_GET parameters. This plugin was affected by [nginx config bug](https:\/\/github.com\/getgrav\/grav\/issues\/1245). This is solved now.\n"},"0.2.2":{"date":" 01\/21\/2017","content":"1. [](#improved)\n    * Added french (fr) language by @MATsxm.\n"},"0.2.1":{"date":" 01\/21\/2017","content":"1. [](#improved)\n    * Added french (fr) language by @MATsxm.\n"},"0.2.0":{"date":" 01\/20\/2017","content":"1. [](#new)\n    * Reworked the message\/notification functionality. Now this plugin uses the GRAV language functionality to display messages. Currently **en** and **de** is available. Please use the languages.yaml for your custom strings. More infos can be found in the README.md\n"},"0.1.0":{"date":" 09\/24\/2016","content":"1. [](#new)\n    * Initial release."}},"dependencies":[]},"graveyard":{"name":"Graveyard","version":"1.1.0","description":"Returns `410 GONE` status code based on list of intentionally deleted posts","description_html":"<p>Returns <code>410 GONE<\/code> status code based on list of intentionally deleted posts<\/p>","description_plain":"Returns 410 GONE status code based on list of intentionally deleted posts","icon":"ambulance","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-graveyard","docs":"https:\/\/github.com\/Perlkonig\/grav-plugin-graveyard\/blob\/master\/README.md","demo":"http:\/\/perlkonig.com\/demos\/graveyard","keywords":"grav, plugin, 410, deleted","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-graveyard\/issues","license":"MIT","tag_name":"v1.1.0","date":"2018-04-13T14:09:17Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/graveyard\/1.1.0","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-graveyard","slug":"graveyard","install_path":"user\/plugins\/graveyard","content_sha256":"683099e443c1c0e73d1487999d6c3ce988932f63962516912747ccc6427b6404","changelog":{"1.1.0":{"date":"04\/13\/2018","content":"1. [](#new)\n    * Added wildcard functionality to the deleted routes list using `fnmatch`.\n"},"1.0.3":{"date":"03\/31\/2018","content":"1. [](#bugfix)\n    * Commented out a line that caused problems in the Admin screen (thanks RobLui)\n"},"1.0.2":{"date":" 11\/02\/2016","content":"1. [](#new)\n    * Added Japanese translation care of tidiview.\n"},"1.0.1":{"date":" 09\/30\/2016","content":"1. [](#new)\n    * Updated demo page location.\n    * Added French translation care of MATsxm.\n"},"1.0.0":{"date":" 09\/19\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"header-by-taxonomy":{"name":"Header By Taxonomy","version":"1.0.1","description":"Set header data by taxonomy","description_html":"<p>Set header data by taxonomy<\/p>","description_plain":"Set header data by taxonomy","icon":"header","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-header-by-taxonomy","keywords":"grav, plugin, header, taxonomy","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-header-by-taxonomy\/issues","license":"MIT","tag_name":"v1.0.1","date":"2016-10-30T20:49:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/header-by-taxonomy\/1.0.1","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-header-by-taxonomy","slug":"header-by-taxonomy","install_path":"user\/plugins\/header-by-taxonomy","content_sha256":"cb4a2126639e0868534eaa3114b0f9f6795f56e36cbca4dc338a147b30fa6020","changelog":{"1.0.1":{"date":" 10\/30\/2016","content":"1. [](#bugfix)\n    * Raised the priority so the new headers are added before most other plugins run\n"},"1.0.0":{"date":" 09\/12\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"iplocate":{"name":"IPLocate","version":"1.0.3","description":"Attempts to geolocate your visitor using various services","description_html":"<p>Attempts to geolocate your visitor using various services<\/p>","description_plain":"Attempts to geolocate your visitor using various services","icon":"globe","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-iplocate","demo":"https:\/\/perlkonig.com\/demos\/iplocate","keywords":"grav, plugin, geoip, geolocation, location","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-iplocate\/issues","license":"MIT","tag_name":"v1.0.3","date":"2017-02-25T15:26:20Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/iplocate\/1.0.3","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-iplocate","slug":"iplocate","install_path":"user\/plugins\/iplocate","content_sha256":"cd6a76d8b22807292cc1fad97ee7e2d7f54cee9c6c6be3f0c9df514ccd14715e","changelog":{"1.0.3":{"date":" 02\/25\/2017","content":"1. [](#new)\n    * Added a `test_ip` config field for manually setting the IP that is located. Thanks to @akeif for this!\n"},"1.0.2":{"date":" 09\/30\/2016","content":"1. [](#new)\n    * Added demo URL\n"},"1.0.1":{"date":"09\/13\/2016","content":"1. [](#bugfix)\n    * Changed `is_null` to `isset` to avoid exception. Thanks, @kek91 (pull request #2)!\n"},"1.0.0":{"date":" 09\/05\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"pubmed":{"name":"Pubmed","version":"2.0.2","description":"Adds Pubmed citations pulled from the E-utils API","description_html":"<p>Adds Pubmed citations pulled from the E-utils API<\/p>","description_plain":"Adds Pubmed citations pulled from the E-utils API","icon":"heartbeat","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-pubmed","demo":"https:\/\/perlkonig.com\/demos\/pubmed","keywords":"grav, plugin, pubmed, bibliography, citations","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-pubmed\/issues","license":"MIT","tag_name":"v2.0.2","date":"2017-07-12T19:23:18Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/pubmed\/2.0.2","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-pubmed","slug":"pubmed","install_path":"user\/plugins\/pubmed","content_sha256":"12e271d3129e748e3f259f4d21773af1d514b5bc709bf764019e192f44eaed4b","changelog":{"2.0.2":{"date":" 07\/12\/2017","content":"1. [](#bugfix)\n    * Added the named `<div><\/div>` back in that was lost when I moved to the shortcode interface.\n"},"2.0.1":{"date":" 07\/12\/2017","content":"1. [](#bugfix)\n    * Truly fixed line break problem. Just include `<br>` in the formatting string.\n"},"2.0.0":{"date":" 07\/12\/2017","content":"1. [](#new)\n    * Moved to a proper shortcode. NOT BACKWARDS COMPATIBLE!\n    * Added the \"raw\" tag to make it possible to embed fields in links. (Thanks, @franciscodavid!)\n2. [](#bugfix)\n    * Fixed problem where line breaks weren't translated correctly.\n"},"1.0.2":{"date":" 09\/30\/2016","content":"1. [](#new)\n    * Added demo URL\n"},"1.0.1":{"date":"09\/04\/2016","content":"1. [](#improved)\n    * Use the built-in `Response` and `Cache` objects now\n"},"1.0.0":{"date":" 09\/04\/2016","content":"1. [](#new)\n    * ChangeLog started..."}}},"blogroll":{"name":"Blogroll","version":"1.0.2","description":"Maintain and selectively display lists of links","description_html":"<p>Maintain and selectively display lists of links<\/p>","description_plain":"Maintain and selectively display lists of links","icon":"list-ul","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-blogroll","demo":"http:\/\/perlkonig.com","keywords":"grav, plugin, lists, links, sidebar, blogroll","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-blogroll\/issues","license":"MIT","tag_name":"v1.0.2","date":"2016-09-02T15:20:17Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/blogroll\/1.0.2","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-blogroll","slug":"blogroll","install_path":"user\/plugins\/blogroll","content_sha256":"c43f825a207e3c28aab99e14caca8ef40bbbcb9d80c45e852f16e81e9e53b600","changelog":{"1.0.2":{"date":"09\/02\/2016","content":"1. [](#new)\n    * Fixed a typo in the blueprints file\n"},"1.0.1":{"date":" 09\/01\/2016","content":"1. [](#new)\n    * Added a screen capture to the README\n"},"1.0.0":{"date":" 08\/31\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"tagcloud":{"name":"Tagcloud","version":"1.0.2","description":"Create a simple tag cloud","description_html":"<p>Create a simple tag cloud<\/p>","description_plain":"Create a simple tag cloud","icon":"cloud","author":{"name":"Aaron Dalton","email":"aaron@daltons.ca"},"dependencies":[{"name":"taxonomylist","version":"*"}],"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-tagcloud","demo":"http:\/\/perlkonig.com","keywords":"grav, plugin, tag, tags, cloud, sidebar","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-tagcloud\/issues","license":"MIT","tag_name":"v1.0.2","date":"2016-09-01T23:27:40Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tagcloud\/1.0.2","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-tagcloud","slug":"tagcloud","install_path":"user\/plugins\/tagcloud","content_sha256":"c2818c18a73592ead29714c699190f21a398975a993116f933ee864e935669fb","changelog":{"1.0.2":{"date":"09\/01\/2016","content":"1. [](#new)\n    * Added a screen capture to the README\n"},"1.0.1":{"date":"09\/01\/2016","content":"1. [](#new)\n    * Tweaks to README, including instructions for \nBlog Injector\n    * Changed the icon\n"},"1.0.0":{"date":" 08\/31\/2016","content":"1. [](#new)\n    * Embedded the css and twig files into the php file so that the plugin can work out of the box.\n    * Added instructions on how to customize.\n"},"0.1.0":{"date":" 08\/30\/2016","content":"1. [](#new)\n    * ChangeLog started..."}}},"bibliography":{"name":"Bibliography","version":"3.0.1","description":"Renders a Bibliography-file into footnotes and appends it to the page.","description_html":"<p>Renders a Bibliography-file into footnotes and appends it to the page.<\/p>","description_plain":"Renders a Bibliography-file into footnotes and appends it to the page.","icon":"book","author":{"name":"Ole Vik","url":"http:\/\/olevik.me","email":"git@olevik.me"},"homepage":"https:\/\/github.com\/olevik\/grav-plugin-bibliography","keywords":"bibliography, citations, citation, cite, citeproc","bugs":"https:\/\/github.com\/olevik\/grav-plugin-bibliography\/issues","license":"MIT","tag_name":"v3.0.1","date":"2023-07-03T09:09:47Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/bibliography\/3.0.1","repository":"https:\/\/github.com\/OleVik\/grav-plugin-bibliography","slug":"bibliography","install_path":"user\/plugins\/bibliography","content_sha256":"7f7007a4472c6af3e44dbfee024e29448fce5e4e7ef5d17b586cf5b4121c6e4b","changelog":{"3.0.1":{"date":"03-07-2023","content":"1. [](#bugfix)\n   - Look for Page-config first\n"},"3.0.0":{"date":"15-01-2023","content":"1. [](#improved)\n   - Update dependencies for PHP-compatiblity (fixes #3)\n   - Update links in README\n"},"2.0.2":{"date":"04-09-2018","content":"1. [](#bugfix)\n   - Trim whitespace\n"},"2.0.1":{"date":"03-09-2018","content":"1. [](#improved)\n   - Code quality\n"},"2.0.0":{"date":"25-06-2018","content":"1. [](#new)\n   - Dependency-update\n   - API-change\n   - Page blueprints\n2. [](#improved)\n   - Plugin blueprint\n   - Code quality\n"},"1.0.0":{"date":"30-08-2016","content":"1. [](#new)\n   - Initial release"}},"dependencies":[]},"passwordgen":{"name":"PasswordGen","version":"0.1.4","description":"Generates passwords visible on your Webpage.","description_html":"<p>Generates passwords visible on your Webpage.<\/p>","description_plain":"Generates passwords visible on your Webpage.","icon":"keyboard-o","author":{"name":"RobGnu","url":"https:\/\/github.com\/robgnu\/","email":"rob@gmx.de"},"homepage":"https:\/\/github.com\/robgnu\/grav-plugin-passwordgen","keywords":"plugin, passwords, generate","bugs":"https:\/\/github.com\/robgnu\/grav-plugin-passwordgen\/issues","license":"MIT","tag_name":"0.1.4","date":"2017-10-03T11:59:39Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/passwordgen\/0.1.4","repository":"https:\/\/github.com\/robgnu\/grav-plugin-passwordgen","slug":"passwordgen","install_path":"user\/plugins\/passwordgen","content_sha256":"8f881c197d0a8f932b69c0bbb57e398c96ba729d5035a1a49a0f225bb173568d","changelog":{"0.1.4":{"date":" 10\/03\/2017","content":"1. [](#bugfix)\n    * Optimize HTML code output.\n2. [](#improved)\n    * New icon and better description.\n"},"0.1.3":{"date":" 09\/18\/2016","content":"1. [](#bugfix)\n    * Better character escaping to avoid broken HTML code.\n"},"0.1.2":{"date":" 08\/26\/2016","content":"1. [](#improved)\n    * Corrections to the blueprint (versioning)\n"},"0.1.1":{"date":" 08\/25\/2016","content":"1. [](#improved)\n    * Removed unused css-code.\n    * Corrections to the readme (some typos, better explaination)\n"},"0.1.0":{"date":" 08\/24\/2016","content":"1. [](#new)\n    * Initial release."}},"dependencies":[]},"form-database":{"name":"Form Database","version":"2.0.0","description":"Save Forms in a MySQL Database","description_html":"<p>Save Forms in a MySQL Database<\/p>","description_plain":"Save Forms in a MySQL Database","icon":"plug","author":{"name":"Bruno Baudry","email":"gamahachaa@gmail.com"},"dependencies":[{"name":"grav","version":">=1.6.0"},{"name":"database","version":">=1.0.0"},{"name":"form","version":">=2.0.0"}],"homepage":"https:\/\/github.com\/gamahachaa\/grav-plugin-form-database","demo":"http:\/\/learn.getgrav.org","keywords":"grav, plugin, form, database","bugs":"https:\/\/github.com\/gamahachaa\/grav-plugin-form-database","license":"MIT","tag_name":"2.0.0","date":"2020-02-28T15:06:04Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/form-database\/2.0.0","repository":"https:\/\/github.com\/gamahachaa\/grav-plugin-form-database","slug":"form-database","install_path":"user\/plugins\/form-database","content_sha256":"869b7db7e73f9ecf638b9087e8a51b8e6d7d7b98ce0b429d89d9cf1d244321bc","changelog":{"2.0.0":{"date":"10.01.2019","content":"1. [](#new)\n    * database agnostic with PDO from database plugin\n    * twig temaplting on process \n    * added hardcoded values\n1. [](#fix)\n    * array field results threw exception"},"1.0.1":{"date":" 08\/23\/2016","content":"1. [](#fix)\n    * Github Links in blueprint.yaml\n    * E-Mail Address in blueprint.yaml\n"},"1.0.0":{"date":" 08\/23\/2016","content":"1. [](#new)\n    * First Release\n"},"0.1.0":{"date":" 08\/23\/2016","content":"1. [](#new)\n    * ChangeLog started..."}}},"biblatex":{"name":"BibLaTeX","version":"1.0.4","description":"Renders a Bibtex-file into HTML and appends it to page content.","description_html":"<p>Renders a Bibtex-file into HTML and appends it to page content.<\/p>","description_plain":"Renders a Bibtex-file into HTML and appends it to page content.","icon":"asterisk","author":{"name":"Ole Vik","url":"http:\/\/olevik.me","email":"git@olevik.me"},"homepage":"https:\/\/github.com\/olevik\/grav-plugin-biblatex","keywords":"responsive, srcset","bugs":"https:\/\/github.com\/olevik\/grav-plugin-biblatex\/issues","license":"MIT","tag_name":"v1.0.4","date":"2018-12-06T22:40:17Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/biblatex\/1.0.4","repository":"https:\/\/github.com\/OleVik\/grav-plugin-biblatex","slug":"biblatex","install_path":"user\/plugins\/biblatex","content_sha256":"811a3739b9645519b09841c503c4148060f0f4cf4a2849afd0d37d8f6a00fcfd","changelog":{"1.0.4":{"date":"06-12-2018","content":"1. [](#bugfix)\n    * Limit execution\n"},"1.0.3":{"date":"06-12-2018","content":"1. [](#bugfix)\n    * Limit execution\n"},"1.0.2":{"date":"03-12-2018","content":"1. [](#improved)\n    * Fix page-object (#3)\n    * Code quality\n"},"1.0.1":{"date":"25\/Aug\/2016","content":"1. [](#improved)\n    * Fixed plugin-detection\n"},"1.0.0":{"date":"22\/Aug\/2016","content":"1. [](#new)\n    * Sample input and output\n    * .biblatex wrapper\n2. [](#improved)\n    * README\n"},"0.0.1":{"date":"21\/Aug\/2016","content":"1. [](#new)\n    * Initial release"}},"dependencies":[]},"cors":{"name":"CORS","version":"1.0.3","description":"Enables and allows to manage CORS (Cross-Origin Resource Sharing) in Grav","description_html":"<p>Enables and allows to manage CORS (Cross-Origin Resource Sharing) in Grav<\/p>","description_plain":"Enables and allows to manage CORS (Cross-Origin Resource Sharing) in Grav","icon":"universal-access","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-cors","keywords":"cors, api, cross, origin, resource, sharing","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-cors\/issues","license":"MIT","tag_name":"1.0.3","date":"2026-05-05T14:05:46Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cors\/1.0.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-cors","slug":"cors","install_path":"user\/plugins\/cors","content_sha256":"30451776e2bff05fbd24c39d9b03151a52d38a8ac7f1fa164495b9ebd0da1186","changelog":{"1.0.3":{"date":"04\/29\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.2+ deprecation notice for `${var}` string interpolation syntax\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.0.2":{"date":"08\/26\/2019","content":"1. [](#improved)\n    * Add 'Allow Headers' option\n1. [](#bugfix)\n    * Fixed plugin sending partial CORS headers if Origin didn't match to the configuration\n"},"1.0.1":{"date":"09\/09\/2016","content":"1. [](#improved)\n    * Better RegExp support for routes\n1. [](#bugfix)\n    * Fixed URI reference when matching routes\n    "},"1.0.0":{"date":" 08\/09\/2016","content":"1. [](#new)\n    * First Release"}},"dependencies":[]},"cookiesnotice":{"name":"CookiesNotice","version":"1.0.2","description":"Grav plugin displays small banner on the botton or top of screen with informations about EU Cookie Directive.","description_html":"<p>Grav plugin displays small banner on the botton or top of screen with informations about EU Cookie Directive.<\/p>","description_plain":"Grav plugin displays small banner on the botton or top of screen with informations about EU Cookie Directive.","icon":"object-group","author":{"name":"Krzysztof Kwa\u015bniak","url":"https:\/\/kwachu.org","email":"kwachu@kwachu.org"},"homepage":"http:\/\/github.com\/kwachu96\/grav-plugin-cookies-notice","bugs":"http:\/\/github.com\/kwachu96\/grav-plugin-cookies-notice\/issues","license":"MIT","tag_name":"v1.0.5","date":"2017-01-18T19:46:56Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cookiesnotice\/1.0.2","repository":"https:\/\/github.com\/kwachu96\/grav-plugin-cookies-notice","slug":"cookiesnotice","install_path":"user\/plugins\/cookiesnotice","content_sha256":"fe1a8c4901ee14a514abe9b684ac01dca642e166cfad617dbcf376e66bad6bd8","changelog":{"1.0.4":{"date":"01\/14\/2017","content":"1. [](#new)\n   * Adding Spanish translation\n   "},"1.0.3":{"date":"11\/19\/2016","content":"1. [](#new)\n   * Adding Finnish translation\n2. [](#bugfix)\n   * Fix typos\n   "},"1.0.2":{"date":"07\/23\/2016","content":"1. [](#bugfix)\n    * Fix problem with installation by grav-admin\n"},"1.0.1":{"date":"07\/22\/2016","content":"1. [](#bugfix)\n    * Fix language code for Sweden \n"},"1.0.0":{"date":"07\/21\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"flickr":{"name":"Flickr","version":"1.0.6","description":"This plugin provides flickr shortcodes for images and galleries","description_html":"<p>This plugin provides flickr shortcodes for images and galleries<\/p>","description_plain":"This plugin provides flickr shortcodes for images and galleries","icon":"flickr","author":{"name":"Marco Gulino","url":"http:\/\/gulinux.net","email":"marco@gulinux.net"},"dependencies":[{"name":"shortcode-core","version":"*"},{"name":"featherlight","version":"*"}],"homepage":"https:\/\/github.com\/GuLinux\/grav-plugin-flickr","keywords":"flickr, media","bugs":"https:\/\/github.com\/GuLinux\/grav-plugin-flickr\/issues","license":"GPLv3","tag_name":"v1.0.6","date":"2016-12-03T20:58:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/flickr\/1.0.6","repository":"https:\/\/github.com\/GuLinux\/grav-plugin-flickr","slug":"flickr","install_path":"user\/plugins\/flickr","content_sha256":"5d9bddd8fe24c8aac350dded2bc84cf4ebe68e3d3c7979161cca18bb544dd7bc","changelog":{"1.0.6":{"date":"3\/12\/2016","content":"1. [](#bugfix)\n    * Fix compatibility with php < 5.6\n"},"1.0.5":{"date":"29\/11\/2016","content":"1. [](#bugfix)\n    * Fix wrong path generated for flickr link on photo shortcode\n    * Fix secret shown as API key in blueprint\n"},"1.0.4":{"date":"28\/06\/2016","content":"1. [](#bugfix)\n    * Version bump: forgot to update blueprint\n"},"1.0.3":{"date":"28\/06\/2016","content":"1. [](#bugfix)\n    * Version bump to force update on grav plugins page\n"},"1.0.2":{"date":"28\/06\/2016","content":"1. [](#bugfix)\n    * Fix cache duration validation in previous release\n"},"1.0.1":{"date":"28\/06\/2016","content":"1. [](#improved)\n    * Support for adding custom css class in shortcodes\n    * Improve look & feel by adding external link icons and arrows shadow on lightbox.\n    * Configurable cache duration\n"},"1.0.0":{"date":"27\/06\/2016","content":"1. [](#new)\n    * Initial release\n    * Support for photosets, photos and collections"}}},"onwebchat":{"name":"OnWebChat","version":"1.2","description":"Displays a Live Chat Box from OnWebChat on your website","description_html":"<p>Displays a Live Chat Box from OnWebChat on your website<\/p>","description_plain":"Displays a Live Chat Box from OnWebChat on your website","icon":"comments-o","author":{"name":"Rich Starkie","url":"http:\/\/www.optikwebcreative.com","email":"rich@optikwebcreative.com"},"homepage":"http:\/\/www.optikwebcreative.com\/blog\/grav-onwebchat-plugin","demo":"http:\/\/www.optikwebcreative.com","keywords":"plugin, live, chat, onwebchat, interaction","bugs":"https:\/\/github.com\/OptikWebCreative\/onWebChat\/issues","license":"MIT","tag_name":"1.2","date":"2017-08-21T08:40:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/onwebchat\/1.2","repository":"https:\/\/github.com\/OptikWebCreative\/onWebChat","slug":"onwebchat","install_path":"user\/plugins\/onwebchat","content_sha256":"0b0f142d2e078655572c12609f2e9d4040ced333965d4c1e648d2a16693c050b","changelog":{"1.2":{"date":"21\/8\/2017","content":"1. [](#update)\n   * Merged PR by HughBris, setting Default State toggle - Thanks HughBris :) that was something I wanted to do, but time hasnt been on my side lately.\n"},"1.1.3":{"date":"06\/01\/2017","content":"1. [](#update)\n    * Updated Company Information and new URLs for HowTo and Demo\n"},"1.1.1":{"date":"25\/07\/2016","content":"1. [](#update)\n   * Updated company and contact details to correct branding after name change\n"},"1.1.0":{"date":"22\/06\/2016","content":"1. [](#new)   \n   * Updated so default is ON for all pages, can be disabled in FrontMatter by adding `onwebchat: false`\n"},"1.0.0":{"date":"20\/06\/2016","content":"1. [](#new)\n    * Script now renders in the page, correctly.\n    * Cleared out testing values\n    * Removed partial as no longer needed\n    * Thanks to @OleVik for assistance and making plugin automatically add to pages if plugin is enabled.\n"},"0.0.5":{"date":"20\/06\/2016","content":"1. [](#new)\n    * Script now renders in the page, not pulling value from onwebchat.yaml (or the admin interface)\n"},"0.0.1":{"date":"17\/06\/2016","content":"1. [](#new)\n    * Plugin started"}},"dependencies":[]},"musiccard":{"name":"Music Card","version":"1.2.3","description":"With **Music Card** a user can place a Spotify, SoundCloud or Bandcamp link to an album or track in a markdown file and it will pull in metadata.","description_html":"<p>With <strong>Music Card<\/strong> a user can place a Spotify, SoundCloud or Bandcamp link to an album or track in a markdown file and it will pull in metadata.<\/p>","description_plain":"With Music Card a user can place a Spotify, SoundCloud or Bandcamp link to an album or track in a markdown file and it will pull in metadata.","icon":"trello","author":{"name":"hmh","url":"http:\/\/harley.hicks.house","email":"harley@hicks.house"},"keywords":"album, song, track, spotify, music, embed","license":"MIT","tag_name":"v1.2.3","date":"2016-06-14T13:48:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/musiccard\/1.2.3","repository":"https:\/\/github.com\/hmhrex\/Grav-MusicCard","homepage":"https:\/\/github.com\/hmhrex\/Grav-MusicCard","slug":"musiccard","install_path":"user\/plugins\/musiccard","content_sha256":"94e8d9c792bfdc335857308f340f5ebcf1fa6eb67d4d465351c1e6fda75b364a","changelog":{"1.2.3":{"date":"06\/14\/2016","content":"1. [](#improved)\n    * Created CHANGELOG.md\n"},"1.2.2":{"date":"06\/13\/2016","content":"1. [](#improved)\n    * Removed mptre's SoundCloud PHP library, as it is no longer needed.\n"},"1.2.1":{"date":"06\/08\/2016 ","content":"1. [](#improved)\n    * Removed FontAwesome requirement. Logo icons now load from included custom font files.\n"},"1.2":{"date":"06\/07\/2016","content":"1. [](#new)\n    * Added Bandcamp support.\n    * Added the BCScraper PHP class. This scrapes for metadata from a Bandcamp link.\n\n2. [](!improved)\n    * Added Bandcamp logo font icon.\n"},"1.1":{"date":"06\/07\/2016","content":"1. [](#new)\n    * Added SoundCloud support.\n    * mptre's SoundCloud PHP library is now autoloaded via Composer.\n    * Logo of source is now displayed in bottom-right corner of card.\n"},"1.0":{"date":"06\/02\/2016","content":"1. [](#improved)\n    * Moved Spotify application credentials to blueprints.yaml.\n"},"0.8.6":{"date":"06\/02\/2016","content":"1. [](#bugfix)\n    * Fixed composer autoload reference.\n"},"0.8.5":{"date":"06\/02\/2016","content":"1. [](#improved)\n    * jwilsson's Spotify Web API PHP library is now autoloaded via Composer.\n    * Removed Autoloader class\n"},"0.8":{"date":"06\/02\/2016","content":"1. [](#new)\n    * This is the first beta release."}},"dependencies":[]},"diagrams":{"name":"Diagrams","version":"1.0.4","description":"This plugin allows to easily create amazing and powerful diagrams in Markdown","description_html":"<p>This plugin allows to easily create amazing and powerful diagrams in Markdown<\/p>","description_plain":"This plugin allows to easily create amazing and powerful diagrams in Markdown","icon":"edit","author":{"name":"Aur\u00e9lien Wolz","url":"http:\/\/wolzaurelien.com","email":"wolzaurelien@gmail.com"},"license":"MIT","tag_name":"1.0.4","date":"2019-04-23T21:33:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/diagrams\/1.0.4","repository":"https:\/\/github.com\/Seao\/grav-plugin-diagrams","homepage":"https:\/\/github.com\/Seao\/grav-plugin-diagrams","slug":"diagrams","install_path":"user\/plugins\/diagrams","content_sha256":"279598a524468f44250901c49e1d3c9a1113002bc1cea3b3474bcb528a3669e3","changelog":{"1.0.4":{"date":"23\/04\/2018","content":"1. [](#bugfix)\n    * Fixed Mermaid style sheet that could infer with CSS style (Thank to Goutte)\n"},"1.0.3":{"date":"20\/02\/2018","content":"1. [](#bugfix)\n    * Fixed CSS of Mermaid diagrams that could be applied on sequence diagrams (Thank to take4mats)\n"},"1.0.2":{"date":"02\/04\/2017","content":"1. [](#improved)\n    * Added support of mermaid diagrams\n    * Added new parameters related to mermaid diagrams\n"},"1.0.1":{"date":"04\/06\/2016","content":"1. [](#improved)\n    * Added support of colors for flow diagrams\n    * Improved plugin settings with more comments\n1. [](#bugfix)\n    * Fixed error of concatenation of javascript files with some templates (Thank to Heiko Schneefeld)\n\n"},"1.0.0":{"date":"29\/05\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"urlparamfilter":{"name":"Url-Paramfilter","version":"1.3","description":"Filter for manipulating URL-Parameters in Templates.","description_html":"<p>Filter for manipulating URL-Parameters in Templates.<\/p>","description_plain":"Filter for manipulating URL-Parameters in Templates.","icon":"hashtag","author":{"name":"MaZderMind","url":"https:\/\/github.com\/MaZderMind","email":"peter@mazdermind.de"},"homepage":"https:\/\/github.com\/MaZderMind\/grav-plugin-urlparamfilter","keywords":"url, param, query, fragement, twig, template, filter, urlparamfilter&#34;","bugs":"https:\/\/github.com\/MaZderMind\/grav-plugin-urlparamfilter\/issues","license":"MIT","tag_name":"1.3","date":"2016-07-13T21:43:29+02:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/urlparamfilter\/1.3","repository":"https:\/\/github.com\/MaZderMind\/grav-plugin-urlparamfilter","slug":"urlparamfilter","install_path":"user\/plugins\/urlparamfilter","content_sha256":"619e2cd717d600507c58254e98fde8a7a9d2db67996c22013d5039ed62b8c18a","changelog":false,"dependencies":[]},"image-collage":{"name":"Image Collage","version":"1.0.4","description":"Create beautiful image collages for all your posts and pages","description_html":"<p>Create beautiful image collages for all your posts and pages<\/p>","description_plain":"Create beautiful image collages for all your posts and pages","icon":"picture-o","author":{"name":"Petr Grishin","email":"petr.grishin@grishini.ru"},"homepage":"https:\/\/github.com\/petrgrishin\/grav-plugin-image-collage","docs":"https:\/\/github.com\/petrgrishin\/grav-plugin-image-collage\/blob\/master\/README.md","bugs":"https:\/\/github.com\/petrgrishin\/grav-plugin-image-collage\/issues","license":"MIT","tag_name":"1.0.4","date":"2016-06-06T20:26:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/image-collage\/1.0.4","repository":"https:\/\/github.com\/petrgrishin\/grav-plugin-image-collage","slug":"image-collage","install_path":"user\/plugins\/image-collage","content_sha256":"96cd68084bb1e78ac54caf288f45ba6f87ada7fe71561bf3fa5c174f93e01e23","changelog":{"1.0.4":{"date":"06\/06\/2016","content":"1. [](#bugfix)\n    * Fix default config load\n    * Fix syntax in readme\n"},"1.0.3":{"date":"06\/01\/2016","content":"1. [](#bugfix)\n    * Fix bug, it is necessary to `replace image_collage.php` -> `image-collage.php`, `image_collage.yaml` -> `image-collage.yaml`\n"},"1.0.2":{"date":"06\/01\/2016","content":"1. [](#bugfix)\n    * Fixed date format in CHANGELOG\n"},"1.0.1":{"date":"06\/01\/2016","content":"1. [](#bugfix)\n    * Fixed documentation by install command\n"},"1.0.0":{"date":"05\/28\/2016","content":"1. [](#new)\n    * Added `image_collage(images: ImageMedium[], column: int, borderSize: int, width: int): ImageMedium` Twig Extension"}},"dependencies":[]},"imgsrcset":{"name":"Image Srcset","version":"2.1.0","description":"Adds a srcset-attribute to img-elements to allow for responsive images in Markdown.","description_html":"<p>Adds a srcset-attribute to img-elements to allow for responsive images in Markdown.<\/p>","description_plain":"Adds a srcset-attribute to img-elements to allow for responsive images in Markdown.","icon":"picture-o","author":{"name":"Ole Vik","url":"http:\/\/olevik.me","email":"git@olevik.me"},"homepage":"https:\/\/github.com\/olevik\/grav-plugin-imgsrcset","keywords":"responsive, srcset","bugs":"https:\/\/github.com\/olevik\/grav-plugin-imgsrcset\/issues","license":"MIT","tag_name":"v2.1.0","date":"2023-07-02T18:59:20Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/imgsrcset\/2.1.0","repository":"https:\/\/github.com\/OleVik\/grav-plugin-imgsrcset","slug":"imgsrcset","install_path":"user\/plugins\/imgsrcset","content_sha256":"0ecbe09bdc62bc62fab527207f5fd15a93d5f0bb011a2b8d6b0caca7147f58bb","changelog":{"2.1.0":{"date":"02-07-2023","content":"1. [](#new)\n   - Ignore images with a `data-srcset`-attribute\n2. [](#improved)\n   - Bump dependency\n"},"2.0.0":{"date":"02-07-2023","content":"1. [](#new)\n   - `global`-parameter to enable\/disable on all Pages\n   - `imgsrcset.process`-parameter to enable\/disable on single Page\n2. [](#improved)\n   - Autoloading\n3. [](#tested)\n   - Grav v1.7.42\n"},"1.1.1":{"date":"29-04-2019","content":"1. [](#bugfix)\n   - Content-processing\n"},"1.1.1-beta-1":{"date":"11-04-2019","content":"1. [](#bugfix)\n   - Content-processing\n"},"1.1.0":{"date":"14-02-2019","content":"1. [](#improved)\n   - Allow per-page options\n   - Bump vendor-dependency\n   - Code-cleanup\n"},"1.0.3":{"date":"28-02-2017","content":"1. [](#improved)\n   - Use selectize in blueprint\n   - Code cleanup\n   - PSR-1 and PSR-2 compliance\n   - Change plugin icon\n   - Update readme\n2. [](#new)\n   - Document class and methods\n3. [](#bugfix)\n   - Fix changelog format\n"},"1.0.2":{"date":"09-01-2017","content":"1. [](#bugfix)\n   - Fixed blueprint for admin interface\n"},"1.0.1":{"date":"03-01-2017","content":"1. [](#bugfix)\n   - Restricted operations to non-admin pages only\n"},"1.0.0":{"date":"14-05-2016","content":"1. [](#new)\n   - Initial release"}},"dependencies":[]},"imgcaptions":{"name":"Img Captions","version":"3.2.0","description":"Turns the title-attribute in img-elements into figure-elements with a figcaption.","description_html":"<p>Turns the title-attribute in img-elements into figure-elements with a figcaption.<\/p>","description_plain":"Turns the title-attribute in img-elements into figure-elements with a figcaption.","icon":"file-image-o","author":{"name":"Ole Vik","url":"http:\/\/olevik.me","email":"git@olevik.me"},"dependencies":[{"name":"grav","version":">=1.6"}],"homepage":"https:\/\/github.com\/olevik\/grav-plugin-imgcaptions","keywords":"caption, captions, figure, figcaption, image, images, image caption","bugs":"https:\/\/github.com\/olevik\/grav-plugin-imgcaptions\/issues","license":"MIT","tag_name":"v3.2.0","date":"2020-12-27T23:26:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/imgcaptions\/3.2.0","repository":"https:\/\/github.com\/OleVik\/grav-plugin-imgcaptions","slug":"imgcaptions","install_path":"user\/plugins\/imgcaptions","content_sha256":"2e4530f14010a469f4b97c6d01d769447fe18b914c5489565120f9cdfd5d5ab4","changelog":{"3.2.0":{"date":"28-12-2020","content":"1. [](#improved)\n   - Parse Markdown in title-attribute\n2. [](#bugfix)\n   - Non-null `event`-setting\n"},"3.1.5":{"date":"25-03-2020","content":"1. [](#bugfix)\n   - Check state of MediaActions\n"},"3.1.4":{"date":"25-03-2020","content":"1. [](#bugfix)\n   - Reinsert Rawr\/T-Regx\n"},"3.1.3":{"date":"25-03-2020","content":"1. [](#bugfix)\n   - Deprecate inclusion of Rawr\/T-Regx, missing file\n"},"3.1.2":{"date":"25-03-2020","content":"1. [](#bugfix)\n   - Revert Media-actions for now\n2. [](#improved)\n   - Variable-naming\n"},"3.1.1":{"date":"25-03-2020","content":"1. [](#bugfix)\n   - Fix autoloading\n"},"3.1.0":{"date":"19-03-2020","content":"1. [](#improved)\n   - Support media actions (#24, thanks to @A----)\n   - Automate testing (#25, thanks to @A----)\n   - Bump T-Regx (#26, thanks to @Danon)\n"},"3.0.3":{"date":"13-08-2019","content":"1. [](#bugfix)\n   - Robustness in Source API\n"},"3.0.2":{"date":"13-08-2019","content":"1. [](#improved)\n   - Robustness in Source API\n"},"3.0.1":{"date":"12-08-2019","content":"1. [](#bugfix)\n   - Missing vendor-folder\n2. [](#improved)\n   - Robustness in Source API\n"},"3.0.0":{"date":"03-08-2019","content":"1. [](#new)\n   - Stable Release\n"},"3.0.0-beta.2":{"date":"26-07-2019","content":"1. [](#bugfix)\n   - Testing true\n"},"3.0.0-beta.1":{"date":"26-07-2019","content":"1. [](#new)\n   - Access to Page and Media in template\n   - Per-page configuration from FrontMatter, excluding `mode`\n   - Implementation of a regular expression query builder\n2. [](#improved)\n   - Template-formating, elevate class to figure\n   - Use template to render in HTML-mode\n   - Tests\n   - Code-quality\n"},"2.2.0":{"date":"02-06-2018","content":"1. [](#improved)\n    * Replaced a couple of helper-methods with Grav Util ones\n"},"2.1.0":{"date":"10-03-2018","content":"1. [](#improved)\n    * Refactored patterns\n    * Wrapping images in anchors now renders properly\n2. [](#new)\n    * If image is wrapped in anchor, `url` is passed to template\n"},"2.0.0":{"date":"09-12-2017","content":"1. [](#new)\n    * V2 release\n"},"2.0.0-beta2":{"date":"30-11-2017","content":"1. [](#improved)\n    * Regex-capture pattern to include Markdown Extra syntax\n    * Unit tests to include Markdown Extra syntax\n"},"2.0.0-beta1":{"date":"25-11-2017","content":"1. [](#new)\n    * Changed name to 'ImgCaptions'\n    * Added template-rendering\n    * Added Markdown-mode\n    * Added Event override\n    * Added unit tests\n2. [](#improved)\n    * Refactored plugin\n"},"1.2.6":{"date":"29-05-2017","content":"1. [](#improved)\n    * Enhance accessibility of `figure`\n"},"1.2.5":{"date":"08-05-2017","content":"1. [](#improved)\n    * Regex capture for title-attribute\n3. [](#bugfix)\n    * Single-quotes removed from title-regex, facilitating them in title-strings\n"}}},"google-maps":{"name":"Google Maps","version":"1.0.10","description":"Google Maps plugin for Grav","description_html":"<p>Google Maps plugin for Grav<\/p>","description_plain":"Google Maps plugin for Grav","icon":"code","author":{"name":"Salvatore Guarino","email":"sg@deved.it"},"dependencies":[{"name":"shortcode-core","version":"*"}],"homepage":"https:\/\/github.com\/deved-it\/grav-plugin-google-maps","demo":"https:\/\/github.com\/deved-it\/grav-plugin-google-maps","keywords":"grav, plugin, google maps","bugs":"https:\/\/github.com\/deved-it\/grav-plugin-google-maps\/issues","license":"MIT","tag_name":"v1.0.10","date":"2018-06-20T12:00:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/google-maps\/1.0.10","repository":"https:\/\/github.com\/deved-it\/grav-plugin-google-maps","slug":"google-maps","install_path":"user\/plugins\/google-maps","content_sha256":"41c3b789b6b10814817001107badc2510e28b012e654df2e0799ea2262523799","changelog":{"1.0.6":{"date":"09\/16\/2016","content":"1. [](#bugfix)\n    * Fixed asset JS injection\n"},"0.1.0":{"date":" 05\/09\/2016","content":"1. [](#new)\n    * ChangeLog started..."}}},"page-as-data":{"name":"Grav Pages as Data","version":"0.1.0","description":"Enables .json, .xml and .yml endpoints for all pages.","description_html":"<p>Enables .json, .xml and .yml endpoints for all pages.<\/p>","description_plain":"Enables .json, .xml and .yml endpoints for all pages.","icon":"ra","author":{"name":"Bryan Ollendyke","url":"https:\/\/elmsln.org\/","email":"btopro@outlook.com"},"homepage":"https:\/\/github.com\/btopro\/page-as-data","keywords":"json, yml, xml, api, web service","bugs":"https:\/\/github.com\/btopro\/page-as-data\/issues","license":"MIT","tag_name":"0.1.0","date":"2016-05-05T18:27:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/page-as-data\/0.1.0","repository":"https:\/\/github.com\/btopro\/page-as-data","slug":"page-as-data","install_path":"user\/plugins\/page-as-data","content_sha256":"46d4d9d0b25f9d54b46612ba2928633a339a523587803567bf9ca221e706355e","changelog":{"0.1.0":{"date":"05\/05\/2016","content":"Initial release, working!"}},"dependencies":[]},"feed-us":{"name":"Feed Us","version":"0.1.3","description":"Import entries from feeds (RSS, ATOM, ...).","description_html":"<p>Import entries from feeds (RSS, ATOM, ...).<\/p>","description_plain":"Import entries from feeds (RSS, ATOM, ...).","icon":"rss","author":{"name":"Olivier Raggi","url":"http:\/\/orx57.net","email":"olivier@raggi.fr"},"homepage":"https:\/\/github.com\/orx57\/grav-plugin-feed-us","demo":"http:\/\/demo.orx57.net\/grav\/feed-us-test-page","keywords":"grav, plugin, feed, rss, atom, xml, json","bugs":"https:\/\/github.com\/orx57\/grav-plugin-feed-us\/issues","license":"MIT","tag_name":"0.1.3","date":"2016-06-17T21:45:11Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/feed-us\/0.1.3","repository":"https:\/\/github.com\/orx57\/grav-plugin-feed-us","slug":"feed-us","install_path":"user\/plugins\/feed-us","content_sha256":"3d4fed606a52d20d4455bcfa16f88db12ce48c357872bec1ee522331e94187db","changelog":{"0.1.3":{"date":" 06\/17\/2016","content":"1. [](#new)\n    * Adding ATOM support\n"},"0.1.2":{"date":" 05\/04\/2016","content":"1. [](#improved)\n    * Some minor fixes and writing improvments\n"},"0.1.1":{"date":" 05\/04\/2016","content":"1. [](#bugfix)\n    * Typo in blueprints.yaml that wont let changing the feed url\n"},"0.1.0":{"date":" 04\/26\/2016","content":"1. [](#new)\n    * Initial version"}},"dependencies":[]},"custom-css":{"name":"Custom CSS","version":"0.2.3","description":"Adds some custom CSS to your Grav site","description_html":"<p>Adds some custom CSS to your Grav site<\/p>","description_plain":"Adds some custom CSS to your Grav site","icon":"plug","author":{"name":"Team Grav","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-custom-css","keywords":"grav, plugin, css, design","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-custom-css\/issues","license":"MIT","tag_name":"0.2.3","date":"2026-05-05T14:05:52Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/custom-css\/0.2.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-custom-css","slug":"custom-css","install_path":"user\/plugins\/custom-css","content_sha256":"10a4e8fbb34a976fa90637baec1f44c69c87bbc3f1b1e1d4260cb70ceb4423a7","changelog":{"0.2.3":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"0.2.2":{"date":" 12\/19\/2018","content":"1. [](#new)\n    * Added translation\n1. [](#improved)\n    * Use Codemirror for Inline CSS\n"},"0.2.1":{"date":" 07\/27\/2016","content":"1. [](#bugfix)\n    * Fix running plugin without adding CSS files to include [#2](https:\/\/github.com\/getgrav\/grav-plugin-custom-css\/issues\/2)\n"},"0.2.0":{"date":" 05\/23\/2016","content":"1. [](#new)\n    * Added field to manipulate priority\n"},"0.1.0":{"date":" 05\/02\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"jscomments":{"name":"JSComments","version":"2.2.1","description":"Add comments to your site with Discourse, Disqus, Facebook, Google+, HyperComments, IntenseDebate, Isso, and Muut comment systems.","description_html":"<p>Add comments to your site with Discourse, Disqus, Facebook, Google+, HyperComments, IntenseDebate, Isso, and Muut comment systems.<\/p>","description_plain":"Add comments to your site with Discourse, Disqus, Facebook, Google+, HyperComments, IntenseDebate, Isso, and Muut comment systems.","icon":"comments-o","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-jscomments","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-jscomments\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-jscomments\/issues","license":"MIT\/GPL","tag_name":"v2.2.1","date":"2018-06-04T16:51:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/jscomments\/2.2.1","repository":"https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments","slug":"jscomments","install_path":"user\/plugins\/jscomments","content_sha256":"a2c01b1714626a466cb9b5d89a7ca1e68965f380fd93176f8b3f6300840b3956","changelog":{"2.2.1":{"date":"06\/04\/2018","content":"3. [](#bugfix)\n  * Fixed issues in Isso template [#26](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/pull\/26)\n"},"2.2.0":{"date":"01\/29\/2018","content":"1. [](#new)\n  * Added [Isso commenting system](https:\/\/posativ.org\/isso\/) [#12](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/issues\/12)\n"},"2.1.4":{"date":"01\/13\/2018","content":"3. [](#bugfix)\n  * Fixed `CHANGELOG.md` and `README.md` [#22](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/pull\/22)\n"},"2.1.3":{"date":"01\/13\/2018","content":"3. [](#bugfix)\n  * Fixed issue with HyperComments service provider: No login solution except anonymous [#23](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/issues\/23) & [#24](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/pull\/24) (Thanks to [@foufrix](https:\/\/github.com\/foufrix))\n"},"2.1.2":{"date":"08\/20\/2017","content":"3. [](#bugfix)\n  * Made IntenseDebate service provider protocol agnostic [#21](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/issues\/21)\n"},"2.1.1":{"date":"07\/21\/2017","content":"3. [](#bugfix)\n  * Fixed broken language string in Muut comments\n"},"2.1.0":{"date":"05\/07\/2017","content":"1. [](#new)\n  * Added Russian language and support for HyperComments comments [#18](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/pull\/18) & [#19](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/pull\/19) (Thanks to [@Neiromaster](https:\/\/github.com\/Neiromaster))\n2. [](#improved)\n  * Added some comment provider placeholder values\n  * Refactored comment providers into sections again\n"},"2.0.2":{"date":"02\/06\/2017","content":"2. [](#improved)\n  * Use `raw` filter for translation strings (see [#15](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/issues\/15), Wrong output code)\n  * Updated `README.md` and corrected grammar\n"},"2.0.1":{"date":"09\/05\/2016","content":"3. [](#bugfix)\n  * Fixed [#9](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/issues\/9) (Uncaught Error: invalid version specified) with [#10](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/pull\/10) (Thanks to [@Perlkonig](https:\/\/github.com\/Perlkonig))\n"},"2.0.0":{"date":"07\/20\/2016","content":"2. [](#improved)\n  * Released stable version (requires **Grav v1.1.0+**)\n"},"2.0.0-beta.5":{"date":"06\/09\/2016","content":"2. [](#improved)\n  * Add missing Romanian language strings [#8](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/pull\/8) (Thanks to [JohnMica](https:\/\/github.com\/JohnMica))\n"},"2.0.0-beta.4":{"date":"06\/08\/2016","content":"1. [](#new)\n  * Added support for Google+ comments.\n  * Added Romanian language [#7](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/pull\/7) (Thanks to [JohnMica](https:\/\/github.com\/JohnMica))\n"},"2.0.0-beta.3":{"date":"05\/16\/2016","content":"2. [](#improved)\n  * Added `rel=\"nofollow\"` to comment provider links\n  * Use canonical links as page URL and raw route as page ID for comment providers (**BC**!!!)\n3. [](#bugfix)\n  * Fixed `jscomments` Twig function (passing variables is working now)\n  * Fixed broken comment pages by exposing the current page to Twig\n"},"2.0.0-beta.2":{"date":"05\/14\/2016","content":"2. [](#improved)\n  * Minor code improvements\n3. [](#bugfix)\n  * Fixed broken translation in admin plugin settings [#4](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/issues\/4) (Beta Grav and Admin issues with translating Discourse Title tab)\n  * Fixed `jscomments_get_provider` Twig function\n"},"2.0.0-beta.1":{"date":"05\/12\/2016","content":"1. [](#new)\n  * Added `active` settings\n  * Added German translations\n  * Added more JSComments page settings\n  * Add support for Discourse [#2](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/issues\/2) & [#3](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/pull\/3) (Thanks to @openscript)\n2. [](#improved)\n  * Fixed strings, added help texts and broke out provider settings into tabs\n  * Update JS comment providers APIs according to their docs (**BC** !!!)\n  * Moved Disqus Counts settings into main Disqus admin page settings\n  * Refactored code (requires **Grav v1.1.0+**)\n  * Updated `README.md`\n3. [](#bugfix)\n  * Fixed [#1](https:\/\/github.com\/Sommerregen\/grav-plugin-jscomments\/issues\/1) (JScomments Not Working with Grav Beta)\n"},"1.2.10":{"date":"09\/13\/2015","content":"2. [](#improved)\n  * Added translations for the admin plugin form fields.\n3. [](#bugfix)\n  * Change the main translation key from JSCOMMENTS to PLUGIN_JSCOMMENTS for following the Grav design.\n"},"1.2.9":{"date":"09\/13\/2015","content":"3. [](#bugfix)\n  * Remove useless field `provider` from configuration. Now this field used only for call the provider based on provider plugin options saved.\n"},"1.2.8":{"date":"09\/13\/2015","content":"1. [](#new)\n  * Added multi language support for Facebook template, use this format (`{grav_lang}_{grav_lang|upper}`). I'm not sure if this is the best way, but in most case working fine.\n  * Added new parameter for Facebook comments \"order_by\" configurable from page options or into page header. Default is \"Social\".\n2. [](#improved)\n  * Update Facebook widget to v2.4.\n  * Change Facebook parameter from `numposts` to `num_posts` for following the Facebook comments parameter.\n  * Change twig translation function to twig filter.\n3. [](#bugfix)\n  * Fixed `CHANGELOG.md` format.\n  * Clear code.\n  * Added JS escape into Disqus template.\n  * Added translation for Muut template.\n  * Added multi languages support into Muut template.\n  * Added JS escape into IntenseDebate template.\n"},"1.2.7":{"date":"09\/12\/2015","content":"1. [](#new)\n  * Added `languages.yaml` for translations (_some useless but nice to have it <3_).\n2. [](#improved)\n  * Change how to working code into the header page for use into admin plugin options tab, read the `README.md`.\n  * Refactoring plugin settings page into admin plugin.\n3. [](#bugfix)\n  * Enabled plugin by default.\n  * Fixed small bugs into admin plugin integration.\n"},"1.2.6":{"date":"09\/12\/2015","content":"3. [](#bugfix)\n  * Change from `onPageContentRaw` event to `onPageInitialized` because not working very well with the cache system.\n"}},"dependencies":[]},"star-ratings":{"name":"Star Ratings","version":"2.0.3","description":"Simple but Powerful Star Ratings plugin for anything!","description_html":"<p>Simple but Powerful Star Ratings plugin for anything!<\/p>","description_plain":"Simple but Powerful Star Ratings plugin for anything!","icon":"star-half-o","author":{"name":"Team Grav","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-star-ratings","docs":"https:\/\/github.com\/getgrav\/grav-plugin-star-ratings\/blob\/develop\/README.md","keywords":"grav, plugin, etc","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-star-ratings\/issues","license":"MIT","tag_name":"2.0.3","date":"2026-05-05T14:09:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/star-ratings\/2.0.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-star-ratings","slug":"star-ratings","install_path":"user\/plugins\/star-ratings","content_sha256":"6b024099289608496c70a179445ae790e570630f3ac57195e7f388eea8d6a88a","changelog":{"2.0.3":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"2.0.2":{"date":"05\/09\/2023","content":"1. [](#improved)\n    * Register `star-ratings` plugin to grav DI container\n    * Exposing \"StarRatings\" JS method for refreshing the stars\n    * Removed a deprecation message for PHP 8.2+\n1. [](#bugfix)\n    * Fixed score rounding where it should always maintain 1 decimal place\n    * Display tooltip indicating user has already voted\n    * Fixed issue with initialScore when disabled\n"},"2.0.1":{"date":"07\/18\/2017","content":"1. [](#new)\n    * Added new option `vote_access` to prevent unauthorized users from voting\n"},"2.0.0":{"date":"07\/18\/2017","content":"1. [](#new)\n    * Aggregated Rating (Rich Snippets) is now supported, for more details check the documentation [#6](https:\/\/github.com\/getgrav\/grav-plugin-star-ratings\/issues\/6)\n    * Added optional average score display [#7](https:\/\/github.com\/getgrav\/grav-plugin-star-ratings\/issues\/7)\n    * Added new `star_data()` Twig function [#4](https:\/\/github.com\/getgrav\/grav-plugin-star-ratings\/issues\/4)\n1. [](#improved)\n    * Updated star-ratings-svg library to latest version (v1.2.0)\n    * Added `star_shape` option ('straight' [default], 'rounded')\n    * Added `global_initialization` setting to allow global page options for the stars, rather than repeating for all individual items\n    * Better handling messages through tooltips when voting or if a vote fails to register\n    * Automatically disable ability to vote if already voted and `unique_ip_check` option is enabled\n1. [](#bugfix)\n    * Fixed `initial_stars` setting not properly getting set through options\n    * Fixed issue with `show_count` throwing off the hovering position [#5](https:\/\/github.com\/getgrav\/grav-plugin-star-ratings\/issues\/5)\n"},"1.0.4":{"date":"10\/18\/2016","content":"1. [](#bugfix)\n    * Fixed a typo in blueprints for docs\n"},"1.0.3":{"date":"05\/12\/2016","content":"1. [](#bugfix)\n    * Refactored `addVote()` to work better with cache on\n    * Updated README to reference need for cache off when using Twig function in page content\n"},"1.0.2":{"date":"05\/12\/2016","content":"1. [](#bugfix)\n    * Fixed issue with `Page` being initialize too eary by `onPagesInitialized()` event\n    * Force no data to be an empty array\n"},"1.0.1":{"date":"04\/27\/2016","content":"1. [](#new)\n    * Fixed typos in blueprints\n"},"1.0.0":{"date":"04\/27\/2016","content":"1. [](#new)\n    * Initial release"}},"dependencies":[]},"devtools":{"name":"DevTools","version":"2.0.0","description":"Plugin and Theme scaffolding utilities","description_html":"<p>Plugin and Theme scaffolding utilities<\/p>","description_plain":"Plugin and Theme scaffolding utilities","icon":"cogs","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-devtools","keywords":"devtools, plugin, theme","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-devtools\/issues","license":"MIT","tag_name":"2.0.0","date":"2026-07-14T05:55:26Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/devtools\/2.0.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-devtools","slug":"devtools","install_path":"user\/plugins\/devtools","content_sha256":"1798a45daf4d5b93efaf064a042868c7a0ef93df8053a22169a31481b6672dee","changelog":{"2.0.0":{"date":"07\/13\/2026","content":"1. [](#new)\n    * Scaffolding can now target Grav 1.7, 2.0, or both, chosen in the wizard or with a `--grav` flag.\n    * Added a new `api` plugin template that scaffolds a plugin integrated with the Grav API plugin and Admin Next.\n    * Added a new `blades` theme template using the Blades semantic CSS framework.\n    * Added a new `daisyui` theme template using Tailwind CSS and daisyUI.\n2. [](#improved)\n    * Generated plugins and themes now declare the correct compatibility, Grav dependency, and PHP version for the chosen target.\n    * Refreshed the wizard with a title banner, grouped sections, a live folder\/slug preview, and a confirmation summary before creating anything.\n    * The wizard can now run `composer install` (plugins) or the `npm` build (Tailwind and daisyUI themes) for you after creating a component, with a `--install` flag to do it automatically.\n    * Developer name, email, and GitHub ID are now remembered between runs and default from your local git config.\n    * Added a `--template` flag to choose the template without the interactive prompt.\n3. [](#bugfix)\n    * Fixed minor internal issues in blueprint and Flex Object creation.\n4. [](#removed)\n    * Removed the `tailwind-mix` theme template.\n"},"1.9.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.9.0":{"date":"04\/27\/2026","content":"1. [](#new)\n   * Grav 2.0 Compatibility\n   * **`bin\/plugin devtools i18n-blueprints`** \u2014 new CLI command that audits blueprint YAML files (`blueprints.yaml`, `blueprints\/**\/*.yaml`, `admin\/blueprints\/**\/*.yaml`) across plugins and themes, classifying every `label` \/ `title` \/ `description` \/ `help` \/ `placeholder` \/ `hint` value as either a translation key or hardcoded English. Supports auditing a single plugin, a `user\/plugins` (or `user\/themes`) directory, or a full Grav root (auto-detected via `system\/defines.php` \u2014 `user\/plugins` and `user\/themes` are expanded automatically). Reports per-plugin counts and a hardcoded ratio.\n   * **`--fix` mode** rewrites blueprint YAML in place, replacing each hardcoded value with a generated `PLUGIN_FOO.STRING_KEY` reference and emitting matching `KEY: \"Original string\"` entries directly into the plugin's existing language file. Detects both lang-file conventions: appends to `languages.yaml` (multi-locale, single file) when present, otherwise to `languages\/<lang>.yaml` (per-locale), creating `languages\/en.yaml` when neither exists. Plugin prefix (`PLUGIN_FOO`) is read from the existing language file's keys (preserving the author's chosen convention) or derived from the directory name. Existing keys are reused when both key *and* value match \u2014 re-running `--fix` is idempotent. `--icu` emits keys under an `ICU:` block instead, for plugins targeting Grav 2 \/ Admin2.\n   * **`--interactive` (`-i`)** mode walks each finding one at a time with a `y\/n\/a\/s\/q` prompt for per-value review, useful for filtering false positives that the heuristic flags (CSS class strings, file paths, etc.) before any rewrite happens.\n   * **`--key-length=N`** controls the maximum generated key length (default 40, minimum 10) \u2014 long values are trimmed back to the last underscore boundary. Collisions get `_2`, `_3` suffixes automatically.\n   * **`--details`**, **`--threshold`**, **`--dry-run`**, and **`--json`** flags for inspecting findings without rewriting, scoping the report to plugins above a hardcoded ratio, previewing `--fix` output, and machine-readable output.\n"},"1.8.0":{"date":"04\/21\/2025","content":"1. [](#improved)\n   * Added \"version:\" to composer.json as it now requires it\n   * Updated to `Tailwind 3` version `3.3.3`\n   * Better autoload instructions\n   * Fixed some `https` links in `README.md` to `https`\n"},"1.7.1":{"date":"06\/14\/2023","content":"1. [](#improved)\n   * Removed platform-config [#81](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/81)\n"},"1.7.0":{"date":"02\/15\/2023","content":"1. [](#improved)\n    * Created non-opinionated and basic Tailwind CSS theme as default `tailwind` solution\n    * Moved the opinionated Tailwind CSS theme with Laravel Mix to a separate option\n"},"1.6.1":{"date":"01\/02\/2023","content":"1. [](#improved)\n   * Improved FlexObjects default blueprint\n"},"1.6.0":{"date":"12\/28\/2022","content":"1. [](#new)\n   * Added new \"FlexObjects\" basic plugin type [#77](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/77)\n1. [](#improved)\n   * Improvements for Tailwind CSS theme + AlpineJS [#74](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/74)   \n   * Updated `languages.yaml` [#76](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/76)\n   * Updated links + default branch [#72](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/72)\n1. [](#bugfix)\n   * Various PSR Fixes [#71](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/71)\n"},"1.5.4":{"date":"10\/26\/2021","content":"1. [](#improved)\n   * Moved offline check to CLI flag [#70](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/issues\/70)\n   * Updated footer copyrights for Pure Blank\n"},"1.5.3":{"date":"06\/16\/2021","content":"1. [](#bugfix)\n   * Fixes over-zealous regex that caused duplication in copy tasks [#69](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/issues\/69)\n   "},"1.5.2":{"date":"05\/19\/2021","content":"1. [](#new)\n    * Added basic TailwindCSS theme [#65](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/65)\n1. [](#improved)\n    * Fixed typo [#67](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/67)\n    * Use canonical URLs [#58](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/58)\n    * Replace `theme_config` with `config.theme` [#60](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/60)\n1. [](#bugfix)\n    * Fixed a bad path regarding composer install after plugin creation\n"},"1.5.1":{"date":"03\/17\/2021","content":"1. [](#improved)\n   * Clearer instructions for composer initialization [#62](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/62)\n   * Comment out autoload subscription event by default now that Grav 1.7 is out [#62](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/62)\n"},"1.5.0":{"date":"02\/18\/2021","content":"1. [](#new)\n   * Updated CLI commands for latest standards\n   * Pass phpstan level 8 tests\n1. [](#improved)\n   * Add default configuration to an inherited theme's YAML file [getgrav\/grav-premium-issues#50](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/50)\n1. [](#bugfix)\n   * Output cmd does not correctly show colors [#56](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/issues\/56)\n"},"1.4.2":{"date":"12\/02\/2020","content":"1. [](#improved)\n    * User return typehints in plugin.php\n    * Add proper twig escapes into a new theme\n"},"1.4.1":{"date":"05\/20\/2020","content":"1. [](#improved)\n    * Make name key Composer 2.0 compatible [#48](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/48)\n1. [](#bugfix)\n    * Correct type for themes [#49](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/pull\/49)\n"},"1.4.0":{"date":"04\/27\/2020","content":"1. [](#new)\n    * Added new required `slug:` and `type:` attributes to blueprints\n1. [](#improved)\n    * Fixed plugin autoload\n"},"1.3.1":{"date":"02\/24\/2020","content":"1. [](#improved)\n    * Set `validation: loose` in plugin blueprints by default\n    * Add Grav 1.6 dependency to all new plugins and themes\n"},"1.3.0":{"date":"02\/13\/2020","content":"1. [](#improved)\n    * Added composer-based autoloader to the `new-plugin` command\n"},"1.2.4":{"date":"11\/06\/2019","content":"1. [](#improved)\n    * Added the ability to use devtools without an online connection to GPM\n1. [](#bugfix)\n    * Regression fix for missing `theme_config` in pure-blank [#45](https:\/\/github.com\/getgrav\/grav-plugin-devtools\/issues\/45)\n"},"1.2.3":{"date":"06\/20\/2019","content":"1. [](#improved)\n    * pure-blank: Use new 'deferred' blocks for header\n    * pure-blank: Use `home_url` variable\n    * pure-blank: Improved `README.md.twig`\n"}}},"cclinker":{"name":"CC-Linker","version":"0.5.3","description":"This plugin creates links\/button\/badge for cc-licences using shortcode syntax eg: ([CC by-sa])","description_html":"<p>This plugin creates links\/button\/badge for cc-licences using shortcode syntax eg: ([CC by-sa])<\/p>","description_plain":"This plugin creates links\/button\/badge for cc-licences using shortcode syntax eg: ([CC by-sa])","icon":"creative-commons","author":{"name":"Ingo Hollmann","url":"http:\/\/bughunter2k.de","email":"bughunter2k@gmail.com"},"homepage":"https:\/\/github.com\/bughunter2k\/grav-plugin-cclinker","keywords":"creative-commons, links, licence, icons, deed, cc-licence","bugs":"https:\/\/github.com\/bughunter2k\/grav-plugin-cclinker\/issues","license":"MIT","tag_name":"v0.5.3","date":"2017-01-11T20:38:19Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cclinker\/0.5.3","repository":"https:\/\/github.com\/BugHunter2k\/grav-plugin-cclinker","slug":"cclinker","install_path":"user\/plugins\/cclinker","content_sha256":"41c66f537ac5b6fd198efde33d95154353f8f8913456350747ed04ff8e7d7d1f","changelog":{"0.5.3":{"date":"01\/11\/2017","content":"1. [](#bugfix)\n    * Fixed (again): Images not working in subdirectory (#3)\n    "},"0.5.1":{"date":"05\/02\/2016","content":"1. [](#bugfix)\n    * Fixed: Images not working in subdirectory (#1)\n    "},"0.5.0":{"date":"04\/13\/2016","content":"1. [](#new)\n    * Change log started."}},"dependencies":[]},"readingtime":{"name":"Reading Time","version":"1.4.2","description":"Add human readable reading time to your pages.","description_html":"<p>Add human readable reading time to your pages.<\/p>","description_plain":"Add human readable reading time to your pages.","icon":"clock-o","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-readingtime","demo":"http:\/\/www.getgrav.org\/blog","keywords":"readingtime, plugin","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/issues","license":"MIT","tag_name":"1.4.2","date":"2026-05-05T14:08:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/readingtime\/1.4.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-readingtime","slug":"readingtime","install_path":"user\/plugins\/readingtime","content_sha256":"9517bed945916582775d38bdddc92e5e780dc321215c863995a2295e14524fd4","changelog":{"1.4.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.4.1":{"date":"05\/08\/2023","content":"1. [](#improved)   \n   * Fixed a deprecated message where `null` was being passed to `strip_tags()` function\n"},"1.4.0":{"date":"05\/13\/2020","content":"1. [](#new)\n    * Added optional features to include additional reading time for images [#16](https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/pull\/16)\n    * Started using composer\n1. [](#improved)   \n    * Added hungarian translation [#12](https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/pull\/12) \n    * Added dutch translation [#14](https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/pull\/14)\n    * PHPStan 7 fixes\n1. [](#bugfix)\n    * Fixed issue with passed in labels [#18](https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/pull\/18)\n    * Fixed plugin initialization\n"},"1.3.0":{"date":"12\/10\/2018","content":"1. [](#bugfix)\n    * Handle languages with multibyte characters [#11](https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/issues\/11)\n    "},"1.2.0":{"date":"07\/09\/2017","content":"1. [](#improved)\n    * Added spanish translation [#6](https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/pull\/6)\n    * Added czech translation [#7](https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/pull\/7)\n    * Added french translation [#4](https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/pull\/4)\n    * Added italian translation\n1. [](#bugfix)\n    * Fix plural when rounding to minutes [#5](https:\/\/github.com\/getgrav\/grav-plugin-readingtime\/issues\/5)\n"},"1.1.0":{"date":"08\/25\/2016","content":"1. [](#new)\n    * Added admin blueprints\n    * Changed strings to be based on languages codes\n"},"1.0.7":{"date":"04\/14\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"twigpcre":{"name":"twigpcre","version":"1.8.0","description":"twigpcre exposes php pcre to twig","description_html":"<p>twigpcre exposes php pcre to twig<\/p>","description_plain":"twigpcre exposes php pcre to twig","icon":"empire","author":{"name":"kesslernetworks","url":"http:\/\/www.kesslernetworks.de","email":"office@kesslernetworks.de"},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-twigpcre","keywords":"twigpcre, plugin","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-twigpcre\/issues","license":"MIT","tag_name":"1.0.0","date":"2016-03-11T15:19:28Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/twigpcre\/1.8.0","repository":"https:\/\/github.com\/kesslernetworks\/grav-plugin-twigpcre","slug":"twigpcre","install_path":"user\/plugins\/twigpcre","content_sha256":"8e0346c25b8708d18d327355a6eaef7af273db7799f255fce158f000e2ee73f9","changelog":{"1.0.0":{"date":"03\/11\/2016","content":"1. [](#new)\n    * ChangeLog started with initial release"}},"dependencies":[]},"grava11y":{"name":"Grava11y (Acccessibility for Grav)","version":"1.1.0","description":"An accessibility testing plugin for your Grav theme","description_html":"<p>An accessibility testing plugin for your Grav theme<\/p>","description_plain":"An accessibility testing plugin for your Grav theme","icon":"wheelchair","author":{"name":"Lawrence Meckan","url":"https:\/\/www.absalom.biz","email":"media@absalom.biz"},"homepage":"https:\/\/github.com\/absalomedia\/grav-plugin-grava11y","keywords":"plugin, frontend, accessibility, khan","bugs":"https:\/\/github.com\/absalomedia\/grav-plugin-grava11y\/issues","license":"MIT","tag_name":"1.1.0","date":"2019-07-01T22:23:03Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/grava11y\/1.1.0","repository":"https:\/\/github.com\/absalomedia\/grav-plugin-grava11y","slug":"grava11y","install_path":"user\/plugins\/grava11y","content_sha256":"8c819320fa71a83df1751a84813e32218cc376a1440aec6bc45e5db040d360ec","changelog":{"1.1.0":{"date":"07\/01\/2019","content":"1. [](#update)\n    * Update to Khan version 0.2.0\n    * Switch from Github to UnPKG as GH no longer serves distribution JS\n\n"},"1.0.2":{"date":"02\/13\/2017","content":"1. [](#update)\n    * Update to Khan version 0.1.6\n"},"1.0.1":{"date":"05\/23\/2016","content":"1. [](#update)\n    * Update to Khan version 0.1.5\n\n"},"1.0.0":{"date":"03\/07\/2016","content":"1. [](#new)\n    * First Release"}},"dependencies":[]},"events":{"name":"Events","version":"1.1.9","description":"The **Events** plugin provides events for a Grav site using event frontmatter.","description_html":"<p>The <strong>Events<\/strong> plugin provides events for a Grav site using event frontmatter.<\/p>","description_plain":"The Events plugin provides events for a Grav site using event frontmatter.","icon":"calendar","author":{"name":"Michael","email":"pikim@web.de"},"dependencies":[{"name":"datetools","version":"*"},{"name":"translate-date","version":"*"}],"homepage":"https:\/\/github.com\/pikim\/grav-plugin-events","keywords":"events, calendar, ics, plugin","bugs":"https:\/\/github.com\/pikim\/grav-plugin-events\/issues","license":"MIT","tag_name":"1.1.9","date":"2023-12-11T19:43:51Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/events\/1.1.9","repository":"https:\/\/github.com\/pikim\/grav-plugin-events","slug":"events","install_path":"user\/plugins\/events","content_sha256":"94afbbe615329bb6a35df1ac56e14708a68c52b5dd7c98faa493a043361176c2","changelog":{"1.1.9":{"date":"12\/11\/2023","content":"1. [](#new)\n    * PHP8 support (tested with PHP 8.3)\n    * add support for multi-language ics files (summary, description & location)\n    * add admin option to select repeating\/recurring iCal event handling\n    * use translate-date plugin for date translation\n    * add some more fields\n2. [](#bugfix)\n    * some fixes\n3. [](#improved)\n    * update dependencies\n    * revise repeating and recurring events handling for virtual events\n\t* revise iCal date\/time parsing and timezone handling\n    * some more translations\n    * some more documentation\n    * some other minor improvements\n"},"1.1.8":{"date":"01\/03\/2023","content":"1. [](#bugfix)\n    * fix event blueprint\n2. [](#improved)\n    * shorten todays URL in calendar header\n"},"1.1.7":{"date":"12\/26\/2022","content":"1. [](#bugfix)\n    * fix day\/month name length selection\n"},"1.1.6":{"date":"12\/21\/2022","content":"1. [](#new)\n    * french and italian translation\n    * support open doors\n    * support tickets\n    * allow length adjustment of day and month names\n    * button for ical recreation selection\n2. [](#improved)\n    * removed bourbon and neat\n    * some minor things and reorderings\n3. [](#bugfix)\n    * |raw filter\n    * line endings\n"},"1.1.5":{"date":"07\/20\/2020","content":"1. [](#new)\n    * merged code from https:\/\/github.com\/pikim\/grav-plugin-events\/pull\/12\n    * merged code from https:\/\/github.com\/pikim\/grav-plugin-events\/pull\/16\n2. [](#improved)\n    * some reordering\n3. [](#bugfix)\n    * fixed https:\/\/github.com\/pikim\/grav-plugin-events\/issues\/8 by adding default cases to switch statements\n    * merged code from https:\/\/github.com\/pikim\/grav-plugin-events\/pull\/11\n"},"1.1.4":{"date":"02\/16\/2020","content":"1. [](#improved)\n    * updated dependencies\n    * some minor layout changes\n3. [](#bugfix)\n    * fixed date translation issue (https:\/\/github.com\/pikim\/grav-plugin-events\/issues\/5)\n    * fixed geocoding issue (https:\/\/github.com\/pikim\/grav-plugin-events\/issues\/4)\n    * fixed an issue with the calendar table height, table is now fully shown\n    * fixed years in changelog\n"},"1.1.3":{"date":"01\/15\/2020","content":"1. [](#improved)\n    * cleaned up settings, made more dates and times formatable, removed some obsolete code\n"},"1.1.2":{"date":"01\/14\/2020","content":"1. [](#improved)\n    * merged code from https:\/\/github.com\/ChrisGitIt\/grav-plugin-events\/commit\/b1296cfd066b40b55a7fe18d831732526946b0bc and https:\/\/github.com\/ChrisGitIt\/grav-plugin-events\/commit\/63cef2dc3690229651c8cf458dcc6a2af6320357\n    * merged code from https:\/\/github.com\/bmrankin\/grav-plugin-events\/commit\/ea778ebaf9dc5b81dedcbcd4fa65bc32d2adcd17\n    * added message for virtual folder usage\n    * merged fix from https:\/\/github.com\/pikim\/grav-plugin-events\/pull\/2\n3. [](#bugfix)\n    * fixed code from https:\/\/github.com\/kalebheitzman\/grav-plugin-events\/pull\/48\/commits\/8455f71826f74bda299486772d269468c6ed4347\n    * merged fix from https:\/\/github.com\/maelanleborgne\/grav-plugin-events\/commit\/8005044f5db0b760fbf74cbff6e4e175f09d5675\n    * fixed issue from https:\/\/discourse.getgrav.org\/t\/there-is-no-direct-support-at-github-for-events-plugin\/10733\n    * merged fix from https:\/\/github.com\/pikim\/grav-plugin-events\/pull\/1\n    * merged fix from https:\/\/github.com\/pikim\/grav-plugin-events\/pull\/3\n"},"1.1.1":{"date":"10\/05\/2019","content":"1. [](#improved)\n    * updated dependencies\n3. [](#bugfix)\n    * merged fix from https:\/\/github.com\/u01jmg3\/ics-parser\/issues\/238#issuecomment-527717558\n"},"1.1.0":{"date":"08\/15\/2019","content":"1. [](#new)\n    * added ics file parsing\n    * added German translation\n    * merged some code from several pull requests and known issues\n2. [](#improved)\n    * removed unused elements from admin site and added some new\n    * revised templates and CSS\n    * updated dependencies\n    * some minor changes\n3. [](#bugfix)\n    * fixed translation of weekdays\n"},"1.0.16":{"date":"12\/25\/2016","content":"1. [](#new)\n\t* Added the ability to add date exceptions to events\n1. [](#improved)\n\t* More intuitive calendar navigation\n"},"1.0.15":{"date":"10\/02\/2016","content":"1. [](#new)\n\t* Added a location field with auto geo-decoded coordinates from address\n\t* New visual styles and templates for calendar and events\n\t* Calendar shows a modal when clicking on a day so the end user can see every event that day.\n\t* French language translation has been added\n1. [](#improved)\n\t* Cleaned up plugin blueprint but preserved old options in comments\n\t* The events processor has been rewritten from the ground up to use Page and Collection objects instead of a custom tokenized array for serving pages.\n\t* Atoum testing framework has been added to the plugin and I'll be writing tests in the near future.\n"},"1.0.14":{"date":"09\/15\/2016","content":"1. [#bugfix]\n\t* Issue #25 - Variable not initialized throws error in for loop.\n"},"1.0.13":{"date":"08\/19\/2016","content":"1. [](#new)\n\t* Added Events sidebar with events listing\n1. [](#bugfix)\n\t* Issue #21 - Admin form now automatically shows up\n\t* Fixed event template types in blueprints.\n\t* Fixed monthly frequency dates.\n\t* Fixed doubling of events.\n\t* Fixed repeat rules.\n\t* Removed uncoded show future events toggle\n"},"1.0.12":{"date":"08\/18\/2016","content":"1. [](#new)\n\t* Issue #24 - Added German translation from @aender6840\n"},"1.0.11":{"date":"08\/12\/2016","content":"1. [](#new)\n\t* [microformats2](http:\/\/microformats.org) support\n\t* Dates are now translated in the `event_item` template, if `events.date_format.translate` setting\n"},"1.0.10":{"date":"07\/04\/2016","content":"1. [](#bugfix)\n\t* Bumped version number\n"},"1.0.9":{"date":"07\/04\/2016","content":"1. [](#improved)\n\t* Added start and end times to calendar template\n\t* Added demo link that points to the start for this calendar (advance forward to see new events, etc)\n\t* Added a link to a github repo to see Event configuration under the user\/pages Grav directory\n1. [](#bugfix)\n\t* Issue #13 - Wrong link in read me for demo site.\n\t* Issue #15 - Current day in current month only (not multiple months)\n\t* Issue #16 - Update for Grav 1.1 fixed with 1.0.4 DateTools plugin\n"},"1.0.8":{"date":"03\/15\/2016","content":"1. [](#bugfix)\n\t* Issue #8 - Fixed unset arrays causing fatal error\n"},"1.0.7":{"date":"03\/14\/2016","content":"1. [](#improved)\n\t* Templates now reflect default Grav Antimatter Theme\n1. [](#bugfix)\n\t* Issue #7 - Event repeating once a week not rendedered correctly\n\t* Issue #6 - Media now being displayed with each dynamic event\n"}}},"shoppingcart-stripe":{"name":"Shopping Cart Stripe Addon","version":"1.1.1","description":"Add Stripe checkout to the Grav Shopping Cart Plugin","description_html":"<p>Add Stripe checkout to the Grav Shopping Cart Plugin<\/p>","description_plain":"Add Stripe checkout to the Grav Shopping Cart Plugin","icon":"shopping-cart","author":{"name":"Flavio Copes","url":"https:\/\/flaviocopes.com","email":"copesc@gmail.com"},"dependencies":[{"name":"shoppingcart","version":"~1.1"}],"homepage":"https:\/\/gravcart.com","keywords":"shoppingcart, ecommerce, e-commerce, plugin, shop, cart, stripe","bugs":"https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues","license":"MIT","tag_name":"1.1.1","date":"2016-12-18T17:38:57+01:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shoppingcart-stripe\/1.1.1","repository":"https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart-stripe","slug":"shoppingcart-stripe","install_path":"user\/plugins\/shoppingcart-stripe","content_sha256":"4ab66124f986c3101648455dcb6c052d72b43f71b264d7ea48ecf45ff72af46b","changelog":{"1.1.1":{"date":"18-12-2016","content":"1. [](#bugfix)\n    * Fix 404 error #1 https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/40\n"},"1.1.0":{"date":"05-12-2016","content":"1. [](#new)\n    * 1.1 released\n"},"1.1.0-beta.3":{"date":"09-08-2016","content":"1. [](#bugfix)\n    * Fix issue with Stripe amount format\n    * Fix issue in `enabled` state conflicting with main plugin\n"},"1.1.0-beta.2":{"date":"30-04-2016","content":"1. [](#new)\n    * Use the new URL callback structure for ShoppingCart 1.1\n    * Namespace\n    * Update dependencies\n"},"1.0.5":{"date":"28-04-2016","content":"1. [](#bugfix)\n    * Fix issue with gateway class include if not symlinked\n"},"1.0.4":{"date":"21-04-2016","content":"1. [](#bugfix)\n    * Fix the dependencies format\n"},"1.0.3":{"date":"21-04-2016","content":"1. [](#bugfix)\n    * Fix the dependencies format\n"},"1.0.2":{"date":"20-03-2016","content":"1. [](#bugfix)\n    * Fix issue with require\n"},"1.0.1":{"date":"01-03-2016","content":"1. [](#bugfix)\n    * Move Checkout js from main plugin\n"},"1.0.0":{"date":"07-02-2016","content":"1. [](#new)\n    * First release of the Stripe Plugin"}}},"shoppingcart-paypal":{"name":"Shopping Cart PayPal Express Addon","version":"1.1.2","description":"Add PayPal Express checkout to the Grav Shopping Cart Plugin. Requires a PayPal Premier \/ Business account.","description_html":"<p>Add PayPal Express checkout to the Grav Shopping Cart Plugin. Requires a PayPal Premier \/ Business account.<\/p>","description_plain":"Add PayPal Express checkout to the Grav Shopping Cart Plugin. Requires a PayPal Premier \/ Business account.","icon":"shopping-cart","author":{"name":"Flavio Copes","url":"https:\/\/flaviocopes.com","email":"copesc@gmail.com"},"dependencies":[{"name":"shoppingcart","version":"~1.1"}],"homepage":"https:\/\/gravcart.com","keywords":"shoppingcart, ecommerce, e-commerce, plugin, shop, cart, paypal","bugs":"https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues","license":"MIT","tag_name":"1.1.2","date":"2016-12-22T10:35:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shoppingcart-paypal\/1.1.2","repository":"https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart-paypal","slug":"shoppingcart-paypal","install_path":"user\/plugins\/shoppingcart-paypal","content_sha256":"851e9973c60d386706047f08d07e9592a11639d1b7a69758bc1f5d5b6daebe5f","changelog":{"1.1.2":{"date":"22-12-2016","content":"1. [](#new)\n    * Allow PayPal to list the items in its transaction details\n"},"1.1.1":{"date":"11-12-2016","content":"1. [](#new)\n    * Pass items information to PayPal. Also store taxes in the order.\n"},"1.1.0":{"date":"05-12-2016","content":"1. [](#new)\n    * 1.1 released\n"},"1.1.0-beta.2":{"date":"30-04-2016","content":"1. [](#new)\n    * Use the new URL callback structure for ShoppingCart 1.1\n"},"1.0.2":{"date":"21-04-2016","content":"1. [](#bugfix)\n    * Use correct currency value\n    * Use correct dependencies format for Grav 1.1\n    * Add test mode setting\n"},"1.0.1":{"date":"28-02-2016","content":"1. [](#new)\n    * Move OpenSSL message to exception in the main class, to make it clear you need to update it to use the plugin\n"},"1.0.0":{"date":"07-02-2016","content":"1. [](#new)\n    * First release of the PayPal Express Plugin"}}},"rubytext":{"name":"Markdown RubyText","version":"3.1.4","description":"Adds ability to output ruby tag text in Markdown","description_html":"<p>Adds ability to output ruby tag text in Markdown<\/p>","description_plain":"Adds ability to output ruby tag text in Markdown","icon":"language","author":{"name":"Fran\u00e7ois VIDIT","url":"https:\/\/francois-vidit.com","email":"francois.vidit@laposte.net"},"homepage":"https:\/\/github.com\/tidiview\/grav-plugin-markdown-rubytext","docs":"https:\/\/github.com\/tidiview\/grav-plugin-markdown-rubytext\/blob\/master\/README.md","demo":"https:\/\/francois-vidit.com\/blog\/ja\/psyche","keywords":"grav, plugin, markdown, &#34;HTML  Tag&#34;, html5, ruby annotation","bugs":"https:\/\/github.com\/tidiview\/grav-plugin-markdown-rubytext\/issues","license":"MIT","tag_name":"3.1.4","date":"2017-12-25T18:49:07Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/rubytext\/3.1.4","repository":"https:\/\/github.com\/tidiview\/grav-plugin-markdown-rubytext","slug":"rubytext","install_path":"user\/plugins\/rubytext","content_sha256":"5e975b9ddd0403a6e70287acd90c7e27896d9bbf798f2eebada838c6e90882c0","changelog":{"3.1.4":{"date":"25\/12\/2017","content":"[](#improved)\n   * improved efficiency of HTML output getting rid of unecessary \\<rb\\> HTML tag\n   * changed example link\n"},"3.0.0":{"date":"07\/10\/2017","content":"[](#new)\n   * added possibility to set lang attributes to \\<ruby\\> and \\<rt\\> HTML tags.\n   * BREAKING CHANGE: removed valid syntax up until v1.3.1 `{r}text{\/r:annotation}`\n\n   \\>\\>\\> UPDATING CAUTION: it won't work anymore!\n\n   NEW SYNTAX is now: `{r}text(annotation)text2{annotation2)text3{annotation3}{\/r}`\n"},"2.0.0":{"date":"04\/10\/2017","content":"[](#new)\n   * added possibility to make serial ruby\n"},"1.3.1":{"date":"03\/09\/2017","content":"[](#new)\n   * added links to demo page, repo and changelog\n"},"1.3.0":{"date":"02\/09\/2017","content":"[](#fix)\n   * improved UTF-8 compatibility with php local development for multibytes strings in function pregmatch\n"},"1.2.0":{"date":"17\/08\/2017","content":"[](#new)\n   * improved regex syntax so that space is no longer needed before {r}..{\/r:..} (special thanks to: huesersohn)\n   * changed CHANGELOG to show changes of v1.1.0\n"},"1.1.0":{"date":"01\/02\/2017","content":"[](#new)\n   * added <rp> tag in the output structure for better compatibility with non ruby browsers\n"},"1.0.0":{"date":"10\/02\/2016","content":"[](#new)\n   * added picture of standart display\n\n## 01\/12\/2016\n[](#new)\n   * ChangeLog started..."}},"dependencies":[]},"minicode":{"name":"Mini Code","version":"1.1.0","description":"Output tiny html code (or text) from file. Use twig filter.","description_html":"<p>Output tiny html code (or text) from file. Use twig filter.<\/p>","description_plain":"Output tiny html code (or text) from file. Use twig filter.","icon":"sticky-note-o","author":{"name":"Takefumi Ota","url":"http:\/\/gracix.com","email":"taketakegogo@gmail.com"},"homepage":"https:\/\/github.com\/gracix\/grav-plugin-minicode","keywords":"snippet, minicode, html, plugin, shortcode","bugs":"https:\/\/github.com\/gracix\/grav-plugin-minicode\/issues","license":"MIT","tag_name":"1.1.0","date":"2016-02-10T06:45:29Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/minicode\/1.1.0","repository":"https:\/\/github.com\/gracix\/grav-plugin-minicode","slug":"minicode","install_path":"user\/plugins\/minicode","content_sha256":"e8bac1e2f4f0544b7d81cb8a9e70a4287b29558b08e2a4596e97f341086f7ea6","changelog":{"1.1.0":{"date":"2016\/02\/09","content":"1. [](#new)\n    * Rename plugin snippet to minicode.\n\n"},"1.0.0":{"date":"2016\/02\/09","content":"1. [](#new)\n    * First release version.\n"},"0.9.0":{"date":"2016\/02\/09","content":"1. [](#new)\n    * Change all codes to match of twig extension.\n    * Add config about data directory path.\n"},"0.8.0":{"date":"2016\/02\/08","content":"1. [](#new)\n    * ChangeLog Started."}},"dependencies":[]},"import":{"name":"Import","version":"1.1.1","description":"Allows importing of user-defined YAML and JSON files to facilitate custom actions\/settings","description_html":"<p>Allows importing of user-defined YAML and JSON files to facilitate custom actions\/settings<\/p>","description_plain":"Allows importing of user-defined YAML and JSON files to facilitate custom actions\/settings","icon":"paperclip","author":{"name":"Aaron Dalton","url":"https:\/\/www.perlkonig.com","email":"aaron@daltons.ca"},"homepage":"https:\/\/github.com\/Perlkonig\/grav-plugin-import","demo":"https:\/\/perlkonig.com\/demos\/import","keywords":"plugin, import, yaml, json, files","bugs":"https:\/\/github.com\/Perlkonig\/grav-plugin-import\/issues","license":"MIT","tag_name":"v1.1.1","date":"2018-06-21T13:53:52Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/import\/1.1.1","repository":"https:\/\/github.com\/Perlkonig\/grav-plugin-import","slug":"import","install_path":"user\/plugins\/import","content_sha256":"5ec018d284b54230bd3b898f0fbaf48bef290e1b16e21b95d611814dafe89b48","changelog":{"1.1.1":{"date":"06\/21\/2018","content":"1. [](#bugfix)\n    * Fixed `json_decode` to load associative arrays for looping (thanks to @tremel).\n"},"1.1.0":{"date":"11\/05\/2016","content":"1. [](#new)\n    * Now supports JSON importing\n    * Can load data from `user\/data` folder now as well\n2. [](#bugfix)\n    * Thanks to @onionradish for fixing a typo that impacted loading single files.\n"},"1.0.0":{"date":"01\/28\/2016","content":"1. [](#new)\n    * Initial release of the Import Plugin (Yay!)\n1. [](#improved)\n    * Changed from `onPageContentRaw` event hook, to `onPageInitialized` event hook to run even if the page is cached"}},"dependencies":[]},"view":{"name":"View","version":"1.3.2","description":"A plugin that allows you to pass a page collection to a template.","description_html":"<p>A plugin that allows you to pass a page collection to a template.<\/p>","description_plain":"A plugin that allows you to pass a page collection to a template.","icon":"cog","author":{"name":"Elliot Mitchum","url":"https:\/\/github.com\/ellioseven","email":"elliot.mitchum@ellioseven.com"},"homepage":"https:\/\/github.com\/ellioseven\/grav-plugin-view","keywords":"view, collection, modular","bugs":"https:\/\/github.com\/ellioseven\/grav-plugin-view\/issues","license":"MIT","tag_name":"1.3.4","date":"2017-11-10T03:31:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/view\/1.3.2","repository":"https:\/\/github.com\/ellioseven\/grav-plugin-view","slug":"view","install_path":"user\/plugins\/view","content_sha256":"10a4349d4f4f9dc2cd41922a1b4539a96f87966b063ab0b51a010ae812ca62eb","changelog":{"1.3.4":{"date":"11\/10\/2017","content":"1. [](#new)\n    * Added an overview video to README.md\n1. [](#improved)\n    * Type checking hooks\n"},"1.3.3":{"date":"07\/30\/2016","content":"1. [](#bugfix)\n    * Pass a string to scanBlueprints instead of an array\n"},"1.3.2":{"date":"02\/14\/2016","content":"1. [](#bugfix)\n    * Fix default items in params if no params are set\n    * Fixed documentation typos\n"},"1.3.1":{"date":"02\/08\/2016","content":"1. [](#new)\n    * Added support for pagination\n    * Added getParams method to parse params\n    * Added getCollection method to get view collection\n    * Added filter field to filter collection to selected page children\n1. [](#improved)\n    * Rename view.page field to view.reference to avoid confusion\n    * Rename view.item to view.collection to avoid confusion\n    * Using twig vars instead of dynamic header vars\n    * Removed pagination field\n    * Show root in modular template field\n    * Removed all logic from view.html.twig\n1. [](#bugfix)\n    * Check for malformed yaml before parsing\n"},"1.1.2":{"date":"02\/06\/2016","content":"1. [](#improved)\n    * Cleaner modular template by changing passed variables\n1. [](#bugfix)\n    * Check for view header before parsing variables in view.php\n    * Fixed parsing of settings in view.html.twig\n"},"1.1.1":{"date":"01\/25\/2016","content":"1. [](#improved)\n    * Fixed default template not being called.\n"},"1.1.0":{"date":"01\/25\/2016","content":"1. [](#improved)\n    * Removed param merge with referencing page.\n"},"1.0.0":{"date":"01\/23\/2016","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"gosquared":{"name":"GoSquared Analytics","version":"0.1.6","description":"GoSquared Analytics plugin lets you easily add the GoSquared Analytics platform to your GRAV website.","description_html":"<p>GoSquared Analytics plugin lets you easily add the GoSquared Analytics platform to your GRAV website.<\/p>","description_plain":"GoSquared Analytics plugin lets you easily add the GoSquared Analytics platform to your GRAV website.","icon":"bar-chart","author":{"name":"Craig Phillips","url":"http:\/\/craigphillips.biz","email":"support@craigphillips.biz"},"homepage":"https:\/\/github.com\/cppl\/grav-gosquared","docs":"https:\/\/github.com\/cppl\/grav-gosquared\/blob\/master\/README.md","keywords":"gosquared, plugin, tracking, analytics","bugs":"https:\/\/github.com\/cppl\/grav-gosquared\/issues","license":"MIT","tag_name":"0.2.0","date":"2018-01-12T04:36:51Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/gosquared\/0.1.6","repository":"https:\/\/github.com\/CPPL\/grav-gosquared","slug":"gosquared","install_path":"user\/plugins\/gosquared","content_sha256":"8a8f0925d4c92620443e49c9b098caefbba1de48d5810faa5df0708612b926ad","changelog":{"0.2.0":{"date":"12-01-2018","content":"1. [](#new)\n    * Added late loading of GoSquared inline JS (uses templates 'bottom' group for JS)\n"},"0.1.6":{"date":"19-06-2017","content":"1. [](#improved)\n    * Moved to using a language.yaml file\n"},"0.1.5":{"date":"23-03-2017","content":"1. [](#improved)\n    * Fixed typo in blueprints for enable button highlight\n"},"0.1.4":{"date":"23-03-2017","content":"1. [](#improved)\n    * Fix copy paste mistakes in changelog entries\n"},"0.1.3":{"date":"20-03-2017","content":"1. [](#improved)\n    * Fix formatting on changelog entries\n    * Fix docs label in blueprint\n"},"0.1.2":{"date":"20-03-2017","content":"1. [](#improved)\n    * Updates to blueprints.yaml to improve listing\n    * Updates to contact email and URL\n    * Updates to Changelog.md to bring it inline with GRAV format.\n"},"0.1.1":{"date":"19-03-2017","content":"1. [](#improved)\n    * Minor fixes to the ReadMe.md\n"},"0.1.0":{"date":"25-01-2016","content":"1. [](#new)\n    * Initial version"}},"dependencies":[]},"shortcode-core":{"name":"Shortcode Core","version":"6.2.3","description":"This plugin provides the core functionality for shortcode plugins","description_html":"<p>This plugin provides the core functionality for shortcode plugins<\/p>","description_plain":"This plugin provides the core functionality for shortcode plugins","icon":"code","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.32"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-core","demo":"http:\/\/learn.getgrav.org","keywords":"gui, plugin, tabs, twig","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-core\/issues","license":"MIT","tag_name":"6.2.3","date":"2026-07-22T04:36:36Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-core\/6.2.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-core","slug":"shortcode-core","install_path":"user\/plugins\/shortcode-core","content_sha256":"09d3d14c63b70325074125a1fd1fca03e3205a7a532b1f1da0bd2e700951a679","changelog":{"6.2.3":{"date":"07\/21\/2026","content":"1. [](#improved)\n    * Stopped committing the bundled editor's developer build lockfile that raised dependency vulnerability alerts in projects tracking the plugin; the running site is unaffected.\n"},"6.2.2":{"date":"07\/02\/2026","content":"1. [](#bugfix)\n    * [security] Shortcode parameters that set an element's color, size, id, class or style are now escaped when written into the page, closing a stored cross-site scripting hole where a crafted value could break out of the attribute and run script in a visitor's or an administrator's browser ([GHSA-q5fw-vpqc-fgph](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-q5fw-vpqc-fgph)).\n"},"6.2.1":{"date":"06\/29\/2026","content":"1. [](#bugfix)\n    * Fixed the `[safe-email]` shortcode producing a broken, double-wrapped link when Grav's GFM autolinker had already turned the bare address into a mailto link.\n"},"6.2.0":{"date":"06\/24\/2026","content":"1. [](#improved)\n    * Renamed the `TarsParser` added in 6.1.0 to `HybridParser`, a name that better describes how it works: one regex pass lexes every tag, then a stack-based pass resolves nesting. It pairs RegexParser's speed with RegularParser's correctness.\n    * Made `hybrid` the default parser for new installs and renamed the matching Processor dropdown option in the plugin settings.\n    * Kept the old `tars` setting working. Sites that selected it keep running unchanged, the value now resolves to `HybridParser` automatically, so no config edits are needed.\n"},"6.1.0":{"date":"06\/21\/2026","content":"1. [](#new)\n    * Added the new `TarsParser`, which matches the Regular parser's correctness but runs several times faster and uses less memory.\n    * Made Tars the default parser for new installs, selectable from the Processor dropdown in the plugin settings.\n"},"6.0.0":{"date":"06\/17\/2026","content":"1. [](#new)\n    * Added a Shortcode Builder that lets you define your own shortcodes in config, each backed by a Twig template or an inline output snippet, with no plugin or PHP class needed.\n    * Added a dedicated Shortcode Builder tab to the plugin settings that works in both the classic admin and Admin Next.\n    * Added two starter Shortcode Builder examples, a template-backed `[callout]` and an inline `[badge]`, that you can edit or remove.\n    * Added a `[translate]KEY[\/translate]` shortcode that looks up a language string, the safe in-content replacement for `{{ 'KEY'|t }}` when Twig in content is disabled.\n    * Added a `[uri param=\"foo\" \/]` shortcode that prints a value from the current URL with its output HTML-escaped by default, the safe in-content replacement for `{{ uri.param('foo') }}`.\n"},"5.4.0":{"date":"05\/07\/2026","content":"1. [](#new)\n    * Added `[read-file file=\"theme:\/\/...\" \/]` shortcode that includes the contents of a Grav-stream-resolved file into the page. Delegates to `Grav\\Common\\Helpers\\FileReader::read()` (Grav 2.0.0-rc.2+), so it inherits the same hardening as the Twig `read_file()` function: stream-only paths, `security.read_file.allowed_streams` allow-list, extension allow-list, canonical realpath containment, and max size cap. Registered as a *raw* handler so it runs before Markdown \u2014 included `.md` files become part of the page's Markdown source and render normally; HTML \/ SVG \/ JSON pass through verbatim. Companion to the Grav 2 sandbox change that drops `read_file` from the default Twig sandbox allowlist: this shortcode is the supported way to inline file content from page content. The plugin's Grav 1.7 compatibility is preserved \u2014 on 1.7 the helper isn't present, so the shortcode emits an HTML comment (`<!-- [read-file] requires Grav >= 2.0.0-rc.2 -->`) instead of leaking as literal text. Themes targeting 1.7 should keep using the legacy Twig `read_file()` function from page content.\n"},"5.3.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"5.3.1":{"date":"12\/23\/2025","content":"1. [](#new)\n    * Added a new `resetStates()` method to clear memory manually\n    * Added new `shortcode_force_frontend` twig variable to force frontend processing\n"},"5.3.0":{"date":"08\/25\/2025","content":"1. [](#new)\n    * Editor Pro (upcoming premium plugin) support for all core shortcodes\n"},"5.2.1":{"date":"01\/06\/2025","content":"1. [](#improved)\n    * Updated to latest Shortcode library v0.7.6 with PHP 8.4 support\n"},"5.2.0":{"date":"06\/02\/2024","content":"1. [](#new)\n   * Added the ability to display a section from another page. See README.txt for example\n1. [](#bugfix)\n   * Fix for `lorem` shortcode that broke when count was provided\n"},"5.1.3":{"date":"06\/01\/2022","content":"1. [](#improved)\n   * Added a new `display` CLI command to show all registered shortcodes\n\n"},"5.1.2":{"date":"05\/10\/2022","content":"1. [](#bugfix)\n    * Upgraded `thunderer\/shortcode` to 0.7.5 to address a security issue\n"},"5.1.1":{"date":"01\/11\/2022","content":"1. [](#improved)\n    * Improved Twig 2 support\n    * Bugfixes to support latest NextGen version (v1.1.8)\n"},"5.1.0":{"date":"12\/09\/2021","content":"1. [](#new)\n   * Notice shortcode now uses a twig template to allow for easy overriding of style\n1. [](#improved)\n   * Updated vendor libraries to latest\n"},"5.0.7":{"date":"09\/28\/2021","content":"1. [](#improved)\n    * Added `processShortcodesRaw()` using raw_handlers [#104](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-core\/pull\/104)\n    * Better vertical alignment for inline shortcodes in NextGen Editor\n1. [](#bugfix)\n    * NextGen Editor: Ensure content of children shortcode elements, such as UI Tab content, have a new empty line as prefix and suffix, to ensure Markdown lists are not lost [getgrav\/grav-premium-issues#123](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/123)\n"},"5.0.6":{"date":"04\/27\/2021","content":"1. [](#improved)\n    * Added the ability to enable\/disable built-in notice CSS\n    * NextGen Editor: Added support for multiple editor instances\n"},"5.0.5":{"date":"03\/12\/2021","content":"1. [](#bugfix)\n    * `SafeEmailShortcode` fixed to be compatible with PHP 7.4\n    * Addresses shortcodes getting repeated in modular subpages [#101](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-core\/pull\/101)\n"},"5.0.4":{"date":"01\/26\/2021","content":"1. [](#bugfix)\n   * NextGen Editor: Fixed regexp regression preventing multiple shortcodes to be parsed in certain circumstances\n"}}},"shortcode-ui":{"name":"Shortcode UI","version":"3.1.1","description":"This plugin provides several UI shortcodes","description_html":"<p>This plugin provides several UI shortcodes<\/p>","description_plain":"This plugin provides several UI shortcodes","icon":"code","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.42"},{"name":"shortcode-core","version":">=5.3.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-ui","demo":"http:\/\/learn.getgrav.org","keywords":"ui, plugin, tabs","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-ui\/issues","license":"MIT","tag_name":"3.1.1","date":"2026-05-05T14:09:30Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcode-ui\/3.1.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-shortcode-ui","slug":"shortcode-ui","install_path":"user\/plugins\/shortcode-ui","content_sha256":"7fa8b45abf50a7a7fe3417b15328c1df0fed05ce1ed87f49a00a7c065309da12","changelog":{"3.1.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"3.1.0":{"date":"08\/25\/2025","content":"1. [](#new)\n    * Added support for **Editor Pro** integration with Shortcode UI custom blocks\n1. [](#improved)\n    * Improved Twig 2 support\n"},"3.0.1":{"date":"12\/16\/2021","content":"1. [](#bugfix)\n    * Various minor **ImageCompare** fixes\n"},"3.0.0":{"date":"11\/04\/2020","content":"1. [](#new)\n    * Support for **NextGen Editor** integration with Shortcode UI custom blocks\n"},"2.4.2":{"date":"04\/27\/2020","content":"1. [](#bugfix)\n    * Fix image compare shortcode regex [#34](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-ui\/pull\/34)\n"},"2.4.1":{"date":"02\/14\/2020","content":"1. [](#new)\n    * Updated code for shortcode-core plugin v4.2.1\n"},"2.4.0":{"date":"02\/11\/2020","content":"1. [](#new)\n    * Pass phpstan level 1 tests\n    * Requires shortcode-core plugin v4.2.0\n    * Twig 2.0 compatibility\n1. [](#improved)\n    * Code cleanup\n"},"2.3.0":{"date":"02\/06\/2019","content":"1. [](#bugfix)\n    * Resoled issue with fixed height of `Accordion` shortcode [#20](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-ui\/issues\/20)\n    * PHP 7.2 Fix for `AnimatedText` shortcode \n"},"2.2.5":{"date":"05\/16\/2017","content":"1. [](#bugfix)\n    * Resoled issue with fixed height of accordion [#20](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-ui\/issues\/20)\n"},"2.2.4":{"date":"04\/25\/2017","content":"1. [](#improved)\n    * Added the ability to set `class=\"\"` on the `ui-callout` shortcode [#19](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-ui\/pull\/19)\n    * Allow the ability to set an `id=\"\"\"` on tabs [#16](https:\/\/github.com\/getgrav\/grav-plugin-shortcode-ui\/pull\/16)\n"},"2.2.3":{"date":"03\/04\/2017","content":"1. [](#bugfix)\n    * Fixed a `z-index` issue in `AccordionShortcode`\n    "},"2.2.2":{"date":"03\/04\/2017","content":"1. [](#bugfix)\n    * Renamed `AccordionShortcode` to avoid conflict with `GravStrap` plugin.\n"},"2.2.1":{"date":"03\/03\/2017","content":"1. [](#bugfix)\n    * Typo! Renamed `accordian` to `accordion`\n"},"2.2.0":{"date":"03\/02\/2017","content":"1. [](#new)\n    * Added new `accordian` shortcode\n"},"2.1.0":{"date":"02\/25\/2017","content":"1. [](#new)\n    * Added new `polaroid` shortcode\n1. [](#bugfix)\n    * Add support for autoescaping in Twig\n"},"2.0.0":{"date":"02\/11\/2016","content":"1. [](#improved)\n    * Refactored to work with `shortcode-core` v2.0.0\n"},"1.0.1":{"date":"01\/18\/2016","content":"1. [](#improved)\n    * Added a 'shortcode-core' dependency\n"},"1.0.0":{"date":"01\/18\/2016","content":"1. [](#new)\n    * ChangeLog started..."}}},"httpbasicauth":{"name":"HTTP Basic Authentication","version":"1.0.0","description":"Enables usage of basic authentication.","description_html":"<p>Enables usage of basic authentication.<\/p>","description_plain":"Enables usage of basic authentication.","icon":"sign-in","author":{"name":"lithrel","url":"http:\/\/braindump.randomdomainname.net","email":"lithrel@randomdomainname.net"},"dependencies":[{"name":"login","version":"*"}],"homepage":"https:\/\/github.com\/lithrel\/grav-plugin-httpbasicauth","keywords":"login, authentication","bugs":"https:\/\/github.com\/lithrel\/grav-plugin-httpbasicauth\/issues","license":"DBAD","tag_name":"1.0.0","date":"2016-01-08T16:31:29Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/httpbasicauth\/1.0.0","repository":"https:\/\/github.com\/lithrel\/grav-plugin-httpbasicauth","slug":"httpbasicauth","install_path":"user\/plugins\/httpbasicauth","content_sha256":"4706e30213055241a12b48322913e36a6198ca70576905c592d97026c11672a1","changelog":{"1.0.0":{"date":"07\/01\/2016","content":"1. [](#new)\n    * ChangeLog started..."}}},"metrika":{"name":"Yandex Metrika","version":"1.0.0","description":"Yandex Metrika plugin allows you easily add metrika tracker to your grav website","description_html":"<p>Yandex Metrika plugin allows you easily add metrika tracker to your grav website<\/p>","description_plain":"Yandex Metrika plugin allows you easily add metrika tracker to your grav website","icon":"yahoo","author":{"name":"Al Ganiev","email":"helios.ag@gmail.com"},"homepage":"https:\/\/github.com\/helios-ag\/grav-metrika","keywords":"yandex, plugin, tracking, metrika, analytics","bugs":"https:\/\/github.com\/helios-ag\/grav-metrika\/issues","license":"MIT","tag_name":"1.1","date":"2019-01-28T01:04:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/metrika\/1.0.0","repository":"https:\/\/github.com\/helios-ag\/grav-metrika","slug":"metrika","install_path":"user\/plugins\/metrika","content_sha256":"069f509aea7360187e761628e6c99d15811ff6accf0b2611b9af4b9946990b1c","changelog":{"1.0.0":{"date":"4\/01\/2016","content":"1. [](#new)\n    * Yandex Metrika First Release"}},"dependencies":[]},"markdown-color":{"name":"Markdown Color","version":"1.0.2","description":"Adds ability to output colored text in Markdown","description_html":"<p>Adds ability to output colored text in Markdown<\/p>","description_plain":"Adds ability to output colored text in Markdown","icon":"asterisk","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"license":"MIT","tag_name":"1.0.2","date":"2026-05-05T14:08:19Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-color\/1.0.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-markdown-color","homepage":"https:\/\/github.com\/getgrav\/grav-plugin-markdown-color","slug":"markdown-color","install_path":"user\/plugins\/markdown-color","content_sha256":"e5a246b76555a863e9ee5732443bbdd9b757d8ae00a2128098c89f2d5a1028b5","changelog":{"1.0.2":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.0.1":{"date":"01\/06\/2016","content":"1. [](#bugfix)\n    * Fixed README\n"},"1.0.0":{"date":"12\/22\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"markdown-notices":{"name":"Markdown Notices","version":"1.2.0","description":"Adds the ability to render notices blocks in Markdown","description_html":"<p>Adds the ability to render notices blocks in Markdown<\/p>","description_plain":"Adds the ability to render notices blocks in Markdown","icon":"asterisk","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-markdown-notices","license":"MIT","tag_name":"1.2.0","date":"2026-05-06T08:26:08Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/markdown-notices\/1.2.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-markdown-notices","slug":"markdown-notices","install_path":"user\/plugins\/markdown-notices","content_sha256":"2e346d0cfe4f6c3d324d087afbe53a64e14a3dfb9f02dbe375fdcd68ca07619f","changelog":{"1.2.0":{"date":"05\/06\/2026","content":"1. [](#new)\n   * Added Grav 2.0 compatibility \n"},"1.1.0":{"date":"12\/02\/2020","content":"1. [](#new)\n    * Support for indent-sensitive notices [#17](https:\/\/github.com\/getgrav\/grav-plugin-markdown-notices\/pull\/17)\n    * Pass phpstan level 1 tests\n    * Require Grav v1.6\n"},"1.0.4":{"date":"09\/10\/2019","content":"1. [](#improved)\n    * Reverted PR#10 which was breaking multiline notices and also unintentionally marking up notices with `<space>!<space>` in paragraphs \n"},"1.0.3":{"date":"08\/16\/2019","content":"1. [](#improved)\n    * Fixed issue where PR#10 clobbered PR#9\n"},"1.0.2":{"date":"08\/11\/2019","content":"1. [](#new)\n    * Ability to specify your own base classes [#9](https:\/\/github.com\/getgrav\/grav-plugin-markdown-notices\/pull\/9)\n    * Allow adding inline notices inside tables [#10](https:\/\/github.com\/getgrav\/grav-plugin-markdown-notices\/pull\/10)\n"},"1.0.1":{"date":"03\/09\/2018","content":"1. [](#improved)\n    * Updated blueprint file\n"},"1.0.0":{"date":"12\/22\/2015","content":"1. [](#new)\n    * ChangeLog started..."}}},"logerrors":{"name":"Log Errors","version":"1.0.1","description":"Records 404 errors in data folder","description_html":"<p>Records 404 errors in data folder<\/p>","description_plain":"Records 404 errors in data folder","icon":"edit","author":{"name":"Hugo Avila","url":"http:\/\/sitioi.com","email":"hugoavila@sitoi.com"},"homepage":"https:\/\/github.com\/hugoaf\/grav-plugin-logerrors","keywords":"plugin, log, errors, 404, not found, data","bugs":"https:\/\/github.com\/hugoaf\/grav-plugin-logerrors\/issues","license":"MIT","tag_name":"1.0.1","date":"2016-07-09T23:09:57Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/logerrors\/1.0.1","repository":"https:\/\/github.com\/haviladev\/grav-plugin-logerrors","slug":"logerrors","install_path":"user\/plugins\/logerrors","content_sha256":"54a1318e5a59593b351e4a0266ad0bd8f6c75b19bb281d4411c7deb1b65b44fa","changelog":{"1.0.1":{"date":"07\/09\/2016","content":"1. [](#bugfix)\n    * Increase event registration priority to make sure it runs before error plugin\n    * Check if folder param exist fix\n\n"},"1.0.0":{"date":"12\/19\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"aboutme":{"name":"AboutMe","version":"1.2.3","description":"Simple plugin to show some information about yourself, with a nice picture, your name, your title\/job and a description.You can also add links to your social network pages (Twitter, Facebook, GitHub, LinkedIn, Instagram).","description_html":"<p>Simple plugin to show some information about yourself, with a nice picture, your name, your title\/job and a description.You can also add links to your social network pages (Twitter, Facebook, GitHub, LinkedIn, Instagram).<\/p>","description_plain":"Simple plugin to show some information about yourself, with a nice picture, your name, your title\/job and a description.You can also add links to your social network pages (Twitter, Facebook, GitHub, LinkedIn, Instagram).","icon":"user","author":{"name":"S\u00e9bastien Viallemonteil","url":"https:\/\/scratchmydev.com","email":"sviallemonteil@gmail.com"},"homepage":"https:\/\/github.com\/birssan\/grav-plugin-about-me","keywords":"plugin, about, avatar, description, job","bugs":"https:\/\/github.com\/birssan\/grav-plugin-about-me\/issues","license":"MIT","tag_name":"1.2.3","date":"2023-11-01T22:18:32Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/aboutme\/1.2.3","repository":"https:\/\/github.com\/seb-vial\/grav-plugin-about-me","slug":"aboutme","install_path":"user\/plugins\/aboutme","content_sha256":"49d8d557d11019408a5ddbe58d998d21815df0f33a46daf9cde080383abd51fc","changelog":{"1.2.3":{"date":"11\/01\/2023","content":"1. [](#bugfix)\n   * Fixed syntax for changelog\n"},"1.2.2":{"date":"10\/18\/2023","content":"1. [](#bugfix)\n   * Fixing coding error which prevented install\/removal of the plugin.\n"},"1.2.1":{"date":"12\/03\/2019","content":"1. [](#improved)\n   * Using the last version of FontAwesome by loading the Javascript file.\n2. [](#improved)\n   * You can now pick which kind of icon you want to use (Brand, Solid or Regular)\n3. [](#improved)\n   * Removed Google Plus entry as Google Plus is no more. (RIP)\n"},"1.2.0":{"date":"01\/23\/2019","content":"1. [](#improved)\n   * The description HTML tag is now a div.\n2. [](#improved)\n   * The Gravatar size field type is now a number.\n3. [](#new)\n   * Added a toggle for the job \/ title field.\n4. [](#new)\n   * Added support for multi-language.\n5. [](#improved)\n   * Fixed documentation markdown titles.\n"},"1.1.5":{"date":"10\/17\/2016","content":"1. [](#bugfix)\n   * When the template was included in a page content with twig processing enabled, twig variables were not set in some cases (ie: with Shortcode plugin enabled, that might be the case for other plugins involving page content).\n2. [](#bugfix)\n   * Using raw filter in the template for more theme compatibility.\n"},"1.1.4":{"date":"09\/09\/2016","content":"1. [](#bugfix)\n   * There were some issues when changing fields value of the plugin from the admin page; due to changes to the file upload system and merging system between user config file and plugin config file.\n"},"1.1.3":{"date":"07\/07\/2016","content":"1. [](#improved)\n   * Grav 1.1 (RC3) uses arrays instead of simple string for files uploaded in plugins\/themes. The plugin now works for Grav 1.0 and 1.1 (RC3)\n"},"1.1.2":{"date":"04\/21\/2016","content":"1. [](#improved)\n   * The description can now contains markdown and break lines\n"},"1.1.1":{"date":"03\/03\/2016","content":"1. [](#bugfix)\n   * Fix hardcoded `http` reference for gravatar that breaks https websites\n"},"1.1.0":{"date":"12\/25\/2015","content":"1. [](#improved)\n   * Changed the social pages feature. You can now pick a different font icon from font-awesome, change the order the links will appear in, and also change the title which will appear when the icon is hovered. You might want to change your own `aboutme.yaml` in your user config with the new `aboutme.yaml` so the plugin does not break\n2. [](#bugfix)\n   * The source of the avatar was broken when used with multi-languages. It's now fixed\n"},"1.0.0":{"date":"12\/21\/2015","content":"1. [](#new)\n   * First Version\n   * ChangeLog started..."}},"dependencies":[]},"uikitifier":{"name":"Uikitifier","version":"0.3.0","description":"Loads UIKit v2.24.3 by Yootheme","description_html":"<p>Loads UIKit v2.24.3 by Yootheme<\/p>","description_plain":"Loads UIKit v2.24.3 by Yootheme","icon":"gears","author":{"name":"Daniel James","url":"http:\/\/www.khanduras.net","email":"danieljames@chiefqualakon.net"},"homepage":"https:\/\/github.com\/khanduras\/grav-plugin-uikitifier","demo":"http:\/\/chiefqualakon.net\/","keywords":"uikit, css, js, plugin, framework","bugs":"https:\/\/github.com\/khanduras\/grav-plugin-uikitifier\/issues","license":"MIT","tag_name":"v0.3.0","date":"2016-01-09T17:20:10-08:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/uikitifier\/0.3.0","repository":"https:\/\/github.com\/khanduras\/grav-plugin-uikitifier","slug":"uikitifier","install_path":"user\/plugins\/uikitifier","content_sha256":"2a0cfe58759cadea0f8e694d36999d2e8f55f010933a9aa6161a00e800d63b87","changelog":{"0.3.0":{"date":"1\/9\/2016","content":"1. [](#improved)\n    * Corrected readme.md (thanks to @nickstamat)\n    * Added blueprint.yaml options to toggle Components\n"},"0.2.4":{"date":"1\/5\/2016","content":"1. [](#improved)\n    * Corrected dotnav (thanks to @nickstamat)\n"},"0.2.1":{"date":"12\/21\/2015","content":"1. [](#new)\n    * Updated with latest UI Kit version\n"},"0.0.0":{"date":"03\/14\/2015","content":"1. [](#new)\n    * Initial Release"}},"dependencies":[]},"instagram":{"name":"Instagram","version":"1.3.0","description":"**Instagram** is a simple plugin that includes Instagram feed to your Grav website.","description_html":"<p><strong>Instagram<\/strong> is a simple plugin that includes Instagram feed to your Grav website.<\/p>","description_plain":"Instagram is a simple plugin that includes Instagram feed to your Grav website.","icon":"instagram","author":{"name":"Igor Buyanov","url":"https:\/\/github.com\/artifex404\/grav-plugin-instagram","email":"artifex404@hotmail.com"},"homepage":"https:\/\/github.com\/artifex404\/grav-plugin-instagram","keywords":"instagram","bugs":"https:\/\/github.com\/artifex404\/grav-plugin-instagram\/issues","license":"MIT","tag_name":"1.3.0","date":"2017-11-10T18:46:04Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/instagram\/1.3.0","repository":"https:\/\/github.com\/artifex404\/grav-plugin-instagram","slug":"instagram","install_path":"user\/plugins\/instagram","content_sha256":"d9f228b3a28bfdd1049ac6901cf09b8a5b4f001c90e42f4372348ab94b9b6e29","changelog":{"1.3.0":{"date":"11\/10\/2017","content":"* [New Feature] Adds parameters to twig template \n"},"1.2.2":{"date":"11\/10\/2017","content":"* [New Feature] Adds more info from the Instagram API\n* [New Feature] Limit feed item amount to 20 due to Instagram API restrictions\n"},"1.2.1":{"date":"10\/24\/2017","content":"* [Bux Fix] Fix page not found error\n"},"1.2.0":{"date":"01\/31\/2017","content":"* [New Feature] Add more info from the Instagram API\n\n"},"1.1.1":{"date":"02\/13\/2016","content":"* [Bug Fix] Fix the template to show the latest feed image\n"},"1.1.0":{"date":"12\/17\/2015","content":"* [New Feature] Adds feed caching\n* [Bug Fix] Use Instagram API access_token instead of user_id\n"},"1.0.2":{"date":"12\/14\/2015","content":"* [Bug Fix] Fix Response class path\n"},"1.0.1":{"date":"12\/14\/2015","content":"* [Bug Fix] Remove unneeded class dependency\n"},"1.0":{"date":"12\/09\/2015","content":"* [Bug Fix] ChangeLog started"}},"dependencies":[]},"textformatter":{"name":"Text Formatter","version":"1.1.0","description":"This plugin is a wrapper for [TextFormatter](https:\/\/github.com\/s9e\/TextFormatter), a library that supports BBCode, HTML and other markup via plugin. It handles emoticons, censors words, automatically embeds media and more.","description_html":"<p>This plugin is a wrapper for <a href=\"https:\/\/github.com\/s9e\/TextFormatter\">TextFormatter<\/a>, a library that supports BBCode, HTML and other markup via plugin. It handles emoticons, censors words, automatically embeds media and more.<\/p>","description_plain":"This plugin is a wrapper for TextFormatter, a library that supports BBCode, HTML and other markup via plugin. It handles emoticons, censors words, automatically embeds media and more.","icon":"sticky-note","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-textformatter","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-textformatter\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-textformatter\/issues","license":"MIT\/GPL","tag_name":"v1.1.0","date":"2016-08-18T18:17:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/textformatter\/1.1.0","repository":"https:\/\/github.com\/Sommerregen\/grav-plugin-textformatter","slug":"textformatter","install_path":"user\/plugins\/textformatter","content_sha256":"a22d1f689d4becf05f287ff3684a7101357b8e8d8ab196c0f0b48d895d13c479","changelog":{"1.1.0\r":{"date":"08\/18\/2016\r","content":"1. [](#new)\r\n  * Added option to turn on\/off HTML parsing with one toggle [#1](https:\/\/github.com\/Sommerregen\/grav-plugin-textformatter\/issues\/1) (Ability to disable html parsing entirely)\r\n  * Renamed `process` option to `active` (**Breaking Change!**)\r\n  * Moved admin settings into tabs and added more descriptions\r\n  * Updated vendor `s9e\/text-formatter` to v0.6.2\r\n2. [](#improved)\r\n  * Better emoticons handling in admin panel (the icon list will be automatically pre-filled)\r\n  * Refactored code (requires **Grav v1.1.0+**)\r\n  * Updated `README.md`\r\n3. [](#bugfix)\r\n  * Fixed wrong path to emoticons\r\n  * Fixed auto-image filter\r\n \r"},"1.0.2\r":{"date":"11\/18\/2015\r","content":"2. [](#improved)\r\n  * Page specific options now respect the default configurations set in the admin panel\r\n  * `README.md` fixes\r\n\r"},"1.0.1\r":{"date":"11\/17\/2015\r","content":"3. [](#bugfix)\r\n  * Strip Grav specific links like `[plugin:textformatter](..)` from content\r\n\r"},"1.0.0\r":{"date":"11\/16\/2015\r","content":"1. [](#new)\r\n  * ChangeLog started...\r"}},"dependencies":[]},"piwik":{"name":"piwik","version":"1.0.2","description":"piwik plugin Grav website.","description_html":"<p>piwik plugin Grav website.<\/p>","description_plain":"piwik plugin Grav website.","icon":"location-arrow","author":{"name":"Michele Palmieri","url":"http:\/\/michelepalmieri.it","email":"michele@michelepalmieri.it"},"homepage":"https:\/\/github.com\/MichelePalmieri\/grav-piwik","keywords":"piwik, plugin, tracking, analytics","bugs":"https:\/\/github.com\/MichelePalmieri\/grav-piwik\/issues","license":"MIT","tag_name":"1.0.2","date":"2017-03-22T21:43:47Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/piwik\/1.0.2","repository":"https:\/\/github.com\/MichelePalmieri\/grav-piwik-plugin","slug":"piwik","install_path":"user\/plugins\/piwik","content_sha256":"0ba61c9cd6bf29f4011902b77e844d0c31a159239ee7495df451d21f92399c70","changelog":{"1.0.2":{"date":"13\/02\/2017","content":"1. [](#improvement)\n    * Changed Piwik embed code, don't include protocol (http or https) in Piwik code (taken from a newer Piwik installation). For compatibility reasons the protocol string will be cut if it is part of the URL. \n\n"},"1.0.1":{"date":"14\/11\/2015","content":"1. [](#bugfix)\n    * fixed bug #1\n"},"1.0.0":{"date":"12\/11\/2015","content":"1. [](#new)\n    * piwik Plugin started"}},"dependencies":[]},"leaflet":{"name":"Leaflet","version":"1.0.1","description":"This plugin add [Leaflet](http:\/\/leafletjs.com\/) into your **Grav site**.","description_html":"<p>This plugin add <a href=\"http:\/\/leafletjs.com\/\">Leaflet<\/a> into your <strong>Grav site<\/strong>.<\/p>","description_plain":"This plugin add Leaflet into your Grav site.","icon":"map-marker","author":{"name":"Cyp","url":"http:\/\/rouquin.me","email":"cyp@rouquin.me"},"homepage":"https:\/\/github.com\/magikcypress\/grav-plugin-leaflet","docs":"https:\/\/github.com\/magikcypress\/grav-plugin-leaflet\/blob\/master\/README.md","keywords":"leaflet, maps, plugin","bugs":"https:\/\/github.com\/magikcypress\/grav-plugin-leaflet\/issues","license":"MIT","tag_name":"1.0.1","date":"2015-11-14T16:30:21Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/leaflet\/1.0.1","repository":"https:\/\/github.com\/magikcypress\/grav-plugin-leaflet","slug":"leaflet","install_path":"user\/plugins\/leaflet","content_sha256":"709337994c7a8e69b3344dff5c0e64b398b156584e02cbe300b1a2340d7941ab","changelog":{"1.0.1":{"date":"14\/11\/2015","content":"1. [](#new)\n    * Update README.md and blueprints.\n"},"1.0.0":{"date":"12\/11\/2015","content":"1. [](#new)\n    * First release."}},"dependencies":[]},"ganalytics":{"name":"Google Analytics","version":"2.1.0","description":"Easily integrate and configure Google Analytics without the need to touch any code within your Grav site.","description_html":"<p>Easily integrate and configure Google Analytics without the need to touch any code within your Grav site.<\/p>","description_plain":"Easily integrate and configure Google Analytics without the need to touch any code within your Grav site.","icon":"google","author":{"name":"John Linhart","url":"http:\/\/johnlinhart.com","email":"admin@escope.cz"},"homepage":"https:\/\/github.com\/escopecz\/grav-ganalytics","docs":"https:\/\/github.com\/escopecz\/grav-ganalytics\/blob\/master\/README.md","keywords":"google, plugin, tracking, analytics, grav","bugs":"https:\/\/github.com\/escopecz\/grav-ganalytics\/issues","license":"MIT","tag_name":"2.1.0","date":"2023-06-19T06:58:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/ganalytics\/2.1.0","repository":"https:\/\/github.com\/escopecz\/grav-ganalytics","slug":"ganalytics","install_path":"user\/plugins\/ganalytics","content_sha256":"034e8ad0de944205cc74427a39cd76a9241910f7fea536886b6663c91bfba9e2","changelog":{"2.1.0":{"date":"06\/19\/2023","content":"1. [](#new)\n    * Added \"Do Not Track\" header support which is enabled by default\n2. [](#bugfix)\n    * Fixed opt-out dialog output when confirmation message contains quotes\n    * Fixed opt-out section title translation\n    * Fixed an issue which prevented being able to install this plugin via `bin\/gpm direct-install` command\n"},"2.0.0":{"date":"06\/09\/2023","content":"1. [](#new)\n    * BREAKING CHANGE! The plugin now uses Google Analytics 4 API, which is not compatible with an old Universal Analytics functionality. You must migrate your existing Universal Analytics properties to Google Analytics 4 data streams before performing the upgrade. Please, read upgrade section in the [README](https:\/\/github.com\/escopecz\/grav-ganalytics\/blob\/master\/README.md#upgrading-from-1x) file for the detailed steps.\n"},"1.5.2":{"date":"03\/10\/2023","content":"1. [](#bugfix)\n    * Fixed changelog formating\n"},"1.5.1":{"date":"03\/10\/2023","content":"1. [](#bugfix)\n    * Fix previously broken 1.5.0 release\n"},"1.5.0":{"date":"09\/22\/2019","content":"1. [](#new)\n    * Added support for environment variables\n    * Add capabilities to block address ranges and use a blocking cookie\n    * Opt out code added\n2. [](#improved)\n    * Changes for General Data Protection Regulation (GDPR)\n"},"1.4.0":{"date":"01\/04\/2017","content":"1. [](#new)\n    * Preload the Google Analytics script asynchronously\n    * Choose the code position in the HTML document (head or body)\n    * Custom Cookie Configuration. Name, domain and expiration time are configurable.\n    * Force SSL - Send all data using SSL, even from insecure (HTTP) pages\n2. [](#improved)\n    * Improve plugin configuration with tab views.\n    * Better use and configuration of the global object name. Please use `objectName` instead of `renameGa`.\n"},"1.3.0":{"date":"12\/21\/2016","content":"1. [](#new)\n    * Block IP addresses (_Google Analytics code will not be embedded_)\n2. [](#improved)\n    * Added german translation\n3. [](#bugfix)\n    * Fixed the date format in the changelog \n"},"1.2.0":{"date":"08\/11\/2016","content":"1. [](#new)\n    * Rename the global (ga) variable of the Google Analytics object\n    * Enable the debug version of the analytics.js library + Trace Debugging\n      "},"1.1.0":{"date":"08\/02\/2016","content":"1. [](#new)\n    * Anonymize the IP address sent to Google Analytics\n"},"1.0.0":{"date":"11\/08\/2015","content":"1. [](#new)\n    * GA Plugin started"}},"dependencies":[]},"mautic":{"name":"Mautic","version":"1.5.2","description":"Mautic - Grav plugin integrates [Mautic](https:\/\/mautic.org) tracking, forms, dynamic web content, focus items, and assets into Grav CMS.","description_html":"<p>Mautic - Grav plugin integrates <a href=\"https:\/\/mautic.org\">Mautic<\/a> tracking, forms, dynamic web content, focus items, and assets into Grav CMS.<\/p>","description_plain":"Mautic - Grav plugin integrates Mautic tracking, forms, dynamic web content, focus items, and assets into Grav CMS.","icon":"pie-chart","author":{"name":"Mautic Community","url":"https:\/\/mautic.org","email":"extensions@mautic.org"},"homepage":"https:\/\/github.com\/mautic\/mautic-grav","keywords":"mautic, plugin, tracking, marketing","bugs":"https:\/\/github.com\/escopecz\/mautic-grav\/issues","license":"MIT","tag_name":"1.5.2","date":"2022-05-05T15:17:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mautic\/1.5.2","repository":"https:\/\/github.com\/mautic\/mautic-grav","slug":"mautic","install_path":"user\/plugins\/mautic","content_sha256":"1e3e467fad91f9bfd4a7234f8bb0fe7d5ed1c63f90bfd2dd0c83f613078a2bd1","changelog":{"1.5.2":{"date":"05\/05\/2022","content":"1. [](#bugfix)\n    * Fixing a typo in README\n"},"1.5.1":{"date":"05\/04\/2022","content":"1. [](#improved)\n    * Simplifying shortcode interface for assets\n"},"1.5.0":{"date":"04\/25\/2022","content":"1. [](#new)\n    * Adding support for assets: Asset links can now be included into Grav pages\n      using Mautic shortcodes, which will be tracked via Mautic\n"},"1.4.0":{"date":"04\/02\/2022","content":"1. [](#new)\n    * Introducing a unified (simplified) shortcode interface for all Mautic\n      components supported by this plugin (forms, dynamic web content, focus\n      items)\n    * Legacy interface still supported (Markdown links for forms and different\n      shortcode parameter names depending on Mautic component)\n    * Tracking can be activated\/deactivated independently from other Mautic\n      components\n2. [](#improved)\n    * Bringing CHANGELOG items into correct order\n"},"1.3.2":{"date":"03\/29\/2022","content":"1. [](#bugfix)\n    * Updating CHANGELOG\n"},"1.3.1":{"date":"03\/29\/2022","content":"1. [](#bugfix)\n    * Updating documentation\n"},"1.3.0":{"date":"03\/29\/2022","content":"1. [](#new)\n    * Adding support for focus items\n"},"1.2.1":{"date":"03\/29\/2022","content":"1. [](#bugfix)\n    * Updated documentation\n"},"1.2.0":{"date":"03\/29\/2022","content":"1. [](#bugfix)\n    * Fixed tracking so that it is called on page load\n2. [](#new)\n    * Added option in the plugin configuration back-end to enable\/disable\n      tracking\n"},"1.1.1":{"date":"03\/28\/2022","content":"1. [](#bugfix)\n    * Update dynamic web content to be usable with recent versions of Mautic (4.2.0)"},"1.1.0":{"date":"08\/12\/2015","content":"1. [](#new)\n    * Mautic Dynamic Web Content implemented\n    * Mautic JS tracking implemented\n"},"1.0.0":{"date":"11\/08\/2015","content":"1. [](#new)\n    * Mautic Tracking Pixel implemented\n    * Mautic Form Embed implemented\n    * Mautic Plugin started"}},"dependencies":[]},"hitbox":{"name":"Hitbox","version":"1.0.0","description":"**Hitbox** is a simple plugin that converts markdown links into Hitbox.tv embeds.","description_html":"<p><strong>Hitbox<\/strong> is a simple plugin that converts markdown links into Hitbox.tv embeds.<\/p>","description_plain":"Hitbox is a simple plugin that converts markdown links into Hitbox.tv embeds.","icon":"th","author":{"name":"Dev&#39;Code","url":"http:\/\/lab.dev-code.fr\/","email":"lab.dev.code@gmail.com"},"homepage":"https:\/\/github.com\/lab-dev-code\/grav-plugin-hitbox","keywords":"hitbox, plugin","bugs":"https:\/\/github.com\/lab-dev-code\/grav-plugin-hitbox\/issues","license":"CC-BY","tag_name":"v1.0.0","date":"2015-11-12T13:54:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/hitbox\/1.0.0","repository":"https:\/\/github.com\/lab-dev-code\/grav-plugin-hitbox","slug":"hitbox","install_path":"user\/plugins\/hitbox","content_sha256":"34ef7962adc72a2895ce2465e8565237f4b7173f457dbea66d1591cd30c27131","changelog":{"1.0.0":{"date":"11\/11\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"twitch":{"name":"Twitch","version":"1.1.0","description":"**Twitch** is a simple plugin that converts markdown links into Twitch.tv embeds.","description_html":"<p><strong>Twitch<\/strong> is a simple plugin that converts markdown links into Twitch.tv embeds.<\/p>","description_plain":"Twitch is a simple plugin that converts markdown links into Twitch.tv embeds.","icon":"twitch","author":{"name":"Dev&#39;Code","url":"http:\/\/lab.dev-code.fr\/","email":"lab.dev.code@gmail.com"},"homepage":"https:\/\/github.com\/lab-dev-code\/grav-plugin-twitch","keywords":"twitch, plugin","bugs":"https:\/\/github.com\/lab-dev-code\/grav-plugin-twitch\/issues","license":"CC-BY","tag_name":"v1.1.0","date":"2015-11-12T13:55:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/twitch\/1.1.0","repository":"https:\/\/github.com\/lab-dev-code\/grav-plugin-twitch","slug":"twitch","install_path":"user\/plugins\/twitch","content_sha256":"75564d2187037c8c2a0763e306f77031173e17505c6c86975af508ef9818fd8c","changelog":{"1.0.0":{"date":"11\/11\/2015","content":"1. [](#new)\n    * ChangeLog started...\n"},"1.1.0":{"date":"11\/11\/2015","content":"1. [](#new)\n    * Fullscreen player functionality added"}},"dependencies":[]},"tidyhtml":{"name":"Tidyhtml","version":"1.0.3","description":"TidyPHP integration for Grav.","description_html":"<p>TidyPHP integration for Grav.<\/p>","description_plain":"TidyPHP integration for Grav.","icon":"code","author":{"name":"Clemens Queissner","url":"https:\/\/cq-design.de","email":"clemens.queissner@cq-design.de"},"homepage":"https:\/\/github.com\/sourcesoldier\/grav-plugin-tidyhtml","demo":"https:\/\/cq-design.de","keywords":"html tidy beautiful","bugs":"https:\/\/github.com\/sourcesoldier\/grav-plugin-tidyhtml\/issues","license":"GPL v3","tag_name":"1.0.3","date":"2016-04-29T20:13:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/tidyhtml\/1.0.3","repository":"https:\/\/github.com\/sourcesoldier\/grav-plugin-tidyhtml","slug":"tidyhtml","install_path":"user\/plugins\/tidyhtml","content_sha256":"9cf032467868c0446e416d330ff0794c6fb4d5a02448587048fa3fa5ce07f758","changelog":{"1.0.3":{"date":"04\/29\/2016","content":"1. [](#improved)\n    * Refactored methods to distinguish ignored sites from the configuration\n    * Enabled blueprint to make configuration changes in the backend\n    * Set sitemap to the default settings\n    * Refactored method to get the configuration data of the current plugin\n"},"1.0.2":{"date":"04\/28\/2016","content":"1. [](#improved)\n    * Merged pull request from https:\/\/github.com\/jnaskali THX!\n"},"1.0.1":{"date":"11\/07\/2015","content":"1. [](#new)\n    * Implemented the blueprints.yaml\n    * Checks if PHP module tidy is loaded before executing the plugin\n    * Set the basic defaults to fit the needs of HTML5 common standards\n"},"1.0.0":{"date":"11\/05\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"shoppingcart":{"name":"Shopping Cart","version":"1.2.3","description":"This plugin turns your Grav site into a shopping cart","description_html":"<p>This plugin turns your Grav site into a shopping cart<\/p>","description_plain":"This plugin turns your Grav site into a shopping cart","icon":"shopping-cart","author":{"name":"Flavio Copes","url":"https:\/\/flaviocopes.com","email":"copesc@gmail.com"},"dependencies":[{"name":"grav","version":"~1.1"},{"name":"form","version":"~2.0"}],"homepage":"https:\/\/gravcart.com\/","keywords":"shoppingcart, ecommerce, e-commerce, plugin, shop, cart","bugs":"https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues","license":"MIT","tag_name":"v1.2.3","date":"2018-08-11T16:44:26Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shoppingcart\/1.2.3","repository":"https:\/\/github.com\/leotiger\/grav-plugin-shoppingcart","slug":"shoppingcart","install_path":"user\/plugins\/shoppingcart","content_sha256":"be188495773a15e55c5dde6ebb1f381c3a3c803bb35e448300499195491166de","changelog":{"1.2.3":{"date":"11-08-2018","content":"1. [](#new)\n    * Add option to specify base blueprint to be extended with shoppingcart features (defaults to default)\n1. [](#improved)\n    * improve exclusion tests before merging configuration data\n    * better support for sites with multiple languages \n    * change taxes and shipping cost from int to number to allow for decimals (see PR by ricardo118 in original repository)\n    * Update available Add-on list\n1. [](#bugfix)\n    * Assure consistent order id\n    * Avoid injection of configuration settings into header of product pages\n    * fix namespace for load_js_globally variable in plugin blueprint\n"},"1.2.2":{"date":"05-05-2017","content":"1. [](#bugfix)\n    * Fix issue with prices with more than 2 decimals and issue with NaN on prices > 999.99 - thanks @gmplab [#62](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/pull\/62)\n    * Fix [#63](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/63) Cart icon gone after clicking add to cart button\n"},"1.2.1":{"date":"25-04-2017","content":"1. [](#bugfix)\n    * Fix issue on Gantry themes\n"},"1.2.0":{"date":"25-04-2017","content":"1. [](#improved)\n    * Add more blueprint options - thanks @mikegcox [#58](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/pull\/58)\n    * Show amount of tax included in Total Price - thanks @carlu93 [#56](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/pull\/56)\n    * Add checkout form to the blueprint\n1. [](#bugfix)\n    * Fix [#53](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/53) Fix validating as commalist breaks Country choosing\n    * Fix showing breadcrumbs on top on products list\n    * Fix issue with allowed countries [#60](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/60) [#57](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/57) - thanks @gmplab\n    * Array: true for list items in blueprint, fixes issue with list items in config\n    * Escape everything that needs to be escaped\n"},"1.1.5":{"date":"31-03-2017","content":"1. [](#bugfix)\n    * Fix [#49](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/49) NaN in pricing for over 999\n    * Fix [#51](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/51) issue in calculating taxes in the cart\n    * Fix [#52](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/52) add subtotal label\n"},"1.1.4":{"date":"03-02-2017","content":"1. [](#bugfix)\n    * Fix trying to validate shipping method when just one shipping method is available\n    * Make sure when using the PayPal plugin, password and signature are not included in the javascript settings\n"},"1.1.3":{"date":"02-02-2017","content":"1. [](#bugfix)\n    * Temp removal of the checkout form editing in Admin, due to a problem with the blueprint\n"},"1.1.2":{"date":"29-01-2017","content":"1. [](#bugfix)\n    * Fix issue in the default configuration for the checkout form\n"},"1.1.1":{"date":"11-12-2016","content":"1. [](#new)\n    * Append the number of items to any item with class `js__shoppingcart-counter`. Allows to have an icon in the menu with the cart, which shows `(2)` if for example there are 2 items in the cart\n1. [](#bugfix)\n    * Also store taxes in the order data\n"},"1.1.0":{"date":"05-12-2016","content":"1. [](#improved)\n    * Restore the default checkout form in Admin\n"},"1.1.0-beta.10":{"date":"09-08-2016","content":"1. [](#new)\n    * \"Add to cart\"-button functionality on products list page. Updated [#35](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/35)\n1. [](#bugfix)\n    * Remove the default checkout form fields to workaround a Grav bug [#33](https:\/\/github.com\/flaviocopes\/grav-plugin-shoppingcart\/issues\/33)\n    * Fix issue with shipping being reset while recalculated\n"},"1.1.0-beta.8":{"date":"15-05-2016","content":"1. [](#new)\n    * If no checkout plugin is installed, alert the site owner. Currently alerting in the frontend since this alert is likely to be encountered just when building the site\n1. [](#improved)\n    * Add a ShoppingCart.provinceIsRequired() utility function\n1. [](#bugfix)\n    * Fix #24 \"All countries without specific rule\" not working as expected. And also cleanup some useless methods\n    * Only require province is required, fix #25\n    * Fix #27 only execute controller tasks if available\n    * Fix labels in blueprint\n"},"1.1.0-beta.7":{"date":"07-05-2016","content":"1. [](#new)\n    * Product image in cart, optional\n    * Added option to set the product image size in the product page\n    * Added option to set the product image size in the cart\n    * Add option to remove cents if .00\n1. [](#improved)\n    * Add support for Grav 1.0.x and Form 1.2.x in the 1.1 release\n    * Extracted the Add to Cart code in a separate partial for easier override\n    * Default to ignore some checkout information\n    * Move onBeforeAddProductToCart and  onAfterAddProductToCart events inside ShoppingCart.addProduct\n1. [](#bugfix)\n    * Fix saving the cart when no shipping methods are entered. Also add payment info when there's a single shipping method, instead of omitting it\n"},"1.1.0-beta.6":{"date":"07-05-2016","content":"1. [](#improved)\n    * Improved rendering of cart on mobile devices\n    * Added support for shortcodes addon\n    * Translate quantity string\n    * Added first acceptance tests\n"},"1.1.0-beta.5":{"date":"01-05-2016","content":"1. [](#bugfix)\n    * Fixed error in version number\n"},"1.1.0-beta.4":{"date":"30-04-2016","content":"1. [](#improved)\n    * Add wrapper div in order confirmation\n1. [](#bugfix)\n    * Fixed error in namespace\n"},"1.1.0-beta.3":{"date":"30-04-2016","content":"1. [](#bugfix)\n    * Fixed issue with price > 999 and NaN shown when adding it to the cart\n"},"1.1.0-beta.2":{"date":"30-04-2016","content":"1. [](#new)\n    * Ability to configure the plugin options via the Admin interface\n    * Ability to edit the product through the Admin Pages view. Can currently set the price and set the default picture from the page media\n    * Added more events to support more addons features. Documented in the Plugin documentation site\n    * Added the ability to show the cart widget on pages not directly managed by the plugin (e.g. default pages, blog or any other page). Documented in the Plugin documentation site\n1. [](#improved)\n    * Changed structure of the Twig files: `shoppingcart` has been removed in favor of `shoppingcart_categories`, `shoppingcart_section` is now `shoppingcart_categories`, `shoppingcart_category` is now `shoppingcart_products`. `shoppingcart_product` is the product page. Please rename your markdown pages accordingly. There's backwards compatibility, so at this point things will continue to work fine, but the old filenames are deprecated.\n    * Core reorganization\n    * More testing\n1. [](#bugfix)\n    * Various bug fixes and improvements\n"},"1.0.7":{"date":"21-04-2016","content":"1. [](#bugfix)\n    * Fix issue in multilanguage sites and Grav < 1.1\n"},"1.0.6":{"date":"21-04-2016","content":"1. [](#bugfix)\n    * Fix issue in JS settings build, backported from 1.1\n    * Fix issue in payment URL task fetch\n"}}},"gitter":{"name":"Gitter","version":"1.0.0","description":"Add Gitter chat to your site","description_html":"<p>Add Gitter chat to your site<\/p>","description_plain":"Add Gitter chat to your site","icon":"comment","author":{"name":"Jerome Nadaud","url":"http:\/\/nadaud.org","email":"jerome@nadaud.org"},"homepage":"https:\/\/github.com\/jnadaud\/grav-plugin-gitter","keywords":"git, gitter, plugin","bugs":"https:\/\/github.com\/jnadaud\/grav-plugin-gitter","license":"MIT","tag_name":"1.0.0","date":"2015-11-02T19:04:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/gitter\/1.0.0","repository":"https:\/\/github.com\/jnadaud\/grav-plugin-gitter","slug":"gitter","install_path":"user\/plugins\/gitter","content_sha256":"9d6e2f59c8f255baa2a1d8a03c8badc668eaac53fabc9f8a82d08afd6f555dc5","changelog":{"1.0.0":{"date":"02\/11\/2015","content":"1. [](#new)\n    * Initial commit"}},"dependencies":[]},"filter-strings":{"name":"Filter Strings","version":"1.1.1","description":"The **Filter Strings** plugin performs string manipulation in twig.","description_html":"<p>The <strong>Filter Strings<\/strong> plugin performs string manipulation in twig.<\/p>","description_plain":"The Filter Strings plugin performs string manipulation in twig.","icon":"quote-right","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-filter-strings","keywords":"filter, filter-strings, strings, filterstrings, plugin","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-filter-strings\/issues","license":"MIT","tag_name":"1.1.1","date":"2026-05-05T14:07:30Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/filter-strings\/1.1.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-filter-strings","slug":"filter-strings","install_path":"user\/plugins\/filter-strings","content_sha256":"965ea3103e265cd245bb6974a27a894a78ed305854fa209fca9a9790be6bcb4a","changelog":{"1.1.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.1.0":{"date":"09\/19\/2016","content":"1. [](#new)\n    * Add support for Stringy functions with arguments\n1. [](#improved)\n    * Updated Stringy to from v2.1.0 to v 2.3.2\n"},"1.0.1":{"date":"05\/03\/2016","content":"1. [](#bugfix)\n    * Fixed blueprint references\n"},"1.0.0":{"date":"10\/21\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"guestbook":{"name":"Guestbook","version":"0.5.1","description":"Adds a Guestbook functionality to a page","description_html":"<p>Adds a Guestbook functionality to a page<\/p>","description_plain":"Adds a Guestbook functionality to a page","icon":"book","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"form","version":"*"},{"name":"email","version":"*"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-guestbook","docs":"https:\/\/github.com\/getgrav\/grav-plugin-guestbook\/blob\/develop\/README.md","keywords":"guestbook, plugin","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-guestbook\/issues","license":"MIT","tag_name":"0.5.1","date":"2026-05-05T14:07:47Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/guestbook\/0.5.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-guestbook","slug":"guestbook","install_path":"user\/plugins\/guestbook","content_sha256":"10c24bec0f9fe9fc2c1fbcdb840bbeec107cd6ff3793a8ed5223ec4ebc0c6887","changelog":{"0.5.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"0.5.0":{"date":"01\/24\/2017","content":"1. [](#new)\n    * Added optional moderation capabilities [#7](https:\/\/github.com\/getgrav\/grav-plugin-guestbook\/issues\/7)\n1. [](#bugfix)\n    * Add support for Twig `Autoescape variables` mode\n    * Fixed PHP 7.1 issue in moderation\n"},"0.4.0":{"date":"10\/19\/2016","content":"1. [](#improved)\n    * Added german translation\n    * Added romanian translation\n1. [](#bugfix)\n    * Fixed a french string\n"},"0.3.1":{"date":"07\/14\/2016","content":"1. [](#improved)\n    * Translate some blueprint options\n"},"0.3.0":{"date":"01\/06\/2016","content":"1. [](#bugfix)\n    * Correctly add the templates path\n"},"0.2.2":{"date":"11\/20\/2015","content":"1. [](#bugfix)\n    * Only load the messages on guestbook pages, if the page exists\n"},"0.2.1":{"date":"11\/06\/2015","content":"1. [](#bugfix)\n    * Show \"Guestbook\" in the available page templates\n"},"0.2.0":{"date":"10\/27\/2015","content":"1. [](#bugfix)\n    * Fix loading guestbook messages on the first page load\n"},"0.1.0":{"date":"10\/16\/2015","content":"1. [](#new)\n    * ChangeLog started..."}}},"comments":{"name":"Comments","version":"1.2.9","description":"Adds a commenting functionality to your site","description_html":"<p>Adds a commenting functionality to your site<\/p>","description_plain":"Adds a commenting functionality to your site","icon":"comment","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"form","version":"*"},{"name":"email","version":"*"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-comments","keywords":"guestbook, plugin","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues","license":"MIT","tag_name":"1.2.9","date":"2026-05-05T14:05:42Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/comments\/1.2.9","repository":"https:\/\/github.com\/getgrav\/grav-plugin-comments","slug":"comments","install_path":"user\/plugins\/comments","content_sha256":"b17a971df6a635465f873b41e7627da8617c2214ddf76af7f4364c652e543f67","changelog":{"1.2.9":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.2.8":{"date":"09\/10\/2020","content":"1. [](#improved)\n    * Improved some translations\n1. [](#bugfix)\n    * Fix for PHP 7.4 [#81](https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues\/81)\n    * Fix for allowing path in form submission [#86](https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues\/86) [#80](https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues\/80)\n    "},"1.2.7":{"date":"05\/12\/2017","content":"1. [](#improved)\n    * Added Japanese translation\n    * Move captcha over email [#45](https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues\/45)\n1. [](#bugfix)\n    * Fix comment form processing\n    * Fix issue with scope for autofilled values\n"},"1.2.6":{"date":"01\/09\/2017","content":"1. [](#improved)\n    * Use existing `Utils::startsWith()` method\n1. [](#bugfix)\n    * Fix [#41](https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues\/41) using Comments in a Gantry-powered theme did not escape the comment form token correctly\n"},"1.2.5":{"date":"09\/16\/2016","content":"1. [](#bugfix)\n    * Fix [#37](https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues\/37) showing comments older than one week in the \"latest comments\" view\n"},"1.2.4":{"date":"09\/15\/2016","content":"1. [](#bugfix)\n    * Fix missing Twig template error if route is excluded but twig is loaded\n"},"1.2.3":{"date":"09\/15\/2016","content":"1. [](#improved)\n    * Added Croatian translation\n1. [](#bugfix)\n    * Fix [#35](https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues\/35) Allow comments to work fine on Form 2.0 too\n"},"1.2.2":{"date":"08\/12\/2016","content":"1. [](#improved)\n    * Added Romanian translation\n1. [](#bugfix)\n    * Fix issue in storing comments cache when cache is enabled [#33](https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues\/33)\n"},"1.2.1":{"date":"07\/19\/2016","content":"1. [](#bugfix)\n    * Check if Login plugin is installed before checking for user object [#28](https:\/\/github.com\/getgrav\/grav-plugin-comments\/issues\/28)\n"},"1.2.0":{"date":"07\/14\/2016","content":"1. [](#improved)\n    * Prevent a missing template problem on ignored routes\n    * Allow to translate the comments form\n    * Added spanish and brazilian portuguese translations\n    * Enhanced german, russian and french translations\n    * Added cache for comments\n    * Handle logged in users by not requiring username\/email\n    * Reset the comments form after a comment is submitted\n"},"1.1.4":{"date":"02\/05\/2016","content":"1. [](#improved)\n    * Added german and polish\n    * Avoid listening on onTwigTemplatePaths if not enabled\n"},"1.1.3":{"date":"01\/06\/2016","content":"1. [](#improved)\n    * Disable captcha by default, added instructions on how to enable it\n1. [](#bugfix)\n    * Increase priority for onPageInitialized in the comments plugin over the form plugin one to prevent an issue when saving comments\n"},"1.1.2":{"date":"12\/11\/2015","content":"1. [](#improved)\n    Fix double escaping comments text and author\n"},"1.1.1":{"date":"12\/11\/2015","content":"1. [](#improved)\n    * Drop the autofocus on the comment form\n1. [](#bugfix)\n    * Fix double encoding (#12)\n"},"1.1.0":{"date":"11\/24\/2015","content":"1. [](#new)\n    * Added french (@codebee-fr) and russian (@joomline) languages\n    * Takes advantage of the new nonce support provided by the Form plugin\n1. [](#improved)\n    * Use date instead of gmdate to respect the server local time (thanks @bovisp)\n    * Now works with multilang (thanks @bovisp)\n\n"},"1.0.2":{"date":"11\/13\/2015","content":"1. [](#improved)\n    * Use nonce\n1. [](#improved)\n    * Changed form action to work with multilang\n"},"1.0.1":{"date":"11\/11\/2015","content":"1. [](#improved)\n    * Use onAdminMenu instead of the deprecated onAdminTemplateNavPluginHook\n1. [](#bugfix)\n    * Fix error when user\/data\/comments does not exist\n\n"},"1.0.0":{"date":"10\/21\/2015","content":"1. [](#new)\n    * Initial Release"}}},"editor-buttons":{"name":"Editor Buttons","version":"1.2.2","description":"Adds additional editor button options","description_html":"<p>Adds additional editor button options<\/p>","description_plain":"Adds additional editor button options","icon":"edit","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"admin","version":"~1.1"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-editor-buttons","keywords":"admin, plugin, editor, buttons","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-editor-buttons\/issues","license":"MIT","tag_name":"1.2.2","date":"2026-05-05T14:06:14Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/editor-buttons\/1.2.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-editor-buttons","slug":"editor-buttons","install_path":"user\/plugins\/editor-buttons","content_sha256":"3c51c19692593485edec827ce3fa4e5d1239b0a017df7ba6cde6ddf08999ee1c","changelog":{"1.2.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.2.1":{"date":"06\/29\/2017","content":"1. [](#bugfix)\n    * Fix release number\n"},"1.2.0":{"date":"06\/29\/2017","content":"1. [](#new)\n    * Added Shortcode Core + Shortcode UI Button Dropdown. PR by [@dennemark](https:\/\/github.com\/dennemark) [#23](https:\/\/github.com\/getgrav\/grav-plugin-editor-buttons\/pull\/23)\n"},"1.1.3":{"date":"11\/03\/2016","content":"1. [](#bugfix)\n    * Fixed an issue with the Insert Table button. Prevents the `click` and `mouseover` events from being attached more than once in order to prevent tables from spawning erratically. [#20](https:\/\/github.com\/getgrav\/grav-plugin-editor-buttons\/pull\/20)\n"},"1.1.2":{"date":"08\/09\/2016","content":"1. [](#bugfix)\n    * Old notices markdown syntax (>>>) replaced with new (!) [#16](https:\/\/github.com\/getgrav\/grav-plugin-editor-buttons\/pull\/16)\n1. [](#improved)\n    * Added german and romanian translations\n"},"1.1.1":{"date":"07\/14\/2016","content":"1. [](#bugfix)\n    * Fixed event to load the assets to work properly\n1. [](#improved)\n    * Renamed the css\/js files for consistency\n"},"1.1.0":{"date":"07\/13\/2016","content":"1. [](#improved)\n    * Only shows the notices button if the Markdown Notices plugin is installed\n1. [](#bugfix)\n    * Fixed ES6 syntax to ES5 compatibility [#10](https:\/\/github.com\/getgrav\/grav-plugin-editor-buttons\/issues\/10)\n    * Added feature dependency check for markdown-notices [#9](https:\/\/github.com\/getgrav\/grav-plugin-editor-buttons\/issues\/9)\n    * Changed asset URL to relative URL from absolute URL\n"},"1.1.0-beta.1":{"date":"06\/05\/2016","content":"1. [](#new)\n    * Compatibility with Admin 1.1\n    * Multilanguage support with russian, french and english\n1. [](#improved)\n    * Moved notices under a grouped button\n"},"1.0.0":{"date":"10\/07\/2015","content":"1. [](#new)\n    * First release"}}},"file-content":{"name":"File Content","version":"1.0.1","description":"**FileContent** is a simple plugin that adds a Twig extension to allow you to include a file into your template","description_html":"<p><strong>FileContent<\/strong> is a simple plugin that adds a Twig extension to allow you to include a file into your template<\/p>","description_plain":"FileContent is a simple plugin that adds a Twig extension to allow you to include a file into your template","icon":"paperclip","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-file-content","keywords":"inject, embed, include","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-file-content\/issues","license":"MIT","tag_name":"1.0.1","date":"2026-05-05T14:07:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/file-content\/1.0.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-file-content","slug":"file-content","install_path":"user\/plugins\/file-content","content_sha256":"3369b5f5717b16d2aedd76380546ccc19e0c5ec2321115c6276f74bfb2d9d951","changelog":{"1.0.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.0.0":{"date":"09\/18\/2015","content":"1. [](#new)\n    * ChangeLog started...."}},"dependencies":[]},"data-manager":{"name":"Data Manager","version":"1.4.4","description":"Adds an administration panel to visualize the data","description_html":"<p>Adds an administration panel to visualize the data<\/p>","description_plain":"Adds an administration panel to visualize the data","icon":"database","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-data-manager","keywords":"admin, plugin, manager, panel, data, manager","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-data-manager\/issues","license":"MIT","tag_name":"1.4.4","date":"2026-07-02T20:38:02Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/data-manager\/1.4.4","repository":"https:\/\/github.com\/getgrav\/grav-plugin-data-manager","slug":"data-manager","install_path":"user\/plugins\/data-manager","content_sha256":"008c00a4d1dd98289898a0e0ec56e25c804dd5ed3f8708026130a7a09a439abe","changelog":{"1.4.4":{"date":"07\/02\/2026","content":"1. [](#improved)\n    * Removed the hard `admin` plugin dependency so the plugin installs on Grav 2.0 sites running Admin Next.\n"},"1.4.3":{"date":"07\/02\/2026","content":"1. [](#new)\n    * Added full Grav 2.0 \/ Admin Next support with a tabular data browser, item viewer, delete and CSV export ([#51](https:\/\/github.com\/getgrav\/grav-plugin-data-manager\/issues\/51)).\n"},"1.4.2":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.4.1":{"date":"01\/08\/2022","content":"1. [](#bugfix)\n   * Fixed wrong order of parameters in `implode`, causing redirect to throw exception.\n   * Fixed issue with certain file types not being deletable.\n"},"1.4.0":{"date":"01\/08\/2022","content":"1. [](#new)\n   * It is now possible to delete items [#41](https:\/\/github.com\/getgrav\/grav-plugin-data-manager\/pull\/41), [#42](https:\/\/github.com\/getgrav\/grav-plugin-data-manager\/pull\/42)\n   * Allow CVS even with list customization [#35](https:\/\/github.com\/getgrav\/grav-plugin-data-manager\/pull\/35)\n   * Mark visited data items to different color [#24](https:\/\/github.com\/getgrav\/grav-plugin-data-manager\/pull\/24)\n2. [](#bugfix)\n   * Properly store generated CSV files into tmp\/cache folder before download, rather than Grav root [#27](https:\/\/github.com\/getgrav\/grav-plugin-data-manager\/pull\/27)\n"},"1.3.0":{"date":"10\/08\/2021","content":"1. [](#improved)\n   1. Support for multi-site and `user-data:\/\/` data stream instead of hardcoded `DATA_DIR` [#40](https:\/\/github.com\/getgrav\/grav-plugin-data-manager\/pull\/40)\n"},"1.2.0":{"date":"04\/13\/2018","content":"1. [](#new)\n    * Added support for JSON and HTML files\n    * Added support for the new form raw data format (Forms v2.13.3)\n1. [](#improved)\n    * Improved data format detection\n    * Improved layout when viewing individual data item\n1. [](#bugfix)\n    * Fixed crash if loading data fails because of bad input (display raw text instead)\n    * Fixed CSV output if the fields of the data has been changed over time\n"},"1.1.1.0":{"date":"04\/09\/2018","content":"1. [](#new)\n    * Added basic CSV export of data\n1. [](#improved)\n    * Sort files by filename rather than the order they are found in filesystem\n    * Added german translation\n"},"1.0.7":{"date":"10\/24\/2016","content":"1. [](#improved)\n    * Added Romanian translation\n1. [](#bugfix)\n    * Avoid error if a file is found in the `user\/data` folder (fixes `licences.yaml` issue), ignore the file instead\n"},"1.0.6":{"date":"07\/14\/2016","content":"1. [](#improved)\n    * Added danish language\n"},"1.0.5":{"date":"04\/26\/2016","content":"1. [](#bugfix)\n    * Default to use `.yaml` data files extension. Also check for `.txt`\n"},"1.0.4":{"date":"02\/18\/2016","content":"1. [](#bugfix)\n    * Fix the enabled field type, make it visible\n1. [](#improved)\n    * Added admin translations\n    * Dropped custom twig extension, uses Grav core one\n    * Use onAdminMenu instead of the deprecated onAdminTemplateNavPluginHook\n"},"1.0.3":{"date":"10\/21\/2015","content":"1. [](#bugfix)\n    * Only run in admin\n"},"1.0.2":{"date":"10\/07\/2015","content":"1. [](#bugfix)\n    * Fixed incorrect icon\n"},"1.0.1":{"date":"09\/16\/2015","content":"1. [](#new)\n    * New `onDataTypeExcludeFromDataManagerPluginHook()` plugin hook\n1. [](#bugfix)\n    * Single item fields visualization: strip all tags except `br` to allow multi-line\n"},"1.0.0":{"date":"09\/11\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"maintenance":{"name":"Maintenance","version":"1.3.4","description":"Puts your grav site into a maintenance mode","description_html":"<p>Puts your grav site into a maintenance mode<\/p>","description_plain":"Puts your grav site into a maintenance mode","icon":"exclamation-triangle","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"login","version":"*"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-maintenance","keywords":"maintenance, plugin, required","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-maintenance\/issues","license":"MIT","tag_name":"1.3.4","date":"2026-05-05T14:08:15Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/maintenance\/1.3.4","repository":"https:\/\/github.com\/getgrav\/grav-plugin-maintenance","slug":"maintenance","install_path":"user\/plugins\/maintenance","content_sha256":"172a739d2e395f0c0fc52e1289ceccf1fc411e896294fb4f1fdb84329b3d80d6","changelog":{"1.3.4":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.3.3":{"date":"03\/22\/22","content":"1. [](#improved)\n    * Custom HTTP Status code [#28](https:\/\/github.com\/getgrav\/grav-plugin-maintenance\/pull\/28)\n    * Updated language codes to support Italian\n1. [](#bugfix)\n    * if auto-escape twig template [#36](https:\/\/github.com\/getgrav\/grav-plugin-maintenance\/issues\/36)\n"},"1.3.2":{"date":"12\/10\/2018","content":"1. [](#bugfix)\n    * if `allow_login` is `false` don't allow a logged in user to skip maintenance page\n"},"1.3.1":{"date":"02\/17\/2017","content":"1. [](#new)\n    * Added spanish translation\n1. [](#bugfix)\n    * Hide the forgot button [#17](https:\/\/github.com\/getgrav\/grav-plugin-maintenance\/issues\/17)\n"},"1.3.0":{"date":"01\/24\/2017","content":"1. [](#new)\n    * Added event `getMaintenancePage` to allow theme or plugin to override maintenance page\n    * Added event `onMaintenancePage` which replaces `onPageInitialized` event\n1. [](#bugfix)\n    * Fixed plugin not working with Twig setting `Autoescape variables` set to `Yes`\n    * Fixed `Login access` setting having no effect\n    * Prevent other plugins from overriding maintenance page by blocking `onPage(s)Initialized` events\n"},"1.2.1":{"date":"09\/06\/2016","content":"1. [](#improved)\n    * Added Romanian translation\n1. [](#bugfix)\n    * Fix Login form not appearing [#11](https:\/\/github.com\/getgrav\/grav-plugin-maintenance\/issues\/11)\n"},"1.2.0":{"date":"07\/14\/2016","content":"1. [](#new)\n    * Allow translation of the maintenance login form\n"},"1.1.0":{"date":"05\/03\/2016","content":"1. [](#new)\n    * Added `zh-hk`, `zh-cn`, and `de` translations\n"},"1.0.2":{"date":"01\/06\/2016","content":"1. [](#bugfix)\n    * Fixed the default placeholder for the maintenance page route in Admin\n1. [](#new)\n    * Added `fr` translation\n"},"1.0.1":{"date":"09\/01\/2015","content":"1. [](#new)\n    * Added `login` plugin dependency\n"},"1.0.0":{"date":"09\/01\/2015","content":"1. [](#new)\n    * ChangeLog started..."}}},"themer":{"name":"Themer","version":"1.1.0","description":"This plugin enables you to use different themes on one site individual set per page or collection.","description_html":"<p>This plugin enables you to use different themes on one site individual set per page or collection.<\/p>","description_plain":"This plugin enables you to use different themes on one site individual set per page or collection.","icon":"magic","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-themer","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-themer\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-themer\/issues","license":"MIT\/GPL","tag_name":"v1.1.0","date":"2016-07-20T09:45:13Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/themer\/1.1.0","repository":"https:\/\/github.com\/sommerregen\/grav-plugin-themer","slug":"themer","install_path":"user\/plugins\/themer","content_sha256":"1cc939de84bff20788870bf04002de6eb0e2ef2c43529e33844e4f598deccea3","changelog":{"1.1.0":{"date":"07\/20\/2016","content":"2. [](#improved)\n  * Released stable version (requires **Grav v1.1.0+**)\n"},"1.1.0-beta.1":{"date":"06\/24\/2016","content":"1. [](#new)\n  * Added blueprints to select the template of a page\n2. [](#improved)\n  * Added French translations [#3](https:\/\/github.com\/Sommerregen\/grav-plugin-themer\/pull\/3) (:fr: proposal)\n  * Removed deprecated code (requires **Grav v0.9.43+** now)\n  * Code now fully complies with the [PSR 0\/2](https:\/\/github.com\/php-fig\/fig-standards\/blob\/master\/accepted\/PSR-2-coding-style-guide.md) coding standard\n"},"1.0.3":{"date":"10\/16\/2015","content":"2. [](#improved)\n  * Disable `TraceableTwigEnvironment` for **Grav v0.9.43+** by default and added backwards-compatibility check [#2](https:\/\/github.com\/Sommerregen\/grav-plugin-themer\/issues\/2) (TraceableTwigEnvironment not found)\n"},"1.0.2":{"date":"09\/08\/2015","content":"2. [](#improved)\n  * Added blueprints for Grav Admin plugin\n3. [](#bugfix)\n  * Fixed `DebugBarException` (\"twig\" is not a registered collector)\n"},"1.0.1":{"date":"08\/21\/2015","content":"3. [](#bugfix)\n  * Fixed missing Twig update routines\n"},"1.0.0":{"date":"08\/20\/2015","content":"1. [](#new)\n  * ChangeLog started..."}},"dependencies":[]},"admin":{"name":"Admin Panel","version":"1.10.53","description":"The **admin plugin** provides an easy-to-use web-based user interface to configure and operate Grav on a daily basis. It&#39;s packed full of great features and functionality but still sticks to Grav&#39;s principals of keeping things **simple**, **fast**, and **extensible**.  Check out the [Admin Documentation](http:\/\/learn.getgrav.org\/admin-panel) for more detailed information.","description_html":"<p>The <strong>admin plugin<\/strong> provides an easy-to-use web-based user interface to configure and operate Grav on a daily basis. It&#39;s packed full of great features and functionality but still sticks to Grav&#39;s principals of keeping things <strong>simple<\/strong>, <strong>fast<\/strong>, and <strong>extensible<\/strong>.  Check out the <a href=\"http:\/\/learn.getgrav.org\/admin-panel\">Admin Documentation<\/a> for more detailed information.<\/p>","description_plain":"The admin plugin provides an easy-to-use web-based user interface to configure and operate Grav on a daily basis. It&#39;s packed full of great features and functionality but still sticks to Grav&#39;s principals of keeping things simple, fast, and extensible.  Check out the Admin Documentation for more detailed information.","icon":"empire","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.49"},{"name":"form","version":">=6.0.1"},{"name":"login","version":">=3.7.8"},{"name":"email","version":">=3.1.6"},{"name":"flex-objects","version":">=1.2.0"}],"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-admin","docs":"https:\/\/github.com\/getgrav\/grav-plugin-admin\/blob\/develop\/README.md","keywords":"admin, plugin, manager, panel","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-admin\/issues","license":"MIT","tag_name":"1.10.53","date":"2026-07-22T04:37:06Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/admin\/1.10.53","repository":"https:\/\/github.com\/getgrav\/grav-plugin-admin","slug":"admin","install_path":"user\/plugins\/admin","content_sha256":"9a5bb888aa6a4a93c0fa56db3273a789c5554459a7654835539e8935658fac3c","changelog":{"1.10.53":{"date":"07\/21\/2026","content":"1. [](#bugfix)\n    * [security] An admin who can manage users but is not a super admin can no longer reset a super admin's password, closing a privilege-escalation path (GHSA-p97c-g455-q447).\n    * File field \"View\" links now open the file's actual stored URL and no longer trigger a broken image request ([#2517](https:\/\/github.com\/getgrav\/grav-plugin-admin\/pull\/2517)).\n1. [](#improved)\n    * Inserting a media file whose name contains spaces now produces clean, readable caption text in the Markdown instead of showing `%20`. Relates to [getgrav\/grav#4197](https:\/\/github.com\/getgrav\/grav\/issues\/4197).\n    * Refreshed the admin theme's build tooling and stopped committing developer-only lockfiles so the plugin no longer raises dependency vulnerability alerts in projects that track it.\n"},"1.10.52":{"date":"06\/10\/2026","content":"1. [](#bugfix)\n    * Fixed `bin\/gpm` commands silently exiting on a fresh Grav 2.0 + Admin install before any user accounts had been created ([grav#4079](https:\/\/github.com\/getgrav\/grav\/issues\/4079)).\n    * Fixed a 404 when creating or renaming a top-level page whose folder name starts with \"admin\" (for example `administration`), caused by the admin redirect mistaking it for the admin route ([grav-plugin-admin#2513](https:\/\/github.com\/getgrav\/grav-plugin-admin\/issues\/2513)).\n"},"1.10.51":{"date":"05\/05\/2026","content":"1. [](#new)\n    * Release as 1.10.51\n"},"1.10.49.5":{"date":"05\/05\/2026","content":"1. [](#bugfix)\n    * [security] Fixed stored XSS in the page move\/parents dialog (GHSA-fmg2-f5r9-24qc)\n"},"1.10.49.4":{"date":"04\/16\/2026","content":"1. [](#new)\n    * Grav 2.0 migration banner on the dashboard \u2014 surfaces when the remote advertises a next-major release, with stacked CTAs for either \"Start migration\" (when migrate-grav is enabled) or \"Install Migrate plugin\" (deep-linking to `\/admin\/plugins\/migrate-grav`), plus an external \"Learn how to migrate\" link\n2. [](#improved)\n    * Log date handling in Tools \u2192 Logs now renders more reliably ([#2497](https:\/\/github.com\/getgrav\/grav-plugin-admin\/pull\/2497))\n    * Backup dates now carry a `title` attribute for the full timestamp on hover ([#2499](https:\/\/github.com\/getgrav\/grav-plugin-admin\/pull\/2499))\n3. [](#bugfix)\n    * Scheduler status display now matches runtime enabled logic \u2014 no more \"enabled\" showing for jobs that won't actually run\n    * Single-file save path fixed\n    * Module folder renames now preserve the leading underscore (`_folder`)\n    * 2FA verification no longer fails when the pasted token carries trailing\/embedded whitespace ([#2489](https:\/\/github.com\/getgrav\/grav-plugin-admin\/issues\/2489))\n    * scheduler-webhook plugin compatibility fixes\n"},"1.10.49.3":{"date":"01\/27\/2026","content":"1. [](#improved)\n    * Support new `licensing.getgrav.org` server for premium downloads\n"},"1.10.49.2":{"date":"12\/29\/2025","content":"1. [](#improved)\n    * Added fallback autoloader to handle class location changes during upgrades\n    * Lazy-load WhiteLabel and ScssCompiler to avoid loading scssphp during upgrades\n    * Use sendJsonResponse() to exit early after package install\/reinstall tasks\n"},"1.10.49.1":{"date":"09\/03\/2025","content":"1. [](#bugfix)\n    * Fixed several JS issues with Notifications and Scheduler\n"},"1.10.49":{"date":"08\/25\/2025","content":"1. [](#new)\n    * Upgraded to very latest FontAwesome 7.0 with custom ForkAwesome Shim\n    * Support for enhanced Scheduler in admin\n    * PHP 8.4 compatibility\n1. [](#improved)\n    * Vendor libraries updated\n    * Added translations for Fetchpriority Trait [#2436](https:\/\/github.com\/getgrav\/grav-plugin-admin\/pull\/2346)\n    * Other various missing langs strings added to 'english' translation\n1. [](#bugfix)\n    * Fix `force_ssl` use schema instead of server var [#2435](https:\/\/github.com\/getgrav\/grav-plugin-admin\/pull\/2345)\n    * Fix for fully turning off notifications JS\n"},"1.10.48":{"date":"10\/28\/2024","content":"1. [](#improved)\n  * Treat AVIF as image when inserting \/ drag & dropping\n  * PHP 8.4 fixes - Implicitly nullable parameter declarations deprecate\n"},"1.10.47":{"date":"10\/22\/2024","content":"1. [](#improved)\n  * Added missing `show_label` logic in list field\n  * Use plugin's selected icon when in plugin properties\n"},"1.10.46":{"date":"05\/15\/2024","content":"1. [](#improved)\n  * Used Login's new `site_host` security setting for Admin password reset. Requires Login version `3.7.8+`\n"},"1.10.45":{"date":"03\/18\/2024","content":"1. [](#improved)\n   * Improved class assignment for form fields [#2399](https:\/\/github.com\/getgrav\/grav-plugin-admin\/pull\/2379)\n   * Added label, sublabel, and icon help to list field [#2384](https:\/\/github.com\/getgrav\/grav-plugin-admin\/pull\/2384)\n   * Set admin language to user preference [#2369](https:\/\/github.com\/getgrav\/grav-plugin-admin\/pull\/2369)\n   * Updated language files to [latest translations](https:\/\/crowdin.com\/project\/grav-admin)\n"},"1.10.44":{"date":"01\/05\/2024","content":"1. [](#improved)\n   * Updated languages with fresh **Crowdin.com** builds\n   * Updated copyright date\n1. [](#bugfix)\n   * fixed `medium` tags in select fields [#2376]((https:\/\/github.com\/getgrav\/grav-plugin-admin\/pull\/2376)\n"},"1.10.43":{"date":"10\/02\/2023","content":"1. [](#improved)\n   * Updated vendor libraries\n"},"1.10.42":{"date":"06\/14\/2023","content":"1. [](#new)\n   * Added a couple of string translations\n"},"1.10.41.2":{"date":"05\/11\/2023","content":"1. [](#improved)\n   * Fixed an issue with `lastBackup()` that caused admin dashboard to fail with an error.\n"},"1.10.41.1":{"date":"05\/09\/2023","content":"1. [](#improved)\n   * Fixed another Toolbox deprecation error for `lastBackup()`\n"},"1.10.41":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Updated to use new `BaconQRCode` version `2.0.8` for new SVG features + PHP 8.2+ fixes\n1. [](#improved)\n   * Require Grav `v1.7.41`\n   * Fixed a deprecated message where `Admin::$routes` was being dynamically defined\n   * Fixes to use non-deprecated methods in `ScssCompiler`\n"}}},"email":{"name":"Email","version":"5.0.3","description":"Enables the emailing system for Grav","description_html":"<p>Enables the emailing system for Grav<\/p>","description_plain":"Enables the emailing system for Grav","icon":"envelope","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.41"},{"name":"form","version":">=8.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-email","keywords":"plugin, email, sender","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-email\/issues","license":"MIT","tag_name":"5.0.3","date":"2026-06-14T22:58:39Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/email\/5.0.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-email","slug":"email","install_path":"user\/plugins\/email","content_sha256":"5a8d00a4bec51367a2d6f703e2d7f2bd432e5553a923b25915005f0b1a0b9174","changelog":{"5.0.3":{"date":"06\/14\/2026","content":"1. [](#improved)\n    * Email templates that fail to render (a Twig syntax error, or an unresolved include or extends) are now logged to the email and Grav logs instead of failing silently, so a broken template is much easier to track down.\n"},"5.0.2":{"date":"06\/08\/2026","content":"1. [](#improved)\n    * Button links in HTML emails now keep their white text in email clients that force their own link color, by targeting the `a.btn-primary` and `a.btn-secondary` selectors with `!important`.\n"},"5.0.1":{"date":"04\/17\/2026","content":"1. [](improved)\n    * Fixed compatiblity\n"},"5.0.0":{"date":"04\/17\/2026","content":"1. [](#new)\n    * Added Grav 2.0 \/ Admin 2.0 support\n"},"4.2.2":{"date":"12\/10\/2025","content":"1. [](#bugfix)\n    * Fixed `createAddress()` to gracefully handle empty or invalid email addresses instead of throwing RFC 2822 errors\n    * Fixed Twig processing to bypass Grav 1.8's security filter for trusted email config (fixes issues with `{% include %}` and field names containing `mail`)\n"},"4.2.1":{"date":"11\/24\/2025","content":"1. [](#improved)\n    * Added more details for HTTP error logs when using API-based email providers\n    * Addressed a compatibility issue with Grav 1.8beta\n"},"4.2.0":{"date":"08\/25\/2025","content":"1. [](#new)\n    * PHP 8.4 compatibility\n1. [](#improved)\n    * Vendor library updates\n"},"4.1.2":{"date":"01\/06\/2025","content":"1. [](#improved)\n    * Updated to latest symfony libraries (`v5.4.45`)\n    * Added a note about Google App Passwords for authentication in the README.md\n"},"4.1.1":{"date":"10\/28\/2024","content":"1. [](#improved)\n  * Updated logging methods to support Monolog2+\n"},"4.1.0":{"date":"04\/09\/2024","content":"1. [](#improved)\n   * Update vendor libraries for Mailer to latest `5.4` versions\n   * When you send an email you can use `Email::getLastSendMessage()` and `Email::getLastSendDebug()` methods to get information about the email processing.\n"},"4.0.4":{"date":"07\/10\/2023","content":"1. [](#bugfix)\n   * Fix for email file attachments using stream\n"},"4.0.3":{"date":"06\/29\/2023","content":"1. [](#improved)\n   * Simplified the `Email::processRecipients()` logic for readability\n1. [](#bugfix)\n   * Fix an issue with 2 email addresses provided with 'just' email and no name [#176](https:\/\/github.com\/getgrav\/grav-plugin-email\/issues\/176)\n   * Fix for blank subjectlines when using `Message::setSubject()` in Twig templates [getgrav\/grav-plugin-login#299](https:\/\/github.com\/getgrav\/grav-plugin-login\/issues\/299)\n"},"4.0.2":{"date":"06\/27\/2023","content":"1. [](#bugfix)\n   * some recipient handling improvements. e.g. missing `bcc_name` throwing error\n   * Allow overriding of defaults with a form configuration.  Use `null` to remove default email configuration\n"},"4.0.1":{"date":"05\/20\/2023","content":"1. [](#bugfix)\n   * Fixed a bug with Email 4.0 ignoring `template:` parameter when dealing with multiple body sections\n"},"4.0.0":{"date":"05\/09\/2023","content":"1. [](#new)\n   * Migrated from `Swiftmailer` (which has been deprecated) to `Symfony\/Mailer`, a more modern and extensible mailing library.\n   * Built-in support for `SMTP`, `SMTPS`, `Sendmail` and `Native` (uses best solution per-platform) engines\n   * Added ability to have 3rd party plugins that provide new engines (e.g. `SendGrid`, `MailJet`, etc.) with `SMTP`, `API` or `HTTPS` transports for faster and more reliable email sending\n   * More flexible options for email formatting including RFC822 `name-addr` format (`Joe Bloggs <user@example.com>`) and simple arrays (`[user@example.com, Joe Bloggs]`)\n   * Support `tags` and `metadata` in `Email::buildMessage()`\n   * Two new events `onEmailEngines` and `onEmailTransportDsn` to facilitate the integration of custom engines via plugins\n"},"4.0.0-rc.4":{"date":"02\/27\/2023","content":"1. [](#bugfix)\n   * Fixed for multiple recipients [#167](https:\/\/github.com\/getgrav\/grav-plugin-email\/issues\/167)\n   * Fix for simple array format with names which wasn't working\n"},"4.0.0-rc.3":{"date":"10\/27\/2022","content":"1. [](#bugfix)\n   * Fixed an issue with array based email address\n"},"4.0.0-rc.2":{"date":"10\/19\/2022","content":"1. [](#improved)\n   * Set `sendmail` as default engine to provide better fallback for unsupported `mailer` option\n   * Added info about available engine plugins in `README.md`\n"},"4.0.0-rc.1":{"date":"10\/05\/2022","content":"1. [](#new)\n   * Migrated from `Swiftmailer` (which has been deprecated) to `Symfony\/Mailer`, a more modern and extensible mailing library.\n   * Built-in support for `SMTP`, `SMTPS`, `Sendmail` and `Native` (uses best solution per-platform) engines\n   * Added ability to have 3rd party plugins that provide new engines (e.g. `SendGrid`, `MailJet`, etc.) with `SMTP`, `API` or `HTTPS` transports for faster and more reliable email sending\n   * More flexible options for email formatting including RFC822 `name-addr` format (`Joe Bloggs <user@example.com>`) and simple arrays (`[user@example.com, Joe Bloggs]`)\n   * Support `tags` and `metadata` in `Email::buildMessage()`\n   * Two new events `onEmailEngines` and `onEmailTransportDsn` to facilitate the integration of custom engines via plugins\n"},"3.2.0":{"date":"03\/28\/2022","content":"1. [](#new)\n    * Require **Grav 1.7.32** and **Form 6.0.0**\n1. [](#improved)\n    * Added access email message object inside the twig template file\n2. [](#bugfix)\n    * Fixed twig not being initialized when building an email message\n"}}},"form":{"name":"Form","version":"9.1.17","description":"Enables forms handling and processing","description_html":"<p>Enables forms handling and processing<\/p>","description_plain":"Enables forms handling and processing","icon":"check-square","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.51"},{"name":"php","version":">=8.1"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-form","keywords":"plugin, form","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-form\/issues","license":"MIT","tag_name":"9.1.17","date":"2026-07-26T12:27:54Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/form\/9.1.17","repository":"https:\/\/github.com\/getgrav\/grav-plugin-form","slug":"form","install_path":"user\/plugins\/form","content_sha256":"fc94e00ed52bfe2a4bfdf7f93d13938348d301e84b3ea7c3a92b80a144fa33c4","changelog":{"9.1.17":{"date":"07\/26\/2026","content":"1. [](#improved)\n    * Radio, toggle and checkboxes option labels can render HTML again by setting `markdown: true` on the field, the same flag that already enables markup in a field's label, help and description ([#639](https:\/\/github.com\/getgrav\/grav-plugin-form\/issues\/639)).\n"},"9.1.16":{"date":"07\/25\/2026","content":"1. [](#improved)\n    * A theme can now override just the form's button loop through template blocks, matching how field markup can already be overridden, instead of having to copy the whole form template ([#638](https:\/\/github.com\/getgrav\/grav-plugin-form\/pull\/638)).\n"},"9.1.15":{"date":"07\/24\/2026","content":"1. [](#bugfix)\n    * [security] Radio and toggle field option labels are now escaped instead of being rendered as raw HTML, so a form definition can no longer place a script in an option label that runs when the form is viewed ([GHSA-5xv4-g337-2pg7](https:\/\/github.com\/getgrav\/grav\/security\/advisories\/GHSA-5xv4-g337-2pg7)).\n    * The Cap captcha now actually uses the WASM binary that ships with the plugin. `cap.min.js` starts fetching it as soon as it runs and remembers whichever URL it resolved first, but `CAP_CUSTOM_WASM_URL` was only being set on `DOMContentLoaded`, which happens after that fetch has begun. Every visitor was therefore downloading the binary from the jsDelivr CDN, giving the contact form a third party dependency it does not need and leaking a request to anyone running one\n"},"9.1.14":{"date":"07\/21\/2026","content":"1. [](#bugfix)\n    * Saving a form a second time into the same folder no longer fails with \"Resolved path escapes the data directory\" on Windows\n"},"9.1.13":{"date":"07\/15\/2026","content":"1. [](#bugfix)\n    * A form's `redirect` now ignores an off-site destination that arrives through submitted form data, while redirects the site itself specifies keep working as before\n"},"9.1.12":{"date":"07\/14\/2026","content":"1. [](#bugfix)\n    * Captcha validation, the `timestamp` and `ip` process actions, and YAML `save` no longer fatal with \"Call to a member function on array\" \u2014 five call sites still treated `Form::value()` as a Data object after the 9.1.11 sandbox fix changed it to return a plain array\n"},"9.1.11":{"date":"07\/13\/2026","content":"1. [](#bugfix)\n    * Form `redirect` and `message` values that use Twig with submitted form data (such as `{{ form.value.email }}`) now resolve again under the content sandbox instead of passing through unevaluated\n"},"9.1.10":{"date":"07\/02\/2026","content":"1. [](#improved)\n    * The `array` field's sort, remove, and add controls now get comfortable spacing and padded hit targets, with a muted look that brightens on hover and reads correctly on dark themes.\n1. [](#bugfix)\n    * Active tab labels in the `tabs` field no longer force black text, keeping them readable on dark themes.\n"},"9.1.9":{"date":"06\/30\/2026","content":"1. [](#bugfix)\n    * The `form` page template now appears in the Add Page template list in the new Grav 2.0 admin.\n"},"9.1.8":{"date":"06\/25\/2026","content":"1. [](#bugfix)\n    * Security: the form `save` action now rejects a `folder` setting that tries to escape the data directory, preventing form files from being written elsewhere on disk.\n    * Security: the form `save` action now re-checks the filename after template processing, so submitted form values can no longer turn it into a disallowed file type or a path outside the data directory.\n"},"9.1.7":{"date":"06\/23\/2026","content":"1. [](#improved)\n    * The `datetime` form field now renders a real date and time picker that follows the visitor's language and region, instead of falling back to a plain text box.\n"},"9.1.6":{"date":"06\/18\/2026","content":"1. [](#bugfix)\n    * Failing a captcha (or any other validation error) no longer blocks you from correcting the form and resubmitting when refresh prevention is enabled.\n    * Custom captcha failure messages set with the older `recaptcha_not_validated` key work again alongside the current `captcha_not_validated` key.\n"},"9.1.5":{"date":"06\/08\/2026","content":"1. [](#bugfix)\n    * Fixed a typo in the form data email template that referenced a non-existent `emarkdown` filter, which on Grav 2.0 could cause form notification emails to arrive with the raw `{% include %}` tag in the body instead of the submitted data.\n"},"9.1.4":{"date":"05\/29\/2026","content":"1. [](#bugfix)\n    * **FilePond previews for files whose names contain `#` or `?` no longer 404.** The `image_url` and `thumb_url` returned by the upload handler now percent-encode those characters in the path so the browser doesn't treat them as fragment\/query delimiters.\n"},"9.1.3":{"date":"05\/06\/2026","content":"1. [](#bugfix)\n    * Bumped `trilbymedia\/cap-php` to `^1.0` (was `^0.1.1`) to pull in 1.0.0, which fixes a fatal `Cache key length must be less than 65 characters` error from `Psr16Storage` when using the Cap captcha provider with a strict PSR-16 cache backend (e.g. Grav's default cache). Cap challenge\/redeem endpoints would 500 immediately on issuance.\n"},"9.1.2":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"9.1.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n   * Fix Changelog date on v9.0.0 entry\n"},"9.1.0":{"date":"04\/29\/2026","content":"1. [](#new)\n   * PHP 8.1 now set in dependencies\n1. [](#bugfix)\n   * [security] Fixed unauthenticated page-content overwrite via file upload (GHSA-w4rc-p66m-x6qq). Public form uploads now strip path components from the POST-supplied filename and hard-block page-content extensions (`md`, `yaml`, `yml`, `json`, `twig`, `ini`) regardless of the configurable dangerous-extensions list. A permissive `accept` policy combined with the default `destination: self@` could otherwise let an attacker overwrite the page's own `.md` and pivot to super-admin via a `process: save` action.\n"},"9.0.3":{"date":"04\/28\/2026","content":"1. [](#bugfix)\n   * fix for selectize to support selectize with keys\n"},"9.0.2":{"date":"04\/27\/2026","content":"1. [](#improved)\n   * Support saving keys in selectize field\n"}}},"login":{"name":"Login","version":"3.8.13","description":"Enables user authentication and login screen.","description_html":"<p>Enables user authentication and login screen.<\/p>","description_plain":"Enables user authentication and login screen.","icon":"sign-in","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.41"},{"name":"form","version":">=8.0.0"},{"name":"email","version":">=5.0.0"},{"name":"shortcode-core","version":">=6.0.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-login","keywords":"login, authentication, admin, security","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-login\/issues","license":"MIT","tag_name":"3.8.13","date":"2026-07-14T22:10:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/login\/3.8.13","repository":"https:\/\/github.com\/getgrav\/grav-plugin-login","slug":"login","install_path":"user\/plugins\/login","content_sha256":"9157c589179338634d1731b07ee4aead2fe3b82867ab132bf4eba0ace4961590","changelog":{"3.8.13":{"date":"07\/14\/2026","content":"1. [](#bugfix)\n    * [security] Remember Me login tokens now actually expire after the configured timeout, closing a gap where a captured cookie stayed valid indefinitely instead of the default 7 days (GHSA-mj78-8gwc-vxjj). Thanks to chakrapani150 for the report.\n"},"3.8.12":{"date":"07\/08\/2026","content":"1. [](#bugfix)\n    * [security] The profile self-update form now ignores client-supplied `groups` and `access` fields, closing a privilege-escalation gap where a logged-in user could grant themselves super-admin if an administrator had added those fields to the registration allowlist (GHSA-h33v-82r9-v8pm). Thanks to zx (Jace) for the report.\n"},"3.8.11":{"date":"06\/29\/2026","content":"1. [](#bugfix)\n    * [security] Regenerating a user's two-factor secret now requires a fully authorized session, closing a window where someone who had the victim's password could rotate the secret and bypass the second factor (GHSA-7mgc-c7pq-3rr3).\n    * [security] Regenerating a two-factor secret now requires a POST request with a valid form nonce, preventing an off-site page from silently resetting a logged-in user's secret (GHSA-4px8-7p53-282r).\n"},"3.8.10":{"date":"06\/22\/2026","content":"1. [](#improved)\n    * The `form_button_classes` and `form_button_outer_classes` theme variables now apply to the forgot, reset, magic-link and logout buttons too, so a theme can restyle every login button by setting them once instead of overriding each template. Thanks to @3e33 for the report.\n"},"3.8.9":{"date":"06\/19\/2026","content":"1. [](#improved)\n    * Simplified the admin warning shown when email links are not pinned to a trusted host, and linked it to a new documentation page that explains the issue and how to fix it.\n"},"3.8.8":{"date":"06\/17\/2026","content":"1. [](#bugfix)\n    * The new `authenticated()` Twig function no longer uses syntax that only works on PHP 8.1 and newer, so the plugin loads again on Grav 1.7 sites running older PHP instead of failing with a parse error.\n"},"3.8.7":{"date":"06\/17\/2026","content":"1. [](#new)\n    * Added an `authenticated()` Twig function that lets page content check whether the current visitor is logged in, optionally requiring a given permission or group, working inside the Grav 2 content sandbox where the `grav.user` object is blocked.\n    * Added optional `[authenticated]` and `[guest]` shortcodes that run the same login, permission and group checks for sites that use shortcodes instead of Twig in content.\n2. [](#improved)\n    * The password reset page now shows the username through a `[uri param=\"user\" \/]` shortcode instead of Twig in content, so it works out of the box on Grav 2 where Twig in content is disabled by default (adds a shortcode-core dependency).\n"},"3.8.6":{"date":"06\/16\/2026","content":"1. [](#new)\n    * Added a \"Require Trusted Host\" security option that refuses to send password reset emails unless a Site Host (or the core Custom Base URL) is configured, instead of falling back to the request host.\n2. [](#improved)\n    * [security] The admin now shows a warning banner (in both the classic admin and Admin 2.0), and a line is written to the log, whenever password reset, activation, or magic-login email links are being built from the request host because neither the Site Host nor the core Custom Base URL is set, since a spoofed host could otherwise redirect those links to an attacker. Thanks to @n00o00b for the report.\n"},"3.8.5":{"date":"06\/08\/2026","content":"1. [](#bugfix)\n    * [security] The login form no longer follows an off-site `_redirect` target, closing an open redirect that an unauthenticated request could trigger through the `twofa_cancel` task (CWE-601). Thanks to @iliaal for the report.\n"},"3.8.4":{"date":"05\/13\/2026","content":"1. [](#improved)\n    * Vendor updates\n"},"3.8.3":{"date":"04\/24\/2026","content":"1. [](#new)\n   * `bin\/plugin login new-user` now supports picking which admin permission type(s) to grant when Admin Access is chosen: **classic Admin** (`admin.*`), **Admin2** (`api.*`), or **both**. Interactive mode adds a follow-up question with the detected default pre-selected (based on which admin plugin is installed under `user\/plugins\/`); scripted mode accepts a new `--admin-type admin|api|both` option and falls back to the same auto-detection when omitted.\n1. [](#bugfix)\n   * CLI-created admin users can now log into Admin2 on Grav 2.0. Previously only `admin.super` was written, which Admin2 ignores \u2014 see [#329](https:\/\/github.com\/getgrav\/grav-plugin-login\/issues\/329).\n"},"3.8.2":{"date":"04\/24\/2026","content":"1. [](#bugfix)\n   * [security] Fixed unauthenticated privilege escalation in `Login::register` (GHSA-pxm6-mhxr-q4mj): if an admin added `groups` or `access` to `user_registration.fields`, an attacker could self-register as super-admin by POSTing those values. Registration form input for those fields is now ignored with a log warning; server-side config, `default_values`, and invitations remain authoritative.\n2. [](#improved)\n   * IP pseudonymization (rate-limit keys, remember-me cookie salt) now uses `Security::getNonceKey()` when running on Grav 2.0+, and continues to read `security.salt` from config on Grav 1.7. Tracks Grav 2.0's GHSA-3f29-pqwf-v4j4 remediation (HMAC key is no longer reachable via sandboxed Twig).\n"},"3.8.1":{"date":"04\/17\/2026","content":"1. [](#new)\n   * **Magic Link (passwordless) login** \u2014 new `taskMagicRequest` endpoint sends a one-time, TTL-bound login link by email. Crypto-random token, SHA-256 hash stored server-side, invalidated before login, rate-limited per IP and per user. Neutral response regardless of account state to avoid enumeration. Opt-in via `magic_link.enabled` in `login.yaml` (off by default); adds a \"Login by link\" button on the login form when enabled. ([#326](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/326), [#328](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/328))\n   * Login \/ activation \/ reset \/ welcome \/ notification \/ invite emails are now sent as **multipart `text\/html + text\/plain`**, so mail clients that strip HTML still render a readable body. Shared `text` macro converts HTML \u2192 plain text while preserving paragraphs and lists. ([#325](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/325))\n2. [](#improved)\n   * Migrated legacy CSS to CSS3 ([#312](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/312))\n   * Switched hard-coded `http:\/\/` doc\/support links to `https:\/\/` ([#313](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/313))\n   * Improved Spanish translation ([#319](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/319))\n   * Pruned unused i18n strings ([#301](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/301))\n   * Documented the invite flow in the README\n3. [](#bugfix)\n   * Resending a now-invalid invite no longer returns a 500 \u2014 surfaces a clean error instead. ([#322](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/322))\n"},"3.8.0":{"date":"08\/25\/2025","content":"1. [](#new)\n   * PHP 8.4 compatibility\n1. [](#improved)\n   * Updated vendor libraries to latest\n   * Updated Support links\n"},"3.7.9":{"date":"05\/15\/2024","content":"1. [](#improved)\n   * Added default `site_host:` entry to `login.yaml` configuration file\n"},"3.7.8.1":{"date":"04\/19\/2024","content":"1. [](#bugfix)\n    * Fixed a typo in `Email::sendActivationEmail()` [#303](https:\/\/github.com\/getgrav\/grav-plugin-login\/issues\/303)\n"},"3.7.8":{"date":"04\/16\/2024","content":"1. [](#improved)\n   * Use `random_bytes()` for password reset and activation, only fallback to `mt_rand()` if there's a generation error - discovered by [Fortbridge](https:\/\/fortbridge.co.uk)\n   * Added a new `site_host` field in the \"Security\" section to use in password reset and activation links sent in email. This allows you to avoid any \"Password Reset Poisoning\" attacks. - discovered by [Fortbridge](https:\/\/fortbridge.co.uk)\n   * Added a new warning in reset and activation emails that shows the \"site host\" clearly in order to avoid any nefariously sent emails.\n"},"3.7.7":{"date":"01\/05\/2024","content":"1. [](#improved)\n   * Updated French translation [#292](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/292)\n   * Updated Russian translation [#295](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/295)\n   * Prevent session fixation only if initialized [#296](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/296)\n"},"3.7.6":{"date":"06\/29\/2023","content":"1. [](#bugfix)\n   * Don't save an empty user file on password reset of non-existing user\n"},"3.7.5":{"date":"06\/14\/2023","content":"1. [](#bugfix)\n   * Sanitized `email` during the \"forgot password\" process to protect against XSS attacks\n   * Fixed an account enumeration vulnerability in forgot password [#293](https:\/\/github.com\/getgrav\/grav-plugin-login\/pull\/293)\n"}}},"login-oauth":{"name":"Login Plugin OAuth Addon","version":"1.4.1","description":"Enables login with OAuth accounts. Currently provides Facebook, Google, Twitter, Github, Linkedin","description_html":"<p>Enables login with OAuth accounts. Currently provides Facebook, Google, Twitter, Github, Linkedin<\/p>","description_plain":"Enables login with OAuth accounts. Currently provides Facebook, Google, Twitter, Github, Linkedin","icon":"sign-in","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"login","version":">=2.5.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-login-oauth","keywords":"login, oauth, social","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-login-oauth\/issues","license":"MIT","tag_name":"1.4.2","date":"2026-06-02T13:33:28-06:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/login-oauth\/1.4.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-login-oauth","slug":"login-oauth","install_path":"user\/plugins\/login-oauth","content_sha256":"3e4c3d86619cd4b4e1983c17799cd7b788213f742c04330cb6edb01b6b02bde6","changelog":{"1.4.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.4.0":{"date":"12\/06\/2017","content":"1. [](#bugfix)\n    * Compatibility fixes with Login plugin v2.5.0 - Messages system\n1. [](#improved)\n    * Updated OAuth library to v0.8.10 [#14](https:\/\/github.com\/getgrav\/grav-plugin-login-oauth\/issues\/14)\n"},"1.3.1":{"date":"09\/12\/2017","content":"1. [](#bugfix)\n    * Compatibility fixes with Login plugin v2.4.0 [Login#130](https:\/\/github.com\/getgrav\/grav-plugin-login\/issues\/130)\n"},"1.3.0":{"date":"04\/7\/2017","content":"1. [](#new)\n    * Added Blacklist and Whitelist support to Google\n"},"1.2.0":{"date":"1\/18\/2017","content":"1. [](#new)\n    * Added LinkedIn provider [#11](https:\/\/github.com\/getgrav\/grav-plugin-login-oauth\/pull\/11)\n1. [](#improved)\n    * Added Facebook email scope [#10](https:\/\/github.com\/getgrav\/grav-plugin-login-oauth\/pull\/10)\n    * Updated OAuth library to v0.8.9\n"},"1.1.0":{"date":"09\/06\/2016","content":"1. [](#improved)\n    * Added Romanian and German translations\n    * Tidy up spacing\n1. [](#bugfix)\n    * Fixed Twitter error\n    * Fixed a typo\n"},"1.0.0":{"date":"07\/14\/2016","content":"1. [](#new)\n    * First stable release of the Login with OAuth plugin\n"},"1.0.0-beta.1":{"date":"05\/05\/2016","content":"1. [](#new)\n    * First beta release of the Login with OAuth plugin"}}},"recaptchacontact":{"name":"reCAPTCHA Contact","version":"2.1.2","description":"This plugin adds contact form features for sending email with google reCAPTCHA 2.0 validation.","description_html":"<p>This plugin adds contact form features for sending email with google reCAPTCHA 2.0 validation.<\/p>","description_plain":"This plugin adds contact form features for sending email with google reCAPTCHA 2.0 validation.","icon":"paper-plane-o","author":{"name":"aRadianOff","url":"http:\/\/aradianoff.com","email":"inesnaya@aradianoff.com"},"homepage":"https:\/\/github.com\/aradianoff\/recaptchacontact","keywords":"contact, plugin, g-recaptcha","bugs":"https:\/\/github.com\/aradianoff\/recaptchacontact\/issues","license":"MIT","tag_name":"v2.1.2","date":"2017-06-01T14:20:33Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/recaptchacontact\/2.1.2","repository":"https:\/\/github.com\/aradianoff\/recaptchacontact","slug":"recaptchacontact","install_path":"user\/plugins\/recaptchacontact","content_sha256":"f358b6f3466a6ac9accbe4cf76a28a89ac1aff0292e0072b716c0f42b1d34e3e","changelog":{"2.1.2":{"date":"06\/01\/2017","content":"1. [](#improved)\n    * Added Polish (TR) translation thanks to @BartoszBartniczak.\n2. [](#bugfix)\n    * Fixed bug related to newest version of Grav (issue #36), also thanks to @BartoszBartniczak.\n"},"2.1.1":{"date":"04\/22\/2016","content":"1. [](#improved)\n    * Added Turkish (TR) translation thanks to @msdundar.\n"},"2.1.0":{"date":"1\/7\/2017","content":"1. [](#new)\n    * Added option to have a data-callback for the Google Recaptcha\n\n   [](#improved)\n    * Added scroll anchor so the page scrolls to the message when there is one.\n"},"2.0.1":{"date":"10\/11\/2016","content":"1. [](#improved)\n    * Added German (DE) translation for new admin integration. \n"},"2.0.0":{"date":"09\/29\/2016","content":"1. [](#new)\n    * The plugin can now be fully managed from the admin panel.\n    * Modular and simple pages can have the contact form simply by toggling the form on.\n    * Integrated with the Email plugin, if it is available.\n2. [](#improved)\n    * Removed unnecessary jQuery dependency.\n    * Added ability to inject contact form into modular page (previously only would for simple).\n    * Refactored messages to be session based instead of redirecting which could cause problems with languages.\n    * Added better HTML classes to allow easier integration with the default template.\n    * Improved CSS.\n    * Made email recipient a little smarter with three levels of fallback.\n3. [](#bugfix)\n    * Fixed a bug that caused CSS to not load on modular pages.\n    * Fixed a problem which caused the form to shrink at 50% of the screen width to an uncomfortable width.\n\n"},"1.0.9":{"date":"09\/03\/2016","content":"1. [](#new)\n    * Added Russian translation.\n2. [](#improved)\n    * Made it easier to customize the CSS.\n    * Updated the French translation.\n3. [](#bugfix)\n    * Removed extraneous class that was causing layout issues in Bootstrap themes.\n    * Fixed some issues with redirects in multilingual installs (changed `redirect` to `redirectLangSafe`).\n    * Fixed a very rare issue with multiple `language.yaml` files loading.\n"},"1.0.8":{"date":"10\/09\/2015","content":"1. [](#improved)\n    * Added the ability to customize almost everything in the plugin very easily.\n"},"1.0.7":{"date":"09\/01\/2015","content":"1. [](#improved)\n    * Allow compatibility with PHP 5.4.\n2. [](#bugfix)\n    * Fixed date in CHANGELOG.md.\n\n"},"1.0.6":{"date":"08\/30\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n2. [](#new)\n    * Now it works with modular pages. Now it depends on PHP 5.5 or +.\n"},"1.0.5":{"date":"08\/07\/2015","content":"1. [](#bugfix)\n    * Bugfix in CHANGELOG.md\n"},"1.0.4":{"date":"08\/03\/2015","content":"1. [](#bugfix)\n    * Bugfix in CHANGELOG.md\n"},"1.0.3":{"date":"08\/02\/2015","content":"1. [](#new)\n    * Added German and Italian translations.\n"},"1.0.2":{"date":"07\/28\/2015","content":"1. [](#bugfix)\n    * Bugfix in recatpchacontact.php\n\n"},"1.0.1":{"date":"07\/27\/2015","content":"1. [](#bugfix)\n    * Now reCAPTCHA localization works.\n2. [](#new)\n    * Config variables can now be overwritten in the page headers.\n"},"1.0.0":{"date":"07\/26\/2015","content":"1. [](#new)\n    * Change log started."}},"dependencies":[]},"advanced-pagecache":{"name":"AdvancedPageCache","version":"3.1.2","description":"AdvancedPageCache turbo charges your site by statically caching pages.","description_html":"<p>AdvancedPageCache turbo charges your site by statically caching pages.<\/p>","description_plain":"AdvancedPageCache turbo charges your site by statically caching pages.","icon":"dashboard","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-advanced-pagecache","keywords":"static, cache, plugin, performance","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-advanced-pagecache\/issues","license":"MIT","tag_name":"3.1.2","date":"2026-05-05T14:04:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/advanced-pagecache\/3.1.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-advanced-pagecache","slug":"advanced-pagecache","install_path":"user\/plugins\/advanced-pagecache","content_sha256":"b72ec0fc4d3827b742cdc5a8c215fbf68c1cb232053de22b1a512fac80c20de7","changelog":{"3.1.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"3.1.1":{"date":"04\/26\/2021","content":"1. [](#new)\n   * Added a new `X-Grav-APCache` response header option to show APC is enabled and running\n"},"3.1.0":{"date":"08\/20\/2021","content":"1. [](#new)\n    * Require **Grav 1.7.0**\n    * Added support for HTTP code and headers\n    * Added support for `304 Not Modified` responses\n1. [](#improved)\n    * Raise `onPluginsInitialized` event priority to make page loads faster\n    * Lower `onOutputGenerated` event priority to allow other plugins to postprocess the content (and prefer `onOutputRendered` instead)\n"},"3.0.2":{"date":"06\/21\/2020","content":"1. [](#improved)\n    * fix default value for per_user_caching in admin [#18](https:\/\/github.com\/getgrav\/grav-plugin-advanced-pagecache\/pull\/18)\n"},"3.0.1":{"date":"06\/21\/2020","content":"1. [](#bugfix)\n    * Check for user when login plugin is not installed [#19](https:\/\/github.com\/getgrav\/grav-plugin-advanced-pagecache\/issues\/19)\n"},"3.0.0":{"date":"06\/08\/2020","content":"1. [](#new)\n    * Allow disabling user on login [#17](https:\/\/github.com\/getgrav\/grav-plugin-advanced-pagecache\/issues\/17)\n1. [](#improved)\n    * Fixed conflicting and misleading messages [#16](https:\/\/github.com\/getgrav\/grav-plugin-advanced-pagecache\/issues\/16)\n"},"2.0.0":{"date":"04\/27\/2019","content":"1. [](#new)\n    * Advanced page cache now works with language prefixes\n1. [](#improved)\n    * Switch to a disable toggles for `querystrings` and `params`. Default is now to **not cache** these.\n    * Blacklist and Whitelist now work with extensions\n    * Optimized code to be more efficient\n"},"1.2.0":{"date":"07\/14\/2016","content":"1. [](#bugfix)\n    * Fix issue with URLs with extension being considered like the default page extension [#10](https:\/\/github.com\/getgrav\/grav-plugin-advanced-pagecache\/issues\/10)\n"},"1.1.1":{"date":"09\/02\/2015","content":"1. [](#improved)\n    * Switched to `value_only` arrays for whitelist and blacklist\n"},"1.1.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.0.0":{"date":"06\/16\/2015","content":"1. [](#new)\n    * ChangeLog started..."}}},"anchors":{"name":"Anchors","version":"1.6.1","description":"This plugin provides automatic header anchors via the [anchorjs](http:\/\/bryanbraun.github.io\/anchorjs) jQuery plugin.","description_html":"<p>This plugin provides automatic header anchors via the <a href=\"http:\/\/bryanbraun.github.io\/anchorjs\">anchorjs<\/a> jQuery plugin.<\/p>","description_plain":"This plugin provides automatic header anchors via the anchorjs jQuery plugin.","icon":"anchor","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-anchors","demo":"http:\/\/learn.getgrav.org","keywords":"anchor, header, plugin, code","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-anchors\/issues","license":"MIT","tag_name":"1.6.1","date":"2026-05-05T14:04:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/anchors\/1.6.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-anchors","slug":"anchors","install_path":"user\/plugins\/anchors","content_sha256":"e53479b06546339cc4ff9809e080c8d7f57e8d7a061111c6f6b4d3d95e1147f4","changelog":{"1.6.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.6.0":{"date":"11\/24\/2021","content":"1. [](#new)\n   * Added new option `copy_to_clipboard` to automatically copy the link to clipboard\n2. [](#improved)\n   * Removed reliance on `JQuery` for DOM ready check\n   * Updated `anchors.js` to version 4.3.1\n"},"1.5.4":{"date":"12\/02\/2020","content":"1. [](#improved)\n    * Updated `anchors.js` to version 4.3.0\n    * Requires Grav 1.6\n"},"1.5.3":{"date":"03\/30\/2019","content":"1. [](#improved)\n    * Updated `anchors.js` to version 4.2.0\n    * Improved documentation\n"},"1.5.2":{"date":"09\/28\/2017","content":"1. [](#improved)\n    * Updated `anchors.js` to version 4.1.0\n"},"1.5.1":{"date":"07\/14\/2016","content":"1. [](#improved)\n    * Translate some blueprint options\n"},"1.5.0":{"date":"01\/06\/2016","content":"1. [](#improved)\n    * Disable anchors in Admin\n"},"1.4.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.3.0":{"date":"07\/20\/2015","content":"1. [](#new)\n    * Updated `anchors.js` to version 1.2.1\n    * Added new options such as 'placement', 'visible', 'icon' and 'class'\n"},"1.2.0":{"date":"03\/01\/2015","content":"1. [](#new)\n    * Updated `anchors.js` to version 0.3.0\n"},"1.1.0":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}}},"archives":{"name":"Archives","version":"2.0.4","description":"The **Archives** plugin creates links for pages grouped by month\/year","description_html":"<p>The <strong>Archives<\/strong> plugin creates links for pages grouped by month\/year<\/p>","description_plain":"The Archives plugin creates links for pages grouped by month\/year","icon":"university","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-archives","demo":"http:\/\/demo.getgrav.org\/blog-skeleton","keywords":"archives, plugin, blog, month, year, date, navigation, history","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-archives\/issues","license":"MIT","tag_name":"2.0.4","date":"2026-05-05T14:05:04Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/archives\/2.0.4","repository":"https:\/\/github.com\/getgrav\/grav-plugin-archives","slug":"archives","install_path":"user\/plugins\/archives","content_sha256":"e26acd7921dcdd2076e7091cb5d019224dbcc48c293c67c9ae346970abd08ddf","changelog":{"2.0.4":{"date":"04\/29\/2026","content":"1. [](#bugfix)\n    * Fixed `Filter` and per-page `Filter` settings rendering as `[object Object]` under Admin 2.0. Switched the field type from `textarea + yaml: true` to `array` \u2014 better UX (add\/remove rows directly), works on both Admin 1.x and 2.0, and matches the actual data model (flat key-value).\n    * Fixed date format breaking the output in `partials\/archives-year.html.twig`\n"},"2.0.3.1":{"date":"05\/16\/2024","content":"1. [](#improved)\n   * Added missing `Y` date format option from blueprints (admin plugin)\n\n"},"2.0.3":{"date":"05\/15\/2024","content":"1. [](#new)\n   * Added a new `partials\/archives-year.html.twig` example and instructions on how to display a year-only format.\n"},"2.0.2":{"date":"12\/02\/2020","content":"1. [](#improved)\n    * Add taxonomy values date format customization [#29](https:\/\/github.com\/getgrav\/grav-plugin-archives\/pull\/29)  \n"},"2.0.1":{"date":"07\/09\/2020","content":"1. [](#bugfix)\n    * Fix for archives on homepage [#26](https:\/\/github.com\/getgrav\/grav-plugin-archives\/issues\/26)  \n"},"2.0.0":{"date":"04\/06\/2020","content":"1. [](#new)\n    * New per-page configuration to allow for multiple 'archives' in a single site\n    * Added new `page@` filter support to allow configuration from page collection [#20](https:\/\/github.com\/getgrav\/grav-plugin-archives\/pull\/20)\n1. [](#improved)\n    * Added more sort-by options\n"},"1.6.1":{"date":"02\/24\/2020","content":"1. [](#new)\n    * Pass phpstan level 1 tests\n    * Require Grav v.1.6\n1. [](#bugfix)\n    * Exclude empty folders from archive\n    * Fixed issue in 1.7 due to `validation: strict` and missing `taxonomy_names` blueprint item\n"},"1.6.0":{"date":"04\/17\/2019","content":"1. [](#improved)\n    * Only included published pages in collection [#24](https:\/\/github.com\/getgrav\/grav-plugin-archives\/issues\/24)\n    * Translate the date to the format specified [#9](https:\/\/github.com\/getgrav\/grav-plugin-archives\/pull\/9)\n"},"1.5.1":{"date":"05\/16\/2017","content":"1. [](#improved)\n    * Added another date option to blueprints [#7](https:\/\/github.com\/getgrav\/grav-plugin-archives\/pull\/7)\n"},"1.5.0":{"date":"07\/14\/2016","content":"1. [](#improved)\n    * Allow to configure the taxonomy names that form the URL, instead of hardcoding `archives_month` and `archives_year`\n    * Allow to use @self in the filters, useful when adding the archives into a blog posts listing page\n"},"1.4.1":{"date":"05\/03\/2016","content":"1. [](#bugfix)\n    * Fixed translated months\n"},"1.4.0":{"date":"01\/06\/2016","content":"1. [](#improved)\n    * Allow for translated months\n1. [](#bugfix)\n    * Fix blueprints by adding the category to filters\n"},"1.3.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.2.1":{"date":"02\/19\/2015","content":"2. [](#improved)\n    * Implemented new `param_sep` variable from Grav 0.9.18\n"},"1.2.0":{"date":"01\/08\/2015","content":"1. [](#new)\n    * Added new `archives_year` automatic taxonomy type\n2. [](#improved)\n    * Automatically adds taxonomy types (`archives_month`, `archives_year`) rather than requiring you to manually edit `site.yaml`\n"},"1.10":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}}},"assets":{"name":"Assets","version":"2.0.3","description":"This plugin provides a convenient way to add CSS and JS assets directly from your pages.","description_html":"<p>This plugin provides a convenient way to add CSS and JS assets directly from your pages.<\/p>","description_plain":"This plugin provides a convenient way to add CSS and JS assets directly from your pages.","icon":"list-alt","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-assets","demo":"http:\/\/learn.getgrav.org","keywords":"assets, javascript, css, inline","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-assets\/issues","license":"MIT","tag_name":"2.0.3","date":"2026-07-14T22:19:06Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/assets\/2.0.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-assets","slug":"assets","install_path":"user\/plugins\/assets","content_sha256":"62792055478f0fd768ae291a407308dd58180a2519b81b5851f639f209ca2ce1","changelog":{"2.0.3":{"date":"07\/14\/2026","content":"1. [](#improved)\n    * Expanded the README with asset caching recommendations ([#9](https:\/\/github.com\/getgrav\/grav-plugin-assets\/pull\/9))\n"},"2.0.2":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"2.0.1":{"date":"12\/21\/2018","content":"1. [](#bugfix)\n  * Fire `onPageInitialized` later as it breaks on-page forms\n  * Fixed a spelling error\n"},"2.0.0":{"date":"01\/01\/2015","content":"1. [](#improved)\n    * Uses Grav cache internally to store assets\n    * Works with modular pages now too\n1. [](#bugfix)\n    * Actually works with page cache enabled now\n"},"1.2.1":{"date":"10\/07\/2015","content":"1. [](#bugfix)\n    * Fixed a bug with inline CSS and JS\n"},"1.2.0":{"date":"06\/23\/2015","content":"1. [](#new)\n    * Support for multiple items\n    * added ability to use Grav page refs and local assets + page enable override\n"},"1.0.4":{"date":"02\/05\/2015","content":"1. [](#improved)\n    * REGEX optimizations\n    * Code improvements\n"},"1.0.3":{"date":"01\/23\/2015","content":"1. [](#improved)\n    * Changed event to utilize new `onPageContentRaw()` -> requires Grav 0.9.14+\n    * Added admin checks\n    * PSR fixes\n"},"1.0.2":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"breadcrumbs":{"name":"Breadcrumbs","version":"1.6.3","description":"The **Breadcrumbs** plugin provides a simple method to display the depth of your content\/navigation structure.","description_html":"<p>The <strong>Breadcrumbs<\/strong> plugin provides a simple method to display the depth of your content\/navigation structure.<\/p>","description_plain":"The Breadcrumbs plugin provides a simple method to display the depth of your content\/navigation structure.","icon":"caret-square-o-right","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-breadcrumbs","demo":"http:\/\/demo.getgrav.org\/blog-skeleton","keywords":"breadcrumbs, plugin, navigation, depth","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-breadcrumbs\/issues","license":"MIT","tag_name":"1.6.3","date":"2026-05-05T14:05:25Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/breadcrumbs\/1.6.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-breadcrumbs","slug":"breadcrumbs","install_path":"user\/plugins\/breadcrumbs","content_sha256":"5e8dfb713620ad557296de1824b5d4f370877a43c2cb2a68c7ae616562e2e796","changelog":{"1.6.3":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.6.2":{"date":"07\/25\/2022","content":"1. [](#improved)\n   * RTL Fixes [#37](https:\/\/github.com\/getgrav\/grav-plugin-breadcrumbs\/pull\/37)\n2. [](#bugfix)\n   * Composer name invalid format [#38](https:\/\/github.com\/getgrav\/grav-plugin-breadcrumbs\/issues\/38) \n"},"1.6.1":{"date":"12\/02\/2020","content":"1. [](#improved)\n    * Minor default template improvements\n"},"1.6.0":{"date":"04\/22\/2020","content":"1. [](#new)\n    * Added `schema.org\/BreadcrumbList` [#29](https:\/\/github.com\/getgrav\/grav-plugin-breadcrumbs\/issues\/29)\n    * Added per-page option to control breadcrumbs [#20](https:\/\/github.com\/getgrav\/grav-plugin-breadcrumbs\/issues\/20)\n    * Added various translations\n    * Pass phpstan level 1 tests\n    * Require Grav v1.6\n"},"1.5.1":{"date":"10\/24\/2017","content":"1. [](#improved)\n    * Add option to ignore current page [#11](https:\/\/github.com\/getgrav\/grav-plugin-breadcrumbs\/issues\/11)\n    * Removed Grav trait in favor of `Grav::instance()`\n"},"1.5.0":{"date":"07\/14\/2016","content":"1. [](#improved)\n    * non-routable pages are not linked\n"},"1.4.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.3.0":{"date":"03\/06\/2015","content":"1. [](#new)\n    * Added toggle for showing home item\n    * Added configurable home icon\n    * Added configurable divider icon\n    * Added toggle to link trailing item\n"},"1.2.3":{"date":"02\/05\/2015","content":"2. [](#improved)\n    * Added support for HHVM\n"},"1.2.2":{"date":"01\/23\/2015","content":"2. [](#improved)\n    * Added microdata information\n"},"1.2.1":{"date":"01\/09\/2015","content":"2. [](#improved)\n    * NOTE: BREAKING CHANGE: Moved templates into `partials\/` subfolder for consistency.\n"},"1.2.0":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}}},"bootstrapper":{"name":"Bootstrapper","version":"3.0.1","description":"Loads the Bootstrap Framework assets for any plugin\/theme that needs it","description_html":"<p>Loads the Bootstrap Framework assets for any plugin\/theme that needs it<\/p>","description_plain":"Loads the Bootstrap Framework assets for any plugin\/theme that needs it","icon":"bold","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-bootstrapper","demo":"http:\/\/demo.getgrav.org\/bootstrap-skeleton\/","keywords":"bootstrap, css, plugin, framework","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-bootstrapper\/issues","license":"MIT","tag_name":"3.0.1","date":"2026-05-05T14:05:19Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/bootstrapper\/3.0.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-bootstrapper","slug":"bootstrapper","install_path":"user\/plugins\/bootstrapper","content_sha256":"6e91888f9759fca041b1e3242b89187dd9152ba8c24c539d3087c51d75f1a625","changelog":{"3.0.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"3.0.0":{"date":"03\/23\/2021","content":"1. [](#improved)\n    * Updated to latest Bootstrap versions: `5.0.0-beta3`, `4.6.0`, `3.4.1`\n"},"2.0.0":{"date":"05\/25\/2018","content":"1. [](#new)\n    * Added support for Bootstrap **v4.1.1** (with Popper.js)\n"},"1.3.4":{"date":"02\/01\/2017","content":"1. [](#improved)\n    * Updated to Bootstrap version **v3.3.7**\n"},"1.3.3":{"date":"10\/19\/2016","content":"1. [](#new)\n    * Added german and romanian translation\n"},"1.3.2":{"date":"03\/21\/2016","content":"1. [](#bugfix)\n    * Added minified version of JS\/CSS too, left out in the last release\n"},"1.3.1":{"date":"03\/12\/2016","content":"1. [](#new)\n    * Added French translations\n1. [](#improved)\n    * Updated to Bootstrap version **v3.3.6**\n"},"1.3.0":{"date":"10\/07\/2015","content":"1. [](#new)\n    * Added support for official Bootstrap CDN\n    * Added Russian translations\n1. [](#improved)\n    * Updated to Bootstrap version **v3.3.5**\n"},"1.2.0":{"date":"09\/18\/2015","content":"1. [](#improved)\n    * Don't load stuff in admin\n"},"1.1.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.0.2":{"date":"03\/04\/2015","content":"1. [](#bugfix)\n    * Fix for properly toggling loading of core JS\n"},"1.0.1":{"date":"02\/28\/2015","content":"1. [](#improved)\n    * Updated blueprints\n"},"1.0.0":{"date":"02\/27\/2015","content":"1. [](#improved)\n    * Updated to Bootstrap version **v3.3.2**\n"},"0.9":{"date":"02\/27\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"error":{"name":"Error","version":"2.0.2","description":"Displays the error page.","description_html":"<p>Displays the error page.<\/p>","description_plain":"Displays the error page.","icon":"warning","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-error","keywords":"error, plugin, required","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-error\/issues","license":"MIT","tag_name":"2.0.2","date":"2026-07-25T20:25:05Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/error\/2.0.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-error","slug":"error","install_path":"user\/plugins\/error","content_sha256":"1bc330e3d18d035ee018c92c2fb1a9e27d98968662e9314505055ba35e3c4278","changelog":{"2.0.2":{"date":"07\/25\/2026","content":"1. [](#new)\n    * Added a Spanish translation for the error page ([#48](https:\/\/github.com\/getgrav\/grav-plugin-error\/pull\/48)).\n"},"2.0.1":{"date":"06\/17\/2026","content":"1. [](#bugfix)\n    * The error page now shows its message correctly out of the box on Grav 2, instead of leaving raw template code on the 404 page when Twig processing in content is turned off by default ([#47](https:\/\/github.com\/getgrav\/grav-plugin-error\/issues\/47)).\n"},"2.0.0":{"date":"05\/05\/2026","content":"1. [](#new)\n    * Added 1.7|2.0 compatibility\n"},"1.8.1":{"date":"08\/28\/2025","content":"1. [](#bugfix)\n   * Fixed an issue with error thrown during `bin\/plugin error log` commands [#46](https:\/\/github.com\/getgrav\/grav-plugin-error\/issues\/46)\n   * Fixed output issue not showing all messages with log CLI command\n"},"1.8.0":{"date":"09\/07\/2021","content":"1. [](#new)\n    * Require **Grav 1.7.0**\n    * Added support for `{% throw 404 'Not Found' %}` from twig template to show the error page\n1. [](#improved)\n    * Do not cache 404 error pages by default\n"},"1.7.1":{"date":"10\/08\/2020","content":"1. [](#bugfix)\n    * Fixed error page being cached, fixes issue with non-existing resources which later become available\n"},"1.7.0":{"date":"07\/01\/2020","content":"1. [](#new)\n    * Require Grav v1.6\n1. [](#bugfix)\n    * Added translated title programmatically [#40](https:\/\/github.com\/getgrav\/grav-plugin-error\/pull\/40)\n    "},"1.6.2":{"date":"05\/09\/2019","content":"1. [](#new)\n    * Fixed a few issues found by phpstan\n    * Added `ru` and `uk` translations [#36](https:\/\/github.com\/getgrav\/grav-plugin-error\/pull\/36)\n"},"1.6.1":{"date":"03\/09\/2018","content":"1. [](#improved)\n    * Added Polish + Catalan translation\n    * Updated `README.md` to reference custom error pages\n"},"1.6.0":{"date":"10\/19\/2016","content":"1. [](#improved)\n    * Added Croatian translation\n    * Improved `autoescape: true` support\n1. [](#bugfix)\n    * Fixed issue where template file for `error` page type is only available if page was not found\n"},"1.5.1":{"date":"07\/18\/2016","content":"1. [](#improved)\n    * Added chinese and german translations\n1. [](#bugfix)\n    * Fixed issue with the Smartypants plugin running before Twig was processed\n"},"1.5.0":{"date":"07\/14\/2015","content":"1. [](#improved)\n    * Translate some blueprint configuration options\n    * Allow translating the error message\n    * Added french, russian, romanian, danish, italian\n"},"1.4.1":{"date":"12\/11\/2015","content":"1. [](#bugfix)\n    * Fixed CLI command for PHP 5.5 and lower\n"},"1.4.0":{"date":"11\/21\/2015","content":"1. [](#new)\n    * Implemented CLI commands for the plugin\n"},"1.3.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.2.2":{"date":"01\/06\/2015","content":"1. [](#new)\n    * Added a default `error.json.twig` file\n"},"1.2.1":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}}},"feed":{"name":"Feed","version":"1.10.1","description":"The **Feed** plugin is a simple yet powerful add-on that lets you view a Grav Collection as **JSON**, **RSS** or **Atom** news feed.","description_html":"<p>The <strong>Feed<\/strong> plugin is a simple yet powerful add-on that lets you view a Grav Collection as <strong>JSON<\/strong>, <strong>RSS<\/strong> or <strong>Atom<\/strong> news feed.<\/p>","description_plain":"The Feed plugin is a simple yet powerful add-on that lets you view a Grav Collection as JSON, RSS or Atom news feed.","icon":"rss","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-feed","demo":"http:\/\/demo.getgrav.org\/blog-skeleton","keywords":"feed, plugin, rss, atom, collection, json","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-feed\/issues","license":"MIT","tag_name":"1.10.1","date":"2026-05-05T14:07:21Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/feed\/1.10.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-feed","slug":"feed","install_path":"user\/plugins\/feed","content_sha256":"9b90558e419d405c433983be3fb89ea85842317538273a55d8fe8ee71e180215","changelog":{"1.10.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.11.0":{"date":"mm\/dd\/2023","content":"1. [](#new)\n   * Added new `onFeedCollectionProcessed()` event to modify the collection as needed.\n   * Added ability to use custom `feed: template:` in YAML frontmatter configuration without a collection defined\n"},"1.10.0":{"date":"09\/26\/2023","content":"1. [](#new)\n   * Allow template overrides based on header feed config [#67](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/67)\n1. [](#bugfix)\n   * Fixed the `<lastBuildDate..>` that was broken\n"},"1.9.0":{"date":"10\/05\/2022","content":"1. [](#new)\n   * Utilize the new `onPageHeaders()` event in Grav `1.7.37` to force UTF-8 encoding\n"},"1.8.5":{"date":"06\/09\/2021","content":"1. [](#improved)\n   * Rolled back the URL check functionality as it caused more issues than it solved.\n"},"1.8.4":{"date":"06\/07\/2021","content":"1. [](#improved)\n    * Added a configurable `enable_url_check` (default `true`) to disable the URL checking if you run into an issue.\n1. [](#bugfix)\n    * More robust URL checking including multi-lang versions [#62](https:\/\/github.com\/getgrav\/grav-plugin-feed\/issues\/62)\n"},"1.8.3":{"date":"05\/28\/2021","content":"1. [](#bugfix)\n    * Fixed issue with feeds at the root of a site [#61](https:\/\/github.com\/getgrav\/grav-plugin-feed\/issues\/61)\n"},"1.8.2":{"date":"05\/21\/2021","content":"1. [](#bugfix)\n    * Fixed issue with json feed type corrupting other json requests [getgrav\/grav-premium-issues#102](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/102)\n    * Fixed issue with modular pages showing up in feed\n\n"},"1.8.1":{"date":"05\/21\/2021","content":"1. [](#bugfix)\n    * Provide a default language if multi-language not enabled\n"},"1.8.0":{"date":"12\/02\/2020","content":"1. [](#new)\n    * Require Grav v1.6\n    * Pass phpstan level 1 tests\n1. [](#improved)\n    * Major plugin overhaul [#57](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/57)    \n    * Bumped the default image sizes in atom\/rss\n"},"1.7.1":{"date":"05\/09\/2019","content":"1. [](#bugfix)\n    * Fix issue with Feed Options not showing up in Quark (and other themes) [#46](https:\/\/github.com\/getgrav\/grav-plugin-feed\/issues\/46)\n"},"1.7.0":{"date":"04\/15\/2019","content":"1. [](#improved)\n    * Use `safe_truncate_html` [#41](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/41)\n    * Allow full-text feeds [#37](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/37)\n    * Dynamic json feed header and image file support [#32](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/32)\n    * Added `json` link example to `README.md`\n1. [](#bugfix)\n    * Changed type `text` to `range` to prevent validation errors [#45](https:\/\/github.com\/getgrav\/grav-plugin-feed\/issues\/45)\n    * Always show route in url for self-link [#38](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/38)\n"},"1.6.2":{"date":"06\/06\/2017","content":"1. [](#bugfix)\n    * Fix issue with feeds not rendering with cache enabled [#27](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/27)\n"},"1.6.1":{"date":"05\/30\/2017","content":"1. [](#improved)\n    * Improved JSON template to `json_encode()` all output\n1. [](#bugfix)\n    * Optimized logic to disable JSON feeds by default and only set the template when there's a collection\n"},"1.6.0":{"date":"05\/25\/2017","content":"1. [](#new)\n    * Added support for new JSON feed format by @RosemaryOrchard [#21](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/21)\n"},"1.5.3":{"date":"04\/12\/2017","content":"1. [](#bugfix)\n    * Fix a truncate issue [#16](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/16)\n"},"1.5.2":{"date":"02\/17\/2017","content":"1. [](#bugfix)\n    * Fix issue on non-collection pages [#14](https:\/\/github.com\/getgrav\/grav-plugin-feed\/pull\/14)\n"},"1.5.1":{"date":"01\/24\/2017","content":"1. [](#bugfix)\n    * Add support for Twig `Autoescape variables` mode\n"},"1.5.0":{"date":"07\/14\/2016","content":"1. [](#improved)\n    * Make Feeds 'language-safe'\n"},"1.4.1":{"date":"10\/07\/2015","content":"1. [](#bugfix)\n    * Avoid duplicated routes\n"}}},"highlight":{"name":"Highlight","version":"1.5.1","description":"This plugin provides code highlighting functionality via the [Highlight.js](https:\/\/highlightjs.org\/) jQuery plugin.","description_html":"<p>This plugin provides code highlighting functionality via the <a href=\"https:\/\/highlightjs.org\/\">Highlight.js<\/a> jQuery plugin.<\/p>","description_plain":"This plugin provides code highlighting functionality via the Highlight.js jQuery plugin.","icon":"code","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.6.4"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-highlight","demo":"http:\/\/learn.getgrav.org","keywords":"highlight, plugin, code","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-highlight\/issues","license":"MIT","tag_name":"1.5.1","date":"2026-05-05T14:07:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/highlight\/1.5.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-highlight","slug":"highlight","install_path":"user\/plugins\/highlight","content_sha256":"26f334f2017ab08c3e2cab23180d2f6064f09442e3c40f94acf884d284b35d11","changelog":{"1.5.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.5.0":{"date":"02\/24\/2021","content":"1. [](#improved)\n    * Updated `highlight.js` to version 10.5.0\n    * New themes: Agate, Android Studio, Arduino Light, Github Gist, Gradient Light, Stackoverflow Dark & Stackoverflow Light\n1. [](#bugfix)\n    * Fixed some themes not working (mainly \"Atelier\" variants)\n"},"1.4.2":{"date":"08\/03\/2020","content":"1. [](#improved)\n    * Updated `highlight.js` to version 10.1.2\n    * Updated `highlightjs-line-numbers.js` plugin to version 2.8.0\n"},"1.4.1":{"date":"09\/20\/2019","content":"1. [](#improved)\n    * Updated core `hightlight.pack.js` to include `SCSS` and `Twig`\n    * Updated styles and fixed a couple that were missing from blueprint due to typos\n    * FlexObjects compatibility: changed references to `Page` class to use `PageInterface`\n"},"1.4.0":{"date":"12\/05\/2017","content":"1. [](#new)\n    * Updated `highlight.js` to version 9.12.0 (bariscelik) [#16](https:\/\/github.com\/getgrav\/grav-plugin-highlight\/pull\/16)\n    * Updated `line-numbers.js` to version 2.1.0 (bariscelik) [#16](https:\/\/github.com\/getgrav\/grav-plugin-highlight\/pull\/16)\n    * Added line numbers to blueprints for admin plugin control (bariscelik) [#16](https:\/\/github.com\/getgrav\/grav-plugin-highlight\/pull\/16)\n    * Removed JQuery dependency (bariscelik) [#16](https:\/\/github.com\/getgrav\/grav-plugin-highlight\/pull\/16)\n"},"1.3.2":{"date":"10\/22\/2017","content":"1. [](#new)\n    * Added option for line numbers [#12](https:\/\/github.com\/getgrav\/grav-plugin-highlight\/pull\/12)\n"},"1.3.1":{"date":"07\/14\/2016","content":"1. [](#bugfix)\n    * Fixed a typo in the Monokai theme name\n"},"1.3.0":{"date":"01\/22\/2016","content":"1. [](#new)\n    * Updated `highlight.js` to version 9.1.0\n1. [](#improved)\n    * Use common language strings in blueprints\n"},"1.2.1":{"date":"01\/06\/2016","content":"1. [](#bugfix)\n    * Fixed the example listed in the README\n"},"1.2.0":{"date":"07\/20\/2015","content":"1. [](#new)\n    * Updated `highlight.js` to version 8.6.0\n    * Added new themes\n"},"1.1.0":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}}},"pagination":{"name":"Pagination","version":"1.4.8","description":"**Pagination** is a very useful plugin to help navigate a large collection of pages, such as for a **blog**.","description_html":"<p><strong>Pagination<\/strong> is a very useful plugin to help navigate a large collection of pages, such as for a <strong>blog<\/strong>.<\/p>","description_plain":"Pagination is a very useful plugin to help navigate a large collection of pages, such as for a blog.","icon":"list-ol","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-pagination","keywords":"pagination, plugin, pages, navigation","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-pagination\/issues","license":"MIT","tag_name":"1.4.8","date":"2026-07-02T19:32:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/pagination\/1.4.8","repository":"https:\/\/github.com\/getgrav\/grav-plugin-pagination","slug":"pagination","install_path":"user\/plugins\/pagination","content_sha256":"ebe63aa09d47aa08570d90d53415536db2a3d68860757b7c3541572f34ed3f3d","changelog":{"1.4.8":{"date":"07\/02\/2026","content":"1. [](#new)\n    * Added `currentPage()`, `itemsPerPage()`, and `pageCount()` accessors so the current page, items per page, and total page count are available from Twig [#58](https:\/\/github.com\/getgrav\/grav-plugin-pagination\/pull\/58)\n"},"1.4.7":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.4.6":{"date":"02\/05\/2024","content":"1. [](#bugfix)\n   * Reverted fixes for an error in pagination URLs with system level Absolute URLs enabled. Will investigate [#60](https:\/\/github.com\/getgrav\/grav-plugin-pagination\/issues\/60) further\n"},"1.4.5":{"date":"02\/03\/2024","content":"1. [](#bugfix)\n   * Fixed an error in pagination URLs with system level Absolute URLs enabled [#60](https:\/\/github.com\/getgrav\/grav-plugin-pagination\/issues\/60)\n"},"1.4.4":{"date":"05\/10\/2023","content":"1. [](#improved)\n   * Fixed a deprecation error message for PHP 8.2+\n"},"1.4.3":{"date":"08\/26\/2022","content":"1. [](#new)\n    * Pass phpstan level 1 tests\n    * Require Grav v1.6\n    * Moved pagination classes under `Grav\\Plugin\\Pagination` namespace\n    * Removed extension to bring Twig function into Plugin class\n"},"1.4.2":{"date":"05\/09\/2019","content":"1. [](#new)\n    * Add active class for active page [#37](https:\/\/github.com\/getgrav\/grav-plugin-pagination\/pull\/37)\n    * Added `ru` and `uk` translations [#38](https:\/\/github.com\/getgrav\/grav-plugin-pagination\/pull\/38)\n"},"1.4.1":{"date":"08\/28\/2018","content":"1. [](#bugfix)\n    * Reverted Twig fix to address broken `url` in Twig [#34](https:\/\/github.com\/getgrav\/grav-plugin-pagination\/issues\/34)\n    * Removed duplicate README text [#30](https:\/\/github.com\/getgrav\/grav-plugin-pagination\/issues\/30)\n"},"1.4.0":{"date":"08\/20\/2018","content":"1. [](#new)\n    * Added Twig pagination function [#22](https:\/\/github.com\/getgrav\/grav-plugin-pagination\/pull\/22)\n1. [](#improved)\n    * Removed Grav trait in favor of `Grav::instance()`\n    * Changed delta blueprint type from `text` to `number`\n    * Code cleanup\n    "},"1.3.2":{"date":"05\/03\/2016","content":"1. [](#new)\n    * Added default pagination to `page.collection.params.pagination` and `base_url` to `page.url`\n1. [](#improved)\n    * Use common lang strings in blueprints    \n1. [](#bugfix)\n    * Improved and fixed README.md\n    "},"1.3.1":{"date":"08\/29\/2015","content":"1. [](#bugfix)\n    * Fixed pagination URLs in certain situations\n"},"1.3.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.2.7":{"date":"07\/13\/2015","content":"1. [](#new)\n\t* Added ability to provide `\/tmpl:template_name` parameter to pagination URL\n2. [](#improved)\n    * Allow checking of `header.content.pagination` **or** `header.pagination` to activate\n"},"1.2.6":{"date":"07\/12\/2015","content":"2. [](#improved)\n    * no `\/page:1` for first page in pagination set\n"},"1.2.5":{"date":"02\/19\/2015","content":"2. [](#improved)\n    * Implemented new `param_sep` variable from Grav 0.9.18\n"},"1.2.4":{"date":"02\/05\/2015","content":"2. [](#improved)\n    * Added support for HHVM\n"},"1.2.3":{"date":"01\/23\/2015","content":"2. [](#improved)\n    * Added microdata information for links\n"},"1.2.2":{"date":"01\/09\/2015","content":"2. [](#improved)\n    * NOTE: BREAKING CHANGE: Moved templates into `partials\/` subfolder for consistency.\n"},"1.2.1":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}}},"random":{"name":"Random","version":"1.5.1","description":"Allows to randomly select a page from a collection of pages. Flexible **filters** provide maximum reconfigurability.","description_html":"<p>Allows to randomly select a page from a collection of pages. Flexible <strong>filters<\/strong> provide maximum reconfigurability.<\/p>","description_plain":"Allows to randomly select a page from a collection of pages. Flexible filters provide maximum reconfigurability.","icon":"refresh","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-random","demo":"http:\/\/demo.getgrav.org\/blog-skeleton","keywords":"random, plugin, blog, pages","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-random\/issues","license":"MIT","tag_name":"1.5.1","date":"2026-05-05T14:08:44Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/random\/1.5.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-random","slug":"random","install_path":"user\/plugins\/random","content_sha256":"a8ebb79aea2e696f129abbe8e387692d1addea461ca2e7906ce2497490f9dff8","changelog":{"1.5.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.5.0":{"date":"01\/06\/2016","content":"1. [](#bugfix)\n    * Fixed the filters blueprint by adding category to it\n"},"1.4.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.3.0":{"date":"07\/21\/2015","content":"2. [](#new)\n    * Redirects to random page by default\n    "},"1.2.1":{"date":"06\/16\/2015","content":"2. [](#new)\n    * Changelog started\n"}},"dependencies":[]},"sitemap":{"name":"Sitemap","version":"5.2.1","description":"Provide automatically generated **XML sitemaps** with this very useful, as a simple to configure Grav plugin.","description_html":"<p>Provide automatically generated <strong>XML sitemaps<\/strong> with this very useful, as a simple to configure Grav plugin.<\/p>","description_plain":"Provide automatically generated XML sitemaps with this very useful, as a simple to configure Grav plugin.","icon":"map-marker","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-sitemap","keywords":"sitemap, plugin, xml, map, index","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/issues","license":"MIT","tag_name":"5.2.1","date":"2026-05-05T14:09:43Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/sitemap\/5.2.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-sitemap","slug":"sitemap","install_path":"user\/plugins\/sitemap","content_sha256":"c5bfcb7eb7a6160fc705f49c2177e24e9acb11a71e0ee1b5380eb90bea84c939","changelog":{"5.2.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"5.2.0":{"date":"04\/10\/26","content":"1. [](#improved)\n   * Bumped minimum requirements to PHP 7.4 and Grav 1.7 [#119](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/119)\n   * Switched `getgrav.org` references to HTTPS [#117](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/117)\n   * Fixed typo in README.md [#118](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/118)\n1. [](#bugfix)\n   * Fixed HTML pattern character class escaping for `v` flag compatibility in admin blueprint [#120](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/120)\n   * Cast page `timestamp` to integer in sitemap data to avoid type issues with non-int date values\n"},"5.1.0":{"date":"06\/17\/24","content":"1. [](#new)\n   * Added page-level `lastmod` options [#113](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/113)\n1. [](#improved)\n   * Updated README.md with page override options.\n   "},"5.0.0":{"date":"10\/05\/2023","content":"1. [](#new)\n   * New capability to support \"standalone\" Sitemap News pages\n   * New XSL format for Sitemap News\n   * Added a toggle for XSL transform support to be disabled\n1. [](#improved)\n   * Improved blueprint and created sections\n   * Hide `x-default` alternate links when `include_default_lang` is enabled\n1. [](#bugfix)\n   * Fixed an issue with translated links were not being handled properly and not showing all alternate languages\n   "},"4.0.0":{"date":"09\/22\/2023","content":"1. [](#new)\n   * Added support for Google News tags [#93](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/93)\n   * Enhanced Google News to allow restriction to paths and configurable max-age in days\n1. [](#improved)\n   * Added YAML syntax highlighting in README.md [#101](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/101)\n"},"3.0.2":{"date":"06\/14\/2022","content":"1. [](#new)\n   * Added new `route:` field to JSON format sitemap\n1. [](#bugfix)\n   * Fixed an issue with `x-default` entry not working with non-string based language code\n"},"3.0.1":{"date":"02\/23\/2021","content":"1. [](#new)\n  * Added ability to disable multi-lang completely to replicate prior functionality [#96](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/96)\n  * Added support for new optional `html_support` option that allows you to render the sitemap as an HTML page in your site when you access the sitemap URL with no extension or `.html`. Can be customized and extended in your theme as needed.\n"},"3.0.0":{"date":"01\/30\/2021","content":"1. [](#new)\n    * Added complete multi-language support utilizing [Google Search recommended SEO best-practices](https:\/\/developers.google.com\/search\/docs\/advanced\/crawling\/localized-versions?hl=en&visit_id=637468720624267418-280936473&rd=2) for bi-directional linking to translated pages.\n    * Added support fo `x-default` hreflang entries.\n    * Added support for new `sitemap.json` custom format that is useful for other plugins to understand the multi-language structure of the site\n    * Added support for sitemap images per [Google guidelines](https:\/\/developers.google.com\/search\/docs\/advanced\/sitemaps\/image-sitemaps) [#81](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/81)\n"},"2.0.2":{"date":"12\/02\/2020","content":"1. [](#improved)\n    * Improved readme\/blueprints with regex information [#78](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/78)\n"},"2.0.1":{"date":"07\/01\/2020","content":"1. [](#bugfix)\n    * Fixed a case issue with `SitemapEntry` PHP class\n"},"2.0.0":{"date":"07\/01\/2020","content":"1. [](#new)\n    * Added a new `Ignore External URLs` option that defaults to `true`\n    * Added a new `Ignore Protected Pages` option that defaults to `true` [#62](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/issues\/62)\n    * Added a new `onSitemapProcessed()` event to allow for dynamic manipulation of the sitemap\n1. [](#improved)\n    * Improved `SitemapEntry` to allow setting via constructor\n    * Added `changefreq` and `priority` to manually and dynamically added entries\n    * Use composer for autoloading\n1. [](#bugfix)\n    * Force a fallback to `en` to ensure you can't get `null\/false` language [#74](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/issues\/74)   \n    "},"1.9.5":{"date":"04\/27\/2020","content":"1. [](#improved)\n    * Add admin toggle for `ignore` [#68](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/68)\n    * Omit empty `<lastmod>` [#70](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/70)\n    * Added Chinese language [#73](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/73)\n    * Added German language [#66](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/66)\n"},"1.9.4":{"date":"10\/19\/2019","content":"1. [](#bugfix)\n    * Fixed a regression issue that caused sitemap not to work 'unless' you had an existing `sitemap` page [#65](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/issues\/65)\n"},"1.9.3":{"date":"10\/18\/2019","content":"1. [](#improved)\n    * Support existing `sitemap` HTML page to be used in place of XSL version\n    * Remove `\/` from end of home URLS [#58](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/58)\n    * Include translated pages only [#57](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/57)\n    * Make sure `modular` pages are not included in configuration [#56](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/56)\n"},"1.9.2":{"date":"05\/09\/2019","content":"1. [](#improved)\n    * Enhanced HTML layout with XSL transformation [#24](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/24)\n    * Global toggles for change frequency and priority [#52](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/52)\n    * Added a meta name=\"robots\" content=\"noindex\" into the header for seo [#50](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/50)\n    * Added `ru` and `uk` translations [#61](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/61)\n1. [](#bugfix)\n    * Only add published translations to the sitemap [#43](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/issues\/43)\n"},"1.9.1":{"date":"04\/21\/2017","content":"1. [](#bugfix)\n    * Add a namespace xhtml for a international sitemap [#40](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/40)\n"},"1.9.0":{"date":"04\/19\/2017","content":"1. [](#new)\n    * Added wildcard ignores [#34](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/34)\n    * Added ability to add external URLs to sitemap [#35](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/35)\n    * Added page-level ignores [#37](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/37)\n    * Added multilanguage support [#36](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/36)\n"},"1.8.0":{"date":"03\/14\/2017","content":"1. [](#new)\n    * Added `changefreq` and `priority` [#28](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/28)\n1. [](#improved)\n    * Use `$page->canonical()` rather than `$page->permalink()` [#28](https:\/\/github.com\/getgrav\/grav-plugin-sitemap\/pull\/28)\n"},"1.7.0":{"date":"10\/19\/2016","content":"1. [](#new)\n    * Use new Grav feature to force output to be XML even when not passed `.xml` in URL\n"},"1.6.2":{"date":"07\/14\/2016","content":"1. [](#bugfix)\n    * Fix sitemap XLS in multilanguage\n"}}},"simplesearch":{"name":"SimpleSearch","version":"2.3.2","description":"Don&#39;t be fooled, the **SimpleSearch** plugin provides a **fast** and highly **configurable** way to search your content.","description_html":"<p>Don&#39;t be fooled, the <strong>SimpleSearch<\/strong> plugin provides a <strong>fast<\/strong> and highly <strong>configurable<\/strong> way to search your content.<\/p>","description_plain":"Don&#39;t be fooled, the SimpleSearch plugin provides a fast and highly configurable way to search your content.","icon":"search","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-simplesearch","demo":"http:\/\/demo.getgrav.org\/blog-skeleton","keywords":"simplesearch, plugin, search, page, content, find","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/issues","license":"MIT","tag_name":"2.3.2","date":"2026-07-21T00:19:40Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/simplesearch\/2.3.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-simplesearch","slug":"simplesearch","install_path":"user\/plugins\/simplesearch","content_sha256":"79be9fec5ed1989e74b3dcd3c3caa9bc136dfb0b81b11e22937801c48cbf19f6","changelog":{"2.3.2":{"date":"07\/20\/2026","content":"1. [](#bugfix)\n    * Accent-insensitive search now works regardless of the server's locale, so accented and unaccented spellings match each other in languages beyond Western European ([#207](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/issues\/207)).\n"},"2.3.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"2.3.0":{"date":"08\/26\/2022","content":"1. [](#new)\n    * Added new `onSimpleSearchCollection()` event to allow for custom integration into SimpleSearch.\n    * Require Grav 1.7+\n"},"2.2.2":{"date":"05\/25\/2021","content":"1. [](#bugfix)\n    * `|raw` missing in JSON template\n"},"2.2.1":{"date":"12\/02\/2020","content":"1. [](#new)\n    * Require Grav 1.6.0+\n    * Added autoloader\n    * Pass phpstan level 3 tests\n1. [](#bugfix)\n    * Fixed `header_keys_ignored` configuration option not taking effect\n"},"2.2.0":{"date":"09\/14\/2020","content":"1. [](#improved)\n    * Added config option to choose keys to ignore when searching header\n    * Added ability to opt-out of page search by setting: `simplesearch: process: false` in page header\n    * Added `form` and `forms` to default list of ignores in page header searches\n1. [](#bugfix)\n    * Fix issue to ensure matching ignore keys only checked at root level\n    * Fix issue where searchable header content was growing exponentially\n"},"2.1.0":{"date":"05\/27\/2020","content":"1. [](#new)\n    * Added ability to search page headers (excluding title, taxonomy, content)\n"},"2.0.0":{"date":"05\/13\/2020","content":"1. [](#new)\n    * Allow searching the content of modular pages [#170](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/170)\n    * Allow configuration of Title\/Content\/Taxononmy searchable types [#184](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/184)\n1. [](#improved)\n    * Improved default vs custom search page functionality [#186](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/186)\n    * Add field label for screen reader accessibility [#171](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/171)\n    * Added Traditional Chinese [#169](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/169)\n    * Updated Russian and English [#165](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/165)\n    * Added Galacian [#155](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/155)\n1. [](#bugfix)\n    * Fixed input attribute [#165](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/165)\n"},"1.14.2":{"date":"12\/07\/2018","content":"1. [](#improved)\n    * Optimize, cleanup and remove typos [#163](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/163)\n    * Removed `blog` as default filter [#166](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/166)\n    * Polish translation [#144](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/144)\n    * Kazakh translation [#153](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/153)\n    * Spelling corrections [#145](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/145)\n1. [](#bugfix)\n    * Fix JS to work with IE11 [#161](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/161)\n    * Updated javascript to be compatible with IE11 [#161](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/161)\n    * Ensure `$values` is an array to prevent PHP error on implode [#146](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/146)\n"},"1.14.1":{"date":"01\/11\/2018","content":"1. [](#bugfix)\n    * Fix for Gantry5 themes\n"},"1.14.0":{"date":"01\/08\/2018","content":"1. [](#new)\n    * Added Danish translations [#127](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/127)\n1. [](#improved)\n    * New option to disable built-in JS [#130](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/130)\n    * Changed elipsis from `...` to `\u2026` [#133](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/133)\n    * Added missing French translations [#136](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/136)\n    * Added missing German translations [#128](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/128)\n1. [](#bugfix)\n    * Escaped `query` in Twig templates for XSS protection\n"},"1.13.0":{"date":"07\/26\/2017","content":"1. [](#improved)\n    * Support for multiple forms and fields in the same page\n1. [](#bugfix)\n    * Fix typo in `SEARCH_FIELD_MINIUMUM_CHARACTERS` translation string\n    * Fixed validation and JS submission\n    * Separated JS from inline to file\n    * Fixed issue with min query length always enforced. It is now possible to have no minimum length by setting to `false` or `0`\n"},"1.12.0":{"date":"05\/31\/2017","content":"1. [](#new)\n   * Added option to switch between Rendered HTML and Raw Markdown content searching. Raw Markdown is faster than default.\n"},"1.11.0":{"date":"05\/29\/2017","content":"1. [](#new)\n    * Allow to use \"@none\"\/\"none@\" in the \"Category filter\" in Admin to allow removing the filter\n"},"1.10.2":{"date":"04\/19\/2017","content":"1. [](#bugfix)\n    * Only check ACL if the Login plugin is installed [#112](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/112)\n"},"1.10.1":{"date":"04\/11\/2017","content":"1. [](#new)\n    * Added Portuguese translation\n    * Add hint when the minimum search field length is not matched\n1. [](#bugfix)\n    * Default `ignore_accented_characters` to false\n    * Fallback to regular search if searching with `ignore_accented_characters` on an unsupported charset raises an exception [#107](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/issues\/107)\n    * Check ACL before listing a page in the search results [#102](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/102)\n    * Fix with ignoring `min_query_length` when using the button [#99](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/issues\/99)\n"},"1.10.0":{"date":"01\/23\/2017","content":"1. [](#new)\n    * Added spanish translation\n    * Added japanese translation\n    * Added persian translation\n1. [](#improved)\n    * Added option to switch between Rendered HTML and Raw Markdown content searching.  Raw Markdown is faster than default.\n    * Removed jQuery dependency, fixes issue when jQuery is loaded in the footer [#57](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/57)\n    * Added option to ignore accents when searching [#89](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/pull\/89)\n1. [](#bugfix)\n    * Remove unpublished and un-routable pages from the result set\n    * Fixed issue when using @self as route\n    * Fix overloaded property issue when searching on a page with simplesearch header [#80](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/issues\/80)\n    * Fix issue with empty string and leading commas [#71](https:\/\/github.com\/getgrav\/grav-plugin-simplesearch\/issues\/71)\n"},"1.9.3":{"date":"10\/19\/2016","content":"1. [](#bugfix)\n    * Fixed an issue with invalid syntax in `route: @self` logic\n"},"1.9.2":{"date":"09\/19\/2016","content":"1. [](#bugfix)\n    * Reverted change in events - causing problems\n    * Reverted fix for `route: @self`, breaking `filter: @self` (used in getgrav.org)\n"},"1.9.1":{"date":"09\/08\/2016","content":"1. [](#bugfix)\n    * Fixed logic to use `onPageInitialized` event\n"}}},"smartypants":{"name":"Smartypants","version":"2.6.0","description":"The **Smartypants** plugin performs smart typography transforms on quotes","description_html":"<p>The <strong>Smartypants<\/strong> plugin performs smart typography transforms on quotes<\/p>","description_plain":"The Smartypants plugin performs smart typography transforms on quotes","icon":"quote-left","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-smartypants","keywords":"smartypants, plugin, quotes, typography","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-smartypants\/issues","license":"MIT","tag_name":"2.6.0","date":"2026-05-05T14:09:48Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/smartypants\/2.6.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-smartypants","slug":"smartypants","install_path":"user\/plugins\/smartypants","content_sha256":"20a6e94f8e0574d1fc659024464a278d23ec574dd9713b08ae456eb05b98c54d","changelog":{"2.6.0":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Folded in pending working-tree changes (vendor refresh \/ minor PHP 8 modernization)\n"},"2.5.0":{"date":"02\/05\/2016","content":"1. [](#new)\n    * Added custom overrides for SmartyPants default quotes\n"},"2.4.0":{"date":"12\/30\/2015","content":"1. [](#improved)\n    * Renamed initial event for more reliable operation\n"},"2.3.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n    * Added page-level smartypants options\n"},"2.2.0":{"date":"07\/21\/2015","content":"2. [](#improved)\n    * Changed the initialization even to `onBuildPagesInitialized`\n    * Added compatibility note in the `README.md` file\n    "},"2.1.0":{"date":"02\/22\/2015","content":"2. [](#improved)\n    * Uses new `mergeConfig()` method provided in base Plugins class\n"},"2.0.1":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"taxonomylist":{"name":"Taxonomy List","version":"1.4.3","description":"With the **TaxonomyList plugin** you can easily create list of **taxonomy** items such as **tags**, **categories**, etc.","description_html":"<p>With the <strong>TaxonomyList plugin<\/strong> you can easily create list of <strong>taxonomy<\/strong> items such as <strong>tags<\/strong>, <strong>categories<\/strong>, etc.<\/p>","description_plain":"With the TaxonomyList plugin you can easily create list of taxonomy items such as tags, categories, etc.","icon":"tag","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist","demo":"http:\/\/demo.getgrav.org\/blog-skeleton","keywords":"taxonomylist, plugin, taxonomy, list, tags, categories","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/issues","license":"MIT","tag_name":"1.4.3","date":"2026-07-17T20:42:07Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/taxonomylist\/1.4.3","repository":"https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist","slug":"taxonomylist","install_path":"user\/plugins\/taxonomylist","content_sha256":"a49a421e711107c38a14314d307e878e00ad22b66cb3608e1944d386941404bf","changelog":{"1.4.3":{"date":"07\/17\/2026","content":"1. [](#bugfix)\n    * Child page tags are now sorted by frequency so themes show the most-used tags first [#219](https:\/\/github.com\/getgrav\/grav-theme-quark\/issues\/219)\n"},"1.4.2":{"date":"06\/11\/2026","content":"1. [](#new)\n    * Added opt-in `respect_access` option to filter the site-wide taxonomy list by the current visitor's page access [#44](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/issues\/44)\n2. [](#improved)\n    * Child page taxonomy now respects page `access` rules, so restricted pages no longer leak their tags to unauthorized visitors [#44](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/issues\/44)\n"},"1.4.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.4.0":{"date":"01\/06\/2025","content":"1. [](#new)\n   * PHP 8.4 compatibility support\n   * Added ability for page descendant taxonomy [#31](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/pull\/31)\n"},"1.3.6":{"date":"04\/16\/2024","content":"1. [](#new)\n   * Specify the page from which to get the child tags [#39](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/issues\/39)\n"},"1.3.5":{"date":"12\/02\/2020","content":"1. [](#new)\n    * Requires **Grav 1.6**\n    * Pass phpstan level 8 tests\n1. [](#bugfix)\n    * Exclude empty folders from taxonomy\n"},"1.3.4":{"date":"08\/03\/2020","content":"1. [](#bugfix)\n    * Reinstated caching that was broken from previous PR [#23](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/issues\/23)\n    * Fixed wrong URL for blog site skeleton [#33](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/pull\/33)\n    * Resolved `children_only option` showing unpublished pages [#27](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/pull\/27)\n    * Fixed escape character issue in validate pattern\n\n"},"1.3.3":{"date":"08\/21\/2018","content":"1. [](#bugfix)\n    * Reinstated caching that was broken from previous PR [#23](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/issues\/23)\n"},"1.3.2":{"date":"05\/21\/2017","content":"1. [](#improved)\n    * Removed Grav trait in favor of `Grav::instance()`\n"},"1.3.1":{"date":"11\/02\/2017","content":"1. [](#bugfix)\n    * Don't need to lowercase the taxonomy now we have removed `case_insensitive_urls` option in Grav core\n"},"1.3.0":{"date":"10\/31\/2017","content":"1. [](#new)\n    * Added ability to show tags of the child pages of the current page [#17](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/pull\/17)\n1. [](#improved)\n    * Improved child-pages logic to use the same include, just pass an optional `children_only` param\n    * Lowercase all tags due to changes in Grav 1.3.8 where URL params are lowercase [#18](https:\/\/github.com\/getgrav\/grav-plugin-taxonomylist\/issues\/18) \n"},"1.2.7":{"date":"01\/06\/2016","content":"2. [](#improved)\n    * Removed extraneous encoding\n"},"1.2.6":{"date":"10\/07\/2015","content":"2. [](#improved)\n    * Added `active` class on active taxonomies\n"},"1.2.5":{"date":"07\/19\/2015","content":"2. [](#improved)\n    * Set the taxonomy type from the taxonomy being passed in\n"},"1.2.4":{"date":"02\/19\/2015","content":"2. [](#improved)\n    * Implemented new `param_sep` variable from Grav 0.9.18\n"},"1.2.3":{"date":"02\/05\/2015","content":"2. [](#improved)\n    * Added support for HHVM\n"},"1.2.2":{"date":"01\/09\/2015","content":"2. [](#improved)\n    * NOTE: BREAKING CHANGE: Moved templates into `partials\/` subfolder for consistency.\n"},"1.2.1":{"date":"01\/07\/2015","content":"1. [](#bugfix)\n    * Support for numeric taxonomy values\n"},"1.2.0":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}}},"github":{"name":"GitHub","version":"2.0.1","description":"This plugin wraps the [GitHub v3 API](https:\/\/developer.github.com\/v3\/) and is compatible with [GitHub v4 GraphQL API](https:\/\/developer.github.com\/v4\/). Under the hood it uses [php-github-api](https:\/\/github.com\/KnpLabs\/php-github-api\/) library to add a nice GitHub touch to your Grav pages.","description_html":"<p>This plugin wraps the <a href=\"https:\/\/developer.github.com\/v3\/\">GitHub v3 API<\/a> and is compatible with <a href=\"https:\/\/developer.github.com\/v4\/\">GitHub v4 GraphQL API<\/a>. Under the hood it uses <a href=\"https:\/\/github.com\/KnpLabs\/php-github-api\/\">php-github-api<\/a> library to add a nice GitHub touch to your Grav pages.<\/p>","description_plain":"This plugin wraps the GitHub v3 API and is compatible with GitHub v4 GraphQL API. Under the hood it uses php-github-api library to add a nice GitHub touch to your Grav pages.","icon":"github","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-github","keywords":"github, plugin, api","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-github\/issues","license":"MIT","tag_name":"2.0.1","date":"2026-05-05T14:07:42Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/github\/2.0.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-github","slug":"github","install_path":"user\/plugins\/github","content_sha256":"0f2b78770b4c6ae7fc22a46e31a75a729ab39120bd254faa256faf6f03d90703","changelog":{"2.0.1":{"date":"04\/30\/2026","content":"1. [](#improved)\n    * Updated bundled `clue\/stream-filter` to v1.5.0+ so its functions are guarded with `function_exists()` \u2014 fixes `Cannot redeclare Clue\\StreamFilter\\append()` fatal when running alongside `mailersend` (or any other plugin with a newer copy of clue\/stream-filter).\n"},"2.0.0":{"date":"12\/07\/2018","content":"1. [](#improved)\n    * Updated GitHub API to latest 2.10 release\n"},"1.3.0":{"date":"05\/03\/2016","content":"1. [](#improved)\n    * Updated GitHub API library to latest 1.6.0 release\n    * Add `github` object directly to Twig rather than via another event\n"},"1.2.2":{"date":"12\/11\/2015","content":"1. [](#new)\n    * New configuration settings for authentication, allowing to get past the 60\/hr guest limit in favor of the 5000\/hr authenticated limit\n    * New `paginator` class available that allows retrieving past the first page. GitHub API defaults to 30 items per page\n"},"1.2.1":{"date":"05\/04\/2015","content":"1. [](#improved)\n    * Updated the `php-github-api` library to latest version\n"},"1.2.0":{"date":"01\/09\/2015","content":"2. [](#improved)\n    * NOTE: BREAKING CHANGE: Moved templates into `partials\/` subfolder for consistency.\n"},"1.1.0":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"intl":{"name":"Intl","version":"1.0.0","description":"Adds locale-aware Twig filters and functions (number, currency and date formatting, plus localized country, language, locale, currency and timezone names) powered by symfony\/intl.","description_html":"<p>Adds locale-aware Twig filters and functions (number, currency and date formatting, plus localized country, language, locale, currency and timezone names) powered by symfony\/intl.<\/p>","description_plain":"Adds locale-aware Twig filters and functions (number, currency and date formatting, plus localized country, language, locale, currency and timezone names) powered by symfony\/intl.","icon":"language","author":{"name":"Trilby Media, LLC","url":"https:\/\/trilby.media","email":"hello@trilby.media"},"dependencies":[{"name":"grav","version":">=1.7.0"},{"name":"php","version":">=7.3.6"},{"name":"php-intl"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-intl","docs":"https:\/\/github.com\/getgrav\/grav-plugin-intl\/blob\/main\/README.md","keywords":"grav, plugin, intl, i18n, internationalization, localization, locale, twig, currency, number, date, format","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-intl\/issues","license":"MIT","tag_name":"1.0.0","date":"2026-07-14T02:18:33Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/intl\/1.0.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-intl","slug":"intl","install_path":"user\/plugins\/intl","content_sha256":"ab701b67f674b035516b6aec56156d9fba1c5262a4acd832fd16f0b57b74a940","changelog":{"1.0.0":{"date":"07\/13\/2026","content":"1. [](#new)\n    * Initial release\n    * Locale-aware Twig **filters**: `format_currency`, `format_number`, `format_*_number`, `format_datetime`, `format_date`, `format_time`, `format_list`, `country_name`, `currency_name`, `currency_symbol`, `language_name`, `locale_name`, `timezone_name`\n    * Twig **functions**: `country_names()`, `currency_names()`, `language_names()`, `locale_names()`, `script_names()`, `timezone_names()`, `country_timezones()`\n    * Optional `default_locale` configuration option\n    * Compatible with Grav 1.7 (Twig 1) and Grav 2.0 (Twig 3)"}}},"twigcache":{"name":"Twig Cache","version":"1.4.0","description":"This plugin adds another layer of cache to specify portions your Twig output. Uses the [twig-cache-extension](https:\/\/github.com\/asm89\/twig-cache-extension) extension.","description_html":"<p>This plugin adds another layer of cache to specify portions your Twig output. Uses the <a href=\"https:\/\/github.com\/asm89\/twig-cache-extension\">twig-cache-extension<\/a> extension.<\/p>","description_plain":"This plugin adds another layer of cache to specify portions your Twig output. Uses the twig-cache-extension extension.","icon":"hdd-o","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-twigcache","keywords":"twigcache, plugin, cache, twig, extension","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-twigcache\/issues","license":"MIT","tag_name":"1.4.0","date":"2026-05-05T14:10:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/twigcache\/1.4.0","repository":"https:\/\/github.com\/getgrav\/grav-plugin-twigcache","slug":"twigcache","install_path":"user\/plugins\/twigcache","content_sha256":"a92012b1c2abe4e80add1b769d83c4bb1d4ca25f8d56f1cc976c5710444b69dc","changelog":{"1.4.0":{"date":"04\/29\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n\n1. [](#improved)\n    * Updated bundled `asm89\/twig-cache-extension` classes to use Twig namespaced class names (`Twig\\Token`, `Twig\\Environment`, etc.) instead of the legacy `Twig_X` aliases. Now compatible with Twig 1.26+, Twig 2.x, and Twig 3.x \u2014 meaning the plugin works on Grav 1.7 and Grav 2.0 from a single codebase.\n"},"1.3.0":{"date":"01\/17\/2017","content":"1. [](#new)\n    * Updated cache extension to 1.3.2\n"},"1.2.0":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"snipcart":{"name":"Snipcart","version":"1.7.2","description":"This plugin wraps the very good [Snipcart](https:\/\/snipcart.com\/) application and let&#39;s you turn your Grav site into a shopping cart very easily.","description_html":"<p>This plugin wraps the very good <a href=\"https:\/\/snipcart.com\/\">Snipcart<\/a> application and let&#39;s you turn your Grav site into a shopping cart very easily.<\/p>","description_plain":"This plugin wraps the very good Snipcart application and let&#39;s you turn your Grav site into a shopping cart very easily.","icon":"shopping-cart","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-snipcart","demo":"http:\/\/demo.getgrav.org\/shop-skeleton","keywords":"snipcart, plugin, shop, cart","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-snipcart\/issues","license":"MIT","tag_name":"1.7.2","date":"2026-05-05T14:09:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/snipcart\/1.7.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-snipcart","slug":"snipcart","install_path":"user\/plugins\/snipcart","content_sha256":"f6e53e43712c4827cc6e5748e47be651620b585d763d00084b212cd109f611dd","changelog":{"1.7.2":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.7.1":{"date":"09\/08\/2016","content":"1. [](#improved)\n    * Added support for Grav's autoescape twig setting\n"},"1.7.0":{"date":"07\/14\/2016","content":"1. [](#improved)\n    * Added a `data-item-image` attribute, to put a product thumb in the cart\n"},"1.6.0":{"date":"05\/03\/2016","content":"1. [](#new)\n    * Use new SnipCart 2.0 version\n1. [](#improved)\n    * Moved `snipcart.html.twig` into plugin\n"},"1.5.0":{"date":"11\/24\/2015","content":"1. [](#bugfix)\n    * Fixed a bug in the products and categories list on smaller screens\n"},"1.4.0":{"date":"09\/26\/2015","content":"1. [](#improved)\n    * SnipCart asset URLs updated to use CDN\n"},"1.3.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.2.1":{"date":"01\/09\/2015","content":"2. [](#improved)\n    * Updated with fixed reference to `partials\/breadcrumbs.html.twig`\n"},"1.2.0":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"lightslider":{"name":"LightSlider","version":"1.5.4","description":"This plugin wraps the [Lightslider](http:\/\/sachinchoolur.github.io\/lightslider\/) jQuery plugin and let&#39;s you add nice content sliders.","description_html":"<p>This plugin wraps the <a href=\"http:\/\/sachinchoolur.github.io\/lightslider\/\">Lightslider<\/a> jQuery plugin and let&#39;s you add nice content sliders.<\/p>","description_plain":"This plugin wraps the Lightslider jQuery plugin and let&#39;s you add nice content sliders.","icon":"bolt","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-lightslider","demo":"http:\/\/demo.getgrav.org\/shop-skeleton","keywords":"lightslider, plugin, slider, images, carousel","bugs":"https:\/\/lightslider.com\/getgrav\/grav-plugin-lightslider\/issues","license":"MIT","tag_name":"1.5.4","date":"2026-05-05T14:08:04Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/lightslider\/1.5.4","repository":"https:\/\/github.com\/getgrav\/grav-plugin-lightslider","slug":"lightslider","install_path":"user\/plugins\/lightslider","content_sha256":"ac96e2de259f98f766bf6c478d7c5b4f6f0309e4429ecb11c067ed192286fe85","changelog":{"1.5.4":{"date":"04\/xx\/2017","content":"1. [](#new)\n    * Added the option to center the active slide [#24](https:\/\/github.com\/getgrav\/grav-plugin-lightslider\/pulls\/24)\n"},"1.5.3":{"date":"04\/11\/2017","content":"1. [](#bugfix)\n    * Missed to update blueprint in the last release\n"},"1.5.2":{"date":"03\/31\/2017","content":"1. [](#bugfix)\n    * Fix [#22](https:\/\/github.com\/getgrav\/grav-plugin-lightslider\/issues\/22) add basic lightslider page blueprint\n"},"1.5.1":{"date":"08\/09\/2016","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n    * Added support for Grav's autoescape twig setting\n    * Added support for `unqiue_id` config option\n1. [](#bugfix)\n    * Fixed extra `}` character showing up above slider\n"},"1.5.0":{"date":"02\/05\/2016","content":"1. [](#improved)\n    * Updated Lightslider to 1.1.5\n1. [](#bugfix)\n    * Fixed stopping the animation after a click on the slider\n1. [](#new)\n    * Added the `pauseOnHover` parameter\n"},"1.4.0":{"date":"01\/06\/2016","content":"1. [](#new)\n    * Enable the auto rotation by default\n1. [](#bugfix)\n    * Drop a forgotten dump of the settings\n    * Fixed the links in the README\n"},"1.3.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.2.4":{"date":"02\/19\/2015","content":"1. [](#improved)\n    * Added reference for to load jQuery if needed\n"},"1.2.3":{"date":"02\/17\/2015","content":"1. [](#improved)\n    * Utilized new generated unique_id to support multiple instances on the same page\n"}},"dependencies":[]},"problems":{"name":"Problems","version":"3.0.1","description":"Detects and reports problems found in the site.","description_html":"<p>Detects and reports problems found in the site.<\/p>","description_plain":"Detects and reports problems found in the site.","icon":"exclamation-circle","author":{"name":"Team Grav","url":"https:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.11"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-problems","keywords":"problems, plugin, detector, assistant, required","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-problems\/issues","license":"MIT","tag_name":"3.0.1","date":"2026-07-22T04:36:23Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/problems\/3.0.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-problems","slug":"problems","install_path":"user\/plugins\/problems","content_sha256":"918358ed314c60a0ff59b7ce76361405c09394f37a3fb14b43d64b2414a6c251","changelog":{"3.0.1":{"date":"07\/21\/2026","content":"1. [](#improved)\n    * Stopped committing a developer build lockfile that raised dependency vulnerability alerts in projects tracking the plugin; the running site is unaffected.\n"},"3.0.0":{"date":"04\/17\/2026","content":"1. [](#new)\n    * Added Grav 2.0 \/ Admin 2.0 support\n"},"2.2.3":{"date":"10\/29\/2025","content":"1. [](#improved)\n   * `intl` php package is no longer required to install Grav\n"},"2.2.2":{"date":"03\/21\/2025","content":"1. [](#bugfix)\n    * Fix permission warning on Windows [#46](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/46)\n"},"2.2.1":{"date":"03\/21\/2025","content":"1. [](#bugfix)\n    * Fix path check on windows [#44](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/44)\n"},"2.2.0":{"date":"03\/20\/2025","content":"1. [](#new)\n    * Extended php module checks [#38](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/38)  \n1. [](#improved)\n   * Make sure the Essential Folders are listed without extra '\/' in front of them\n   * Updated `http:\/\/` links to `https:\/\/` across files [#41](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/41)\n   * Clarify Apache module detection text [#40](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/40)\n   * Ensure essential folder are listed without extra `\/` [#39](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/39)\n"},"2.1.2":{"date":"10\/22\/2024","content":"1. [](#improved)\n    * Improved `gd` module check [#36](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/36)\n"},"2.1.1":{"date":"04\/14\/2021","content":"1. [](#bugfix)\n    * Fixed a check for loading problem classes [#32](https:\/\/github.com\/getgrav\/grav-plugin-problems\/issues\/32)\n    * Regression: folders check fails in Windows [#31](https:\/\/github.com\/getgrav\/grav-plugin-problems\/issues\/31)\n"},"2.1.0":{"date":"04\/13\/2021","content":"1. [](#new)\n    * Requires **Grav 1.7.11**\n    * Support running Grav outside webroot [#29](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/29)\n    * Added check whether `user\/accounts` is writable [#25](https:\/\/github.com\/getgrav\/grav-plugin-problems\/issues\/25)\n    * Not all folders need to be writable, reflect that [#30](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/30)\n    * Added check whether JSON extension is installed\n1. [](#improved)\n    * Updated plugin code to the latest standards\n1. [](#bugfix)\n    * Fixed `onFatalException` being handled\/rendered when in CLI and in Admin\n"},"2.0.3":{"date":"05\/09\/2019","content":"1. [](#new)\n    * Code cleanup\n    * Pass `phpstan` tests\n    * Added `ru` and `uk` translations [#23](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/23)\n"},"2.0.2":{"date":"12\/16\/2018","content":"1. [](#bugfix)\n    * Fixed an issue with checker not being initialized on Fatal Error\n"},"2.0.1":{"date":"12\/07\/2018","content":"1. [](#new)\n    * Added support for admin reporting available in Grav 1.6\n1. [](#bugfix)\n    * Fixed issue with twig auto-escaping\n    * Fixed problems plugin potentially breaking CLI command if plugins get initialized\n"},"2.0.0":{"date":"09\/30\/2018","content":"1. [](#new)\n    * Completely rewritten to be much more flexible\n    * New _class_ based problems architecture for unified problem definition and reporting\n    * New `onProblemsInitialized()` plugin event for 3rd party plugins to add their own problem checks\n    * New more intuitive theme based on Spectre.css to display problems\n    * Storage of problem state to allow for displaying in admin plugin\n    * Now with 3 states `critical`, `warning`, and `notice`.  Only critical will stop the site working.\n    * Added some new PHP module checks\n    * Added a new `umask` permission check\n1. [](#improved)\n    * Implemented extra image checks [#17](https:\/\/github.com\/getgrav\/grav-plugin-problems\/pull\/17)\n"},"1.4.7":{"date":"05\/16\/2017","content":"1. [](#improved)\n    * Added check for Exif module if this feature is enabled\n"},"1.4.6":{"date":"02\/17\/2017","content":"1. [](#improved)\n    * Return 500 error code if there is a problem instead of 200 [https:\/\/github.com\/getgrav\/grav\/issues\/1291](https:\/\/github.com\/getgrav\/grav\/issues\/1291)\n"},"1.4.5":{"date":"09\/14\/2016","content":"1. [](#bugfix)\n    * Show the correct status for the Zip extension check\n"},"1.4.4":{"date":"09\/08\/2016","content":"1. [](#new)\n    * Added check for new root folder `tmp` and try to create if missing\n1. [](#bugfix)\n    * Fixed Whoops error if `backup` folder doesn't exist and cannot be created\n"},"1.4.3":{"date":"05\/27\/2016","content":"1. [](#new)\n    * Reverted compression checks\n"},"1.4.2":{"date":"05\/23\/2016","content":"1. [](#new)\n    * Check for compression issues\n"},"1.4.1":{"date":"05\/03\/2016","content":"1. [](#new)\n    * Added a check for XML support in PHP\n1. [](#improved)\n    * Use common language strings in blueprints\n"}}},"featherlight":{"name":"Featherlight","version":"1.5.1","description":"Featherlight is a simple [Grav](http:\/\/github.com\/getgrav\/grav) plugin that adds **lightbox** functionality via the jQuery plugin [Featherlight.js](http:\/\/noelboss.github.io\/featherlight\/).","description_html":"<p>Featherlight is a simple <a href=\"http:\/\/github.com\/getgrav\/grav\">Grav<\/a> plugin that adds <strong>lightbox<\/strong> functionality via the jQuery plugin <a href=\"http:\/\/noelboss.github.io\/featherlight\/\">Featherlight.js<\/a>.<\/p>","description_plain":"Featherlight is a simple Grav plugin that adds lightbox functionality via the jQuery plugin Featherlight.js.","icon":"file-photo-o","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-featherlight","keywords":"featherlight, plugin, code, lightbox","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-featherlight\/issues","license":"MIT","tag_name":"1.5.1","date":"2026-05-05T14:07:15Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/featherlight\/1.5.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-featherlight","slug":"featherlight","install_path":"user\/plugins\/featherlight","content_sha256":"455bfe7929aa516a51635405d8e360761ba1f055d1bded8a37cea25d72eba54b","changelog":{"1.5.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.5.0":{"date":"07\/26\/2017","content":"1. [](#new)\n    * Update to Featherlight 1.7.7\n"},"1.4.0":{"date":"07\/14\/2016","content":"1. [](#new)\n    * Allow to have a custom initialization javascript file\n    * Allow AMD module output for RequireJS\n1. [](#improved)\n    * Moved initialization to its own javascript file instead of inlined in the PHP code\n    * Fixed closeOnEsc\n"},"1.3.1":{"date":"05\/23\/2016","content":"1. [](#improved)\n    * Use common language strings\n    * Set active by default\n"},"1.3.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.2.0":{"date":"06\/16\/2015","content":"1. [](#improved)\n    * Updated to featherlight 1.3.2\n    * Added Gallery support\n"},"1.1.0":{"date":"03\/24\/2015","content":"1. [](#improved)\n    * Updated to featherlight 1.2.3\n    * Added 'root' option to configure where featherlight is added\n    * Added reference for to load jQuery if needed\n"},"1.0.3":{"date":"02\/19\/2015","content":"1. [](#improved)\n    * README improvements\n"},"1.0.2":{"date":"11\/30\/2014","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"relatedpages":{"name":"Related Pages","version":"1.2.7","description":"A highly sophisticated and configurable plugin that calculates related pages in relation to the current page.","description_html":"<p>A highly sophisticated and configurable plugin that calculates related pages in relation to the current page.<\/p>","description_plain":"A highly sophisticated and configurable plugin that calculates related pages in relation to the current page.","icon":"newspaper-o","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.5.0"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-relatedpages","demo":"http:\/\/learn.getgrav.org","keywords":"related, plugin","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-relatedpages\/issues","license":"MIT","tag_name":"1.2.7","date":"2026-07-04T18:04:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/relatedpages\/1.2.7","repository":"https:\/\/github.com\/getgrav\/grav-plugin-relatedpages","slug":"relatedpages","install_path":"user\/plugins\/relatedpages","content_sha256":"b7369cd3bcb082b4f4b0fac0fb9f975bdacb3d54d962ff5fcd00cae019ada1fc","changelog":{"1.2.7":{"date":"07\/04\/2026","content":"1. [](#improved)\n    * Related pages are no longer calculated on pages outside the configured collection, so the home page, listings and other unrelated pages render without the extra work.\n    * The empty result on those pages is now cached, so they no longer rebuild the related list on every request.\n    * When only taxonomy matching is enabled, related pages are found through the taxonomy index instead of loading every page in the collection.\n"},"1.2.6":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.2.5":{"date":"08\/11\/2023","content":"1. [](#improved)\n   * Use pages cache ID for more reliable caching\n1. [](#bugfix)\n   * Fixed a bug when taxonomy matches > scores provided\n"},"1.2.4":{"date":"12\/06\/2022","content":"1. [](#bugfix)\n    * Fix broken \"page in collection\" test that was causing plugin not to function \n"},"1.2.3":{"date":"01\/22\/2021","content":"1. [](#improved)\n    * Fixed caching that was broken for ever!!!\n"},"1.2.2":{"date":"04\/15\/2019","content":"1. [](#new)\n    * Requires Grav 1.5.0\n1. [](#improved)\n    * Updated type hints from `Page` to `PageInterface`\n    * Fixed ordering of the related pages with same score\n"},"1.2.1":{"date":"01\/08\/2018","content":"1. [](#improved)\n    * Languages updates\n1. [](#bugfix)\n  * Fixed deprecated YAML syntax in `relatedpages.yaml` config file\n"},"1.2.0":{"date":"08\/21\/2018","content":"1. [](#new)\n    * Added support for multiple taxonomies [#12](https:\/\/github.com\/getgrav\/grav-plugin-relatedpages\/pull\/12)\n1. [](#improved)\n    * Languages updates\n    "},"1.1.4":{"date":"07\/18\/2016","content":"1. [](#improved)\n    * Switched to `Page::rawMarkdown()` rather than `Page::content()` for increased performance.\n1. [](#bugfix)    \n    * Changed from `array_intersect_assoc` to `array_intersect` for broken tag-tag matching.\n"},"1.1.3":{"date":"07\/14\/2016","content":"1. [](#improved)\n    * Added french\n"},"1.1.2":{"date":"05\/03\/2016","content":"1. [](#new)\n    * Added Romanian and German translations\n"},"1.1.1":{"date":"01\/15\/2016","content":"1. [](#improved)\n    * Disabled content-to-content matching by default (performance hit)\n    * Small refactor\n"},"1.1.0":{"date":"09\/11\/2015","content":"1. [](#improved)\n    * Added blueprints for admin compatibility\n   "},"1.0.3":{"date":"12\/04\/2015","content":"1. [](#new)\n    * ChangeLog started..."}}},"precache":{"name":"PreCache","version":"1.2.1","description":"PreCache is a simple Grav plugin that uses Grav&#39;s powerful `onShutdown` event to run through all pages and call the `content()` method of each page","description_html":"<p>PreCache is a simple Grav plugin that uses Grav&#39;s powerful <code>onShutdown<\/code> event to run through all pages and call the <code>content()<\/code> method of each page<\/p>","description_plain":"PreCache is a simple Grav plugin that uses Grav&#39;s powerful onShutdown event to run through all pages and call the content() method of each page","icon":"fighter-jet","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-precache","keywords":"precache, plugin, performance","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-precache\/issues","license":"MIT","tag_name":"1.2.1","date":"2026-05-05T14:08:40Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/precache\/1.2.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-precache","slug":"precache","install_path":"user\/plugins\/precache","content_sha256":"1cecdf40a3ffb36043735bbe4b63cf486bed5d11b6c5a9a0b7e1cf902a5ce16b","changelog":{"1.2.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n"},"1.2.0":{"date":"04\/27\/2020","content":"1. [](#improved)\n    * Use `info` instead of `warning` when logging [#5](https:\/\/github.com\/getgrav\/grav-plugin-precache\/pull\/5)\n    * Set current page in Grav object [#8](https:\/\/github.com\/getgrav\/grav-plugin-precache\/pull\/8)\n"},"1.1.3":{"date":"03\/24\/2017","content":"1. [](#bugfix)\n    * Force rebuild and re-release \n"},"1.1.2":{"date":"05\/03\/2016","content":"1. [](#bugfix)\n    * Fixed bad label resulting in double \"Plugin Status\" labels \n"},"1.1.1":{"date":"01\/15\/2016","content":"1. [](#new)\n    * Updated blueprints and README.md\n"},"1.1.0":{"date":"01\/15\/2016","content":"1. [](#new)\n    * Added an option to turn off warning logs\n    * Added a new CLI command\n"},"1.0.1":{"date":"12\/17\/2014","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"cdn":{"name":"CDN","version":"1.5.2","description":"Provides CDN support for Grav by rewriting URLs to take advantage of CDN Pull Zones","description_html":"<p>Provides CDN support for Grav by rewriting URLs to take advantage of CDN Pull Zones<\/p>","description_plain":"Provides CDN support for Grav by rewriting URLs to take advantage of CDN Pull Zones","icon":"cloud-upload","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-cdn","demo":"http:\/\/getgrav.org","keywords":"cdn, plugin, performance, speed","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-cdn\/issues","license":"MIT","tag_name":"1.5.2","date":"2026-07-15T23:10:49Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/cdn\/1.5.2","repository":"https:\/\/github.com\/getgrav\/grav-plugin-cdn","slug":"cdn","install_path":"user\/plugins\/cdn","content_sha256":"c0c17136ffe7753be240aba40c13cd6967f34f22418be3948206a456389b6ee7","changelog":{"1.5.2":{"date":"07\/15\/2026","content":"1. [](#bugfix)\n    * Responsive images now load from the CDN at every size, not just the first one in the list.\n    * Images shown inside a code example on a page are no longer rewritten to the CDN.\n    * WebP and AVIF images are now sent to the CDN by default.\n"},"1.5.1":{"date":"04\/30\/2026","content":"1. [](#bugfix)\n    * Fixed PHP 8.1+ deprecation notice \u2014 explicit string casts where `null` was being passed to string-typed function arguments.\n    * No more \"broken site after install\" \u2014 removed the `yourdomain.cdn.com` placeholder default for the `pullzone` field. The plugin now skips CDN rewriting entirely when `pullzone` is empty, so it can ship enabled by default without breaking assets on a fresh install. Set your real CDN domain in plugin settings to activate rewriting.\n"},"1.5.0":{"date":"10\/09\/2018","content":"1. [](#improved)\n    * Added ability to force HTTPS [#10](https:\/\/github.com\/getgrav\/grav-plugin-cdn\/pull\/10)\n    * Minor blueprint typo [#14](https:\/\/github.com\/getgrav\/grav-plugin-cdn\/pull\/14)\n    * Added `.ico` to default extensions [#15](https:\/\/github.com\/getgrav\/grav-plugin-cdn\/pull\/15)\n1. [](#bugfix)\n    * Fix regex correctly matches url() referenced assets [#11](https:\/\/github.com\/getgrav\/grav-plugin-cdn\/pull\/11)\n"},"1.4.0":{"date":"02\/01\/2017","content":"1. [](#improved)\n    * Improved Regex to ignore remote protocl URLs and handle sub-directory based installations\n"},"1.3.1":{"date":"05\/03\/2016","content":"1. [](#bugfix)\n    * Fixed blueprints\n"},"1.3.0":{"date":"01\/06\/2016","content":"1. [](#new)\n    * Support SSL pullzone\n1. [](#improved)\n    * Protocol-less pull zone reference\n1. [](#bugfix)\n    * Fix for the inline CSS regex\n"},"1.2.2":{"date":"10\/23\/2015","content":"1. [](#bugfix)\n    * Fixed Regex to better handle multiple inline matches\n"},"1.2.1":{"date":"09\/10\/2015","content":"1. [](#bugfix)\n    * Fixed an issue where CDN tried to process on non HTML pages\n"},"1.2.0":{"date":"09\/10\/2015","content":"1. [](#improved)\n    * Improved logic to exclude CDN replacements from `pre` and `code` blocks\n"},"1.1.0":{"date":"08\/25\/2015","content":"1. [](#improved)\n    * Added blueprints for Grav Admin plugin\n"},"1.0.3":{"date":"07\/19\/2015","content":"`. [](#improved)\n    * Added configurable `tag_attributes` config option\n"},"1.0.2":{"date":"07\/13\/2015","content":"2. [](#bugfix)\n    * Fix for url() matching not always getting triggered\n"},"1.0.1":{"date":"04\/27\/2015","content":"2. [](#bugfix)\n    * Improved Regex to skip \/\/external URLs\n"},"1.0.0":{"date":"04\/15\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"youtube":{"name":"YouTube","version":"4.4.1","description":"**YouTube** is a simple plugin that converts markdown links or shortcodes into responsive embeds.","description_html":"<p><strong>YouTube<\/strong> is a simple plugin that converts markdown links or shortcodes into responsive embeds.<\/p>","description_plain":"YouTube is a simple plugin that converts markdown links or shortcodes into responsive embeds.","icon":"youtube","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-youtube","keywords":"youtube, markdown","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-youtube\/issues","license":"MIT","tag_name":"4.4.1","date":"2026-06-29T16:52:16Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/youtube\/4.4.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-youtube","slug":"youtube","install_path":"user\/plugins\/youtube","content_sha256":"fca653017c4c0a9f25aed85ac3fa110ba34c1bde0a35210d1b39be690785a1d8","changelog":{"4.4.1":{"date":"06\/29\/2026","content":"1. [](#bugfix)\n    * Shortcode attributes that aren't YouTube player options no longer leak into the embed URL\n    * Sizing and title attributes now apply to the embed iframe instead of being ignored\n    * YouTube embeds now always include a title attribute for accessibility, with an option to customise it\n"},"4.4.0":{"date":"06\/27\/2026","content":"1. [](#new)\n    * Added the editor button to Admin 2, for both the default markdown editor and the Editor Pro editor\n    * Added an \"Editor button inserts\" setting to choose between a built-in link or a shortcode\n1. [](#improved)\n    * Built-in link is now the default editor output, so the button works without the shortcode-core plugin\n1. [](#bugfix)\n    * Fixed a fatal error on Grav 2.0 that left the YouTube embed missing \u2014 the Twig extension now targets Twig 3\n    * Fixed YouTube embeds blanking the page on Grav 2.0 sites with content-Twig security enabled, by deferring the embed past Markdown and registering YouTube as a trusted iframe host\n\n> Note: the Admin 2 default-editor button needs the API plugin and Admin 2 (admin-next) updates that ship the markdown editor toolbar button hook. Trusted-iframe embedding needs Grav core with the `onXssAllowedIframeHosts` allow-list.\n"},"4.3.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"4.3.0":{"date":"11\/17\/2025","content":"1. [](#new)\n    * Added Editor Pro support Shortcode format\n"},"4.2.0":{"date":"04\/20\/2023","content":"1. [](#improved)\n   * Shortcode ingoring plugin fix [#37](https:\/\/github.com\/getgrav\/grav-plugin-youtube\/pull\/37)\n   * Lazy load the thumbnail image [#47](https:\/\/github.com\/getgrav\/grav-plugin-youtube\/pull\/47)\n   * Create shortcode option for custom thumbnail [#44](https:\/\/github.com\/getgrav\/grav-plugin-youtube\/pull\/44)\n"},"4.1.0":{"date":"06\/07\/2021","content":"1. [](#improved)\n   * Mentioned `shortcode-core` as required for shortcode syntax\n   * Added new `class` option for shortcode\n   * Added a new `.grav-youtube-wrapper` element for simpler targeting\n1. [](#bugfix)\n   * Fixed padding to remove black bars at top and bottom [#34](https:\/\/github.com\/getgrav\/grav-plugin-youtube\/pull\/34)\n\n"},"4.0.0":{"date":"12\/14\/2020","content":"1. [](#new)\n    * NextGen Editor shortcode support\n1. [](#improved)\n    * Loop parameter fix for a single video [#36](https:\/\/github.com\/getgrav\/grav-plugin-youtube\/pull\/36)\n"},"3.1.0":{"date":"05\/20\/2020","content":"1. [](#new)\n    * Added \"Lazy Load\" Option [#30](https:\/\/github.com\/getgrav\/grav-plugin-youtube\/pull\/30)\n    * Added option for video size [#29](https:\/\/github.com\/getgrav\/grav-plugin-youtube\/pull\/29)\n"},"3.0.1":{"date":"08\/20\/2018","content":"1. [](#improved)\n    * Refactor to remove GravTrait\n"},"3.0.0":{"date":"08\/02\/2018","content":"1. [](#new)\n    * Added shortcode support\n"},"2.0.4":{"date":"09\/28\/2017","content":"1. [](#improved)\n    * Always use HTTPS for YouTube [#21](https:\/\/github.com\/getgrav\/grav-plugin-youtube\/pull\/21)\n"},"2.0.3":{"date":"12\/23\/2016","content":"1. [](#bugfix)\n    * Fixed a JavaScript issue [#16](https:\/\/github.com\/getgrav\/grav-plugin-youtube\/pull\/16)\n"},"2.0.2":{"date":"05\/23\/2016","content":"1. [](#improved)\n    * Supports `youtu.be` based short links\n1. [](#bugfix)\n    * Fixed for invalid URL with YouTube editor buttons\n    * Fixed editor button to work with Admin v1.1\n"},"2.0.1":{"date":"11\/24\/2015","content":"1. [](#bugfix)\n    * Fixed issue with case sensitivity when including new `YoutubeTwigExtension`\n"},"2.0.0":{"date":"11\/23\/2015","content":"1. [](#new)\n    * Added player parameters configuration values (@hctom)\n    * Added various YouTube options (@hctom)\n    * Reworked output to use overridable Twig template (@hctom)\n    * Added hebe.json (@hctom)\n"},"1.1.0":{"date":"10\/07\/2015","content":"1. [](#new)\n    * Added admin editor button\n"},"1.0.0":{"date":"05\/09\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"page-inject":{"name":"Page Inject","version":"2.2.1","description":"**Page Inject** is a powerful plugin that lets you inject entire pages or page content into other pages using simple markdown-style or shortcode syntax","description_html":"<p><strong>Page Inject<\/strong> is a powerful plugin that lets you inject entire pages or page content into other pages using simple markdown-style or shortcode syntax<\/p>","description_plain":"Page Inject is a powerful plugin that lets you inject entire pages or page content into other pages using simple markdown-style or shortcode syntax","icon":"trello","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.25"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-page-inject","keywords":"inject, embed, markdown","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-page-inject\/issues","license":"MIT","tag_name":"2.2.1","date":"2026-05-05T14:08:29Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/page-inject\/2.2.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-page-inject","slug":"page-inject","install_path":"user\/plugins\/page-inject","content_sha256":"29bb94e1d1c872b3da84fa7217b51cb1ac604158bf99f506318e0152c3dad47c","changelog":{"2.2.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"2.2.0":{"date":"08\/25\/2025","content":"1. [](#new)\n   * Added support for **Editor Pro** integration \n1. [](#bugfix)\n    * Fix route -> path issues\n"},"2.1.6":{"date":"03\/22\/2023","content":"1. [](#bugfix)\n   * Fixed NextGen integration where cog icon settings would not work properly\n   "},"2.1.5":{"date":"03\/28\/2022","content":"2. [](#bugfix)\n   * Fixed an issue with relative paths for page-inject when processing\n"},"2.1.4":{"date":"02\/08\/2022","content":"2. [](#bugfix)\n   * Fixed bad configuration reference for `processed_content`\n   * Set `processed_content` to false by default - so `content-inject` doesn't try to render with twig\n"},"2.1.3":{"date":"02\/08\/2022","content":"1. [](#improved)\n   * Shortcodes should use `rawHanders()` to support shortcodes\/markdown\n"},"2.1.2":{"date":"02\/08\/2022","content":"1. [](#improved)\n   * PHPStan fixes\n   * Support `.\/` in page paths\n"},"2.1.1":{"date":"12\/09\/2021","content":"1. [](#improved)\n   * Added a modular example in the README.md\n2. [](#bugfix)\n   * Allow null returned by `getInjectedPageContent()`\n"},"2.1.0":{"date":"12\/06\/2021","content":"1. [](#new)\n   * Added `[page-inject]` and `[content-inject]` shortcodes as an alternative syntax\n   * Added support for remote `page-inject` and `content-inject` variations\n2. [](#improved)\n   * Refactored code to work with both markdown and shortcode syntax\n   * Use composer-based autoloader\n"},"2.0.0":{"date":"12\/03\/2021","content":"1. [](#new)\n   * Added support for new remote injects.\n"},"1.4.5":{"date":"04\/27\/2021","content":"1. [](#improved)\n   * NextGen Editor: Added toolbar icon\n   * NextGen Editor: Added support for multiple editor instances\n1. [](#bugfix)\n   * Fixed permissions to only require `pages.read` for `taskPageInject` [premium-issues#43](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/43)\n"},"1.4.4":{"date":"01\/29\/2021","content":"1. [](#bugfix)\n   * NextGen Editor: Fixed Page Inject UI links missing the base_root [getgrav\/grav-premium-issues#30](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/30)\n   * NextGen Editor: Moved list of available templates to input text to support partials and any twig template [getgrav\/grav-premium-issues#24](https:\/\/github.com\/getgrav\/grav-premium-issues\/issues\/24)\n"},"1.4.3":{"date":"01\/15\/2021","content":"1. [](#improved)\n   * NextGen Editor: Updated upcast\/downcast syntax to support latest version\n"},"1.4.2":{"date":"12\/20\/2020","content":"1. [](#bugfix)\n    * Fixed `undefined` value when inserting a new Page-Inject shortcode, preventing Page picker to load\n"},"1.4.1":{"date":"12\/18\/2020","content":"1. [](#improved)\n    * NextGen Editor: Properly restore the initial stored path when loading the Page Picker\n"},"1.4.0":{"date":"12\/02\/2020","content":"1. [](#new)\n    * NEW support for NextGen Editor\n    * Added a new `taskPageInjectData` to be used by NextGen Editor integration\n1. [](#bugfix)\n    * Added missing admin nonce\n"},"1.3.1":{"date":"04\/15\/2019","content":"1. [](#bugfix)\n    * Fixed issue with Feed plugin and Page-Inject by forcing template to `html` [feed#42](https:\/\/github.com\/getgrav\/grav-plugin-feed\/issues\/42)\n"},"1.3.0":{"date":"12\/08\/2017","content":"1. [](#new)\n    * Added multi-lang support to Page Inject plugin [#10](https:\/\/github.com\/getgrav\/grav-plugin-page-inject\/issues\/10)\n"},"1.2.0":{"date":"10\/11\/2016","content":"1. [](#improved)\n    * Support Grav-style link route resolution (e.g. `..\/your-route`) [#5](https:\/\/github.com\/getgrav\/grav-plugin-page-inject\/issues\/5)\n1. [](#bugfix)\n    * Fixed issue with `page-inject` processing Twig twice [#7](https:\/\/github.com\/getgrav\/grav-plugin-page-inject\/issues\/7)\n"},"1.1.1":{"date":"10\/21\/2015","content":"1. [](#new)\n    * Added `active` config option to enable\/disable site-wide\n1. [](#bugfix)\n    * Fixed issue with plugin not processing reliably with cache-enabled\n"}}},"langswitcher":{"name":"LangSwitcher","version":"3.4.1","description":"LangSwitcher is a [Grav](https:\/\/github.com\/getgrav\/grav) plugin that provides native language text links to switch between [multiple languages](http:\/\/learn.getgrav.org\/content\/multi-language) in Grav **v0.9.30** or greater.","description_html":"<p>LangSwitcher is a <a href=\"https:\/\/github.com\/getgrav\/grav\">Grav<\/a> plugin that provides native language text links to switch between <a href=\"http:\/\/learn.getgrav.org\/content\/multi-language\">multiple languages<\/a> in Grav <strong>v0.9.30<\/strong> or greater.<\/p>","description_plain":"LangSwitcher is a Grav plugin that provides native language text links to switch between multiple languages in Grav v0.9.30 or greater.","icon":"globe","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"dependencies":[{"name":"grav","version":">=1.7.37"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-langswitcher","keywords":"multilang, multilanguage, translation, switcher","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/issues","license":"MIT","tag_name":"3.4.1","date":"2026-07-04T17:39:13Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/langswitcher\/3.4.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-langswitcher","slug":"langswitcher","install_path":"user\/plugins\/langswitcher","content_sha256":"90ab775f098f7dd9b1385653d9776177a33f02f8fd02c5048a91dad9bfaaf69d","changelog":{"3.4.1":{"date":"07\/04\/2026","content":"1. [](#improved)\n    * On Grav 2.0.7 and newer the translated route is now resolved by Grav core instead of a separate filesystem walk, so cross-language links stay consistent with the rest of the site and are faster to build, while older Grav versions keep using the existing behavior.\n2. [](#bugfix)\n    * Fixed a typo in the plugin's search keywords ([#86](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/86))\n"},"3.4.0":{"date":"06\/17\/2026","content":"1. [](#new)\n    * Added a `langswitcher_translated_url(page, lang)` Twig function that returns the translated URL of any page (or route), not just the current one \u2014 useful when listing pages across languages. Resolves slug\/route overrides and the content fallback chain the same way the current page's routes are built ([#84](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/issues\/84))\n"},"3.3.3":{"date":"06\/09\/2026","content":"1. [](#bugfix)\n    * Fixed switching back to the default language when `include_default_lang` is off and the active language is kept in the session, by exposing a new `switcher_routes` with an explicit prefix on the default language ([#83](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/issues\/83))\n"},"3.3.2":{"date":"06\/04\/2026","content":"1. [](#bugfix)\n    * Fixed the language switcher not reverting to the default language on the home page when the site is hosted at the domain root \u2014 the translated route resolved to an empty string and was kept instead of falling back to the page route. Thanks @thekenshow [#82](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/82)\n"},"3.3.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"3.3.0":{"date":"03\/25\/2026","content":"1. [](#improved)\n    * Implement home page url visibility based on settings [#81](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/81)\n1. [](#bugfix)\n    * Fixed fallback regex to support regional language codes (e.g., `en-us`, `fr-ca`, `de-de`) in addition to simple two-letter codes\n    * Fixed translated URL fallback to respect `system.languages.content_fallback` chain rather than always falling back to the default language\n"},"3.2.0":{"date":"10\/21\/2024","content":"1. [](#improved)\n    * More performance updates with improved lightweight caching\n"},"3.1.1":{"date":"05\/10\/2023","content":"1. [](#improved)\n   * Fixed a PHP 8.2+ deprecation issue\n"},"3.1.0":{"date":"12\/12\/2022","content":"1. [](#new)\n   * Using blocks in `partials\/langswitcher.html.twig` to make it easier to extend without having to copy the logic\n"},"3.0.2":{"date":"10\/05\/2022","content":"1. [](#new)\n   * Require Grav `1.7.37` to make use of the new `Pages::getSimplePagesHash()` method\n   * Added caching to `translated_routes` so translation work is only performed on the first load, resulting in faster subsequent page loads\n"},"3.0.1":{"date":"08\/19\/2022","content":"1. [](#bugfix)\n   * Fixed another issue with incorrect `hreflang` URLs\n"},"3.0.0":{"date":"08\/19\/2022","content":"1. [](#new)\n   * Completely rewrote the logic for translated URLs to be more robust.\n   * Added configuration option to use **Translated URLs** or use previous **Raw-Route** approach\n1. [](#improved)\n   * Updated `hreflang` Twig template to use new translated URLs logic\n   * Added an `x-default` entry for `hreflang` template when default language has `include_default_lang` set to false\n   * Support `params` and `query` string parameters in URLs\n   * Full domain URLs for `hreflang` entries\n"},"2.0.1":{"date":"08\/04\/2022","content":"1. [](#bugfix)\n   * Fixed exception thrown instead of **404 Page not found** [#66](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/issues\/66)\n"},"2.0.0":{"date":"07\/25\/2022","content":"1. [](#new)\n    * Support for translated slugs!!!! [#50](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/50)\n    * Require Grav `1.7`\n1. [](#improved)\n    * Improved support for home URL [#59](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/59)\n"},"1.5.0":{"date":"07\/01\/2021","content":"1. [](#new)\n   * Made langswitcher display more customizable.  See README.md for full details.\n"},"1.4.3":{"date":"06\/25\/2021","content":"1. [](#new)\n   * Made langswitcher data available in Grav object\n1. [](#bugfix)\n   * Fix multilang alternatives [#58](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/58)"},"1.4.2":{"date":"03\/17\/2021","content":"1. [](#new)\n    * Pass phpstan level 1 tests\n    * Require Grav v1.6\n1. [](#bugfix)\n    * Fix `hreflang` URLs [#57](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/57)\n"},"1.4.1":{"date":"05\/09\/2019","content":"1. [](#new)\n    * Added some translations [#45](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/45)\n"},"1.4.0":{"date":"06\/29\/2017","content":"1. [](#new)\n    * Added the `untranslated_pages_behavior` option to determine what to do with a language link when the current page doesn't exist in that language or it exists but it's not published\n1. [](#bugfix)\n    * Fixed generated URLs when `append_url_extension` is set, via PR [#22](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/22)\n"},"1.3.0":{"date":"02\/17\/2017","content":"1. [](#new)\n    * Added support for `hreflang` annotations via PR [#19](https:\/\/github.com\/getgrav\/grav-plugin-langswitcher\/pull\/19)\n"}}},"optimus":{"name":"Optimus","version":"1.3.1","description":"Image compression library utilizing https:\/\/optimus.io\/en","description_html":"<p>Image compression library utilizing <a href=\"https:\/\/optimus.io\/en\">https:\/\/optimus.io\/en<\/a><\/p>","description_plain":"Image compression library utilizing https:\/\/optimus.io\/en","icon":"compress","author":{"name":"Team Grav","url":"http:\/\/getgrav.org","email":"devs@getgrav.org"},"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/getgrav\/grav-plugin-optimus","demo":"http:\/\/demo.getgrav.org\/blog-skeleton","keywords":"optimus, plugin, navigation, depth","bugs":"https:\/\/github.com\/getgrav\/grav-plugin-optimus\/issues","license":"MIT","tag_name":"1.3.1","date":"2026-05-05T14:08:24Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/optimus\/1.3.1","repository":"https:\/\/github.com\/getgrav\/grav-plugin-optimus","slug":"optimus","install_path":"user\/plugins\/optimus","content_sha256":"d228f45e13bb0e32bf62c0a07655938eab339db1c1d51719fbfd803e7cba7767","changelog":{"1.3.1":{"date":"05\/01\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags"}},"dependencies":[]},"staticfilecache":{"name":"Staticfilecache","version":"1.0.0","description":"The **Feed** plugin is a simple yet powerful add-on that lets you view a Grav Collection as **RSS** or **Atom** news feed.","description_html":"<p>The <strong>Feed<\/strong> plugin is a simple yet powerful add-on that lets you view a Grav Collection as <strong>RSS<\/strong> or <strong>Atom<\/strong> news feed.<\/p>","description_plain":"The Feed plugin is a simple yet powerful add-on that lets you view a Grav Collection as RSS or Atom news feed.","icon":"cache","author":{"name":"Fabrizio Branca","url":"http:\/\/fbrnc.net","email":"grav@fbrnc.net"},"homepage":"https:\/\/github.com\/fbrnc\/grav-plugin-staticfilecache","demo":"http:\/\/fbrnc.net","keywords":"cache","bugs":"https:\/\/github.com\/fbrnc\/grav-plugin-staticfilecache\/issues","license":"GPL v3","tag_name":"1.0.0","date":"2014-12-02T02:39:19Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/staticfilecache\/1.0.0","repository":"https:\/\/github.com\/fbrnc\/grav-plugin-staticfilecache","slug":"staticfilecache","install_path":"user\/plugins\/staticfilecache","content_sha256":"e8da221fa3957614cacb3fb27014598f67aa54d9e8a9494ba422c5bad97c91ea","changelog":false,"dependencies":[]},"datetools":{"name":"Date Tools","version":"1.0.6","description":"This plugin provides date tools to twig inside of Grav CMS using the [Carbon](https:\/\/github.com\/briannesbitt\/Carbon) DateTime api extension.","description_html":"<p>This plugin provides date tools to twig inside of Grav CMS using the <a href=\"https:\/\/github.com\/briannesbitt\/Carbon\">Carbon<\/a> DateTime api extension.<\/p>","description_plain":"This plugin provides date tools to twig inside of Grav CMS using the Carbon DateTime api extension.","icon":"clock-o","author":{"name":"Kaleb Heitzman","url":"http:\/\/brandr.co","email":"kalebheitzman@gmail.com"},"homepage":"http:\/\/github.com\/kalebheitzman\/grav-plugin-datetools","docs":"https:\/\/github.com\/kalebheitzman\/grav-plugin-datetools#date-tools-plugin-for-grav-cms","keywords":"events, plugin","bugs":"https:\/\/github.com\/kalebheitzman\/grav-plugin-datetools\/issues","license":"MIT","tag_name":"1.0.6","date":"2016-08-19T02:33:45Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/datetools\/1.0.6","repository":"https:\/\/github.com\/kalebheitzman\/grav-plugin-datetools","slug":"datetools","install_path":"user\/plugins\/datetools","content_sha256":"236a9da2a5dd4d942125ec6b48433d3bb4e483bfc6d8dae3e4648852a17d4fcd","changelog":{"1.0.6":{"date":"08\/18\/2016","content":"1 [](#improved)\n\t* Updated code documentation\n\t* Updated vendor packages\n1 [](#bugfix)\n\t* Fixed Issue #6 & Issue #7- tag structure (deleted tabs v1.0.0, v1.0.1, v1.0.2)\n"},"1.0.5":{"date":"07\/04\/2016","content":"1 [](#bugfix)\n\t* Fixed version number\n\t"},"1.0.4":{"date":"07\/04\/2016","content":"1 [](#bugfix)\n\t* Fixed Issue #5 - Config not being called statically\n"},"1.0.3":{"date":"05\/13\/2016","content":"1 [](#bugfix)\n\t* Fixed Issue #2 - Config undefined\n"},"1.0.2":{"date":"02\/23\/2016","content":"1. [](#new)\n\t* Added Admin-side plugin config form\n1. [](#improved)\n\t* Updated Carbon Date library to latest version\n\t* Updated code documentation\n"},"1.0.1":{"date":"01\/19\/2016","content":"1. [](#improved)\n\t* Ensure compatibility with Grave 1.0.0\n"},"1.0.0":{"date":"01\/09\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"archive_plus":{"name":"Archive Plus","version":"1.3.2","description":"The **Archive Plus** plugin is an enhanced version of the [Grav Archives plugin](https:\/\/github.com\/getgrav\/grav-plugin-archives) with more configuration options and the ability to show a blogger like hierarchical archive menu for links grouped by month and\/or year.","description_html":"<p>The <strong>Archive Plus<\/strong> plugin is an enhanced version of the <a href=\"https:\/\/github.com\/getgrav\/grav-plugin-archives\">Grav Archives plugin<\/a> with more configuration options and the ability to show a blogger like hierarchical archive menu for links grouped by month and\/or year.<\/p>","description_plain":"The Archive Plus plugin is an enhanced version of the Grav Archives plugin with more configuration options and the ability to show a blogger like hierarchical archive menu for links grouped by month and\/or year.","icon":"university","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-archive-plus","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-archive-plus\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-archive-plus\/issues","license":"MIT\/GPL","tag_name":"v1.3.2","date":"2015-09-07T19:25:59Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/archive_plus\/1.3.2","repository":"https:\/\/github.com\/sommerregen\/grav-plugin-archive-plus","slug":"archive_plus","install_path":"user\/plugins\/archive_plus","content_sha256":"79a9a2cc45af3796ed49508233f8b5e248278d462468d9ec526baf0c47bf705a","changelog":{"1.3.2":{"date":"09\/07\/2015","content":"2. [](#improved)\n  * Added blueprints for Grav Admin plugin\n  * Corrected some variable names in languages.yaml [#5](https:\/\/github.com\/Sommerregen\/grav-plugin-archive-plus\/pull\/5)\n3. [](#bugfix)\n  * Fixed not working with Grav's Admin Panel [#4](https:\/\/github.com\/Sommerregen\/grav-plugin-archive-plus\/issues\/4)\n"},"1.3.1":{"date":"08\/17\/2015","content":"3. [](#bugfix)\n  * Fixed broken path translation\n"},"1.3.0":{"date":"08\/08\/2015","content":"1. [](#new)\n  * Added admin configurations **(requires Grav 0.9.34+)**\n2. [](#improved)\n  * Updated `README.md`\n3. [](#bugfix)\n  * Fixed Czech translation\n"},"1.2.0":{"date":"07\/25\/2015","content":"1. [](#new)\n  * Added multi-language support **(requires Grav 0.9.33+)**\n  * Added `Show more` button below blogger-like hierarchical menu, when list of items is truncated\n2. [](#improved)\n  * Refactored code\n  * Updated `README.md`\n  * Improved speed (plugin now caches the results)\n  * Slight style changes in the blogger-like hierarchical menu\n3. [](#bugfix)\n  * Fixed improper path to item if nested [#2](https:\/\/github.com\/Sommerregen\/grav-plugin-archive-plus\/issues\/2)\n"},"1.1.1":{"date":"05\/10\/2015","content":"2. [](#improved)\n  * Better expandable blogger-like hierarchical menu\n  * PSR fixes\n"},"1.1.0":{"date":"02\/21\/2015","content":"1. [](#new)\n  * Implemented new `param_sep` variable **(requires Grav 0.9.18+)**\n2. [](#improved)\n  * Refactored code, fixed INSTALL.md\n"},"1.0.2":{"date":"02\/05\/2015","content":"1. [](#new)\n  * Added new option `limit.items` to hide items [#1](https:\/\/github.com\/Sommerregen\/grav-plugin-archive-plus\/pull\/1)\n2. [](#improved)\n  * Updated documentation\n"},"1.0.1":{"date":"01\/22\/2015","content":"1. [](#bugfix)\n  * Fixed issue with ignored `enabled: false` option\n"},"1.0.0":{"date":"01\/19\/2015","content":"1. [](#new)\n  * Added a blogger like hierarchical (year\/month\/post) archive menu\n  * Fork of *Archives* plugin v1.2.0 by _Grav Team_ (see https:\/\/github.com\/getgrav\/grav-plugin-archives)\n  * ChangeLog started...\n2. [](#improved)\n  * Improved readability of code\n  * Added more configuration options to Admin Panel\n  * Automatically add taxonomy type (`archive`) for months and years"}},"dependencies":[]},"mediaembed":{"name":"MediaEmbed","version":"1.3.0","description":"This plugin embeds several media sites (e.g. YouTube, Vimeo, Soundcloud) by only providing the URL to the medium.","description_html":"<p>This plugin embeds several media sites (e.g. YouTube, Vimeo, Soundcloud) by only providing the URL to the medium.<\/p>","description_plain":"This plugin embeds several media sites (e.g. YouTube, Vimeo, Soundcloud) by only providing the URL to the medium.","icon":"spinner","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-mediaembed","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-mediaembed\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-mediaembed\/issues","license":"MIT\/GPL","tag_name":"v1.3.0","date":"2017-02-05T18:08:33Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mediaembed\/1.3.0","repository":"https:\/\/github.com\/sommerregen\/grav-plugin-mediaembed","slug":"mediaembed","install_path":"user\/plugins\/mediaembed","content_sha256":"68d9437f6d78f95a59f073c1c356b15b9a2abfda719d9eee1400ab38f93f4bc4","changelog":{"1.3.0":{"date":"02\/05\/2017","content":"1. [](#new)\n  * Added support image or link for not embed media (Thanks to [@magikcypres](https:\/\/github.com\/magikcypress))\n  * Added support for **Twitter.com** (Thanks to [@magikcypres](https:\/\/github.com\/magikcypress))\n2. [](#bugfix)\n  * Fixed support for **Github** (Thanks to [@magikcypres](https:\/\/github.com\/magikcypress))\n  * Fixed partial bug [#9](https:\/\/github.com\/Sommerregen\/grav-plugin-mediaembed\/issues\/9) (Mediaembed converts images into images)\n  * Fixed [#15](https:\/\/github.com\/Sommerregen\/grav-plugin-mediaembed\/pull\/15) (Fixed `media.responsive`)\n  * Fixed [#25](https:\/\/github.com\/Sommerregen\/grav-plugin-mediaembed\/pull\/25) (Fix Admin Panel issues [#13](https:\/\/github.com\/Sommerregen\/grav-plugin-mediaembed\/issues\/13), [#17](https:\/\/github.com\/Sommerregen\/grav-plugin-mediaembed\/issues\/17), and [#24](https:\/\/github.com\/Sommerregen\/grav-plugin-mediaembed\/issues\/24))\n"},"1.2.0":{"date":"08\/08\/2015","content":"1. [](#new)\n  * Added admin configurations **(requires Grav 0.9.34+)**\n2. [](#improved)\n  * Updated `README.md`\n"},"1.1.0":{"date":"05\/17\/2015","content":"1. [](#new)\n  * Added support for **Slides.com SlideDesk** as requested in issue [#4](https:\/\/github.com\/Sommerregen\/grav-plugin-mediaembed\/issues\/4)\n2. [](#improved)\n  * Assets checks (in rare cases it was possible that MediaEmbed throws an error)\n"},"1.0.2":{"date":"05\/10\/2015","content":"1. [](#new)\n  * Added plugin roadmap\n  * Added support for modular pages\n2. [](#improved)\n  * Prevent potential division by zero error [#2](https:\/\/github.com\/Sommerregen\/grav-plugin-mediaembed\/pull\/2)\n3. [](#bugfix)\n  * Fixed link generation in case no MediaEmbed service is found\n"},"1.0.1":{"date":"04\/28\/2015","content":"3. [](#bugfix)\n  * Fixed issue [#1](https:\/\/github.com\/Sommerregen\/grav-plugin-mediaembed\/issues\/1) with broken MediaEmbed functionality (i.e. removed test code)\n"},"1.0.0":{"date":"04\/26\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"dropcaps":{"name":"DropCaps","version":"1.3.4","description":"This plugin places a decorative dropped initial capital letter to the start of the first paragraph of a text.","description_html":"<p>This plugin places a decorative dropped initial capital letter to the start of the first paragraph of a text.<\/p>","description_plain":"This plugin places a decorative dropped initial capital letter to the start of the first paragraph of a text.","icon":"paw","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-dropcaps","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-dropcaps\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-dropcaps\/issues","license":"MIT\/GPL","tag_name":"v1.3.4","date":"2015-11-23T20:46:13Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/dropcaps\/1.3.4","repository":"https:\/\/github.com\/sommerregen\/grav-plugin-dropcaps","slug":"dropcaps","install_path":"user\/plugins\/dropcaps","content_sha256":"fc18c23bf208e0dacbb31b6c514cecab94dd4c758c536305076204f06eb6164a","changelog":{"1.3.4":{"date":"11\/23\/2015","content":"3. [](#bugfix)\n  * Fixed [#2](https:\/\/github.com\/Sommerregen\/grav-plugin-dropcaps\/issues\/2) (PHP errors) [#3](https:\/\/github.com\/Sommerregen\/grav-plugin-dropcaps\/pull\/3)\n"},"1.3.3":{"date":"09\/08\/2015","content":"2. [](#improved)\n  * Changed initialization procedure\n"},"1.3.2":{"date":"09\/08\/2015","content":"3. [](#bugfix)\n  * Fixed broken `CHANGELOG.md`\n"},"1.3.1":{"date":"09\/07\/2015","content":"2. [](#improved)\n  * Added blueprints for Grav Admin plugin\n3. [](#bugfix)\n  * Fixed [#1](https:\/\/github.com\/Sommerregen\/grav-plugin-dropcaps\/issues\/1) (Undefined property: `Grav\\Plugin\\DropCapsPlugin::$backend`)\n"},"1.3.0":{"date":"08\/08\/2015","content":"1. [](#new)\n  * Added admin configurations **(requires Grav 0.9.34+)**\n2. [](#improved)\n  * Switched to `onBuildPagesInitialized` event **(requires Grav 0.9.29+)**\n  * Updated `README.md`\n"},"1.2.1":{"date":"05\/10\/2015","content":"2. [](#improved)\n  * PSR fixes\n"},"1.2.0":{"date":"02\/07\/2015","content":"2. [](#improved)\n  * Improved process engine to ensure not to alter HTML tags or HTML entities in content\n  * Refactored code\n3. [](#bugfix)\n  * Fixed self-closing tags and ensure to return valid HTML(5)\n"},"1.1.0":{"date":"02\/07\/2015","content":"1. [](#new)\n  * Completely new re-design of DropCaps style\n2. [](#improved)\n  * Added support for HHVM **(requires Grav 0.9.17+)**\n  * Added modular pages support\n  * Improved readability of code\n  * Updated plugin to use new `mergeConfig` method of Grav core **(requires Grav 0.9.16+)**\n"},"1.0.1":{"date":"01\/27\/2015","content":"1. [](#new)\n\t* Added option `process` to toggle `DropCaps` filter per page\n2. [](#bugfix)\n\t* Fixed issue with unexpected behavior of `dropcaps` per-page configuration\n"},"1.0.0":{"date":"01\/26\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"toc":{"name":"Toc","version":"1.4.1","description":"This plugin automagically generates a (minified) Table of Contents based on special markers in the document and adds it into the resulting HTML document.","description_html":"<p>This plugin automagically generates a (minified) Table of Contents based on special markers in the document and adds it into the resulting HTML document.<\/p>","description_plain":"This plugin automagically generates a (minified) Table of Contents based on special markers in the document and adds it into the resulting HTML document.","icon":"language","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-toc","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-toc\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-toc\/issues","license":"MIT\/GPL","tag_name":"v1.4.1","date":"2017-06-12T17:53:50Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/toc\/1.4.1","repository":"https:\/\/github.com\/sommerregen\/grav-plugin-toc","slug":"toc","install_path":"user\/plugins\/toc","content_sha256":"1376c53d9c9697c8e3c54bab133b6024943868bb2efb63b0ab3f38521ab183ca","changelog":{"1.4.1":{"date":"06\/12\/2017","content":"3. [](#bugfix)\n  * Fixed new `slug.granularity` option in `toc.yaml` and `README.md`\n"},"1.4.0":{"date":"06\/12\/2017","content":"1. [](#new)\n  * Added new `active` setting that supersedes `process` option\n  * Added `slug.granularity` option for slug generation\n  * Added and expose TOC generation (see [#8](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/8))\n2. [](#improved)\n  * Add a \"headeranchor\" class to the `hx` tag (thanks to [@Lamecarlate](https:\/\/github.com\/Lamecarlate))\n  * Moved template to new plugin template location\n  * Improved styling of code elements in table of contents\n  * Expose more plugin strings for translations\n  * Strip tags in title attributes\n  * Dropped `iconv` dependency\n3. [](#bugfix)\n  * Fixed `{{ page.content|toc }}` not working [#8](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/8)\n  * Fixed issue with quote boxes that broke links in TOC [#10](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/10)\n  * Fixed error on multilingual site [#13](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/13) & [#14](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/14)\n  * Fixed undefined offset error in [MINITOC] [#12](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/12) & [#15](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/15)\n"},"1.3.1":{"date":"10\/24\/2015","content":"2. [](#improved)\n  * Do not render TOC if it is empty [#6](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/6) & [#7](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/pull\/7)\n3. [](#bugfix)\n  * Fixed [#5](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/pull\/5) (Fix typo in `README.md`)\n"},"1.3.0":{"date":"09\/24\/2015","content":"1. [](#new)\n  * Added more blueprints for Grav Admin plugin\n2. [](#improved)\n  * Added configuration options for slug generation [#4](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/4)\n  * Added better fallback for slug generation when `iconv` module is not installed on the server\n3. [](#bugfix)\n  * Fixed [#3](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/3) (Twig filter not working in twig template)\n"},"1.2.1":{"date":"09\/09\/2015","content":"2. [](#improved)\n  * Added blueprints for Grav Admin plugin\n  * Document PHP iconv Requirement [#1](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/1)\n3. [](#bugfix)\n  * Fixed [#2](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/issues\/2) (Not working with Grav's Admin Panel)\n  * Fixed broken TOC after caching pages\n"},"1.2.0":{"date":"08\/08\/2015","content":"1. [](#new)\n  * Added admin configurations **(requires Grav 0.9.34+)**\n  * Added multi-language support **(requires Grav 0.9.33+)**\n  * Added `placement`, `visible`, `icon` and `class` option to customize anchor look\n  * Added buitlin CSS class to suppress anchor links with the `no-anchor` class\n  * Added `{{% toc %}}` shortcode\n2. [](#improved)\n  * Switched to `onBuildPagesInitialized` event **(requires Grav 0.9.29+)**\n  * Improved and use language translation for language specific slug generation (**requires Grav 0.9.34+**)\n  * Updated `README.md`\n3. [](#bugfix)\n  * Strip tags in title attribute\n  * Normalize tags in TOC (see `<code>` element)\n  * Ignore empty headings\n"},"1.1.0":{"date":"05\/14\/2015","content":"2. [](#improved)\n\t* Improved `anchorlinks``generation\n\t* Truncate headings to a maximum width of 32 chars in TOC and MINITOC\n\t* Corrected spelling and markup in [README.md](https:\/\/github.com\/Sommerregen\/grav-plugin-toc\/blob\/master\/README.md)\n"},"1.0.0":{"date":"05\/10\/2015","content":"1. [](#new)\n  * ChangeLog started..."}},"dependencies":[]},"external_links":{"name":"External Links","version":"1.6.5","description":"This plugin adds small icons to external and mailto links, informing users the link will take them to a new site or open their email client.","description_html":"<p>This plugin adds small icons to external and mailto links, informing users the link will take them to a new site or open their email client.<\/p>","description_plain":"This plugin adds small icons to external and mailto links, informing users the link will take them to a new site or open their email client.","icon":"external-link","author":{"name":"HibbittsDesign.org","url":"https:\/\/hibbittsdesign.org","email":"hello@hibbittsdesign.org"},"dependencies":[{"name":"grav","version":">=1.7"}],"compatibility":{"grav":["1.7","2.0"]},"homepage":"https:\/\/github.com\/hibbitts-design\/grav-plugin-external-links","docs":"https:\/\/github.com\/hibbitts-design\/grav-plugin-external-links\/blob\/master\/README.md","bugs":"https:\/\/github.com\/hibbitts-design\/grav-plugin-external-links\/issues","license":"MIT\/GPL","tag_name":"v1.6.5","date":"2026-05-08T19:54:53Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/external_links\/1.6.5","repository":"https:\/\/github.com\/hibbitts-design\/grav-plugin-external-links","slug":"external_links","install_path":"user\/plugins\/external_links","content_sha256":"3bdb3af4866e7ff2002fdb334cef0cec77a83ca1c1a28af6559c19ebeef2ef43","changelog":{"1.6.5":{"date":"05\/08\/2026","content":"1. [](#improved)\n    * Changed plugin author information to HibbittsDesign.org\n    "},"1.6.4":{"date":"05\/02\/2026","content":"1. [](#improved)\n    * Added 1.7|2.0 compatibility flags\n"},"1.6.3":{"date":"01\/26\/2021","content":"1. [](#improved)\n    * Updated plugin blueprints for Grav 1.7\n"},"1.6.2":{"date":"10\/28\/2019","content":"1. [](#improved)\n  * FlexObjects compatibility: change references to `Page` class to use `PageInterface`\n  * Updated Grav requirements to 1.6 or greater (thanks to [@mahagr](https:\/\/github.com\/mahagr) for the heads-up)\n"},"1.6.1":{"date":"07\/12\/2018","content":"3. [](#bugfix)\n  * Fixed parsing tags other than links [#24](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/pull\/24) (Fix loading of a href element)\n"},"1.6.0":{"date":"02\/22\/2018","content":"1. [](#new)\n  * Check for page redirects [#22](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/pull\/22) (Check for redirecting pages if `links.redirects` is enabled, thanks to [@karfau](https:\/\/github.com\/karfau))\n2. [](#improved)\n  * Set `rel=\"noopener noreferrer\"` to all external links [#21](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/issues\/21)\n  * Updated French translation strings [#19](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/pull\/19)\n  * Improved `README.md` and YAML files\n"},"1.5.3":{"date":"02\/18\/2017","content":"3. [](#bugfix)\n  * Fixed Russian translation strings [#17](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/pull\/17) (Thanks to [@geschke](https:\/\/github.com\/geschke) for the fast PR)\n"},"1.5.2":{"date":"02\/17\/2017","content":"1. [](#new)\n  * Added Russian translations [#16](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/pull\/16) (Thanks to [@ktaranov](https:\/\/github.com\/ktaranov))\n"},"1.5.1":{"date":"02\/10\/2017","content":"3. [](#bugfix)\n  * Fixed error in getting the remote image size\n"},"1.5.0":{"date":"02\/09\/2017","content":"2. [](#improved)\n  * Use tabs in admin panel settings for better user experience\n  * Use toggle buttons for page settings\n"},"1.4.4":{"date":"01\/11\/2017","content":"3. [](#bugfix)\n  * Fixed `CURLOPT_AUTOREFERER` constant\n"},"1.4.3":{"date":"10\/31\/2016","content":"3. [](#bugfix)\n  * Fixed [#11](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/issues\/11) (Not working with cache enabling) (see PR [#15](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/pull\/15))\n  * Fixed [#13](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/issues\/13) (Preferences Not Showing)\n"},"1.4.2":{"date":"12\/06\/2015","content":"1. [](#new)\n  * Added French translations [#8](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/pull\/8) (Thanks to [@MATsxm](https:\/\/github.com\/MATsxm))\n"},"1.4.1":{"date":"11\/18\/2015","content":"2. [](#improved)\n  * Page specific options now respect the default configurations set in the admin panel\n"},"1.4.0":{"date":"11\/17\/2015","content":"1. [](#new)\n  * Added `External Links` options to page options tab\n2. [](#improved)\n  * Improved `isExternalUrl` function to allow custom schemes and whether to evaluate links beginning with `.www` or not\n  * Added more blueprint options\n  * Improved code\n  * Updated docs\n3. [](#bugfix)\n  * Fixed [#7](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/issues\/7) (Possible issue with malformed URLs)\n  * Fixes `external_links` filter function\n"},"1.3.1":{"date":"09\/09\/2015","content":"2. [](#improved)\n  * Added blueprints for Grav Admin plugin\n3. [](#bugfix)\n  * Fixed [#5](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/issues\/5) (Works on first page displayed)\n  * Fixed [#6](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/issues\/6) (Validation failed: title is not defined in blueprints)\n"},"1.3.0":{"date":"08\/08\/2015","content":"1. [](#new)\n  * Added admin configurations **(requires Grav 0.9.34+)**\n  * Added multi-language support **(requires Grav 0.9.33+)**\n  * Added default title message for external links\n2. [](#improved)\n  * Switched to `onBuildPagesInitialized` event **(requires Grav 0.9.29+)**\n  * Updated `README.md`\n3. [](#bugfix)\n  * Fixed [#4](https:\/\/github.com\/Sommerregen\/grav-plugin-external-links\/issues\/4) (Problem with non UTF-8 characters)\n"},"1.2.2":{"date":"05\/10\/2015","content":"2. [](#improved)\n  * PSR fixes\n"},"1.2.1":{"date":"03\/24\/2015","content":"3. [](#bugfix)\n  * Fixed active `mode` condition\n"},"1.2.0":{"date":"02\/21\/2015","content":"1. [](#new)\n  * Added option `mode` to parse links passively (where no CSS classes are set) and actively\n2. [](#improved)\n  * Allow multiple classes to exclude in option `exclude.classes`\n  * Improved process engine to ensure not to alter HTML tags or HTML entities in content\n  * Refactored code\n"}}},"mathjax":{"name":"MathJax","version":"1.6.0","description":"This plugin allows you to include math formulas in your web pages, either using TeX and LaTeX notation, and\/or as MathML.","description_html":"<p>This plugin allows you to include math formulas in your web pages, either using TeX and LaTeX notation, and\/or as MathML.<\/p>","description_plain":"This plugin allows you to include math formulas in your web pages, either using TeX and LaTeX notation, and\/or as MathML.","icon":"subscript","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-mathjax","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-mathjax\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-mathjax\/issues","license":"MIT\/GPL","tag_name":"v1.6.0","date":"2018-04-07T19:54:37Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/mathjax\/1.6.0","repository":"https:\/\/github.com\/sommerregen\/grav-plugin-mathjax","slug":"mathjax","install_path":"user\/plugins\/mathjax","content_sha256":"eb09dfcef11adde451039c32c9d8a978ef2b2cc126ffc9a1dc88769758c45dca","changelog":{"1.6.0\r":{"date":"04\/07\/2018\r","content":"2. [](#improved)\r\n  * Allow to customize LaTeX delimiters [#7](https:\/\/github.com\/Sommerregen\/grav-plugin-mathjax\/issues\/7) (Maybe MathJax.php Shouldn't Hard Code Delimiters?) & [#8](https:\/\/github.com\/Sommerregen\/grav-plugin-mathjax\/issues\/8) (Escape dollar sign)\r\n\r"},"1.5.1\r":{"date":"04\/12\/2017\r","content":"2. [](#improved)\r\n  * Change CDN provider to CloudFlare [#6](https:\/\/github.com\/Sommerregen\/grav-plugin-mathjax\/issues\/6) (`https:\/\/cdn.mathjax.org` end-of-life)\r\n\r"},"1.5.0\r":{"date":"08\/06\/2016\r","content":"1. [](#new)\r\n  * Released stable version (requires **Grav v1.1.0+** + **Breaking Change!**); please read the beta release changelogs for more details\r\n  * Added demo content\r\n2. [](#improved)\r\n  * Allow `active` option to be toggleable in page options\r\n  * Updated `README.md`\r\n3. [](#bugfix)\r\n  * Fixed `mathjax` Twig filter in case MathJax was disabled on the page\r\n\r"},"1.5.0-beta.2\r":{"date":"08\/06\/2016\r","content":"1. [](#new)\r\n  * Renamed `process` option to `active` (**Breaking Change!**)\r\n2. [](#improved)\r\n  * Use tabs in admin settings\r\n3. [](#bugfix)\r\n  * Fixed case when page contains no formula\r\n\r"},"1.5.0-beta.1\r":{"date":"08\/05\/2016\r","content":"2. [](#improved)\r\n  * Refactored code (requires **Grav v1.1.0+**)\r\n3. [](#bugfix)\r\n  * Use more robust MarkdownParser instead of regexes (fixes [#4](https:\/\/github.com\/Sommerregen\/grav-plugin-mathjax\/issues\/4))\r\n\r"},"1.4.0\r":{"date":"11\/18\/2015\r","content":"1. [](#new)\r\n  * Added [#3](https:\/\/github.com\/Sommerregen\/grav-plugin-mathjax\/pull\/3) (\"MathJax Process\" toggle to page options tab)\r\n2. [](#improved)\r\n  * Added Twig filter documentation to `README.md`\r\n  * Improved code\r\n3. [](#bugfix)\r\n  * Fixed `mathjax` Twig filter\r\n\r"},"1.3.2\r":{"date":"09\/09\/2015\r","content":"3. [](#bugfix)\r\n  * Fixed \"Call to a member function modified() on a non-object\"\r\n\r"},"1.3.1\r":{"date":"09\/09\/2015\r","content":"2. [](#improved)\r\n  * Added blueprints for Grav Admin plugin\r\n\r"},"1.3.0\r":{"date":"08\/08\/2015\r","content":"1. [](#new)\r\n  * Added admin configurations **(requires Grav 0.9.34+)**\r\n  * Added `{{% mathjax type='block|inline' %}}` shortcode\r\n2. [](#improved)\r\n  * Switched to `onBuildPagesInitialized` event **(requires Grav 0.9.29+)**\r\n  * Updated `README.md`\r\n3. [](#bugfix)\r\n  * Fixed [#2](https:\/\/github.com\/Sommerregen\/grav-plugin-mathjax\/issues\/2) (JS script not added to page)\r\n\r"},"1.2.0\r":{"date":"05\/14\/2015\r","content":"1. [](#new)\r\n  * Added usage example in [README.md](https:\/\/github.com\/Sommerregen\/grav-plugin-mathjax\/blob\/master\/README.md)\r\n2. [](#improved)\r\n  * Add assets (CSS and JS) dynamical to page now\r\n  * Changed default value `process: false` to `process: true` in [mathjax.yaml](https:\/\/github.com\/Sommerregen\/grav-plugin-mathjax\/blob\/master\/mathjax.yaml)\r\n\r"},"1.1.1\r":{"date":"05\/10\/2015\r","content":"1. [](#new)\r\n  * Support modular pages\r\n  * Added CSS stylesheet and `built_in_css` option\r\n2. [](#improved)\r\n  * PSR fixes\r\n\r"},"1.1.0\r":{"date":"02\/21\/2015\r","content":"1. [](#new)\r\n  * Added `<span class=\"mathjax\">` tags around block and inline math formulas\r\n2. [](#improved)\r\n  * Improved and refactored code\r\n\r"},"1.0.0\r":{"date":"02\/05\/2015\r","content":"1. [](#new)\r\n  * ChangeLog started...\r"}},"dependencies":[]},"smileys":{"name":"Smileys","version":"1.2.1","description":"This plugin substitutes text emoticons, also known as smilies like :-), with images.","description_html":"<p>This plugin substitutes text emoticons, also known as smilies like :-), with images.<\/p>","description_plain":"This plugin substitutes text emoticons, also known as smilies like :-), with images.","icon":"smile-o","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-smileys","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-smileys\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-smileys\/issues","license":"MIT\/GPL","tag_name":"v1.2.1","date":"2015-10-05T18:42:10Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/smileys\/1.2.1","repository":"https:\/\/github.com\/sommerregen\/grav-plugin-smileys","slug":"smileys","install_path":"user\/plugins\/smileys","content_sha256":"0d61aae8c915413d1b0db2c9a2c2b84e5e6824afd5589b2aeb0d5eff089f3ed9","changelog":{"1.2.1":{"date":"10\/05\/2015","content":"3. [](#bugfix)\n  * Fixed [#2](https:\/\/github.com\/Sommerregen\/grav-plugin-smileys\/pull\/2) (Remove debugger calls. When called from gpm, it gave an error)\n"},"1.2.0":{"date":"09\/24\/2015","content":"2. [](#improved)\n  * Added blueprints for Grav Admin plugin\n  * Improved performance of Smileys creation\n3. [](#bugfix)\n  * Fixed broken smileys after the page has been cached\n"},"1.1.0":{"date":"08\/08\/2015","content":"1. [](#new)\n  * Added admin configurations **(requires Grav 0.9.34+)**\n  * Added default title message for external links\n2. [](#improved)\n  * Switched to `onBuildPagesInitialized` event **(requires Grav 0.9.29+)**\n  * Updated `README.md`\n  * Include `Grav Data Smileys - Simple Smileys` into package\n3. [](#bugfix)\n  * Fixed [#1](https:\/\/github.com\/Sommerregen\/grav-plugin-smileys\/issues\/1) (Error while displaying unknown smiley)\n"},"1.0.2":{"date":"05\/12\/2015","content":"2. [](#improved)\n  * Use `Folder::rCopy` instead of `Utils::rCopy` **(requires Grav 0.9.27+)**\n"},"1.0.1":{"date":"05\/10\/2015","content":"2. [](#improved)\n  * PSR fixes\n  * Re-factored code\n  * Use `Simple Smileys` data pack now as a sub module\n3. [](#bugfix)\n  * Fixed image generation\n"},"1.0.0":{"date":"02\/21\/2015","content":"1. [](#new)\n  * ChangeLog started..."}},"dependencies":[]},"shortcodes":{"name":"Shortcodes","version":"1.2.0","description":"This plugin enables to use shortcodes (simple snippets) inside a document to be rendered by Grav.","description_html":"<p>This plugin enables to use shortcodes (simple snippets) inside a document to be rendered by Grav.<\/p>","description_plain":"This plugin enables to use shortcodes (simple snippets) inside a document to be rendered by Grav.","icon":"puzzle-piece","author":{"name":"Sommerregen","email":"sommerregen@benjamin-regler.de"},"homepage":"https:\/\/github.com\/sommerregen\/grav-plugin-shortcodes","docs":"https:\/\/github.com\/sommerregen\/grav-plugin-shortcodes\/blob\/master\/README.md","bugs":"https:\/\/github.com\/sommerregen\/grav-plugin-shortcodes\/issues","license":"MIT\/GPL","tag_name":"v1.2.0","date":"2015-10-09T18:40:58Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/shortcodes\/1.2.0","repository":"https:\/\/github.com\/sommerregen\/grav-plugin-shortcodes","slug":"shortcodes","install_path":"user\/plugins\/shortcodes","content_sha256":"e1ae2d8c10d79ebbba2b030906393ea7915216877ffa622e8eb83f1fb77ba890","changelog":{"1.2.0":{"date":"10\/09\/2015","content":"1. [](#new)\n  * Added support for Shortcode filter methods\n2. [](#improved)\n  * Assets from shortcode `{{% assets %}}` are now being cached with page contents\n  * Added blueprints for Grav Admin plugin\n  * Use `fieldset` fields to group shortcode options **(requires Grav 0.9.44+)**\n3. [](#bugfix)\n  * Fixed [#2](https:\/\/github.com\/Sommerregen\/grav-plugin-shortcodes\/issues\/2) (Not working with Grav's Admin Panel)\n"},"1.1.0":{"date":"08\/08\/2015","content":"1. [](#new)\n  * Added admin configurations **(requires Grav 0.9.34+)**\n  * Added `{{% comment %}}`, `{{% twig %}}`, `{{% markdown %}}` shortcodes\n  * Added documentation about `{{% raw %}}` shortcode\n  * Changed Shortcodes event to `onShortcodesInitialized`!\n2. [](#improved)\n  * Extended Twig Shortcodes capabilities for developers\n  * Updated `README.md`\n"},"1.0.1":{"date":"06\/25\/2015","content":"1. [](#new)\n  * Added [`twig` shortcode](docs\/twig.md)\n2. [](#improved)\n  * Improved error handling in Twig\n3. [](#bugfix)\n  * Fixed indentation of source code\n  * Fixed [#1](https:\/\/github.com\/Sommerregen\/grav-plugin-shortcodes\/issues\/1) (Error while trying to call a shortcodes directory instead of Shortcodes)\n"},"1.0.0":{"date":"06\/23\/2015","content":"1. [](#new)\n  * ChangeLog started..."}},"dependencies":[]},"embed":{"name":"Embed","version":"1.0.0","description":"Easily embed all kinds of url&#39;s in plain markdown or using a Twig function","description_html":"<p>Easily embed all kinds of url&#39;s in plain markdown or using a Twig function<\/p>","description_plain":"Easily embed all kinds of url&#39;s in plain markdown or using a Twig function","icon":"code","author":{"name":"Gertt","url":"http:\/\/github.com\/Gertt","email":"gert@gert.gert"},"homepage":"https:\/\/github.com\/Gertt\/grav-plugin-embed","keywords":"embed, plugin, iframe, responsive, iframely, facebook, youtube, twitter, instagram, vine, codepen, slides","bugs":"https:\/\/github.com\/Gertt\/grav-plugin-embed\/issues","license":"MIT","tag_name":"1.0.0","date":"2015-04-27T14:08:22Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/embed\/1.0.0","repository":"https:\/\/github.com\/GertSallaerts\/grav-plugin-embed","slug":"embed","install_path":"user\/plugins\/embed","content_sha256":"053262a842d8341822391a352228a99b8669e6f85c57845b1e06c0c049277cc0","changelog":{"1.0.0":{"date":"02\/07\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"private":{"name":"Private","version":"1.0.9","description":"Provide an authentication form to keep your Grav site or part of it private.","description_html":"<p>Provide an authentication form to keep your Grav site or part of it private.<\/p>","description_plain":"Provide an authentication form to keep your Grav site or part of it private.","icon":"lock","author":{"name":"Diyzzuf","url":"https:\/\/github.com\/Diyzzuf\/grav-plugin-private","email":"Diyzzuf@users.noreply.github.com"},"homepage":"https:\/\/github.com\/Diyzzuf\/grav-plugin-private","keywords":"private, plugin, grav","bugs":"https:\/\/github.com\/Diyzzuf\/grav-plugin-private\/issues","license":"MIT","tag_name":"v1.0.9","date":"2017-11-09T13:44:13Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/private\/1.0.9","repository":"https:\/\/github.com\/Diyzzuf\/grav-plugin-private","slug":"private","install_path":"user\/plugins\/private","content_sha256":"11ac11b782416828ba49a9aec734dae5d68dbc9193e4f6c38cc7ecc4841fb4ee","changelog":{"1.0.9":{"date":"09\/09\/2017","content":"1. [](#improved)\n   * Update Readme (#32)\n   "},"1.0.8":{"date":"05\/06\/2017","content":"1. [](#improved)\n   * Update changelog (#29)\n   "},"1.0.7":{"date":"02\/06\/2017","content":"1. [](#improved)\n   * Update blueprints ( Thanks @PeterTonoli ) and version number\n"},"1.0.6":{"date":"02\/06\/2017","content":"1. [](#bugfix)\n   * Fix #27\n"},"1.0.5":{"date":"22\/04\/2017","content":"1. [](#changes)\n   * Works, but Not Maintained \/ Enhancement ( Because [future] feature of pro version of Grav Admin Plugin ) => ( As long as I do not have the agreement of the team )\n"},"1.0.4":{"date":"18\/06\/2016","content":"1. [](#improved)\n   * Add Little Doc Specification\n   * Add Little Comments on `private.yaml`\n"},"1.0.3":{"date":"02\/01\/2016","content":"1. [](#bugfix)\n    * Fix #9 #11 ( Thanks @ahmadassaf )\n2. [](#improved)\n    * Better Readme translation ( Thanks @mattarnster )\n"},"1.0.2":{"date":"04\/22\/2015","content":"1. [](#bugfix)\n    * Delete Debug\n"},"1.0.1":{"date":"04\/21\/2015","content":"1. [](#new)\n    * Rewrite Code\n\n2. [](#bugfix)\n    * Fix #3.2 bug when they are only one tag\n    * Fix send login form route\n    * Thanks Vaseltior\n\n3. [](#improved)\n    * \"Improve\" security\n    * Home variable is now the same as system.yaml home variable\n    * Update Documentation ( Need help for a best english documentation. )\n"},"0.4.6":{"date":"03\/10\/2015","content":"1. [](#bugfix)\n    * Fix bug when the private tag is on first position\n    * Fix #1 : Added var home on config for full private redirection \n    * Fix #2 : Compatibility sessions with other plugins \n    * (Thanks to Vivalldi)\n\n2. [](#improved)\n    * Update Documentation\n    "},"0.4.5":{"date":"02\/18\/2015","content":"1. [](#new)\n    * New Git Account for better monitoring\n"},"0.4.4":{"date":"02\/12\/2015","content":"1. [](#bugfix)\n    * Fix conflict with other plugins (issue #1)\n    * Fix bad commit, sorry ( 5991d5e )\n"},"0.4.3":{"date":"02\/12\/2015","content":"1. [](#bugfix)\n    * ~~Fix conflict with other plugins (issue #1)~~\n    ** This is a bad commit ! (  5991d5e ) **\n"},"0.4.2":{"date":"02\/10\/2015","content":"1. [](#bugfix)\n    * US date on changelog\n"},"0.4.1":{"date":"02\/10\/2015","content":"1. [](#new)\n    * Add redirect to referer page after login instead of home page\n    * Release\n\n2. [](#improved)\n    * Better Documentation\n    * Clean Code\n    * Add parts of CSS\n    * Clean repo\n"},"0.3.6":{"date":"02\/09\/2015","content":"1. [](#new)\n    * Multi User\n    * Add posibility to make private just certain page instead of full site\n\n2. [](#improved)\n    * Update Documentation\n    * Clean Code\n\n"},"0.2.1":{"date":"02\/07\/2015","content":"1. [](#new)\n    * Login page directly include on plugin\n    * New Login Template\n"},"0.1.0":{"date":"02\/07\/2015","content":"1. [](#new)\n    * First Commit"}},"dependencies":[]},"filesource":{"name":"filesource","version":"0.2","description":"With **filesource** a user can show the source of any text file in a post","description_html":"<p>With <strong>filesource<\/strong> a user can show the source of any text file in a post<\/p>","description_plain":"With filesource a user can show the source of any text file in a post","icon":"trello","author":{"name":"anza","url":"http:\/\/notes.may.fi","email":"antti@may.fi"},"homepage":"https:\/\/github.com\/anza\/grav-plugin-filesource","keywords":"text file, source, embed","bugs":"https:\/\/github.com\/anza\/grav-plugin-filesource\/issues","license":"BSD","tag_name":"v0.2.1","date":"2015-07-01T23:05:49Z","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/filesource\/0.2","repository":"https:\/\/github.com\/anza\/grav-plugin-filesource","slug":"filesource","install_path":"user\/plugins\/filesource","content_sha256":"acb1ceb71d8598722d26ef27bd8d20ccf6627513fef74ce5a195b6953916570c","changelog":{"0.2.1":{"date":"02\/07\/2015","content":"1. [](#improved)\n    * Updated README\n    * Prepared for a proper initial release\n\n"},"0.2":{"date":"29\/06\/2015","content":"1. [](#bugfix)\n    * Updated blueprint, license\n    * Simplified returning the embedded\n      content. Thanks to Sommerregen.\n\n"},"0.1":{"date":"25\/06\/2015","content":"1. [](#new)\n    * ChangeLog started..."}},"dependencies":[]},"employment-hero":{"name":"Employment Hero","version":"1.0.0","description":"Connect to Employment Hero API for integration with themes.","description_html":"<p>Connect to Employment Hero API for integration with themes.<\/p>","description_plain":"Connect to Employment Hero API for integration with themes.","icon":"plug","author":{"name":"Benjamin Currey","email":"benjamin@currey.com.au"},"dependencies":[{"name":"grav","version":">=1.6.0"}],"homepage":"https:\/\/github.com\/Currey\/grav-plugin-employment-hero","docs":"https:\/\/github.com\/Currey\/grav-plugin-employment-hero\/blob\/develop\/README.md","demo":"http:\/\/demo.yoursite.com","keywords":"grav, plugin, api, employment, careers","bugs":"https:\/\/github.com\/Currey\/grav-plugin-employment-hero\/issues","license":"MIT","tag_name":"1.0.0","date":"2026-07-21T16:43:38+10:00","release_type":"stable","zipball_url":"https:\/\/getgrav.org\/download\/plugins\/employment-hero\/1.0.0","repository":"https:\/\/github.com\/Currey\/grav-plugin-employment-hero","slug":"employment-hero","install_path":"user\/plugins\/employment-hero","content_sha256":"7c70fc6dc0ec1e79a0a0bfa84ab33ad5aa27f8dbb1ca9eb0bf30eb0d158dd107","changelog":{"1.0.0":{"date":"2026-07-21","content":"1. [](#launch)\n    * Plugin launched.\n    * Basic functionality\n    * Base template returns simple results: `title`, `city`, `application_url`.\n"},"0.1.0":{"date":" 2026-07-07","content":"1. [](#new)\n    * ChangeLog started..."}}}}
";