{"id":27633768,"url":"https://github.com/djaus2/meltdown","last_synced_at":"2026-03-01T10:33:16.577Z","repository":{"id":46107164,"uuid":"427880792","full_name":"djaus2/Meltdown","owner":"djaus2","description":"A simple to code and use Markup language making much use of brackets","archived":false,"fork":false,"pushed_at":"2022-02-27T02:40:03.000Z","size":358,"stargazers_count":2,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-11-27T13:26:47.182Z","etag":null,"topics":["markup","markup-converter","markup-language"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/djaus2.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-11-14T08:58:54.000Z","updated_at":"2021-12-28T00:20:18.000Z","dependencies_parsed_at":"2022-08-27T03:23:19.641Z","dependency_job_id":null,"html_url":"https://github.com/djaus2/Meltdown","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/djaus2/Meltdown","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djaus2%2FMeltdown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djaus2%2FMeltdown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djaus2%2FMeltdown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djaus2%2FMeltdown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/djaus2","download_url":"https://codeload.github.com/djaus2/Meltdown/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/djaus2%2FMeltdown/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29966832,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T09:33:09.965Z","status":"ssl_error","status_checked_at":"2026-03-01T09:25:48.915Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["markup","markup-converter","markup-language"],"created_at":"2025-04-23T18:19:31.527Z","updated_at":"2026-03-01T10:33:16.560Z","avatar_url":"https://github.com/djaus2.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Meltdown V2.2.0\n\n\u003chr/\u003e\n\n**NB: _27th Feb 2022_ https://davidjones.sportronics.com.au is fixed now. Thx**\n\n\u003chr/\u003e\n\nA simple to code and use Markup language making much use of brackets.\n\nThe key point is to bracket the text that is to be formatted. Also, some line\nbased content is simple to annotate with some characters at the start of the\nline.\n\n\u003cb\u003e Now available on Nuget: \u003c/b\u003e https://www.nuget.org/packages/Meltdown/  \n```Install-Package Meltdown -Version 2.2.0```\n\n[Also, see blog posts on Meltdown](https://davidjones.sportronics.com.au/search.html?query=Meltdown)\n\n## Updates\n\n1.  A second version of the class that formalises the functionality making it  \n    easy to change the delimiters used. Also key steps (font color and links)  \n    are a separate functions. Uses the schema as below.\n\n2.  Test app has some test strings.\n\n3.  Implemented headings. eg,   \n    `[[2]]At start of line` becomes  \n    `\u003ch2\u003eAt start of Line\u003c/h2\u003e`\n\n4.  This page has been refined such that only one schema is presented, as  \n    adopted and only one class in the code that implements this.`\n    \n5.  Simple lists -\u003cspace\u003e and -\u003ctab\u003e at start now work. One level only.  \n    And Exntended multi level list too. Lines start with ((n)) where n is line level.\n    \n6.  Table Header row starts with ((T)) Headings are a Csv list  \n    Table data rows start with ((t)). Cell data is a Csv list\n\n7.  Added BlazTest a Blazor Server App with which you can compose or paste text that then then gets parsed by Meltdown. \n    Shows the rendered Html as well. Some samples on offer like the console Test app as well.\n8.  Meltdown class separated into 2 files with delimeters in the second file.\n9.  (V2.0) Color just uses ((..|..)) and links use \u003c\u003c..}..\u003e\u003e\n10. Two Markdown Syntaxes included: Links and Headings\n11. BlazTest has send email Test page.\n12. Functionally the same as previous except added:\n     ```!! translates to \u003cbr/\u003e```\n      and significant rework of coding structure.\n13.  Bold-Italics etc combinations: The order of [,( and { don't matter for openning delimiter but closing should mirror it.\n## Context\n\nWhen implementing **SendMail** functionality with C\\# code, for example in a\nBlazor app, you can send unformatted text or text formatted with HTML tags. HTML\ntags are though not simple for a luddite. Alternatively, one could provide a\nMarkdown parser to generate HTML tags. Meltdown is meant to be a simple to\nimplement markup as a parser that outputs HTML, that makes much use of brackets.\n\n## The Acid Tests\n\n1.  Can the markup syntax be implemented in, say, C\\#, by a 102 level student?\n\n2.  Is the formatting easier than Markdown to use by a non-programmer?\n\n## Specification\n\nThe generated content is HTML so\n\n-   The source content is in the main, Text.\n-   **Meltdown** is line based with no state passed between lines\n\n-   HTML can be seamlessly embedded in a page, and so is unmodified by the\n    parser.\n\n-   Certain start and end bracket sequences HTML format the internal text by\n    replacing the brackets with the required HTML begin and end tags.\n\n-   The brackets are used in pairs so that a sequence consisting of an open\n    bracket, close bracket and text in between is unchanged.\n\n-   Open brackets are combinations of [ ( and {\n\n-   The corresponding close brackets are a mirroring pair of } ) and ]\n\n-   For example: [[Hello there]] will translate to \\\u003cb\\\u003eHello there\\\u003c/b\\\u003e\n\n-   Where a parameter is required, or the sequence is in two parts a \\| is used\n    as a separator.\n\n-   Formatting tags can be combined with inner text of a Meltdown tag conforming\n    to another tag. But 3 character bracketing tags are defined explicitly for\n    often some combinations.\n\n-   Desirable: Text can be written in Word and with simple modification be used\n    with a copy a paste as Meltdown.\n-   Some additional features are indicated by 5 characters at start of the a line:  \n    Headings [[n]], Multilevel list ((n)) and Table ((T/t))\n\n**Nb 1:** Bold, italics and underline formats are a pair of [,{ or {. Other\ncombinations are used for pairs of these format. A delimiter consisting of all 3\nis used for a format involving all 3.\n\n**Nb 2:** Markdown syntax has also been implemented also been implemented for\nsome other entities; currently for HTML links.[](*%3curl%3e*)\n\n| Format                 | Markup                             | Notes                                                          |\n|------------------------|------------------------------------|----------------------------------------------------------------|\n| Bold                   | ```[[text]]```                     |                                                                |\n| Italics                | ```((text))```                     |                                                                |\n| UnderLine              | ```{{text}}```                     |                                                                |\n| Bold-Italics           | ```[(text)]```                     | *Order doesn't matter but closing delimiter should mirror openning one.* |\n| Bold-Underline         | ```[{text}]```                     | *Order doesn't matter but closing delimiter should mirror openning one.* |\n| Italics-Underline      | ```({text})```                     | *Order doesn't matter but closing delimiter should mirror openning one.* |\n| Bold-Italics-Underline | ```[({text})]```                   | *Order doesn't matter but closing delimiter should mirror openning one.* |\n| Font Color             | ```((color name\\|text))``` |   Nb: Only a subset of HTML colors accepted. See [code](https://github.com/djaus2/Meltdown/blob/master/Meltdown/Meltdown/Meltdown.cs)                          |\n| Links                  | ```\u003c\u003curl\u003e\u003e```                    |                                                                |\n| ,,                     | ```\u003c\u003clink text\\|url\u003e\u003e```  |       \n| Heading                | ```[[n]]``` at start of line             |  where n=1..9 eg ```[[2]]Heading Level 2```                    |\n| Bullet List            | ```-space``` or ```-tab``` at start of line    | Only one level of list                                         |\n| List Multilevel        | ```((n))``` at start of line             | where n=1..9   _See example at bottom_                         |\n| Table                  | ```((T))``` at start of each line        | Table Header row. Headings are Csv list.                       |\n|  ,,                    | ```((t))``` at start of each line        | Table Data row. Cells are a Csv list                           |\n|  New line  | ```!!``` | Anywhere in text translates to \u0026lt;br/\u0026gt; |\n \n## Test App Output:\n\n```\n[[1]]Heading Level 1\n\u003ch1\u003eHeading Level 1\u003c/h1\u003e\n\nAA[[This is Bold]]BB\n\n\u003cp\u003eAA\u003cb\u003eThis is Bold\u003c/b\u003eBB\u003c/p\u003e\n\nAA((This is Italics))BB\n\n\u003cp\u003eAA\u003ci\u003eThis is Italics\u003c/i\u003eBB\u003c/p\u003e\n\nAA{{This is Underline}}BB\n\n\u003cp\u003eAA\u003cu\u003eThis is Underline\u003c/u\u003eBB\u003c/p\u003e\n\nAA((red|This is red))BB((blue|This is blue))CC\n\n\u003cp\u003eAA\u003cfont color=\"Red\"\u003eThis is red\u003c/font\u003eBB\u003cfont color=\"Blue\"\u003eThis is blue\u003c/font\u003eCC\u003c/p\u003e\n\nAA[({This is bold italics and underline})]BB\n\n\u003cp\u003eAA\u003cb\u003e\u003ci\u003e\u003cu\u003eThis is bold italics and underline\u003c/u\u003e\u003c/i\u003e\u003c/b\u003eBB\u003c/p\u003e\n\nAA\u003c\u003chttps://sportronics.com.au\u003e\u003eBB\n\n\u003cp\u003eAA\u003ca href= \"https://sportronics.com.au\"\u003ehttps://sportronics.com.au\u003c/a\u003eBB\u003c/p\u003e\n\nAA\u003c\u003cClick here|https://sportronics.com.au\u003e\u003eBB\n\n\u003cp\u003eAA\u003ca href= \"https://sportronics.com.au\"\u003eClick here\u003c/a\u003eBB\u003c/p\u003e\n```\n\n\u003ch1\u003eHeading Level 1\u003c/h1\u003e\n\n\u003cp\u003eAA\u003cb\u003eThis is Bold\u003c/b\u003eBB\u003c/p\u003e\n\n\u003cp\u003eAA\u003ci\u003eThis is Italics\u003c/i\u003eBB\u003c/p\u003e\n\n\u003cp\u003eAA\u003ca href= \"https://sportronics.com.au\"\u003ehttps://sportronics.com.au\u003c/a\u003eBB\u003c/p\u003e\n\n\u003cp\u003eAA\u003ca href= \"https://sportronics.com.au\"\u003eClick here\u003c/a\u003eBB\u003c/p\u003e\n\n```\n- Simple list line one\n-       Simple list line 2 with tab\n- Simple list line three\n-       Simple list line 4 with tab\n\n\u003cul\u003e\n\u003cli\u003eSimple list line one\u003c/li\u003e\n\u003cli\u003eSimple list line 2 with tab\u003c/li\u003e\n\u003cli\u003eSimple list line three\u003c/li\u003e\n\u003cli\u003eSimple list line 4 with tab\u003c/li\u003e\n\u003c/ul\u003e\n```\n\u003cul\u003e\n\u003cli\u003eSimple list line one\u003c/li\u003e\n\u003cli\u003eSimple list line 2 with tab\u003c/li\u003e\n\u003cli\u003eSimple list line three\u003c/li\u003e\n\u003cli\u003eSimple list line 4 with tab\u003c/li\u003e\n\u003c/ul\u003e\n\n```\n((1)) Extended list level one\n((1)) Extended list level 1\n((2)) Extended list level two\n((3)) Extended list level three\n((2)) Extended list level two\n((1)) Extended list level one\n\n\u003cul\u003e\n\u003cli\u003e Extended list level one\n\u003c/li\u003e\n\u003cli\u003e Extended list level 1\n\u003cul\u003e\n\u003cli\u003e Extended list level two\n\u003cul\u003e\n\u003cli\u003e Extended list level three\n\u003c/ul\u003e\u003c/li\u003e\n\u003cli\u003e Extended list level two\u003c/li\u003e\n\u003c/ul\u003e\u003c/li\u003e\n\u003cli\u003e Extended list level one\u003c/li\u003e\n\u003c/ul\u003e\n```\n\u003cul\u003e\n\u003cli\u003e Extended list level one\n\u003c/li\u003e\n\u003cli\u003e Extended list level 1\n\u003cul\u003e\n\u003cli\u003e Extended list level two\n\u003cul\u003e\n\u003cli\u003e Extended list level three\n\u003c/ul\u003e\u003c/li\u003e\n\u003cli\u003e Extended list level two\u003c/li\u003e\n\u003c/ul\u003e\u003c/li\u003e\n\u003cli\u003e Extended list level one\u003c/li\u003e\n\u003c/ul\u003e\n\n```\n((T))Name,Age,Country\n((t))Fred,23,Australia\n((t))Sue,45,USA\n((t))John,21,NZ\n   \n\u003ctable\u003e\n\u003cth\u003e\u003ctd\u003eName\u003c/td\u003e\u003ctd\u003eAge\u003c/td\u003e\u003ctd\u003eCountry\u003c/td\u003e\u003c/th\u003e\n\u003ctr\u003e\u003ctd\u003eFred\u003c/td\u003e\u003ctd\u003e23\u003c/td\u003e\u003ctd\u003eAustralia\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eSue\u003c/td\u003e\u003ctd\u003e45\u003c/td\u003e\u003ctd\u003eUSA\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eJohn\u003c/td\u003e\u003ctd\u003e21\u003c/td\u003e\u003ctd\u003eNZ\u003c/td\u003e\u003c/tr\u003e\n\u003c/table\n```\n\u003ctable\u003e\n\u003ctr\u003e\u003cth\u003eName\u003c/th\u003e\u003cth\u003eAge\u003c/th\u003e\u003cth\u003eCountry\u003c/th\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eFred\u003c/td\u003e\u003ctd\u003e23\u003c/td\u003e\u003ctd\u003eAustralia\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eSue\u003c/td\u003e\u003ctd\u003e45\u003c/td\u003e\u003ctd\u003eUSA\u003c/td\u003e\u003c/tr\u003e\n\u003ctr\u003e\u003ctd\u003eJohn\u003c/td\u003e\u003ctd\u003e21\u003c/td\u003e\u003ctd\u003eNZ\u003c/td\u003e\u003c/tr\u003e\n    \u003c/table\u003e \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjaus2%2Fmeltdown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdjaus2%2Fmeltdown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdjaus2%2Fmeltdown/lists"}