@mdast2docx/list
Version:
Plugin to convert ordered and unordered lists from Markdown (MDAST) to DOCX. Supports nesting, custom bullets, and numbering styles.
2 lines (1 loc) • 1.79 kB
JavaScript
;var p=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var O=Object.getOwnPropertyNames;var E=Object.prototype.hasOwnProperty;var b=(n,t)=>{for(var o in t)p(n,o,{get:t[o],enumerable:!0})},R=(n,t,o,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of O(t))!E.call(n,l)&&l!==o&&p(n,l,{get:()=>t[l],enumerable:!(i=y(t,l))||i.enumerable});return n};var A=n=>R(p({},"__esModule",{value:!0}),n);var x={};b(x,{createLevels:()=>m,listPlugin:()=>M});module.exports=A(x);var e=require("docx"),d=[e.LevelFormat.DECIMAL,e.LevelFormat.DECIMAL,e.LevelFormat.DECIMAL,e.LevelFormat.DECIMAL,e.LevelFormat.UPPER_LETTER,e.LevelFormat.LOWER_LETTER,e.LevelFormat.LOWER_ROMAN,e.LevelFormat.UPPER_ROMAN],m=(n,t=.4,o=.25)=>n.map((i,l)=>({level:l,format:i,text:(i===e.LevelFormat.DECIMAL?Array(l+1).fill(`%${l+1}`).join("."):`%${l+1}`)+".",alignment:e.AlignmentType.START,style:{paragraph:{indent:{left:(0,e.convertInchesToTwip)(t+l*o)}}}})),P=m(d),T=["\u25CF","\u25CB","\u25A0","\u25C6","\u25B6","\u25C9","\u2B24","\u2666","\u25E6","\u25AA"],D={levels:P,bullets:T,defaultBullets:!1},M=n=>{let t=crypto.getRandomValues(new Uint32Array(1))[0].toString(16),o=`numbering-${t}`,i=`bullet-${t}`,{levels:l,bulletLevels:c,bullets:v,defaultBullets:I}={...D,...n};return{block:async(a,s,r,L)=>{var u,g;if(s.type!=="list")return[];let f=((g=(u=r.bullet)==null?void 0:u.level)!=null?g:-1)+1;return r.numbering=I?void 0:{level:f,reference:s.ordered?o:i},r.bullet={level:f},s.type="",await L(s,r)},root:a=>{var s,r;a.numbering={config:[...(r=(s=a.numbering)==null?void 0:s.config)!=null?r:[],{reference:o,levels:l},{reference:i,levels:c!=null?c:l.map((L,f)=>{var u;return{...L,text:(u=v[f])!=null?u:"\u2022",format:e.LevelFormat.BULLET}})}]}}}};0&&(module.exports={createLevels,listPlugin});