Monotext CHANGE LOG

Started: 2024-08-06
First published: 2024-09-04
State: Pre-alpha

2025_0405
Restyles frontend.

2025_0403
Swaps zip library with tar for lighter weight.
Adds align paragraph options: left center right justified.
Reinstates `(/)` as comment tag.
Adds paragraph margins options, 0-9 indents left and or right.
Allows making paragraphs block content uppercase.
Removes the blockquotes block type.
  The paragraphs block has margins options for the same results.
Documents and demonstrates all paragraph options.
Adds flag `-i` for user to set indent width to N spaces.
Clamps user given document settings to allowed ranges.

2025_0402
Changes spec so that tags for new blocks begin on a new line.
  This prevents matching any appearance of the tag elsewhere.
Removes block closing tag `(/)` from the markup syntax.
  The start of a new block now also ends any previous one.
Changes key value syntax to put any alignment tag after the key.
  This makes the inline tag look less like a block tag.
  Example: `key(l|c|r):val`
Removes leading and trailing lines from block contents.
Adds '-g' flag to set how many blank lines separate blocks.
Fixes centering of 'text in a line' blocks (by trimming it).
Changes backend global namespace (for grep-ability).
Updates documentation to reflect changes to syntax.
Changes inline tags: to ^(UPPERCASE) $(s p a c e)
  This allows changing the style by changing one character.
[LARGE REWRITE] Parses 'markup to js', then typesets separately.
  This allows future flexibility: `markup_to[Monotext/HTML/MD]`.
Adds helper functions for block parsers to share.
  This results in more consistent output.

- 2024_1221
-- Allows manual line breaks in headers

- 2024_1011
-- Merges column tags, (2) and (3), to (&) tag.

