Skip to content

Commit 6f72a5c

Browse files
authored
Merge pull request #1961 from dpvc/issue1960
Make tex2jax and asciimath2jax rescan after unmatched delimiter. #1960
2 parents 9369980 + 2950016 commit 6f72a5c

File tree

2 files changed

+14
-6
lines changed

2 files changed

+14
-6
lines changed

unpacked/extensions/asciimath2jax.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -126,19 +126,23 @@ MathJax.Extension.asciimath2jax = {
126126
}
127127
},
128128

129-
scanText: function (element) {
129+
scanText: function (element,pos) {
130130
if (element.nodeValue.replace(/\s+/,'') == '') {return element}
131131
var match, prev;
132132
this.search = {start: true};
133133
this.pattern = this.start;
134134
while (element) {
135-
this.pattern.lastIndex = 0;
135+
this.pattern.lastIndex = pos || 0;
136136
while (element && element.nodeName.toLowerCase() === '#text' &&
137137
(match = this.pattern.exec(element.nodeValue))) {
138138
if (this.search.start) {element = this.startMatch(match,element)}
139139
else {element = this.endMatch(match,element)}
140140
}
141-
if (this.search.matched) {element = this.encloseMath(element)}
141+
if (this.search.matched) {
142+
element = this.encloseMath(element);
143+
} else if (!this.search.start) {
144+
element = this.scanText(this.search.open, this.search.opos + this.search.olen);
145+
}
142146
if (element) {
143147
do {prev = element; element = element.nextSibling}
144148
while (element && this.ignoreTags[element.nodeName.toLowerCase()] != null);

unpacked/extensions/tex2jax.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -154,19 +154,23 @@ MathJax.Extension.tex2jax = {
154154
}
155155
},
156156

157-
scanText: function (element) {
157+
scanText: function (element,pos) {
158158
if (element.nodeValue.replace(/\s+/,'') == '') {return element}
159159
var match, prev;
160160
this.search = {start: true};
161161
this.pattern = this.start;
162162
while (element) {
163-
this.pattern.lastIndex = 0;
163+
this.pattern.lastIndex = pos || 0;
164164
while (element && element.nodeName.toLowerCase() === '#text' &&
165165
(match = this.pattern.exec(element.nodeValue))) {
166166
if (this.search.start) {element = this.startMatch(match,element)}
167167
else {element = this.endMatch(match,element)}
168168
}
169-
if (this.search.matched) {element = this.encloseMath(element)}
169+
if (this.search.matched) {
170+
element = this.encloseMath(element);
171+
} else if (!this.search.start) {
172+
element = this.scanText(this.search.open, this.search.opos + this.search.olen);
173+
}
170174
if (element) {
171175
do {prev = element; element = element.nextSibling}
172176
while (element && this.ignoreTags[element.nodeName.toLowerCase()] != null);

0 commit comments

Comments
 (0)