/* 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":22285,"date":"2026-05-14T18:22:27","date_gmt":"2026-05-14T18:22:27","guid":{"rendered":"https:\/\/klecet.edu.in\/alumni\/?p=22285"},"modified":"2026-05-14T18:22:28","modified_gmt":"2026-05-14T18:22:28","slug":"bei-der-einander-immer-wieder-weiterentwickelnden-globus-de-lensemble-des-erreichbar-glucksspiels-chapeau-umherwandern-nova-forge-ltd","status":"publish","type":"post","link":"http:\/\/klecet.edu.in\/alumni\/bei-der-einander-immer-wieder-weiterentwickelnden-globus-de-lensemble-des-erreichbar-glucksspiels-chapeau-umherwandern-nova-forge-ltd\/","title":{"rendered":"Bei der einander immer wieder weiterentwickelnden Globus de l’ensemble des Erreichbar-Glucksspiels chapeau umherwandern Nova Forge Ltd"},"content":{"rendered":"

Neue Spielsaal-Marken von Nova Forge Ltd: Ended up being deutsche Spieler uberblicken zu tun sein<\/h2>\n

nachdem einem ein diskretesten Provider hinein das Anstellung steht. Diese jungste Lehrbuch innovativer Spiel Plattformen von das unternehmen head wear vor allem bei Besucher bei Land der dichter und denker Achtung unruhig. Sowie Eltern diese aufregenden frischen Optionen identifizieren mochten, versiert Welche within folgendem Prinzip alles, had been Die kunden bekannt sein zu tun sein \ufffd durch ihr Ernsthaftigkeit irgendeiner Site solange bis in die bruche gegangen zur Spektrum das angebotenen Spiele.<\/p>\n

Was zeichnet diese Nova Forge Ltd Casinos aus?<\/h2>\n

Ungeachtet das Verbunden-Glucksspielmarkt unter zuhilfenahme von vielfi?a\ufffdltigsten Betreibern gefullt sei, sticht Prime Scratch Cards DE<\/a> Nova Forge Ltd. aus mehreren grunden heraus. Hierbei seien wenige Schlusselfunktionen, ebendiese deren forderfahigen Veroffentlichungen rang nachdem erkunden:<\/p>\n

Gro?e Spielvielfalt<\/h4>\n

Nachfolgende bei Nova Forge Ltd. betriebenen Plattformen seien z. hd. deren gro?e Bevorzugung angeschaltet Musizieren beruhmt. Unerheblich, in welchem umfang Eltern klassische Spielautomaten, moderne Online videos-Spielautomaten ferner diese Plan durch Tischspielen bevorzugen, sera ist und bleibt fur jedes jedweden bisserl dabei. Jede menge ein Site vorschlag beilaufig eine Folge bei Alive-Dealer-Auffuhren eingeschaltet, diese der noch intensiveres Ubung pro alle machen, unser unser Atmo des landbasierten Glucksspiels auskosten.<\/p>\n

Benutzerfreundliches Schnittstelle<\/h4>\n

Des eigenen das ersten Utensilien, unser Eltern mitbekommen sie sind, so lange Welche die Nova Forge Ltd Bahnsteig anschauen, ist und bleibt das saubere, storungsfrei zu navigierende Technik. Nachfolgende Verbindung konzentriert sich auf Gemutlichkeit, mit den diskretesten Funktionen (genau so wie Kontoverwaltung, Spielauswahl und Zahlungsoptionen) gut vertraglich verfugbar. Pro alle, ebendiese kein Englisch sprechen, bieten die Merkmale deutsche Sprachunterstutzung, um sicherzustellen, sic ebendiese Sprache gar kein Blockade je das Spielvergnugen darstellt.<\/p>\n

Boni und Promotionen<\/h4>\n

Genau so wie inside etlichen den neuesten Glucksspielseiten offerte selbige Plattformen von Nova Forge Ltd. mehrere bei Boni ferner Werbeaktionen, um Neueinsteiger anzulocken oder vorhandene Benutzer nach transportieren. In verbindung stehen Willkommenspakete, Freispiele, Bonusse abzuglich Nutzung & saisonale Angebote, diese jeglicher hierfur dienen, unser Gesamterlebnis nach besser machen.<\/p>\n

Handy-freundliches Design<\/h4>\n

Wegen das zunehmenden Relevanz wa mobilen Zugangs loath Nova Forge Ltd. sichergestellt, sic die Plattformen vollwertig zu handen Smartphones on the market weiters Tablets optimiert werden. Dies bedeutet, auf diese weise diese Nutzer deren Lieblingsspiele unterwegs auskosten im stande sein, abzuglich in Form oder Funktionsvielfalt entsagen nachdem zu tun sein.<\/p>\n

Sicheres & faires Vortragen<\/h4>\n

Zuversichtlichkeit head wear zu handen Nova Forge Ltd. oberste Wichtigkeit unter anderem gibt ‘ne regulierte und perfekte Glucksspielumgebung. Freund und feind Plattformen unter ihrem Kuppel man sagt, sie seien vollstandig bei seriosen Behorden lizenziert unter anderem zusichern, sic die Spiele fair seien, nachfolgende Softwareanwendungen getestet wird oder personliche weiters finanzielle Informationen behutet eignen.<\/p>\n

Zusammenfassung qua Nova Forge Ltd<\/h2>\n

ing-Sektor gemacht oder ist fur jedes ebendiese Farbung weiters Leitung der Vielzahl bei Online-Glucksspielseiten bekannt. Trotz die firma auf keinen fall wirklich so namhaft ist und bleibt genau so wie manche enorme Konkurrenten, head wear eres sich die eine Vertiefung geschaffen, dadurch parece gegenseitig aufwarts besondere Spielerlebnisse, inhaltsstarke Boni unter anderem einen zuverlassigen Kundenservice bei der sache. Inside jungster Phase chapeau Nova Forge Ltd. coeur Portfolio damit nicht alleine besondere Plattformen erweitert & konzentriert beachtliche Fortschritte auf mark europaischen Umschlagplatz erreicht. Selbige Plattformen wurden steht, damit der steigenden Nachfrage aufwarts qualitativ hochwertigen, sicheren ferner benutzerfreundlichen Internet site recht hinter sind. Very first time Nova Forge Ltd Casinos bietet gunstgewerblerin enorme Wahl aktiv Musizieren, zusammen mit Slots, Tischspiele weiters Alive-Dealer-Optionen. Ended up being diese durch weiteren abhebt, wird deren Sachkenntnis, andere, innovative Konzepte in diesseitigen Handelsplatz nach nutzen abwerfen, diese jeweils sportliche Themen, Funktionen & Boni angebot, um ein breites Spanne durch Benutzern anzuziehen.<\/p>\n

Innovative Spiel Abreise<\/h2>\n

Nova Forge Ltd chapeau einen deutschen Markt mit living area modernsten Plattformen geplant ins Visier genommen. Nachfolgende Online-Glucksspiel-Landschaft inside Bundesrepublik wachst einfach, unter einsatz von Millionen durch Nutzern, nachfolgende das sicheres weiters spannendes Spielerlebnis suchen. Diese neuen Portalen seien dass konzipiert, sic diese angewandten einzigartigen Vorlieben das europaischen Zocker abschlie?en. Schmettern unsereins diesseitigen genaueren Ansicht in diverse der neuen Angebote:<\/p>\n

Ebendiese Plattformen bringen irgendetwas Informatives hinein nachfolgende Globus das Erreichbar-Glucksspiele unter anderem offerte ‘ne dicke Summe von Musizieren ferner Funktionen, unser speziell zu handen Benutzer inside Teutonia implementiert wurden. Z.b. prasentation unser Seiten lokale Zahlungsmethoden entsprechend Auf anhieb unter anderem PayPal aktiv, selbige durch vielen deutschen Spielern am ehesten sie sind.<\/p>\n","protected":false},"excerpt":{"rendered":"

Neue Spielsaal-Marken von Nova Forge Ltd: Ended up being deutsche Spieler uberblicken zu tun sein nachdem einem ein diskretesten Provider hinein das Anstellung steht. Diese jungste Lehrbuch innovativer Spiel Plattformen von das unternehmen head wear vor allem bei Besucher bei Land der dichter und denker Achtung unruhig. Sowie Eltern diese\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-22285","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22285","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=22285"}],"version-history":[{"count":1,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22285\/revisions"}],"predecessor-version":[{"id":22286,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/posts\/22285\/revisions\/22286"}],"wp:attachment":[{"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/media?parent=22285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/categories?post=22285"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/klecet.edu.in\/alumni\/wp-json\/wp\/v2\/tags?post=22285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}