123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154 |
- /* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */
- /* vim: set ts=2 et sw=2 tw=80: */
- /*************************************************************
- *
- * MathJax/extensions/HelpDialog.js
- *
- * Implements the MathJax Help dialog box.
- *
- * ---------------------------------------------------------------------
- *
- * Copyright (c) 2013 The MathJax Consortium
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- (function (HUB,HTML,AJAX,OUTPUT,LOCALE) {
- var HELP = MathJax.Extension.Help = {
- version: "2.2"
- };
- var STIXURL = "http://www.stixfonts.org/";
- var MENU = MathJax.Menu;
- var CONFIG = HUB.CombineConfig("HelpDialog",{
- closeImg: AJAX.fileURL(OUTPUT.imageDir+"/CloseX-31.png"), // image for close "X" for mobiles
- styles: {
- "#MathJax_Help": {
- position:"fixed", left:"50%", width:"auto", "max-width": "90%", "text-align":"center",
- border:"3px outset", padding:"1em 2em", "background-color":"#DDDDDD", color:"black",
- cursor: "default", "font-family":"message-box", "font-size":"120%",
- "font-style":"normal", "text-indent":0, "text-transform":"none",
- "line-height":"normal", "letter-spacing":"normal", "word-spacing":"normal",
- "word-wrap":"normal", "white-space":"wrap", "float":"none", "z-index":201,
- "border-radius": "15px", // Opera 10.5 and IE9
- "-webkit-border-radius": "15px", // Safari and Chrome
- "-moz-border-radius": "15px", // Firefox
- "-khtml-border-radius": "15px", // Konqueror
- "box-shadow":"0px 10px 20px #808080", // Opera 10.5 and IE9
- "-webkit-box-shadow":"0px 10px 20px #808080", // Safari 3 and Chrome
- "-moz-box-shadow":"0px 10px 20px #808080", // Forefox 3.5
- "-khtml-box-shadow":"0px 10px 20px #808080", // Konqueror
- filter: "progid:DXImageTransform.Microsoft.dropshadow(OffX=2, OffY=2, Color='gray', Positive='true')" // IE
- },
-
- "#MathJax_HelpContent": {
- overflow:"auto", "text-align":"left", "font-size":"80%",
- padding:".4em .6em", border:"1px inset", margin:"1em 0px",
- "max-height":"20em", "max-width":"30em", "background-color":"#EEEEEE"
- }
- }
- });
-
- /*
- * Handle the Help Dialog box
- */
- HELP.Dialog = function () {
- LOCALE.loadDomain("HelpDialog",["Post",HELP]);
- };
-
- HELP.Post = function () {
- this.div = MENU.Background(this);
- var help = HTML.addElement(this.div,"div",{
- id: "MathJax_Help"
- },LOCALE._("HelpDialog",[
- ["b",{style:{fontSize:"120%"}},[["Help","MathJax Help"]]],
- ["div",{id: "MathJax_HelpContent"},[
- ["p",{},[["MathJax",
- "*MathJax* is a JavaScript library that allows page authors to include " +
- "mathematics within their web pages. As a reader, you don't need to do " +
- "anything to make that happen."]]
- ],
- ["p",{},[["Browsers",
- "*Browsers*: MathJax works with all modern browsers including IE6+, Firefox 3+, " +
- "Chrome 0.2+, Safari 2+, Opera 9.6+ and most mobile browsers."]]
- ],
- ["p",{},[["Menu",
- "*Math Menu*: MathJax adds a contextual menu to equations. Right-click or " +
- "CTRL-click on any mathematics to access the menu."]]
- ],
- ["div",{style:{"margin-left":"1em"}},[
- ["p",{},[["ShowMath",
- "*Show Math As* allows you to view the formula's source markup " +
- "for copy & paste (as MathML or in its origianl format)."]]
- ],
- ["p",{},[["Settings",
- "*Settings* gives you control over features of MathJax, such as the " +
- "size of the mathematics, and the mechanism used to display equations."]]
- ],
- ["p",{},[["Language",
- "*Language* lets you select the language used by MathJax for its menus " +
- "and warning messages."]]
- ],
- ]],
- ["p",{},[["Zoom",
- "*Math Zoom*: If you are having difficulty reading an equation, MathJax can " +
- "enlarge it to help you see it better."]]
- ],
- ["p",{},[["Accessibilty",
- "*Accessibility*: MathJax will automatically work with screen readers to make " +
- "mathematics accessible to the visually impaired."]]
- ],
- ["p",{},[["Fonts",
- "*Fonts*: MathJax will use certain math fonts if they are installed on your " +
- "computer; otherwise, it will use web-based fonts. Although not required, " +
- "locally installed fonts will speed up typesetting. We suggest installing " +
- "the [STIX fonts](%1).",STIXURL]]
- ]
- ]],
- ["a",{href:"http://www.mathjax.org/"},["www.mathjax.org"]],
- ["img", {
- src: CONFIG.closeImg,
- style: {width:"21px", height:"21px", position:"absolute", top:".2em", right:".2em"},
- onclick: HELP.Remove
- }]
- ]));
- LOCALE.setCSS(help);
- var doc = (document.documentElement||{});
- var H = window.innerHeight || doc.clientHeight || doc.scrollHeight || 0;
- if (MENU.prototype.msieAboutBug) {
- help.style.width = "20em"; help.style.position = "absolute";
- help.style.left = Math.floor((document.documentElement.scrollWidth - help.offsetWidth)/2)+"px";
- help.style.top = (Math.floor((H-help.offsetHeight)/3)+document.body.scrollTop)+"px";
- } else {
- help.style.marginLeft = Math.floor(-help.offsetWidth/2)+"px";
- help.style.top = Math.floor((H-help.offsetHeight)/3)+"px";
- }
- };
- HELP.Remove = function (event) {
- if (HELP.div) {document.body.removeChild(HELP.div); delete HELP.div}
- };
- MathJax.Callback.Queue(
- HUB.Register.StartupHook("End Config",{}), // wait until config is complete
- ["Styles",AJAX,CONFIG.styles],
- ["Post",HUB.Startup.signal,"HelpDialig Ready"],
- ["loadComplete",AJAX,"[MathJax]/extensions/HelpDialog.js"]
- );
- })(MathJax.Hub,MathJax.HTML,MathJax.Ajax,MathJax.OutputJax,MathJax.Localization);
|