{"id":137,"date":"2020-08-01T21:04:40","date_gmt":"2020-08-02T01:04:40","guid":{"rendered":"https:\/\/pressbooks.library.ryerson.ca\/webdesignlab\/chapter\/tutorial-9-%e2%80%a2-animation-methods\/"},"modified":"2021-07-26T10:36:30","modified_gmt":"2021-07-26T14:36:30","slug":"tutorial-8-animation-methods","status":"publish","type":"chapter","link":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/chapter\/tutorial-8-animation-methods\/","title":{"raw":"Tutorial 8 \u2022 Animation Methods","rendered":"Tutorial 8 \u2022 Animation Methods"},"content":{"raw":"<div class=\"tutorial-9-\u2022-animation-methods\">\r\n\r\nAnimation generally refers to movement of vector graphics. Objects that move have a great deal of impact and educational value, and vector graphics have small file sizes. User interaction and control can make animations that much more engaging.\r\n\r\nFour ways to add animations to web pages (and ePub eBooks) include (1) CSS, (2) CSS with JavaScript, (3) jQuery, and (4) an animation program.\r\n<h2>Animation with CSS<\/h2>\r\n<p class=\"import-ListBullet\"><a href=\"http:\/\/pressbooks.library.ryerson.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation.png\"><img src=\"http:\/\/pressbooks.library.ryerson.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation.png\" alt=\"Example of animation elements. There is a figure of a car, that can play a linear animation by clicking on the Go button, triggering the action.\" width=\"854\" height=\"284\" class=\"aligncenter wp-image-148 size-full\" \/><\/a><\/p>\r\nThe CSS @keyframes rule and animation-name style enable you to animate objects in web pages, however there is minimal user control. If you want to have a button start the animation (as in the example above) or otherwise have user control, you would have to use JavaScript to connect the button with the object. For CSS animation the object must have position: relative; or position: absolute;, then you can control the left and top coordinates, along with other styles like size (width, height), color, and opacity.\r\n\r\nThe @keyframes rule specifies major change points as \u201cfrom\u201d and \u201cto\u201d or as percentage points from 0% to 100%, accompanied by the styles applicable to each point.\r\n<pre class=\"import-ListBullet\">.car {\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>animation-name: letsgo;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>animation-duration: 3s;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>animation-fill-mode: forwards;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>animation-iteration-count: 1;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>position: absolute;\r\n\r\n} @keyframes letsgo {\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>0% {left: 100px;}\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>100% {left: 700px;}\r\n\r\n}<\/pre>\r\n<p class=\"import-Normal\"><strong>Animation with JavaScript <\/strong><\/p>\r\n<p class=\"import-Normal\">In the example above, a \u201cGo!\u201d button can be added and used to start the animation using JavaScript.<\/p>\r\n\r\n<ol>\r\n \t<li>For the car, set \u201canimation-play-state: paused;\u201d<\/li>\r\n \t<li>Write a JavaScript function to select the ID, \u201ccar,\u201d and set the animation-play-state to \u2028\u201crunning\u201d (see below).<\/li>\r\n \t<li>Add the function to the button: &lt;button onClick=\"animateCar()\"&gt;Go!&lt;\/button&gt;<\/li>\r\n<\/ol>\r\n<pre class=\"import-Normal\">&lt;script&gt;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>\u2028function animateCar {document.getElementById(\"car\").style.animationPlayState=\"running\");\r\n\r\n&lt;\/script&gt;\r\n\r\n\r\n<\/pre>\r\n<p class=\"import-ListBullet\"><strong>Animation with jQuery<\/strong><\/p>\r\n<p class=\"import-Normal\">User interaction can also be implemented with jQuery, an opensource library of JavaScript functions that was started by a group of MIT computer scientists. To use jQuery you have to either download and import the jQuery library (jquery-3.3.1.min.js) and the jQuery user interface (UI, jquery-ui.js), or connect to both from Google\u2019s GoogleAPIs hosted site. jQuery uses the ID assigned to the button and the object to link the two.<\/p>\r\n\r\n<pre class=\"import-ListBullet\">$(function() {\r\n\r\n<span style=\"margin-left: 26pt\"><\/span><span style=\"margin-left: 26pt\"><\/span>$('start').click(function() {\r\n\r\n<span style=\"margin-left: 26pt\"><\/span> <span style=\"margin-left: 26pt\"><\/span><span style=\"margin-left: 26pt\"><\/span>$('car').animate({left: '+=1200px'}, 1000);\r\n\r\n<span style=\"margin-left: 26pt\"><\/span><span style=\"margin-left: 26pt\"><\/span>});\r\n\r\n});<\/pre>\r\nIn this example, we are animating the left coordinate of the \"car\" class by adding 1200px to the current value, which moves it off the screen, and doing the animation in 1000 microsec., or 1 sec. The animation is triggered when the user clicks the button, class 'start.'\r\n<h2>Animation with Tumult Hype<\/h2>\r\nTumult Hype (www.tumult.com\/hype) is a vector-graphic animation program for MacOS similar to Adobe\u2019s Flash and Animate. Hype has an easy-to-use interface and simple procedure for placing an animation into a web page or iBook. The publisher offers a fully functional demo for 15 days.\r\n\r\n[caption id=\"\" align=\"aligncenter\" width=\"768\"]<img src=\"http:\/\/pressbooks.library.ryerson.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/image2.jpg\" width=\"768\" height=\"auto\" alt=\"image\" \/> Screen capture of an animation in Tumult Hype. (Car from pngtree.com.)[\/caption]\r\n\r\n&nbsp;\r\n<table style=\"width: 85.87905364126456%;margin: 0px auto;height: 228px\">\r\n<tbody>\r\n<tr style=\"background: whitesmoke\">\r\n<th style=\"height: 15px;width: 103.74639769452449%\" colspan=\"2\">Components in Tumult Hype<\/th>\r\n<\/tr>\r\n<tr style=\"height: 15px\">\r\n<th style=\"height: 15px;width: 27.393381428543798%\">Component<\/th>\r\n<th style=\"height: 15px;width: 76.3530162659807%\">Function<\/th>\r\n<\/tr>\r\n<tr style=\"background: whitesmoke\">\r\n<td style=\"height: 15px;width: 27.393381428543798%\"><strong>1 stage<\/strong><\/td>\r\n<td style=\"height: 15px;width: 76.3530162659807%\">document or pasteboard for the animation<\/td>\r\n<\/tr>\r\n<tr style=\"height: 30px\">\r\n<td style=\"height: 30px;width: 27.393381428543798%\"><strong>2 layers and properties<\/strong><\/td>\r\n<td style=\"height: 30px;width: 76.3530162659807%\">each object goes on a separate layer and is affected by CSS properties in the list<\/td>\r\n<\/tr>\r\n<tr style=\"background: whitesmoke\">\r\n<td style=\"height: 30px;width: 27.393381428543798%\"><strong>3 timeline with playhead<\/strong><\/td>\r\n<td style=\"height: 30px;width: 76.3530162659807%\">controls timing of the animation<\/td>\r\n<\/tr>\r\n<tr style=\"height: 15px\">\r\n<td style=\"height: 15px;width: 27.393381428543798%\"><strong>4 keyframes<\/strong><\/td>\r\n<td style=\"height: 15px;width: 76.3530162659807%\">main points of change in the animation<\/td>\r\n<\/tr>\r\n<tr style=\"background: whitesmoke\">\r\n<td style=\"height: 15px;width: 27.393381428543798%\"><strong>5 tweens<\/strong><\/td>\r\n<td style=\"height: 15px;width: 76.3530162659807%\">transitions between keyframes<\/td>\r\n<\/tr>\r\n<\/tbody>\r\n<\/table>\r\n<h3>New Document<\/h3>\r\n<ol>\r\n \t<li>Make a new document in Hype. Set the stage size to the width and height of the background image (864324px).<\/li>\r\n \t<li>Drag-and-drop the background image onto the stage.<\/li>\r\n \t<li>Drag-and-drop the car image onto the \u201croad,\u201d size appropriately, and place at the left edge of the scene.<\/li>\r\n \t<li>With the Elements, draw a rectangle with coloured circles that will be made into buttons.<\/li>\r\n<\/ol>\r\n<h3>Animation<\/h3>\r\n<ol>\r\n \t<li>The animation sequence in Hype is: timeline &gt; keyframe &gt; position. To animate the car, first select it. Put the Play Head at 00:00.00 sec. and place a Keyframe for the Origin (Left) Property at that point.<\/li>\r\n \t<li>Move the timeline to 2 sec. (or the length of time you want the car to take to get off the screen) and place another Keyframe &gt; Origin (Left) at that time.<\/li>\r\n \t<li>Move the car to the right, off the stage.<\/li>\r\n \t<li>Play the animation in Hype to see how it works.<\/li>\r\n<\/ol>\r\n<h3>Buttons<\/h3>\r\n<ol>\r\n \t<li>To give users control over the animation, select the green circle that you drew. In the Actions Inspector at right (hand symbol), click on On Mouse Up (Touch End) &gt; Action &gt; Continue Timeline.<\/li>\r\n \t<li>To keep the animation from starting by itself, bring the Play Head to the 00:00.00 position. Set Timeline Actions &gt; Action &gt; Pause Timeline.<\/li>\r\n \t<li>To test your animation, click the Preview button, which will open it in the browser of your choice. Check that the button works and that the animation plays as expected.<\/li>\r\n<\/ol>\r\n<h3>Additional Steps<\/h3>\r\n<ol>\r\n \t<li>To make the car turn around at the end of the animation, add a Keyframe for Rotation Angle (Y) and set to 180\u00b0.<\/li>\r\n \t<li>Add another Timeline Action &gt; Pause Keyframe to make the animation stop before the car turns around.<\/li>\r\n \t<li>Add more seconds to the timeline to make the car drive back to the starting point and turn around again.<\/li>\r\n \t<li>Program a second button to bring the car back.<\/li>\r\n<\/ol>\r\n<h3>Export Animation<\/h3>\r\nA Hype animation can be placed into into a web page by copying the indicated &lt;div&gt; tag and accompanying resources folder.\r\n\r\nThe animation can be placed into an Apple iBook by exporting to Apple Widget (.wdgt) format. Just drag-and-drop the .wdgt file into iBooks Author.\r\n\r\nThe animation can be placed into a fixed-layout ePub by exporting as Animated GIF, however this format offers no user control.\r\n<p class=\"import-ListBullet\"><\/p>\r\n\r\n<\/div>","rendered":"<div class=\"tutorial-9-\u2022-animation-methods\">\n<p>Animation generally refers to movement of vector graphics. Objects that move have a great deal of impact and educational value, and vector graphics have small file sizes. User interaction and control can make animations that much more engaging.<\/p>\n<p>Four ways to add animations to web pages (and ePub eBooks) include (1) CSS, (2) CSS with JavaScript, (3) jQuery, and (4) an animation program.<\/p>\n<h2>Animation with CSS<\/h2>\n<p class=\"import-ListBullet\"><a href=\"http:\/\/pressbooks.library.ryerson.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation.png\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/pressbooks.library.ryerson.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation.png\" alt=\"Example of animation elements. There is a figure of a car, that can play a linear animation by clicking on the Go button, triggering the action.\" width=\"854\" height=\"284\" class=\"aligncenter wp-image-148 size-full\" srcset=\"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation.png 854w, https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation-300x100.png 300w, https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation-768x255.png 768w, https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation-65x22.png 65w, https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation-225x75.png 225w, https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/css-animation-350x116.png 350w\" sizes=\"auto, (max-width: 854px) 100vw, 854px\" \/><\/a><\/p>\n<p>The CSS @keyframes rule and animation-name style enable you to animate objects in web pages, however there is minimal user control. If you want to have a button start the animation (as in the example above) or otherwise have user control, you would have to use JavaScript to connect the button with the object. For CSS animation the object must have position: relative; or position: absolute;, then you can control the left and top coordinates, along with other styles like size (width, height), color, and opacity.<\/p>\n<p>The @keyframes rule specifies major change points as \u201cfrom\u201d and \u201cto\u201d or as percentage points from 0% to 100%, accompanied by the styles applicable to each point.<\/p>\n<pre class=\"import-ListBullet\">.car {\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>animation-name: letsgo;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>animation-duration: 3s;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>animation-fill-mode: forwards;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>animation-iteration-count: 1;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>position: absolute;\r\n\r\n} @keyframes letsgo {\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>0% {left: 100px;}\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>100% {left: 700px;}\r\n\r\n}<\/pre>\n<p class=\"import-Normal\"><strong>Animation with JavaScript <\/strong><\/p>\n<p class=\"import-Normal\">In the example above, a \u201cGo!\u201d button can be added and used to start the animation using JavaScript.<\/p>\n<ol>\n<li>For the car, set \u201canimation-play-state: paused;\u201d<\/li>\n<li>Write a JavaScript function to select the ID, \u201ccar,\u201d and set the animation-play-state to \u2028\u201crunning\u201d (see below).<\/li>\n<li>Add the function to the button: &lt;button onClick=&#8221;animateCar()&#8221;&gt;Go!&lt;\/button&gt;<\/li>\n<\/ol>\n<pre class=\"import-Normal\">&lt;script&gt;\r\n\r\n<span style=\"margin-left: 26pt\"><\/span>\u2028function animateCar {document.getElementById(\"car\").style.animationPlayState=\"running\");\r\n\r\n&lt;\/script&gt;\r\n\r\n\r\n<\/pre>\n<p class=\"import-ListBullet\"><strong>Animation with jQuery<\/strong><\/p>\n<p class=\"import-Normal\">User interaction can also be implemented with jQuery, an opensource library of JavaScript functions that was started by a group of MIT computer scientists. To use jQuery you have to either download and import the jQuery library (jquery-3.3.1.min.js) and the jQuery user interface (UI, jquery-ui.js), or connect to both from Google\u2019s GoogleAPIs hosted site. jQuery uses the ID assigned to the button and the object to link the two.<\/p>\n<pre class=\"import-ListBullet\">$(function() {\r\n\r\n<span style=\"margin-left: 26pt\"><\/span><span style=\"margin-left: 26pt\"><\/span>$('start').click(function() {\r\n\r\n<span style=\"margin-left: 26pt\"><\/span> <span style=\"margin-left: 26pt\"><\/span><span style=\"margin-left: 26pt\"><\/span>$('car').animate({left: '+=1200px'}, 1000);\r\n\r\n<span style=\"margin-left: 26pt\"><\/span><span style=\"margin-left: 26pt\"><\/span>});\r\n\r\n});<\/pre>\n<p>In this example, we are animating the left coordinate of the &#8220;car&#8221; class by adding 1200px to the current value, which moves it off the screen, and doing the animation in 1000 microsec., or 1 sec. The animation is triggered when the user clicks the button, class &#8216;start.&#8217;<\/p>\n<h2>Animation with Tumult Hype<\/h2>\n<p>Tumult Hype (www.tumult.com\/hype) is a vector-graphic animation program for MacOS similar to Adobe\u2019s Flash and Animate. Hype has an easy-to-use interface and simple procedure for placing an animation into a web page or iBook. The publisher offers a fully functional demo for 15 days.<\/p>\n<figure style=\"width: 768px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" src=\"http:\/\/pressbooks.library.ryerson.ca\/webdesignlab\/wp-content\/uploads\/sites\/133\/2020\/08\/image2.jpg\" width=\"768\" height=\"auto\" alt=\"image\" \/><figcaption class=\"wp-caption-text\">Screen capture of an animation in Tumult Hype. (Car from pngtree.com.)<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<table style=\"width: 85.87905364126456%;margin: 0px auto;height: 228px\">\n<tbody>\n<tr style=\"background: whitesmoke\">\n<th style=\"height: 15px;width: 103.74639769452449%\" colspan=\"2\">Components in Tumult Hype<\/th>\n<\/tr>\n<tr style=\"height: 15px\">\n<th style=\"height: 15px;width: 27.393381428543798%\">Component<\/th>\n<th style=\"height: 15px;width: 76.3530162659807%\">Function<\/th>\n<\/tr>\n<tr style=\"background: whitesmoke\">\n<td style=\"height: 15px;width: 27.393381428543798%\"><strong>1 stage<\/strong><\/td>\n<td style=\"height: 15px;width: 76.3530162659807%\">document or pasteboard for the animation<\/td>\n<\/tr>\n<tr style=\"height: 30px\">\n<td style=\"height: 30px;width: 27.393381428543798%\"><strong>2 layers and properties<\/strong><\/td>\n<td style=\"height: 30px;width: 76.3530162659807%\">each object goes on a separate layer and is affected by CSS properties in the list<\/td>\n<\/tr>\n<tr style=\"background: whitesmoke\">\n<td style=\"height: 30px;width: 27.393381428543798%\"><strong>3 timeline with playhead<\/strong><\/td>\n<td style=\"height: 30px;width: 76.3530162659807%\">controls timing of the animation<\/td>\n<\/tr>\n<tr style=\"height: 15px\">\n<td style=\"height: 15px;width: 27.393381428543798%\"><strong>4 keyframes<\/strong><\/td>\n<td style=\"height: 15px;width: 76.3530162659807%\">main points of change in the animation<\/td>\n<\/tr>\n<tr style=\"background: whitesmoke\">\n<td style=\"height: 15px;width: 27.393381428543798%\"><strong>5 tweens<\/strong><\/td>\n<td style=\"height: 15px;width: 76.3530162659807%\">transitions between keyframes<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h3>New Document<\/h3>\n<ol>\n<li>Make a new document in Hype. Set the stage size to the width and height of the background image (864324px).<\/li>\n<li>Drag-and-drop the background image onto the stage.<\/li>\n<li>Drag-and-drop the car image onto the \u201croad,\u201d size appropriately, and place at the left edge of the scene.<\/li>\n<li>With the Elements, draw a rectangle with coloured circles that will be made into buttons.<\/li>\n<\/ol>\n<h3>Animation<\/h3>\n<ol>\n<li>The animation sequence in Hype is: timeline &gt; keyframe &gt; position. To animate the car, first select it. Put the Play Head at 00:00.00 sec. and place a Keyframe for the Origin (Left) Property at that point.<\/li>\n<li>Move the timeline to 2 sec. (or the length of time you want the car to take to get off the screen) and place another Keyframe &gt; Origin (Left) at that time.<\/li>\n<li>Move the car to the right, off the stage.<\/li>\n<li>Play the animation in Hype to see how it works.<\/li>\n<\/ol>\n<h3>Buttons<\/h3>\n<ol>\n<li>To give users control over the animation, select the green circle that you drew. In the Actions Inspector at right (hand symbol), click on On Mouse Up (Touch End) &gt; Action &gt; Continue Timeline.<\/li>\n<li>To keep the animation from starting by itself, bring the Play Head to the 00:00.00 position. Set Timeline Actions &gt; Action &gt; Pause Timeline.<\/li>\n<li>To test your animation, click the Preview button, which will open it in the browser of your choice. Check that the button works and that the animation plays as expected.<\/li>\n<\/ol>\n<h3>Additional Steps<\/h3>\n<ol>\n<li>To make the car turn around at the end of the animation, add a Keyframe for Rotation Angle (Y) and set to 180\u00b0.<\/li>\n<li>Add another Timeline Action &gt; Pause Keyframe to make the animation stop before the car turns around.<\/li>\n<li>Add more seconds to the timeline to make the car drive back to the starting point and turn around again.<\/li>\n<li>Program a second button to bring the car back.<\/li>\n<\/ol>\n<h3>Export Animation<\/h3>\n<p>A Hype animation can be placed into into a web page by copying the indicated &lt;div&gt; tag and accompanying resources folder.<\/p>\n<p>The animation can be placed into an Apple iBook by exporting to Apple Widget (.wdgt) format. Just drag-and-drop the .wdgt file into iBooks Author.<\/p>\n<p>The animation can be placed into a fixed-layout ePub by exporting as Animated GIF, however this format offers no user control.<\/p>\n<p class=\"import-ListBullet\">\n<\/div>\n","protected":false},"author":6,"menu_order":8,"template":"","meta":{"pb_show_title":"on","pb_short_title":"","pb_subtitle":"","pb_authors":[],"pb_section_license":""},"chapter-type":[],"contributor":[],"license":[],"class_list":["post-137","chapter","type-chapter","status-publish","hentry"],"part":3,"_links":{"self":[{"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/pressbooks\/v2\/chapters\/137","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/pressbooks\/v2\/chapters"}],"about":[{"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/wp\/v2\/types\/chapter"}],"author":[{"embeddable":true,"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/wp\/v2\/users\/6"}],"version-history":[{"count":10,"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/pressbooks\/v2\/chapters\/137\/revisions"}],"predecessor-version":[{"id":407,"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/pressbooks\/v2\/chapters\/137\/revisions\/407"}],"part":[{"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/pressbooks\/v2\/parts\/3"}],"metadata":[{"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/pressbooks\/v2\/chapters\/137\/metadata\/"}],"wp:attachment":[{"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/wp\/v2\/media?parent=137"}],"wp:term":[{"taxonomy":"chapter-type","embeddable":true,"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/pressbooks\/v2\/chapter-type?post=137"},{"taxonomy":"contributor","embeddable":true,"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/wp\/v2\/contributor?post=137"},{"taxonomy":"license","embeddable":true,"href":"https:\/\/pressbooks.library.torontomu.ca\/webdesignlab\/wp-json\/wp\/v2\/license?post=137"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}