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 <[email protected]> -
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 - [email protected]
+
+- 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 - [email protected]
-- 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 "ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ
ĢĤĦĨĪĬĮİIJĴĶĸĹĻĽĿÅÅÅ
ÅÅÅÅÅÅÅÅÅÅÅÅÅ
ŢŤŦŨŪŬŮŰŲŴŶŸŹŻŽÅ">
+ <!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 <[email protected]>,
+
+-->
+<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="."/>