Join two Markdown tables based on matching columns. Combine records and align tabular layouts.
The Markdown Table Joiner operates as a sophisticated parser that transforms GitHub Flavored Markdown (GFM) tables into structured relational objects. Unlike simple text concatenation, this tool implements a Key-Based Join Algorithm. It first tokenizes the pipe-delimited strings, identifies the header row, and maps the remaining cells into a temporary hash map. When two or more tables are processed, the engine performs a Left, Right, or Inner Join operation based on a user-defined unique identifier column, ensuring that data integrity is maintained across disparate Markdown sources.
The tool is engineered to handle the idiosyncrasies of Markdown formatting, including varying whitespace and alignment markers. Key capabilities include:
INNER JOIN (only matching keys), LEFT JOIN (all from primary, matches from secondary), and FULL OUTER JOIN (all records from both).:---, :---:, ---:) ensuring the resulting table renders perfectly in any Markdown viewer.For developers looking to automate table merging within a CI/CD pipeline or a documentation site, the logic can be mirrored using a script. For instance, using JavaScript to simulate the join process:
const joinTables = (tableA, tableB, key) => { const map = new Map(); tableA.forEach(row => map.set(row[key], row)); tableB.forEach(row => { const existing = map.get(row[key]) || {}; map.set(row[key], { ...existing, ...row }); }); return Array.from(map.values()); };Alternatively, users can interact with the tool by pasting raw Markdown blocks. The tool validates the pipe-separator consistency and strips trailing whitespaces before performing the relational merge, outputting a clean, standardized GFM table.
Data privacy is paramount when handling technical documentation. The Markdown Table Joiner is designed as a client-side processor. This means:
The tool employs a normalization phase where it analyzes the header row of each input table. If a table has fewer columns than the target join structure, the engine injects empty cells (nulls) to maintain the GFM grid integrity. This ensures that the final output does not break the Markdown rendering engine, which requires a consistent number of pipes per row.
Yes, the tool supports composite keys by allowing users to specify multiple columns as the join criteria. The engine creates a concatenated unique string from the selected columns to serve as the temporary primary key. This is particularly useful for datasets where a single ID is not unique but a combination of 'Date' and 'User ID' is.
The behavior depends on the selected join type: in a Left Join, the record is kept and the missing columns from the second table are left blank. In an Inner Join, the record is discarded entirely because a match was not found. Full Outer Joins preserve all records from both tables, filling in missing data from either side with empty strings to ensure a complete dataset.
Standard GFM (GitHub Flavored Markdown) does not natively support cell spanning (colspan/rowspan). Consequently, the Joiner focuses on strict pipe-delimited grids. If you input a table with non-standard HTML-style spans, the tool will treat the HTML tags as literal text within the cell, preserving the content while maintaining the structural integrity of the surrounding grid.
Since the processing happens client-side in the browser, the limit is primarily dictated by the available system memory and the browser's string handling capacity. For most technical documentation needs (up to several thousand rows), the tool performs efficiently. For extremely large datasets, we recommend joining tables in pairs to avoid browser heap memory overflows.