Skip to content

Commit cd80d41

Browse files
jlengstorfwooorm
andcommitted
Fix exception for non-string identifiers
Related-to gatsbyjs/gatsby#16578. Closes GH-34. Reviewed-by: Titus Wormer <tituswormer@gmail.com> Co-authored-by: Jason Lengstorf <jason@lengstorf.com> Co-authored-by: Titus Wormer <tituswormer@gmail.com>
1 parent 0d5cb6c commit cd80d41

File tree

3 files changed

+17
-2
lines changed

3 files changed

+17
-2
lines changed

lib/handlers/footnote-reference.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var u = require('unist-builder')
66

77
function footnoteReference(h, node) {
88
var footnoteOrder = h.footnoteOrder
9-
var identifier = node.identifier
9+
var identifier = String(node.identifier)
1010

1111
if (footnoteOrder.indexOf(identifier) === -1) {
1212
footnoteOrder.push(identifier)

lib/index.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ function factory(tree, options) {
8585
}
8686

8787
function onfootnotedefinition(definition) {
88-
var id = definition.identifier.toUpperCase()
88+
var id = String(definition.identifier).toUpperCase()
8989

9090
// Mimick CM behavior of link definitions.
9191
// See: <https://github.com/syntax-tree/mdast-util-definitions/blob/8d48e57/index.js#L26>.

test/footnote-reference.js

+15
Original file line numberDiff line numberDiff line change
@@ -35,5 +35,20 @@ test('FootnoteReference', function(t) {
3535
'should render `footnoteReference`s (#2)'
3636
)
3737

38+
t.deepEqual(
39+
to(u('footnoteReference', {identifier: 1})),
40+
u('element', {tagName: 'sup', properties: {id: 'fnref-1'}}, [
41+
u(
42+
'element',
43+
{
44+
tagName: 'a',
45+
properties: {href: '#fn-1', className: ['footnote-ref']}
46+
},
47+
[u('text', '1')]
48+
)
49+
]),
50+
'should not fail on non-string identifiers'
51+
)
52+
3853
t.end()
3954
})

0 commit comments

Comments
 (0)