Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package suse-xsl-stylesheets for openSUSE:Factory checked in at 2023-07-27 16:50:12 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/suse-xsl-stylesheets (Old) and /work/SRC/openSUSE:Factory/.suse-xsl-stylesheets.new.32662 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "suse-xsl-stylesheets" Thu Jul 27 16:50:12 2023 rev:67 rq:1100888 version:2.92.0 Changes: -------- --- /work/SRC/openSUSE:Factory/suse-xsl-stylesheets/suse-xsl-stylesheets.changes 2023-05-21 19:08:25.258336661 +0200 +++ /work/SRC/openSUSE:Factory/.suse-xsl-stylesheets.new.32662/suse-xsl-stylesheets.changes 2023-07-27 16:50:27.313694506 +0200 @@ -1,0 +2,10 @@ +Wed Jul 26 15:08:15 UTC 2023 - Thomas Schraitle <thomas.schrai...@suse.com> - 2.92.0 + +- Update 2.92.0 + - Add <phrase role="style:..."> support by @tomschr in #548 + - Missing xsl:attribute to create "lang" attribute by @tomschr in #550 + - Fix "Request for a label of unexpected element" by @tomschr in #554 + - Fix #524: Add footnote template in mode=xref-to by @tomschr in #553 + - Implement JSON-LD by @tomschr in #552 + +------------------------------------------------------------------- Old: ---- suse-xsl-2.91.2.tar.bz2 New: ---- suse-xsl-2.92.0.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ suse-xsl-stylesheets.spec ++++++ --- /var/tmp/diff_new_pack.CrGEDS/_old 2023-07-27 16:50:28.385700563 +0200 +++ /var/tmp/diff_new_pack.CrGEDS/_new 2023-07-27 16:50:28.389700586 +0200 @@ -22,7 +22,7 @@ %define suse_styles_dir %{db_xml_dir}/stylesheet # Name: suse-xsl-stylesheets -Version: 2.91.2 +Version: 2.92.0 Release: 0 Summary: SUSE-Branded Stylesheets for DocBook License: GPL-2.0-only OR GPL-3.0-only ++++++ suse-xsl-2.91.2.tar.bz2 -> suse-xsl-2.92.0.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-2.91.2/ChangeLog new/suse-xsl-2.92.0/ChangeLog --- old/suse-xsl-2.91.2/ChangeLog 2023-05-12 08:57:18.000000000 +0200 +++ new/suse-xsl-2.92.0/ChangeLog 2023-07-26 17:00:33.000000000 +0200 @@ -1,7 +1,17 @@ ------------------------------------------------------------------- +Wed Jul 26 16:57:00 UTC 2022 - toms...@users.noreply.github.com + +- Update 2.92.0 + - Add #552: Implement first attempt of JSON-LD (DOCTEAM-1061) + - Fix #524: Add footnote template in mode="xref-to" + - Fix #554: "Request for a label of unexpected element" + - Fix #550: Add missing xsl:attribute to create "lang" attribute + - Add #548: Add support for <phrase role="style:..."> + +------------------------------------------------------------------- Fri May 12 08:56:00 UTC 2022 - toms...@users.noreply.github.com -- Update 2.92.2 +- Update 2.91.2 - Use search.description.length and search.title.length - Correct copy-and-paste error for "twitter:*": Use <meta name="..."> instead of <meta property="..."> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-2.91.2/Makefile new/suse-xsl-2.92.0/Makefile --- old/suse-xsl-2.91.2/Makefile 2023-05-12 08:57:18.000000000 +0200 +++ new/suse-xsl-2.92.0/Makefile 2023-07-26 17:00:33.000000000 +0200 @@ -11,7 +11,7 @@ SHELL := /bin/bash PACKAGE := suse-xsl-stylesheets -VERSION := 2.91.2 +VERSION := 2.92.0 CDIR := $(shell pwd) SUSE_XML_PATH := $(PREFIX)/xml/suse DB_XML_PATH := $(PREFIX)/xml/docbook diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-2.91.2/suse2022-ns/xhtml/docbook.xsl new/suse-xsl-2.92.0/suse2022-ns/xhtml/docbook.xsl --- old/suse-xsl-2.91.2/suse2022-ns/xhtml/docbook.xsl 2023-05-12 08:57:18.000000000 +0200 +++ new/suse-xsl-2.92.0/suse2022-ns/xhtml/docbook.xsl 2023-07-26 17:00:33.000000000 +0200 @@ -73,7 +73,7 @@ <xsl:include href="tracker.meta.xsl"/> <xsl:include href="meta.xsl"/> - + <xsl:include href="json-ld.xsl"/> <!-- Actual templates start here --> @@ -352,6 +352,11 @@ <xsl:with-param name="socialmedia.title" select="$socialmedia.title"/> <xsl:with-param name="socialmedia.description" select="$socialmedia.description"/> </xsl:call-template> + + <xsl:call-template name="generate-json-ld"> + <xsl:with-param name="node" select="$node"/> + </xsl:call-template> + </xsl:template> @@ -704,18 +709,20 @@ <xsl:call-template name="root.messages"/> <html> - <xsl:choose> - <xsl:when test="$rootid"> - <xsl:call-template name="l10n.language"> - <xsl:with-param name="target" select="key('id', $rootid)"/> - </xsl:call-template> - </xsl:when> - <xsl:otherwise> - <xsl:call-template name="l10n.language"> - <xsl:with-param name="target" select="/*[1]"/> - </xsl:call-template> - </xsl:otherwise> - </xsl:choose> + <xsl:attribute name="lang"> + <xsl:choose> + <xsl:when test="$rootid"> + <xsl:call-template name="l10n.language"> + <xsl:with-param name="target" select="key('id', $rootid)"/> + </xsl:call-template> + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="l10n.language"> + <xsl:with-param name="target" select="/*[1]"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:attribute> <xsl:call-template name="root.attributes"/> <head> <xsl:call-template name="system.head.content"> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-2.91.2/suse2022-ns/xhtml/inline.xsl new/suse-xsl-2.92.0/suse2022-ns/xhtml/inline.xsl --- old/suse-xsl-2.91.2/suse2022-ns/xhtml/inline.xsl 2023-05-12 08:57:18.000000000 +0200 +++ new/suse-xsl-2.92.0/suse2022-ns/xhtml/inline.xsl 2023-07-26 17:00:33.000000000 +0200 @@ -8,6 +8,21 @@ --> + +<!DOCTYPE xsl:stylesheet [ + <!ENTITY ascii.uc "ABCDEFGHIJKLMNOPQRSTUVWXYZ"> + <!ENTITY ascii.lc "abcdefghijklmnopqrstuvwxy"> + <!ENTITY ru.uc "ÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐÐРСТУФХЦЧШЩЪЫЬÐЮЯ"> + <!ENTITY ru.lc "абвгдежзийклмнопÑÑÑÑÑÑ ÑÑÑÑÑÑÑÑÑÑ"> + <!ENTITY lat1.uc "ÃÃÃÃÃà ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃ"> + <!ENTITY lat1.lc "à áâãäåæçèéêëìÃîïðñòóôõöøùúûüýþ"> + <!ENTITY lat-ext-a.uc "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ Ä¢Ä¤Ä¦Ä¨ÄªÄ¬Ä®Ä°Ä²Ä´Ä¶Ä¸Ä¹Ä»Ä½Ä¿ÅÅÅ ÅÅÅÅÅÅÅÅÅÅÅÅŠŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽÅ"> + <!ENTITY lat-ext-a.lc "ÄÄÄ ÄÄÄÄÄÄÄÄÄÄÄÄÄġģĥħĩīÄįıijĵķĸĺļľÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅÅšţťŧũūÅůűųŵŷÿźżžÅ"> + + <!ENTITY uppercase "'&ascii.uc;&lat1.uc;&lat-ext-a.uc;&ru.uc;'"> + <!ENTITY lowercase "'&ascii.lc;&lat1.lc;&lat-ext-a.lc;&ru.lc;'"> +]> + <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://docbook.org/ns/docbook" @@ -157,6 +172,91 @@ </span> </xsl:template> + <xsl:template match="d:phrase[contains(@role, 'style:')]" name="phrase-style"> + <xsl:variable name="stylecandidate" select="substring-after(@role, 'style:')"/> + <xsl:variable name="style" select="$stylecandidate"/> + + <xsl:choose> + <xsl:when test="$style = 'uppercase'"> + <xsl:value-of select="translate(text(), &lowercase;, &uppercase;)"/> + <xsl:apply-templates select="*"/> + </xsl:when> + <xsl:when test="$style = 'lowercase'"> + <xsl:value-of select="translate(text(), &uppercase;, &lowercase;)"/> + <xsl:apply-templates select="*"/> + </xsl:when> + <!-- Just capitalize the first character; leave anything else unmodified --> + <xsl:when test="$style = 'sentencecase'"> + <xsl:variable name="firstchar" select="substring(translate(text()[1], ' ', ''), 1, 1)"/> + <xsl:variable name="rest" select="substring-after(text(), $firstchar)"/> + + <xsl:choose> + <!-- Only text, no other elements --> + <xsl:when test="$firstchar != '' and count(*)=0"> +<!-- <xsl:message>### phrase Case 1: "<xsl:value-of select="$firstchar"/>"</xsl:message>--> + <xsl:value-of select="concat(translate($firstchar, &lowercase;, &uppercase;), $rest)"/> + </xsl:when> + + <!-- No text before first child element --> + <xsl:when test="$firstchar = '' and count(*)>0"> +<!-- <xsl:message>### phrase Case 2</xsl:message>--> + <xsl:apply-templates select="*[1]" mode="phrase-sentencecase"/> + </xsl:when> + + <!-- Text with child element(s) --> + <xsl:when test="$firstchar != '' and count(*)>0"> +<!-- <xsl:message>### phrase Case 3: "<xsl:value-of select="concat($firstchar, $rest)"/>"</xsl:message>--> + <xsl:value-of select="concat(translate($firstchar, &lowercase;, &uppercase;), $rest)"/> + <xsl:apply-templates/> + </xsl:when> + + <xsl:otherwise></xsl:otherwise> + </xsl:choose> + </xsl:when> + <!--<xsl:when test="$style = 'titlecase'"> + <xsl:apply-templates select="*"/> + </xsl:when>--> + <xsl:otherwise> + <!-- We don't have any match, so just don't change anything --> + <xsl:apply-templates/> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + + <xsl:template match="d:*" mode="phrase-sentencecase"> + <xsl:apply-templates select="."/> + </xsl:template> + + + <xsl:template match="d:phrase" mode="phrase-sentencecase"> + <xsl:variable name="node"> + <xsl:apply-templates select="."/> + <xsl:apply-templates select="parent::*/*[position() >1]"/> + </xsl:variable> + <xsl:variable name="rtf" select="exsl:node-set($node)"/> + <xsl:variable name="firstchar" select="substring(translate(text(), ' ', ''), 1, 1)"/> + <xsl:variable name="rest" select="substring-after(text(), $firstchar)"/> + +<!-- <xsl:message> * * * <xsl:value-of select="concat(local-name(.), ': ', count($rtf))"/>: "<xsl:value-of select="concat(translate($firstchar, &lowercase;, &uppercase;), $rest)"/>"</xsl:message>--> + + <xsl:choose> + <xsl:when test="$firstchar != '' and count(*)=0"> + <xsl:value-of select="concat(translate($firstchar, &lowercase;, &uppercase;), $rest)"/> + </xsl:when> + + <xsl:when test="$firstchar = '' and count(*)>0"> + <xsl:apply-templates select="*[1]" mode="phrase-sentencecase"/> + </xsl:when> + + <xsl:when test="$firstchar != '' and count(*)>0"> + <xsl:value-of select="concat(translate($firstchar, &lowercase;, &uppercase;), $rest)"/> + <xsl:apply-templates/> + </xsl:when> + </xsl:choose> + + </xsl:template> + <xsl:template match="d:productname"> <xsl:call-template name="inline.charseq"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-2.91.2/suse2022-ns/xhtml/json-ld.xsl new/suse-xsl-2.92.0/suse2022-ns/xhtml/json-ld.xsl --- old/suse-xsl-2.91.2/suse2022-ns/xhtml/json-ld.xsl 1970-01-01 01:00:00.000000000 +0100 +++ new/suse-xsl-2.92.0/suse2022-ns/xhtml/json-ld.xsl 2023-07-26 17:00:33.000000000 +0200 @@ -0,0 +1,305 @@ +<!-- + + Purpose: + Provide metadata in the form of a JSON-LD + + Parameters: + * $generate.json-ld (default 1): generate the structure (=1) or not (=0) + + Output: + HTML <script type="application/ld+json"> tag containing JSON-LD + + Specification: + https://schema.org/TechArticle + + Example: + <script type="application/ld+json"> + { + "@context": "https://schema.org/", + "@type": "TechArticle", + "name": "Getting Started with ExampleApp", + "headline": "ExampleApp Documentation", + "abstract": "A short abstract of ExampleApp", + "description": "A comprehensive guide to get started with ExampleApp.", + "author": { + "@type": "Person", + "name": "Tux Penguin", + "role": "Writer" + }, + "datePublished": "2023-07-24", + "dateModified": "2023-07-25", + "publisher": { + "@type": "Organization", + "name": "SUSE", + "logo": { + "@type": "ImageObject", + "url": "https://www.suse.com/assets/img/suse-white-logo-green.svg" + } + } + } + </script> + + Authors: Thomas Schraitle <t...@opensuse.org>, + +--> +<xsl:stylesheet version="1.0" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:d="http://docbook.org/ns/docbook" + xmlns:date="http://exslt.org/dates-and-times" + xmlns:exsl="http://exslt.org/common" + xmlns="http://www.w3.org/1999/xhtml" + exclude-result-prefixes="date exsl d"> + + <xsl:template name="json-group"> + <xsl:param name="key"/> + <xsl:param name="type"/> + <xsl:param name="indent"><xsl:text> </xsl:text></xsl:param> + <xsl:param name="body"/> + <xsl:param name="comma" select="true()"/> + + <xsl:value-of select="concat($indent, '"', $key, '": {')"/> + <xsl:value-of select="$body"/> + <xsl:value-of select="concat($indent, '}')"/> + <xsl:if test="$comma">,</xsl:if> + </xsl:template> + + + <xsl:template name="generate-json-ld"> + <xsl:param name="node"/> + <xsl:if test="$generate.json-ld != 0"> + <xsl:message>INFO: Going to generate JSON-LD...</xsl:message> + <script type="application/ld+json"> +{ + "@context": "http://schema.org", + "@type": "TechArticle",<!-- + + --> + <xsl:call-template name="json-ld-headline"/> + <xsl:call-template name="json-ld-abstract"/> + <xsl:call-template name="json-ld-keywords"/> + <xsl:call-template name="json-ld-authors"/> + <xsl:call-template name="json-ld-authorgroup"/> + <xsl:call-template name="json-ld-datePublished"/> + <xsl:call-template name="json-ld-dateModified"/> + <xsl:call-template name="json-ld-version"/> + <xsl:call-template name="json-ld-publisher"/> +} + </script> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:template> + + <xsl:template name="json-ld-headline"> + <xsl:param name="node" select="."/> + <xsl:variable name="headline" select="($node/d:info/d:meta[@name='title'] | $node/d:info/d:title | $node/d:title)[last()]"/> + "headline": "<xsl:value-of select="normalize-space($headline)"/>", + </xsl:template> + + <xsl:template name="json-ld-abstract"> + <xsl:param name="node" select="."/> + <xsl:if test="$node/d:info/d:abstract"> + <xsl:variable name="abstract"> + <xsl:call-template name="ellipsize.text"> + <xsl:with-param name="input"> + <xsl:choose> + <xsl:when test="$node/d:info/d:meta[@name = 'description']"> + <xsl:value-of select="normalize-space($node/d:info/d:meta[@name = 'description'][1])" /> + </xsl:when> + <xsl:when test="$node/d:info/d:abstract or $node/d:info/d:highlights"> + <xsl:for-each select="($node/d:info[1]/d:abstract[1] | $node/d:info[1]/d:highlights[1])[1]/*"> + <xsl:value-of select="normalize-space(.)" /> + <xsl:if test="position() < last()"> + <xsl:text> </xsl:text> + </xsl:if> + </xsl:for-each> + </xsl:when> + </xsl:choose> + </xsl:with-param> + </xsl:call-template> + </xsl:variable> + + <xsl:if test="$abstract != ''"> + "abstract": "<xsl:value-of select="$abstract"/>", + </xsl:if> + </xsl:if> + </xsl:template> + + <xsl:template name="json-ld-keywords"> + <xsl:param name="node" select="."/> + <xsl:variable name="keywords" select="$node/d:info/d:keywordset"/> + + <xsl:if test="$keywords"> + "keywords": [ + <xsl:for-each select="$keywords/d:keyword"> + <xsl:value-of select="concat('"', normalize-space(.), '"')"/> + <xsl:if test="position() != last()">, </xsl:if> + </xsl:for-each> + ], + </xsl:if> + </xsl:template> + + <xsl:template name="json-ld-authors"> + <xsl:param name="node" select="."/> + <xsl:choose> + <xsl:when test="not($node/d:info/d:author)"/> + <xsl:when test="count($node/d:info/d:author) = 1"> + <xsl:variable name="person"> + <xsl:call-template name="person.name"> + <xsl:with-param name="node" select="$node/d:info/d:author"/> + </xsl:call-template> + </xsl:variable> + "author": { + "@type": "Person", + "name": "<xsl:value-of select="$person"/>", + "role": "Writer" + }, + </xsl:when> + <xsl:otherwise> + <xsl:variable name="authors"> + <d:info> + <d:authorgroup> + <xsl:copy-of + select="$node/d:info/d:author | $node/d:info/d:corpauthor | $node/d:info/d:othercredit | $node/d:info/d:editor" + /> + </d:authorgroup> + </d:info> + </xsl:variable> + <xsl:variable name="rtf-authors" select="exsl:node-set($authors)"/> + <xsl:call-template name="json-ld-authorgroup"> + <xsl:with-param name="node" select="$rtf-authors"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="json-ld-authorgroup"> + <xsl:param name="node" select="."/> + <xsl:for-each select="$node/d:info/d:authorgroup"> + "author": [<xsl:call-template name="json-ld-person.name.list"/> + ], + </xsl:for-each> + </xsl:template> + + <xsl:template name="json-ld-version"> + <xsl:param name="node" select="."/> + <xsl:variable name="version" select="($node/d:info/d:productnumber)"/> + + <xsl:if test="$version != ''"> + "version": "<xsl:value-of select="$version"/>", + </xsl:if> + </xsl:template> + + <xsl:template name="json-ld-person.name.list"> + <xsl:param name="node" select="."/> + <xsl:param name="person.list" select="$node/d:author|$node/d:corpauthor|$node/d:othercredit|$node/d:editor"/> + <xsl:param name="person.count" select="count($person.list)"/> + <xsl:param name="count" select="1"/> + + <xsl:choose> + <xsl:when test="$count > $person.count"></xsl:when> + <xsl:otherwise> + <xsl:variable name="name"> + <xsl:call-template name="person.name"> + <xsl:with-param name="node" select="$person.list[position()=$count]"/> + </xsl:call-template> + </xsl:variable> + { + "@type": "Person", + "name": "<xsl:value-of select="string($name)"/>", + "role": "<xsl:choose> +<!-- <xsl:when test="local-name($person.list[position()=$count]) = 'author'">Writer</xsl:when>--> + <xsl:when test="local-name($person.list[position()=$count]) = 'editor'">Editor</xsl:when> + <xsl:when test="local-name($person.list[position()=$count]) = 'othercredit'">Contributor</xsl:when> + <xsl:otherwise>Writer</xsl:otherwise> + </xsl:choose>" + }<xsl:if test="$count < $person.count">, </xsl:if> + <xsl:call-template name="json-ld-person.name.list"> + <xsl:with-param name="person.list" select="$person.list"/> + <xsl:with-param name="person.count" select="$person.count"/> + <xsl:with-param name="count" select="$count+1"/> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="json-ld-datePublished"> + <xsl:param name="node" select="."/> + <xsl:variable name="date"> + <xsl:choose> + <!-- We look at different tags to extract some date information. + Depending on which tag(s) are available. + + TODO: check format. It must be in ISO format. + --> + <xsl:when test="$node/d:info/d:meta[@name='published']"> + <xsl:value-of select="string($node/d:info/d:meta[@name='published'])"/> + </xsl:when> + <xsl:when test="$node/d:info/d:pubdate"> + <xsl:value-of select="string($node/d:info/d:pubdate)"/> + </xsl:when> + <xsl:when test="$node/d:info/d:date"> + <xsl:value-of select="string($node/d:info/d:pubdate)"/> + </xsl:when> + <xsl:when test="$node/d:info/d:revhistory/d:revision[1]/d:date"> + <xsl:value-of select="string($node/d:info/d:revhistory/d:revision[1]/d:date)"/> + </xsl:when> + </xsl:choose> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$date != ''"> + "datePublished": "<xsl:value-of select="normalize-space($date)"/>", + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">warn</xsl:with-param> + <xsl:with-param name="context-desc">JSON-LD</xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>Could not create "datePublished" entry as no element was appropriate.</xsl:text> + </xsl:with-param> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="json-ld-dateModified"> + <xsl:variable name="date"> + <xsl:choose> + <xsl:when test="function-available('date:date-time') or + function-available('date:dateTime')"> + <xsl:call-template name="datetime.format"> + <xsl:with-param name="date" select="date:date-time()"/> + <xsl:with-param name="format">Y-m-d</xsl:with-param><!-- ISO --> + </xsl:call-template> + </xsl:when> + </xsl:choose> + </xsl:variable> + + <xsl:choose> + <xsl:when test="$date != ''"> + "dateModified": "<xsl:value-of select="normalize-space($date)"/>", + </xsl:when> + <xsl:otherwise> + <xsl:call-template name="log.message"> + <xsl:with-param name="level">warn</xsl:with-param> + <xsl:with-param name="context-desc">JSON-LD</xsl:with-param> + <xsl:with-param name="message"> + <xsl:text>Could not create "dateModified" entry as no extension was found.</xsl:text> + </xsl:with-param> + </xsl:call-template> + </xsl:otherwise> + </xsl:choose> + </xsl:template> + + <xsl:template name="json-ld-publisher"> + "publisher": { + "@type": "Organization", + "name": "SUSE", + "logo": { + "@type": "ImageObject", + "url": "https://www.suse.com/assets/img/suse-white-logo-green.svg" + } + } + </xsl:template> + +</xsl:stylesheet> \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-2.91.2/suse2022-ns/xhtml/param.xsl new/suse-xsl-2.92.0/suse2022-ns/xhtml/param.xsl --- old/suse-xsl-2.91.2/suse2022-ns/xhtml/param.xsl 2023-05-12 08:57:18.000000000 +0200 +++ new/suse-xsl-2.92.0/suse2022-ns/xhtml/param.xsl 2023-07-26 17:00:33.000000000 +0200 @@ -458,5 +458,8 @@ <xsl:param name="include.ssi.body">/docserv/fragments/{{#language#}}/suse-body.fragment.html</xsl:param> <xsl:param name="include.ssi.footer">/docserv/fragments/{{#language#}}/suse-footer.fragment.html</xsl:param> + <!-- Should we generate a JSON-LD structure? 0=no, 1=yes --> + <xsl:param name="generate.json-ld" select="0"/> + <xsl:variable name="placeholder.ssi.language">{{#language#}}</xsl:variable> </xsl:stylesheet> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-2.91.2/suse2022-ns/xhtml/sections.xsl new/suse-xsl-2.92.0/suse2022-ns/xhtml/sections.xsl --- old/suse-xsl-2.91.2/suse2022-ns/xhtml/sections.xsl 2023-05-12 08:57:18.000000000 +0200 +++ new/suse-xsl-2.92.0/suse2022-ns/xhtml/sections.xsl 2023-07-26 17:00:33.000000000 +0200 @@ -15,6 +15,12 @@ xmlns:dm="urn:x-suse:ns:docmanager" exclude-result-prefixes="exsl dm"> + + <xsl:template match="d:info" mode="label.markup"> + <!-- Delegate it to the parent element --> + <xsl:apply-templates select=".." mode="label.markup"/> + </xsl:template> + <xsl:template name="create.header.title"> <xsl:param name="node" select="."/> <xsl:param name="level" select="0"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/suse-xsl-2.91.2/suse2022-ns/xhtml/xref.xsl new/suse-xsl-2.92.0/suse2022-ns/xhtml/xref.xsl --- old/suse-xsl-2.91.2/suse2022-ns/xhtml/xref.xsl 2023-05-12 08:57:18.000000000 +0200 +++ new/suse-xsl-2.92.0/suse2022-ns/xhtml/xref.xsl 2023-07-26 17:00:33.000000000 +0200 @@ -77,6 +77,21 @@ <xsl:apply-templates select="."/> </xsl:template> + <xsl:template match="d:footnote" mode="xref-to"> + <xsl:param name="referrer"/> + <xsl:param name="xrefstyle"/> + <xsl:param name="verbose" select="1"/> + <xsl:variable name="href"> + <xsl:text>ftn.</xsl:text> + <xsl:call-template name="object.id"> + <xsl:with-param name="object" select="."/> + </xsl:call-template> + </xsl:variable> + + <a href="{$href}"> + <sup>[<xsl:apply-templates select="." mode="footnote.number"/>]</sup> + </a> + </xsl:template> <xsl:template match="d:xref" name="xref"> <xsl:variable name="context" select="."/>