Free MIT-licensed tools for spreadsheet text, Markdown tables, local file checks, form validation, table selection, calendar arithmetic, workday schedules, chart gaps, line sampling, JSONL imports and PDF contents. Choose a module for your application or try the browser playground. Each tool has its own setup; JavaScript modules do not require Python.
Start with three free components for spreadsheet paste, remote field checks and JSONL imports, each with a fixed download and a short runnable example.
| What you need | Start here | Setup |
|---|---|---|
| Parse or copy spreadsheet text while preserving quoted line breaks, empty cells and leading zeros | Clipboard Table | Copyable JavaScript module; browser or Node.js |
| Turn a copied spreadsheet selection into comma-separated CSV | Browser playground | No installation; copy or download CSV |
| Convert CSV or tab-separated text into Markdown tables | Markdown Table | Versioned GitHub package; Node.js 20+ for installation |
| Add a table generator to a React application | React component and DevKit adapter | React 18+; Tailwind CSS 4 or your own styles |
| Keep decimal commas when pasting into Streamlit | Decimal paste example | Python helper plus an optional Streamlit app |
| Read the current plain-text paste event in a Glide grid | Glide paste adapter | Copyable adapter; your application owns validation and writes |
| Copy a selected rectangle of editor table cells as CSV | ProseMirror selection example | Tiptap / ProseMirror; optional React copy control |
| Preserve merged cells when table paste fails while creating its selection | Merged-cell paste patch | Exact-version ProseMirror 1.8.5 patch; Tiptap 3.31.3 regression fixture |
| Handle an external CRLF terminator while retaining intentional blank rows | C# row-boundary example | Copyable helper and checks; Radzen integration notes |
| Keep CSV codes as text while measurements and counts stay numeric | Pandas code columns | Python; a two-pass pandas helper with an explicit count-field exception |
| Import literal identifiers without losing zeros or strings such as NA | Identifier Column | Python; standard-library CSV and optional XLSX/QR examples |
| Debounce remote validation while keeping form input and submission current | Remote field check | Copyable JavaScript core; React / React Hook Form example and offline demo |
| Correct an existing text tag without deleting it | Editable text tags | Copyable React-Select component; stable IDs, save/cancel and conflicting-update checks |
| Highlight a phrase across PDF text fragments and explicit line endings | PDF fragment highlights | Copyable module and React-PDF component; repeated and overlapping literal matches |
| Acknowledge a saved dynamic form without losing focus or edits made during the request | Saved field array | Copyable React Hook Form component; local slow-save and failure example |
| Show Ant Design local-rule errors immediately while debouncing remote validation | Ant Design rule example | Copyable rule bridge and React form with cancellation and immediate submit |
| Keep unrelated fields quiet inside a reactive form group | Isolated form fields | Copyable typed React memo boundary; TanStack Form comparison with live validation |
| Keep TanStack Form pending indicators accurate when async field checks overlap | Validation state patch | Exact-version 1.33.5 patch; runnable ESM and CommonJS regression fixture |
| Refresh a pending-operation list when its selected category changes | Mutation view | Copyable TypeScript React component; React Query 5.102.8 regression example |
| Add calendar days, weeks, months or years in a chosen time zone with explicit DST handling | Calendar shift | Copyable TypeScript function; Temporal polyfill and Day.js integration checks |
| Add, subtract or count working dates with custom weekdays and supplied holidays | Work calendar | Dependency-free TypeScript core; date-fns integration checks |
| Generate linked PDF contents with verified page numbers, including multi-page contents | PDF contents | Node/TypeScript utility and React component; react-pdf integration checks |
| Reduce line-chart points while retaining missing intervals and original records | Line sampling | Dependency-free TypeScript core; React / Recharts component and SVG checks |
| Close a chart tooltip for a details dialog and restore hover at a different point | Dismissible tooltip | Copyable React hook; Recharts Scatter example and keyboard-accessible data table |
| Draw dashed connections across missing categories or time samples without inventing measurements | Chart gaps | Dependency-free TypeScript adapter; ECharts 6.1.0 SVG checks |
| Keep PapaParse Worker results correct in tested Vite 8 production builds | Vite Worker configuration and checks | Copyable minifier configuration; runnable browser comparison |
| Select and rename CSV columns while preserving original value alignment | CSV Column Map | Dependency-free JavaScript core; PapaParse 5.7.0 string adapter and tests |
| Select all eligible query results across server-paginated pages, with exclusions | Cross-page selection | Dependency-free selection module; TanStack Table 9 example with a local read-only server |
| Process UTF-8 CSV records sequentially with asynchronous callbacks and cancellation | Streaming CSV | Node.js 20+; csv-parse integration with strict decoding and header checks |
| Keep blank numeric fields distinct from zero, with typed form inputs and submissions | Number Input | Copyable Zod 4 schemas; React Hook Form example and type checks |
| Replace declared CSV missing markers in selected columns while preserving identifiers and notes | Missing Tokens | Copyable Python module; standard library only |
| Separate malformed JSONL lines while retaining original bytes and rejection locations | JSONL partition | Python standard library; optional Polars eager/lazy integration |
| Clean, profile, compare or check local files | Python command-line guide | Python 3.11+ |
- Open the free browser playground.
- Choose TSV (tabs) or CSV (commas), then Load example or paste your table text.
- Choose CSV, JSON or Markdown table, then copy or download the complete result. CSV includes every input row; its heading option affects only the preview.
For offline use, download the browser playground v0.4.0 ZIP, extract it and open index.html in a modern browser. If automatic copying is unavailable, copy the selected output manually. Use CSV download when you need to retain the serialized line endings.
The page processes text locally with no uploads or external runtime assets. The clipboard guide explains preview limits and includes a separate source-and-tests download. The community examples show why splitting on every newline loses multiline cells.
Install the fixed GitHub release with Node.js 20 or newer:
npm install https://raw.githubusercontent.com/tevinch/data-shape-kit/markdown-table-v0.1.1/downloads/tevinch-markdown-table-0.1.1.tgzIn an ES module:
import { buildMarkdownTable } from '@tevinch/markdown-table';
const result = buildMarkdownTable('ID,Note\n001,"a|b"', {
delimiter: ',',
firstRowHeaders: true,
});
console.log(result.markdown);| ID | Note |
| --- | --- |
| 001 | a\|b |
The core has no runtime dependencies. Use delimiter: '\t' for spreadsheet text. The package is distributed through GitHub; installation by package name alone is not available. See the full API, TypeScript setup and optional React entry.
The Python CLI supports CSV cleanup, profiling, dictionaries, exact-key comparison, and static checks for supported catalog, feed, calendar and web files. The command-line guide contains installation steps, command examples, tests, data handling and the scope of each check.
For help applying the tools to an eligible file, see the separate optional service scopes.
Report a component problem or ask an integration question. Include the component and version, a small invented input, expected output, actual output and relevant runtime versions. Public issues should not contain real datasets, credentials, private URLs or personal information.
The conversion modules make no network requests or storage calls; the surrounding application controls what happens to their output. Clipboard parsers preserve the text they receive, but cannot recover precision or zeros already lost in the source application. They do not read XLSX files or evaluate formulas. Markdown is a presentation format, so rendered whitespace can differ from the original text.
The Glide adapter requires the host application to validate a whole paste before writing. Full Glide runtime integration and Windows Excel round-trip behavior have not been tested. Follow each tool's guide for its limits and verification scope.
MIT. Use, modify and share the code, retaining the license notice. If a component saves you time, its guide includes a small optional coffee note. Feedback and useful examples are appreciated too.