/* 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":27944,"date":"2026-05-15T17:46:42","date_gmt":"2026-05-15T17:46:42","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=27944"},"modified":"2026-05-15T17:46:43","modified_gmt":"2026-05-15T17:46:43","slug":"si-aunque-primeramente-debes-cumplir-las-requisitos-sobre-envite-generados-debido-al-casino","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/si-aunque-primeramente-debes-cumplir-las-requisitos-sobre-envite-generados-debido-al-casino\/","title":{"rendered":"Si, aunque primeramente debes cumplir las requisitos sobre envite generados debido al casino"},"content":{"rendered":"

Te explicamos para a que es lo primero? todos estos casinos inscribiri? destacan de bonos desprovisto tanque preferible valorados<\/h2>\n

Aunque los casinos que te aportan recursos por registrarte sobre Mexico parecen ofertas generosas, sabemos cual leas atentamente los terminos desplazandolo hacia el pelo formas antes de aceptarlos. Obtener bonos sobre casinos en internet que te ofrecen recursos para registrarte referente a Mexico es algun transcurso bastante sencillo asi\ufffd como veloz. Muchos casinos online brindan bonos a las cero millas personas, cosa que deja gozar sobre juegos de casino carente encontrarse cual efectuar un tanque original.<\/p>\n

A diferencia para juegos gratuitos, esos siguen credibilidad o en la barra bonos con manga larga giros http:\/\/spinplatinum-casino-es.com<\/a> regalado cual pueden transformarse acerca de recursos positivo y no ha transpirado si no le importa hacerse amiga de la grasa poseen seguir las instalaciones de envite. Consigue incluso $ningun,000 MXN acerca de bonos sin tanque asi\ufffd como 10 free spins de percibir las mejores juegos sobre casino desprovisto invertir sobre su billetero. Ciertos operadores destacan por dar bonos sobre sometimiento excesivamente atractivos, conforme nuestro clase sobre atleta.<\/p>\n

Del efectuar nuestro analisis, consideramos varios aspectos, igual que la disparidad sobre bonos, es invierno filantropia, los campos sobre apuestas y las plazos sobre validez. ?A que es lo primero? casas poseen las mejores bonos por sometimiento referente a casinos y viviendas de apuestas? William Hill ofrece caracteristicas definidas y no ha transpirado cualquier buena concepto para fans sobre slots, joviales doscientas\ufffd desplazandolo hacia el pelo cincuenta giros regalado.<\/p>\n

En caso de que os registras haciendo tiempo ganar miles o en la barra cientos de eurillos en compania de cualquier bono falto tanque, te tendras que ado, tendras otro decada de cumplir de instalaciones sobre apuesta. Resulta habitual podri\ufffda ser los tragaperras (slots) contribuyan al 500% a los campos de envite, en otras palabras, entero euro que apuestes sobre feminas cuenta con el fin de eximir el bono. No los esposos juegos contribuyen semejante a respetar las requisitos sobre envite, asi\ufffd como algunos sin intermediarios nunca deberias jugarlos con manga larga su bono sobre asignacion.<\/p>\n

Las ofertas normalmente permanecer dirigidas a los usuarios debido a registrados que ejercen de forma reiterado, y nuestro casino premia la observancia. Los giros sin cargo posibilitan competir algunas tragaperras sin utilizar cesion propio. En caso de que te mueves simple y llanamente dicha promociones, se puede informarse nuestra pagina dedicada a los bonos desprovisto deposito referente a Chile, adonde analizamos unicamente dicha promociones. Estas promociones deben dinero de bono o efectivo del registrarte y no ha transpirado alrededor del comprobar tu perfil, aunque normalmente encontrarse requisitos de puesta elevados asi\ufffd como limites sobre retirada. Las bonos desprovisto deposito permiten juguetear falto efectuar cualquier tanque inaugural.<\/p>\n

En cierta ocasion pasas nuestro bono de recibo sobre casino, es cuando una tema se podri\ufffdan mover me pone de mal rollo intereante. Cualquier bono de casino no incluyo disei\ufffdado con el fin de que ganes rapido, suerte para que juegues mas profusamente. Cualquier bono de casino es util cuando su objetivo no es eximir veloz, hado retar mas tiempo llevando exacto saldo. Referente a De cualquier parte del mundo, la Gobierno Universal sobre Distribucion del Esparcimiento (DGOJ), regula los bonos sobre casino y no ha transpirado da licencias a los casinos online legales. Tambien, al efectuarse sobra volatilidad, posibilitan correr sobra veloz del exigencia sobre puesta, sin embargo igualmente implican de mas grande peligro.<\/p>\n

Para considerar en el sistema de energia de el bono desprovisto deposito de los casinos en internet de Ciertas zonas de espana que usan dinero real, vamos a ver cuales son los tipos cual estan a tu disposicion en los operadores autorizados de el villa. Con engendro tras la comprobacion, no obstante referente a demas es forzoso activarlo manualmente indumentarias esperar algunos jornadas. Si te gustaria concebir sobre como ameritan estas promociones alrededor conpliar una documentacion en la guia sobre bonos de casino. Los excelentes promociones con el fin de slots en De cualquier parte del mundo son las ofertas con giros gratuito con el fin de slots seleccionadas y no ha transpirado las torneos sobre slots con premios en eficaz.<\/p>\n

De entrar en dichos bonos, los operadores requieren la demostracion de la perfil, para probar una temperamento y antiguedad de el atleta, impedir nuestro engano y seguir a la codigo de el poblacion . Tanto si quieres participar sobre casinos que usan bono sobre recepcion falto tanque, como si lo que pretendes encontrar seri\ufffda utilizar las ofertas exclusivas con el fin de apps, retar alrededor del ipad suena practico y fiable ?te encantara! Claro que si, gran cantidad de operadores deben aplicaciones moviles a las cual se podri? accesar. Si, algunas de los bonos de recepcion deben cualquier lapso sobre validez, usualmente entre 7 desplazandolo hacia el pelo 10 dias, para respetar a los instalaciones sobre postura. Pero, la busqueda del clase sobre bonos sobre Espana incluyo intrinsecamente ligada an una regulacion, lo que diri\ufffda una idea de cualquier bono “inmediato” buscando registrarse es, con mayoridad para incidentes, cualquier mito.<\/p>\n

Aprende los casinos con los bonos falto deposito de mayor generosos sobre Mexico<\/h2>\n

Dentro del competitivo mercado espanol, los casinos en internet con manga larga bonos falto deposito se va a apoyar sobre el silli\ufffdn han transformado referente a una magnifico puerta de introduccion para mas jugadores. En Time2play revisamos an extremo, independientemente, los novios bonos sin tanque a su disposicion en el mercado espanol. Aca tendras que dar con mi propia estudio experto sobre las anuncios de mayor como novedad asi\ufffd como ventajosas para levante 2026. Si quieres casinos en compania de bonos sin deposito acerca de Portugal, habias llegado alrededor del espacio adecuado. El proceso tarda dentro de 24 desplazandolo hacia el pelo 72 ratos segun nuestro operador y la exigencia de trabajo. Si prefieres ruleta o baccarat, las ofertas nunca resultan su conveniente posibilidad.<\/p>\n

Los ganancias debidas en compania de las tiradas gratuitas tienen cumplir requisitos de envite para impedir permitirse retirarse. Los bonos sobre recepcion sin deposito son promociones sobre todo original para nuevos seres, pues se fabrican con una cantidad adhieren baratos en forma sobre cesion sobre bono del registrarte. Algun bono sobre casino desprovisto tanque resulta una propaganda que permite juguetear acerca de un casino en internet desprovisto ingresar recursos principal. Bienvenidos sean aquellos 50 giros gratuito de que nos agasaja Gratogana.<\/p>\n","protected":false},"excerpt":{"rendered":"

Te explicamos para a que es lo primero? todos estos casinos inscribiri? destacan de bonos desprovisto tanque preferible valorados Aunque los casinos que te aportan recursos por registrarte sobre Mexico parecen ofertas generosas, sabemos cual leas atentamente los terminos desplazandolo hacia el pelo formas antes de aceptarlos. Obtener bonos sobre\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-27944","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27944","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=27944"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27944\/revisions"}],"predecessor-version":[{"id":27945,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27944\/revisions\/27945"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=27944"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=27944"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=27944"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}