Free 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 documents its setup and license; 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 |
|---|---|---|
| Preserve core-js feature checks while optimizing application code | Core-js compatibility checks | Rollup module configuration; actual CommonJS builds and runtime checks |
| Bundle relative CSS imports while keeping root image and font URLs | CSS root URLs | esbuild CLI options or a small resolver; complete build and checks |
| Show all current field and form errors, then save after correcting them | Complete submit validation | TanStack Form 1.33.5 source patch; explicit opt-in and runnable React comparison |
| Keep saved values out of a different conditional React Hook Form field | Conditional field identity | Two stable input keys; runnable save/return comparison |
| Keep a TinyMCE table when typing over text dragged from its left edge | Table edge input | Public-event guard; TinyMCE 8.9.2 and browser checks |
| Delete a visual line in Lexical without losing an inline decorator on the neighbouring line | Visual line boundary | Public-command extension; Lexical 0.51.0 and browser checks |
| Render short chemical reaction arrows with MathJax Pagella | Pagella chemical arrow | CHTML filter for TeX-generated MathML; complete browser examples |
| Generate tagged PDF form widgets with accessible names and correct page references | Accessible PDF form | PDFKit source patch and two-page generation example |
| Open, edit and save XFA PDF forms containing bold and italic text | XFA rich text | PDF.js 6.3.289 source patch, worker repair and two-page browser example |
| Keep embedded PDF searches from moving the surrounding page | PDF search within the viewer | PDF.js 6.3.289 source patch and runnable browser example |
| Keep detail when larger Docling PDF exports remain blurry | PDF image detail | Configuration guide; Docling 2.129.0 and docling-parse 7.21.0 |
| Keep a selected Streamlit record across data refreshes, or reset stale selection and draft edits | Table state after refresh | Two Python examples; 14 backend checks and local browser verification |
| Restore the settling effect run after an inner Svelte flush clears the current batch | Svelte effect recovery | Exact-version 5.57.1 patch; repeated-interaction browser checks |
| Keep PDF pages and repeated images when PDFio reports duplicate-resource warnings | PDF warning recovery | Source repair merged; original reporter confirms Canon printing; release pending |
| Release each image-based PDF export context after receiving the file | Raster PDF Worker | Complete browser example; jsPDF 4.2.1 |
| Navigate custom 12-month FullCalendar views without Spanish hint errors | Calendar navigation | Three public configuration options; complete browser example |
| Refresh AG Grid React overlay text and actions without losing the visible overlay’s local state | Overlay parameter refresh | Exact-version 36.1.0 patch; ESM/CommonJS production browser checks |
| Refresh asynchronous table data inside a Naive UI collapse without losing child state on updates | Async collapse content | Copyable render-function workaround; production browser comparison |
| Keep local constant calculations intact in Metro release bundles | Metro release values | Copyable source workaround; production bundle checks |
| Keep original images referenced by cached Astro pages through repeated builds | Astro cached images | Official fix in Astro 7.3.3; older preview patch and checks |
| Export PDFs when an overlapping element moves above a shrinking table | PDFme table export | Official fix in PDFme 6.1.13; older patch and PDF checks |
| Run Storybook tests with configuration hooks when Jest 30.5 refuses Node loader registration | Storybook Jest configuration | Exact-version Storybook 10.6.0 patch; TypeScript/JavaScript and repeated-run fixture |
| 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 |
| Preserve Lime editor table structure with links and images while respecting the no-upload setting | Table paste priority | Exact-version Lime Elements 40.2.2 patch; repeated-paste browser checks |
| Preserve pipe-containing table text and backtick-containing inline code through Markdown export/import | Markdown round-trip patches | Upstream source fixes merged; temporary 3.31.3 patches and checks |
| Import mixed rich text and long worksheet names from XLSX files | ExcelJS import compatibility | ExcelJS 4.4.0 patch; generated load/write regression fixture |
| Replace repeated whole-paragraph DOCX blocks without deleting content between them | DOCX repeated blocks | Official fix in docx 9.8.0; 46 output checks and an older 9.7.1 patch |
| Merge a following paragraph into a list item with one Delete while preserving adjacent isolating frames | Isolated list Delete | Copyable Tiptap extension; 3.31.3 regression fixture and browser comparison |
| 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 |
| Keep counted recurrence dates when clock selectors repeat | Recurrence clock values | Source correction, unofficial prebuilt rrule package and exact-date checks |
| Lazy-load draggable components without type casts | Draggable lazy types | React 18/19 source correction, installable package and NodeNext checks |
| Add, subtract or count working dates with custom weekdays and supplied holidays | Work calendar | Dependency-free TypeScript core; date-fns integration checks |
| Keep FullCalendar time-grid lanes usable while opening hours change | Calendar hours | Version-pinned configuration workaround; Chrome browser regression 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 |
| Retain complete finite-command output and exit status while previewing its first 120 lines | Command output capture | POSIX shell with mktemp and head; Node.js 20+ only for tests |
| 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 for original collection code. Exact-version patches retain their upstream licenses as documented in their guides. Use, modify and share the code, retaining the applicable license notices. If a component saves you time, its guide includes a small optional coffee note. Feedback and useful examples are appreciated too.