{"id":19657803,"url":"https://github.com/gdatasoftwareag/funcydown","last_synced_at":"2025-04-28T19:32:33.561Z","repository":{"id":45925429,"uuid":"178870134","full_name":"GDATASoftwareAG/FuncyDown","owner":"GDATASoftwareAG","description":"A simple functional library to create Markdown files.","archived":false,"fork":false,"pushed_at":"2024-09-23T10:10:27.000Z","size":109,"stargazers_count":44,"open_issues_count":0,"forks_count":2,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-06T04:40:37.335Z","etag":null,"topics":["fable","fsharp","markdown"],"latest_commit_sha":null,"homepage":"","language":"F#","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/GDATASoftwareAG.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":"2019-04-01T13:32:03.000Z","updated_at":"2024-09-29T03:04:21.000Z","dependencies_parsed_at":"2023-02-10T09:55:12.501Z","dependency_job_id":null,"html_url":"https://github.com/GDATASoftwareAG/FuncyDown","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GDATASoftwareAG%2FFuncyDown","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GDATASoftwareAG%2FFuncyDown/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GDATASoftwareAG%2FFuncyDown/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GDATASoftwareAG%2FFuncyDown/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GDATASoftwareAG","download_url":"https://codeload.github.com/GDATASoftwareAG/FuncyDown/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":224129366,"owners_count":17260614,"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","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":["fable","fsharp","markdown"],"created_at":"2024-11-11T15:33:44.154Z","updated_at":"2024-11-11T15:33:45.066Z","avatar_url":"https://github.com/GDATASoftwareAG.png","language":"F#","funding_links":[],"categories":[],"sub_categories":[],"readme":"![FuncyDown Logo](https://github.com/GDATASoftwareAG/FuncyDown/blob/master/resource/linkedin_banner_image_1.png?raw=true \"Markdown - FuncyDown\")\n\n[![license](https://img.shields.io/github/license/GDATASoftwareAG/FuncyDown.svg)](https://raw.githubusercontent.com/GDATASoftwareAG/FuncyDown/master/LICENSE)\n[![NuGet](https://img.shields.io/nuget/v/FuncyDown.svg)](https://www.nuget.org/packages/FuncyDown/)\n[![NuGet](https://img.shields.io/nuget/dt/FuncyDown.svg)](https://www.nuget.org/packages/FuncyDown/)\n[![Build](https://img.shields.io/azure-devops/build/gdatasoftware/FuncyDown/4.svg)](https://dev.azure.com/gdatasoftware/FuncyDown/_build?definitionId=4)\n[![Test](https://img.shields.io/azure-devops/tests/gdatasoftware/FuncyDown/4.svg)](https://dev.azure.com/gdatasoftware/FuncyDown/_build?definitionId=4)\n        \n\nFuncyDown is a very simple library to create Markdown files written in F#. The readme you are currently reading is generated with FuncyDown.\n\n## How to use\n\nThese examples show how to use FuncyDown in your application to create a Markdown file.\n\n### Headers\n\nYou can easily add headers of different size to your Markdown document.\n\n```fsharp\n\nopen FuncyDown.Element\nopen FuncyDown.Document\n\nemptyDocument\n|\u003e addH1 \"Header size 1\"\n|\u003e addH2 \"Header size 2\"\n|\u003e addH3 \"Header size 3\"\n|\u003e addH4 \"Header size 4\"\n|\u003e addH5 \"Header size 5\"\n|\u003e addH6 \"Header size 6\"\n|\u003e addHeader H3 \"Header of specific size (example 3)\"\n        \n```\n### Working with text\n\nThere are several option to work with text.\n\n```fsharp\n\nemptyDocument\n|\u003e addParagraph \"Text to put into an paragraph.\" \n|\u003e addEmphasis \"Text to emphasize (italic).\"\n|\u003e addStrongEmphasis \"Text to strongly emphasize (bold)\"\n|\u003e addStrikeThrough \"Text to strike through.\"\n        \n```\n### Tables\n\nAdding a table is also very easy.\n\n```fsharp\n\nlet headers = [\"Header 1\"; \"Header 2\"; \"Header 3\"]\nlet rows =\n    [\n        [\"Content\"; \"Content\"; \"Content\"]\n        [\"Content\"; \"Content\"; \"Content\"]\n        [\"Content\"; \"Content\"; \"Content\"]\n    ]\n           \n        \nemptyDocument\n|\u003e addTable headers rows\n        \n```\n### Lists\n\nYou can create ordered and unordered list with sub-items.\n\n```fsharp\n\nlet items = \n    [\n        {Text = \"Level 0 item.\"; Intend = 0}\n        {Text = \"Level 1 item.\"; Intend = 1}\n        {Text = \"Level 2 item.\"; Intend = 2}\n        {Text = \"Level 0 item.\"; Intend = 0}\n    ]\n\nemptyDocument \n|\u003e addUnorderedList items\n|\u003e addOrderedList items\n        \n```\n### Links and Images\n\nYou can add a link to an internal or external reference and to images which will be displayed in the Markdown document.\n\n```fsharp\n\nemptyDocument\n|\u003e addLink {Text = \"Some link text\"; Target = \"https://.../index.html\"; Title = Some(\"Optional title\")}\n|\u003e addImage {AltText = \"Some link text\"; Target = \"https://.../image.png\"; Title = Some(\"Optional title\")}\n        \n```\n### Code\n\nTo add code, you have two option. Either as in-line code or as a code block.\n\n```fsharp\n\nemptyDocument\n|\u003e addInlineCode {Code = \"Inline code\"; Language = None}\n|\u003e addBlockCode {Code = \"Inline code\"; Language = Some(\"fsharp\")}\n        \n```\n### Block Quote\n\nSometimes it's useful to have a block quote to highlight some text or quote a source.\n\n```fsharp\n\nemptyDocument\n|\u003e addBlockQuote \"Text to quote.\"\n        \n```\n### Horizontal Rule\n\nTo add a simple horizontal rule use the code below.\n\n```fsharp\n\nemptyDocument\n|\u003e addHorizontalRule\n        \n```\n### Create Document from elements\n\nAs an alternative to the pipe operator, the `toDoc` function can be used to construct a Markdown document.\n\n```fsharp\n\nlet document = Document.toDoc [\n    addH1 \"FuncyDown is fancy!\"\n    addParagraph \"Lemonade was a popular drink, and it still is!\"\n]\n        \n```\n### Render Document\n\nThe render function writes directly to a Markdown string.\n\n```fsharp\n\nlet markdown = Document.render [\n  addH1 \"FuncyDown is fancy!\"\n  addParagraph \"Lemonade was a popular drink, and it still is!\"\n]\n        \n```\n### Export to string\n\nTo save the generated Markdown document on disk or use it otherwise, you can export the document to a formatted Markdown string.\n\n```fsharp\n\n...\nmarkdownDocument |\u003e asString\n        \n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdatasoftwareag%2Ffuncydown","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgdatasoftwareag%2Ffuncydown","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgdatasoftwareag%2Ffuncydown/lists"}