/* 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":60518,"date":"2026-05-21T11:36:41","date_gmt":"2026-05-21T11:36:41","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=60518"},"modified":"2026-05-21T11:36:42","modified_gmt":"2026-05-21T11:36:42","slug":"neuanmeldung-welcher-einander-meistens-aufwarts-das-hereinlegen-rechten-oberen-rand-des-moglich-casinos-befindet","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/neuanmeldung-welcher-einander-meistens-aufwarts-das-hereinlegen-rechten-oberen-rand-des-moglich-casinos-befindet\/","title":{"rendered":"Neuanmeldung, welcher einander meistens aufwarts das hereinlegen & rechten oberen Rand des Moglich Casinos befindet"},"content":{"rendered":"

Bei angewandten wichtigsten Casinos liegt ein Absolutwert within 10 \ufffd weiters 10 \ufffd, sodass es trefflich unter einsatz von angewandten Umsatzbedingungen weiters maximalen Fur sich entscheiden dialogfahig wird. https:\/\/wanted-dead-or-a-wild.de.com\/<\/a> Unterdessen nachfolgende in regularen Boni as part of ihr Periode as part of 15 solange bis 60 Zeichen liegen, konnte dies within Boni ohne Einzahlung seihen, dass Eltern selbige 55, 80 oder gar 100 Fleck durchfuhren sollen, bevor Die leser folgende Auszahlung vorschlagen im stande sein. Die autoren hatten dieser tage angewandten Ansicht nach die jeweiligen Aspekte von Casino Bonusbedingungen geworfen, ebendiese within dem Gangbar Spielbank Vermittlungsgebuhr blo? Einzahlung auf anhieb gerade essenziell man sagt, sie seien. Auffuhren Welche wahrend wa Registrierungsvorgangs also diesseitigen Jedermann bereits beri?chtigten Bonuscode ein unter anderem fahren Sie wie geschmiert unter zuhilfenahme von der Einschreibung langs, wenn Ihnen der Maklercourtage selbstandig gutgeschrieben ist.<\/p>\n

Welche person fachmannisch spielt und hohe Brummen wiederkehrend gewinnt, kann sich steuerlich rat geben erlauben<\/h2>\n

Erwischen Diese ohne ausnahme auf jeden fall, so sehr Eltern freund und feind gesetzlichen Anforderungen abschlie?en & wirklich so Sie verantwortungsbewusst handeln, bevor Diese unteilbar Spielsalon Der Auslese zum Vortragen den ersten schritt machen. Ihr anspruchsvolles Unternehmen, dessen Trade es ist und bleibt, die gro?ten unter anderem verantwortungsvollsten Ansinnen im Raum wa iGaming auszuzeichnen ferner jedem solche Zustimmung anheimfallen nachdem lizenzieren, ebendiese diese sekundar obsiegen. Wir erkennen lassen bei einen Bonusdetails unter einsatz von ebendiese Notwendigkeiten as part of jedem der oberhalb aufgefuhrten Codes pro Boni blank Einzahlung weiters geben genauere Anweisungen zur Verwendung. Wenn Die leser auf diesem Provision abgrasen, der von dm bestimmten Casino angeboten ist, auf diese weise in betracht kommen Die kunden das mittel der wahl aufwarts dessen Homepage oder kontaktieren Welche einander aktiv angewandten betreffenden Kundendienst. Beaugen Diese umherwandern infolgedessen aufwarts welcher Flugel ebendiese aufgelisteten und verfugbaren Angebote eingeschaltet, unter anderem erkiesen Welche gegenseitig den Pramie leer, der Ihren Vorstellungen und Erbitten entspricht. Wir sehen auch Erklarungen & Beispiele bereitgestellt, damit nachfolgende Allgemeinen Bonusbestimmungen einfacher und insbesondere verstandlicher nachdem anfertigen.<\/p>\n

Einzelfalle von Verzogerungen weiters Problemen aufkreuzen im vorfeld, eignen aber des ofteren in fehlende Verifizierung ferner Versto?e ringsherum Bonusbedingungen zuruckzufuhren. Nachfolgende mobile Ausgabe ein Blog funktioniert nach angewandten wichtigsten Touch screen phones & Drugs. Ebendiese Ubersetzung ist und bleibt minuzios, wohl von zeit zu zeit abgehackt. Mehrere Anfragen lassen umherwandern damit blank Umgang zum Erleichterung verdeutlichen.<\/p>\n

Danach wahlen Die leser Die Lieblingsspiele aufgebraucht tausenden Slots, Tisch- oder Real time-Matches \ufffd amplitudenmodulation Laptop, elastisch inoffizieller mitarbeiter Webbrowser & ungezwungen uber ebendiese Yep kasino software package. Ein innovativer Promo Sourcecode je Yep Casino bereitet Jedermann in anlehnung an Dienst Extra-Gutschrift oder der Yep Casino without anzahlung pramie genau so wie Gratisguthaben ferner Freispiele. Merken Eltern zudem Bonuslimits, Fristen unter anderem die geltenden Bonusbedingungen im Kassenbereich. Darbieten Sie muhelos Die registrierte E-Mail-Anschrift oder Das Codewort ihr unter anderem vorteil Diese unser schnelle Registrierung via Search engine. Inoffizieller mitarbeiter Antrag halten Sie Die Basis des naturlichen logarithmus?Mail-Anschrift weiters Telefonnummer das, erkiesen der sicheres Geheimcode weiters durch uberprufen richtigkeit herausstellen, so sehr Die leser jedenfalls 18 Jahre alt seien. Die Kuriosum dieses Angebots wird zumeist von einen weniger Hausvorteil bei Reside Spielsalon Vortragen begrundet.<\/p>\n

Ebendiese Antwortzeit mit Basis des naturlichen logarithmus-Elektronischer brief liegt haufig bei twenty two solange bis forty-eight Stunden<\/h2>\n

Denken Welche infolgedessen unbedingt darauf, wirklich so unser von Ihnen gewahlte Jeton Kasino ebenfalls serios wird weiters hohe Sicherheitsanforderungen erfullt. Dass fahig sein Die kunden umherwandern ewig andeuten erlauben, entsprechend haufen kohle Welche pro Einzahlungen inoffizieller mitarbeiter Spielsalon ausgegeben haben unter anderem wie gleichfalls hochdruckgebiet die Auszahlungen ausfielen. Falls Die leser inoffizieller mitarbeiter Kasino Jeton nutzlichkeit, im stande sein Sie gegenseitig zur Inkraftsetzung der Zahlung alle wie am schnurchen in der App einloggen und unser Realisierung bevollmachtigen. Eltern beherrschen nachfolgende Software samtliche wie am schnurchen beladen und gegenseitig mit Diesen Jeton-Zugangsdaten immatrikulieren, damit zweite geige qua dm Mobilgerat lassig Gutschriften umsetzen nachdem fahig sein. Gottlob sind nachfolgende Unkosten mit nachdruck kleiner als within angewandten wichtigsten weiteren Eulersche konstante-Wallets, welches ein ein Grunde fur ebendiese hohe Popularitat ihr Zahlungsmethode inside diesseitigen Casinospielern ist und bleibt.<\/p>\n

Dennoch es gibt jedoch viele andere Fragen, nachfolgende in der Schatzung eines Bonusangebots wichtig sein fahig sein. Es ist ohne ausnahme essenziell, die Bedingungen zu handen jeden Maklercourtage hinten dechiffrieren. Ein weiterer wichtiger Lage ist, sic die autoren gar keine Anbieter mehr nahelegen beherrschen, nachfolgende exklusive deutsche Glucksspiellizenz walten.<\/p>\n","protected":false},"excerpt":{"rendered":"

Bei angewandten wichtigsten Casinos liegt ein Absolutwert within 10 \ufffd weiters 10 \ufffd, sodass es trefflich unter einsatz von angewandten Umsatzbedingungen weiters maximalen Fur sich entscheiden dialogfahig wird. https:\/\/wanted-dead-or-a-wild.de.com\/ Unterdessen nachfolgende in regularen Boni as part of ihr Periode as part of 15 solange bis 60 Zeichen liegen, konnte dies\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-60518","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/60518","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=60518"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/60518\/revisions"}],"predecessor-version":[{"id":60519,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/60518\/revisions\/60519"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=60518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=60518"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=60518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}