{"id":1050,"date":"2022-12-30T17:49:40","date_gmt":"2022-12-30T16:49:40","guid":{"rendered":"https:\/\/geekcommunicant.com\/blog\/?p=1050"},"modified":"2022-12-30T17:49:40","modified_gmt":"2022-12-30T16:49:40","slug":"gloubi-tuto-menu-interactif-deroulant","status":"publish","type":"post","link":"https:\/\/geekcommunicant.com\/blog\/2022\/12\/30\/gloubi-tuto-menu-interactif-deroulant\/","title":{"rendered":"Gloubi tuto &#8211; menu interactif d\u00e9roulant"},"content":{"rendered":"\n<p>Cette semaine, attaquons-nous \u00e0 un autre script de menu pr\u00e9sent\u00e9 chez notre gloubi adversaire.<\/p>\n\n\n\n<p>Ce script est visible sur cette <a href=\"http:\/\/gloubiweb.free.fr\/scripts\/javascript22.htm\" target=\"_blank\" rel=\"noreferrer noopener\">page<\/a>, et est toujours fonctionnel dans les navigateurs modernes.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Fonctionnement<\/h2>\n\n\n\n<p>Le menu produit par ce script se pr\u00e9sente sous la forme d\u2019un tableau dans un tableau (je parle l\u00e0 des balises HTML).<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;table&gt;\n    &lt;tr&gt;\n        &lt;td&gt;Rubrique&lt;\/td&gt;\n    &lt;\/tr&gt;\n    &lt;tr&gt;\n        &lt;td&gt;Liens....&lt;\/td&gt;\n    &lt;\/tr&gt;\n    &lt;tr&gt;\n        &lt;td&gt;Rubrique&lt;\/td&gt;\n    &lt;\/tr&gt;\n    &lt;tr&gt;\n        &lt;td&gt;Liens....&lt;\/td&gt;\n    &lt;\/tr&gt;\n&lt;\/table&gt;\n<\/pre><\/div>\n\n\n<!--more-->\n\n\n\n<p>Les diff\u00e9rentes entr\u00e9es (rubriques principales) du menu sont renseign\u00e9es dans un array \u2018mv_menu\u2019, et les liens correspondant \u00e0 chacune de ces rubriques sont renseign\u00e9s dans un autre array, \u2018mv_lien\u2019.<\/p>\n\n\n\n<p>Dans ce deuxi\u00e8me array, les index des entr\u00e9es doivent correspondre avec les index du premier tableau, et les liens sont form\u00e9s par concat\u00e9nation de balises &lt;a&gt;.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\nmv_menu = new Array();\nmv_lien = new Array();\n\nmv_menu&#x5B;0] = &#039;RUBRIQUES&#039;;\nmv_menu&#x5B;1] = &#039;TEST&#039;;\n\n\nmv_lien&#x5B;0] = &#039;&#039;\nmv_lien&#x5B;0] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . fonds&lt;\/A&gt;&lt;BR&gt;&#039;;\nmv_lien&#x5B;0] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . textures&lt;\/A&gt;&lt;BR&gt;&#039;;\nmv_lien&#x5B;0] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . papiers&lt;\/A&gt;&lt;BR&gt;&#039;;\nmv_lien&#x5B;0] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . gifs&lt;\/A&gt;&lt;BR&gt;&#039;;\nmv_lien&#x5B;0] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . annuaire &lt;\/A&gt;&lt;BR&gt;&#039;;\nmv_lien&#x5B;0] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . guestbook&lt;\/A&gt;&lt;BR&gt;&#039;;\nmv_lien&#x5B;0] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . jascripts&lt;\/A&gt;&lt;BR&gt;&#039;;\n\n\nmv_lien&#x5B;1] = &#039;&#039;;\nmv_lien&#x5B;1] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . GA&lt;\/A&lt;BR&lt;br\/&gt;&#039;;\nmv_lien&#x5B;1] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . BU&lt;\/A&lt;BR&lt;br\/&gt;&#039;;\nmv_lien&#x5B;1] += &#039;&lt;A HREF=&quot;http:\/\/www.monsite&quot; target=&quot;_blank&quot; CLASS=mvstyle&gt; . ZO&lt;\/A&lt;BR&lt;br\/&gt;&#039;;\n<\/pre><\/div>\n\n\n<p>Une variable mv_pos permet d\u2019indiquer l\u2019entr\u00e9e du menu dont on doit afficher les liens.<\/p>\n\n\n\n<p>La fonction principale (mv_menu_draw) fonctionne comme suit.<\/p>\n\n\n\n<p>On boucle sur le tableau des entr\u00e9es principales (\u2018mv_menu\u2019). Pour chacune des entr\u00e9es de ce tableau, selon qu\u2019elle soit s\u00e9lectionn\u00e9e (au survol de la souris) ou pas, on affiche le texte avec un style diff\u00e9rent. Si l\u2019entr\u00e9e est s\u00e9lectionn\u00e9e, alors on affiche les liens correspondant (dans le tableau \u2018mv_lien\u2019).<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\n\/\/ On boucle sur les rubriques\nfor(a=0;a&lt;mv_menu.length;a++) {\n    \/\/ Est-ce que la rubrique est s\u00e9lectionn\u00e9e ?\n    if(mv_pos == a || !document.getElementById) {\n        bgcolor = &quot;#00ff00&quot;;\n    } else {\n        bgcolor = &quot;#FF9900&quot;;\n    }\n\n    if(document.getElementById) {\n        mv_aff += &quot;&lt;TR&gt;&lt;TD BGCOLOR=&quot;+bgcolor+&quot;&gt;&lt;A HREF=..\/\/%22#\/%22 onMouseOver=\\&quot;mv2_pos=&quot;+a+&quot;;mv2_menu_draw()\\&quot; CLASS=mv2style&gt;&lt;FONT FACE=\\&quot;Courrier\\&quot; SIZE=2&gt;&lt;B&gt;&quot;+mv_menu&#x5B;a]+&quot;&lt;\/B&gt;&lt;\/FONT&gt;&lt;\/A&gt;&lt;\/TD&gt;&lt;\/TR&gt;&quot;;\n    } else {\n        mv_aff += &quot;&lt;TR&gt;&lt;TD BGCOLOR=&quot;+bgcolor+&quot;&gt;&lt;FONT FACE=\\&quot;Courrier\\&quot; SIZE=3 COLOR=#0000FF&gt;&lt;B&gt;&quot;+mv_menu&#x5B;a]+&quot;&lt;\/B&gt;&lt;\/FONT&gt;&lt;\/TD&gt;&lt;\/TR&gt;&quot;\n    }\n\n    \/\/ Si la rubrique est s\u00e9lectionn\u00e9e, on affiche ses liens\n    if(mv_pos == a || !document.getElementById) {\n        mv_aff += &quot;&lt;TR&gt;&lt;TD BGCOLOR=&quot;+bgcolor+&quot;&gt;&lt;FONT FACE=\\&quot;Courrier\\&quot; SIZE=2&gt;&lt;B&gt;&quot;+mv_lien&#x5B;a]+&quot;&lt;\/B&gt;&lt;\/FONT&gt;&lt;\/TD&gt;&lt;\/TR&gt;&quot;;\n    }\n}\n<\/pre><\/div>\n\n\n<!--nextpage-->\n\n\n\n<h2 class=\"wp-block-heading\">Mon remake<\/h2>\n\n\n\n<p><span style=\"text-decoration: underline;\">Premi\u00e8re \u00e9tape le HTML<\/span>&nbsp;:<\/p>\n\n\n\n<p>Les tableaux sont remplac\u00e9s par des &lt;div&gt;. Les liens sont pr\u00e9sents directement sur la page et ne sont plus rajout\u00e9s par le JavaScript.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: xml; title: ; notranslate\" title=\"\">\n&lt;div class=&quot;menu&quot;&gt;\n    &lt;div class=&quot;menu-row title&quot;&gt;\n        &lt;div class=&quot;menu-cell&quot;&gt;\n            &lt;span&gt;Rubrique&lt;\/span&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n    &lt;div class=&quot;menu-row links&quot;&gt;\n        &lt;div class=&quot;menu-cell&quot;&gt;\n            &lt;ul&gt;\n                &lt;li&gt;&lt;a href=&quot;#&quot;&gt;A&lt;\/a&gt;&lt;\/li&gt;\n                &lt;li&gt;&lt;a href=&quot;#&quot;&gt;B&lt;\/a&gt;&lt;\/li&gt;\n                &lt;li&gt;&lt;a href=&quot;#&quot;&gt;C&lt;\/a&gt;&lt;\/li&gt;\n                &lt;li&gt;&lt;a href=&quot;#&quot;&gt;D&lt;\/a&gt;&lt;\/li&gt;\n            &lt;\/ul&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n    &lt;div class=&quot;menu-row title&quot;&gt;\n        &lt;div class=&quot;menu-cell&quot;&gt;\n            &lt;span&gt;Rubrique&lt;\/span&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n    &lt;div class=&quot;menu-row links&quot;&gt;\n        &lt;div class=&quot;menu-cell&quot;&gt;\n            &lt;ul&gt;\n                &lt;li&gt;&lt;a href=&quot;#&quot;&gt;A&lt;\/a&gt;&lt;\/li&gt;\n                &lt;li&gt;&lt;a href=&quot;#&quot;&gt;B&lt;\/a&gt;&lt;\/li&gt;\n                &lt;li&gt;&lt;a href=&quot;#&quot;&gt;C&lt;\/a&gt;&lt;\/li&gt;\n                &lt;li&gt;&lt;a href=&quot;#&quot;&gt;D&lt;\/a&gt;&lt;\/li&gt;\n            &lt;\/ul&gt;\n        &lt;\/div&gt;\n    &lt;\/div&gt;\n    &lt;\/div&gt;\n<\/pre><\/div>\n\n\n<p>Pour pr\u00e9server le rendu actuel, on utilise le <a href=\"https:\/\/www.alsacreations.com\/tuto\/lire\/1522-le-modele-tabulaire-en-css.html\" target=\"_blank\" rel=\"noreferrer noopener\">mode d\u2019affichage en tableau<\/a>&nbsp;: \u2018display&nbsp;: table\u2019 sur la &lt;div&gt; englobante, et ensuite \u2018display&nbsp;: table-row\u2019 et \u2018display&nbsp;: table-cell\u2019 sur les classes correspondantes.<\/p>\n\n\n\n<p>Le texte des \u00ab&nbsp;cellules&nbsp;\u00bb de titre est plac\u00e9 dans un &lt;span&gt; qui servira de cible pour la d\u00e9tection du survol de souris.<\/p>\n\n\n\n<p>Les \u00ab&nbsp;cellules&nbsp;\u00bb contenant des liens, masqu\u00e9es par d\u00e9faut, se voient rajouter une classe \u2018active\u2019 qui sera rajout\u00e9e\/enlev\u00e9e par du JavaScript.<\/p>\n\n\n\n<p><span style=\"text-decoration: underline;\">Deuxi\u00e8me \u00e9tape le JavaScript<\/span>&nbsp;:<\/p>\n\n\n\n<p>Le script repose sur 3 variables principales qui sont des tableaux contenant diff\u00e9rents \u00e9l\u00e9ments, s\u00e9lectionn\u00e9s par la m\u00e9thode <a href=\"https:\/\/developer.mozilla.org\/fr\/docs\/Web\/API\/Document\/querySelectorAll\" target=\"_blank\" rel=\"noreferrer noopener\">querySelectorAll()<\/a> de l\u2019objet document, qui permet d\u2019utiliser des s\u00e9lecteurs CSS, tout comme la fonction $() de jQuery.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\nlet menuTitles = document.querySelectorAll(&#039;.menu-row.title&#039;); \/\/ les &quot;cellules&quot; de titre\nlet menuTitlesSpan = document.querySelectorAll(&#039;.menu-row.title &gt; .menu-cell &gt; span&#039;); \/\/ les span cibles\nlet menuLinks = document.querySelectorAll(&#039;.menu-row.links&#039;); \/\/ les &quot;cellules&quot; contenant les liens\n<\/pre><\/div>\n\n\n<p>On boucle sur l\u2019ensemble des &lt;span&gt; cibles (menuTitlesSpan) pour leur attacher un listener sur l&rsquo;\u00e9v\u00e9nement \u2018mouseover\u2019.<\/p>\n\n\n\n<p>Dans ce listener, on boucle sur l\u2019ensemble des \u00ab&nbsp;cellules&nbsp;\u00bb de liens (menuLinks) pour leur retirer la classe \u2018active\u2019 (via leur <a href=\"https:\/\/developer.mozilla.org\/fr\/docs\/Web\/API\/Element\/classList\" target=\"_blank\" rel=\"noreferrer noopener\">classList<\/a>), ce qui a pour effet de les masquer.<\/p>\n\n\n\n<p>Ensuite, \u00e0 partir de la cible de l\u2019\u00e9venement (e.target), on remonte au parent de son parent (cha\u00eenage de propri\u00e9t\u00e9 parentNode), pour s\u00e9lectionner son plus proche sibling (propri\u00e9t\u00e9 nextElementSibling) et lui rajouter la classe \u2018active\u2019.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: jscript; title: ; notranslate\" title=\"\">\n\/\/ On boucle sur l&#039;ensemble des cibles\nmenuTitlesSpan.forEach((ts) =&gt; {\n    \/\/ On leur attache un \u00e9v\u00e9nement &#039;mouseover&#039;\n    ts.addEventListener(&#039;mouseover&#039;, (e) =&gt; {\n        \/\/ On retire la classe &#039;active&#039; \u00e0 toutes les &quot;cellules&quot; de titre\n        menuTitles.forEach((t) =&gt; {\n            t.classList.remove(&#039;active&#039;);\n        });\n        \n        \/\/ On retire la classe &#039;active&#039; \u00e0 toutes les &quot;cellules&quot; de lien\n        menuLinks.forEach((l) =&gt; {\n            l.classList.remove(&#039;active&#039;);\n        });\n\n        \/\/ On remonte au parent du parent de l&#039;\u00e9l\u00e9ment\n        let targetTitle =  e.target.parentNode.parentNode;\n\n        targetTitle.classList.add(&#039;active&#039;); \/\/ rajoute la classe &#039;active&#039; au parent\n        targetTitle.nextElementSibling.classList.add(&#039;active&#039;); \/\/ rajoute la classe &#039;active&#039; au plus proche sibling, qui est la &quot;cellule&quot; de liens\n    });\n});\n<\/pre><\/div>\n\n\n<p>Et voil\u00e0\u00a0! Comme d\u2019habitude, le script pr\u00e9sent\u00e9 est disponible sur sa propre page dans la section d\u00e9monstrations de mon site : <a href=\"https:\/\/geekcommunicant.com\/demos\/gloubi-script-menu-deroulant-interactif.html\" target=\"_blank\" rel=\"noreferrer noopener\">Gloubi script &#8211; menu d\u00e9roulant interactif<\/a>.<\/p>\n\n\n\n<p>\u00c0 bient\u00f4t pour d\u2019autres gloubi tutos.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cette semaine, attaquons-nous \u00e0 un autre script de menu pr\u00e9sent\u00e9 chez notre gloubi adversaire. Ce script est visible sur cette page, et est toujours fonctionnel dans les navigateurs modernes. Fonctionnement Le menu produit par ce script se pr\u00e9sente sous la &hellip; <a href=\"https:\/\/geekcommunicant.com\/blog\/2022\/12\/30\/gloubi-tuto-menu-interactif-deroulant\/\">Continuer la lecture <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":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[53,19],"tags":[30,52,51,31,54],"class_list":["post-1050","post","type-post","status-publish","format-standard","hentry","category-css","category-javascript","tag-css","tag-gloubiscript","tag-gloubituto","tag-javascript","tag-menu"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2IoOb-gW","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":1108,"url":"https:\/\/geekcommunicant.com\/blog\/2023\/02\/10\/gloubi-tuto-menu-avec-description-du-lien\/","url_meta":{"origin":1050,"position":0},"title":"Gloubi tuto &#8211; menu avec description du lien","author":"geekc","date":"10\/02\/2023","format":false,"excerpt":"Voici venu le temps d\u2019un nouveau gloubi tuto sur un autre script de menu. Aujourd\u2019hui, nous allons nous attaquer au menu interactif avec description du lien. Fonctionnement du script Le menu est mis en forme avec un simple tableau \u00e0 une seule colonne, avec un case vide en pied de\u2026","rel":"","context":"Dans &quot;JavaScript&quot;","block_context":{"text":"JavaScript","link":"https:\/\/geekcommunicant.com\/blog\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":148,"url":"https:\/\/geekcommunicant.com\/blog\/2012\/10\/04\/jquery-une-horloge-en-image\/","url_meta":{"origin":1050,"position":1},"title":"[jQuery] Une horloge en image","author":"geekc","date":"04\/10\/2012","format":false,"excerpt":"Aujourd'hui, nous allons voir comment r\u00e9aliser en jQuery une horloge utilisant des images, que vous pouvez voir en action ici. Avant de commencer Pour des raisons de practicit\u00e9, nous allons utiliser les images utilis\u00e9es par le compteur de Gelbooru, que j'ai rassembl\u00e9es dans cette archive. La structure HTML Avant tout,\u2026","rel":"","context":"Dans &quot;jQuery&quot;","block_context":{"text":"jQuery","link":"https:\/\/geekcommunicant.com\/blog\/category\/jquery\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":976,"url":"https:\/\/geekcommunicant.com\/blog\/2022\/12\/02\/gloubi-tuto-un-menu-interactif-hello-kitty\/","url_meta":{"origin":1050,"position":2},"title":"Gloubi tuto &#8211; un menu interactif Hello Kitty","author":"geekc","date":"02\/12\/2022","format":false,"excerpt":"Bienvenue sur ce premier gloubi tuto (pour en savoir plus sur les gloubi tutos) qui concerne un menu interactif avec Hello Kitty. Pr\u00e9sentation et explication de l\u2019existant Pour voir la source du script actuel, RDV sur cette page du site de notre nouvel adversaire dans la guerre du gloubi. Le\u2026","rel":"","context":"Dans &quot;JavaScript&quot;","block_context":{"text":"JavaScript","link":"https:\/\/geekcommunicant.com\/blog\/category\/javascript\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1081,"url":"https:\/\/geekcommunicant.com\/blog\/2023\/01\/20\/gloubi-tuto-menu-images-reactives\/","url_meta":{"origin":1050,"position":3},"title":"Gloubi tuto &#8211; menu avec images r\u00e9actives","author":"geekc","date":"20\/01\/2023","format":false,"excerpt":"Nouvelle semaine, nouveau gloubi-tuto. Cette fois-ci, on s\u2019attaque \u00e0 un autre script de menu. M\u2019enfin script\u2026 pas cette-fois. M\u00eame si sur gloubiweb cela est pr\u00e9sent\u00e9 comme un script, il s\u2019agit en fait de CSS. Ce menu, qui est visible sur cette page, utilise la technique des sprites CSS. Pr\u00e9sentation de\u2026","rel":"","context":"Dans &quot;CSS&quot;","block_context":{"text":"CSS","link":"https:\/\/geekcommunicant.com\/blog\/category\/css\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1121,"url":"https:\/\/geekcommunicant.com\/blog\/2023\/02\/24\/gloubi-script-cadre-clignotant\/","url_meta":{"origin":1050,"position":4},"title":"Gloubi script &#8211; un cadre clignotant","author":"geekc","date":"24\/02\/2023","format":false,"excerpt":"Aujourd\u2019hui, nous allons nous attaquer \u00e0 un script pr\u00e9sent\u00e9 chez notre gloubi rival qui pourra vous \u00eatre tr\u00e8s utile pour mettre en avant n\u2019importe quel contenu sur, par exemple, la magnifique page d\u2019accueil de votre tout aussi sublime site\u00a0: le cadre clignotant. Comme pour d\u2019autres gloubi scripts d\u00e9j\u00e0 pr\u00e9sent\u00e9s, il\u2026","rel":"","context":"Dans &quot;CSS&quot;","block_context":{"text":"CSS","link":"https:\/\/geekcommunicant.com\/blog\/category\/css\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1074,"url":"https:\/\/geekcommunicant.com\/blog\/2023\/01\/13\/gloubi-script-texte-arriere-plan-defilant\/","url_meta":{"origin":1050,"position":5},"title":"Gloubi script &#8211; texte avec un arri\u00e8re-plan d\u00e9filant","author":"geekc","date":"13\/01\/2023","format":false,"excerpt":"Aujourd\u2019hui nouveau tuto sur un gloubi script d\u2019effet sur texte. Cette fois ci, il s\u2019agit de texte avec arri\u00e8re-plan d\u00e9filant. Principe du script Le script original est disponible sur sa propre page sur le site de notre gloubi adversaire. Il fonctionne selon le principe de calques\u00a0: au-dessus du calque de\u2026","rel":"","context":"Dans &quot;CSS&quot;","block_context":{"text":"CSS","link":"https:\/\/geekcommunicant.com\/blog\/category\/css\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/posts\/1050","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/comments?post=1050"}],"version-history":[{"count":0,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/posts\/1050\/revisions"}],"wp:attachment":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/media?parent=1050"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/categories?post=1050"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/tags?post=1050"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}