{"id":42861334,"url":"https://github.com/codelicia/xulieta","last_synced_at":"2026-01-30T12:37:50.788Z","repository":{"id":42483925,"uuid":"237611727","full_name":"codelicia/xulieta","owner":"codelicia","description":"🌹Xulieta is a light php executable that lint documentation snippets","archived":false,"fork":false,"pushed_at":"2026-01-14T12:47:38.000Z","size":517,"stargazers_count":67,"open_issues_count":10,"forks_count":5,"subscribers_count":4,"default_branch":"2.0.x","last_synced_at":"2026-01-14T16:52:54.394Z","etag":null,"topics":["documentation","documentation-lint","lint","linter","php"],"latest_commit_sha":null,"homepage":null,"language":"PHP","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/codelicia.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","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},"funding":{"github":["malukenho","EHER"]}},"created_at":"2020-02-01T12:29:30.000Z","updated_at":"2025-08-25T16:50:35.000Z","dependencies_parsed_at":"2024-05-28T04:00:40.448Z","dependency_job_id":"5db9bc67-a9a9-414f-a9b3-6a11901d75f5","html_url":"https://github.com/codelicia/xulieta","commit_stats":{"total_commits":214,"total_committers":8,"mean_commits":26.75,"dds":"0.26635514018691586","last_synced_commit":"627b7b855c4e85cb746bc23966f22656ca803393"},"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/codelicia/xulieta","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelicia%2Fxulieta","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelicia%2Fxulieta/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelicia%2Fxulieta/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelicia%2Fxulieta/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codelicia","download_url":"https://codeload.github.com/codelicia/xulieta/tar.gz/refs/heads/2.0.x","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codelicia%2Fxulieta/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28912913,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-30T12:13:43.263Z","status":"ssl_error","status_checked_at":"2026-01-30T12:13:22.389Z","response_time":66,"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":["documentation","documentation-lint","lint","linter","php"],"created_at":"2026-01-30T12:37:50.585Z","updated_at":"2026-01-30T12:37:50.769Z","avatar_url":"https://github.com/codelicia.png","language":"PHP","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"./meme.jpg\" alt=\"Xulieta\" width=\"300\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003e 🌹 XULIETA \u003c/h1\u003e\n\u003ch3 align=\"center\"\u003e Xulieta is a light php binary that lint documentation snippets. \u003c/h3\u003e\n\n**Xulieta** is a light php binary that find code snippets thought out\ndocumentation files — as for example `*.md`, `*.markdown` and `*.rst`\n— and lint the pieces of code, so you can find basic documentation errors.\n\n**NOTE**: For now we just lint PHP code.\n\n### Installation\n\n```shell script\ncomposer require codelicia/xulieta\n```\n\n### Checking for errors\n\nIn order to lint the basics of documentation structure, one just needs to provide a path for a\ndirectory or file to be linted.\n\n```shell script\n./vendor/bin/xulieta check:error \u003cdirectory\u003e\n```\n\n### Integration with GitHub Actions\n\nWe provide out  of the box an  `output` format that you can  use to have\nautomatic  feedback from  GitHub  CI.  That is  done  by specifying  the\n`checkstyle` output and passing it to some external binary that does the\ncommenting.\n\nWe recommend the usage of [cs2pr](https://github.com/staabm/annotate-pull-request-from-checkstyle).\n\n```\n./vendor/bin/xulieta check:error \u003cdirectory\u003e --output=checkstyle | cs2pr\n```\n\n#### Commenting example\n\n\u003cimg src=\"./github-action.png\"  alt=\"Codelicia\\Xulieta\" /\u003e\n\n### Advanced Configuration\n\n**Xulieta** tries to find a `.xulieta.xml` file in the root of your project\nwith the following configuration format:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\" ?\u003e\n\u003cxulieta xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n         xsi:noNamespaceSchemaLocation=\"./vendor/codelicia/xulieta/xulieta.xsd\"\u003e\n\n    \u003cparser\u003eCodelicia\\Xulieta\\Parser\\MarkdownParser\u003c/parser\u003e\n    \u003cparser\u003eCodelicia\\Xulieta\\Parser\\RstParser\u003c/parser\u003e\n\n    \u003cvalidator\u003eCodelicia\\Xulieta\\Validator\\PhpValidator\u003c/validator\u003e\n\n    \u003coutputFormatters\u003eCodelicia\\Xulieta\\Output\\Checkstyle\u003c/outputFormatters\u003e\n\n    \u003cexclude\u003evendor\u003c/exclude\u003e\n    \u003cexclude\u003enode_modules\u003c/exclude\u003e\n\u003c/xulieta\u003e\n```\n\n- `parser`: listing of all parses to handle file formats based in the extention name\n- `validator`: performs verification on a given code block\n- `outputFormatters`: personalized output formatter\n- `exclude`: excluded directory or files\n\n### Command name\n\nFor historic reasons and the sake of the Brazilian MEME we keep the original command `xulieta check:erromeu`.\n\n## Plugins\n\n`Xulieta` will automatically scan dependencies to see if there is \nany package that is providing default configurations.\n\nIf you want your plugin to take advantage of that functionality,\nwe expect you to provide some information on your `composer.json`\nfile, ie:\n\n```json\n{\n  \"extra\": {\n    \"xulieta\": {\n      \"parser\": [\"Malukenho\\\\QuoPrimumTempore\\\\JsonParser\"],\n      \"validator\": [\"Malukenho\\\\QuoPrimumTempore\\\\JsonValidator\"]\n    }\n  }\n}\n```\n\n## Contributors ✨\n\nThanks goes to these wonderful people ([emoji key](https://allcontributors.org/docs/en/emoji-key)):\n\n\u003c!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section --\u003e\n\u003c!-- prettier-ignore-start --\u003e\n\u003c!-- markdownlint-disable --\u003e\n\u003ctable\u003e\n  \u003ctr\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"http://about:blank\"\u003e\u003cimg src=\"https://avatars0.githubusercontent.com/u/398034?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAlexandre Eher\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#infra-EHER\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#maintenance-EHER\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/codelicia/xulieta/commits?author=EHER\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://twitter.com/malukenho\"\u003e\u003cimg src=\"https://avatars2.githubusercontent.com/u/3275172?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eJefersson Nathan\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"#infra-malukenho\" title=\"Infrastructure (Hosting, Build-Tools, etc)\"\u003e🚇\u003c/a\u003e \u003ca href=\"#maintenance-malukenho\" title=\"Maintenance\"\u003e🚧\u003c/a\u003e \u003ca href=\"https://github.com/codelicia/xulieta/commits?author=malukenho\" title=\"Code\"\u003e💻\u003c/a\u003e\u003c/td\u003e\n    \u003ctd align=\"center\"\u003e\u003ca href=\"https://airton.dev\"\u003e\u003cimg src=\"https://avatars1.githubusercontent.com/u/6540546?v=4\" width=\"100px;\" alt=\"\"/\u003e\u003cbr /\u003e\u003csub\u003e\u003cb\u003eAirton Zanon\u003c/b\u003e\u003c/sub\u003e\u003c/a\u003e\u003cbr /\u003e\u003ca href=\"https://github.com/codelicia/xulieta/pulls?q=is%3Apr+reviewed-by%3Aairtonzanon\" title=\"Reviewed Pull Requests\"\u003e👀\u003c/a\u003e\u003c/td\u003e\n  \u003c/tr\u003e\n\u003c/table\u003e\n\n\u003c!-- markdownlint-enable --\u003e\n\u003c!-- prettier-ignore-end --\u003e\n\u003c!-- ALL-CONTRIBUTORS-LIST:END --\u003e\n\nThis project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!\n","funding_links":["https://github.com/sponsors/malukenho","https://github.com/sponsors/EHER"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelicia%2Fxulieta","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodelicia%2Fxulieta","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodelicia%2Fxulieta/lists"}