@pretextbook/pretext-html 0.12.0 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -5733,9 +5733,7 @@ along with PreTeXt. If not, see <http://www.gnu.org/licenses/>.
5733
5733
  </xsl:template>
5734
5734
 
5735
5735
  <xsl:template match="ul" mode="latex-list-label">
5736
- <xsl:variable name="format-code">
5737
- <xsl:apply-templates select="." mode="format-code" />
5738
- </xsl:variable>
5736
+ <xsl:variable name="format-code" select="./@pi:format-code"/>
5739
5737
  <xsl:choose>
5740
5738
  <xsl:when test="$format-code = 'disc'">\ptxlistdisc</xsl:when>
5741
5739
  <xsl:when test="$format-code = 'circle'">\ptxlistcircle</xsl:when>
@@ -5748,26 +5746,6 @@ along with PreTeXt. If not, see <http://www.gnu.org/licenses/>.
5748
5746
  </xsl:template>
5749
5747
 
5750
5748
 
5751
- <!-- Utility template to translate unordered -->
5752
- <!-- list level to HTML list-style-type -->
5753
- <!-- This is similar to Firefox default choices -->
5754
- <!-- but different in the fourth slot -->
5755
- <!-- disc, circle, square, disc -->
5756
- <xsl:template match="*" mode="latex-unordered-list-label-default">
5757
- <xsl:variable name="level">
5758
- <xsl:apply-templates select="." mode="unordered-list-level" />
5759
- </xsl:variable>
5760
- <xsl:choose>
5761
- <xsl:when test="$level='0'">\ptxlistdisc</xsl:when>
5762
- <xsl:when test="$level='1'">\ptxlistcircle</xsl:when>
5763
- <xsl:when test="$level='2'">\ptxlistsquare</xsl:when>
5764
- <xsl:when test="$level='3'">\ptxlistdisc</xsl:when>
5765
- <xsl:otherwise>
5766
- <xsl:message>PTX:ERROR: unordered list is more than 4 levels deep</xsl:message>
5767
- </xsl:otherwise>
5768
- </xsl:choose>
5769
- </xsl:template>
5770
-
5771
5749
  <!-- Lists themselves -->
5772
5750
  <!-- If columns are specified, we -->
5773
5751
  <!-- wrap in the multicolumn environment -->
@@ -1131,11 +1131,21 @@ along with PreTeXt. If not, see <http://www.gnu.org/licenses/>.
1131
1131
  <!-- Add a question mark, then grab leading substring -->
1132
1132
  <!-- This will fail if "?" is encoded -->
1133
1133
  <xsl:variable name="no-query-string" select="substring-before(concat($filename, '?'), '?')" />
1134
+ <!-- Reduce to the last path segment first, else a period in a host -->
1135
+ <!-- name or a directory ("media.w3.org", "v1.2") would be read as -->
1136
+ <!-- the start of an extension. The leading slash is what makes -->
1137
+ <!-- "substring-after-last" return a bare filename unchanged. -->
1138
+ <xsl:variable name="final-segment">
1139
+ <xsl:call-template name="substring-after-last">
1140
+ <xsl:with-param name="input" select="concat('/', $no-query-string)" />
1141
+ <xsl:with-param name="substr" select="'/'" />
1142
+ </xsl:call-template>
1143
+ </xsl:variable>
1134
1144
  <!-- get extension after last period -->
1135
1145
  <!-- will return empty if no extension -->
1136
1146
  <xsl:variable name="extension">
1137
1147
  <xsl:call-template name="substring-after-last">
1138
- <xsl:with-param name="input" select="$no-query-string" />
1148
+ <xsl:with-param name="input" select="$final-segment" />
1139
1149
  <xsl:with-param name="substr" select="'.'" />
1140
1150
  </xsl:call-template>
1141
1151
  </xsl:variable>
@@ -324,6 +324,125 @@ along with PreTeXt. If not, see <http://www.gnu.org/licenses/>.
324
324
  </xsl:variable>
325
325
 
326
326
 
