{"id":41114,"date":"2018-10-08T03:01:27","date_gmt":"2018-10-07T17:01:27","guid":{"rendered":"http:\/\/www.rjmprogramming.com.au\/ITblog\/?p=41114"},"modified":"2018-10-07T18:19:55","modified_gmt":"2018-10-07T08:19:55","slug":"emoji-background-to-text-external-javascript-tutorial","status":"publish","type":"post","link":"https:\/\/www.rjmprogramming.com.au\/ITblog\/emoji-background-to-text-external-javascript-tutorial\/","title":{"rendered":"Emoji Background to Text External Javascript Tutorial"},"content":{"rendered":"<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.htm\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Emoji Background to Text External Javascript Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text_ej.jpg\" title=\"Emoji Background to Text External Javascript Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Emoji Background to Text External Javascript Tutorial<\/p><\/div>\n<p>We like projects if and when they reach the stage where you can spend a day&#8217;s work on a web application just concentrating on external Javascript &#8220;thoughts&#8221;, as we prefer the event programming, anyday, to (that involving) the (CSS) styling and (HTML) design work.  Today&#8217;s work adding to yesterday&#8217;s <a title='Emoji Background to Text Primer Tutorial' href='#ebtpt'>Emoji Background to Text Primer Tutorial<\/a> was like that. This work primarily involved the relationship between &#8230;<\/p>\n<ul>\n<li>HTML <a target=_blank title='HTML div information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_div.asp'><i>div<\/i><\/a> <a target=_blank title='Global contenteditable attribute information from W3schools' href='https:\/\/www.w3schools.com\/tags\/att_global_contenteditable.asp'>contenteditable<\/a>=true element &#8230;<\/li>\n<li>\n<ol>\n<li><a target=_blank href='https:\/\/www.w3schools.com\/jsref\/prop_node_textcontent.asp' title='HTML textProperty property information from W3schools'>textContent<\/a><\/li>\n<li><a target=_blank href='https:\/\/www.w3schools.com\/jsref\/prop_node_innertext.asp' title='HTML innerText property information from W3schools'>innerText<\/a><\/li>\n<li><a target=_blank href='https:\/\/www.w3schools.com\/jsref\/prop_html_innerhtml.asp' title='HTML innerHTML property information from W3schools'>innerHTML<\/a><\/li>\n<\/ol>\n<\/li>\n<li> &#8230; property behaviours (with their cross browser and platform nuances &#8230; and we highly recommend a read of <a target=_blank title='Useful link' href='http:\/\/clubajax.org\/plain-text-vs-innertext-vs-textcontent\/'>this great link<\/a> for more ideas here), where the use of the first two, as far as the detection of carriage return\/line feed scenarios goes is infinitely more programmer friendly (but still has quirks) than &#8220;the last resort&#8221; innerHTML last fallback where HTML (within the div contenteditable=true innerHTML property) code snippets such as &lt;div&gt;&lt;br&gt;&lt;\/div&gt; are possible (not just with real carriage return\/line feed scenarios, but with space key keyboard events &#8230; &#8220;go figure&#8221; &#8230; which are <a target=_blank href='https:\/\/www.w3schools.com\/jsref\/event_onkeypress.asp'title='Javascript onkeypress event information from W3schools'>onkeypress<\/a> and <a target=_blank href='https:\/\/www.w3schools.com\/jsref\/event_onkeydown.asp'title='Javascript onkeydown event information from W3schools'>onkeydown<\/a> for all this work)<\/li>\n<\/ul>\n<p> &#8230; as well as external Javascript genericization to the point that an HTML file with the contents &#8230;<\/p>\n<p><code><br \/>\n&lt;script type='text\/javascript' src='\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.js'&gt;&lt;\/script&gt;<br \/>\n<\/code><\/p>\n<p> &#8230; placed onto a local ( Apache\/PHP\/MySql ) web server\u00a0like <a target=_blank title='MAMP for Apache\/PHP\/MySql on Mac OS X local web server' href='http:\/\/www.mamp.info'>MAMP<\/a> ( in its <a target=_blank href='https:\/\/www.google.com\/search?q=document+root&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-b-ab' title='Document root Google search'>Document Root<\/a> called emoji_background_text.htm and accessed at a web browser address bar via HTTP:\/\/localhost:8888\/emoji_background_text.htm ) will work &#8230;<\/p>\n<p> &#8230; and\/or, on Firefox (web browser) at least, at the web browser address bar the <a target=_blank title='Bookmarklet Google search' href='https:\/\/www.google.com\/search?q=bookmarklet&#038;ie=utf-8&#038;oe=utf-8&#038;client=firefox-b-ab'>bookmarklet<\/a> URL below can work &#8230;<\/p>\n<p><code><br \/>\n<a target=_blank title=\"javascript:var wo=window.open(); wo.document.write('<html><head><script type=text\/javascript src=HTTP:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.js><\/script><\/head><body><\/body><\/html>');\" href=\"javascript:var wo=window.open(); wo.document.write('<html><head><script type=text\/javascript src=HTTP:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.js><\/script><\/head><body><\/body><\/html>');\">javascript:var wo=window.open(); wo.document.write('&lt;html&gt;&lt;head&gt;&lt;script type=text\/javascript src=HTTP:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.js&gt;&lt;\/script&gt;&lt;\/head&gt;&lt;body&gt;&lt;\/body&gt;&lt;\/html&gt;');<\/a><br \/>\n<\/code><\/p>\n<p> &#8230; and\/or (still) your usual <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.htm\" title=\"Click picture\">live run<\/a> link approach we mostly adopt at this blog.  We hope you see improvements in the HTML div contenteditable=true behaviours when you use the &#8220;enter&#8221; keyboard key to place a carriage return\/line feed into the div element.<\/p>\n<p>External Javascript <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.js-GETME\" title=\"emoji_background_text.js\">code changes<\/a> (which feature some random Emoji selection code snippets inspired by <a target=_blank href='https:\/\/www.rjmprogramming.com.au\/ITblog\/emoji-random-slideshow-primer-tutorial\/' title='Emoji Random Slideshow Primer Tutorial'>Emoji Random Slideshow Primer Tutorial<\/a>, and, so often here at this blog, a few of the usual <a target=_blank title='Overlay tutorials at this blog' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/overlay'>&#8220;overlay&#8221;<\/a> usage &#8220;suspects&#8221; we like, like CSS <a target=_blank title='CSS position:absolute information from w3schools' href='http:\/\/www.w3schools.com\/cssref\/pr_class_position.asp'>position:absolute<\/a>&#8216;s <i>left<\/i> and <i>top<\/i> properties and good ol&#8217; <a target=_blank title='CSS opacity property information from w3schools' href='http:\/\/www.w3schools.com\/cssref\/css3_pr_opacity.asp'>opacity<\/a> make the whole Emojis as a &#8220;background&#8221; (rather than &#8220;foreground&#8221;) happen), then, with <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.js-GETME\" title=\"emoji_background_text.js\">emoji_background_text.js<\/a> code got us to a very generic setup, that shows that the concept of a web page can be so many things to so many things wanting to use it.  No wonder the Internet has &#8220;taken off&#8221; as a <a target=_blank title=\"Bill Gates book The Road Ahead information from Wikipedia ... thanks\" href=\"https:\/\/en.wikipedia.org\/wiki\/The_Road_Ahead_(Bill_Gates_book)\">&#8220;global information superhighway&#8221;<\/a> for so many people around the world.<\/p>\n<p>Thanks to <a target=_blank href='https:\/\/purpleprosearchive.wordpress.com\/2011\/04\/18\/charles-causley-i-am-the-song\/'>this great poetry link<\/a> for the inspiration behind today&#8217;s <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text_ej.jpg\">tutorial picture<\/a> construction.<\/p>\n<p><b><i>Did you know?<\/i><\/b><\/p>\n<p>Central to all the Emoji work on this project is the <a target=_blank title='String.fromCodepoint() function' href='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/fromCodePoint'>String.fromCodePoint()<\/a> Javascript function to dynamically add Emoji data into HTML elements via Javascript DOM methods.  This current web project, thanks to the &#8220;heads up&#8221; of this <a target=_blank title='Useful link' href='https:\/\/www.geeksforgeeks.org\/javascript-string-fromcodepoint\/'>great link<\/a>, got us constructing what we like to think of as &#8220;compound Emojis&#8221; we talked about at <a target=_blank title='Compound Emoji WordPress Usage Tutorial' href='https:\/\/www.rjmprogramming.com.au\/ITblog\/compound-emoji-wordpress-usage-tutorial\/'>Compound Emoji WordPress Usage Tutorial<\/a>, where we need <a target=_blank title='String.fromCodepoint() function' href='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/fromCodePoint'>String.fromCodePoint()<\/a> to be called with more than the one <a target=_blank title='Codepoint information' href='https:\/\/stackoverflow.com\/questions\/27331819\/whats-the-difference-between-a-character-a-code-point-a-glyph-and-a-grapheme'>codepoint<\/a> &#8230;<\/p>\n<blockquote cite='https:\/\/stackoverflow.com\/questions\/27331819\/whats-the-difference-between-a-character-a-code-point-a-glyph-and-a-grapheme'><p>\nA code point is the atomic unit of information. Text is a sequence of code points. Each code point is a number which is given meaning by the Unicode standard.\n<\/p><\/blockquote>\n<p> &#8230;  parameter we&#8217;d only ever used up to this web application project.  This tees up with global array values where a <b>period &#8220;.&#8221; delimiter<\/b> separates codepoint values &#8230;<\/p>\n<p><code><br \/>\n var cps=['11088','128301','127756','127968','127765','<b>9728.65039<\/b>', '9986', '128240', '129304', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1', '-1'];<br \/>\n<\/code><\/p>\n<p> &#8230; that each become parameters of the one call to the <a target=_blank title='String.fromCodepoint() function' href='https:\/\/developer.mozilla.org\/en-US\/docs\/Web\/JavaScript\/Reference\/Global_Objects\/String\/fromCodePoint'>String.fromCodePoint()<\/a> function to create a &#8220;compound Emoji&#8221;.<\/p>\n<hr>\n<p id='ebtpt'>Previous relevant <a target=_blank title='Emoji Background to Text Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/emoji-background-to-text-primer-tutorial\/'>Emoji Background to Text Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.htm\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"Emoji Background to Text Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.jpg\" title=\"Emoji Background to Text Primer Tutorial\"  \/><\/a><p class=\"wp-caption-text\">Emoji Background to Text Primer Tutorial<\/p><\/div>\n<p>We&#8217;ve always been interested in those effects like with those storybooks from (a lot of) our youths that had a special first letter of the story that was decorated.  We played around with this a bit when we presented <a title='LibreOffice Once Upon A Time Primer Tutorial' href='#loouatpt'>LibreOffice Once Upon A Time Primer Tutorial<\/a> some time back.  Well, today, we think, for starters, in these early days of the concept, to decorate all the letters of a webpage with Emoji backgrounds.<\/p>\n<p>We have a &#8220;getting there&#8221; starting effort <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.htm\" title=\"Click picture\">live run<\/a> for you today that started as &#8230;<\/p>\n<ul>\n<li>purely HTML and inline Javascript <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.html_GETME\" title=\"emoji_background_text.html\">emoji_background_text.html<\/a>&#8216;s (superceded) <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.html\" title=\"Click picture\">live run<\/a> until it tweaked with us that this is a perfect (generically suited) scenario to &#8230;<\/li>\n<li><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/PHP\/Geographicals\/diff.php?one=http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.html-GETME\" title=\"emoji_background_text.htm\">pare down<\/a> the HTML with script tag <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.html-GETME\" title=\"emoji_background_text.htm\">emoji_background_text.htm<\/a> pointing at external Javascript <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.js_GETME\" title=\"emoji_background_text.js\">emoji_background_text.js<\/a> as the impetus to view this project as a (mainly) &#8220;external Javascript tool project&#8221;<\/li>\n<\/ul>\n<p>As previously mentioned, these are &#8220;early days&#8221;, and am discovering the wonders of the workings, behind the scenes, that makes an HTML <a target=_blank title='HTML div information from w3schools' href='http:\/\/www.w3schools.com\/tags\/tag_div.asp'><i>div<\/i><\/a> <a target=_blank title='Global contenteditable attribute information from W3schools' href='https:\/\/www.w3schools.com\/tags\/att_global_contenteditable.asp'>contenteditable<\/a>=&#8221;true&#8221; element be that clever interactive piece of web application functionality that it is.  But there is more to learn regarding carriage return\/line feed scenarios.  In the meantime, try out <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/HTMLCSS\/emoji_background_text.htm\" title=\"Click picture\">the concept<\/a>.<\/p>\n<hr>\n<p id='loouatpt'>Previous relevant <a target=_blank title='LibreOffice Once Upon A Time Primer Tutorial' href='\/\/www.rjmprogramming.com.au\/ITblog\/libreoffice-once-upon-a-time-primer-tutorial\/'>LibreOffice Once Upon A Time Primer Tutorial<\/a> is shown below.<\/p>\n<div style=\"width: 230px\" class=\"wp-caption alignnone\"><a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/LibreOffice\/OnceUponATime\/\"><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"LibreOffice Once Upon A Time Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/LibreOffice\/OnceUponATime\/OnceUponATime-230of.jpg\" title=\"LibreOffice Once Upon A Time Primer Tutorial\"  \/><\/a><p class=\"wp-caption-text\">LibreOffice Once Upon A Time Primer Tutorial<\/p><\/div>\n<p>One of my students is getting very good at Word Processing.  Lately, her skills have been improving by being given the task of mimicking the look of pieces of hard copy documents with various levels of complexity.<\/p>\n<p>The other day we came across what we like to think of as the &#8230;<\/p>\n<p><b><i><span>O<sup>nce upon a time<\/sup><\/span><\/i><\/b><\/p>\n<p> &#8230; scenario, and try as we might fiddling with &#8220;top&#8221; justifications and font size adjustments we couldn&#8217;t get a good look in her &#8220;document processing&#8221; software to nicely (enough) line up the smaller font letters to the top of the bigger &#8220;O&#8221;.<\/p>\n<p>Were you annoyed by my &#8220;document processing&#8221; genericity?  Hope not, because, in our experience, for the vast majority of scenarios that matter for day to day usage, there is adequate functionality to achieve what you want in any of <a target=_blank title='Microsoft Office' href='http:\/\/www.microsoftstore.com\/BuyOffice\u200e'>Microsoft Office<\/a> or <a target=_blank title='LibreOffice' href='http:\/\/www.openoffice.org\/\u200e'>OpenOffice<\/a> or <a target=_blank title='LibreOffice' href='http:\/\/www.libreoffice.org\/\u200e'>LibreOffice<\/a>.  It just so happens today we work with LibreOffice, but, as we say, you&#8217;ll see the same things achievable in the other two &#8220;document processing&#8221; suites.<\/p>\n<p>Are you surprised if we tell you that the achievement of a neat looking <b><i><span>O<sup>nce upon a time<\/sup><\/span><\/i><\/b> in LibreOffice is quite difficult, we think, anyway?<\/p>\n<p>We think, though that the functionalities involved in achieving a solution revolve around &#8230;<\/p>\n<ul>\n<li>using tables &#8230; creation of, merging cells of, adjusting row heights of, adjusting column widths of, the use of hard break text with cells, adjusting properties (eg. turning on\/off borders)<\/li>\n<li>adjusting font sizes<\/li>\n<li>using Format-&gt;Character Subscript (and you&#8217;ll also find Superscript sometimes useful) &#8230; unticking Auto to release positioning functionality essential to the positioning of the big &#8220;O&#8221;<\/li>\n<li>using Format-&gt;Paragraph &#8230; not useful here today &#8230; but generally useful regarding vertical justification<\/li>\n<\/ul>\n<p>We direct you here to a <a target=_blank href=\"http:\/\/www.rjmprogramming.com.au\/Mac\/LibreOffice\/OnceUponATime\/\">slideshow<\/a> of a warts and all look at the creation of a <b><i><span>O<sup>nce upon a time<\/sup><\/span><\/i><\/b> document snippet.<\/p>\n<p>Please note, that, sadly, the Save As HTML option did not create a very useful HTML snippet here &#8230; <\/p>\n<p><img decoding=\"async\" style=\"float:left;border: 15px solid pink;\" alt=\"LibreOffice Once Upon A Time Primer Tutorial\" src=\"http:\/\/www.rjmprogramming.com.au\/Mac\/LibreOffice\/OnceUponATime\/OnceUponATime-231of.jpg\" title=\"LibreOffice Once Upon A Time Primer Tutorial\"  \/><\/p>\n<p> &#8230; but, you will find, we think, easier ways to do this &#8220;thinking HTML and CSS&#8221;, but that is for another time.   Thanks, today, to this <a target=_blank title='Useful link' href='http:\/\/eyeshot.net\/15tupelo1.html'>useful link<\/a>, for the start of one of the <b><i><span>O<sup>nce upon a time<\/sup><\/span><\/i><\/b> stories.  Hope this helps you out.<\/p>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d20610' onclick='var dv=document.getElementById(\"d20610\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/document-processing\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d20610' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d41092' onclick='var dv=document.getElementById(\"d41092\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/emoji\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d41092' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n<hr>\n<p>If this was interesting you may be interested in <a title='Click here to see topics in which you might be interested' href='#d41114' onclick='var dv=document.getElementById(\"d41114\"); dv.innerHTML = \"&lt;iframe width=670 height=600 src=\" + \"https:\/\/www.rjmprogramming.com.au\/ITblog\/tag\/keyboard\" + \"&gt;&lt;\/iframe&gt;\"; dv.style.display = \"block\";'>this<\/a> too.<\/p>\n<div id='d41114' style='display: none; border-left: 2px solid green; border-top: 2px solid green;'><\/div>\n","protected":false},"excerpt":{"rendered":"<p>We like projects if and when they reach the stage where you can spend a day&#8217;s work on a web application just concentrating on external Javascript &#8220;thoughts&#8221;, as we prefer the event programming, anyday, to (that involving) the (CSS) styling &hellip; <a href=\"https:\/\/www.rjmprogramming.com.au\/ITblog\/emoji-background-to-text-external-javascript-tutorial\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12,14,37],"tags":[126,157,2698,2022,2442,281,327,342,1750,354,385,409,2537,576,652,673,2533,714,744,1705,2337,876,894,1988,997,1254,2005,1319,1411,1418],"class_list":["post-41114","post","type-post","status-publish","format-standard","hentry","category-elearning","category-event-driven-programming","category-tutorials","tag-background","tag-bookmarklet","tag-carriage-return","tag-codepoint","tag-contenteditable","tag-css","tag-did-you-know","tag-div","tag-document-root","tag-dom","tag-emoji","tag-external-javascript","tag-generic","tag-html","tag-javascript","tag-keyboard","tag-line-feed","tag-local-web-server","tag-mamp","tag-onkeydown","tag-onkeypress","tag-opacity","tag-overlay","tag-position","tag-programming","tag-text","tag-tool","tag-tutorial","tag-web-server","tag-webpage"],"_links":{"self":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/41114"}],"collection":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/comments?post=41114"}],"version-history":[{"count":17,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/41114\/revisions"}],"predecessor-version":[{"id":41131,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/posts\/41114\/revisions\/41131"}],"wp:attachment":[{"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/media?parent=41114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/categories?post=41114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rjmprogramming.com.au\/ITblog\/wp-json\/wp\/v2\/tags?post=41114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}