{"id":31877800,"url":"https://github.com/fletcher/multimarkdown-6","last_synced_at":"2025-10-12T23:26:11.226Z","repository":{"id":46294473,"uuid":"79412744","full_name":"fletcher/MultiMarkdown-6","owner":"fletcher","description":"(MultiMarkdown-7 is now in pre-release development here on GitHub","archived":false,"fork":false,"pushed_at":"2025-02-22T00:57:56.000Z","size":11096,"stargazers_count":671,"open_issues_count":39,"forks_count":97,"subscribers_count":46,"default_branch":"develop","last_synced_at":"2025-10-12T13:59:12.076Z","etag":null,"topics":["html","latex","markdown","markdown-parsing","mmd","multimarkdown"],"latest_commit_sha":null,"homepage":"https://github.com/fletcher/MultiMarkdown-7","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fletcher.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-01-19T03:46:11.000Z","updated_at":"2025-10-05T15:42:54.000Z","dependencies_parsed_at":"2023-02-09T12:46:44.096Z","dependency_job_id":"af005c86-d8da-43eb-8e17-003896808a5f","html_url":"https://github.com/fletcher/MultiMarkdown-6","commit_stats":{"total_commits":769,"total_committers":10,"mean_commits":76.9,"dds":0.0273081924577373,"last_synced_commit":"9472e8e3d6faf481956d18e3c2b6f3cf57872bc7"},"previous_names":[],"tags_count":38,"template":false,"template_full_name":null,"purl":"pkg:github/fletcher/MultiMarkdown-6","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fletcher%2FMultiMarkdown-6","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fletcher%2FMultiMarkdown-6/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fletcher%2FMultiMarkdown-6/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fletcher%2FMultiMarkdown-6/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fletcher","download_url":"https://codeload.github.com/fletcher/MultiMarkdown-6/tar.gz/refs/heads/develop","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fletcher%2FMultiMarkdown-6/sbom","scorecard":{"id":403099,"data":{"date":"2025-08-11","repo":{"name":"github.com/fletcher/MultiMarkdown-6","commit":"8b81672c2355c41296773ece36077558b3fe7adf"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":3.1,"checks":[{"name":"Maintained","score":0,"reason":"0 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"Code-Review","score":0,"reason":"Found 2/28 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/ci.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"Vulnerabilities","score":10,"reason":"0 existing vulnerabilities detected","details":null,"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 6.7.0 not signed: https://api.github.com/repos/fletcher/MultiMarkdown-6/releases/108124923","Warn: release artifact 6.6.0 not signed: https://api.github.com/repos/fletcher/MultiMarkdown-6/releases/33175424","Warn: release artifact 6.5.2 not signed: https://api.github.com/repos/fletcher/MultiMarkdown-6/releases/25398122","Warn: release artifact 6.5.1 not signed: https://api.github.com/repos/fletcher/MultiMarkdown-6/releases/22499433","Warn: release artifact 6.7.0 does not have provenance: https://api.github.com/repos/fletcher/MultiMarkdown-6/releases/108124923","Warn: release artifact 6.6.0 does not have provenance: https://api.github.com/repos/fletcher/MultiMarkdown-6/releases/33175424","Warn: release artifact 6.5.2 does not have provenance: https://api.github.com/repos/fletcher/MultiMarkdown-6/releases/25398122","Warn: release artifact 6.5.1 does not have provenance: https://api.github.com/repos/fletcher/MultiMarkdown-6/releases/22499433"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'develop'","Warn: branch protection not enabled for branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/fletcher/MultiMarkdown-6/ci.yml/develop?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/fletcher/MultiMarkdown-6/ci.yml/develop?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 4 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}}]},"last_synced_at":"2025-08-18T20:32:35.273Z","repository_id":46294473,"created_at":"2025-08-18T20:32:35.273Z","updated_at":"2025-08-18T20:32:35.273Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279013465,"owners_count":26085274,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-12T02:00:06.719Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["html","latex","markdown","markdown-parsing","mmd","multimarkdown"],"created_at":"2025-10-12T23:26:07.186Z","updated_at":"2025-10-12T23:26:11.220Z","avatar_url":"https://github.com/fletcher.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"## About ##\n\n|            |                           |  \n| ---------- | ------------------------- |  \n| Title:     | libMultiMarkdown        |  \n| Author:    | Fletcher T. Penney       |  \n| Date:      | 2023-06-10 |  \n| Copyright: | Copyright © 2016 - 2023 Fletcher T. Penney.    |  \n| Version:   | 6.7.0      |  \n\nmaster branch: [![Build Status](https://travis-ci.org/fletcher/MultiMarkdown-6.svg?branch=master)](https://travis-ci.org/fletcher/MultiMarkdown-6)  \ndevelop branch: [![Build Status](https://travis-ci.org/fletcher/MultiMarkdown-6.svg?branch=develop)](https://travis-ci.org/fletcher/MultiMarkdown-6)\n\n## An Announcement! ##\n\nMultiMarkdown v6 is finally here!  If you want more information about\ntesting, see `DevelopmentNotes`.  \n\nIf you want to more know about the differences from v5, see the `QuickStart`\nguide.\n\n\n## Obtaining MultiMarkdown ##\n\nYou can download the latest installer for MacOS or Windows at Github:\n\n\u003chttps://github.com/fletcher/MultiMarkdown-6/releases\u003e\n\nTo build from source, download from Github.  Then:\n\n\tmake release\n\t(OR)\n\tmake debug\n\n\tcd build\n\tmake\n\nYou can optionally test using the test suite:\n\n\tctest\n\n\n### Xcode\n\nIn order to use libMultiMarkdown in your Xcode project:\n\n1.\t`cd` into the root of your Xcode project folder (where the `.xcodeproj` file\n\tresides).\n\n2.\tAdd this project as a git submodule:\n\n\t\tgit submodule add https://github.com/fletcher/MultiMarkdown-6 MultiMarkdown-6\n\n3.\tCompile:\n\n\t\tcd MultiMarkdown-6\n\t\tmake xcode\n\n4.\tDrag the `build-xcode/MultiMarkdown.xcodeproj` file to the root of your\n\tXcode project as a subproject.\n\n5.\tSelect the `MultiMarkdown` subproject, select the `libMultiMarkdown` target,\n\tand in Build Phases \u003e Copy Files select Products Directory from the\n\tDestination popup menu.\n\n6.\tSelect your root project, select your target, add `libMultiMarkdown` under\n\tTarget Depencies and `libMultiMarkdown.framework/libMultiMarkdown` and\n\t`libcurl.tdb` under Link Binary with Libraries.\n\nWarning: if you move the project on disk or update the MultiMarkdown source\nfiles, you need to rerun step 3 above.\n\nYou can now `#import \u003clibMultiMarkdown/libMultiMarkdown.h\u003e`. To get you started,\nhere is (untested) demonstration code that converts a `NSString` to HTML:\n\n\ttoken_pool_init(); // needs to be done once per app lifecycle - PLEASE READ token.h!!!!!!!!!!!\n\n\tNSString *input = @\"Test *string* for **demonstration**.\";\n\tconst char *cString = [input cStringUsingEncoding:NSUTF8StringEncoding];\n\tconst char *mmd = mmd_string_convert(cString, EXT_SMART | EXT_NOTES | EXT_CRITIC | EXT_TRANSCLUDE, FORMAT_HTML, ENGLISH);\n\tNSString *output = [[NSString alloc] initWithCString:mmd encoding:NSUTF8StringEncoding];\n\n\t// Cleanup\n\tfree(mmd); \n\ttoken_pool_drain();\t\t// again, PLEASE READ token.h!!!!!!\n\ttoken_pool_free();\n\nThere are 3 main versions of the primary functions:\n\n* `mmd_string...`: start from source text in c string\n* `mmd_d_string...`: start from a DString (Useful if you already use DString's for your text)\n* `mmd_engine...`: useful when you are processing the same source multiple times\n\nThe C string variants are as follows:\n\n\t// Convert OPML string to MMD\n\tDString * mmd_string_convert_opml_to_text(const char * source);\n\n\t// Convert ITMZ string to MMD\n\tDString * mmd_string_convert_itmz_to_text(const char * source);\n\n\t// Convert MMD text to specified format, with specified extensions, and language\n\t// Returned char * must be freed\n\tchar * mmd_string_convert(const char * source, unsigned long extensions, short format, short language);\n\n\t// Convert MMD text to specified format using DString as a container for block of data\n\t// and length of that block.  Must be used for \"complex\" output formats such as EPUB.\n\t// Returned DString * must be freed\n\tDString * mmd_string_convert_to_data(const char * source, unsigned long extensions, short format, short language, const char * directory);\n\n\t// Convert MMD text and write results to specified file -- used for \"complex\" output formats requiring\n\t// multiple documents (e.g. EPUB)\n\tvoid mmd_string_convert_to_file(const char * source, unsigned long extensions, short format, short language, const char * directory, const char * filepath);\n\n\t// Does the text have metadata?\n\tbool mmd_string_has_metadata(char * source, size_t * end);\n\n\t// Return metadata keys, one per line\n\t// Returned char * must be freed\n\tchar * mmd_string_metadata_keys(char * source);\n\n\t// Extract desired metadata as string value\n\t// Returned char * must be freed\n\tchar * mmd_string_metavalue_for_key(char * source, const char * key);\n\n\t// Insert/replace metadata in string, returning new string\n\tchar * mmd_string_update_metavalue_for_key(const char * source, const char * key, const char * value);\n\n\t// Grab list of all transcluded files, but we need to know directory to search,\n\t// as well as the path to the file\n\t// Returned stack needs to be freed\n\tstruct stack * mmd_string_transclusion_manifest(const char * source, const char * search_path, const char * source_path);\n\nThe following enums can be used for the parameters `language`, `format` and `extensions`:\n\n\tenum smart_quotes_language {\n\t\tENGLISH = 0,\n\t\tDUTCH,\n\t\tFRENCH,\n\t\tGERMAN,\n\t\tGERMANGUILL,\n\t\tSPANISH,\n\t\tSWEDISH,\n\t};\n\n\tenum output_format {\n\t\tFORMAT_HTML,\n\t\tFORMAT_EPUB,\n\t\tFORMAT_LATEX,\n\t\tFORMAT_BEAMER,\n\t\tFORMAT_MEMOIR,\n\t\tFORMAT_FODT,\n\t\tFORMAT_ODT,\n\t\tFORMAT_TEXTBUNDLE,\n\t\tFORMAT_TEXTBUNDLE_COMPRESSED,\n\t\tFORMAT_OPML,\n\t\tFORMAT_ITMZ,\n\t\tFORMAT_MMD,\n\t};\n\n\tenum parser_extensions {\n\t\tEXT_COMPATIBILITY       = 1 \u003c\u003c 0,    //!\u003c Markdown compatibility mode\n\t\tEXT_COMPLETE            = 1 \u003c\u003c 1,    //!\u003c Create complete document\n\t\tEXT_SNIPPET             = 1 \u003c\u003c 2,    //!\u003c Create snippet only\n\t\tEXT_SMART               = 1 \u003c\u003c 3,    //!\u003c Enable Smart quotes\n\t\tEXT_NOTES               = 1 \u003c\u003c 4,    //!\u003c Enable Footnotes\n\t\tEXT_NO_LABELS           = 1 \u003c\u003c 5,    //!\u003c Don't add anchors to headers, etc.\n\t\tEXT_PROCESS_HTML        = 1 \u003c\u003c 6,    //!\u003c Process Markdown inside HTML\n\t\tEXT_NO_METADATA         = 1 \u003c\u003c 7,    //!\u003c Don't parse Metadata\n\t\tEXT_OBFUSCATE           = 1 \u003c\u003c 8,    //!\u003c Mask email addresses\n\t\tEXT_CRITIC              = 1 \u003c\u003c 9,    //!\u003c Critic Markup Support\n\t\tEXT_CRITIC_ACCEPT       = 1 \u003c\u003c 10,   //!\u003c Accept all proposed changes\n\t\tEXT_CRITIC_REJECT       = 1 \u003c\u003c 11,   //!\u003c Reject all proposed changes\n\t\tEXT_RANDOM_FOOT         = 1 \u003c\u003c 12,   //!\u003c Use random numbers for footnote links\n\t\tEXT_TRANSCLUDE          = 1 \u003c\u003c 13,   //!\u003c Perform transclusion(s)\n\t\tEXT_PARSE_OPML          = 1 \u003c\u003c 14,   //!\u003c Convert from OPML before processing source text\n\t\tEXT_PARSE_ITMZ\t\t\t= 1 \u003c\u003c 15,   //!\u003c Convert from ITMZ (iThoughts) before processing source text\n\t\tEXT_RANDOM_LABELS\t\t= 1 \u003c\u003c 16,   //!\u003c Use random numbers for header labels (unless manually defined)\n\t\tEXT_FAKE                = 1 \u003c\u003c 31,   //!\u003c 31 is highest number allowed\n\t};\n\n\n## Differences in the MultiMarkdown Syntax ##\n\nMultiMarkdown v6 is mostly about making a better MMD parser, but it involves a\nfew changes to the MultiMarkdown syntax itself.\n\n1.\tSetext headers can consist of more than one line to be included in the\nheader:\n\n\t\tThis is\n\t\ta header\n\t\t========\n\n2.\tWhitespace is not allowed between the text brackets and label brackets in\nreference links, images, footnotes, etc.  For example `[foo] [bar]` will no\nlonger be the same as `[foo][bar]`.\n\n3.\tLink and image titles can be quoted with `'foo'`, `\"foo\"`, or `(foo)`.\nLink attributes can be used in both reference and inline links/images.\n\n4.\tHTML elements are handled slightly differently.  There is no longer a\n`markdown=\"1\"` feature.  Instead, HTML elements that are on a line by\nthemselves will open an HTML block that will cause the rest of the \"paragraph\"\nto be treated as HTML such that Markdown will not be parsed in side of it.\nHTML block-level tags are even \"stronger\" at starting an HTML block.  It is\nnot quite as complex as the approach used in CommonMark, but is similar under\nmost circumstances.  Leaving a blank line after the opening tag will allow\nMultiMarkdown parsing inside of the HTML block.\n\n\tFor example, this would not be parsed:\n\n\t\t\u003cdiv\u003e\n\t\t*foo*\n\t\t\u003c/div\u003e\n\n\tBut this would be:\n\n\t\t\u003cdiv\u003e\n\n\t\t*foo*\n\n\t\t\u003c/div\u003e\n\n5.\t\"Malformed\" reference link definitions are handled slightly differently.\nFor example, the test suite file `Reference Footnotes.text` is parsed\ndifferently in compatibility mode than MMD-5.  This started as a side-effect\nof the parsing algorithm, but I actually think it makes sense.  This may or\nmay not change in the future.\n\n6.\tTable captions in MMD-6 must come immediately *after* the table, not\nbefore it.\n\n7.\tEscaped linebreaks (`\\` preceding a line break) will be interpreted as\n`\u003cbr /\u003e` (even in compatibility mode).  This was previously an optional\nfeature in MMD, but I don't see a problem with just making it default \nbehavior.\n\n8.\tEscaped spaces (`\\ `) will be interpreted as a non-breaking space, if the\noutput format supports it.\n\n9.\tCriticMarkup, Abbreviations, Glossary Terms, and Citations are handled\nslightly differently.  See the QuickStart guide for more information.\n\n10.\tFenced code blocks can use leading/trailing \"fences\" of 3, 4, or 5\nbackticks in length.  That should be sufficient for complex documents without\nrequiring a more complex parser.  If there is no trailing fence, then the\nfenced block is considered to go through the end of the document.\n\n11.\tEmph and Strong parsing is conceptually the same, but the implementation\nis different.  It is designed for speed, accuracy, and consistency.  In\ngeneral, it seems to handle edge cases much more reliably, but there are still\na couple of situations that I would like to take into account, if possible.\nThese are not situations that should occur often in \"real life.\"\n\n12.\tEPUB 3 output is supported without need of any external tools.\n\n13.\tInternationalization support for HTML phrases, such as \"see footnote\". See\n[Github](https://github.com/fletcher/MultiMarkdown-6/issues/37) for more\ninformation.\n\n\n\n## License ##\n\n\tThe `MultiMarkdown 6` project is released under the MIT License..\n\t\n\tGLibFacade.c and GLibFacade.h are from the MultiMarkdown v4 project:\n\t\n\t\thttps://github.com/fletcher/MultiMarkdown-4/\n\t\n\tMMD 4 is released under both the MIT License and GPL.\n\t\n\t\n\tCuTest is released under the zlib/libpng license. See CuTest.c for the\n\ttext of the license.\n\t\n\tuthash library:\n\t\tCopyright (c) 2005-2016, Troy D. Hanson\n\t\n\t\tLicensed under Revised BSD license\n\t\n\tminiz library:\n\t\tCopyright 2013-2014 RAD Game Tools and Valve Software\n\t\tCopyright 2010-2014 Rich Geldreich and Tenacious Software LLC\n\t\n\t\tLicensed under the MIT license\n\t\n\targtable3 library:\n\t\tCopyright (C) 1998-2001,2003-2011,2013 Stewart Heitmann\n\t\t\u003csheitmann@users.sourceforge.net\u003e\n\t\tAll rights reserved.\n\t\n\t\tLicensed under the Revised BSD License\n\t\n\t\n\t## The MIT License ##\n\t\n\tPermission is hereby granted, free of charge, to any person obtaining\n\ta copy of this software and associated documentation files (the\n\t\"Software\"), to deal in the Software without restriction, including\n\twithout limitation the rights to use, copy, modify, merge, publish,\n\tdistribute, sublicense, and/or sell copies of the Software, and to\n\tpermit persons to whom the Software is furnished to do so, subject to\n\tthe following conditions:\n\t\n\tThe above copyright notice and this permission notice shall be\n\tincluded in all copies or substantial portions of the Software.\n\t\n\tTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n\tEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n\tMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n\tIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n\tCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n\tTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n\tSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\t\n\t\n\t## Revised BSD License ##\n\t\n\tRedistribution and use in source and binary forms, with or without\n\tmodification, are permitted provided that the following conditions are\n\tmet:\n\t    * Redistributions of source code must retain the above copyright\n\t      notice, this list of conditions and the following disclaimer.\n\t    * Redistributions in binary form must reproduce the above\n\t      copyright notice, this list of conditions and the following\n\t      disclaimer in the documentation and/or other materials provided\n\t      with the distribution.\n\t    * Neither the name of the \u003corganization\u003e nor the\n\t      names of its contributors may be used to endorse or promote\n\t      products derived from this software without specific prior\n\t      written permission.\n\t\n\tTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n\t\"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n\tLIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n\tA PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL \u003cCOPYRIGHT\n\tHOLDER\u003e BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,\n\tEXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,\n\tPROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE, DATA, OR\n\tPROFITS OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\n\tLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\n\tNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n\tSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\t\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffletcher%2Fmultimarkdown-6","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffletcher%2Fmultimarkdown-6","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffletcher%2Fmultimarkdown-6/lists"}