327
+ <!--========================================================================-->
328
+ <!-- test file-extension -->
329
+ <xsl:variable name="file-extension-bare">
330
+ <xsl:variable name="test-val">
331
+ <xsl:call-template name="file-extension">
332
+ <xsl:with-param name="filename" select="'movie.mp4'"/>
333
+ </xsl:call-template>
334
+ </xsl:variable>
335
+ <xsl:call-template name="assert-equal">
336
+ <xsl:with-param name="expected" select="'mp4'"/>
337
+ <xsl:with-param name="actual" select="$test-val"/>
338
+ <xsl:with-param name="test-name" select="'file-extension-bare'"/>
339
+ </xsl:call-template>
340
+ </xsl:variable>
341
+
342
+ <xsl:variable name="file-extension-none">
343
+ <xsl:variable name="test-val">
344
+ <xsl:call-template name="file-extension">
345
+ <xsl:with-param name="filename" select="'movie'"/>
346
+ </xsl:call-template>
347
+ </xsl:variable>
348
+ <xsl:call-template name="assert-equal">
349
+ <xsl:with-param name="expected" select="''"/>
350
+ <xsl:with-param name="actual" select="$test-val"/>
351
+ <xsl:with-param name="test-name" select="'file-extension-none'"/>
352
+ </xsl:call-template>
353
+ </xsl:variable>
354
+
355
+ <xsl:variable name="file-extension-uppercase">
356
+ <xsl:variable name="test-val">
357
+ <xsl:call-template name="file-extension">
358
+ <xsl:with-param name="filename" select="'MOVIE.MP4'"/>
359
+ </xsl:call-template>
360
+ </xsl:variable>
361
+ <xsl:call-template name="assert-equal">
362
+ <xsl:with-param name="expected" select="'mp4'"/>
363
+ <xsl:with-param name="actual" select="$test-val"/>
364
+ <xsl:with-param name="test-name" select="'file-extension-uppercase'"/>
365
+ </xsl:call-template>
366
+ </xsl:variable>
367
+
368
+ <xsl:variable name="file-extension-relative-path">
369
+ <xsl:variable name="test-val">
370
+ <xsl:call-template name="file-extension">
371
+ <xsl:with-param name="filename" select="'video/movie.webm'"/>
372
+ </xsl:call-template>
373
+ </xsl:variable>
374
+ <xsl:call-template name="assert-equal">
375
+ <xsl:with-param name="expected" select="'webm'"/>
376
+ <xsl:with-param name="actual" select="$test-val"/>
377
+ <xsl:with-param name="test-name" select="'file-extension-relative-path'"/>
378
+ </xsl:call-template>
379
+ </xsl:variable>
380
+
381
+ <xsl:variable name="file-extension-relative-none">
382
+ <xsl:variable name="test-val">
383
+ <xsl:call-template name="file-extension">
384
+ <xsl:with-param name="filename" select="'video/ups-visitor-guide-360'"/>
385
+ </xsl:call-template>
386
+ </xsl:variable>
387
+ <xsl:call-template name="assert-equal">
388
+ <xsl:with-param name="expected" select="''"/>
389
+ <xsl:with-param name="actual" select="$test-val"/>
390
+ <xsl:with-param name="test-name" select="'file-extension-relative-none'"/>
391
+ </xsl:call-template>
392
+ </xsl:variable>
393
+
394
+ <xsl:variable name="file-extension-query-string">
395
+ <xsl:variable name="test-val">
396
+ <xsl:call-template name="file-extension">
397
+ <xsl:with-param name="filename" select="'movie.mp4?start=16'"/>
398
+ </xsl:call-template>
399
+ </xsl:variable>
400
+ <xsl:call-template name="assert-equal">
401
+ <xsl:with-param name="expected" select="'mp4'"/>
402
+ <xsl:with-param name="actual" select="$test-val"/>
403
+ <xsl:with-param name="test-name" select="'file-extension-query-string'"/>
404
+ </xsl:call-template>
405
+ </xsl:variable>
406
+
407
+ <xsl:variable name="file-extension-url">
408
+ <xsl:variable name="test-val">
409
+ <xsl:call-template name="file-extension">
410
+ <xsl:with-param name="filename" select="'https://media.w3.org/2010/05/sintel/trailer.mp4'"/>
411
+ </xsl:call-template>
412
+ </xsl:variable>
413
+ <xsl:call-template name="assert-equal">
414
+ <xsl:with-param name="expected" select="'mp4'"/>
415
+ <xsl:with-param name="actual" select="$test-val"/>
416
+ <xsl:with-param name="test-name" select="'file-extension-url'"/>
417
+ </xsl:call-template>
418
+ </xsl:variable>
419
+
420
+ <xsl:variable name="file-extension-url-none">
421
+ <xsl:variable name="test-val">
422
+ <xsl:call-template name="file-extension">
423
+ <xsl:with-param name="filename" select="'https://media.w3.org/2010/05/sintel/trailer'"/>
424
+ </xsl:call-template>
425
+ </xsl:variable>
426
+ <xsl:call-template name="assert-equal">
427
+ <xsl:with-param name="expected" select="''"/>
428
+ <xsl:with-param name="actual" select="$test-val"/>
429
+ <xsl:with-param name="test-name" select="'file-extension-url-none'"/>
430
+ </xsl:call-template>
431
+ </xsl:variable>
432
+
433
+ <xsl:variable name="file-extension-url-dotted-directory">
434
+ <xsl:variable name="test-val">
435
+ <xsl:call-template name="file-extension">
436
+ <xsl:with-param name="filename" select="'https://example.org/v1.2/movie.webm'"/>
437
+ </xsl:call-template>
438
+ </xsl:variable>
439
+ <xsl:call-template name="assert-equal">
440
+ <xsl:with-param name="expected" select="'webm'"/>
441
+ <xsl:with-param name="actual" select="$test-val"/>
442
+ <xsl:with-param name="test-name" select="'file-extension-url-dotted-directory'"/>
443
+ </xsl:call-template>
444
+ </xsl:variable>
445
+
327
446
  <!--========================================================================-->
328
447
 
329
448
  <!-- "main" -->