{"ok":true,"site":{"host":"flatwrite.md","url":"https://flatwrite.md/","desc":"A minimalist markdown editor with live preview, paged document layout, and one-click export to HTML, PDF, or shareable URL.","type":"live","category":"Productivity & Work","favicon":"/favicons/flatwrite.md.svg","tools":[{"name":"render_markdown","kind":"action","impl":"imperative","description":"Render raw markdown into FlatWrite-styled HTML <head> and <body> fragments, with optional typography and page-layout controls. Returns { head, body } — head is CSS to inject, body is the document fragment.","inputSchema":{"type":"object","properties":{"markdown":{"type":"string","description":"Raw markdown content to render"},"framework":{"type":"string","enum":["spectre","poshui","pico","milligram","chota"],"description":"Optional UI framework applied when surfaceMode=\"app\"."},"fontFamily":{"type":"string","enum":["Inter","JetBrains Mono","Lato","Lora","Merriweather","Playfair Display","Comfortaa","Unbounded"],"description":"Optional font family — must be a bundled family. Defaults to Inter."},"fontSize":{"oneOf":[{"type":"string","description":"Scale token (e.g. \"-1\", \"0\", \"1\")"},{"type":"number","description":"Absolute pixel value (8..72)"}],"description":"Optional font size","minimum":8,"maximum":72},"fontWeight":{"oneOf":[{"type":"string","description":"Scale token (e.g. \"-1\", \"0\")"},{"type":"number","description":"Absolute weight (100..900, multiples of 100)"}],"description":"Optional font weight","minimum":100,"maximum":900},"lineHeight":{"oneOf":[{"type":"string","description":"Scale token (e.g. \"-1\", \"0\", \"1\")"},{"type":"number","description":"Absolute multiplier (0.8..4.0)"}],"description":"Optional line height","minimum":0.8,"maximum":4},"uiZoom":{"type":"number","description":"Optional UI zoom level (1.0 = default; >1 zooms in, <1 zooms out)","minimum":0.25,"maximum":4},"pageSize":{"type":"string","enum":["A0","A1","A2","A3","A4","A5","Letter","Legal"],"description":"Optional page size for paged output."},"orientation":{"type":"string","enum":["portrait","landscape"],"description":"Optional page orientation"},"marginsLR":{"type":"string","enum":["narrow","normal","wide"],"description":"Optional left/right page margin preset."},"marginsTB":{"type":"string","enum":["narrow","normal","wide"],"description":"Optional top/bottom page margin preset."},"footer":{"type":"boolean","description":"Optional: include a page-number footer in paged output"},"width":{"type":"number","description":"Optional content width in pixels (400..1400)","minimum":400,"maximum":1400},"docEngine":{"type":"string","enum":["none","pagedjs","vivliostyle"],"description":"Optional document engine — \"none\" emits plain CSS; \"pagedjs\"/\"vivliostyle\" wrap the output in @page rules."},"surfaceMode":{"type":"string","enum":["doc","app"],"description":"Optional surface mode — \"doc\" or \"app\". \"app\" unlocks the framework picker."},"theme":{"type":"string","description":"Optional theme identifier (e.g. \"light\" or \"dark\") rendered as body[data-theme=\"...\"]."}},"required":["markdown"]},"executable":true,"handlerField":"execute"},{"name":"render_markdown_from_url","kind":"action","impl":"imperative","description":"Fetch markdown from an allowlisted URL (raw.githubusercontent.com, raw.gitlab.com, bitbucket.org) and render it into FlatWrite-styled HTML <head> and <body> fragments, with the same optional typography and page-layout controls as render_markdown. Returns { head, body }.","inputSchema":{"type":"object","properties":{"markdownUrl":{"type":"string","format":"uri","description":"URL pointing to raw markdown content. Must be on an allowlisted host (raw.githubusercontent.com, raw.gitlab.com, bitbucket.org). The deprecated alias `url` is still accepted."},"framework":{"type":"string","enum":["spectre","poshui","pico","milligram","chota"],"description":"Optional UI framework applied when surfaceMode=\"app\"."},"fontFamily":{"type":"string","enum":["Inter","JetBrains Mono","Lato","Lora","Merriweather","Playfair Display","Comfortaa","Unbounded"],"description":"Optional font family — must be a bundled family. Defaults to Inter."},"fontSize":{"oneOf":[{"type":"string","description":"Scale token (e.g. \"-1\", \"0\", \"1\")"},{"type":"number","description":"Absolute pixel value (8..72)"}],"description":"Optional font size","minimum":8,"maximum":72},"fontWeight":{"oneOf":[{"type":"string","description":"Scale token (e.g. \"-1\", \"0\")"},{"type":"number","description":"Absolute weight (100..900, multiples of 100)"}],"description":"Optional font weight","minimum":100,"maximum":900},"lineHeight":{"oneOf":[{"type":"string","description":"Scale token (e.g. \"-1\", \"0\", \"1\")"},{"type":"number","description":"Absolute multiplier (0.8..4.0)"}],"description":"Optional line height","minimum":0.8,"maximum":4},"uiZoom":{"type":"number","description":"Optional UI zoom level (1.0 = default; >1 zooms in, <1 zooms out)","minimum":0.25,"maximum":4},"pageSize":{"type":"string","enum":["A0","A1","A2","A3","A4","A5","Letter","Legal"],"description":"Optional page size for paged output."},"orientation":{"type":"string","enum":["portrait","landscape"],"description":"Optional page orientation"},"marginsLR":{"type":"string","enum":["narrow","normal","wide"],"description":"Optional left/right page margin preset."},"marginsTB":{"type":"string","enum":["narrow","normal","wide"],"description":"Optional top/bottom page margin preset."},"footer":{"type":"boolean","description":"Optional: include a page-number footer in paged output"},"width":{"type":"number","description":"Optional content width in pixels (400..1400)","minimum":400,"maximum":1400},"docEngine":{"type":"string","enum":["none","pagedjs","vivliostyle"],"description":"Optional document engine — \"none\" emits plain CSS; \"pagedjs\"/\"vivliostyle\" wrap the output in @page rules."},"surfaceMode":{"type":"string","enum":["doc","app"],"description":"Optional surface mode — \"doc\" or \"app\". \"app\" unlocks the framework picker."},"theme":{"type":"string","description":"Optional theme identifier (e.g. \"light\" or \"dark\") rendered as body[data-theme=\"...\"]."}},"required":["markdownUrl"]},"executable":true,"handlerField":"execute"}],"apiSurface":"spec","_scrape":{"etag":null,"lastModified":null,"scrapedAt":"2026-06-30T12:18:02.500Z"},"toolCount":2}}