/* 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":224543,"date":"2026-06-22T23:59:30","date_gmt":"2026-06-22T23:59:30","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=224543"},"modified":"2026-06-22T23:59:31","modified_gmt":"2026-06-22T23:59:31","slug":"ja-altcoins-sind-kryptowahrungen-bezeichnet-diese-auf-diesem-bitcoin-erschienen-sind-2","status":"publish","type":"post","link":"https:\/\/klecet.edu.in\/alumni\/ja-altcoins-sind-kryptowahrungen-bezeichnet-diese-auf-diesem-bitcoin-erschienen-sind-2\/","title":{"rendered":"Ja Altcoins sind Kryptowahrungen bezeichnet, diese auf diesem Bitcoin erschienen sind"},"content":{"rendered":"

Sportwetten<\/h2>\n

Wenn Lincoln<\/a> Sie auf Abwechslung suchen & gelegentlich Sportwetten erf\u00fcllen mochten, man sagt, sie sind Sie in einen von united nations empfohlenen Ethereum Casinos nicht entt\u00e4uscht. Unsere Testsieger t\u00e4tig sein viele Wettmarkte und moglichkeit machen es Ihnen, auf diese gefragtesten Sportereignisse aus Pille, Korbball & Kohlenstoffmonooxid. nach spielen.<\/p>\n

Daneben normalen Erreichbar-Tippen k\u00f6nnen Sie Ihren Einsatz in ETH auch in Echtzeit platzieren und in Stay-Tippen mehrere Nervenkitzel genie?en. Daneben einen klassischen Sportarten stehen Ihnen Turniere ganz eSports, Pferderennen und Spezialthemen wie Walten & TV-Shows zur Verfugung.<\/p>\n

Ethereum Casino Bonusangebote<\/h2>\n

Wenn Sie inoffizieller mitarbeiter Erreichbar Casino \u00fcber ETH um echte Gewinne spielen, d\u00fcrfen Sie sich in unseren Testsiegern in welle Bonusangebote lust empfinden. So erlangen Sie als Neukunde in anderem in dem unschlagbaren Ersteinzahlungsbonus, ein Ihnen Zusatzguthaben und Freispiele z. hd. einen bequemen Abfahrt einbringt. Es Erfahrung z. hd. Bestandskunden fallt noch keineswegs langweiliger aus, ja als registrierter Spieler auf einen fu?en stehen Ihnen regelm\u00e4\u00dfig besondere Reload-Boni, Cashback-Zahlungen und Bonusspiele zur Verf\u00fcgung.<\/p>\n

Andere Zahlungsmethoden inoffizieller mitarbeiter Ethereum Casino<\/h2>\n

Hier sich Ethereum Casinos jedoch ungewohnlich auf ETH wie einzige Zahlungsmethode anhaufen, fahig sein Sie gegebenenfalls in eine breit gefacherte Wahl angeschaltet anderen Gold coins und Keepsake zuruckgreifen. Wir werfen einen detaillierten Blick auf diese verschiedenen Arten von Kryptowahrungen und klarmachen, wie Sie diese z. hd. Erreichbar Glucksspiele benutzen konnen:<\/p>\n

Bitcoin<\/h2>\n

Bitcoin gelte seit dem offiziellen Abfahrt inoffizieller mitarbeiter Jahr dois mil e oito als diese Our-Kryptowahrung und ist immer haufiger als Absicherung inoffizieller mitarbeiter Netz eingesetzt. So nebensachlich in zahlreichen Krypto Casinos. \u00dcber der Borsenwert von uber gerade one,four Billionen Dollar fuhrt BTC das Ranking ein wertvollsten Kryptowahrungen an und meinen vor allem uber seiner dezentralen System wenn ein begrenzten Umlaufmenge, diese deflationar wirkt & fur jedes einen stabilen Wachstum sorgt.<\/p>\n

Altcoins<\/h2>\n

Beilaufig Ethereum zahlt nach ein Kategorie. Da jede Cyberwahrung \u00fcber verschiedenen Untermauern und Schw\u00e4chen einhergeht, beabsichtigen sich Krypto Casinos in ein Tage auf eine breite Wahl angeschaltet Altcoins, diese Sie fur Das- & Auszahlungen verwenden vermogen:<\/p>\n

Memecoins<\/h2>\n

Ein Angliederung von Memecoins ist und bleibt theoretisch, jedoch haufig \u00fcber dem massiven Kurssteigerungspotenzial gemeinsam. Wahrend Kult-Kryptos wie Dogecoin und Shiba Inu wunderbar 2021 z. hd. Aff\u00e4re sorgten & sich seit nach echten Gro?en in einen Top 100 ein wertvollsten Kryptowahrungen programmiert haben, fordern mittlerweile nahezu tag fur tag neue Humor-Gold in einen Markt, diese ein Unterhaltungs- und Netz-Konzept folgen. In einen besten Ethereum Casinos fahig sein Die auf einsatz von anderen Memecoins ruckverguten:<\/p>\n

Stablecoins<\/h2>\n

Stablecoins sind als geldmarktahnliche Wahrungen verwendet, schlie?lich diese Entwicklung der Cyberwahrungen ist und bleibt sofort an einen Basiswert \ufffd bspw. einen Usa-$ \ufffd gemeinsam. Farbe bekennen Diese sich hierfur, inoffizieller mitarbeiter Erreichbar Casino \u00fcber Tether (USDT) und Usd Cent (USDC) nach spielen, erlangen Sie von der geringen Fluktuation, diese Ihnen intensiv gecoacht, einen besseren Uberblick \u00fcber Das Gutschrift nach behalten.<\/p>\n

Ohne Casino Keepsake<\/h2>\n

Dar\u00fcber treuen Spielern eine ganze Reihe angeschaltet exklusiven Vorteilen nach verschaffen, legen einige Krypto Casinos in speziell entwickelte Casino Keepsake, diese diese getrennt Marke gestalten und Zugriff nach einzigartigen Spielen, Bonusangeboten und Happenings angebot.<\/p>\n

Ethereum Stay Casino<\/h2>\n

Nach handen maximalen Spielspa? sorgen spezielle Ethereum Nat\u00fcrlich time Casinos, diese es Ihnen moglichkeit machen, klassische Spiele wie Poker, Toothed wheel und Blackjack in Echtzeit nach vortragen. Diese Decrease des Geschehens erfolgt in ein objekt in einen echten Croupier, ein Diese Einsatze entgegennimmt und diese professionell durch die Spielrunden fuhrt. Das komplette Vorgehen ist reside gefilmt und \u00fcber Load auf Diesen Anzeigegerat uberliefern. Eine authentische Laune ist Ihnen auf jeden fall.<\/p>\n

Dar\u00fcber Sie stets hochsten Spielspa? genie\u00dfen, haben wir im rahmen unseres Ethereum Casino Vergleichs uberpruft, \u00fcber welchen Providern unsere Testsieger mitarbeiten und die erfolgreichen Are living Casinos inoffizieller mitarbeiter Range gelistet sind:<\/p>\n

Mobiles Spielen as part of ETH Casinos<\/h2>\n

Diese besten Ethereum Casinos stehen Ihnen gar nicht jedoch unsere k\u00fcnstliche intelligenz?chen zur Verf\u00fcgung, f\u00fcr stets auf Dem Cell phone. Intensiv ist es auf "und liefen", in wie weit Sie Einen Urlaub in ein Breite genie\u00dfen und sich gerade \u00fcber Bus & Zug auf einen Weg zur Beruf machen. Das google android Vortragen ist to kosmos unseren Testsieger-Casinos m\u00f6glich. Intensiv divergieren wir zwischen anderen Angeboten:<\/p>\n","protected":false},"excerpt":{"rendered":"

Sportwetten Wenn Lincoln Sie auf Abwechslung suchen & gelegentlich Sportwetten erf\u00fcllen mochten, man sagt, sie sind Sie in einen von united nations empfohlenen Ethereum Casinos nicht entt\u00e4uscht. Unsere Testsieger t\u00e4tig sein viele Wettmarkte und moglichkeit machen es Ihnen, auf diese gefragtesten Sportereignisse aus Pille, Korbball & Kohlenstoffmonooxid. nach spielen. Daneben\u2026<\/p>\n

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