{"id":33572371,"url":"https://github.com/ai-domain-data/jekyll-ai-domain-data","last_synced_at":"2026-04-09T03:32:34.761Z","repository":{"id":324980034,"uuid":"1099348926","full_name":"ai-domain-data/jekyll-ai-domain-data","owner":"ai-domain-data","description":"Jekyll plugin for generating AI Domain Data Standard domain-profile.json files. Automatically creates and validates .well-known/domain-profile.json during site generation.","archived":false,"fork":false,"pushed_at":"2025-11-20T17:47:42.000Z","size":17,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-12-13T12:41:19.968Z","etag":null,"topics":["jekyll","jekyll-generator","jekyll-plugin","static-site-generator"],"latest_commit_sha":null,"homepage":"","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/ai-domain-data.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-18T22:06:41.000Z","updated_at":"2025-12-08T21:49:48.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ai-domain-data/jekyll-ai-domain-data","commit_stats":null,"previous_names":["ai-domain-data/jekyll-ai-domain-data"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/ai-domain-data/jekyll-ai-domain-data","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-domain-data%2Fjekyll-ai-domain-data","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-domain-data%2Fjekyll-ai-domain-data/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-domain-data%2Fjekyll-ai-domain-data/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-domain-data%2Fjekyll-ai-domain-data/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ai-domain-data","download_url":"https://codeload.github.com/ai-domain-data/jekyll-ai-domain-data/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ai-domain-data%2Fjekyll-ai-domain-data/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31584574,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-08T14:31:17.711Z","status":"online","status_checked_at":"2026-04-09T02:00:06.848Z","response_time":112,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["jekyll","jekyll-generator","jekyll-plugin","static-site-generator"],"created_at":"2025-11-28T12:00:19.276Z","updated_at":"2026-04-09T03:32:34.756Z","avatar_url":"https://github.com/ai-domain-data.png","language":"Ruby","funding_links":[],"categories":["Other"],"sub_categories":[],"readme":"# jekyll-ai-domain-data\n\nA Jekyll plugin that automatically generates and validates `domain-profile.json` files according to the [AI Domain Data Standard](https://ai-domain-data.org) v0.1.1.\n\nThe AI Domain Data Standard is an open, vendor-neutral format for publishing authoritative domain identity data for AI systems, search engines, and automated agents. This plugin makes it easy to add AI Domain Data support to your Jekyll site.\n\n## Installation\n\nAdd this line to your site's `Gemfile`:\n\n```ruby\ngem \"jekyll-ai-domain-data\"\n```\n\nAnd then execute:\n\n```bash\nbundle install\n```\n\nOr install it yourself as:\n\n```bash\ngem install jekyll-ai-domain-data\n```\n\nThen add the plugin to your `_config.yml`:\n\n```yaml\nplugins:\n  - jekyll-ai-domain-data\n```\n\n## Configuration\n\nAdd an `ai_domain_data` section to your `_config.yml`:\n\n```yaml\nai_domain_data:\n  enabled: true  # Set to false to disable generation\n  name: \"Your Site Name\"\n  description: \"A concise description of your site or organization\"\n  website: \"https://example.com\"  # Optional, defaults to site.url\n  contact: \"contact@example.com\"\n  logo: \"https://example.com/logo.png\"  # Optional\n  entity_type: \"Organization\"  # Optional: Organization, Person, Blog, NGO, Community, Project, CreativeWork, SoftwareApplication, or Thing\n  jsonld:  # Optional: Embedded JSON-LD block\n    \"@context\": \"https://schema.org\"\n    \"@type\": \"Organization\"\n    \"name\": \"Your Site Name\"\n    \"url\": \"https://example.com\"\n    \"email\": \"contact@example.com\"\n```\n\n### Field Mapping\n\nThe plugin will automatically use values from your Jekyll config if not explicitly set:\n\n- `name`: Falls back to `site.title` or `site.name`\n- `description`: Falls back to `site.description`\n- `website`: Falls back to `site.url` (will be prefixed with `https://` if missing)\n- `contact`: Falls back to `site.email`\n\n### Minimal Configuration\n\nIf you already have basic site metadata in `_config.yml`, you can use a minimal configuration:\n\n```yaml\nai_domain_data:\n  contact: \"contact@example.com\"  # Required, no fallback\n```\n\nAll other fields will be pulled from your existing Jekyll configuration.\n\n## Usage\n\n### Automatic Generation\n\nOnce configured, the plugin automatically generates `.well-known/domain-profile.json` during site build. The file will be available at:\n\n```\nhttps://yourdomain.com/.well-known/domain-profile.json\n```\n\n### Liquid Tags\n\nYou can also access domain data in your templates using the `ai_domain_data` tag:\n\n```liquid\n{% ai_domain_data name %}        \u003c!-- Outputs: Your Site Name --\u003e\n{% ai_domain_data description %} \u003c!-- Outputs: Your description --\u003e\n{% ai_domain_data website %}     \u003c!-- Outputs: https://example.com --\u003e\n{% ai_domain_data contact %}     \u003c!-- Outputs: contact@example.com --\u003e\n{% ai_domain_data logo %}        \u003c!-- Outputs: https://example.com/logo.png --\u003e\n{% ai_domain_data entity_type %} \u003c!-- Outputs: Organization --\u003e\n{% ai_domain_data json %}        \u003c!-- Outputs: Pretty-printed JSON --\u003e\n{% ai_domain_data json_compact %} \u003c!-- Outputs: Compact JSON --\u003e\n{% ai_domain_data %}             \u003c!-- Outputs: Pretty-printed full JSON --\u003e\n```\n\n### Example: Embedding in HTML\n\n```html\n\u003cscript type=\"application/ld+json\"\u003e\n{% ai_domain_data json %}\n\u003c/script\u003e\n```\n\n### CORS Configuration\n\nTo allow cross-origin requests (required for tools like the [AI Domain Data checker](https://ai-domain-data.org/checker)), you need to configure CORS headers at your hosting provider level. The plugin generates a static file, so headers must be set by your web server or hosting platform.\n\n#### GitHub Pages\n\nGitHub Pages doesn't support custom headers. The file will be accessible, but cross-origin requests may be limited. Consider using a different hosting provider if CORS is required.\n\n#### Netlify\n\nAdd to `netlify.toml` in your site root:\n\n```toml\n[[headers]]\n  for = \"/.well-known/domain-profile.json\"\n  [headers.values]\n    Access-Control-Allow-Origin = \"*\"\n    Access-Control-Allow-Methods = \"GET, OPTIONS\"\n    Access-Control-Allow-Headers = \"Content-Type\"\n```\n\n#### Apache\n\nAdd to `.htaccess` in your site root:\n\n```apache\n\u003cFilesMatch \"domain-profile\\.json$\"\u003e\n    Header set Access-Control-Allow-Origin \"*\"\n    Header set Access-Control-Allow-Methods \"GET, OPTIONS\"\n    Header set Access-Control-Allow-Headers \"Content-Type\"\n\u003c/FilesMatch\u003e\n```\n\n#### Nginx\n\nAdd to your server configuration:\n\n```nginx\nlocation ~* \\.well-known/domain-profile\\.json$ {\n    add_header Access-Control-Allow-Origin *;\n    add_header Access-Control-Allow-Methods \"GET, OPTIONS\";\n    add_header Access-Control-Allow-Headers \"Content-Type\";\n}\n```\n\n#### Vercel\n\nAdd to `vercel.json` in your site root:\n\n```json\n{\n  \"headers\": [\n    {\n      \"source\": \"/.well-known/domain-profile.json\",\n      \"headers\": [\n        { \"key\": \"Access-Control-Allow-Origin\", \"value\": \"*\" },\n        { \"key\": \"Access-Control-Allow-Methods\", \"value\": \"GET, OPTIONS\" },\n        { \"key\": \"Access-Control-Allow-Headers\", \"value\": \"Content-Type\" }\n      ]\n    }\n  ]\n}\n```\n\n**Note:** Without CORS headers, the domain profile will still be accessible via direct URL, but cross-origin tools (like the checker) may be blocked by browser security policies.\n\n## Validation\n\nThe plugin validates your configuration against the AI Domain Data Standard schema before generating the file. If validation fails, you'll see warnings in the build output and the file won't be generated.\n\nCommon validation errors:\n\n- Missing required fields (`name`, `description`, `website`, `contact`)\n- Invalid `entity_type` (must be a valid schema.org @type value)\n- Invalid `jsonld` structure (must include `@context: \"https://schema.org\"` and `@type`)\n\n## Examples\n\n### Basic Configuration\n\n```yaml\n# _config.yml\ntitle: \"My Awesome Blog\"\ndescription: \"A blog about web development and technology\"\nurl: \"https://myblog.com\"\nemail: \"hello@myblog.com\"\n\nai_domain_data:\n  contact: \"hello@myblog.com\"\n  entity_type: \"Blog\"\n```\n\n### Complete Configuration\n\n```yaml\n# _config.yml\nai_domain_data:\n  name: \"Acme Corporation\"\n  description: \"Leading provider of innovative solutions\"\n  website: \"https://acme.com\"\n  contact: \"info@acme.com\"\n  logo: \"https://acme.com/logo.png\"\n  entity_type: \"Organization\"\n  jsonld:\n    \"@context\": \"https://schema.org\"\n    \"@type\": \"Organization\"\n    \"name\": \"Acme Corporation\"\n    \"url\": \"https://acme.com\"\n    \"logo\": \"https://acme.com/logo.png\"\n    \"email\": \"info@acme.com\"\n    \"description\": \"Leading provider of innovative solutions\"\n    \"foundingDate\": \"2020-01-01\"\n    \"numberOfEmployees\": \"50-100\"\n```\n\n## Requirements\n\n- Jekyll \u003e= 3.8, \u003c 5.0\n- Ruby \u003e= 2.7.0\n\n## Development\n\nAfter checking out the repo, run `bundle install` to install dependencies. Then, run `bundle exec rake spec` to run the tests.\n\nTo install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/ai-domain-data/jekyll-ai-domain-data.\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## Related Projects\n\n- [AI Domain Data Standard](https://ai-domain-data.org) - The specification this plugin implements\n- [AI Domain Data CLI](https://github.com/ai-domain-data/spec/tree/main/packages/cli) - Command-line tool for generating and validating domain profiles\n- [AI Domain Data Resolver SDK](https://github.com/ai-domain-data/spec/tree/main/packages/resolver) - TypeScript/Node.js SDK for resolving domain profiles\n\n## Support\n\nFor issues, questions, or contributions, please visit:\n- GitHub Issues: https://github.com/ai-domain-data/jekyll-ai-domain-data/issues\n- AI Domain Data Standard: https://ai-domain-data.org\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fai-domain-data%2Fjekyll-ai-domain-data","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fai-domain-data%2Fjekyll-ai-domain-data","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fai-domain-data%2Fjekyll-ai-domain-data/lists"}