{"id":6617,"date":"2020-10-23T14:43:14","date_gmt":"2020-10-23T14:43:14","guid":{"rendered":"https:\/\/www.garysieling.com\/blog\/?p=6617"},"modified":"2020-10-23T14:43:14","modified_gmt":"2020-10-23T14:43:14","slug":"generate-an-svg-sunburst-from-javascript","status":"publish","type":"post","link":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/","title":{"rendered":"Generate an SVG sunburst from JavaScript"},"content":{"rendered":"\n<p>I want to generate a sunburst to use with a laser-cutting service, like below:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1141\" height=\"1030\" src=\"https:\/\/www.garysieling.com\/blog\/wp-content\/uploads\/2020\/10\/download-3-1141x1030.png\" alt=\"\" class=\"wp-image-6618\" srcset=\"https:\/\/www.garysieling.com\/blog\/wp-content\/uploads\/2020\/10\/download-3-1141x1030.png 1141w, https:\/\/www.garysieling.com\/blog\/wp-content\/uploads\/2020\/10\/download-3-300x271.png 300w, https:\/\/www.garysieling.com\/blog\/wp-content\/uploads\/2020\/10\/download-3-768x693.png 768w, https:\/\/www.garysieling.com\/blog\/wp-content\/uploads\/2020\/10\/download-3.png 1482w\" sizes=\"(max-width: 767px) 89vw, (max-width: 1000px) 54vw, (max-width: 1071px) 543px, 580px\" \/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>This has a couple of important features:<\/p>\n\n\n\n<ul><li>It&#8217;s a single path, for the laser to use<\/li><li>The rays on the sun can intersect a bounding box, including the corners<\/li><li>This will produce two interlocking parts (e.g. for printmaking, these can be inked separately, and combined) <\/li><\/ul>\n\n\n\n<p>The code is below &#8211; this works with Paper.js:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">var postyle = { fillColor:'grey', strokeColor: 'black'}\n\nconst size = 200;\nconst rect = [0, 0, [ size, size]];\nconst ratio = 0.25;\nconst radius = size * ratio;\nconst spokes = 48;\nconst pi = 3.14;\n\nconst center = [0, 0]\n\nvar path = new paper.Path();\npath.strokeColor = \"#000\";\npath.closed = true;\n\nfunction ip(a) {\n    return [\n        radius * Math.cos(a),\n        radius * Math.sin(a)\n    ];\n}\n\nfunction intersect(x1, y1, x2, y2, mixX, minY, maxX, maxY) {\n    var point = rectangleIntersect(maxX - x1, maxY - y1, x2 - x1, y2 - y1);\n    return point &amp;&amp; { x: point.x + x1, y: point.y + y1 };\n}\n\nfunction rectangleIntersect(w, h, x, y) {\n    var sx = x > 0 ? 1 : -1;\n    var sy = y > 0 ? 1 : -1;\n\n    x *= sx;\n    y *= sy;\n\n    if (x &lt; w &amp;&amp; y &lt; h) return null;\n\n    var m = x * h;\n    var n = y * w;\n\n    if (m &lt; n) w = m \/ y;\n    if (m > n) h = n \/ x;\n\n    return [ Math.round( sx * w ), Math.round(sy * h ) ];\n}\n\nfunction outer(a) {\n    return rectangleIntersect(\n        size,\n        size,\n        100000 * Math.cos(a) + size\/2,\n        100000 * Math.sin(a) + size\/2,\n    );\n}\n\nfunction maybeCorner(p1, p2, a1) {\n    const corners = [\n        [1 * size, -1 * size],\n        [1 * size, 1 * size],\n        [-1 * size, 1 * size],\n        [-1 * size, -1 * size], \n    ];\n    \n    if (p1[0] != p2[0] &amp;&amp; \n        p1[1] != p2[1]) {\n        const idx = Math.round(2*a1\/pi) % 4;\n        return corners[idx];\n    }\n}\n\nfor (let i = 0; i &lt; spokes; i++) {\n    const a1 = pi \/ spokes * (2 * i);\n    const a2 = pi \/ spokes * (2 * i + 1);\n    \n    const inner1 = ip(a1);\n    const inner2 = ip(a2);\n    const outer1 = outer(a1);\n    const outer2 = outer(a2);\n    \n    const points = [\n        inner1, \n        outer1,\n        maybeCorner(outer1, outer2, a1),\n        outer2,\n        inner2].filter(\n        (p) => !!p        \n    );\n        \n    points.map(\n        ([x, y]) => {\n            path.add(new paper.Point(x + center[0], y + center[1]));\n        });\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>I want to generate a sunburst to use with a laser-cutting service, like below: This has a couple of important features: It&#8217;s a single path, for the laser to use The rays on the sun can intersect a bounding box, including the corners This will produce two interlocking parts (e.g. for printmaking, these can be &hellip; <\/p>\n<p class=\"link-more\"><a href=\"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Generate an SVG sunburst from JavaScript&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"footnotes":""},"categories":[1],"tags":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"I want to generate a sunburst to use with a laser-cutting service, like below: This has a couple of important features: It&#039;s a single path, for the laser to useThe rays on the sun can intersect a bounding box, including the cornersThis will produce two interlocking parts (e.g. for printmaking, these can be inked separately,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"gary\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Gary Sieling - Software Engineer\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Generate an SVG sunburst from JavaScript - Gary Sieling\" \/>\n\t\t<meta property=\"og:description\" content=\"I want to generate a sunburst to use with a laser-cutting service, like below: This has a couple of important features: It&#039;s a single path, for the laser to useThe rays on the sun can intersect a bounding box, including the cornersThis will produce two interlocking parts (e.g. for printmaking, these can be inked separately,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-23T14:43:14+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-23T14:43:14+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Generate an SVG sunburst from JavaScript - Gary Sieling\" \/>\n\t\t<meta name=\"twitter:description\" content=\"I want to generate a sunburst to use with a laser-cutting service, like below: This has a couple of important features: It&#039;s a single path, for the laser to useThe rays on the sun can intersect a bounding box, including the cornersThis will produce two interlocking parts (e.g. for printmaking, these can be inked separately,\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#blogposting\",\"name\":\"Generate an SVG sunburst from JavaScript - Gary Sieling\",\"headline\":\"Generate an SVG sunburst from JavaScript\",\"author\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/download-3.png\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#articleImage\",\"width\":1482,\"height\":1338},\"datePublished\":\"2020-10-23T14:43:14+00:00\",\"dateModified\":\"2020-10-23T14:43:14+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#webpage\"},\"articleSection\":\"Uncategorized\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.garysieling.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/uncategorized\\\/#listItem\",\"name\":\"Uncategorized\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/uncategorized\\\/#listItem\",\"position\":2,\"name\":\"Uncategorized\",\"item\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/uncategorized\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#listItem\",\"name\":\"Generate an SVG sunburst from JavaScript\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#listItem\",\"position\":3,\"name\":\"Generate an SVG sunburst from JavaScript\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/category\\\/uncategorized\\\/#listItem\",\"name\":\"Uncategorized\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\",\"name\":\"Gary Sieling\",\"description\":\"Software Engineer\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/\",\"name\":\"gary\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0be925276d848ffe98a6a9dc8cf33e67?s=96&d=identicon&r=g\",\"width\":96,\"height\":96,\"caption\":\"gary\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#webpage\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/\",\"name\":\"Generate an SVG sunburst from JavaScript - Gary Sieling\",\"description\":\"I want to generate a sunburst to use with a laser-cutting service, like below: This has a couple of important features: It's a single path, for the laser to useThe rays on the sun can intersect a bounding box, including the cornersThis will produce two interlocking parts (e.g. for printmaking, these can be inked separately,\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/generate-an-svg-sunburst-from-javascript\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/author\\\/gary\\\/#author\"},\"datePublished\":\"2020-10-23T14:43:14+00:00\",\"dateModified\":\"2020-10-23T14:43:14+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/\",\"name\":\"Gary Sieling\",\"description\":\"Software Engineer\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.garysieling.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Generate an SVG sunburst from JavaScript - Gary Sieling","description":"I want to generate a sunburst to use with a laser-cutting service, like below: This has a couple of important features: It's a single path, for the laser to useThe rays on the sun can intersect a bounding box, including the cornersThis will produce two interlocking parts (e.g. for printmaking, these can be inked separately,","canonical_url":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#blogposting","name":"Generate an SVG sunburst from JavaScript - Gary Sieling","headline":"Generate an SVG sunburst from JavaScript","author":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"publisher":{"@id":"https:\/\/www.garysieling.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/www.garysieling.com\/blog\/wp-content\/uploads\/2020\/10\/download-3.png","@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#articleImage","width":1482,"height":1338},"datePublished":"2020-10-23T14:43:14+00:00","dateModified":"2020-10-23T14:43:14+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#webpage"},"isPartOf":{"@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#webpage"},"articleSection":"Uncategorized"},{"@type":"BreadcrumbList","@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog#listItem","position":1,"name":"Home","item":"https:\/\/www.garysieling.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/uncategorized\/#listItem","name":"Uncategorized"}},{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/uncategorized\/#listItem","position":2,"name":"Uncategorized","item":"https:\/\/www.garysieling.com\/blog\/category\/uncategorized\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#listItem","name":"Generate an SVG sunburst from JavaScript"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#listItem","position":3,"name":"Generate an SVG sunburst from JavaScript","previousItem":{"@type":"ListItem","@id":"https:\/\/www.garysieling.com\/blog\/category\/uncategorized\/#listItem","name":"Uncategorized"}}]},{"@type":"Organization","@id":"https:\/\/www.garysieling.com\/blog\/#organization","name":"Gary Sieling","description":"Software Engineer","url":"https:\/\/www.garysieling.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author","url":"https:\/\/www.garysieling.com\/blog\/author\/gary\/","name":"gary","image":{"@type":"ImageObject","@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/0be925276d848ffe98a6a9dc8cf33e67?s=96&d=identicon&r=g","width":96,"height":96,"caption":"gary"}},{"@type":"WebPage","@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#webpage","url":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/","name":"Generate an SVG sunburst from JavaScript - Gary Sieling","description":"I want to generate a sunburst to use with a laser-cutting service, like below: This has a couple of important features: It's a single path, for the laser to useThe rays on the sun can intersect a bounding box, including the cornersThis will produce two interlocking parts (e.g. for printmaking, these can be inked separately,","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.garysieling.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/#breadcrumblist"},"author":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"creator":{"@id":"https:\/\/www.garysieling.com\/blog\/author\/gary\/#author"},"datePublished":"2020-10-23T14:43:14+00:00","dateModified":"2020-10-23T14:43:14+00:00"},{"@type":"WebSite","@id":"https:\/\/www.garysieling.com\/blog\/#website","url":"https:\/\/www.garysieling.com\/blog\/","name":"Gary Sieling","description":"Software Engineer","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.garysieling.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"Gary Sieling - Software Engineer","og:type":"article","og:title":"Generate an SVG sunburst from JavaScript - Gary Sieling","og:description":"I want to generate a sunburst to use with a laser-cutting service, like below: This has a couple of important features: It's a single path, for the laser to useThe rays on the sun can intersect a bounding box, including the cornersThis will produce two interlocking parts (e.g. for printmaking, these can be inked separately,","og:url":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/","article:published_time":"2020-10-23T14:43:14+00:00","article:modified_time":"2020-10-23T14:43:14+00:00","twitter:card":"summary_large_image","twitter:title":"Generate an SVG sunburst from JavaScript - Gary Sieling","twitter:description":"I want to generate a sunburst to use with a laser-cutting service, like below: This has a couple of important features: It's a single path, for the laser to useThe rays on the sun can intersect a bounding box, including the cornersThis will produce two interlocking parts (e.g. for printmaking, these can be inked separately,"},"aioseo_meta_data":{"post_id":"6617","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2023-02-04 17:22:44","updated":"2026-07-06 02:36:37","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.garysieling.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.garysieling.com\/blog\/category\/uncategorized\/\" title=\"Uncategorized\">Uncategorized<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tGenerate an SVG sunburst from JavaScript\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.garysieling.com\/blog"},{"label":"Uncategorized","link":"https:\/\/www.garysieling.com\/blog\/category\/uncategorized\/"},{"label":"Generate an SVG sunburst from JavaScript","link":"https:\/\/www.garysieling.com\/blog\/generate-an-svg-sunburst-from-javascript\/"}],"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/6617"}],"collection":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/comments?post=6617"}],"version-history":[{"count":1,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/6617\/revisions"}],"predecessor-version":[{"id":6619,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/posts\/6617\/revisions\/6619"}],"wp:attachment":[{"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/media?parent=6617"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/categories?post=6617"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.garysieling.com\/blog\/wp-json\/wp\/v2\/tags?post=6617"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}