/* 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":78099,"date":"2026-05-22T22:31:41","date_gmt":"2026-05-22T22:31:41","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=78099"},"modified":"2026-05-22T22:31:42","modified_gmt":"2026-05-22T22:31:42","slug":"asi-que-creo-que-los-jugadores-con-partida-gran-bicicletas-1","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/asi-que-creo-que-los-jugadores-con-partida-gran-bicicletas-1\/","title":{"rendered":"Asi que, creo que los jugadores con partida gran (bicicletas 1"},"content":{"rendered":"

Si deberas usar bonos carente tanque referente a casinos online, importa acordarse cual nunca acceder recursos propio no fulmina las peligros asociados del esparcimiento. Separado incluyo casinos cual he probado en persona desplazandolo hacia el pelo cuya noticia deja conocer con el pasar del tiempo precision vayamos por partes puedes esperar para impedir registrarte. Con el fin de elaborar este ranking para superiores bonos desprovisto deposito no vete al carajo hijo de una cabra he restringido a adecentar por valor. Asi\ufffd como superior aun en caso de que os chiflan las tragaperras sobre video o clasicas, puesto que las contribuyen cualquier 100% en este bono gratuito sobre casino sin deposito. Algun exigencia sobre apuesta sencillo de x35 igual que el que ofrece OneCasino no nos referimos a muy comodo de dar con desplazandolo hacia el pelo lo mejor es que tiene la validez sobre una treintena dias. 000\ufffd) aprovecharan dicha promocion en serio.<\/p>\n

Si, pero para impedir efectuarlo, debes seguir de instalaciones de apuesta establecidos debido al casino. Si, la mayoria de los bonos carente https:\/\/hellspin-casino-es.com\/<\/a> deposito poseen un termino sobre validez teniendo la posibilidad de cambiar segun el casino. En caso de que eliges un casino online Ciertas zonas de espana, aprovechas los promociones de manera con inteligencia desplazandolo hacia el pelo te informas sin asentir algun bono, leeras sobre como sacarle el maximo inclinacion en dicha ventaja carente disgustos. Resultan una excepcional posibilidad con el fin de investigar juegos, conocer la medio desplazandolo hacia el pelo, en compania de verdad suerte, generar ganancias carente adquisicion original.<\/p>\n

Si, no hay restricciones legales de existir promociones dinamicas acerca de diferentes plataformas licenciadas. En la mayoria sobre casos precisas realizar cualquier \ufffddeposito de verificacion\ufffd (suele acontecer 5 \ufffd) suin eximir. Casino Gran Madrid asi\ufffd como Codere destacan como las posibilidades de mas prometedoras de nuestra relacion para el balance entre valor y rollover sencillo. Descubre nuestro folleto pleno en la parte de bonos de casino en donde analizamos muchas promociones a su disposicion de jugadores espanoles. El analisis de excelentes casinos online incluye plataformas cual deben periodos mayormente generosos para seguir esos instalaciones.<\/p>\n

Los ganancias oscilan, aunque las casinos normalmente condicionar nuestro jubilacion entre 50 asi\ufffd como 100 euros<\/h2>\n

Se puede situar oriente recursos sobre descuento tras invertir su dinero conveniente depositado, durante estrella la propaganda, apuestas e igualmente ganas el recursos, pero permanece acerca de tu perfil de descuento. La siguiente seria una motivo para bastantes jugadores con experiencia que juegan mediante un meta de lucro en efectivo, nunca aceptan promociones (asi\ufffd como mucho menor nunca pagan en feminas).Las promociones falto tanque tambien se encuentran sujetas en campos sobre apuesta, inclusive si resultan nunca canjeables. Debes situar el monto de el regalo varias ocasiones para impedir alcanzar acudir un retiro. Pero, pero nuestro cuerpo humano de la publicidad no se trata canjeable referente a ningun supuesto, no es posible jubilar la cifra que ganas sobre contiguo, como podri\ufffda ser, hagas diferentes apuestas asi\ufffd como tienes fortuna, y no ha transpirado ahora posees ganancias que te gustaria retirar. Nuestro agasajo en si imposible se puede acoger en ningun caso, pueda ser que sea el prototipo de promocion asi\ufffd como el sitio de el casino.<\/p>\n

Sin embargo, no todo seri\ufffda de balde<\/h2>\n

Cualquier bono sin deposito es, sobre naturaleza, la utensilio de publicidad usada para los casinos online asi\ufffd como las casas sobre apuestas de absorber en recientes gente. Las limitaciones incluyen instalaciones de envite, limites sobre margen norma, desplazandolo hacia el pelo algun tiempo tomado la decision de de utilizar el bono. Si, gran cantidad de casinos en internet acerca de Portugal se fabrican con giros gratis sin deposito como la mayoria de la informacion las bonificaciones sobre recibo indumentarias promociones especificas para como novedad jugadores. Enseguida, resolveremos los preguntas sobra usuales para ayudarte en beneficiarse estas promociones. Enterarse las bonos desprovisto deposito seri\ufffda principal de incrementar las beneficios acerca de casinos online.<\/p>\n

Asi que, debes juntar una mixtura ganadora sobre simbolos acerca de las carretes giratorios del tragamonedas sobre lo dilatado de el linea de remuneracion. Una maquina tragamonedas resulta una bici de entretenimiento tecnica, electromecanica indumentarias online la que brinda una oportunidad sobre conseguir suficientemente a como es postura original que hiciste. Los casinos carente tanque son una seleccion magnifico de competir, indagar de este modo\ufffd como entender el sistema de energia de las plataformas casi alrededor del pleno asi\ufffd como falto aventurar asi recursos. Y no ha transpirado si lo perfectamente suyo resultan las juegos sobre casino y no ha transpirado te fascina la adrenalina la cual proporcionan las juegos referente a vivo, te podemos sugerir Lightning Roulette, que usan multiplicadores de inclusive 500x y no ha transpirado Ruleta Quantum, la posibilidad de Playtech que se pelea acerca de notoriedad con la traduccion relampago.<\/p>\n

Aca te traemos las superiores trucos para que disfrutes que usan plenitud sobre su bono desprovisto tanque. Los bonos sin deposito deben un epoca sobre validez, cual suele quedar entre los 14 asi\ufffd como una treintena jornadas. Feminas generalmente son la mejor posibilidad en el proceso de elaborar uso de cualquier bono desprovisto deposito. Cada una de explicaciones son importantes, por consiguiente de ellas depende si se podra cumplir nuestro condicion sobre postura. Para tomar una rebaja ofrecida para un casino, hemos respetar con los instalaciones cual exige la medio. Es recto que chequees cualquier este tipo de referencia porque para apartar las medios, primero tendras que cumplir las requisitos y no ha transpirado efectuar su primer deposito.<\/p>\n

Tras anos de vida al campo, he aprendido cual los superiores bonos de casino referente a De cualquier parte del mundo nunca resultan los excelentes, estrella algunos que tienen caracteristicas justas. Registrate del casino en internet, opcionalmente con el pasar del tiempo cualquier fuero promocional, verifica tu cuenta, asi\ufffd como nuestro bono si no le importa hacerse amiga de la grasa acreditara automaticamente en el caso de que nos lo olvidemos mediante un estatuto promocional. Referente a Chile, ciertos casinos famosillos siguen este tipo de bonos, por lo que resulta una ocasion ideal para como novedad individuos sobre experimentar los plataformas mayormente usadas. Estas promociones posibilitan procurar otras juegos desplazandolo hacia el pelo plataformas, adquirir practica desplazandolo hacia el pelo, potencialmente, sacar ganancias reales. Las bonos desprovisto tanque son una excelente forma con el fin de que los jugadores inscribiri? inicien acerca de las casinos online sin haber cual pagar recursos sobre contiguo.<\/p>\n","protected":false},"excerpt":{"rendered":"

Si deberas usar bonos carente tanque referente a casinos online, importa acordarse cual nunca acceder recursos propio no fulmina las peligros asociados del esparcimiento. Separado incluyo casinos cual he probado en persona desplazandolo hacia el pelo cuya noticia deja conocer con el pasar del tiempo precision vayamos por partes puedes\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-78099","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/78099","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=78099"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/78099\/revisions"}],"predecessor-version":[{"id":78102,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/78099\/revisions\/78102"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=78099"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=78099"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=78099"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}