@tpmjs/tools-markdown-lint-basic
Perform basic markdown linting to check for common issues like trailing whitespace, multiple blank lines, heading hierarchy problems, and formatting inconsistencies. Returns a list of issues with severity levels.
The operation was aborted due to timeout
Last checked: 1/1/2026, 8:28:09 AM
Test @tpmjs/tools-markdown-lint-basic (markdownLintBasicTool) with AI-powered execution
0/2000 characters
Install this tool and use it with the AI SDK
npm install @tpmjs/tools-markdown-lint-basicpnpm add @tpmjs/tools-markdown-lint-basicyarn add @tpmjs/tools-markdown-lint-basicbun add @tpmjs/tools-markdown-lint-basicdeno add npm:@tpmjs/tools-markdown-lint-basicimport { markdownLintBasicTool } from '@tpmjs/tools-markdown-lint-basic';import { generateText } from 'ai';
import { openai } from '@ai-sdk/openai';
import { markdownLintBasicTool } from '@tpmjs/tools-markdown-lint-basic';
const result = await generateText({
model: openai('gpt-4o'),
tools: { markdownLintBasicTool },
prompt: 'Your prompt here...',
});
console.log(result.text);Available configuration options
markdownstringThe markdown content to lint
Schema extracted: 1/1/2026, 8:18:53 AM
Basic markdown linting to check for common issues.
npm install @tpmjs/tools-markdown-lint-basic
import { markdownLintBasicTool } from '@tpmjs/tools-markdown-lint-basic'; const result = await markdownLintBasicTool.execute({ markdown: ` # Title ## Section 1 #### Subsection (skips h3) Some text with trailing spaces Bare URL: https://example.com `, }); console.log(result.passed); // false (has errors) console.log(result.summary); // { // errors: 1, // warnings: 2, // totalLines: 8, // rulesChecked: ['no-trailing-spaces', 'no-multiple-blanks', ...] // } console.log(result.issues); // [ // { // rule: 'heading-increment', // severity: 'error', // line: 4, // message: 'Heading level 4 skips level 3', // context: '#### Subsection (skips h3)' // }, // ... // ]
markdownLintBasicTool.execute(input)markdown (string, required): The markdown content to lintReturns a LintResult object:
interface LintResult { issues: LintIssue[]; passed: boolean; // true if no errors (warnings are OK) summary: { errors: number; warnings: number; totalLines: number; rulesChecked: string[]; }; } interface LintIssue { rule: string; // Rule identifier severity: 'error' | 'warning'; line: number; // Line number where issue occurs column?: number; // Optional column number message: string; // Human-readable message context?: string; // Code snippet showing the issue }
const result = await markdownLintBasicTool.execute({ markdown }); if (!result.passed) { const errors = result.issues.filter(i => i.severity === 'error'); console.error(`Found ${errors.length} errors:`); for (const error of errors) { console.error(`Line ${error.line}: ${error.message}`); } }
const result = await markdownLintBasicTool.execute({ markdown }); for (const issue of result.issues) { const icon = issue.severity === 'error' ? '❌' : '⚠️'; console.log(`${icon} Line ${issue.line}: ${issue.message}`); if (issue.context) { console.log(` ${issue.context}`); } }
const result = await markdownLintBasicTool.execute({ markdown }); const byRule = new Map<string, LintIssue[]>(); for (const issue of result.issues) { if (!byRule.has(issue.rule)) { byRule.set(issue.rule, []); } byRule.get(issue.rule)!.push(issue); } for (const [rule, issues] of byRule) { console.log(`${rule}: ${issues.length} issues`); }
MIT
Downloads/month
0
Quality Score