remark-underline
Version:
A remark plugin which adds underline support by repurposing the "__" token.
1 lines • 3.54 kB
Source Map (JSON)
{"version":3,"file":"remark-underline.mjs","sources":["../src/index.js"],"sourcesContent":["export default function attacher(options) {\n\n options = options ?? {}; // Prevents options from being null\n const Parser = this.Parser.prototype;\n\n const nodeType = options.nodeType ?? 'underline';\n const marker = options.marker ?? '__';\n const classNames = options.classNames ?? [\"underline\"];\n const tagType = options.tagType ?? 'ins';\n\n Parser.inlineTokenizers.underline = function underlineTokenizer(eat, value, silent) {\n\n if (value.startsWith(marker)) {\n\n const end = value.indexOf(marker, marker.length);\n\n if (end > -1) {\n\n if (silent) {\n\n return true;\n }\n\n const text = value.substring(marker.length, end);\n\n const now = eat.now();\n now.column += marker.length;\n now.offset += marker.length;\n\n return eat(marker + text + marker)({\n type: nodeType,\n children: this.tokenizeInline(text, now),\n data: {\n hName: tagType,\n hProperties: classNames.length ? { className: classNames } : {}\n }\n });\n }\n }\n\n return false;\n };\n Parser.inlineTokenizers.underline.locator = (value, fromIndex) => value.indexOf(marker, fromIndex);\n Parser.inlineMethods.splice(Parser.inlineMethods.indexOf('strong'), 0, 'underline');\n};\n"],"names":["attacher","options","Parser","prototype","nodeType","marker","classNames","tagType","inlineTokenizers","underline","underlineTokenizer","eat","value","silent","startsWith","end","indexOf","length","text","substring","now","column","offset","type","children","tokenizeInline","data","hName","hProperties","className","locator","fromIndex","inlineMethods","splice"],"mappings":"AAAe,SAASA,QAAT,CAAkBC,OAAlB,EAA2B;AAAA;;AAEtCA,EAAAA,OAAO,eAAGA,OAAH,uBAAc,EAArB,CAFsC;;AAGtC,MAAMC,MAAM,GAAG,KAAKA,MAAL,CAAYC,SAA3B;AAEA,MAAMC,QAAQ,wBAAGH,OAAO,CAACG,QAAX,gCAAuB,WAArC;AACA,MAAMC,MAAM,sBAAGJ,OAAO,CAACI,MAAX,8BAAqB,IAAjC;AACA,MAAMC,UAAU,0BAAGL,OAAO,CAACK,UAAX,kCAAyB,CAAC,WAAD,CAAzC;AACA,MAAMC,OAAO,uBAAGN,OAAO,CAACM,OAAX,+BAAsB,KAAnC;;AAEAL,EAAAA,MAAM,CAACM,gBAAP,CAAwBC,SAAxB,GAAoC,SAASC,kBAAT,CAA4BC,GAA5B,EAAiCC,KAAjC,EAAwCC,MAAxC,EAAgD;AAEhF,QAAID,KAAK,CAACE,UAAN,CAAiBT,MAAjB,CAAJ,EAA8B;AAE1B,UAAMU,GAAG,GAAGH,KAAK,CAACI,OAAN,CAAcX,MAAd,EAAsBA,MAAM,CAACY,MAA7B,CAAZ;;AAEA,UAAIF,GAAG,GAAG,CAAC,CAAX,EAAc;AAEV,YAAIF,MAAJ,EAAY;AAER,iBAAO,IAAP;AACH;;AAED,YAAMK,IAAI,GAAGN,KAAK,CAACO,SAAN,CAAgBd,MAAM,CAACY,MAAvB,EAA+BF,GAA/B,CAAb;AAEA,YAAMK,GAAG,GAAGT,GAAG,CAACS,GAAJ,EAAZ;AACAA,QAAAA,GAAG,CAACC,MAAJ,IAAchB,MAAM,CAACY,MAArB;AACAG,QAAAA,GAAG,CAACE,MAAJ,IAAcjB,MAAM,CAACY,MAArB;AAEA,eAAON,GAAG,CAACN,MAAM,GAAGa,IAAT,GAAgBb,MAAjB,CAAH,CAA4B;AAC/BkB,UAAAA,IAAI,EAAEnB,QADyB;AAE/BoB,UAAAA,QAAQ,EAAE,KAAKC,cAAL,CAAoBP,IAApB,EAA0BE,GAA1B,CAFqB;AAG/BM,UAAAA,IAAI,EAAE;AACFC,YAAAA,KAAK,EAAEpB,OADL;AAEFqB,YAAAA,WAAW,EAAEtB,UAAU,CAACW,MAAX,GAAoB;AAAEY,cAAAA,SAAS,EAAEvB;AAAb,aAApB,GAAgD;AAF3D;AAHyB,SAA5B,CAAP;AAQH;AACJ;;AAED,WAAO,KAAP;AACH,GA/BD;;AAgCAJ,EAAAA,MAAM,CAACM,gBAAP,CAAwBC,SAAxB,CAAkCqB,OAAlC,GAA4C,UAAClB,KAAD,EAAQmB,SAAR;AAAA,WAAsBnB,KAAK,CAACI,OAAN,CAAcX,MAAd,EAAsB0B,SAAtB,CAAtB;AAAA,GAA5C;;AACA7B,EAAAA,MAAM,CAAC8B,aAAP,CAAqBC,MAArB,CAA4B/B,MAAM,CAAC8B,aAAP,CAAqBhB,OAArB,CAA6B,QAA7B,CAA5B,EAAoE,CAApE,EAAuE,WAAvE;AACH;;;;"}