EDUCATOR-3764 Mathjax accessibility inclusion inside edx-platform

This commit is contained in:
DawoudSheraz
2018-12-04 16:29:15 +05:00
parent 0858ae233a
commit e954eb01a0
12 changed files with 49 additions and 17 deletions

View File

@@ -18,7 +18,7 @@ define(
window._ = _;
$script(
'//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js' +
'https://cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js' +
'?config=TeX-MML-AM_SVG&delayStartupUntil=configured',
'mathjax',
function() {

View File

@@ -55,8 +55,11 @@
// the option as displayed in the context menu to false.
// When upgrading to 2.6, check if this variable name changed.
window.MathJax = {
menuSettings: {CHTMLpreview: false}
menuSettings: {
CHTMLpreview: false
}
};
};
defineDependency('jQuery', 'jquery');
@@ -131,7 +134,7 @@
'lang_edx': 'js/src/lang_edx',
// externally hosted files
mathjax: '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
mathjax: 'https://cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
'youtube': [
// youtube URL does not end in '.js'. We add '?noext' to the path so
// that require.js adds the '.js' to the query component of the URL,

View File

@@ -69,7 +69,7 @@
'domReady': 'xmodule_js/common_static/js/vendor/domReady',
'URI': 'xmodule_js/common_static/js/vendor/URI.min',
'mock-ajax': 'xmodule_js/common_static/js/vendor/mock-ajax',
mathjax: '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
mathjax: 'https://cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
'youtube': '//www.youtube.com/player_api?noext',
'js/src/ajax_prefix': 'xmodule_js/common_static/js/src/ajax_prefix',
'js/spec/test_utils': 'js/spec/test_utils'

View File

@@ -48,7 +48,7 @@
'draggabilly': 'xmodule_js/common_static/js/vendor/draggabilly',
'domReady': 'xmodule_js/common_static/js/vendor/domReady',
'URI': 'xmodule_js/common_static/js/vendor/URI.min',
mathjax: '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
mathjax: 'https://cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
'youtube': '//www.youtube.com/player_api?noext',
'js/src/ajax_prefix': 'xmodule_js/common_static/js/src/ajax_prefix'
},

View File

@@ -42,6 +42,15 @@ if (typeof MathJax === 'undefined') {
});
};
};
vendorScript.src = 'https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_SVG';
// Automatic loading of Mathjax accessibility files
window.MathJax = {
menuSettings: {
collapsible: true,
autocollapse: true,
explorer: true
}
};
vendorScript.src = 'https://cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js?config=TeX-MML-AM_SVG';
document.body.appendChild(vendorScript);
}

View File

@@ -482,10 +482,10 @@
this.postMathJaxProcessor(this.markdownWithHighlight(element.text()))
);
this.typesetMathJax(element);
};
DiscussionUtil.typesetMathJax = function(element) {
if (typeof MathJax !== 'undefined' && MathJax !== null) {
MathJax.Hub.Queue(['Typeset', MathJax.Hub, element[0]]);
}

View File

@@ -59,13 +59,12 @@
this.renderAttrs();
this.$('span.timeago').timeago();
this.convertMath();
this.$('.post-body');
this.$('h1,h3');
return this;
};
DiscussionThreadShowView.prototype.convertMath = function() {
DiscussionUtil.convertMath(this.$('.post-body'));
DiscussionUtil.typesetMathJax(this.$('.post-body'));
};
DiscussionThreadShowView.prototype.edit = function(event) {

View File

@@ -317,7 +317,10 @@
if (options.focusAddedResponse) {
this.focusToTheAddedResponse(view.el);
}
DiscussionUtil.typesetMathJax(view.$el.find('.js-response-list'));
// Typeset the response when initially loaded for any forum
DiscussionUtil.typesetMathJax(view.$el);
return view;
};
DiscussionThreadView.prototype.renderAddResponseButton = function() {
@@ -345,7 +348,7 @@
};
DiscussionThreadView.prototype.submitComment = function(event) {
var body, comment, url;
var body, comment, url, view;
event.preventDefault();
url = this.model.urlFor('reply');
body = this.getWmdContent('reply-body');
@@ -365,7 +368,7 @@
user_id: window.user.get('id')
});
comment.set('thread', this.model.get('thread'));
this.renderResponseToList(comment, '.js-response-list', {
view = this.renderResponseToList(comment, '.js-response-list', {
focusAddedResponse: true
});
this.model.addComment();
@@ -379,8 +382,9 @@
body: body
},
success: function(data) {
comment.updateInfo(data.annotated_content_info);
return comment.set(data.content);
comment.updateInfo(data.annotated_content_info);
comment.set(data.content);
DiscussionUtil.typesetMathJax(view.$el.find('.response-body'));
}
});
};

View File

@@ -72,6 +72,8 @@
ResponseCommentShowView.prototype.convertMath = function() {
DiscussionUtil.convertMath(this.$el.find('.response-body'));
DiscussionUtil.typesetMathJax(this.$el.find('.response-body'));
};
ResponseCommentShowView.prototype._delete = function(event) {

View File

@@ -82,7 +82,9 @@
ThreadResponseView.prototype.render = function() {
this.$el.addClass('response_' + this.model.get('id'));
this.$el.html(this.renderTemplate());
// Setting the HTML through utils to cope for tag-less text
edx.HtmlUtils.setHtml(this.$el, edx.HtmlUtils.HTML(this.renderTemplate()));
this.delegateEvents();
this.renderShowView();
this.renderAttrs();
@@ -309,6 +311,7 @@
event.preventDefault();
this.createShowView();
this.renderShowView();
DiscussionUtil.typesetMathJax(this.$el.find('.response-body'));
return this.showCommentForm();
};
@@ -342,6 +345,7 @@
});
self.createShowView();
self.renderShowView();
DiscussionUtil.typesetMathJax(self.$el.find('.response-body'));
return self.showCommentForm();
}
});

View File

@@ -75,9 +75,20 @@
}
</script>
<script type="text/javascript">
// Activating Mathjax accessibility files
window.MathJax = {
menuSettings: {
collapsible: true,
autocollapse: true,
explorer: true
}
};
</script>
<!-- This must appear after all mathjax-config blocks, so it is after the imports from the other templates.
It can't be run through static.url because MathJax uses crazy url introspection to do lazy loading of
MathJax extension libraries -->
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_SVG"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js?config=TeX-MML-AM_SVG"></script>
%endif

View File

@@ -56,7 +56,7 @@
'squire': 'common/js/vendor/Squire',
'jasmine-imagediff': 'xmodule_js/common_static/js/vendor/jasmine-imagediff',
'domReady': 'xmodule_js/common_static/js/vendor/domReady',
mathjax: '//cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
mathjax: 'https://cdn.jsdelivr.net/npm/mathjax@2.7.5/MathJax.js?config=TeX-MML-AM_SVG&delayStartupUntil=configured', // eslint-disable-line max-len
'youtube': '//www.youtube.com/player_api?noext',
'js/src/ajax_prefix': 'xmodule_js/common_static/js/src/ajax_prefix',
'js/instructor_dashboard/student_admin': 'js/instructor_dashboard/student_admin',