- 2024_1010
-- Changes headers to block type (').
-- Changes divider line to block type (*).
-- Changes text in line to use (*)text(/*).
-- Allows aligning text in line ['L','R','C'].
-- Changes comment block tag to (z). (TEMP)
-- Simplifies markup so (/) ends all blocks.
-- Allows aligning headers ['L','R','C'].
-- Makes 'Insert' a drop down menu.
-- Makes 'Save' a drop down menu.
-- Swaps tab sections for popovers.
-- Sums save file sizes only IF data changed.

- 2024_1009
-- Merges pairs and justified pairs tags.
-- Expects any variables block to start file.
-- Reduces loops needed to process document. 
-- Unifies backend block function signatures.

- 2024_1005
-- Swaps 'frontmatter' for variables block.
-- Documents variables block.
-- Adds variables block to insert panel.
-- Adjusts comment block matching regex.

- 2024_1004
-- Styles headers in OR on a line. Not both.
-- Changes comma separated values tag to (,).
-- Changes table block tag to (+).
-- Changes transposed table block tag to (x).
-- Adds list block (Replaces loose list items).
-- Allows list items with multi line input.
-- Allows paragraph breaks in list items.
-- Merges touching text lines per list item.
-- Adds 'insert' pane, for tags and blocks.
-- Uses last caret position to insert blocks.
-- Lets paragraph text controls style, not tag.
-- Restyles CSS to accommodate insert pane.

- 2024_1002
-- Fixes three-column-block 3rd column error.
-- Adds template CV

- 2024_0930
-- Renames main method "monotext.from_markup".

- 2024_0929
-- Adds copy input button.
-- Adds copy output button.
-- Adds toggle to show input, output or both.
-- Calculates zip weight. Refactors fn.
-- Updates intro copy and specification copy.
-- Moves the project summary to overview copy.
-- Removes the site's header text.
-- Calculates weights only on save menu launch.
-- Restyles elements to clarify site hierarchy.
-- Swaps field direction based on window width.
-- Styles selected text, popovers, scrollbars.
-- Updates table block to take pair records.
-- Updates templates to use new table block.
-- Moves the changelog to its own page.

- 2024_0925
-- Adds CSV block, parser lacks quote support.
-- Allows commas in quoted CSV block values.
-- Allows quotes in quotes CSV block values.
-- Demos CSV blocks with commas in values.
-- Demos CSV blocks with quotes in values.

- 2024_0922
-- Fixes site for webkit browsers.

- 2024_0918
-- Adds and documents paragraph block.
-- Adds a 2 column block. Refactors backend.
-- Tweaks blockquote to only indent text lines.

- 2024_0917
-- Adds and documents blockquote block.

- 2024_0914
-- Documents more.

- 2024_0913
-- Handles over-long justified-pair input.
-- Demonstrates use of block for form fields.
-- Refactors some functions for clarity.
-- Returns output width value from main function.
-- Resizes output textarea to match output width.
-- Centers output textarea to width available.
-- Improves paragraph wrapping.
-- Unifies change log item format.
-- Coins the project and format: "Monotext".

- 2024_0912
-- Adds multi line comment blocks: (/)comment(//).
-- Adds text explaining syntax and using the tool.
-- Merges toc block into new (lr) block '(l.r)'.
-- Adds changelog to page.
-- Sort changelog by version, newer at top.
-- Splits demo template to small testable parts.
-- Handles separator in pair-block values.
-- Untangles frontend code from back.
-- Groups all scripts into a namespace.
-- Refactors project work as a JavaScript library.
-- Marks namespace-global variables for clarity.

- 2024_0910
-- Adds spaced divider lines. e.g. '* * *'.

- 2024_0909
-- Adds tab sections to front end (CSS only).
-- Re-styles front end.
-- Adds 'about' (project) to front end.

- 2024_0906 .
-- Trims trailing spaces from lines.
-- Uses (!) for box tag.
-- Uses any input title variable as HTML title.
-- Uses any input title variable as save name.

- 2024_0905
-- Uploads early alpha.

- 2024_0904
-- Styles frontend, minimally.
-- Fixes a regex to make block settings not greedy.
-- Tweaks match logic for front matter block.
-- Handles front matter values that include ': '.
-- Adds download buttons: input, output, both.zip.
-- Pads right of header only if character not ' '.
-- Preserves whitespace-only values in variables.
-- Calculates and shows byte/KB weight of output.
-- Shows how to make a table cell empty.
-- Adds T.O.C block: key left, dots, value right.
-- Adds template system: logic, loader, examples.
-- Tells variable swapper to not expect ')' in key.
-- Punctuates and presents frontend example text.
-- Adds 'no script' notice.
-- Adds copyright notices and comments etc.
-- Links to author page.
-- Adds light and dark mode to frontend.
-- Sets max line width (90ch), documents range.

- 2024_0903
-- Parses consecutive divider-lines correctly.
-- Splits long headers over multiple lines.
-- Narrows multi-line headers to look centered.
-- Tweaks 'surround header' instruction. now '=h'.
-- Makes header uppercase if 'H '. leaves if 'h '.
-- Adds header underlining via 'h=' 'h-'.
-- Makes border styles easier to change on backend.
-- Enables blank lines in 3 column block columns.
-- Lets front matter instruct tool e.g. line width.
-- Lets pair tag set key and value alignment & case.
-- Prevents rules acting on already converted data.
--- Stores converted block. returns a placeholder.
--- Swaps placeholder for stored block at end.
-- Tweaks pair-block multi-line and align logic.
-- Starts a changelog, logs work in approx. order.
-- Adds a template document to demo a use case.
-- Keeps converted blocks accessible via console.
-- Clears any data from previous run per run.
-- Hides gap in table top border if table unnamed.

- 2024_0902
-- Adds pairs block: to present 'key: value' data.
-- Add variables: use front matter values in file.
-- Adds easy column align to 3 column block (3=rcl).
-- Adds align right block: (r)lines(/r).
-- Transposes tables with '(grid x)' side by side.

- 2024_0901
-- Adds ^uppercase^ & $s p a c e d$ (temp tokens).
-- Adds basic interface with live update.
-- Splits mono-file project to: HTML, JS, CSS.
-- Adds comment tag '// ' to omit text from output.
-- Adds front matter block for document meta data.
-- Adds list block. 
-- Breaks long list item over indented lines.
-- Splits long text line into multiple lines.
-- Adds box block: hard wraps long lines and title.
-- Adds 3-column-line feature 'left  middle  right'.
-- Hard wraps long data in 3-column-line column.
-- Gives 3-column-line closing tag:(3)c1  c2  c3(/3).
-- Swaps 3-column-delimiter: (3)col1()col2()col3(/3).
-- Lets each 3-column-block column hold new lines.
-- Adds table block for data free of line-breaks.