@prairielearn/html 3.0.9 → 3.1.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @prairielearn/html
2
2
 
3
+ ## 3.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 3cd0f83fa: Add `joinHtml` function to join an array of HTML values with a given separator
8
+
3
9
  ## 3.0.9
4
10
 
5
11
  ### Patch Changes
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ export declare class HtmlSafeString {
7
7
  export type HtmlValue = string | number | boolean | bigint | HtmlSafeString | undefined | null | HtmlValue[];
8
8
  export declare function html(strings: TemplateStringsArray, ...values: HtmlValue[]): HtmlSafeString;
9
9
  /**
10
- * Pre-escpapes the rendered HTML. Useful for when you want to inline the HTML
10
+ * Pre-escapes the rendered HTML. Useful for when you want to inline the HTML
11
11
  * in something else, for instance in a `data-content` attribute for a Bootstrap
12
12
  * popover.
13
13
  */
@@ -20,3 +20,10 @@ export declare function escapeHtml(html: HtmlSafeString): HtmlSafeString;
20
20
  * @returns An {@link HtmlSafeString} representing the provided value.
21
21
  */
22
22
  export declare function unsafeHtml(value: string): HtmlSafeString;
23
+ /**
24
+ * Joins a list of HTML values with a separator.
25
+ *
26
+ * @param values The values to join.
27
+ * @param separator The separator to use between values.
28
+ */
29
+ export declare function joinHtml(values: HtmlValue[], separator?: HtmlValue): HtmlSafeString;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.unsafeHtml = exports.escapeHtml = exports.html = exports.HtmlSafeString = void 0;
3
+ exports.joinHtml = exports.unsafeHtml = exports.escapeHtml = exports.html = exports.HtmlSafeString = void 0;
4
4
  const ENCODE_HTML_RULES = {
5
5
  '&': '&',
6
6
  '<': '&lt;',
@@ -62,7 +62,7 @@ function html(strings, ...values) {
62
62
  }
63
63
  exports.html = html;
64
64
  /**
65
- * Pre-escpapes the rendered HTML. Useful for when you want to inline the HTML
65
+ * Pre-escapes the rendered HTML. Useful for when you want to inline the HTML
66
66
  * in something else, for instance in a `data-content` attribute for a Bootstrap
67
67
  * popover.
68
68
  */
@@ -81,4 +81,14 @@ function unsafeHtml(value) {
81
81
  return new HtmlSafeString([value], []);
82
82
  }
83
83
  exports.unsafeHtml = unsafeHtml;
84
+ /**
85
+ * Joins a list of HTML values with a separator.
86
+ *
87
+ * @param values The values to join.
88
+ * @param separator The separator to use between values.
89
+ */
90
+ function joinHtml(values, separator = '') {
91
+ return unsafeHtml(values.map(escapeValue).join(escapeValue(separator)));
92
+ }
93
+ exports.joinHtml = joinHtml;
84
94
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,MAAM,iBAAiB,GAA2B;IAChD,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,MAAM;IACX,GAAG,EAAE,OAAO;IACZ,GAAG,EAAE,OAAO;CACb,CAAC;AACF,MAAM,UAAU,GAAG,UAAU,CAAC;AAE9B,SAAS,eAAe,CAAC,CAAS;IAChC,OAAO,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,KAAa;IAClC,OAAO,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AACjF,CAAC;AAED,SAAS,WAAW,CAAC,KAAc;IACjC,IAAI,KAAK,YAAY,cAAc,EAAE;QACnC,mBAAmB;QACnB,OAAO,KAAK,CAAC,QAAQ,EAAE,CAAC;KACzB;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;QAC/B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACtD;SAAM,IACL,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS,EAC1B;QACA,OAAO,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;KACrC;SAAM,IAAI,KAAK,IAAI,IAAI,EAAE;QACxB,sCAAsC;QACtC,OAAO,EAAE,CAAC;KACX;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACpF;SAAM;QACL,qCAAqC;QACrC,MAAM,IAAI,KAAK,CACb,gCAAgC,OAAO,KAAK,cAAc,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAClF,CAAC;KACH;AACH,CAAC;AAED,8DAA8D;AAC9D,MAAa,cAAc;IAIzB,YAAY,OAA0B,EAAE,MAAiB;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAS,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE;YAChD,OAAO,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACtD,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC;CACF;AAdD,wCAcC;AAYD,SAAgB,IAAI,CAAC,OAA6B,EAAE,GAAG,MAAmB;IACxE,OAAO,IAAI,cAAc,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAFD,oBAEC;AAED;;;;GAIG;AACH,SAAgB,UAAU,CAAC,IAAoB;IAC7C,OAAO,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;AACpD,CAAC;AAFD,gCAEC;AAED;;;;;;GAMG;AACH,SAAgB,UAAU,CAAC,KAAa;IACtC,OAAO,IAAI,cAAc,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;AACzC,CAAC;AAFD,gCAEC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prairielearn/html",
3
- "version": "3.0.9",
3
+ "version": "3.1.0",
4
4
  "main": "dist/index.js",
5
5
  "sideEffects": false,
6
6
  "repository": {
package/src/index.ts CHANGED
@@ -76,7 +76,7 @@ export function html(strings: TemplateStringsArray, ...values: HtmlValue[]): Htm
76
76
  }
77
77
 
78
78
  /**
79
- * Pre-escpapes the rendered HTML. Useful for when you want to inline the HTML
79
+ * Pre-escapes the rendered HTML. Useful for when you want to inline the HTML
80
80
  * in something else, for instance in a `data-content` attribute for a Bootstrap
81
81
  * popover.
82
82
  */
@@ -94,3 +94,13 @@ export function escapeHtml(html: HtmlSafeString): HtmlSafeString {
94
94
  export function unsafeHtml(value: string): HtmlSafeString {
95
95
  return new HtmlSafeString([value], []);
96
96
  }
97
+
98
+ /**
99
+ * Joins a list of HTML values with a separator.
100
+ *
101
+ * @param values The values to join.
102
+ * @param separator The separator to use between values.
103
+ */
104
+ export function joinHtml(values: HtmlValue[], separator: HtmlValue = ''): HtmlSafeString {
105
+ return unsafeHtml(values.map(escapeValue).join(escapeValue(separator)));
106
+ }