Description
\n \n\n
Usage
\n\n
diff --git a/.config/main.config.js b/.config/main.config.js deleted file mode 100644 index 0c6e243..0000000 --- a/.config/main.config.js +++ /dev/null @@ -1,7 +0,0 @@ -export default { - input: 'src/wc-demo.js', - output: { - file: 'index.js', - format: 'esm' - } -}; diff --git a/.config/min.config.js b/.config/min.config.js deleted file mode 100644 index 1202985..0000000 --- a/.config/min.config.js +++ /dev/null @@ -1,10 +0,0 @@ -import { terser } from "rollup-plugin-terser"; - -export default { - input: 'src/wc-demo.js', - output: { - file: 'index.min.js', - format: 'esm' - }, - plugins: [terser()] -}; diff --git a/.npmignore b/.npmignore index 681e8f7..d81a148 100644 --- a/.npmignore +++ b/.npmignore @@ -1,4 +1,3 @@ -.config/ .github/ .vscode/ dev/ diff --git a/index.js b/index.js index f7f86cb..41cd9eb 100644 --- a/index.js +++ b/index.js @@ -1,805 +1,615 @@ -/* eslint-disable */ -/* ********************************************** - Begin prism-core.js -********************************************** */ - -let _self = {}; - -/** - * Prism: Lightweight, robust, elegant syntax highlighting - * MIT license http://www.opensource.org/licenses/mit-license.php/ - * @author Lea Verou http://lea.verou.me - */ - -let Prism = (function () { -// Private helper vars - let lang = /\blang(?:uage)?-([\w-]+)\b/i; - let uniqueId = 0; - - var _ = _self.Prism = { - manual: _self.Prism && _self.Prism.manual, - disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, - util: { - encode (tokens) { - if (tokens instanceof Token) { - return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); - } else if (_.util.type(tokens) === 'Array') { - return tokens.map(_.util.encode); - } else { - return tokens.replace(/&/g, '&').replace(/ text.length) { - // Something went terribly wrong, ABORT, ABORT! - return; - } - - if (str instanceof Token) { - continue; - } - - if (greedy && i != strarr.length - 1) { - pattern.lastIndex = pos; - var match = pattern.exec(text); - if (!match) { - break; - } - - var from = match.index + (lookbehind ? match[1].length : 0), - to = match.index + match[0].length, - k = i, - p = pos; - - for (var len = strarr.length; k < len && (p < to || (!strarr[k].type && !strarr[k - 1].greedy)); ++k) { - p += strarr[k].length; - // Move the index i to the element in strarr that is closest to from - if (from >= p) { - ++i; - pos = p; - } - } - - // If strarr[i] is a Token, then the match starts inside another Token, which is invalid - if (strarr[i] instanceof Token) { - continue; - } - - // Number of tokens to delete and replace with the new match - delNum = k - i; - str = text.slice(pos, p); - match.index -= pos; - } else { - pattern.lastIndex = 0; - - var match = pattern.exec(str), - delNum = 1; - } - - if (!match) { - if (oneshot) { - break; - } - - continue; - } - - if(lookbehind) { - lookbehindLength = match[1] ? match[1].length : 0; - } - - var from = match.index + lookbehindLength, - match = match[0].slice(lookbehindLength), - to = from + match.length, - before = str.slice(0, from), - after = str.slice(to); - - var args = [i, delNum]; - - if (before) { - ++i; - pos += before.length; - args.push(before); - } - - var wrapped = new Token(token, inside? _.tokenize(match, inside) : match, alias, match, greedy); - - args.push(wrapped); - - if (after) { - args.push(after); - } - - Array.prototype.splice.apply(strarr, args); - - if (delNum != 1) - _.matchGrammar(text, strarr, grammar, i, pos, true, token); - - if (oneshot) - break; - } - } - } - }, - - tokenize(text, grammar, language) { - var strarr = [text]; - - var rest = grammar.rest; - - if (rest) { - for (var token in rest) { - grammar[token] = rest[token]; - } - - delete grammar.rest; - } - - _.matchGrammar(text, strarr, grammar, 0, 0, false); - - return strarr; - }, - - hooks: { - all: {}, - - add (name, callback) { - var hooks = _.hooks.all; - - hooks[name] = hooks[name] || []; - - hooks[name].push(callback); - }, - - run (name, env) { - var callbacks = _.hooks.all[name]; - - if (!callbacks || !callbacks.length) { - return; - } - - for (var i=0, callback; callback = callbacks[i++];) { - callback(env); - } - }, - }, - }; - - var Token = _.Token = function (type, content, alias, matchedStr, greedy) { - this.type = type; - this.content = content; - this.alias = alias; - // Copy of the full string this token was created from - this.length = (matchedStr || '').length | 0; - this.greedy = !!greedy; - }; - - Token.stringify = function (o, language, parent) { - if (typeof o === 'string') { - return o; - } - - if (_.util.type(o) === 'Array') { - return o.map((element) => { - return Token.stringify(element, language, o); - }).join(''); - } - - let env = { - type: o.type, - content: Token.stringify(o.content, language, parent), - tag: 'span', - classes: ['token', o.type], - attributes: {}, - language, - parent, - }; - - if (o.alias) { - let aliases = _.util.type(o.alias) === 'Array' ? o.alias : [o.alias]; - Array.prototype.push.apply(env.classes, aliases); - } - - _.hooks.run('wrap', env); - - let attributes = Object.keys(env.attributes).map((name) => { - return name + '="' + (env.attributes[name] || '').replace(/"/g, '"') + '"'; - }).join(' '); - - return `<${ env.tag } class="${ env.classes.join(' ') }"${ attributes ? ' ' + attributes : '' }>${ env.content }${ env.tag }>`; - }; - - if (!_self.document) { - if (!_self.addEventListener) { - // in Node.js - return _self.Prism; - } - - if (!_.disableWorkerMessageHandler) { - // In worker - _self.addEventListener('message', (evt) => { - var message = JSON.parse(evt.data), - lang = message.language, - code = message.code, - immediateClose = message.immediateClose; - - _self.postMessage(_.highlight(code, _.languages[lang], lang)); - if (immediateClose) { - _self.close(); - } - }, false); - } - - return _self.Prism; +let __defineProperty = Object.defineProperty; +let __hasOwnProperty = Object.prototype.hasOwnProperty; +let __commonJS = (callback, module) => () => { + if (!module) { + module = {exports: {}}; + callback(module.exports, module); } + return module.exports; +}; +let __markAsModule = (target) => { + return __defineProperty(target, "__esModule", {value: true}); +}; +let __export = (target, all) => { + __markAsModule(target); + for (let name in all) + __defineProperty(target, name, {get: all[name], enumerable: true}); +}; +let __exportStar = (target, module) => { + __markAsModule(target); + if (typeof module === "object" || typeof module === "function") { + for (let key in module) + if (__hasOwnProperty.call(module, key) && !__hasOwnProperty.call(target, key) && key !== "default") + __defineProperty(target, key, {get: () => module[key], enumerable: true}); + } + return target; +}; +let __toModule = (module) => { + if (module && module.__esModule) + return module; + return __exportStar(__defineProperty({}, "default", {value: module, enumerable: true}), module); +}; - // Get current script and highlight - // let script = document.currentScript || [].slice.call(document.getElementsByTagName('script')).pop(); - - // if (script) { - // _.filename = script.src; - - // if (!_.manual && !script.hasAttribute('data-manual')) { - // if (document.readyState !== 'loading') { - // if (window.requestAnimationFrame) { - // window.requestAnimationFrame(_.highlightAll); - // } else { - // window.setTimeout(_.highlightAll, 16); - // } - // } else { - // document.addEventListener('DOMContentLoaded', _.highlightAll); - // } - // } - // } - - return _self.Prism; -}()); - -if (typeof module !== 'undefined' && module.exports) { - module.exports = Prism; -} - -// hack for components to work correctly in node.js -if (typeof global !== 'undefined') { - global.Prism = Prism; -} - - -/* ********************************************** - Begin prism-markup.js -********************************************** */ - -Prism.languages.markup = { - comment: //, - prolog: /<\?[\s\S]+?\?>/, - doctype: //i, - cdata: //i, - tag: { - pattern: /<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i, - greedy: true, - inside: { - tag: { - pattern: /^<\/?[^\s>\/]+/i, - inside: { - punctuation: /^<\/?/, - namespace: /^[^\s>\/:]+:/, +// node_modules/prism-es6/prism.js +var require_prism = __commonJS((exports, module) => { + __export(exports, { + default: () => prism_default + }); + let _self = {}; + let Prism2 = function() { + let lang = /\blang(?:uage)?-([\w-]+)\b/i; + let uniqueId = 0; + var _ = _self.Prism = { + manual: _self.Prism && _self.Prism.manual, + disableWorkerMessageHandler: _self.Prism && _self.Prism.disableWorkerMessageHandler, + util: { + encode(tokens) { + if (tokens instanceof Token) { + return new Token(tokens.type, _.util.encode(tokens.content), tokens.alias); + } else if (_.util.type(tokens) === "Array") { + return tokens.map(_.util.encode); + } else { + return tokens.replace(/&/g, "&").replace(/=]+)/i, - inside: { - punctuation: [ - /^=/, - { - pattern: /(^|[^\\])["']/, - lookbehind: true, - }, - ], + type(o) { + return Object.prototype.toString.call(o).match(/\[object (\w+)\]/)[1]; + }, + objId(obj) { + if (!obj["__id"]) { + Object.defineProperty(obj, "__id", {value: ++uniqueId}); + } + return obj["__id"]; }, + clone(o, visited) { + var type = _.util.type(o); + visited = visited || {}; + switch (type) { + case "Object": + if (visited[_.util.objId(o)]) { + return visited[_.util.objId(o)]; + } + var clone = {}; + visited[_.util.objId(o)] = clone; + for (var key in o) { + if (o.hasOwnProperty(key)) { + clone[key] = _.util.clone(o[key], visited); + } + } + return clone; + case "Array": + if (visited[_.util.objId(o)]) { + return visited[_.util.objId(o)]; + } + var clone = []; + visited[_.util.objId(o)] = clone; + o.forEach(function(v, i) { + clone[i] = _.util.clone(v, visited); + }); + return clone; + } + return o; + } }, - punctuation: /\/?>/, - 'attr-name': { - pattern: /[^\s>\/]+/, - inside: { - namespace: /^[^\s>\/:]+:/, + languages: { + extend(id, redef) { + var lang2 = _.util.clone(_.languages[id]); + for (var key in redef) { + lang2[key] = redef[key]; + } + return lang2; + }, + insertBefore(inside, before, insert, root) { + root = root || _.languages; + var grammar = root[inside]; + if (arguments.length == 2) { + insert = arguments[1]; + for (var newToken in insert) { + if (insert.hasOwnProperty(newToken)) { + grammar[newToken] = insert[newToken]; + } + } + return grammar; + } + var ret = {}; + for (var token in grammar) { + if (grammar.hasOwnProperty(token)) { + if (token == before) { + for (var newToken in insert) { + if (insert.hasOwnProperty(newToken)) { + ret[newToken] = insert[newToken]; + } + } + } + ret[token] = grammar[token]; + } + } + _.languages.DFS(_.languages, function(key, value) { + if (value === root[inside] && key != inside) { + this[key] = ret; + } + }); + return root[inside] = ret; }, + DFS(o, callback, type, visited) { + visited = visited || {}; + for (var i in o) { + if (o.hasOwnProperty(i)) { + callback.call(o, i, o[i], type || i); + if (_.util.type(o[i]) === "Object" && !visited[_.util.objId(o[i])]) { + visited[_.util.objId(o[i])] = true; + _.languages.DFS(o[i], callback, null, visited); + } else if (_.util.type(o[i]) === "Array" && !visited[_.util.objId(o[i])]) { + visited[_.util.objId(o[i])] = true; + _.languages.DFS(o[i], callback, i, visited); + } + } + } + } }, - - }, - }, - entity: /?[\da-z]{1,8};/i, -}; - -Prism.languages.markup.tag.inside['attr-value'].inside.entity = Prism.languages.markup.entity; - -// Plugin to make entity title show the real entity, idea by Roman Komarov -Prism.hooks.add('wrap', (env) => { - - if (env.type === 'entity') { - env.attributes['title'] = env.content.replace(/&/, '&'); - } -}); - -Prism.languages.xml = Prism.languages.markup; -Prism.languages.html = Prism.languages.markup; -Prism.languages.mathml = Prism.languages.markup; -Prism.languages.svg = Prism.languages.markup; - - -/* ********************************************** - Begin prism-css.js -********************************************** */ - -Prism.languages.css = { - comment: /\/\*[\s\S]*?\*\//, - atrule: { - pattern: /@[\w-]+?.*?(?:;|(?=\s*\{))/i, - inside: { - rule: /@[\w-]+/, - // See rest below - }, - }, - url: /url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i, - selector: /[^{}\s][^{};]*?(?=\s*\{)/, - string: { - pattern: /("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/, - greedy: true, - }, - property: /[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i, - important: /\B!important\b/i, - function: /[-a-z0-9]+(?=\()/i, - punctuation: /[(){};:]/, -}; - -Prism.languages.css.atrule.inside.rest = Prism.languages.css; - -if (Prism.languages.markup) { - Prism.languages.insertBefore('markup', 'tag', { - style: { - pattern: /( -
`
+
`;
}
}
+customElements.define("source-element", SourceElement);
-customElements.define('source-element', SourceElement);
-
-/* eslint no-undef: 0 */
-
+// src/wc-demo.js
class WCDemo extends HTMLElement {
- static get observedAttributes () {
- return ['title', 'link', 'desc', 'src']
+ static get observedAttributes() {
+ return ["title", "link", "desc", "src"];
}
-
- attributeChangedCallback (name, oldValue, newValue) {
- if (!this.__initialized) { return }
+ attributeChangedCallback(name, oldValue, newValue) {
+ if (!this.__initialized) {
+ return;
+ }
if (oldValue !== newValue) {
this[name] = newValue;
}
}
-
- get title () { return this.getAttribute('title') }
- set title (value) {
- this.setAttribute('title', value);
+ get title() {
+ return this.getAttribute("title");
+ }
+ set title(value) {
+ this.setAttribute("title", value);
this.setTitle();
}
-
- get link () { return this.getAttribute('link') }
- set link (value) {
- this.setAttribute('link', value);
+ get link() {
+ return this.getAttribute("link");
+ }
+ set link(value) {
+ this.setAttribute("link", value);
this.setLink();
}
-
- get desc () { return this.getAttribute('desc') }
- set desc (value) {
- this.setAttribute('desc', value);
+ get desc() {
+ return this.getAttribute("desc");
+ }
+ set desc(value) {
+ this.setAttribute("desc", value);
this.setDescription();
}
-
- get src () { return this.getAttribute('src') }
- set src (value) {
- this.setAttribute('src', value);
+ get src() {
+ return this.getAttribute("src");
+ }
+ set src(value) {
+ this.setAttribute("src", value);
this.setSrc();
}
-
- constructor () {
+ constructor() {
super();
- const template = document.createElement('template');
+ const template = document.createElement("template");
template.innerHTML = WCDemo.template();
this.appendChild(template.content.cloneNode(true));
-
this.__initialized = null;
- this.titleElement = this.querySelector('#title');
- this.linkElement = this.querySelector('#link');
- this.descElement = this.querySelector('#description');
- this.sourceElement = this.querySelector('#source');
- this.outputElement = this.querySelector('#output');
+ this.titleElement = this.querySelector("#title");
+ this.linkElement = this.querySelector("#link");
+ this.descElement = this.querySelector("#description");
+ this.sourceElement = this.querySelector("#source");
+ this.outputElement = this.querySelector("#output");
}
-
- async connectedCallback () {
- if (this.hasAttribute('link')) {
+ async connectedCallback() {
+ if (this.hasAttribute("link")) {
this.setLink();
}
-
- if (this.hasAttribute('desc')) {
+ if (this.hasAttribute("desc")) {
this.setDescription();
}
-
- if (this.hasAttribute('title')) {
+ if (this.hasAttribute("title")) {
this.setTitle();
}
-
- if (this.hasAttribute('src')) {
+ if (this.hasAttribute("src")) {
this.setSrc();
}
-
this.__initialized = true;
}
-
- setTitle () {
- this.titleElement.innerText = this.getAttribute('title');
+ setTitle() {
+ this.titleElement.innerText = this.getAttribute("title");
}
-
- setLink () {
- this.linkElement.href = this.getAttribute('link');
+ setLink() {
+ this.linkElement.href = this.getAttribute("link");
}
-
- setDescription () {
- this.descElement.innerText = this.getAttribute('desc');
+ setDescription() {
+ this.descElement.innerText = this.getAttribute("desc");
}
-
- async setSrc () {
- const src = this.getAttribute('src');
+ async setSrc() {
+ const src = this.getAttribute("src");
this.source = await this.fetchSrc(src);
this.sourceElement.source = this.source;
this.outputElement.innerHTML = this.source;
}
-
- async fetchSrc (src) {
+ async fetchSrc(src) {
const response = await fetch(src);
- return response.text()
+ return response.text();
}
-
- static template () {
+ static template() {
return `
\n
'}}customElements.define("source-element",n);class a extends HTMLElement{static get observedAttributes(){return["title","link","desc","src"]}attributeChangedCallback(e,t,n){this.__initialized&&t!==n&&(this[e]=n)}get title(){return this.getAttribute("title")}set title(e){this.setAttribute("title",e),this.setTitle()}get link(){return this.getAttribute("link")}set link(e){this.setAttribute("link",e),this.setLink()}get desc(){return this.getAttribute("desc")}set desc(e){this.setAttribute("desc",e),this.setDescription()}get src(){return this.getAttribute("src")}set src(e){this.setAttribute("src",e),this.setSrc()}constructor(){super();const e=document.createElement("template");e.innerHTML=a.template(),this.appendChild(e.content.cloneNode(!0)),this.__initialized=null,this.titleElement=this.querySelector("#title"),this.linkElement=this.querySelector("#link"),this.descElement=this.querySelector("#description"),this.sourceElement=this.querySelector("#source"),this.outputElement=this.querySelector("#output")}async connectedCallback(){this.hasAttribute("link")&&this.setLink(),this.hasAttribute("desc")&&this.setDescription(),this.hasAttribute("title")&&this.setTitle(),this.hasAttribute("src")&&this.setSrc(),this.__initialized=!0}setTitle(){this.titleElement.innerText=this.getAttribute("title")}setLink(){this.linkElement.href=this.getAttribute("link")}setDescription(){this.descElement.innerText=this.getAttribute("desc")}async setSrc(){const e=this.getAttribute("src");this.source=await this.fetchSrc(e),this.sourceElement.source=this.source,this.outputElement.innerHTML=this.source}async fetchSrc(e){return(await fetch(e)).text()}static template(){return'\n \n\n
`}}customElements.define("source-element",J);class B extends HTMLElement{static get observedAttributes(){return["title","link","desc","src"]}attributeChangedCallback(c,f,l){if(!this.__initialized)return;f!==l&&(this[c]=l)}get title(){return this.getAttribute("title")}set title(c){this.setAttribute("title",c),this.setTitle()}get link(){return this.getAttribute("link")}set link(c){this.setAttribute("link",c),this.setLink()}get desc(){return this.getAttribute("desc")}set desc(c){this.setAttribute("desc",c),this.setDescription()}get src(){return this.getAttribute("src")}set src(c){this.setAttribute("src",c),this.setSrc()}constructor(){super();const c=document.createElement("template");c.innerHTML=B.template(),this.appendChild(c.content.cloneNode(!0)),this.__initialized=null,this.titleElement=this.querySelector("#title"),this.linkElement=this.querySelector("#link"),this.descElement=this.querySelector("#description"),this.sourceElement=this.querySelector("#source"),this.outputElement=this.querySelector("#output")}async connectedCallback(){this.hasAttribute("link")&&this.setLink(),this.hasAttribute("desc")&&this.setDescription(),this.hasAttribute("title")&&this.setTitle(),this.hasAttribute("src")&&this.setSrc(),this.__initialized=!0}setTitle(){this.titleElement.innerText=this.getAttribute("title")}setLink(){this.linkElement.href=this.getAttribute("link")}setDescription(){this.descElement.innerText=this.getAttribute("desc")}async setSrc(){const c=this.getAttribute("src");this.source=await this.fetchSrc(c),this.sourceElement.source=this.source,this.outputElement.innerHTML=this.source}async fetchSrc(c){const f=await fetch(c);return f.text()}static template(){return`
+
+
+