Server IP : 92.205.26.207 / Your IP : 216.73.216.16 Web Server : Apache System : Linux 207.26.205.92.host.secureserver.net 4.18.0-553.60.1.el8_10.x86_64 #1 SMP Thu Jul 10 04:01:16 EDT 2025 x86_64 User : zikryat ( 1002) PHP Version : 8.3.23 Disable Function : exec,passthru,shell_exec,system MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/zikryat/public_html/node_modules/inline-css/lib/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
const parseCSS = require('css-rules'); const cheerio = require('cheerio'); const pseudoCheck = require('./pseudoCheck'); const handleRule = require('./handleRule'); const flatten = require('flat-util'); const setStyleAttrs = require('./setStyleAttrs'); const setWidthAttrs = require('./setWidthAttrs'); const removeClassId = require('./removeClassId'); const setTableAttrs = require('./setTableAttrs'); const pick = require('pick-util'); function replaceCodeBlock(html, re, block) { return html.replace(re, () => block); } module.exports = (html, css, options) => { const opts = options || {}; let rules; let editedElements = []; const codeBlockLookup = []; const encodeCodeBlocks = _html => { let __html = _html; const blocks = opts.codeBlocks; Object.keys(blocks).forEach(key => { const re = new RegExp(`${blocks[key].start}([\\S\\s]*?)${blocks[key].end}`, 'g'); __html = __html.replace(re, match => { codeBlockLookup.push(match); return `EXCS_CODE_BLOCK_${codeBlockLookup.length - 1}_`; }); }); return __html; }; const decodeCodeBlocks = _html => { let index; let re; let __html = _html; for (index = 0; index < codeBlockLookup.length; index++) { re = new RegExp(`EXCS_CODE_BLOCK_${index}_(="")?`, 'gi'); __html = replaceCodeBlock(__html, re, codeBlockLookup[index]); } return __html; }; const encodeEntities = _html => encodeCodeBlocks(_html); const decodeEntities = _html => decodeCodeBlocks(_html); let $; $ = cheerio.load(encodeEntities(html), pick(opts, [ 'xmlMode', 'decodeEntities', 'lowerCaseTags', 'lowerCaseAttributeNames', 'recognizeCDATA', 'recognizeSelfClosing' ])); try { rules = parseCSS(css); } catch (err) { throw new Error(err); } rules.forEach(rule => { let el; let ignoredPseudos; ignoredPseudos = pseudoCheck(rule); if (ignoredPseudos) { return false; } try { el = handleRule(rule, $); editedElements.push(el); } catch (err) { // skip invalid selector return false; } return undefined; }); // flatten array if nested editedElements = flatten(editedElements); editedElements.forEach(el => { setStyleAttrs(el, $); if (opts.applyWidthAttributes) { setWidthAttrs(el, $); } if (opts.removeHtmlSelectors) { removeClassId(el, $); } }); if (opts.applyTableAttributes) { $('table').each((index, el) => { setTableAttrs(el, $); }); } return decodeEntities($.html()); };