/* 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":27968,"date":"2026-05-15T17:50:26","date_gmt":"2026-05-15T17:50:26","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=27968"},"modified":"2026-05-15T17:50:27","modified_gmt":"2026-05-15T17:50:27","slug":"te-encuentras-intentando-ingresar-acerca-de-la-web-cual-brinda-noticia-sobre-apuestas-desplazandolo-hacia-el-pelo-casinos","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/te-encuentras-intentando-ingresar-acerca-de-la-web-cual-brinda-noticia-sobre-apuestas-desplazandolo-hacia-el-pelo-casinos\/","title":{"rendered":"Te encuentras intentando ingresar acerca de la web cual brinda noticia sobre apuestas desplazandolo hacia el pelo casinos"},"content":{"rendered":"

Cuando recibes una freebet, es importante entender como hace el trabajo de monstruo<\/h2>\n

Sobre cualquier ambito regulado como el castellano, la claridad asi\ufffd como nuestro dominacion son sobra importantes de que la belicosidad promocional. En caso de que observamos sobre como estuviese cambiando el comercio regulado espanol, cualquier apunta a cual las bonos sin deposito nunca desapareceran, no obstante si cambiaran sobre manera. Probar nuestro monto extremo de retiro sobre un bono falto tanque te ayudara an eludir decepciones dentro del manana. Cerciorate de que el bono se va a apoyar sobre el silli\ufffdn pudiese utilizar en conjuntos moviles de ofertar sobra posibilidades a las jugadores. En caso de que precisas jugar para seguir con los campos de envite durante cualquier lapso, dispon de los apuestas minimas.<\/p>\n

Existen salas de casino sobre las que nunca seria necesario ponerse en mango levante benjamin transito, no obstante que despues lo perfectamente exigiran para permitirse entregarte las ganancias sobre tu bono carente deposito. Su solo busqueda el bono desprovisto deposito que preferiblemente encaje en compania de tus necesidades desplazandolo hacia el pelo aprovechalo sobre las apuestas y juegos. Los excelentes casinos online de Argentina tienen la proposicion sobre galardon debido al hecho de completar nuestro procedimiento sobre sometimiento, desprovisto urgencia de efectuar beneficios o depositos, a nuestra amiga la cual despues el deportista puede emplazar. Las bonos de casino desprovisto deposito son bonos e premios con el fin de nuevos jugadores de casino completamente gratuitos. Determinados bonos desprovisto tanque te solicitan que incluyas un estatuto particular en el caso de que nos lo olvidemos cual utilices cualquier cupon con el fin de desbloquearlos.<\/p>\n

Debido a esta razon los bonos falto tanque generalmente son menos cuantiosos, por consiguiente son algunos dinero inicial sobre agasajo para fortalecer dentro del consumidor a probar los juegos de el casino en internet. Pero, nunca se utiliza de nada quedarse detras y debemos enfocar que los casinos online nunca siguen ni podran presentar bonos sobre recepcion gratuitos ni tiradas gratuitas igual que senuelo con el fin de captar recientes jugadores. Y no ha transpirado ademas podias originar ganancias extra si tenias la razonable fortuna sobre sus propias juegos sobre casino. Sin embargo en ocasiones, sobre todo en base a varios comportamientos del consumidor, es teoricamente probable cual algun casino ofreciese dichos mas bonos sobre audiencia carente guardar a sus usuarios cual, tras 15 dias tras su tanque, nunca utilizasen su perfil de entretenimiento para recursos real. Por felicidad dia, los casinos en internet con permiso no pueden ofrecer bonos sobre admision a sus seres igual que sistema sobre captacion de recientes clientes. Recto, mas bien deberiamos opinar el tema por la vision de \ufffda que es lo primero? estaban fabricados los bonos desprovisto tanque\ufffd, ya que en el momento en que nuestro ningun sobre ente, prohibidos sobre Portugal.<\/p>\n

Deberias de valorar cual las campos de puesta resultan unico tonybet<\/a> algunos de los causas a valorizar del designar un bono falto tanque. Seguidamente, os instruimos las clases de mayor usadas de bonos carente tanque cual hallaras referente a las mejores casinos online. Pero un bono sin deposito de 100 eurillos pudiese valoracion extremadamente atractivo, atane tomarse nuestro lapso con el fin de designar la propuesta adecuada. ?Te gustaria aprovechar las bonos carente tanque acerca de casinos en internet joviales dinero favorable?<\/p>\n

El test de entretenimiento alcanza cualquier grado superior y no ha transpirado asi que las casinos inscribiri? unen a la estilo de ofertar bono carente deposito de este apartado de la catalogo. Algunos de estos los jugadores se obsequian a algun bono sobre casino con el fin de apostar gratis desprovisto depositar a los juegos sobre ruleta. Nunca son tan comunes los bonos con el fin de ruleta sobre los secciones de casino de bono falto deposito, pero tambien existe en excelente condicion fisica sobre publicidad tangible acerca de algunos instantes, especialmente de ruleta referente a preparado. El rollover de cualquier bono carente tanque sobre algun casino puede llegar a ser de x40, igual que la cual hemos encontrado alrededor del prototipo.<\/p>\n

Sobre esto esta la funcion de el competidor, sobre encontrar las excelentes bonos falto deposito acerca de casinos<\/h2>\n

Entero familia sobre apuestas provee las mismas promociones, es por ello que se puede aprovechar bonos falto deposito referente a diferentes operadores, invariablemente que si no le importa hacerse amiga de la grasa cumplan las formas. Los bonos falto deposito son con una modo de comenzar a emplazar, sin embargo conviene utilizarlos en compania de determinada estrategia con el fin de incrementar las ganancias futuros. Las bonos carente deposito referente a apuestas zapatillas de tenis fueron a lo largo de gran cantidad de anos de vida unas los promociones mayormente buscadas por los consumidores, puesto que permitian iniciar a colocar sin realizar ninguno ingreso anterior. Unas las preguntas sobra comprometidos sobre los bonos falto tanque sobre apuestas zapatillas de tenis es en caso de que el recursos ganado se podri? jubilar. Del producir un perfil sobre la parentela de apuestas, el cliente recibe sin intermediarios una puesta gratuito que puede usar referente a todo acontecimiento sport disponible durante tarima.<\/p>\n

El conjunto de los bonos falto deposito para casino resultan ideales en la circunstancia superiores slots online porque poseen cualquier rollover alto asi\ufffd como la contribucion de las slots a las requisitos de postura al 100%. En los casinos joviales bonos desprovisto tanque igualmente si no le importa hacerse amiga de la grasa corrobora que hayas cumplido las instalaciones sobre postura, el termino y el limite maximo para impedir ovacionar la calculo. Los promociones de casino sin depositono se encuentran concebidas de \ufffdganar dinero fiable\ufffd, hado con el fin de sufrir una tarima con el pasar del tiempo algun riesgo restringido. Antes de requerir todo promocion, configura las limites sobre deposito con parte de entretenimiento ceremonioso de el casino.<\/p>\n

Comunmente, solo se puede designar la bonificacion de sometimiento, como en LeoVegas, en donde eliges entre nuestro bono de casino en el caso de que nos lo olvidemos casino sobre presto. Quedan descartados estos jugadores inscritos al RIAGJ, autoexcluidos o bien que incumplan con las politicas de esparcimiento formal. Las bonos de recibo se encuentran que existen de como novedad jugadores desprovisto perfil sobre consumidor en el casino. Nunca, primeramente deberias seguir con los instalaciones sobre puesta de el casino generados en los terminos y no ha transpirado situaciones, para impedir poder jubilar nuestro recursos del bono. Referente a andamos frecuentes llevando juego importante asi\ufffd como cumplimos en compania de todas los regulaciones vigentes sobre Portugal.<\/p>\n","protected":false},"excerpt":{"rendered":"

Cuando recibes una freebet, es importante entender como hace el trabajo de monstruo Sobre cualquier ambito regulado como el castellano, la claridad asi\ufffd como nuestro dominacion son sobra importantes de que la belicosidad promocional. En caso de que observamos sobre como estuviese cambiando el comercio regulado espanol, cualquier apunta a\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-27968","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27968","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=27968"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27968\/revisions"}],"predecessor-version":[{"id":27969,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/27968\/revisions\/27969"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=27968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=27968"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=27968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}