markdown-it-synapse-table
Advanced tools
| (function(a,b){typeof exports=="object"&&typeof module<"u"?module.exports=b():typeof define=="function"&&define.amd?define(b):(a=typeof globalThis<"u"?globalThis:a||self,a.markdownitSynapseTable=b())})(this,function(){"use strict";const a=new RegExp('^\\s*{[|]\\s*class\\s*=\\s*"\\s*(.*)"\\s*'),b=new RegExp("^\\s*[|]}\\s*"),R=new RegExp("^s*->.*"),W=new RegExp(".*<-s*$"),O=new RegExp("^s*[|].+[|]s*$");function x(t,o){const i=t.bMarks[o]+t.blkIndent,e=t.eMarks[o];return t.src.substring(i,e)}function y(t){O.test(t)&&(t=t.replace(/^\||\|$/g,""));const o=[];let i=0;const e=t.length;let l,c=0,m=0,s=!1,h=l=t.charCodeAt(i);for(;i<e;)l===96&&c%2===0?(s=!s,h=i):l===124&&c%2===0&&!s?(o.push(t.substring(m,i)),m=i+1):l===92?c++:c=0,i++,i===e&&s&&(s=!1,i=h+1),l=t.charCodeAt(i);return o.push(t.substring(m)),o}const T=["text-align-center","text-align-right","border","center","short"];function $(t){return t.split(" ").filter(o=>T.includes(o)).join(" ")}function M(t){if(!t.startsWith("|")||!t.endsWith("|"))return null;const o=t.split("|").map(e=>e.trim());o.splice(0,1);const i=[];return o.forEach(e=>{e.startsWith(":")&&e.endsWith(":")?i.push("center"):e.startsWith(":")?i.push("left"):e.endsWith(":")?i.push("right"):i.push(null)}),i}function A(t){const o=(e,l,c,m)=>{let s,h,p,f,r,n,w,C,k,_,u,E=!1,S=!1;if(l+1>c||(h=e.bMarks[l]+e.tShift[l],h>=e.eMarks[l])||(s=x(e,l),a.test(s)?(k=s.match(a)[1],S=k.indexOf("short")!==-1,u=l+1,E=!0):u=l,e.sCount[u]<e.blkIndent)||(h=e.bMarks[u]+e.tShift[u],h>=e.eMarks[u])||(s=x(e,u).trim(),s.indexOf("|")===-1&&!E)||s.indexOf("$$")!==-1)return!1;r=y(s);const g=r.length;if(m)return!0;S&&(n=e.push("div_wrapper","div",1),n.attrJoin("class","markdowntableWrap")),n=e.push("table_open","table",1),n.map=w=[l,0],k&&(n.attrJoin("class",$(k)),l++),s=x(e,u+1).trim();let d=null;if(/^[-:| ]+$/.test(s)&&s.indexOf("|")!==-1){for(d=M(s),_=u+2,n=e.push("thead_open","thead",1),n.map=[l,l+1],n=e.push("tr_open","tr",1),n.map=[l,l+1],p=0;p<r.length;p++)n=e.push("th_open","th",1),n.map=[l,l+1],d&&d[p]&&n.attrSet("style",`text-align: ${d[p]}`),n=e.push("inline","",0),n.content=r[p].trim(),n.map=[l,l+1],n.children=[],n=e.push("th_close","th",-1);n=e.push("tr_close","tr",-1),n=e.push("thead_close","thead",-1)}else _=u;for(n=e.push("tbody_open","tbody",1),n.map=C=[_,0],f=_;f<c&&!(e.sCount[f]<e.blkIndent);f++){if(s=x(e,f).trim(),b.test(s)){f++;break}if(s.indexOf("|")===-1&&!E)break;for(r=y(s),n=e.push("tr_open","tr",1),R.test(r[0])&&W.test(r[g-1])&&(r[0]=r[0].substring(r[0].indexOf("->")+2),r[g-1]=r[g-1].substring(0,r[g-1].indexOf("<-"))),p=0;p<g;p++)n=e.push("td_open","td",1),d&&d[p]&&n.attrSet("style",`text-align: ${d[p]}`),n=e.push("inline","",0),n.content=r[p]?r[p].trim():"",n.children=[],n=e.push("td_close","td",-1);n=e.push("tr_close","tr",-1)}return e.push("tbody_close","tbody",-1),e.push("table_close","table",-1),S&&e.push("div_wrapper","div",-1),w[1]=C[1]=f,e.line=f,!0},i=["paragraph","reference"];t.block.ruler.at("table",o,{alt:i.slice()})}return A}); | ||
| //# sourceMappingURL=index.umd.cjs.map |
| {"version":3,"file":"index.umd.cjs","sources":["../src/index.ts"],"sourcesContent":["import MarkdownIt, { Token } from 'markdown-it'\nimport StateBlock from 'markdown-it/lib/rules_block/state_block'\nimport { RuleBlock } from 'markdown-it/lib/parser_block'\n\nconst tableClassStartRE = new RegExp(\n '^\\\\s*{[|]\\\\s*class\\\\s*=\\\\s*\"\\\\s*(.*)\"\\\\s*',\n)\nconst tableClassEndRE = new RegExp('^\\\\s*[|]}\\\\s*')\nconst centerStartRE = new RegExp('^s*->.*')\nconst centerEndRE = new RegExp('.*<-s*$')\nconst outerPipesRE = new RegExp('^s*[|].+[|]s*$')\n\nfunction getLine(state: StateBlock, line: number): string {\n const pos = state.bMarks[line] + state.blkIndent\n const max = state.eMarks[line]\n\n return state.src.substring(pos, max)\n}\n\nfunction escapedSplit(str: string): string[] {\n if (outerPipesRE.test(str)) {\n str = str.replace(/^\\||\\|$/g, '')\n }\n\n const result: string[] = []\n let pos = 0\n const max = str.length\n let ch: number\n let escapes = 0\n let lastPos = 0\n let backTicked = false\n let lastBackTick = (ch = str.charCodeAt(pos))\n\n while (pos < max) {\n if (ch === 0x60 && escapes % 2 === 0) {\n // `\n backTicked = !backTicked\n lastBackTick = pos\n } else if (ch === 0x7c && escapes % 2 === 0 && !backTicked) {\n // |\n result.push(str.substring(lastPos, pos))\n lastPos = pos + 1\n } else if (ch === 0x5c) {\n // \\\n escapes++\n } else {\n escapes = 0\n }\n\n pos++\n\n // If there was an un-closed backtick, go back to just after\n // the last backtick, but as if it was a normal character\n if (pos === max && backTicked) {\n backTicked = false\n pos = lastBackTick + 1\n }\n\n ch = str.charCodeAt(pos)\n }\n\n result.push(str.substring(lastPos))\n\n return result\n}\n\nconst ALLOWED_CLASS_NAMES = [\n 'text-align-center',\n 'text-align-right',\n 'border',\n 'center',\n 'short',\n]\n\nfunction filterClassNames(classNames: string): string {\n return classNames\n .split(' ')\n .filter(className => ALLOWED_CLASS_NAMES.includes(className))\n .join(' ')\n}\n\nfunction parseDividerForAlignment(\n dividerLine: string,\n): null | ('left' | 'center' | 'right' | null)[] {\n if (!dividerLine.startsWith('|') || !dividerLine.endsWith('|')) {\n // Must start and end with pipes for us to parse out alignment\n return null\n }\n const cols = dividerLine.split('|').map(cell => cell.trim())\n cols.splice(0, 1) // Remove the first element, which will always be empty\n const alignments: ('left' | 'center' | 'right' | null)[] = []\n cols.forEach(col => {\n if (col.startsWith(':') && col.endsWith(':')) {\n alignments.push('center')\n } else if (col.startsWith(':')) {\n alignments.push('left')\n } else if (col.endsWith(':')) {\n alignments.push('right')\n } else {\n alignments.push(null)\n }\n })\n\n return alignments\n}\n\nexport default function synapse_table_plugin(md: MarkdownIt) {\n const table: RuleBlock = (state, startLine, endLine, silent) => {\n let lineText: string\n let pos: number\n let i: number\n let nextLine: number\n let columns: string[]\n let token: Token\n let tableLines: [number, number]\n let tbodyLines: [number, number]\n let classNames: string\n let tableBodyStartLine: number\n let headerLine: number\n let isSpecialSyntaxTable = false\n let wrapWithDiv = false\n // should have at least two lines\n // (!!! Synapse change, used to be 3 due to required ---|---|--- line). Header and single row.\n if (startLine + 1 > endLine) {\n return false\n }\n\n pos = state.bMarks[startLine] + state.tShift[startLine]\n if (pos >= state.eMarks[startLine]) {\n return false\n }\n lineText = getLine(state, startLine)\n\n // look for optional class definition start, like '{| class=\"border\"'\n if (tableClassStartRE.test(lineText)) {\n // this table definition includes class names, so the start marker is {| and end marker will be |}\n classNames = lineText.match(tableClassStartRE)[1]\n wrapWithDiv = classNames.indexOf('short') !== -1\n headerLine = startLine + 1\n // If tableClassStartRE passes, then it's definitely a table.\n isSpecialSyntaxTable = true\n } else {\n headerLine = startLine\n }\n\n if (state.sCount[headerLine] < state.blkIndent) {\n return false\n }\n\n pos = state.bMarks[headerLine] + state.tShift[headerLine]\n if (pos >= state.eMarks[headerLine]) {\n return false\n }\n\n // read column headers\n lineText = getLine(state, headerLine).trim()\n if (lineText.indexOf('|') === -1 && !isSpecialSyntaxTable) {\n return false\n }\n\n // has a '|'. If it looks like there is math on this line, skip it.\n if (lineText.indexOf('$$') !== -1) {\n return false\n }\n columns = escapedSplit(lineText)\n // header row will define an amount of columns in the entire table,\n // and align row shouldn't be smaller than that (the rest of the rows can)\n const columnCount = columns.length\n\n if (silent) {\n return true\n }\n\n if (wrapWithDiv) {\n token = state.push('div_wrapper', 'div', 1)\n token.attrJoin('class', 'markdowntableWrap')\n }\n token = state.push('table_open', 'table', 1)\n token.map = tableLines = [startLine, 0]\n if (classNames) {\n token.attrJoin('class', filterClassNames(classNames))\n // start line of the table (header) is really the second line.\n startLine++\n }\n\n lineText = getLine(state, headerLine + 1).trim()\n\n let alignments: (string | null)[] | null = null\n // If this line is of the form ---|---|---, then we have column headers, and we should skip this line.\n // Else, no column headers and we should skip to the body.\n if (/^[-:| ]+$/.test(lineText) && lineText.indexOf('|') !== -1) {\n alignments = parseDividerForAlignment(lineText)\n // we have column headers\n tableBodyStartLine = headerLine + 2\n token = state.push('thead_open', 'thead', 1)\n token.map = [startLine, startLine + 1]\n\n token = state.push('tr_open', 'tr', 1)\n token.map = [startLine, startLine + 1]\n\n for (i = 0; i < columns.length; i++) {\n token = state.push('th_open', 'th', 1)\n token.map = [startLine, startLine + 1]\n if (alignments && alignments[i]) {\n token.attrSet('style', `text-align: ${alignments[i]}`)\n }\n\n token = state.push('inline', '', 0)\n token.content = columns[i].trim()\n token.map = [startLine, startLine + 1]\n token.children = []\n\n token = state.push('th_close', 'th', -1)\n }\n\n token = state.push('tr_close', 'tr', -1)\n token = state.push('thead_close', 'thead', -1)\n } else {\n // no column headers\n tableBodyStartLine = headerLine\n }\n\n token = state.push('tbody_open', 'tbody', 1)\n token.map = tbodyLines = [tableBodyStartLine, 0]\n\n for (nextLine = tableBodyStartLine; nextLine < endLine; nextLine++) {\n if (state.sCount[nextLine] < state.blkIndent) {\n break\n }\n\n lineText = getLine(state, nextLine).trim()\n if (tableClassEndRE.test(lineText)) {\n // end of table with class definitions. Include this line in the table definition\n nextLine++\n break\n }\n if (lineText.indexOf('|') === -1 && !isSpecialSyntaxTable) {\n break\n }\n columns = escapedSplit(lineText)\n\n token = state.push('tr_open', 'tr', 1)\n // if line starts with -> and ends with <-, then eat these characters (SWC-3000)\n if (\n centerStartRE.test(columns[0]) &&\n centerEndRE.test(columns[columnCount - 1])\n ) {\n columns[0] = columns[0].substring(columns[0].indexOf('->') + 2)\n columns[columnCount - 1] = columns[columnCount - 1].substring(\n 0,\n columns[columnCount - 1].indexOf('<-'),\n )\n }\n for (i = 0; i < columnCount; i++) {\n token = state.push('td_open', 'td', 1)\n if (alignments && alignments[i]) {\n token.attrSet('style', `text-align: ${alignments[i]}`)\n }\n token = state.push('inline', '', 0)\n token.content = columns[i] ? columns[i].trim() : ''\n token.children = []\n\n token = state.push('td_close', 'td', -1)\n }\n token = state.push('tr_close', 'tr', -1)\n }\n state.push('tbody_close', 'tbody', -1)\n state.push('table_close', 'table', -1)\n\n if (wrapWithDiv) {\n state.push('div_wrapper', 'div', -1)\n }\n\n tableLines[1] = tbodyLines[1] = nextLine\n state.line = nextLine\n return true\n }\n const rulesCanBeTerminated = ['paragraph', 'reference']\n md.block.ruler.at('table', table, { alt: rulesCanBeTerminated.slice() })\n}\n"],"names":["tableClassStartRE","tableClassEndRE","centerStartRE","centerEndRE","outerPipesRE","getLine","state","line","pos","max","escapedSplit","str","result","ch","escapes","lastPos","backTicked","lastBackTick","ALLOWED_CLASS_NAMES","filterClassNames","classNames","className","parseDividerForAlignment","dividerLine","cols","cell","alignments","col","synapse_table_plugin","md","table","startLine","endLine","silent","lineText","i","nextLine","columns","token","tableLines","tbodyLines","tableBodyStartLine","headerLine","isSpecialSyntaxTable","wrapWithDiv","columnCount","rulesCanBeTerminated"],"mappings":"uOAIA,MAAMA,EAAoB,IAAI,OAC5B,2CACF,EACMC,EAAkB,IAAI,OAAO,eAAe,EAC5CC,EAAgB,IAAI,OAAO,SAAS,EACpCC,EAAc,IAAI,OAAO,SAAS,EAClCC,EAAe,IAAI,OAAO,gBAAgB,EAEhD,SAASC,EAAQC,EAAmBC,EAAsB,CACxD,MAAMC,EAAMF,EAAM,OAAOC,CAAI,EAAID,EAAM,UACjCG,EAAMH,EAAM,OAAOC,CAAI,EAE7B,OAAOD,EAAM,IAAI,UAAUE,EAAKC,CAAG,CACrC,CAEA,SAASC,EAAaC,EAAuB,CACvCP,EAAa,KAAKO,CAAG,IACjBA,EAAAA,EAAI,QAAQ,WAAY,EAAE,GAGlC,MAAMC,EAAmB,CAAA,EACzB,IAAIJ,EAAM,EACV,MAAMC,EAAME,EAAI,OACZ,IAAAE,EACAC,EAAU,EACVC,EAAU,EACVC,EAAa,GACbC,EAAgBJ,EAAKF,EAAI,WAAWH,CAAG,EAE3C,KAAOA,EAAMC,GACPI,IAAO,IAAQC,EAAU,IAAM,GAEjCE,EAAa,CAACA,EACCC,EAAAT,GACNK,IAAO,KAAQC,EAAU,IAAM,GAAK,CAACE,GAE9CJ,EAAO,KAAKD,EAAI,UAAUI,EAASP,CAAG,CAAC,EACvCO,EAAUP,EAAM,GACPK,IAAO,GAEhBC,IAEUA,EAAA,EAGZN,IAIIA,IAAQC,GAAOO,IACJA,EAAA,GACbR,EAAMS,EAAe,GAGlBJ,EAAAF,EAAI,WAAWH,CAAG,EAGzB,OAAAI,EAAO,KAAKD,EAAI,UAAUI,CAAO,CAAC,EAE3BH,CACT,CAEA,MAAMM,EAAsB,CAC1B,oBACA,mBACA,SACA,SACA,OACF,EAEA,SAASC,EAAiBC,EAA4B,CACpD,OAAOA,EACJ,MAAM,GAAG,EACT,OAAOC,GAAaH,EAAoB,SAASG,CAAS,CAAC,EAC3D,KAAK,GAAG,CACb,CAEA,SAASC,EACPC,EAC+C,CAC3C,GAAA,CAACA,EAAY,WAAW,GAAG,GAAK,CAACA,EAAY,SAAS,GAAG,EAEpD,OAAA,KAEH,MAAAC,EAAOD,EAAY,MAAM,GAAG,EAAE,IAAIE,GAAQA,EAAK,KAAA,CAAM,EACtDD,EAAA,OAAO,EAAG,CAAC,EAChB,MAAME,EAAqD,CAAA,EAC3D,OAAAF,EAAK,QAAeG,GAAA,CACdA,EAAI,WAAW,GAAG,GAAKA,EAAI,SAAS,GAAG,EACzCD,EAAW,KAAK,QAAQ,EACfC,EAAI,WAAW,GAAG,EAC3BD,EAAW,KAAK,MAAM,EACbC,EAAI,SAAS,GAAG,EACzBD,EAAW,KAAK,OAAO,EAEvBA,EAAW,KAAK,IAAI,CACtB,CACD,EAEMA,CACT,CAEA,SAAwBE,EAAqBC,EAAgB,CAC3D,MAAMC,EAAmB,CAACxB,EAAOyB,EAAWC,EAASC,IAAW,CAC1D,IAAAC,EACA1B,EACA2B,EACAC,EACAC,EACAC,EACAC,EACAC,EACApB,EACAqB,EACAC,EACAC,EAAuB,GACvBC,EAAc,GAyClB,GAtCIb,EAAY,EAAIC,IAIpBxB,EAAMF,EAAM,OAAOyB,CAAS,EAAIzB,EAAM,OAAOyB,CAAS,EAClDvB,GAAOF,EAAM,OAAOyB,CAAS,KAGtBG,EAAA7B,EAAQC,EAAOyB,CAAS,EAG/B/B,EAAkB,KAAKkC,CAAQ,GAEjCd,EAAac,EAAS,MAAMlC,CAAiB,EAAE,CAAC,EAClC4C,EAAAxB,EAAW,QAAQ,OAAO,IAAM,GAC9CsB,EAAaX,EAAY,EAEFY,EAAA,IAEVD,EAAAX,EAGXzB,EAAM,OAAOoC,CAAU,EAAIpC,EAAM,aAIrCE,EAAMF,EAAM,OAAOoC,CAAU,EAAIpC,EAAM,OAAOoC,CAAU,EACpDlC,GAAOF,EAAM,OAAOoC,CAAU,KAKlCR,EAAW7B,EAAQC,EAAOoC,CAAU,EAAE,KAAK,EACvCR,EAAS,QAAQ,GAAG,IAAM,IAAM,CAACS,IAKjCT,EAAS,QAAQ,IAAI,IAAM,GACtB,MAAA,GAETG,EAAU3B,EAAawB,CAAQ,EAG/B,MAAMW,EAAcR,EAAQ,OAE5B,GAAIJ,EACK,MAAA,GAGLW,IACFN,EAAQhC,EAAM,KAAK,cAAe,MAAO,CAAC,EACpCgC,EAAA,SAAS,QAAS,mBAAmB,GAE7CA,EAAQhC,EAAM,KAAK,aAAc,QAAS,CAAC,EAC3CgC,EAAM,IAAMC,EAAa,CAACR,EAAW,CAAC,EAClCX,IACFkB,EAAM,SAAS,QAASnB,EAAiBC,CAAU,CAAC,EAEpDW,KAGFG,EAAW7B,EAAQC,EAAOoC,EAAa,CAAC,EAAE,OAE1C,IAAIhB,EAAuC,KAGvC,GAAA,YAAY,KAAKQ,CAAQ,GAAKA,EAAS,QAAQ,GAAG,IAAM,GAAI,CAU9D,IATAR,EAAaJ,EAAyBY,CAAQ,EAE9CO,EAAqBC,EAAa,EAClCJ,EAAQhC,EAAM,KAAK,aAAc,QAAS,CAAC,EAC3CgC,EAAM,IAAM,CAACP,EAAWA,EAAY,CAAC,EAErCO,EAAQhC,EAAM,KAAK,UAAW,KAAM,CAAC,EACrCgC,EAAM,IAAM,CAACP,EAAWA,EAAY,CAAC,EAEhCI,EAAI,EAAGA,EAAIE,EAAQ,OAAQF,IAC9BG,EAAQhC,EAAM,KAAK,UAAW,KAAM,CAAC,EACrCgC,EAAM,IAAM,CAACP,EAAWA,EAAY,CAAC,EACjCL,GAAcA,EAAWS,CAAC,GAC5BG,EAAM,QAAQ,QAAS,eAAeZ,EAAWS,CAAC,CAAC,EAAE,EAGvDG,EAAQhC,EAAM,KAAK,SAAU,GAAI,CAAC,EAClCgC,EAAM,QAAUD,EAAQF,CAAC,EAAE,KAAK,EAChCG,EAAM,IAAM,CAACP,EAAWA,EAAY,CAAC,EACrCO,EAAM,SAAW,GAEjBA,EAAQhC,EAAM,KAAK,WAAY,KAAM,EAAE,EAGzCgC,EAAQhC,EAAM,KAAK,WAAY,KAAM,EAAE,EACvCgC,EAAQhC,EAAM,KAAK,cAAe,QAAS,EAAE,CAAA,MAGxBmC,EAAAC,EAMvB,IAHAJ,EAAQhC,EAAM,KAAK,aAAc,QAAS,CAAC,EAC3CgC,EAAM,IAAME,EAAa,CAACC,EAAoB,CAAC,EAE1CL,EAAWK,EAAoBL,EAAWJ,GACzC,EAAA1B,EAAM,OAAO8B,CAAQ,EAAI9B,EAAM,WADmB8B,IAAY,CAM9D,GADJF,EAAW7B,EAAQC,EAAO8B,CAAQ,EAAE,KAAK,EACrCnC,EAAgB,KAAKiC,CAAQ,EAAG,CAElCE,IACA,KACF,CACA,GAAIF,EAAS,QAAQ,GAAG,IAAM,IAAM,CAACS,EACnC,MAgBF,IAdAN,EAAU3B,EAAawB,CAAQ,EAE/BI,EAAQhC,EAAM,KAAK,UAAW,KAAM,CAAC,EAGnCJ,EAAc,KAAKmC,EAAQ,CAAC,CAAC,GAC7BlC,EAAY,KAAKkC,EAAQQ,EAAc,CAAC,CAAC,IAEzCR,EAAQ,CAAC,EAAIA,EAAQ,CAAC,EAAE,UAAUA,EAAQ,CAAC,EAAE,QAAQ,IAAI,EAAI,CAAC,EAC9DA,EAAQQ,EAAc,CAAC,EAAIR,EAAQQ,EAAc,CAAC,EAAE,UAClD,EACAR,EAAQQ,EAAc,CAAC,EAAE,QAAQ,IAAI,CAAA,GAGpCV,EAAI,EAAGA,EAAIU,EAAaV,IAC3BG,EAAQhC,EAAM,KAAK,UAAW,KAAM,CAAC,EACjCoB,GAAcA,EAAWS,CAAC,GAC5BG,EAAM,QAAQ,QAAS,eAAeZ,EAAWS,CAAC,CAAC,EAAE,EAEvDG,EAAQhC,EAAM,KAAK,SAAU,GAAI,CAAC,EAC5BgC,EAAA,QAAUD,EAAQF,CAAC,EAAIE,EAAQF,CAAC,EAAE,KAAS,EAAA,GACjDG,EAAM,SAAW,GAEjBA,EAAQhC,EAAM,KAAK,WAAY,KAAM,EAAE,EAEzCgC,EAAQhC,EAAM,KAAK,WAAY,KAAM,EAAE,CACzC,CACM,OAAAA,EAAA,KAAK,cAAe,QAAS,EAAE,EAC/BA,EAAA,KAAK,cAAe,QAAS,EAAE,EAEjCsC,GACItC,EAAA,KAAK,cAAe,MAAO,EAAE,EAGrCiC,EAAW,CAAC,EAAIC,EAAW,CAAC,EAAIJ,EAChC9B,EAAM,KAAO8B,EACN,EAAA,EAEHU,EAAuB,CAAC,YAAa,WAAW,EACnDjB,EAAA,MAAM,MAAM,GAAG,QAASC,EAAO,CAAE,IAAKgB,EAAqB,MAAM,CAAG,CAAA,CACzE"} |
+1
-1
| { | ||
| "name": "markdown-it-synapse-table", | ||
| "version": "1.0.7", | ||
| "version": "1.0.8", | ||
| "description": "markdown-it-plugin for table formatting in Synapse.org", | ||
@@ -5,0 +5,0 @@ "type": "module", |
+1
-1
@@ -16,3 +16,3 @@ import { vitestConfig } from 'vite-config' | ||
| fileName: 'index', | ||
| formats: ['es', 'cjs'], | ||
| formats: ['es', 'cjs', 'umd'], | ||
| }, | ||
@@ -19,0 +19,0 @@ }, |
-22
| { | ||
| "name": "markdown-it-synapse", | ||
| "main": "dist/markdown-it-synapse.js", | ||
| "homepage": "https://github.com/jay-hodgson/markdown-it-synapse", | ||
| "description": "synapse widget container support for markdown-it markdown parser.", | ||
| "keywords": ["markdown-it-plugin", "markdown-it", "markdown", "synapse"], | ||
| "license": "MIT", | ||
| "ignore": [ | ||
| "**/.*", | ||
| "benchmark", | ||
| "bower_components", | ||
| "coverage", | ||
| "demo", | ||
| "docs", | ||
| "lib", | ||
| "node_modules", | ||
| "support", | ||
| "test", | ||
| "Makefile", | ||
| "index*" | ||
| ] | ||
| } |
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
New author
Supply chain riskA new npm collaborator published a version of the package for the first time. New collaborators are usually benign additions to a project, but do indicate a change to the security surface area of a package.
Found 1 instance in 1 package
72446
29.55%16
6.67%0
-100%404
-2.18%3
50%