All notable changes to name.krot:markdown-table-core are recorded here.
The module follows semantic versioning.
- The Maven Central POM now declares markdowntableeditor.ru as the project homepage. Source control metadata continues to point to the GitHub repository.
Source and binary compatible with 0.2.0: no public type, method, field, or enum constant was
removed, added, or changed. Only the distribution license changed.
- The module is relicensed from
MITtoGPL-3.0-or-later, so the whole Markdown Table Editor suite - the JetBrains IDE plugin, the Notepad++ plugin, and this core library - is distributed under a single license. Releases up to and including0.2.0stay available underMITon Maven Central and keep their original terms.
Source and binary compatible with 0.1.0: no public type, method, field, or enum constant was
removed, added, or changed. Only the observed behaviour of existing methods changed, as listed
below.
findTableRangescould return overlapping ranges when a table was directly followed by a line that was itself a valid separator. The trailing row of one table was reused as the header of the next one, so a caller that rewrote every range independently corrupted the document. Scanning now resumes past the end of each table.- The formatter could emit a table it was unable to parse back. When a table carried no outer
pipes and an edge cell was empty - for example right after inserting a column into
a | b- the padded row ended with a pipe that re-parsing consumed as an outer pipe, dropping a column and breaking header/separator agreement. Rows now keep the outer pipe whenever the first or last column contains an empty cell. - Deleting the second column of a table without outer pipes left rows with no pipe at all, turning the table into plain text. A single-column table without a leading pipe now always renders a trailing one.
- A header made only of dashes, such as
| --- | --- |above its separator, was mistaken for the separator row, and every edit on that table was rejected withNo Markdown table found. The separator search now starts below the header. EditResult.changedwas alwaystrue. It now reports whether the returned lines actually differ from the table the operation started from, so successful no-ops such as aligning an already aligned table reportfalsewhileokstaystrue.
findTableRangestops scanning once the document is past the requested row instead of always mapping the whole document, which speeds up edits in long files.
- The Javadoc of
EditResultnow states that the result carries only the affected table and thattargetRowindexes intolines, not into the document. findTableRangesdocuments the non-overlap guarantee, andapplydocuments that out-of-range coordinates are clamped rather than rejected.
- First public release: parsing, formatting, conversion, and editing for GitHub-flavored Markdown pipe tables, with no runtime dependencies on Java 17.