{"id":28892717,"url":"https://github.com/mumarshahbaz/jekyll_dynamic_assets","last_synced_at":"2026-03-10T07:01:34.260Z","repository":{"id":297266251,"uuid":"995275615","full_name":"MUmarShahbaz/jekyll_dynamic_assets","owner":"MUmarShahbaz","description":"Use simple variables to define your master files, presets and manual insertion. Select your assets dynamically via page front matter and config.yml","archived":false,"fork":false,"pushed_at":"2025-07-23T13:12:59.000Z","size":52,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-04T22:17:18.509Z","etag":null,"topics":["assets-management","jekyll","liquid","ruby"],"latest_commit_sha":null,"homepage":"https://rubygems.org/gems/jekyll_dynamic_assets/","language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MUmarShahbaz.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-06-03T08:30:01.000Z","updated_at":"2025-07-23T13:13:04.000Z","dependencies_parsed_at":"2025-06-04T22:35:28.733Z","dependency_job_id":"e1f3122d-5c09-45fc-85d0-447e36789c08","html_url":"https://github.com/MUmarShahbaz/jekyll_dynamic_assets","commit_stats":null,"previous_names":["mumarshahbaz/jekyll_dynamic_assets"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MUmarShahbaz/jekyll_dynamic_assets","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUmarShahbaz%2Fjekyll_dynamic_assets","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUmarShahbaz%2Fjekyll_dynamic_assets/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUmarShahbaz%2Fjekyll_dynamic_assets/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUmarShahbaz%2Fjekyll_dynamic_assets/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MUmarShahbaz","download_url":"https://codeload.github.com/MUmarShahbaz/jekyll_dynamic_assets/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MUmarShahbaz%2Fjekyll_dynamic_assets/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30326893,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-10T05:25:20.737Z","status":"ssl_error","status_checked_at":"2026-03-10T05:25:17.430Z","response_time":106,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assets-management","jekyll","liquid","ruby"],"created_at":"2025-06-21T02:05:20.839Z","updated_at":"2026-03-10T07:01:34.166Z","avatar_url":"https://github.com/MUmarShahbaz.png","language":"Ruby","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JekyllDynamicAssets\n\nJekyllDynamicAssets is a powerful Jekyll plugin for dynamic, flexible, and DRY asset management. It lets you define, group, and inject CSS, JS, and other head assets using presets, per-page config, and custom formatting.\n\n## Features\n- Define global (master) assets and per-page assets\n- Use asset presets for reusable asset groups\n- Pre-defined and overrideable formats and sources for common assets\n- Auto, Select, and Inline formats and sources\n- Liquid tag `{% inject_assets %}` for easy asset injection in templates and includes\n- Error reporting for missing presets and formats\n- Absolute/relative URL support\n- Supports all head assets: CSS, JS, module JS, fonts, icons, JSON, etc.\n\n## Installation\n\nAdd this to your Jekyll site's `Gemfile`:\n\n```ruby\nsource 'https://rubygems.org'\n\ngem \"jekyll\"\n\ngroup :jekyll_plugins do\n  gem \"jekyll_dynamic_assets\"\n  # other gems\nend\n```\n\nThen add the following to your Jekyll site's `config.yml`:\n\n```yaml\nplugins:\n  - jekyll_dynamic_assets\n```\n\nFinally, in your terminal run:\n\n```powershell\nbundle install\n```\n\n## Usage\n\n### 1. Configure your assets in `config.yml`\n\n```yaml\ndynamic_assets:\n  master:\n    - main.css\n    - main.js\n\n  source:\n    base: /assets\n    github: https://github.com/assets/\n    css: /css\n    js: /js\n  absolute: true # Use absolute URLs (uses `url` and `baseurl` from config)\n\n  presets:\n    blog: [blog.css, blog.js]\n    project: [project.css, project.js, code-highlight.css, slideshow.js, myApp.js]\n\n  formats:\n    js:  \u003cscript defer src='%s'\u003e\u003c/script\u003e\n    xyz: \u003ccustom\u003e %s \u003c/custom\u003e\n    screen-css: \u003clink rel=\"stylesheet\" href=\"%s\" media=\"screen\"\u003e\n```\n\nIf all your assets are in the same folder, you can simply do:\n\n```yaml\ndynamic_assets:\n  source: /asset_folder\n```\n\n**Path rules:** Always use a leading slash, never a trailing slash.\n\n### 2. Per-page or per-collection configuration\n\nIn your page or post front matter:\n\n```yaml\ndynamic_assets:\n  files:  # See Asset Definition Syntax below\n    - manual.css\n    - onscreen.css::screen-css\n    - no_script.css:::\u003cnoscript\u003e\u003clink rel=\"stylesheet\" href=\"%s\"\u003e\u003c/noscript\u003e\n    - github\u003c\u003cmaster.css\n    - /css/new\u003c\u003c\u003cnew-main.css\n  presets:\n    - blog\n    - project\n```\n\n### 3. Inject assets in your templates\n\nUse the Liquid tag where you want the assets to appear (typically in your `\u003chead\u003e`):\n\n```liquid\n\u003chead\u003e\n  \u003c!-- other tags like meta etc. --\u003e\n  {% inject_assets %}\n\u003c/head\u003e\n```\n\nThis will output the appropriate HTML tags for all configured assets. The tag should generally be used inside your `\u003chead\u003e` tag but can be used anywhere else.\n\n---\n\n### Asset Definition Syntax\n\nYou can use the following syntax anywhere (config or front matter):\n\n```\nSource\u003c\u003cAsset::Format\n```\n\n- `\u003c\u003c` uses `Source` as a variable from config; `\u003c\u003c\u003c` uses `Source` as a literal.\n- `::` uses `Format` as a variable from config; `:::` uses `Format` as a literal.\n- If either is not defined, source/format is taken from config using the file extension.\n- If the source is not external, it will be determined using `base + Source`.\n\n**NOTE:**\n- If JDA can't find a source, it will use the `base` without sub-directories.\n- If JDA can't find the format, it will raise an error. A format is required for each asset.\n\n---\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/MUmarShahbaz/jekyll_dynamic_assets. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/MUmarShahbaz/jekyll_dynamic_assets/blob/main/CODE_OF_CONDUCT.md).\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).\n\n## Code of Conduct\n\nEveryone interacting in the JekyllDynamicAssets project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/MUmarShahbaz/jekyll_dynamic_assets/blob/main/CODE_OF_CONDUCT.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmumarshahbaz%2Fjekyll_dynamic_assets","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmumarshahbaz%2Fjekyll_dynamic_assets","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmumarshahbaz%2Fjekyll_dynamic_assets/lists"}