Skip to content

XSLT 将废弃,需要在实现中移除 #132

@Linho1219

Description

@Linho1219

Chrome 预计将于 2026 年 11 月移除对 XSLT 的支持。详见 Removing XSLT for a more secure browser

src/utils/ttml-writer.ts 内使用了 XSLT 格式化。

export default function exportTTMLText(
	ttmlLyric: TTMLLyric,
	pretty = false,
): string {
	// ...

	if (pretty) {
		const xsltDoc = new DOMParser().parseFromString(
			[
				'<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">',
				'  <xsl:strip-space elements="*"/>',
				'  <xsl:template match="para[content-style][not(text())]">',
				'    <xsl:value-of select="normalize-space(.)"/>',
				"  </xsl:template>",
				'  <xsl:template match="node()|@*">',
				'    <xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>',
				"  </xsl:template>",
				'  <xsl:output indent="yes"/>',
				"</xsl:stylesheet>",
			].join("\n"),
			"application/xml",
		);

		const xsltProcessor = new XSLTProcessor();
		xsltProcessor.importStylesheet(xsltDoc);
		const resultDoc = xsltProcessor.transformToDocument(doc);

		return new XMLSerializer().serializeToString(resultDoc);
	}
	return new XMLSerializer().serializeToString(doc);
}

当前版本的实现中,没有出现调用 exportTTMLText 时传入 pretty = true 的情况,即这部分代码从未执行。

考虑移除。

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions