{"id":16360384,"url":"https://github.com/mike42/mdcheckr","last_synced_at":"2025-06-20T02:38:41.107Z","repository":{"id":147744486,"uuid":"93242678","full_name":"mike42/mdcheckr","owner":"mike42","description":"Practical CI testing for markdown files","archived":false,"fork":false,"pushed_at":"2020-01-31T15:25:38.000Z","size":46,"stargazers_count":6,"open_issues_count":11,"forks_count":7,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-04-04T11:37:00.235Z","etag":null,"topics":["markdown","testing"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mike42.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE.md","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}},"created_at":"2017-06-03T11:02:47.000Z","updated_at":"2024-01-29T18:58:31.000Z","dependencies_parsed_at":"2023-04-13T04:53:55.958Z","dependency_job_id":null,"html_url":"https://github.com/mike42/mdcheckr","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/mike42/mdcheckr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike42%2Fmdcheckr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike42%2Fmdcheckr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike42%2Fmdcheckr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike42%2Fmdcheckr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mike42","download_url":"https://codeload.github.com/mike42/mdcheckr/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mike42%2Fmdcheckr/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":260867991,"owners_count":23074916,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["markdown","testing"],"created_at":"2024-10-11T02:11:19.426Z","updated_at":"2025-06-20T02:38:36.093Z","avatar_url":"https://github.com/mike42.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mdcheckr [![Build Status](https://travis-ci.org/mike42/mdcheckr.svg?branch=master)](https://travis-ci.org/mike42/mdcheckr)\n\n`mdcheckr` is a testing tool to detect quality problems with your Markdown documentation. It is designed to act as a quality gate in your continuous integration pipeline.\n\n- **Syntax errors in code blocks** - Syntax-check code blocks that identify their language. Currently works for:\n  - bash ([example](tests/04_codeblock_bash_bad.md))\n  - PHP ([example](tests/05_codeblock_php_bad.md))\n- **Code blocks**- Detection of un-closed code blocks ([example](tests/06_codeblock_plain_bad.md))\n- **Broken links**- Flag files that link to relative paths or URLs on the internet which can't be accessed ([example](tests/00_rel_link_bad.md), [example](tests/01_abs_link_bad.md)).\n- **Broken images**- Detect broken embeds, local and remote ([example](tests/02_rel_img_bad.md), [example](tests/03_abs_image_bad.md)).\n\nThis tool is not intended to enforce a code style, and will not critique aspects of your Markdown code which do not affect the output.\n\n## Dependencies\n\nRequirements:\n\n- curl\n- xmllint\n- pandoc\n\n## Installation\n\n### Operating systems\n\n#### Ubuntu\n\nThese may be installed from the [mike42/mdcheckr](https://launchpad.net/~mike42/+archive/ubuntu/mdcheckr) PPA (Notes for Travis CI users: [Installing Dependencies](https://docs.travis-ci.com/user/installing-dependencies/))\n\n```bash\nsudo add-apt-repository -y ppa:mike42/mdcheckr\nsudo apt-get update\nsudo apt-get -y install mdcheckr\n```\n\n#### Debian\n\nFetch the Debian package from [releases](https://github.com/mike42/mdcheckr/releases).\n\n```bash\nsudo dpkg -i mdcheckr_x.y-z_all.deb\nsudo apt-get -f install\n```\n\n#### Redhat-based distrbutions\n\nFetch the RPM package from [releases](https://github.com/mike42/mdcheckr/releases).\n\n```bash\nyum -y install epel-release\nyum -y install which pandoc libxml2 mdcheckr-x.y-z.noarch.rpm\nln -s /usr/bin/mktemp /usr/bin/tempfile\n```\n\nThis package should be considered a preview only, and is currently being produced with [Alien](https://wiki.debian.org/Alien).\n\n#### Apple Mac OS distributions\n\nYou will still need to follow \"install from source\" instructions. However you need to ensure the dependency of Pandadoc is installed on your mac. Pleasse ensure you have [homebrew](https://brew.sh/) installed first.\n\n```bash\nbrew update\nbrew install pandoc\ncurl https://raw.githubusercontent.com/mike42/mdcheckr/master/mdcheckr -o mdcheckr\nchmod +x mdcheckr\nsudo mv mdcheckr /usr/local/bin\n```\n\n### Install from source\n\nIf the dependencies are available on your system, just copy the shell script itself to `/usr/local/bin`:\n\n```bash\ncurl https://raw.githubusercontent.com/mike42/mdcheckr/master/mdcheckr -o mdcheckr\nchmod +x mdcheckr\nsudo cp mdcheckr /usr/local/bin\n```\n\n## Usage\n\n```\nmdcheckr [ -h | --help ] [ -v | --version ] FILE ..\n```\n\n## Examples\n\nCheck a single markdown file:\n\n```\nmdcheckr README.md\n```\n\nCheck all the markdown files in the current directory:\n\n```\nfind . -name '*.md' -print0 | xargs -0 mdcheckr\n```\n\nCheck all the markdown files in your Git repository:\n\n```bash\ngit ls-files | grep '\\.md$' | tr '\\n' '\\0' | xargs -0 mdcheckr\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmike42%2Fmdcheckr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmike42%2Fmdcheckr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmike42%2Fmdcheckr/lists"}