{"id":15292102,"url":"https://github.com/harttle/md-padding","last_synced_at":"2025-04-05T20:05:17.886Z","repository":{"id":44713710,"uuid":"236695474","full_name":"harttle/md-padding","owner":"harttle","description":"AST-based padding for Markdown and natural language, improving readability in multilingual documents. Supports Vim and VSCode.","archived":false,"fork":false,"pushed_at":"2025-02-24T14:52:38.000Z","size":862,"stargazers_count":63,"open_issues_count":3,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-29T19:07:52.600Z","etag":null,"topics":["ast","fixer","linter","markdown","vim","vscode-extension"],"latest_commit_sha":null,"homepage":"https://harttle.land/md-padding/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/harttle.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":".github/FUNDING.yml","license":null,"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},"funding":{"github":"harttle","open_collective":null,"ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-01-28T09:06:05.000Z","updated_at":"2025-02-25T07:11:40.000Z","dependencies_parsed_at":"2024-12-15T16:46:26.336Z","dependency_job_id":null,"html_url":"https://github.com/harttle/md-padding","commit_stats":{"total_commits":73,"total_committers":8,"mean_commits":9.125,"dds":0.7534246575342466,"last_synced_commit":"80e98f86a186c551933225eaba3918bdd8ae1114"},"previous_names":[],"tags_count":20,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harttle%2Fmd-padding","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harttle%2Fmd-padding/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harttle%2Fmd-padding/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/harttle%2Fmd-padding/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/harttle","download_url":"https://codeload.github.com/harttle/md-padding/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247393568,"owners_count":20931812,"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":["ast","fixer","linter","markdown","vim","vscode-extension"],"created_at":"2024-09-30T16:16:32.011Z","updated_at":"2025-04-05T20:05:17.864Z","avatar_url":"https://github.com/harttle.png","language":"TypeScript","funding_links":["https://github.com/sponsors/harttle"],"categories":[],"sub_categories":[],"readme":"# Markdown Padding\n\n[![npm version](https://img.shields.io/npm/v/md-padding.svg)](https://www.npmjs.org/package/md-padding)\n[![downloads](https://img.shields.io/npm/dm/md-padding.svg)](https://www.npmjs.org/package/md-padding)\n[![Check](https://github.com/harttle/md-padding/actions/workflows/check.yml/badge.svg)](https://github.com/harttle/md-padding/actions/workflows/check.yml)\n[![Release](https://github.com/harttle/md-padding/actions/workflows/release.yml/badge.svg)](https://github.com/harttle/md-padding/actions/workflows/release.yml)\n[![Coveralls](https://img.shields.io/coveralls/harttle/md-padding.svg)](https://coveralls.io/github/harttle/md-padding?branch=master)\n[![GitHub issues](https://img.shields.io/github/issues-closed/harttle/md-padding.svg)](https://github.com/harttle/md-padding/issues)\n[![DUB license](https://img.shields.io/dub/l/vibe-d.svg)](https://github.com/harttle/md-padding/blob/master/LICENSE)\n\nEnglish | [简体中文](https://github.com/harttle/md-padding/blob/master/README.zh.md)\n\n**A tool for formatting Markdown content with padding**.\n\n- *Ensures consistent spacing* before and after Markdown elements like *headings*, *lists*, and *code blocks*.\n- *Aligns tables* by formatting column spacing properly.\n- Supports formatting inside *code blocks* and recognizes *mathematical expressions*, *HTML elements*, *YAML front matter*, and *fenced code blocks* for correct formatting.\n- Applies an extended AST parsing to ensure natural language structures like punctuations and latin characters are padded correctly.\n\nHere's a change made by md-padding:\n\n```diff\n- # 如何中ArchLinux中安装X11？\n+ # 如何中 ArchLinux 中安装 X11？\n\n- 首先要安装ArchLinux，然后安装`xorg-server`软件包：\n+ 首先要安装 ArchLinux，然后安装 `xorg-server` 软件包：\n\n- 确保你的xorg-server版本已经足够高，比如\u003e=1.20，然后安装**合适**的驱动：\n+ 确保你的 xorg-server 版本已经足够高，比如 \u003e= 1.20，然后安装 **合适** 的驱动：\n\n- 如果你需要3D加速等新的功能，可能还需要安装*闭源驱动*。详情请参考[ArchWiki里的对应章节](https://wiki.archlinux.org/index.php/Xorg)。\n+ 如果你需要 3D 加速等新的功能，可能还需要安装 *闭源驱动*。详情请参考 [ArchWiki 里的对应章节](https://wiki.archlinux.org/index.php/Xorg)。\n```\n\n## Command Line Interface\n\n```bash\nnpx md-padding -i README.md   # fix the file in place\nnpx md-padding README.md      # output the fixed content\n```\n\nFor more options:\n\n```bash\n\u003e npx md-padding --help\nmd-padding [OPTION]... \u003cFILE\u003e\n\nOptions:\n  --help, -h      Show help                  [boolean]\n  --version       Show version number        [boolean]\n  --in-place, -i  Edit file in place         [boolean]\n  --ignore-words, -I  Ignore padding for specific words  [string]\n  --ignore-patterns, -P  Ignore specific patterns using regex  [string]\n  --read-files, -r    Read file list from input, one file per line  [string]\n\nExamples:\n  stdout    md-padding README.md\n  in-place  md-padding -i README.md\n  pipe      cat README.md | md-padding\n  ignore-words  cat README.md | md-padding -I '=' '::'\n  ignore-patterns  cat README.md | md-padding -P '=' ':+'\n  batch format  cat list.txt | md-padding -r -i\n  equivalent w/ md-padding -r list.txt -i\n```\n\n## Vim Integration\n\nMap the `F6` key to format Markdown files:\n\n```vim\n\" Hotkey for md-padding format\nnoremap \u003cbuffer\u003e \u003cF6\u003e \u003cEsc\u003e:%!npx md-padding\u003cCR\u003e\n```\n\n## VS Code Integration\n\nInstall the [Markdown Padding](https://marketplace.visualstudio.com/items?itemName=harttle.md-padding-vscode) extension.\n\n- Open Command Palette (`Ctrl + Shift + P` on Windows/Linux, `Cmd + Shift + P` on macOS) and run `Markdown Padding`.\n- Use the default formatting shortcut:\n  - `Shift + Alt + F` (Windows)\n  - `Shift + Option + F` (Mac)\n  - `Ctrl + Shift + I` (Linux)\n\n### Configuration\n\n| Setting                    | Type            | Description                                     |\n| -------------------------- | --------------- | ----------------------------------------------- |\n| `mdpadding.ignoreWords`    | `Array\u003cstring\u003e` | Words to exclude from padding adjustments       |\n| `mdpadding.ignorePatterns` | `Array\u003cstring\u003e` | Regular expressions defining patterns to ignore |\n\n## Q\u0026A\n\n### How to ignore a specific section\n\nYou can exclude certain sections from formatting using the `md-padding-ignore` directive:\n\n```markdown\nSome text before the ignored section.\n\u003c!--md-padding-ignore-begin--\u003e\na*b=c, b\u003e1 =\u003e a\u0026lt;c\n\u003c!--md-padding-ignore-end--\u003e\nThis text will be formatted as usual.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharttle%2Fmd-padding","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fharttle%2Fmd-padding","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fharttle%2Fmd-padding/lists"}