/* Widget Name: Button Description: Create a custom button with flexible styling, icon support, and click tracking functionality. Author: SiteOrigin Author URI: https://siteorigin.com Documentation: https://siteorigin.com/widgets-bundle/button-widget-documentation/ Keywords: event, icon, link */ class SiteOrigin_Widget_Button_Widget extends SiteOrigin_Widget { public function __construct() { parent::__construct( 'sow-button', __( 'SiteOrigin Button', 'so-widgets-bundle' ), array( 'description' => __( 'Create a custom button with flexible styling, icon support, and click tracking functionality.', 'so-widgets-bundle' ), 'help' => 'https://siteorigin.com/widgets-bundle/button-widget-documentation/', ), array( ), false, plugin_dir_path( __FILE__ ) ); } public function get_settings_form() { return array( 'responsive_breakpoint' => array( 'type' => 'measurement', 'label' => __( 'Responsive Breakpoint', 'so-widgets-bundle' ), 'default' => '780px', 'description' => __( 'This setting controls when the Mobile Align setting will be used. The default value is 780px.', 'so-widgets-bundle' ), ), ); } public function initialize() { $this->register_frontend_styles( array( array( 'sow-button-base', plugin_dir_url( __FILE__ ) . 'css/style.css', array(), SOW_BUNDLE_VERSION, ), ) ); } public function get_widget_form() { return array( 'text' => array( 'type' => 'text', 'label' => __( 'Button Text', 'so-widgets-bundle' ), ), 'url' => array( 'type' => 'link', 'label' => __( 'Destination URL', 'so-widgets-bundle' ), 'allow_shortcode' => true, ), 'new_window' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Open in a new window', 'so-widgets-bundle' ), ), 'download' => array( 'type' => 'checkbox', 'default' => false, 'label' => __( 'Download', 'so-widgets-bundle' ), 'description' => __( 'The Destination URL will be downloaded when a user clicks on the button.', 'so-widgets-bundle' ), ), 'button_icon' => array( 'type' => 'section', 'label' => __( 'Icon', 'so-widgets-bundle' ), 'fields' => array( 'icon_selected' => array( 'type' => 'icon', 'label' => __( 'Icon', 'so-widgets-bundle' ), ), 'icon_color' => array( 'type' => 'color', 'label' => __( 'Icon Color', 'so-widgets-bundle' ), ), 'icon' => array( 'type' => 'media', 'label' => __( 'Image Icon', 'so-widgets-bundle' ), 'description' => __( 'Replaces the icon with your own image icon.', 'so-widgets-bundle' ), ), 'icon_placement' => array( 'type' => 'select', 'label' => __( 'Icon Placement', 'so-widgets-bundle' ), 'default' => 'left', 'options' => array( 'top' => __( 'Top', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'bottom' => __( 'Bottom', 'so-widgets-bundle' ), 'left' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), 'design' => array( 'type' => 'section', 'label' => __( 'Design and Layout', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'width' => array( 'type' => 'measurement', 'label' => __( 'Width', 'so-widgets-bundle' ), 'description' => __( 'Leave blank to let the button resize according to content.', 'so-widgets-bundle' ), ), 'align' => array( 'type' => 'select', 'label' => __( 'Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'mobile_align' => array( 'type' => 'select', 'label' => __( 'Mobile Align', 'so-widgets-bundle' ), 'default' => 'center', 'options' => array( 'left' => __( 'Left', 'so-widgets-bundle' ), 'right' => __( 'Right', 'so-widgets-bundle' ), 'center' => __( 'Center', 'so-widgets-bundle' ), 'justify' => __( 'Full Width', 'so-widgets-bundle' ), ), ), 'theme' => array( 'type' => 'select', 'label' => __( 'Button Theme', 'so-widgets-bundle' ), 'default' => 'flat', 'options' => array( 'atom' => __( 'Atom', 'so-widgets-bundle' ), 'flat' => __( 'Flat', 'so-widgets-bundle' ), 'wire' => __( 'Wire', 'so-widgets-bundle' ), ), ), 'button_color' => array( 'type' => 'color', 'label' => __( 'Button Color', 'so-widgets-bundle' ), ), 'text_color' => array( 'type' => 'color', 'label' => __( 'Text Color', 'so-widgets-bundle' ), ), 'hover' => array( 'type' => 'checkbox', 'default' => true, 'label' => __( 'Use hover effects', 'so-widgets-bundle' ), 'state_emitter' => array( 'callback' => 'conditional', 'args' => array( 'hover[show]: val', 'hover[hide]: ! val', ), ), ), 'hover_background_color' => array( 'type' => 'color', 'label' => __( 'Hover Background Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'hover_text_color' => array( 'type' => 'color', 'label' => __( 'Hover Text Color', 'so-widgets-bundle' ), 'state_handler' => array( 'hover[show]' => array( 'show' ), 'hover[hide]' => array( 'hide' ), ), ), 'font' => array( 'type' => 'font', 'label' => __( 'Font', 'so-widgets-bundle' ), 'default' => 'default', ), 'font_size' => array( 'type' => 'measurement', 'label' => __( 'Font Size', 'so-widgets-bundle' ), 'default' => '1em', ), 'icon_size' => array( 'type' => 'measurement', 'label' => __( 'Icon Size', 'so-widgets-bundle' ), 'default' => '1.3em', ), 'padding' => array( 'type' => 'measurement', 'label' => __( 'Padding', 'so-widgets-bundle' ), 'default' => '1em', ), 'rounding' => array( 'type' => 'multi-measurement', 'label' => __( 'Rounding', 'so-widgets-bundle' ), 'default' => '0.25em 0.25em 0.25em 0.25em', 'measurements' => array( 'top' => array( 'label' => __( 'Top', 'so-widgets-bundle' ), ), 'right' => array( 'label' => __( 'Right', 'so-widgets-bundle' ), ), 'bottom' => array( 'label' => __( 'Bottom', 'so-widgets-bundle' ), ), 'left' => array( 'label' => __( 'Left', 'so-widgets-bundle' ), ), ), ), ), ), 'attributes' => array( 'type' => 'section', 'label' => __( 'Other Attributes and SEO', 'so-widgets-bundle' ), 'hide' => true, 'fields' => array( 'id' => array( 'type' => 'text', 'label' => __( 'Button ID', 'so-widgets-bundle' ), 'description' => __( 'An ID attribute allows you to target this button in JavaScript.', 'so-widgets-bundle' ), ), 'classes' => array( 'type' => 'text', 'label' => __( 'Button Classes', 'so-widgets-bundle' ), 'description' => __( 'Additional CSS classes added to the button link.', 'so-widgets-bundle' ), ), 'title' => array( 'type' => 'text', 'label' => __( 'Title Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a title attribute to the button link.', 'so-widgets-bundle' ), ), 'on_click' => array( 'type' => 'text', 'label' => __( 'Onclick', 'so-widgets-bundle' ), 'description' => __( 'Run this JavaScript when the button is clicked. Ideal for tracking.', 'so-widgets-bundle' ), 'onclick' => true, ), 'rel' => array( 'type' => 'text', 'label' => __( 'Rel Attribute', 'so-widgets-bundle' ), 'description' => __( 'Adds a rel attribute to the button link.', 'so-widgets-bundle' ), ), ), ), ); } public function get_style_name( $instance ) { if ( empty( $instance['design']['theme'] ) ) { return 'atom'; } return $instance['design']['theme']; } /** * Get the variables for the Button Widget. * * @return array */ public function get_template_variables( $instance, $args ) { $button_attributes = array(); $attributes = $instance['attributes']; $classes = ! empty( $attributes['classes'] ) ? $attributes['classes'] : ''; if ( ! empty( $classes ) ) { $classes .= ' '; } $classes .= 'sowb-button ow-icon-placement-' . $instance['button_icon']['icon_placement']; if ( ! empty( $instance['design']['hover'] ) ) { $classes .= ' ow-button-hover'; } $button_attributes['class'] = implode( ' ', array_map( 'sanitize_html_class', explode( ' ', $classes ) ) ); if ( ! empty( $instance['new_window'] ) ) { $button_attributes['target'] = '_blank'; $button_attributes['rel'] = 'noopener noreferrer'; } if ( ! empty( $instance['download'] ) ) { $button_attributes['download'] = null; } if ( ! empty( $attributes['id'] ) ) { $button_attributes['id'] = $attributes['id']; } if ( ! empty( $attributes['title'] ) ) { $button_attributes['title'] = $attributes['title']; } if ( ! empty( $attributes['rel'] ) ) { if ( isset( $button_attributes['rel'] ) ) { $button_attributes['rel'] .= " $attributes[rel]"; } else { $button_attributes['rel'] = $attributes['rel']; } } $icon_image_url = ''; if ( ! empty( $instance['button_icon']['icon'] ) ) { $attachment = wp_get_attachment_image_src( $instance['button_icon']['icon'] ); if ( ! empty( $attachment ) ) { $icon_image_url = $attachment[0]; } } return array( 'button_attributes' => apply_filters( 'siteorigin_widgets_button_attributes', $button_attributes, $instance ), 'href' => ! empty( $instance['url'] ) ? $instance['url'] : '', 'on_click' => ! empty( $attributes['on_click'] ) ? $attributes['on_click'] : '', 'align' => $instance['design']['align'], 'icon_image_url' => $icon_image_url, 'icon' => $instance['button_icon']['icon_selected'], 'icon_color' => $instance['button_icon']['icon_color'], 'text' => $instance['text'], ); } /** * Get the variables that we'll be injecting into the less stylesheet. * * @return array */ public function get_less_variables( $instance ) { if ( empty( $instance ) || empty( $instance['design'] ) ) { return array(); } $text_color = isset( $instance['design']['text_color'] ) ? $instance['design']['text_color'] : ''; $button_color = isset( $instance['design']['button_color'] ) ? $instance['design']['button_color'] : ''; $less_vars = array( 'button_width' => isset( $instance['design']['width'] ) ? $instance['design']['width'] : '', 'button_color' => $button_color, 'text_color' => $text_color, 'icon_size' => ! empty( $instance['design']['icon_size'] ) ? $instance['design']['icon_size'] : '1.3em', 'hover_text_color' => ! empty( $instance['design']['hover_text_color'] ) ? $instance['design']['hover_text_color'] : $text_color, 'hover_background_color' => ! empty( $instance['design']['hover_background_color'] ) ? $instance['design']['hover_background_color'] : $button_color, 'font_size' => isset( $instance['design']['font_size'] ) ? $instance['design']['font_size'] : '', 'rounding' => isset( $instance['design']['rounding'] ) ? $instance['design']['rounding'] : '', 'padding' => isset( $instance['design']['padding'] ) ? $instance['design']['padding'] : '', 'has_text' => empty( $instance['text'] ) ? 'false' : 'true', 'responsive_breakpoint' => $this->get_global_settings( 'responsive_breakpoint' ), 'align' => ! empty( $instance['design']['align'] ) ? $instance['design']['align'] : 'center', 'mobile_align' => ! empty( $instance['design']['mobile_align'] ) ? $instance['design']['mobile_align'] : 'center', 'has_button_icon' => empty( $instance['button_icon']['icon_selected'] ) ? 'false' : 'true', ); if ( ! empty( $instance['design']['font'] ) ) { $font = siteorigin_widget_get_font( $instance['design']['font'] ); $less_vars['button_font'] = $font['family']; if ( ! empty( $font['weight'] ) ) { $less_vars['button_font_weight'] = $font['weight_raw']; $less_vars['button_font_style'] = $font['style']; } } return $less_vars; } /** * Make sure the instance is the most up to date version. * * @return mixed */ public function modify_instance( $instance ) { if ( empty( $instance ) ) { return array(); } $migrate_props = array( 'button_icon' => array( 'icon_selected', 'icon_color', 'icon', ), 'design' => array( 'align', 'theme', 'button_color', 'text_color', 'hover', 'hover_text_color', 'hover_background_color', 'font_size', 'rounding', 'padding', ), 'attributes' => array( 'id', ), ); foreach ( $migrate_props as $prop => $sub_props ) { if ( empty( $instance[ $prop ] ) ) { $instance[ $prop ] = array(); foreach ( $sub_props as $sub_prop ) { if ( isset( $instance[ $sub_prop ] ) ) { $instance[ $prop ][ $sub_prop ] = $instance[ $sub_prop ]; unset( $instance[ $sub_prop ] ); } } } } // Migrate onclick setting to prevent Wordfence flag. if ( ! empty( $instance['attributes'] ) && ! empty( $instance['attributes']['onclick'] ) ) { $instance['attributes']['on_click'] = $instance['attributes']['onclick']; } // If the mobile_align setting isn't set, set it to the same value as the align value. if ( ! empty( $instance['design'] ) && ! empty( $instance['design']['align'] ) && empty( $instance['design']['mobile_align'] ) ) { $instance['design']['mobile_align'] = $instance['design']['align']; } // Migrate predefined settings to more customizable settings. if ( ! empty( $instance['design']['font_size'] ) && is_numeric( $instance['design']['font_size'] ) ) { $instance['design']['font_size'] .= 'em'; } if ( ! empty( $instance['design']['padding'] ) && is_numeric( $instance['design']['padding'] ) ) { $instance['design']['padding'] .= 'em'; } if ( ! empty( $instance['design']['rounding'] ) && is_numeric( $instance['design']['rounding'] ) ) { $instance['design']['rounding'] = $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em ' . $instance['design']['rounding'] . 'em'; } if ( empty( $instance['design']['icon_size'] ) ) { $instance['design']['icon_size'] = '1.3em'; } return $instance; } public function get_form_teaser() { if ( class_exists( 'SiteOrigin_Premium' ) ) { return false; } return array( sprintf( __( 'Add a beautiful tooltip to the Button Widget with %sSiteOrigin Premium%s', 'so-widgets-bundle' ), '', '' ), ); } } siteorigin_widget_register( 'sow-button', __FILE__, 'SiteOrigin_Widget_Button_Widget' );{"id":31342,"date":"2026-05-16T13:27:55","date_gmt":"2026-05-16T13:27:55","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=31342"},"modified":"2026-05-16T13:27:56","modified_gmt":"2026-05-16T13:27:56","slug":"3-upewnij-sie-ze-jednego-do-znasz-duzo-kluczowe-punkty-regulaminu-zapewnia-ci","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/3-upewnij-sie-ze-jednego-do-znasz-duzo-kluczowe-punkty-regulaminu-zapewnia-ci\/","title":{"rendered":"3. Upewnij sie, ze, jednego do znasz duzo kluczowe punkty regulaminu zapewnia ci"},"content":{"rendered":"

Wszyscy filip powitalny ma swoje wlasne wymagania obrotu \ufffd jak. powrot zakladow na 20-krotnosc otrzymanych gotowki\/nagrod z bezplatnych spinow. Jezeli saldo bonusowe przedstawia nie, to wymagania zostaly wypelnione.<\/p>\n

Przeczytaj ustawodawstwo bonusu, poznaj wiekszosc z istotne stwierdzen faktycznych na temat uzytkowania promocji i upewnij sie, ty do spelniasz duzo kryteria w zarobki. Istotne dzialania oni szansa, ktore istnieja rozkoszy oraz maksymalny obliczony dodatkiem.<\/p>\n

kwartet. Gotuj niezbedne rekord<\/h2>\n

Placa na kasyno online AdmiralBet aplikacja<\/a> zwykle nie wymaga zadnych dodatkowych dzialan, ale jesli chodzi darmowy dodatkowy bonus bez depozytu, obstawiajacy to zrobi zobaczyc poproszony w sprawie dodatkowa weryfikacje. Przypadek musze moze byc nagrac przegladanie dokumentu potwierdzajacego nazwa.<\/p>\n

piec. Jakosc preferowana sposoby na zarobki<\/h2>\n

Uzasadnienie ktore istnieja strategie dla zarobki, podane przez wyznaczone kasyna i wybierz te, to bedzie najbardziej Ludzie odpowiedzialny. Skoncentruj sie na minimalna transakcje, ktory bedzie stac sie mniejsza liczba przestrzegaj tlumaczy kwocie, ktora pragniesz zaplacic.<\/p>\n

Forma bonusow bez depozytu<\/h2>\n

Zachety bez depozytu w Polakow wystepuja w wielu wersjach, i to sa bardzo rozne sposobem rozgrywki, aktywacja, a nawet metoda, z ktore sa skierowane. Korzystne nauczyc sie konsumuje duzo, otrzymac uczyc sie, w ktorym rodzajem premii ma faktycznie sie na czynienia w przypadku aktywacji.<\/p>\n

Bezplatne spiny bez depozytu posiadanie rejestracje<\/h2>\n

Najpopularniejsza umowa, w odniesieniu do fillip bez depozytu w Polakow. Motywacja na bezplatne spiny jest czesto oferowany w okreslonych pakietach (najczesciej) okolo 20-piecdziesiat obrotow w wskazanym tytule.<\/p>\n

Motywacja tego rodzaju mozesz umiescic w jeden lub dwa wartosci. Pierwszy technologia informacyjna wykrecenie obrotow z danym automacie. Wiekszosc nagrody jest wlasciwie przyznawane w drodze bonusu pienieznego. Wiec drugim etapem bylo kompletne warunku obrotu dla stopien, jaka udalo sie wylosowac.<\/p>\n

Dodatkowy na zacznij bez depozytu<\/h2>\n

Rozwoj tego rodzaju zamiast bezplatnych spinow rowniez zapewnia zdefiniowana kwote premii. Dodatkowy bonus bez depozytu w wysokosc kiedys dwadziescia w 100 zl, jest wlasciwie przyznawany na ranking uzytkownika i daje calkiem duza swobode wykorzystania.<\/p>\n

W tym przypadku czlonek solo decyduje, gdzie wykorzysta swoja zaplacilem. Oczywiscie kasyno wyznacza, obstawianie, ktore sie zdarzaja wylaczone posiadanie obrotu, ale wciaz czesto utrzymuje sie nawet tysiace rozwoj, w ktorych jest to mozliwe rozumiec szansa.<\/p>\n

Bonus posiadania polecenie znajomego<\/h2>\n

Technologia informacyjna inny rodzaj typ premii, to jest dostepny od kasyno internetowe dla ludzi, i dlatego zdecydowanie polecaja jego cechy na pewno jednego z znajomych. Jezeli ta osoba skorzysta ktorzy maja linku, zarejestruje czlonkostwo i mozesz zdeponuje aktualnosc, technologia informacyjna polecajacy moze liczyc na stosowny dodatkowy.<\/p>\n

Duza zaleta tego rodzaju premii masz to, ty na pewno jest czesto nieograniczona i bedziesz mozesz ktorzy maja niej wielokrotnie korzystac (z kazdym udanym poleceniem). Filip bylo przyznawany w drodze darmowych spinow lub moze wlasnie bonusu pienieznego.<\/p>\n

Komorkowy motywacja bez depozytu<\/h2>\n

To daje ci rozprowadzane z okazji promocji aplikacja mobilna dla kasyno. Najczesciej oferuja okreslona kwote premii lub po prostu darmowych spinow posiadanie zainstalowanie aplikacji mobilnej i zalogowanie sie na niej. Motywacja tego rodzaju mozesz aktywowac calkowicie na wersji mobilnej, po, po prostu co niesamowite, mozesz wrocic do standardowej rozgrywki.<\/p>\n

Calkowicie darmowy filip zetonowy<\/h2>\n

Oni tylko spotykana umowa, to by pokazuje osobliwe zetony do wykorzystania na gorze danej chopine. Zetony moga miec scisle bardzo jasne dzialanie i byc ktore sa oferowane po prostu dla pewnych gier lub po prostu z pomocy, jak wewnetrznie kolo duzo z bonusami, jesli sklep, gdzie mozna zobaczyc konkretne nagroda.<\/p>\n

Warty takiej daje ci jest wlasciwie zroznicowana, ich uslugi zalezy wylacznie jak operatora. Niekiedy zapewniaja ponadprzecietne opcje roznych mozliwosci bonusow, doskonaly innym razem maja wysokie warunki uzytkowania. Dlatego doradzamy, zrobic zawsze dokladnie przyjrzec sie regulaminowi uzytkowania takich zetonow.<\/p>\n

Ekskluzywne bonusy bez depozytu<\/h2>\n

Obstawiajacy rzadko ma mozliwosc, produkowac jak najlepiej filip bez depozytu, to udostepniony ekskluzywnie. Oni reklama, tworzone w odniesieniu do okreslonymi zasadami \ufffd udostepniane konkretnym grupom odbiorcow. Charakteryzuja sie ponadprzecietna oferta, to bedzie objawia sie na kwocie\/liczbie darmowych spinow lub moze przystepnych warunkach uzytkowania.<\/p>\n

Jezeli zobacz taka miarka cena, ze ty warto posiadanie niej skrecic w, bo najpewniej rowniez zapewnia bardzo dobre wymagania z grania.<\/p>\n

5 najlepszych zagranicznych kasyn oferujacych motywacja bez depozytu 2026<\/h2>\n

Wybralismy najlepsze europejskie przedsiebiorstwa hazardowe, oferujace premia niewymagajace depozytu i porownalismy mam, sprawdzajac kluczowe czynniki warunkujace atrakcyjna rozgrywke. W dalszej czesci kawalka prawde dowiedz sie techniki ewaluacji wiekszosc portalu z grami losowymi.<\/p>\n","protected":false},"excerpt":{"rendered":"

Wszyscy filip powitalny ma swoje wlasne wymagania obrotu \ufffd jak. powrot zakladow na 20-krotnosc otrzymanych gotowki\/nagrod z bezplatnych spinow. Jezeli saldo bonusowe przedstawia nie, to wymagania zostaly wypelnione. Przeczytaj ustawodawstwo bonusu, poznaj wiekszosc z istotne stwierdzen faktycznych na temat uzytkowania promocji i upewnij sie, ty do spelniasz duzo kryteria w\u2026<\/p>\n

Continue reading<\/span><\/i><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-31342","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/comments?post=31342"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31342\/revisions"}],"predecessor-version":[{"id":31343,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/31342\/revisions\/31343"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=31342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=31342"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=31342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}