Skip to content

Commit 772045c

Browse files
committed
Merge branch 'develop' of https://github.com/stdlib-js/stdlib into develop
2 parents 9dc3a56 + 6341d50 commit 772045c

File tree

8 files changed

+223
-4
lines changed

8 files changed

+223
-4
lines changed
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/**
2+
* @license Apache-2.0
3+
*
4+
* Copyright (c) 2023 The Stdlib Authors.
5+
*
6+
* Licensed under the Apache License, Version 2.0 (the "License");
7+
* you may not use this file except in compliance with the License.
8+
* You may obtain a copy of the License at
9+
*
10+
* http://www.apache.org/licenses/LICENSE-2.0
11+
*
12+
* Unless required by applicable law or agreed to in writing, software
13+
* distributed under the License is distributed on an "AS IS" BASIS,
14+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
* See the License for the specific language governing permissions and
16+
* limitations under the License.
17+
*/
18+
19+
'use strict';
20+
21+
// MODULES //
22+
23+
var replace = require( '@stdlib/string/replace' );
24+
25+
26+
// VARIABLES //
27+
28+
var RE_MARKDOWN_CHARS = /[\\`*_[#!~|]/g;
29+
30+
31+
// MAIN //
32+
33+
/**
34+
* Escapes Markdown special characters in a string.
35+
*
36+
* ## Notes
37+
*
38+
* - This function escapes characters that have special meanings in Markdown, such as #, *, _, ~, etc., by prefixing them with a backslash.
39+
*
40+
* @private
41+
* @param {string} str - string to be escaped
42+
* @returns {string} escaped string
43+
*
44+
* @example
45+
* var out = escapeMarkdown( 'Returns [index, value] pairs.' );
46+
* // returns 'Returns \[index, value] pairs.'
47+
*
48+
* @example
49+
* var out = escapeMarkdown( 'Calculates x * y * z.' );
50+
* // returns 'Calculates x \* y \* z.'
51+
*/
52+
function escapeMarkdown( str ) {
53+
return replace( str, RE_MARKDOWN_CHARS, '\\$&' );
54+
}
55+
56+
57+
// EXPORTS //
58+
59+
module.exports = escapeMarkdown;

lib/node_modules/@stdlib/_tools/remark/plugins/remark-stdlib-related/lib/transformer.js

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ var pkg2related = require( '@stdlib/namespace/pkg2related' );
2828
var uncapitalizeDescription = require( '@stdlib/_tools/utils/uncapitalize-pkg-description' );
2929
var format = require( '@stdlib/string/format' );
3030
var readJSON = require( '@stdlib/fs/read-json' ).sync;
31+
var escapeMarkdown = require( './escape_markdown.js' );
3132

3233

3334
// VARIABLES //
@@ -79,6 +80,31 @@ function removeLinks( tree ) {
7980
return found;
8081
}
8182

83+
/**
84+
* Collects existing link definitions into an object.
85+
*
86+
* @private
87+
* @param {Node} node - reference node
88+
* @returns {Object} object mapping link identifiers to `true`
89+
*/
90+
function collectExistingLinks( node ) {
91+
var existingLinks = {};
92+
visit( node, 'definition', onDefinition );
93+
return existingLinks;
94+
95+
/**
96+
* Callback invoked upon encountering a link definition.
97+
*
98+
* @private
99+
* @param {Node} definition - reference node
100+
* @returns {void}
101+
*/
102+
function onDefinition( definition ) {
103+
var identifier = definition.identifier;
104+
existingLinks[ identifier ] = true;
105+
}
106+
}
107+
82108

83109
// MAIN //
84110

@@ -90,10 +116,12 @@ function removeLinks( tree ) {
90116
* @param {File} file - virtual file
91117
*/
92118
function transformer( tree, file ) {
119+
var existingLinks;
93120
var found;
94121
debug( 'Processing virtual file...' );
95122

96123
found = removeLinks( tree );
124+
existingLinks = collectExistingLinks( tree );
97125
visit( tree, 'html', insertSeeAlso );
98126

99127
/**
@@ -136,11 +164,14 @@ function transformer( tree, file ) {
136164
throw meta;
137165
}
138166
description = uncapitalizeDescription( meta.description );
167+
description = escapeMarkdown( description );
139168
content += '- <span class="package-name">[`'+related[ i ]+'`]['+related[ i ]+']</span>';
140169
content += '<span class="delimiter">: </span>';
141170
content += '<span class="description">' + description + '</span>';
142171
content += '\n';
143-
links.push( '['+related[ i ]+']: https://github.com/stdlib-js/stdlib' );
172+
if ( !existingLinks[ related[ i ] ] ) {
173+
links.push( '['+related[ i ]+']: https://github.com/stdlib-js/stdlib' );
174+
}
144175
}
145176
content += '\n';
146177
content += '</section>';

lib/node_modules/@stdlib/error/tools/database/data/data.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -938,3 +938,4 @@
938938
"F7","invalid argument. First argument must be an ndarray having one or more dimensions. Number of dimensions: %d.","TypeError"
939939
"F8","invalid argument. Dimension index exceeds the number of dimensions. Number of dimensions: %d. Value: `%d`.","RangeError"
940940
"F9","invalid argument. Third argument must be either a Slice, integer, null, or undefined. Value: `%s`.","TypeError"
941+
"FA","invalid argument. First argument must be an ndarray having at least three dimensions.","TypeError"

lib/node_modules/@stdlib/error/tools/database/data/data.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

lib/node_modules/@stdlib/error/tools/id2pkg/data/data.csv

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -134,6 +134,12 @@
134134
"1iF",@stdlib/array-base-broadcasted-binary4d
135135
"1iG",@stdlib/array/base/broadcasted-binary5d
136136
"1iH",@stdlib/array-base-broadcasted-binary5d
137+
"1ke",@stdlib/array/base/broadcasted-quaternary2d
138+
"1kf",@stdlib/array-base-broadcasted-quaternary2d
139+
"1kg",@stdlib/array/base/broadcasted-quinary2d
140+
"1kh",@stdlib/array-base-broadcasted-quinary2d
141+
"1ki",@stdlib/array/base/broadcasted-ternary2d
142+
"1kj",@stdlib/array-base-broadcasted-ternary2d
137143
"1iI",@stdlib/array/base/broadcasted-unary2d
138144
"1iJ",@stdlib/array-base-broadcasted-unary2d
139145
"1iK",@stdlib/array/base/broadcasted-unary3d
@@ -230,10 +236,30 @@
230236
"1hp",@stdlib/array-base-onesnd
231237
"00G",@stdlib/array/base
232238
"00H",@stdlib/array-base
239+
"1kk",@stdlib/array/base/quaternary2d
240+
"1kl",@stdlib/array-base-quaternary2d
241+
"1km",@stdlib/array/base/quinary2d
242+
"1kn",@stdlib/array-base-quinary2d
233243
"1ZW",@stdlib/array/base/setter
234244
"1ZX",@stdlib/array-base-setter
245+
"1ko",@stdlib/array/base/strided2array2d
246+
"1kp",@stdlib/array-base-strided2array2d
247+
"1kq",@stdlib/array/base/strided2array3d
248+
"1kr",@stdlib/array-base-strided2array3d
249+
"1ks",@stdlib/array/base/strided2array4d
250+
"1kt",@stdlib/array-base-strided2array4d
251+
"1ku",@stdlib/array/base/strided2array5d
252+
"1kv",@stdlib/array-base-strided2array5d
235253
"1ZY",@stdlib/array/base/take
236254
"1ZZ",@stdlib/array-base-take
255+
"1kw",@stdlib/array/base/ternary2d
256+
"1kx",@stdlib/array-base-ternary2d
257+
"1ky",@stdlib/array/base/ternary3d
258+
"1kz",@stdlib/array-base-ternary3d
259+
"1l0",@stdlib/array/base/ternary4d
260+
"1l1",@stdlib/array-base-ternary4d
261+
"1l2",@stdlib/array/base/ternary5d
262+
"1l3",@stdlib/array-base-ternary5d
237263
"1Za",@stdlib/array/base/to-accessor-array
238264
"1Zb",@stdlib/array-base-to-accessor-array
239265
"1ig",@stdlib/array/base/unary2d-by
@@ -3220,6 +3246,10 @@
32203246
"1d7",@stdlib/ndarray-base-empty
32213247
"0ie",@stdlib/ndarray/base/expand-dimensions
32223248
"0if",@stdlib/ndarray-base-expand-dimensions
3249+
"1l4",@stdlib/ndarray/base/fliplr
3250+
"1l5",@stdlib/ndarray-base-fliplr
3251+
"1l6",@stdlib/ndarray/base/flipud
3252+
"1l7",@stdlib/ndarray-base-flipud
32233253
"0ig",@stdlib/ndarray/base/from-scalar
32243254
"0ih",@stdlib/ndarray-base-from-scalar
32253255
"0ii",@stdlib/ndarray/base/function-object
@@ -3258,6 +3288,8 @@
32583288
"1jf",@stdlib/ndarray-base-next-cartesian-index
32593289
"0jC",@stdlib/ndarray/base/nonsingleton-dimensions
32603290
"0jD",@stdlib/ndarray-base-nonsingleton-dimensions
3291+
"1l8",@stdlib/ndarray/base/normalize-index
3292+
"1l9",@stdlib/ndarray-base-normalize-index
32613293
"1d8",@stdlib/ndarray/base/nullary-loop-interchange-order
32623294
"1d9",@stdlib/ndarray-base-nullary-loop-interchange-order
32633295
"1dA",@stdlib/ndarray/base/nullary-tiling-block-size
@@ -3284,6 +3316,8 @@
32843316
"0jJ",@stdlib/ndarray-base-prepend-singleton-dimensions
32853317
"0jK",@stdlib/ndarray/base/remove-singleton-dimensions
32863318
"0jL",@stdlib/ndarray-base-remove-singleton-dimensions
3319+
"1lA",@stdlib/ndarray/base/reverse-dimension
3320+
"1lB",@stdlib/ndarray-base-reverse-dimension
32873321
"1kO",@stdlib/ndarray/base/reverse
32883322
"1kP",@stdlib/ndarray-base-reverse
32893323
"0jM",@stdlib/ndarray/base/serialize-meta-data
@@ -3296,8 +3330,16 @@
32963330
"0jR",@stdlib/ndarray-base-singleton-dimensions
32973331
"1jO",@stdlib/ndarray/base/slice-assign
32983332
"1jP",@stdlib/ndarray-base-slice-assign
3333+
"1lC",@stdlib/ndarray/base/slice-dimension-from
3334+
"1lD",@stdlib/ndarray-base-slice-dimension-from
3335+
"1lE",@stdlib/ndarray/base/slice-dimension-to
3336+
"1lF",@stdlib/ndarray-base-slice-dimension-to
32993337
"1kQ",@stdlib/ndarray/base/slice-dimension
33003338
"1kR",@stdlib/ndarray-base-slice-dimension
3339+
"1lG",@stdlib/ndarray/base/slice-from
3340+
"1lH",@stdlib/ndarray-base-slice-from
3341+
"1lI",@stdlib/ndarray/base/slice-to
3342+
"1lJ",@stdlib/ndarray-base-slice-to
33013343
"1jQ",@stdlib/ndarray/base/slice
33023344
"1jR",@stdlib/ndarray-base-slice
33033345
"1jk",@stdlib/ndarray/base/strides
@@ -3360,14 +3402,22 @@
33603402
"0jx",@stdlib/ndarray-ind2sub
33613403
"0jy",@stdlib/ndarray/index-modes
33623404
"0jz",@stdlib/ndarray-index-modes
3405+
"1lK",@stdlib/ndarray/iter/column-entries
3406+
"1lL",@stdlib/ndarray-iter-column-entries
33633407
"1jo",@stdlib/ndarray/iter/columns
33643408
"1jp",@stdlib/ndarray-iter-columns
33653409
"1jq",@stdlib/ndarray/iter/entries
33663410
"1jr",@stdlib/ndarray-iter-entries
33673411
"1js",@stdlib/ndarray/iter/indices
33683412
"1jt",@stdlib/ndarray-iter-indices
3413+
"1lM",@stdlib/ndarray/iter/matrices
3414+
"1lN",@stdlib/ndarray-iter-matrices
3415+
"1lO",@stdlib/ndarray/iter/matrix-entries
3416+
"1lP",@stdlib/ndarray-iter-matrix-entries
33693417
"1ju",@stdlib/ndarray/iter
33703418
"1jv",@stdlib/ndarray-iter
3419+
"1lQ",@stdlib/ndarray/iter/row-entries
3420+
"1lR",@stdlib/ndarray-iter-row-entries
33713421
"1jw",@stdlib/ndarray/iter/rows
33723422
"1jx",@stdlib/ndarray-iter-rows
33733423
"1jy",@stdlib/ndarray/iter/to-array-each
@@ -3405,6 +3455,10 @@
34053455
"1kB",@stdlib/ndarray-shape
34063456
"1jS",@stdlib/ndarray/slice-assign
34073457
"1jT",@stdlib/ndarray-slice-assign
3458+
"1lS",@stdlib/ndarray/slice-dimension-from
3459+
"1lT",@stdlib/ndarray-slice-dimension-from
3460+
"1lU",@stdlib/ndarray/slice-dimension-to
3461+
"1lV",@stdlib/ndarray-slice-dimension-to
34083462
"1ka",@stdlib/ndarray/slice-dimension
34093463
"1kb",@stdlib/ndarray-slice-dimension
34103464
"1jU",@stdlib/ndarray/slice
@@ -6011,6 +6065,12 @@
60116065
"1gT",@stdlib/string-base-replace-before
60126066
"1gU",@stdlib/string/base/replace
60136067
"1gV",@stdlib/string-base-replace
6068+
"1lW",@stdlib/string/base/reverse-code-points
6069+
"1lX",@stdlib/string-base-reverse-code-points
6070+
"1lY",@stdlib/string/base/reverse-grapheme-clusters
6071+
"1lZ",@stdlib/string-base-reverse-grapheme-clusters
6072+
"1la",@stdlib/string/base/reverse
6073+
"1lb",@stdlib/string-base-reverse
60146074
"1gW",@stdlib/string/base/right-pad
60156075
"1gX",@stdlib/string-base-right-pad
60166076
"1gY",@stdlib/string/base/right-trim
@@ -6023,6 +6083,8 @@
60236083
"1gf",@stdlib/string-base-starts-with
60246084
"1gg",@stdlib/string/base/trim
60256085
"1gh",@stdlib/string-base-trim
6086+
"1lc",@stdlib/string/base/truncate-middle
6087+
"1ld",@stdlib/string-base-truncate-middle
60266088
"1gi",@stdlib/string/base/uncapitalize
60276089
"1gj",@stdlib/string-base-uncapitalize
60286090
"1gk",@stdlib/string/base/uppercase
@@ -6059,6 +6121,8 @@
60596121
"1Op",@stdlib/string-left-trim
60606122
"1Oq",@stdlib/string/lowercase
60616123
"1Or",@stdlib/string-lowercase
6124+
"1le",@stdlib/string/next-code-point-index
6125+
"1lf",@stdlib/string-next-code-point-index
60626126
"1Os",@stdlib/string/next-grapheme-cluster-break
60636127
"1Ot",@stdlib/string-next-grapheme-cluster-break
60646128
"1Ou",@stdlib/string/num-grapheme-clusters

lib/node_modules/@stdlib/error/tools/id2pkg/data/data.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

lib/node_modules/@stdlib/error/tools/pkg2id/data/data.csv

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6692,3 +6692,67 @@
66926692
"@stdlib/ndarray-slice-dimension",1kb
66936693
"@stdlib/slice/base/args2multislice",1kc
66946694
"@stdlib/slice-base-args2multislice",1kd
6695+
"@stdlib/array/base/broadcasted-quaternary2d",1ke
6696+
"@stdlib/array-base-broadcasted-quaternary2d",1kf
6697+
"@stdlib/array/base/broadcasted-quinary2d",1kg
6698+
"@stdlib/array-base-broadcasted-quinary2d",1kh
6699+
"@stdlib/array/base/broadcasted-ternary2d",1ki
6700+
"@stdlib/array-base-broadcasted-ternary2d",1kj
6701+
"@stdlib/array/base/quaternary2d",1kk
6702+
"@stdlib/array-base-quaternary2d",1kl
6703+
"@stdlib/array/base/quinary2d",1km
6704+
"@stdlib/array-base-quinary2d",1kn
6705+
"@stdlib/array/base/strided2array2d",1ko
6706+
"@stdlib/array-base-strided2array2d",1kp
6707+
"@stdlib/array/base/strided2array3d",1kq
6708+
"@stdlib/array-base-strided2array3d",1kr
6709+
"@stdlib/array/base/strided2array4d",1ks
6710+
"@stdlib/array-base-strided2array4d",1kt
6711+
"@stdlib/array/base/strided2array5d",1ku
6712+
"@stdlib/array-base-strided2array5d",1kv
6713+
"@stdlib/array/base/ternary2d",1kw
6714+
"@stdlib/array-base-ternary2d",1kx
6715+
"@stdlib/array/base/ternary3d",1ky
6716+
"@stdlib/array-base-ternary3d",1kz
6717+
"@stdlib/array/base/ternary4d",1l0
6718+
"@stdlib/array-base-ternary4d",1l1
6719+
"@stdlib/array/base/ternary5d",1l2
6720+
"@stdlib/array-base-ternary5d",1l3
6721+
"@stdlib/ndarray/base/fliplr",1l4
6722+
"@stdlib/ndarray-base-fliplr",1l5
6723+
"@stdlib/ndarray/base/flipud",1l6
6724+
"@stdlib/ndarray-base-flipud",1l7
6725+
"@stdlib/ndarray/base/normalize-index",1l8
6726+
"@stdlib/ndarray-base-normalize-index",1l9
6727+
"@stdlib/ndarray/base/reverse-dimension",1lA
6728+
"@stdlib/ndarray-base-reverse-dimension",1lB
6729+
"@stdlib/ndarray/base/slice-dimension-from",1lC
6730+
"@stdlib/ndarray-base-slice-dimension-from",1lD
6731+
"@stdlib/ndarray/base/slice-dimension-to",1lE
6732+
"@stdlib/ndarray-base-slice-dimension-to",1lF
6733+
"@stdlib/ndarray/base/slice-from",1lG
6734+
"@stdlib/ndarray-base-slice-from",1lH
6735+
"@stdlib/ndarray/base/slice-to",1lI
6736+
"@stdlib/ndarray-base-slice-to",1lJ
6737+
"@stdlib/ndarray/iter/column-entries",1lK
6738+
"@stdlib/ndarray-iter-column-entries",1lL
6739+
"@stdlib/ndarray/iter/matrices",1lM
6740+
"@stdlib/ndarray-iter-matrices",1lN
6741+
"@stdlib/ndarray/iter/matrix-entries",1lO
6742+
"@stdlib/ndarray-iter-matrix-entries",1lP
6743+
"@stdlib/ndarray/iter/row-entries",1lQ
6744+
"@stdlib/ndarray-iter-row-entries",1lR
6745+
"@stdlib/ndarray/slice-dimension-from",1lS
6746+
"@stdlib/ndarray-slice-dimension-from",1lT
6747+
"@stdlib/ndarray/slice-dimension-to",1lU
6748+
"@stdlib/ndarray-slice-dimension-to",1lV
6749+
"@stdlib/string/base/reverse-code-points",1lW
6750+
"@stdlib/string-base-reverse-code-points",1lX
6751+
"@stdlib/string/base/reverse-grapheme-clusters",1lY
6752+
"@stdlib/string-base-reverse-grapheme-clusters",1lZ
6753+
"@stdlib/string/base/reverse",1la
6754+
"@stdlib/string-base-reverse",1lb
6755+
"@stdlib/string/base/truncate-middle",1lc
6756+
"@stdlib/string-base-truncate-middle",1ld
6757+
"@stdlib/string/next-code-point-index",1le
6758+
"@stdlib/string-next-code-point-index",1lf

lib/node_modules/@stdlib/error/tools/pkg2id/data/data.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)