MCPcopy Create free account
hub / github.com/ChinaSiro/claude-code-sourcemap / blockTokens

Method blockTokens

package/cli.js:1437–1446  ·  view source on GitHub ↗
(q,K=[],_=!1)

Source from the content-addressed store, hash-verified

1435`,q=q.substring(V.length+1),J=E.slice(P)}}if(!Y.loose){if(A)Y.loose=!0;else if(this.rules.other.doubleBlankLine.test(j))A=!0}let W=null,D;if(this.options.gfm){if(W=this.rules.other.listIsTask.exec(H),W)D=W[0]!=="[ ] ",H=H.replace(this.rules.other.listReplaceTask,"")}Y.items.push({type:"list_item",raw:j,task:!!W,checked:D,loose:!1,text:H,tokens:[]}),Y.raw+=j}let O=Y.items.at(-1);if(O)O.raw=O.raw.trimEnd(),O.text=O.text.trimEnd();else return;Y.raw=Y.raw.trimEnd();for(let w=0;w<Y.items.length;w++)if(this.lexer.state.top=!1,Y.items[w].tokens=this.lexer.blockTokens(Y.items[w].text,[]),!Y.loose){let j=Y.items[w].tokens.filter((J)=>J.type==="space"),H=j.length>0&&j.some((J)=>this.rules.other.anyLine.test(J.raw));Y.loose=H}if(Y.loose)for(let w=0;w<Y.items.length;w++)Y.items[w].loose=!0;return Y}}html(q){let K=this.rules.block.html.exec(q);if(K)return{type:"html",block:!0,raw:K[0],pre:K[1]==="pre"||K[1]==="script"||K[1]==="style",text:K[0]}}def(q){let K=this.rules.block.def.exec(q);if(K){let _=K[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal," "),z=K[2]?K[2].replace(this.rules.other.hrefBrackets,"$1").replace(this.rules.inline.anyPunctuation,"$1"):"",Y=K[3]?K[3].substring(1,K[3].length-1).replace(this.rules.inline.anyPunctuation,"$1"):K[3];return{type:"def",tag:_,raw:K[0],href:z,title:Y}}}table(q){let K=this.rules.block.table.exec(q);if(!K)return;if(!this.rules.other.tableDelimiter.test(K[2]))return;let _=uj4(K[1]),z=K[2].replace(this.rules.other.tableAlignChars,"").split("|"),Y=K[3]?.trim()?K[3].replace(this.rules.other.tableRowBlankLine,"").split(`
1436`):[],$={type:"table",raw:K[0],header:[],align:[],rows:[]};if(_.length!==z.length)return;for(let A of z)if(this.rules.other.tableAlignRight.test(A))$.align.push("right");else if(this.rules.other.tableAlignCenter.test(A))$.align.push("center");else if(this.rules.other.tableAlignLeft.test(A))$.align.push("left");else $.align.push(null);for(let A=0;A<_.length;A++)$.header.push({text:_[A],tokens:this.lexer.inline(_[A]),header:!0,align:$.align[A]});for(let A of Y)$.rows.push(uj4(A,$.header.length).map((O,w)=>{return{text:O,tokens:this.lexer.inline(O),header:!1,align:$.align[w]}}));return $}lheading(q){let K=this.rules.block.lheading.exec(q);if(K)return{type:"heading",raw:K[0],depth:K[2].charAt(0)==="="?1:2,text:K[1],tokens:this.lexer.inline(K[1])}}paragraph(q){let K=this.rules.block.paragraph.exec(q);if(K){let _=K[1].charAt(K[1].length-1)===`
1437`?K[1].slice(0,-1):K[1];return{type:"paragraph",raw:K[0],text:_,tokens:this.lexer.inline(_)}}}text(q){let K=this.rules.block.text.exec(q);if(K)return{type:"text",raw:K[0],text:K[0],tokens:this.lexer.inline(K[0])}}escape(q){let K=this.rules.inline.escape.exec(q);if(K)return{type:"escape",raw:K[0],text:K[1]}}tag(q){let K=this.rules.inline.tag.exec(q);if(K){if(!this.lexer.state.inLink&&this.rules.other.startATag.test(K[0]))this.lexer.state.inLink=!0;else if(this.lexer.state.inLink&&this.rules.other.endATag.test(K[0]))this.lexer.state.inLink=!1;if(!this.lexer.state.inRawBlock&&this.rules.other.startPreScriptTag.test(K[0]))this.lexer.state.inRawBlock=!0;else if(this.lexer.state.inRawBlock&&this.rules.other.endPreScriptTag.test(K[0]))this.lexer.state.inRawBlock=!1;return{type:"html",raw:K[0],inLink:this.lexer.state.inLink,inRawBlock:this.lexer.state.inRawBlock,block:!1,text:K[0]}}}link(q){let K=this.rules.inline.link.exec(q);if(K){let _=K[2].trim();if(!this.options.pedantic&&this.rules.other.startAngleBracket.test(_)){if(!this.rules.other.endAngleBracket.test(_))return;let $=Kr6(_.slice(0,-1),"\\");if((_.length-$.length)%2===0)return}else{let $=dd_(K[2],"()");if($>-1){let O=(K[0].indexOf("!")===0?5:4)+K[1].length+$;K[2]=K[2].substring(0,$),K[0]=K[0].substring(0,O).trim(),K[3]=""}}let z=K[2],Y="";if(this.options.pedantic){let $=this.rules.other.pedanticHrefTitle.exec(z);if($)z=$[1],Y=$[3]}else Y=K[3]?K[3].slice(1,-1):"";if(z=z.trim(),this.rules.other.startAngleBracket.test(z))if(this.options.pedantic&&!this.rules.other.endAngleBracket.test(_))z=z.slice(1);else z=z.slice(1,-1);return mj4(K,{href:z?z.replace(this.rules.inline.anyPunctuation,"$1"):z,title:Y?Y.replace(this.rules.inline.anyPunctuation,"$1"):Y},K[0],this.lexer,this.rules)}}reflink(q,K){let _;if((_=this.rules.inline.reflink.exec(q))||(_=this.rules.inline.nolink.exec(q))){let z=(_[2]||_[1]).replace(this.rules.other.multipleSpaceGlobal," "),Y=K[z.toLowerCase()];if(!Y){let $=_[0].charAt(0);return{type:"text",raw:$,text:$}}return mj4(_,Y,_[0],this.lexer,this.rules)}}emStrong(q,K,_=""){let z=this.rules.inline.emStrongLDelim.exec(q);if(!z)return;if(z[3]&&_.match(this.rules.other.unicodeAlphaNumeric))return;if(!(z[1]||z[2])||!_||this.rules.inline.punctuation.exec(_)){let $=[...z[0]].length-1,A,O,w=$,j=0,H=z[0][0]==="*"?this.rules.inline.emStrongRDelimAst:this.rules.inline.emStrongRDelimUnd;H.lastIndex=0,K=K.slice(-1*q.length+$);while((z=H.exec(K))!=null){if(A=z[1]||z[2]||z[3]||z[4]||z[5]||z[6],!A)continue;if(O=[...A].length,z[3]||z[4]){w+=O;continue}else if(z[5]||z[6]){if($%3&&!(($+O)%3)){j+=O;continue}}if(w-=O,w>0)continue;O=Math.min(O,O+w+j);let J=[...z[0]][0].length,M=q.slice(0,$+z.index+J+O);if(Math.min($,O)%2){let P=M.slice(1,-1);return{type:"em",raw:M,text:P,tokens:this.lexer.inlineTokens(P)}}let X=M.slice(2,-2);return{type:"strong",raw:M,text:X,tokens:this.lexer.inlineTokens(X)}}}}codespan(q){let K=this.rules.inline.code.exec(q);if(K){let _=K[2].replace(this.rules.other.newLineCharGlobal," "),z=this.rules.other.nonSpaceChar.test(_),Y=this.rules.other.startingSpaceChar.test(_)&&this.rules.other.endingSpaceChar.test(_);if(z&&Y)_=_.substring(1,_.length-1);return{type:"codespan",raw:K[0],text:_}}}br(q){let K=this.rules.inline.br.exec(q);if(K)return{type:"br",raw:K[0]}}del(q){let K=this.rules.inline.del.exec(q);if(K)return{type:"del",raw:K[0],text:K[2],tokens:this.lexer.inlineTokens(K[2])}}autolink(q){let K=this.rules.inline.autolink.exec(q);if(K){let _,z;if(K[2]==="@")_=K[1],z="mailto:"+_;else _=K[1],z=_;return{type:"link",raw:K[0],text:_,href:z,tokens:[{type:"text",raw:_,text:_}]}}}url(q){let K;if(K=this.rules.inline.url.exec(q)){let _,z;if(K[2]==="@")_=K[0],z="mailto:"+_;else{let Y;do Y=K[0],K[0]=this.rules.inline._backpedal.exec(K[0])?.[0]??"";while(Y!==K[0]);if(_=K[0],K[1]==="www.")z="http://"+K[0];else z=K[0]}return{type:"link",raw:K[0],text:_,href:z,tokens:[{type:"text",raw:_,text:_}]}}}inlineText(q){let K=this.rules.inline.text.exec(q);if(K){let _=this.lexer.state.inRawBlock;return{type:"text",raw:K[0],text:K[0],escaped:_}}}}class pv{tokens;options;state;tokenizer;inlineQueue;constructor(q){this.tokens=[],this.tokens.links=Object.create(null),this.options=q||SO6,this.options.tokenizer=this.options.tokenizer||new Yr6,this.tokenizer=this.options.tokenizer,this.tokenizer.options=this.options,this.tokenizer.lexer=this,this.inlineQueue=[],this.state={inLink:!1,inRawBlock:!1,top:!0};let K={other:mv,block:Nk8.normal,inline:qr6.normal};if(this.options.pedantic)K.block=Nk8.pedantic,K.inline=qr6.pedantic;else if(this.options.gfm)if(K.block=Nk8.gfm,this.options.breaks)K.inline=qr6.breaks;else K.inline=qr6.gfm;this.tokenizer.rules=K}static get rules(){return{block:Nk8,inline:qr6}}static lex(q,K){return new pv(K).lex(q)}static lexInline(q,K){return new pv(K).inlineTokens(q)}lex(q){q=q.replace(mv.carriageReturn,`
1438`),this.blockTokens(q,this.tokens);for(let K=0;K<this.inlineQueue.length;K++){let _=this.inlineQueue[K];this.inlineTokens(_.src,_.tokens)}return this.inlineQueue=[],this.tokens}blockTokens(q,K=[],_=!1){if(this.options.pedantic)q=q.replace(mv.tabCharGlobal," ").replace(mv.spaceLine,"");while(q){let z;if(this.options.extensions?.block?.some(($)=>{if(z=$.call({lexer:this},q,K))return q=q.substring(z.raw.length),K.push(z),!0;return!1}))continue;if(z=this.tokenizer.space(q)){q=q.substring(z.raw.length);let $=K.at(-1);if(z.raw.length===1&&$!==void 0)$.raw+=`
1439`;else K.push(z);continue}if(z=this.tokenizer.code(q)){q=q.substring(z.raw.length);let $=K.at(-1);if($?.type==="paragraph"||$?.type==="text")$.raw+=`
1440`+z.raw,$.text+=`
1441`+z.text,this.inlineQueue.at(-1).src=$.text;else K.push(z);continue}if(z=this.tokenizer.fences(q)){q=q.substring(z.raw.length),K.push(z);continue}if(z=this.tokenizer.heading(q)){q=q.substring(z.raw.length),K.push(z);continue}if(z=this.tokenizer.hr(q)){q=q.substring(z.raw.length),K.push(z);continue}if(z=this.tokenizer.blockquote(q)){q=q.substring(z.raw.length),K.push(z);continue}if(z=this.tokenizer.list(q)){q=q.substring(z.raw.length),K.push(z);continue}if(z=this.tokenizer.html(q)){q=q.substring(z.raw.length),K.push(z);continue}if(z=this.tokenizer.def(q)){q=q.substring(z.raw.length);let $=K.at(-1);if($?.type==="paragraph"||$?.type==="text")$.raw+=`
1442`+z.raw,$.text+=`
1443`+z.raw,this.inlineQueue.at(-1).src=$.text;else if(!this.tokens.links[z.tag])this.tokens.links[z.tag]={href:z.href,title:z.title};continue}if(z=this.tokenizer.table(q)){q=q.substring(z.raw.length),K.push(z);continue}if(z=this.tokenizer.lheading(q)){q=q.substring(z.raw.length),K.push(z);continue}let Y=q;if(this.options.extensions?.startBlock){let $=1/0,A=q.slice(1),O;if(this.options.extensions.startBlock.forEach((w)=>{if(O=w.call({lexer:this},A),typeof O==="number"&&O>=0)$=Math.min($,O)}),$<1/0&&$>=0)Y=q.substring(0,$+1)}if(this.state.top&&(z=this.tokenizer.paragraph(Y))){let $=K.at(-1);if(_&&$?.type==="paragraph")$.raw+=`
1444`+z.raw,$.text+=`
1445`+z.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=$.text;else K.push(z);_=Y.length!==q.length,q=q.substring(z.raw.length);continue}if(z=this.tokenizer.text(q)){q=q.substring(z.raw.length);let $=K.at(-1);if($?.type==="text")$.raw+=`
1446`+z.raw,$.text+=`
1447`+z.text,this.inlineQueue.pop(),this.inlineQueue.at(-1).src=$.text;else K.push(z);continue}if(q){let $="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error($);break}else throw Error($)}}return this.state.top=!0,K}inline(q,K=[]){return this.inlineQueue.push({src:q,tokens:K}),K}inlineTokens(q,K=[]){let _=q,z=null;if(this.tokens.links){let A=Object.keys(this.tokens.links);if(A.length>0){while((z=this.tokenizer.rules.inline.reflinkSearch.exec(_))!=null)if(A.includes(z[0].slice(z[0].lastIndexOf("[")+1,-1)))_=_.slice(0,z.index)+"["+"a".repeat(z[0].length-2)+"]"+_.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex)}}while((z=this.tokenizer.rules.inline.blockSkip.exec(_))!=null)_=_.slice(0,z.index)+"["+"a".repeat(z[0].length-2)+"]"+_.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);while((z=this.tokenizer.rules.inline.anyPunctuation.exec(_))!=null)_=_.slice(0,z.index)+"++"+_.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);let Y=!1,$="";while(q){if(!Y)$="";Y=!1;let A;if(this.options.extensions?.inline?.some((w)=>{if(A=w.call({lexer:this},q,K))return q=q.substring(A.raw.length),K.push(A),!0;return!1}))continue;if(A=this.tokenizer.escape(q)){q=q.substring(A.raw.length),K.push(A);continue}if(A=this.tokenizer.tag(q)){q=q.substring(A.raw.length),K.push(A);continue}if(A=this.tokenizer.link(q)){q=q.substring(A.raw.length),K.push(A);continue}if(A=this.tokenizer.reflink(q,this.tokens.links)){q=q.substring(A.raw.length);let w=K.at(-1);if(A.type==="text"&&w?.type==="text")w.raw+=A.raw,w.text+=A.text;else K.push(A);continue}if(A=this.tokenizer.emStrong(q,_,$)){q=q.substring(A.raw.length),K.push(A);continue}if(A=this.tokenizer.codespan(q)){q=q.substring(A.raw.length),K.push(A);continue}if(A=this.tokenizer.br(q)){q=q.substring(A.raw.length),K.push(A);continue}if(A=this.tokenizer.del(q)){q=q.substring(A.raw.length),K.push(A);continue}if(A=this.tokenizer.autolink(q)){q=q.substring(A.raw.length),K.push(A);continue}if(!this.state.inLink&&(A=this.tokenizer.url(q))){q=q.substring(A.raw.length),K.push(A);continue}let O=q;if(this.options.extensions?.startInline){let w=1/0,j=q.slice(1),H;if(this.options.extensions.startInline.forEach((J)=>{if(H=J.call({lexer:this},j),typeof H==="number"&&H>=0)w=Math.min(w,H)}),w<1/0&&w>=0)O=q.substring(0,w+1)}if(A=this.tokenizer.inlineText(O)){if(q=q.substring(A.raw.length),A.raw.slice(-1)!=="_")$=A.raw.slice(-1);Y=!0;let w=K.at(-1);if(w?.type==="text")w.raw+=A.raw,w.text+=A.text;else K.push(A);continue}if(q){let w="Infinite loop on byte: "+q.charCodeAt(0);if(this.options.silent){console.error(w);break}else throw Error(w)}}return K}}class $r6{options;parser;constructor(q){this.options=q||SO6}space(q){return""}code({text:q,lang:K,escaped:_}){let z=(K||"").match(mv.notSpaceStart)?.[0],Y=q.replace(mv.endingNewline,"")+`
1448`;if(!z)return"<pre><code>"+(_?Y:aF(Y,!0))+`</code></pre>
1449`;return'<pre><code class="language-'+aF(z)+'">'+(_?Y:aF(Y,!0))+`</code></pre>

Callers 3

lexMethod · 0.95
blockquoteMethod · 0.80
listMethod · 0.80

Calls 15

callMethod · 0.80
fencesMethod · 0.80
defMethod · 0.80
lheadingMethod · 0.80
replaceMethod · 0.45
pushMethod · 0.45
spaceMethod · 0.45
atMethod · 0.45
codeMethod · 0.45
headingMethod · 0.45
hrMethod · 0.45
blockquoteMethod · 0.45

Tested by

no test coverage detected