{"id":301,"date":"2019-01-07T02:46:58","date_gmt":"2019-01-07T01:46:58","guid":{"rendered":"https:\/\/hpjansson.org\/blag\/?p=301"},"modified":"2022-06-19T00:34:02","modified_gmt":"2022-06-18T22:34:02","slug":"the-worst-ansi-renderer-except-for-all-the-others","status":"publish","type":"post","link":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/","title":{"rendered":"The worst ANSI art renderer, except for all the others"},"content":{"rendered":"<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"https:\/\/i.imgur.com\/2RLD6MO.gif\" width=\"480\" height=\"504\"><\/p>\n<p><a href=\"\/chafa\/\">Chafa<\/a> (<a href=\"https:\/\/github.com\/hpjansson\/chafa\">github<\/a>) started out as a small piece of supporting code for an obscure personal project I may announce at some indefinite point in the future. Then I <a href=\"https:\/\/hpjansson.org\/blag\/2018\/04\/24\/introducing-chafa\/\">decided<\/a> to release it as a tongue-in-cheek thing for the VT100 anniversary last year, and, well&#8230; it gathered a bit of steam.<\/p>\n<h2>Chafa 1.0<\/h2>\n<p>Since I'm not one to leave well enough alone, I packaged it up over the holidays for the 1.0 <a href=\"https:\/\/github.com\/hpjansson\/chafa\/releases\">release<\/a>. It brings a pile of improvements, e.g. new symbol ranges like ASCII and Braille, better image preprocessing and a new <code>--fill<\/code> option for halftone\/dithering. It's also, like, real fast now, and the build is much less brittle.<\/p>\n<p>Big thanks to everyone who contributed to this release: <a href=\"https:\/\/github.com\/kilobyte\">Adam Borowski<\/a>, <a href=\"https:\/\/github.com\/felixonmars\">Felix Yan<\/a>, <a href=\"https:\/\/github.com\/lalyos\">Lajos Papp<\/a>, <a href=\"https:\/\/github.com\/cdluminate\">Mo Zhou<\/a>, <a href=\"https:\/\/github.com\/rarguello\">Ricardo Arguello<\/a>, <a href=\"https:\/\/github.com\/eclipseo\">Robert-Andr\u00e9 Mauchin<\/a>, <a href=\"https:\/\/github.com\/dcb314\">@dcb314<\/a> and @medusacle.<\/p>\n<p>You'll find <a href=\"https:\/\/pkgs.org\/download\/chafa\">packages<\/a> out there for Arch, Debian, Fedora, <a href=\"https:\/\/packages.gentoo.org\/packages\/media-gfx\/chafa\">Gentoo<\/a> and Ubuntu now; check your repositories. Extra big thanks to the package maintainers.<\/p>\n<p>As the post title implies, I think Chafa is now the least bad tool in this tiny but tradition-rich niche. So what's so not-quite-terrible about it?<\/p>\n<h2>Only the best for your aixterm<\/h2>\n<p>If you've been around text terminals for a while, you'll know what this means:<\/p>\n<p align=\"center\"><a href=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/01\/terminal-palette-tango.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-310 size-full\" title=\"16 colors\" src=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/01\/terminal-palette-tango.png\" alt=\"16 colors\" width=\"329\" height=\"83\"><\/a><\/p>\n<p>Up until fairly recently, the most colorful terminal applications would operate within the confines of some variant of the above palette, and many still do. It's a nice and distinct (not to mention cheerful) set of colors, but it's not a great match for most image material you'll come across, which makes legible Chafa output a challenge. And that is precisely why I had to try (here with a <a href=\"https:\/\/web.archive.org\/web\/20180328052246if_\/http:\/\/baaad.com.au\/resources\/P4048.JPG?timestamp=1396074690936\" rel=\"nofollow\">nice woodblock print<\/a>):<\/p>\n<p align=\"center\"><a href=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/01\/chafa-examples-preproc.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-306 size-full\" title=\"ANSI art variations\" src=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/01\/chafa-examples-preproc.png\" alt=\"ANSI art variations\" width=\"766\" height=\"550\"><\/a><\/p>\n<p>The top left image is the best reproduction you can get with Chafa using a modern 24-bit color terminal emulator (in this case, GNOME Terminal) at 60 characters wide. At top right is the 16-color mapping you get without applying any tricks; this is pretty close to the mark given the muted moonlight colors of the input image, but it doesn't make good use of our palette, nor does it convey the essence of the scene very well. Blue sky, rolling hills, green grass. A shady waterfront pavilion. Given our limitations, the output will look nothing like the original anyway, so we're better off trying to capture the gist of it.<\/p>\n<p>We do this simply by cranking up the contrast and saturation to levels where our cheerful old palette can do a decent job (bottom left). Chafa no longer relies on ImageMagick for this, so it's available in the <a href=\"https:\/\/hpjansson.org\/chafa\/ref\/\">library API<\/a>, and integer-only math makes it performant enough to run in real time on animations and video (more on this in a later post, perhaps).<\/p>\n<p>It gets even better if you do color assignment in DIN99d space (bottom right), but that's way slow, so you have to explicitly enable it.<\/p>\n<h2>No ANSI? No problem<\/h2>\n<p align=\"center\"><a href=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/01\/chafa-examples-noansi.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter wp-image-311 size-full\" title=\"Braille and ASCII art\" src=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/01\/chafa-examples-noansi.png\" alt=\"Braille and ASCII art\" width=\"762\" height=\"274\"><\/a><\/p>\n<p>You can generate varied output without any color codes at all. The above examples also demonstrate use of the <code>--fg<\/code> option, which, along with <code>--bg<\/code>, exists to tell Chafa what your terminal's default colors look like so it can target those, but is equally useful for tweaking monochrome output thresholds.<\/p>\n<p>So if for some reason your terminal can't handle ANSI or you still have one of those warm &amp; fuzzy monochrome tubes sitting around, we've got you covered. Or break out your civil rights-era dot-matrix printer and make some precision banners to hang in your lab!<\/p>\n<p align=\"center\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium\" src=\"\/chafa\/img\/example-3.gif\" width=\"481\" height=\"289\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Chafa (github) started out as a small piece of supporting code for an obscure personal project I may announce at some indefinite point in the future. Then I decided to release it as a tongue-in-cheek thing for the VT100 anniversary &hellip;<\/p>\n","protected":false},"author":1,"featured_media":491,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11,6],"tags":[20,19,22,21,39],"class_list":["post-301","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-computing","category-technical","tag-ansi-art","tag-chafa","tag-release","tag-terminal-graphics","tag-textmode"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>The worst ANSI art renderer, except for all the others - Et tu, Cthulhu<\/title>\n<meta name=\"description\" content=\"A tool that lets you render beautiful graphics in both modern and classic terminal environments; this is the version 1.0 release announcement.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The worst ANSI art renderer, except for all the others - Et tu, Cthulhu\" \/>\n<meta property=\"og:description\" content=\"A tool that lets you render beautiful graphics in both modern and classic terminal environments; this is the version 1.0 release announcement.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/\" \/>\n<meta property=\"og:site_name\" content=\"Et tu, Cthulhu\" \/>\n<meta property=\"article:published_time\" content=\"2019-01-07T01:46:58+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-18T22:34:02+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png\" \/>\n\t<meta property=\"og:image:width\" content=\"488\" \/>\n\t<meta property=\"og:image:height\" content=\"310\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Hans Petter Jansson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@hpj\" \/>\n<meta name=\"twitter:site\" content=\"@hpj\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hans Petter Jansson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/\"},\"author\":{\"name\":\"Hans Petter Jansson\",\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c\"},\"headline\":\"The worst ANSI art renderer, except for all the others\",\"datePublished\":\"2019-01-07T01:46:58+00:00\",\"dateModified\":\"2022-06-18T22:34:02+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/\"},\"wordCount\":581,\"commentCount\":9,\"publisher\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c\"},\"image\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png\",\"keywords\":[\"ansi art\",\"chafa\",\"release\",\"terminal graphics\",\"textmode\"],\"articleSection\":[\"Computing\",\"Technical\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/\",\"url\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/\",\"name\":\"The worst ANSI art renderer, except for all the others - Et tu, Cthulhu\",\"isPartOf\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png\",\"datePublished\":\"2019-01-07T01:46:58+00:00\",\"dateModified\":\"2022-06-18T22:34:02+00:00\",\"description\":\"A tool that lets you render beautiful graphics in both modern and classic terminal environments; this is the version 1.0 release announcement.\",\"breadcrumb\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#primaryimage\",\"url\":\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png\",\"contentUrl\":\"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png\",\"width\":488,\"height\":310},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/hpjansson.org\/blag\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The worst ANSI art renderer, except for all the others\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/hpjansson.org\/blag\/#website\",\"url\":\"https:\/\/hpjansson.org\/blag\/\",\"name\":\"Et tu, Cthulhu\",\"description\":\"Personal blag of Hans Petter Jansson: Fun with computers edition\",\"publisher\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/hpjansson.org\/blag\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c\",\"name\":\"Hans Petter Jansson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/33402e5005b34e5ee4ba4f9fd0c5d754f4505d5fb455736e5c585676cb7f2075?s=96&d=retro&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/33402e5005b34e5ee4ba4f9fd0c5d754f4505d5fb455736e5c585676cb7f2075?s=96&d=retro&r=g\",\"caption\":\"Hans Petter Jansson\"},\"logo\":{\"@id\":\"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/image\/\"},\"sameAs\":[\"https:\/\/hpjansson.org\/\",\"https:\/\/x.com\/hpj\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"The worst ANSI art renderer, except for all the others - Et tu, Cthulhu","description":"A tool that lets you render beautiful graphics in both modern and classic terminal environments; this is the version 1.0 release announcement.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/","og_locale":"en_US","og_type":"article","og_title":"The worst ANSI art renderer, except for all the others - Et tu, Cthulhu","og_description":"A tool that lets you render beautiful graphics in both modern and classic terminal environments; this is the version 1.0 release announcement.","og_url":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/","og_site_name":"Et tu, Cthulhu","article_published_time":"2019-01-07T01:46:58+00:00","article_modified_time":"2022-06-18T22:34:02+00:00","og_image":[{"width":488,"height":310,"url":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png","type":"image\/png"}],"author":"Hans Petter Jansson","twitter_card":"summary_large_image","twitter_creator":"@hpj","twitter_site":"@hpj","twitter_misc":{"Written by":"Hans Petter Jansson","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#article","isPartOf":{"@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/"},"author":{"name":"Hans Petter Jansson","@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c"},"headline":"The worst ANSI art renderer, except for all the others","datePublished":"2019-01-07T01:46:58+00:00","dateModified":"2022-06-18T22:34:02+00:00","mainEntityOfPage":{"@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/"},"wordCount":581,"commentCount":9,"publisher":{"@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c"},"image":{"@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#primaryimage"},"thumbnailUrl":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png","keywords":["ansi art","chafa","release","terminal graphics","textmode"],"articleSection":["Computing","Technical"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/","url":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/","name":"The worst ANSI art renderer, except for all the others - Et tu, Cthulhu","isPartOf":{"@id":"https:\/\/hpjansson.org\/blag\/#website"},"primaryImageOfPage":{"@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#primaryimage"},"image":{"@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#primaryimage"},"thumbnailUrl":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png","datePublished":"2019-01-07T01:46:58+00:00","dateModified":"2022-06-18T22:34:02+00:00","description":"A tool that lets you render beautiful graphics in both modern and classic terminal environments; this is the version 1.0 release announcement.","breadcrumb":{"@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#primaryimage","url":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png","contentUrl":"https:\/\/hpjansson.org\/blag\/wp-content\/uploads\/2019\/08\/chafa-logo-still.png","width":488,"height":310},{"@type":"BreadcrumbList","@id":"https:\/\/hpjansson.org\/blag\/2019\/01\/07\/the-worst-ansi-renderer-except-for-all-the-others\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/hpjansson.org\/blag\/"},{"@type":"ListItem","position":2,"name":"The worst ANSI art renderer, except for all the others"}]},{"@type":"WebSite","@id":"https:\/\/hpjansson.org\/blag\/#website","url":"https:\/\/hpjansson.org\/blag\/","name":"Et tu, Cthulhu","description":"Personal blag of Hans Petter Jansson: Fun with computers edition","publisher":{"@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/hpjansson.org\/blag\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/a86f9dc39a36a8184d6e6f9a759f235c","name":"Hans Petter Jansson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/33402e5005b34e5ee4ba4f9fd0c5d754f4505d5fb455736e5c585676cb7f2075?s=96&d=retro&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/33402e5005b34e5ee4ba4f9fd0c5d754f4505d5fb455736e5c585676cb7f2075?s=96&d=retro&r=g","caption":"Hans Petter Jansson"},"logo":{"@id":"https:\/\/hpjansson.org\/blag\/#\/schema\/person\/image\/"},"sameAs":["https:\/\/hpjansson.org\/","https:\/\/x.com\/hpj"]}]}},"_links":{"self":[{"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/posts\/301","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/comments?post=301"}],"version-history":[{"count":25,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/posts\/301\/revisions"}],"predecessor-version":[{"id":776,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/posts\/301\/revisions\/776"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/media\/491"}],"wp:attachment":[{"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/media?parent=301"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/categories?post=301"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hpjansson.org\/blag\/wp-json\/wp\/v2\/tags?post=301"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}