Build: 周五 2025/12/05 16:43:28.99
This commit is contained in:
@@ -1 +1 @@
|
||||
import{_ as e,c as o,b as n,o as r}from"./app-Dqab9jXZ.js";const a={};function p(s,t){return r(),o("div",null,[...t[0]||(t[0]=[n("p",null,"404 Not Found",-1)])])}const i=e(a,[["render",p]]),l=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/404.html"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}]]},"readingTime":{"minutes":0.01,"words":3},"git":{},"autoDesc":true,"filePathRelative":null,"headers":[]}');export{i as comp,l as data};
|
||||
import{_ as e,c as o,b as n,o as r}from"./app-COnnofor.js";const a={};function p(s,t){return r(),o("div",null,[...t[0]||(t[0]=[n("p",null,"404 Not Found",-1)])])}const i=e(a,[["render",p]]),l=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/404.html"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}]]},"readingTime":{"minutes":0.01,"words":3},"git":{},"autoDesc":true,"filePathRelative":null,"headers":[]}');export{i as comp,l as data};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{m as e}from"./mermaid.esm.min-DAbLg_2m.js";function a(c,t){c.accDescr&&t.setAccDescription?.(c.accDescr),c.accTitle&&t.setAccTitle?.(c.accTitle),c.title&&t.setDiagramTitle?.(c.title)}e(a,"populateCommonDb");export{a as c};
|
||||
import{m as e}from"./mermaid.esm.min-C3PPQ_C2.js";function a(c,t){c.accDescr&&t.setAccDescription?.(c.accDescr),c.accTitle&&t.setAccTitle?.(c.accTitle),c.title&&t.setDiagramTitle?.(c.title)}e(a,"populateCommonDb");export{a as c};
|
||||
@@ -1 +1 @@
|
||||
import{m,i as e}from"./mermaid.esm.min-DAbLg_2m.js";var r=m((o,t)=>{let a;return t==="sandbox"&&(a=e("#i"+o)),(t==="sandbox"?e(a.nodes()[0].contentDocument.body):e("body")).select(`[id="${o}"]`)},"getDiagramElement");export{r as m};
|
||||
import{m,i as e}from"./mermaid.esm.min-C3PPQ_C2.js";var r=m((o,t)=>{let a;return t==="sandbox"&&(a=e("#i"+o)),(t==="sandbox"?e(a.nodes()[0].contentDocument.body):e("body")).select(`[id="${o}"]`)},"getDiagramElement");export{r as m};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{m as a,W as g,p as s}from"./mermaid.esm.min-DAbLg_2m.js";var m=a((t,i,e,o)=>{t.attr("class",e);let{width:h,height:r,x:w,y:x}=n(t,i);g(t,r,h,o);let d=$(w,x,h,r,i);t.attr("viewBox",d),s.debug(`viewBox configured: ${d} with padding: ${i}`)},"setupViewPortForSVG"),n=a((t,i)=>{let e=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:e.width+i*2,height:e.height+i*2,x:e.x,y:e.y}},"calculateDimensionsWithPadding"),$=a((t,i,e,o,h)=>`${t-h} ${i-h} ${e} ${o}`,"createViewBox");export{m as y};
|
||||
import{m as a,W as g,p as s}from"./mermaid.esm.min-C3PPQ_C2.js";var m=a((t,i,e,o)=>{t.attr("class",e);let{width:h,height:r,x:w,y:x}=n(t,i);g(t,r,h,o);let d=$(w,x,h,r,i);t.attr("viewBox",d),s.debug(`viewBox configured: ${d} with padding: ${i}`)},"setupViewPortForSVG"),n=a((t,i)=>{let e=t.node()?.getBBox()||{width:0,height:0,x:0,y:0};return{width:e.width+i*2,height:e.height+i*2,x:e.x,y:e.y}},"calculateDimensionsWithPadding"),$=a((t,i,e,o,h)=>`${t-h} ${i-h} ${e} ${o}`,"createViewBox");export{m as y};
|
||||
@@ -1 +1 @@
|
||||
import{m as s}from"./mermaid.esm.min-DAbLg_2m.js";var t,e=(t=class{constructor(i){this.init=i,this.records=this.init()}reset(){this.records=this.init()}},s(t,"ImperativeState"),t);export{e as s};
|
||||
import{m as s}from"./mermaid.esm.min-C3PPQ_C2.js";var t,e=(t=class{constructor(i){this.init=i,this.records=this.init()}reset(){this.records=this.init()}},s(t,"ImperativeState"),t);export{e as s};
|
||||
@@ -1 +1 @@
|
||||
import{m as l,z as n,q as d,f as h}from"./mermaid.esm.min-DAbLg_2m.js";var i=d(h()),y=l((s,t)=>{let r=s.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.name&&r.attr("name",t.name),t.rx&&r.attr("rx",t.rx),t.ry&&r.attr("ry",t.ry),t.attrs!==void 0)for(let a in t.attrs)r.attr(a,t.attrs[a]);return t.class&&r.attr("class",t.class),r},"drawRect"),o=l((s,t)=>{let r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};y(s,r).lower()},"drawBackgroundRect"),p=l((s,t)=>{let r=t.text.replace(n," "),a=s.append("text");a.attr("x",t.x),a.attr("y",t.y),a.attr("class","legend"),a.style("text-anchor",t.anchor),t.class&&a.attr("class",t.class);let e=a.append("tspan");return e.attr("x",t.x+t.textMargin*2),e.text(r),a},"drawText"),g=l((s,t,r,a)=>{let e=s.append("image");e.attr("x",t),e.attr("y",r);let x=(0,i.sanitizeUrl)(a);e.attr("xlink:href",x)},"drawImage"),f=l((s,t,r,a)=>{let e=s.append("use");e.attr("x",t),e.attr("y",r);let x=(0,i.sanitizeUrl)(a);e.attr("xlink:href",`#${x}`)},"drawEmbeddedImage"),m=l(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),w=l(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj");export{f as E,g as d,w as f,o as g,m as h,y as x,p as y};
|
||||
import{m as l,z as n,q as d,f as h}from"./mermaid.esm.min-C3PPQ_C2.js";var i=d(h()),y=l((s,t)=>{let r=s.append("rect");if(r.attr("x",t.x),r.attr("y",t.y),r.attr("fill",t.fill),r.attr("stroke",t.stroke),r.attr("width",t.width),r.attr("height",t.height),t.name&&r.attr("name",t.name),t.rx&&r.attr("rx",t.rx),t.ry&&r.attr("ry",t.ry),t.attrs!==void 0)for(let a in t.attrs)r.attr(a,t.attrs[a]);return t.class&&r.attr("class",t.class),r},"drawRect"),o=l((s,t)=>{let r={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};y(s,r).lower()},"drawBackgroundRect"),p=l((s,t)=>{let r=t.text.replace(n," "),a=s.append("text");a.attr("x",t.x),a.attr("y",t.y),a.attr("class","legend"),a.style("text-anchor",t.anchor),t.class&&a.attr("class",t.class);let e=a.append("tspan");return e.attr("x",t.x+t.textMargin*2),e.text(r),a},"drawText"),g=l((s,t,r,a)=>{let e=s.append("image");e.attr("x",t),e.attr("y",r);let x=(0,i.sanitizeUrl)(a);e.attr("xlink:href",x)},"drawImage"),f=l((s,t,r,a)=>{let e=s.append("use");e.attr("x",t),e.attr("y",r);let x=(0,i.sanitizeUrl)(a);e.attr("xlink:href",`#${x}`)},"drawEmbeddedImage"),m=l(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),w=l(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj");export{f as E,g as d,w as f,o as g,m as h,y as x,p as y};
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
import{m as e}from"./mermaid.esm.min-DAbLg_2m.js";var l=e(()=>`
|
||||
import{m as e}from"./mermaid.esm.min-C3PPQ_C2.js";var l=e(()=>`
|
||||
/* Font Awesome icon styling - consolidated */
|
||||
.label-icon {
|
||||
display: inline-block;
|
||||
@@ -1 +0,0 @@
|
||||
import{V as t,Q as a,C as s,l as e}from"./chunk-P7EU7REX-BmcQD5HT.js";import"./chunk-ZZTKAOFA-BbIdtWS5.js";import"./chunk-6EQESGSB-D5T9ujH0.js";import"./chunk-T244DUNM-BkxI9n__.js";import{m as o}from"./mermaid.esm.min-DAbLg_2m.js";import"./app-Dqab9jXZ.js";var c={parser:s,get db(){return new e},renderer:a,styles:t,init:o(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
|
||||
1
assets/classDiagram-HVPNVESH-D5dpLzMD.js
Normal file
1
assets/classDiagram-HVPNVESH-D5dpLzMD.js
Normal file
@@ -0,0 +1 @@
|
||||
import{V as t,Q as a,C as s,l as e}from"./chunk-BHQAJ5QI-7lORIY2m.js";import"./chunk-ZZTKAOFA-wdOG834u.js";import"./chunk-6EQESGSB-CxeJJhjr.js";import"./chunk-T244DUNM-wAx6vwlF.js";import{m as o}from"./mermaid.esm.min-C3PPQ_C2.js";import"./app-COnnofor.js";var c={parser:s,get db(){return new e},renderer:a,styles:t,init:o(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
|
||||
1
assets/classDiagram-v2-KGF5QE6Q-D5dpLzMD.js
Normal file
1
assets/classDiagram-v2-KGF5QE6Q-D5dpLzMD.js
Normal file
@@ -0,0 +1 @@
|
||||
import{V as t,Q as a,C as s,l as e}from"./chunk-BHQAJ5QI-7lORIY2m.js";import"./chunk-ZZTKAOFA-wdOG834u.js";import"./chunk-6EQESGSB-CxeJJhjr.js";import"./chunk-T244DUNM-wAx6vwlF.js";import{m as o}from"./mermaid.esm.min-C3PPQ_C2.js";import"./app-COnnofor.js";var c={parser:s,get db(){return new e},renderer:a,styles:t,init:o(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
|
||||
@@ -1 +0,0 @@
|
||||
import{V as t,Q as a,C as s,l as e}from"./chunk-P7EU7REX-BmcQD5HT.js";import"./chunk-ZZTKAOFA-BbIdtWS5.js";import"./chunk-6EQESGSB-D5T9ujH0.js";import"./chunk-T244DUNM-BkxI9n__.js";import{m as o}from"./mermaid.esm.min-DAbLg_2m.js";import"./app-Dqab9jXZ.js";var c={parser:s,get db(){return new e},renderer:a,styles:t,init:o(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{c as diagram};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
import{c as B}from"./chunk-4KE642ED-BHboJLjX.js";import{p as C}from"./treemap-KMMF4GRG-7ORZ52ND-DhI38Nao.js";import{m as f,L as u,aN as P,W as z,p as w,H as W,U as F,j as S,e as D,$ as E,G as T,O as N,r as L,N as A}from"./mermaid.esm.min-DAbLg_2m.js";import"./chunk-OMTJKCYW-G6Hf23Oh.js";import"./app-Dqab9jXZ.js";var H=L.packet,m,$=(m=class{constructor(){this.packet=[],this.setAccTitle=W,this.getAccTitle=F,this.setDiagramTitle=S,this.getDiagramTitle=D,this.getAccDescription=E,this.setAccDescription=T}getConfig(){let t=u({...H,...N().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){A(),this.packet=[]}},f(m,"PacketDB"),m),R=1e4,j=f((e,t)=>{B(e,t);let r=-1,i=[],l=1,{bitsPerRow:n}=t.getConfig();for(let{start:a,end:s,bits:c,label:d}of e.blocks){if(a!==void 0&&s!==void 0&&s<a)throw new Error(`Packet block ${a} - ${s} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${s??a} is not contiguous. It should start from ${r+1}.`);if(c===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(s??=a+(c??1)-1,c??=s-a+1,r=s,w.debug(`Packet block ${a} - ${r} with label ${d}`);i.length<=n+1&&t.getPacket().length<R;){let[p,o]=G({start:a,end:s,bits:c,label:d},l,n);if(i.push(p),p.end+1===l*n&&(t.pushWord(i),i=[],l++),!o)break;({start:a,end:s,bits:c,label:d}=o)}}t.pushWord(i)},"populate"),G=f((e,t,r)=>{if(e.start===void 0)throw new Error("start should have been set during first phase");if(e.end===void 0)throw new Error("end should have been set during first phase");if(e.start>e.end)throw new Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=t*r)return[e,void 0];let i=t*r-1,l=t*r;return[{start:e.start,end:i,label:e.label,bits:i-e.start},{start:l,end:e.end,label:e.label,bits:e.end-l}]},"getNextFittingBlock"),y={parser:{yy:void 0},parse:f(async e=>{let t=await C("packet",e),r=y.parser?.yy;if(!(r instanceof $))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");w.debug(t),j(t,r)},"parse")},M=f((e,t,r,i)=>{let l=i.db,n=l.getConfig(),{rowHeight:a,paddingY:s,bitWidth:c,bitsPerRow:d}=n,p=l.getPacket(),o=l.getDiagramTitle(),h=a+s,b=h*(p.length+1)-(o?0:a),k=c*d+2,g=P(t);g.attr("viewbox",`0 0 ${k} ${b}`),z(g,b,k,n.useMaxWidth);for(let[x,v]of p.entries())O(g,v,x,n);g.append("text").text(o).attr("x",k/2).attr("y",b-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),O=f((e,t,r,{rowHeight:i,paddingX:l,paddingY:n,bitWidth:a,bitsPerRow:s,showBits:c})=>{let d=e.append("g"),p=r*(i+n)+n;for(let o of t){let h=o.start%s*a+1,b=(o.end-o.start+1)*a-l;if(d.append("rect").attr("x",h).attr("y",p).attr("width",b).attr("height",i).attr("class","packetBlock"),d.append("text").attr("x",h+b/2).attr("y",p+i/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(o.label),!c)continue;let k=o.end===o.start,g=p-2;d.append("text").attr("x",h+(k?b/2:0)).attr("y",g).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(o.start),k||d.append("text").attr("x",h+b).attr("y",g).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(o.end)}},"drawWord"),Y={draw:M},U={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},V=f(({packet:e}={})=>{let t=u(U,e);return`
|
||||
import{c as B}from"./chunk-4KE642ED-BWKyYx7V.js";import{p as C}from"./treemap-KMMF4GRG-7ORZ52ND-hp-dLOEF.js";import{m as f,L as u,aN as P,W as z,p as w,H as W,U as F,j as S,e as D,$ as E,G as T,O as N,r as L,N as A}from"./mermaid.esm.min-C3PPQ_C2.js";import"./chunk-OMTJKCYW-icim_91v.js";import"./app-COnnofor.js";var H=L.packet,m,$=(m=class{constructor(){this.packet=[],this.setAccTitle=W,this.getAccTitle=F,this.setDiagramTitle=S,this.getDiagramTitle=D,this.getAccDescription=E,this.setAccDescription=T}getConfig(){let t=u({...H,...N().packet});return t.showBits&&(t.paddingY+=10),t}getPacket(){return this.packet}pushWord(t){t.length>0&&this.packet.push(t)}clear(){A(),this.packet=[]}},f(m,"PacketDB"),m),R=1e4,j=f((e,t)=>{B(e,t);let r=-1,i=[],l=1,{bitsPerRow:n}=t.getConfig();for(let{start:a,end:s,bits:c,label:d}of e.blocks){if(a!==void 0&&s!==void 0&&s<a)throw new Error(`Packet block ${a} - ${s} is invalid. End must be greater than start.`);if(a??=r+1,a!==r+1)throw new Error(`Packet block ${a} - ${s??a} is not contiguous. It should start from ${r+1}.`);if(c===0)throw new Error(`Packet block ${a} is invalid. Cannot have a zero bit field.`);for(s??=a+(c??1)-1,c??=s-a+1,r=s,w.debug(`Packet block ${a} - ${r} with label ${d}`);i.length<=n+1&&t.getPacket().length<R;){let[p,o]=G({start:a,end:s,bits:c,label:d},l,n);if(i.push(p),p.end+1===l*n&&(t.pushWord(i),i=[],l++),!o)break;({start:a,end:s,bits:c,label:d}=o)}}t.pushWord(i)},"populate"),G=f((e,t,r)=>{if(e.start===void 0)throw new Error("start should have been set during first phase");if(e.end===void 0)throw new Error("end should have been set during first phase");if(e.start>e.end)throw new Error(`Block start ${e.start} is greater than block end ${e.end}.`);if(e.end+1<=t*r)return[e,void 0];let i=t*r-1,l=t*r;return[{start:e.start,end:i,label:e.label,bits:i-e.start},{start:l,end:e.end,label:e.label,bits:e.end-l}]},"getNextFittingBlock"),y={parser:{yy:void 0},parse:f(async e=>{let t=await C("packet",e),r=y.parser?.yy;if(!(r instanceof $))throw new Error("parser.parser?.yy was not a PacketDB. This is due to a bug within Mermaid, please report this issue at https://github.com/mermaid-js/mermaid/issues.");w.debug(t),j(t,r)},"parse")},M=f((e,t,r,i)=>{let l=i.db,n=l.getConfig(),{rowHeight:a,paddingY:s,bitWidth:c,bitsPerRow:d}=n,p=l.getPacket(),o=l.getDiagramTitle(),h=a+s,b=h*(p.length+1)-(o?0:a),k=c*d+2,g=P(t);g.attr("viewbox",`0 0 ${k} ${b}`),z(g,b,k,n.useMaxWidth);for(let[x,v]of p.entries())O(g,v,x,n);g.append("text").text(o).attr("x",k/2).attr("y",b-h/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),O=f((e,t,r,{rowHeight:i,paddingX:l,paddingY:n,bitWidth:a,bitsPerRow:s,showBits:c})=>{let d=e.append("g"),p=r*(i+n)+n;for(let o of t){let h=o.start%s*a+1,b=(o.end-o.start+1)*a-l;if(d.append("rect").attr("x",h).attr("y",p).attr("width",b).attr("height",i).attr("class","packetBlock"),d.append("text").attr("x",h+b/2).attr("y",p+i/2).attr("class","packetLabel").attr("dominant-baseline","middle").attr("text-anchor","middle").text(o.label),!c)continue;let k=o.end===o.start,g=p-2;d.append("text").attr("x",h+(k?b/2:0)).attr("y",g).attr("class","packetByte start").attr("dominant-baseline","auto").attr("text-anchor",k?"middle":"start").text(o.start),k||d.append("text").attr("x",h+b).attr("y",g).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(o.end)}},"drawWord"),Y={draw:M},U={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},V=f(({packet:e}={})=>{let t=u(U,e);return`
|
||||
.packetByte {
|
||||
font-size: ${t.byteFontSize};
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
import{c as I}from"./chunk-4KE642ED-BHboJLjX.js";import{p as S}from"./treemap-KMMF4GRG-7ORZ52ND-DhI38Nao.js";import{m as o,G as E,$ as F,e as z,j as P,U as G,H as R,aN as D,N,L as v,O as w,r as j,p as B,aT as H}from"./mermaid.esm.min-DAbLg_2m.js";import"./chunk-OMTJKCYW-G6Hf23Oh.js";import"./app-Dqab9jXZ.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},b={axes:[],curves:[],options:x},u=structuredClone(b),V=j.radar,W=o(()=>v({...V,...w().radar}),"getConfig"),C=o(()=>u.axes,"getAxes"),U=o(()=>u.curves,"getCurves"),_=o(()=>u.options,"getOptions"),Z=o(a=>{u.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),q=o(a=>{u.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:J(t.entries)}))},"setCurves"),J=o(a=>{if(a[0].axis==null)return a.map(e=>e.value);let t=C();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{let r=a.find(i=>i.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),K=o(a=>{let t=a.reduce((e,r)=>(e[r.name]=r,e),{});u.options={showLegend:t.showLegend?.value??x.showLegend,ticks:t.ticks?.value??x.ticks,max:t.max?.value??x.max,min:t.min?.value??x.min,graticule:t.graticule?.value??x.graticule}},"setOptions"),Q=o(()=>{N(),u=structuredClone(b)},"clear"),f={getAxes:C,getCurves:U,getOptions:_,setAxes:Z,setCurves:q,setOptions:K,getConfig:W,clear:Q,setAccTitle:R,getAccTitle:G,setDiagramTitle:P,getDiagramTitle:z,getAccDescription:F,setAccDescription:E},X=o(a=>{I(a,f);let{axes:t,curves:e,options:r}=a;f.setAxes(t),f.setCurves(e),f.setOptions(r)},"populate"),Y={parse:o(async a=>{let t=await S("radar",a);B.debug(t),X(t)},"parse")},tt=o((a,t,e,r)=>{let i=r.db,n=i.getAxes(),l=i.getCurves(),s=i.getOptions(),c=i.getConfig(),d=i.getDiagramTitle(),p=D(t),g=et(p,c),h=s.max??Math.max(...l.map(y=>Math.max(...y.entries))),m=s.min,$=Math.min(c.width,c.height)/2;at(g,n,$,s.ticks,s.graticule),rt(g,n,$,c),M(g,n,l,m,h,s.graticule,c),k(g,l,s.showLegend,c),g.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),et=o((a,t)=>{let e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,i={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return a.attr("viewbox",`0 0 ${e} ${r}`).attr("width",e).attr("height",r),a.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),at=o((a,t,e,r,i)=>{if(i==="circle")for(let n=0;n<r;n++){let l=e*(n+1)/r;a.append("circle").attr("r",l).attr("class","radarGraticule")}else if(i==="polygon"){let n=t.length;for(let l=0;l<r;l++){let s=e*(l+1)/r,c=t.map((d,p)=>{let g=2*p*Math.PI/n-Math.PI/2,h=s*Math.cos(g),m=s*Math.sin(g);return`${h},${m}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),rt=o((a,t,e,r)=>{let i=t.length;for(let n=0;n<i;n++){let l=t[n].label,s=2*n*Math.PI/i-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(s)).attr("y2",e*r.axisScaleFactor*Math.sin(s)).attr("class","radarAxisLine"),a.append("text").text(l).attr("x",e*r.axisLabelFactor*Math.cos(s)).attr("y",e*r.axisLabelFactor*Math.sin(s)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,i,n,l){let s=t.length,c=Math.min(l.width,l.height)/2;e.forEach((d,p)=>{if(d.entries.length!==s)return;let g=d.entries.map((h,m)=>{let $=2*Math.PI*m/s-Math.PI/2,y=L(h,r,i,c),A=y*Math.cos($),O=y*Math.sin($);return{x:A,y:O}});n==="circle"?a.append("path").attr("d",T(g,l.curveTension)).attr("class",`radarCurve-${p}`):n==="polygon"&&a.append("polygon").attr("points",g.map(h=>`${h.x},${h.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}o(M,"drawCurves");function L(a,t,e,r){let i=Math.min(Math.max(a,t),e);return r*(i-t)/(e-t)}o(L,"relativeRadius");function T(a,t){let e=a.length,r=`M${a[0].x},${a[0].y}`;for(let i=0;i<e;i++){let n=a[(i-1+e)%e],l=a[i],s=a[(i+1)%e],c=a[(i+2)%e],d={x:l.x+(s.x-n.x)*t,y:l.y+(s.y-n.y)*t},p={x:s.x-(c.x-l.x)*t,y:s.y-(c.y-l.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${s.x},${s.y}`}return`${r} Z`}o(T,"closedRoundCurve");function k(a,t,e,r){if(!e)return;let i=(r.width/2+r.marginRight)*3/4,n=-(r.height/2+r.marginTop)*3/4,l=20;t.forEach((s,c)=>{let d=a.append("g").attr("transform",`translate(${i}, ${n+c*l})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(s.label)})}o(k,"drawLegend");var it={draw:tt},st=o((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){let i=a[`cScale${r}`];e+=`
|
||||
import{c as I}from"./chunk-4KE642ED-BWKyYx7V.js";import{p as S}from"./treemap-KMMF4GRG-7ORZ52ND-hp-dLOEF.js";import{m as o,G as E,$ as F,e as z,j as P,U as G,H as R,aN as D,N,L as v,O as w,r as j,p as B,aT as H}from"./mermaid.esm.min-C3PPQ_C2.js";import"./chunk-OMTJKCYW-icim_91v.js";import"./app-COnnofor.js";var x={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},b={axes:[],curves:[],options:x},u=structuredClone(b),V=j.radar,W=o(()=>v({...V,...w().radar}),"getConfig"),C=o(()=>u.axes,"getAxes"),U=o(()=>u.curves,"getCurves"),_=o(()=>u.options,"getOptions"),Z=o(a=>{u.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),q=o(a=>{u.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:J(t.entries)}))},"setCurves"),J=o(a=>{if(a[0].axis==null)return a.map(e=>e.value);let t=C();if(t.length===0)throw new Error("Axes must be populated before curves for reference entries");return t.map(e=>{let r=a.find(i=>i.axis?.$refText===e.name);if(r===void 0)throw new Error("Missing entry for axis "+e.label);return r.value})},"computeCurveEntries"),K=o(a=>{let t=a.reduce((e,r)=>(e[r.name]=r,e),{});u.options={showLegend:t.showLegend?.value??x.showLegend,ticks:t.ticks?.value??x.ticks,max:t.max?.value??x.max,min:t.min?.value??x.min,graticule:t.graticule?.value??x.graticule}},"setOptions"),Q=o(()=>{N(),u=structuredClone(b)},"clear"),f={getAxes:C,getCurves:U,getOptions:_,setAxes:Z,setCurves:q,setOptions:K,getConfig:W,clear:Q,setAccTitle:R,getAccTitle:G,setDiagramTitle:P,getDiagramTitle:z,getAccDescription:F,setAccDescription:E},X=o(a=>{I(a,f);let{axes:t,curves:e,options:r}=a;f.setAxes(t),f.setCurves(e),f.setOptions(r)},"populate"),Y={parse:o(async a=>{let t=await S("radar",a);B.debug(t),X(t)},"parse")},tt=o((a,t,e,r)=>{let i=r.db,n=i.getAxes(),l=i.getCurves(),s=i.getOptions(),c=i.getConfig(),d=i.getDiagramTitle(),p=D(t),g=et(p,c),h=s.max??Math.max(...l.map(y=>Math.max(...y.entries))),m=s.min,$=Math.min(c.width,c.height)/2;at(g,n,$,s.ticks,s.graticule),rt(g,n,$,c),M(g,n,l,m,h,s.graticule,c),k(g,l,s.showLegend,c),g.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),et=o((a,t)=>{let e=t.width+t.marginLeft+t.marginRight,r=t.height+t.marginTop+t.marginBottom,i={x:t.marginLeft+t.width/2,y:t.marginTop+t.height/2};return a.attr("viewbox",`0 0 ${e} ${r}`).attr("width",e).attr("height",r),a.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),at=o((a,t,e,r,i)=>{if(i==="circle")for(let n=0;n<r;n++){let l=e*(n+1)/r;a.append("circle").attr("r",l).attr("class","radarGraticule")}else if(i==="polygon"){let n=t.length;for(let l=0;l<r;l++){let s=e*(l+1)/r,c=t.map((d,p)=>{let g=2*p*Math.PI/n-Math.PI/2,h=s*Math.cos(g),m=s*Math.sin(g);return`${h},${m}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),rt=o((a,t,e,r)=>{let i=t.length;for(let n=0;n<i;n++){let l=t[n].label,s=2*n*Math.PI/i-Math.PI/2;a.append("line").attr("x1",0).attr("y1",0).attr("x2",e*r.axisScaleFactor*Math.cos(s)).attr("y2",e*r.axisScaleFactor*Math.sin(s)).attr("class","radarAxisLine"),a.append("text").text(l).attr("x",e*r.axisLabelFactor*Math.cos(s)).attr("y",e*r.axisLabelFactor*Math.sin(s)).attr("class","radarAxisLabel")}},"drawAxes");function M(a,t,e,r,i,n,l){let s=t.length,c=Math.min(l.width,l.height)/2;e.forEach((d,p)=>{if(d.entries.length!==s)return;let g=d.entries.map((h,m)=>{let $=2*Math.PI*m/s-Math.PI/2,y=L(h,r,i,c),A=y*Math.cos($),O=y*Math.sin($);return{x:A,y:O}});n==="circle"?a.append("path").attr("d",T(g,l.curveTension)).attr("class",`radarCurve-${p}`):n==="polygon"&&a.append("polygon").attr("points",g.map(h=>`${h.x},${h.y}`).join(" ")).attr("class",`radarCurve-${p}`)})}o(M,"drawCurves");function L(a,t,e,r){let i=Math.min(Math.max(a,t),e);return r*(i-t)/(e-t)}o(L,"relativeRadius");function T(a,t){let e=a.length,r=`M${a[0].x},${a[0].y}`;for(let i=0;i<e;i++){let n=a[(i-1+e)%e],l=a[i],s=a[(i+1)%e],c=a[(i+2)%e],d={x:l.x+(s.x-n.x)*t,y:l.y+(s.y-n.y)*t},p={x:s.x-(c.x-l.x)*t,y:s.y-(c.y-l.y)*t};r+=` C${d.x},${d.y} ${p.x},${p.y} ${s.x},${s.y}`}return`${r} Z`}o(T,"closedRoundCurve");function k(a,t,e,r){if(!e)return;let i=(r.width/2+r.marginRight)*3/4,n=-(r.height/2+r.marginTop)*3/4,l=20;t.forEach((s,c)=>{let d=a.append("g").attr("transform",`translate(${i}, ${n+c*l})`);d.append("rect").attr("width",12).attr("height",12).attr("class",`radarLegendBox-${c}`),d.append("text").attr("x",16).attr("y",0).attr("class","radarLegendText").text(s.label)})}o(k,"drawLegend");var it={draw:tt},st=o((a,t)=>{let e="";for(let r=0;r<a.THEME_COLOR_LIMIT;r++){let i=a[`cScale${r}`];e+=`
|
||||
.radarCurve-${r} {
|
||||
color: ${i};
|
||||
fill: ${i};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
import{o as Xt}from"./chunk-ZZTKAOFA-BbIdtWS5.js";import{m as A,E as Ot,p as Q,a as g1,i as m1,V as qt,c as Zt,d as it,H as Jt,G as Yt,j as Qt,U as te,$ as ee,e as se,h as ie,g as re,k as ae,l as ue,J as st,N as ne,A as le,P as oe,Z as ce}from"./mermaid.esm.min-DAbLg_2m.js";import{m as he}from"./chunk-6EQESGSB-D5T9ujH0.js";import{y as de}from"./chunk-T244DUNM-BkxI9n__.js";import"./app-Dqab9jXZ.js";var pe="flowchart-",P1,ge=(P1=class{constructor(){this.vertexCounter=0,this.config=g1(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=Jt,this.setAccDescription=Yt,this.setDiagramTitle=Qt,this.getAccTitle=te,this.getAccDescription=ee,this.getDiagramTitle=se,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}sanitizeText(i){return ie.sanitizeText(i,this.config)}lookUpDomId(i){for(let r of this.vertices.values())if(r.id===i)return r.domId;return i}addVertex(i,r,a,u,n,g,p={},h){if(!i||i.trim().length===0)return;let o;if(h!==void 0){let k;h.includes(`
|
||||
import{o as Xt}from"./chunk-ZZTKAOFA-wdOG834u.js";import{m as A,E as Ot,p as Q,a as g1,i as m1,V as qt,c as Zt,d as it,H as Jt,G as Yt,j as Qt,U as te,$ as ee,e as se,h as ie,g as re,k as ae,l as ue,J as st,N as ne,A as le,P as oe,Z as ce}from"./mermaid.esm.min-C3PPQ_C2.js";import{m as he}from"./chunk-6EQESGSB-CxeJJhjr.js";import{y as de}from"./chunk-T244DUNM-wAx6vwlF.js";import"./app-COnnofor.js";var pe="flowchart-",P1,ge=(P1=class{constructor(){this.vertexCounter=0,this.config=g1(),this.vertices=new Map,this.edges=[],this.classes=new Map,this.subGraphs=[],this.subGraphLookup=new Map,this.tooltips=new Map,this.subCount=0,this.firstGraphFlag=!0,this.secCount=-1,this.posCrossRef=[],this.funs=[],this.setAccTitle=Jt,this.setAccDescription=Yt,this.setDiagramTitle=Qt,this.getAccTitle=te,this.getAccDescription=ee,this.getDiagramTitle=se,this.funs.push(this.setupToolTips.bind(this)),this.addVertex=this.addVertex.bind(this),this.firstGraph=this.firstGraph.bind(this),this.setDirection=this.setDirection.bind(this),this.addSubGraph=this.addSubGraph.bind(this),this.addLink=this.addLink.bind(this),this.setLink=this.setLink.bind(this),this.updateLink=this.updateLink.bind(this),this.addClass=this.addClass.bind(this),this.setClass=this.setClass.bind(this),this.destructLink=this.destructLink.bind(this),this.setClickEvent=this.setClickEvent.bind(this),this.setTooltip=this.setTooltip.bind(this),this.updateLinkInterpolate=this.updateLinkInterpolate.bind(this),this.setClickFun=this.setClickFun.bind(this),this.bindFunctions=this.bindFunctions.bind(this),this.lex={firstGraph:this.firstGraph.bind(this)},this.clear(),this.setGen("gen-2")}sanitizeText(i){return ie.sanitizeText(i,this.config)}lookUpDomId(i){for(let r of this.vertices.values())if(r.id===i)return r.domId;return i}addVertex(i,r,a,u,n,g,p={},h){if(!i||i.trim().length===0)return;let o;if(h!==void 0){let k;h.includes(`
|
||||
`)?k=h+`
|
||||
`:k=`{
|
||||
`+h+`
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,a as e,o as n}from"./app-Dqab9jXZ.js";const t={};function h(l,s){return n(),a("div",null,[...s[0]||(s[0]=[e(`<h2 id="fisco-bcos-简介" tabindex="-1"><a class="header-anchor" href="#fisco-bcos-简介"><span>FISCO BCOS 简介</span></a></h2><p>嘿呀~FISCO BCOS 可是金链盟开源工作组超用心牵头打造的企业级金融区块链底层平台哟!它就像一个超级厉害的小能手,有着高性能、高可用、安全可控这些超棒的特点呢。还支持多群组架构喔,能轻轻松松满足不同业务场景下的数据隔离和隐私保护需求,简直太赞啦!</p><p>而且呢,FISCO BCOS 还准备了好多丰富的开发工具和组件,就像给开发者们准备了一个魔法百宝箱,帮助大家能快速搭建区块链应用。现在在金融、政务、供应链这些好多好多领域都能看到它活跃的身影,应用可广泛啦!</p><h2 id="fisco-bcos-网络部署" tabindex="-1"><a class="header-anchor" href="#fisco-bcos-网络部署"><span>FISCO BCOS 网络部署</span></a></h2><p>FICSO BCOS 提供了一个 build_chain.sh 来部署区块链,下面的步骤都是通过这个脚本来部署的区块链网络</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span># 可以通过这个指令下载脚本并赋予执行权限</span></span>
|
||||
import{_ as i,c as a,a as e,o as n}from"./app-COnnofor.js";const t={};function h(l,s){return n(),a("div",null,[...s[0]||(s[0]=[e(`<h2 id="fisco-bcos-简介" tabindex="-1"><a class="header-anchor" href="#fisco-bcos-简介"><span>FISCO BCOS 简介</span></a></h2><p>嘿呀~FISCO BCOS 可是金链盟开源工作组超用心牵头打造的企业级金融区块链底层平台哟!它就像一个超级厉害的小能手,有着高性能、高可用、安全可控这些超棒的特点呢。还支持多群组架构喔,能轻轻松松满足不同业务场景下的数据隔离和隐私保护需求,简直太赞啦!</p><p>而且呢,FISCO BCOS 还准备了好多丰富的开发工具和组件,就像给开发者们准备了一个魔法百宝箱,帮助大家能快速搭建区块链应用。现在在金融、政务、供应链这些好多好多领域都能看到它活跃的身影,应用可广泛啦!</p><h2 id="fisco-bcos-网络部署" tabindex="-1"><a class="header-anchor" href="#fisco-bcos-网络部署"><span>FISCO BCOS 网络部署</span></a></h2><p>FICSO BCOS 提供了一个 build_chain.sh 来部署区块链,下面的步骤都是通过这个脚本来部署的区块链网络</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span># 可以通过这个指令下载脚本并赋予执行权限</span></span>
|
||||
<span class="line"><span>curl -#LO https://github.com/FISCO-BCOS/FISCO-BCOS/releases/download/v2.11.0/build_chain.sh && chmod u+x build_chain.sh</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="部署单群组4节点联盟链" tabindex="-1"><a class="header-anchor" href="#部署单群组4节点联盟链"><span>部署单群组4节点联盟链</span></a></h3><p>这里要确保机器的30300-30303,20200-20203,8545-8548端口都没有被占用</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span># 部署单群组4节点联盟链</span></span>
|
||||
<span class="line"><span>bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 -e ./fisco-bcos</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>如果是国密版本,执行下面的命令</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span># 部署单群组4节点联盟链(国密版本)</span></span>
|
||||
<span class="line"><span>bash build_chain.sh -l 127.0.0.1:4 -p 30300,20200,8545 -g -G -e ./fisco-bcos</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>参数解析:</p><ul><li>-l:指定节点的IP地址和节点数</li><li>-p:指定节点的端口号</li><li>-g 和 -G:使用国密sm算法</li><li>-e:使用指定的 fisco-bcos 文件</li></ul><p>默认情况下脚本会去 github 上下载 fisco-bcos 二进制文件,这一步在国内很有可能失败,建议提前下载好,然后直接使用本地的</p><p>部署完成之后就可以启动节点了</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>bash nodes/127.0.0.1/start_all.sh</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>检查节点进程是否存在</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>ps -ef | grep fisco-bcos</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>检查节点之间是否互相链接了</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span># 这里是检查 node0 的日志文件</span></span>
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
33
assets/index.html-B61S3TA-.js
Normal file
33
assets/index.html-B61S3TA-.js
Normal file
@@ -0,0 +1,33 @@
|
||||
import{_ as i,c as a,a as e,o as n}from"./app-COnnofor.js";const l={};function t(h,s){return n(),a("div",null,[...s[0]||(s[0]=[e(`<h2 id="第一部分-区块链平台运维" tabindex="-1"><a class="header-anchor" href="#第一部分-区块链平台运维"><span>第一部分:区块链平台运维</span></a></h2><h3 id="第1题-完成-fisco-bcos-区块链系统部署并验证" tabindex="-1"><a class="header-anchor" href="#第1题-完成-fisco-bcos-区块链系统部署并验证"><span>第1题:完成 FISCO BCOS 区块链系统部署并验证</span></a></h3><p><strong>【要求】</strong></p><p>登录 Linux 服务器,完成节点部署、启动、将过程结果截图,保存至做答题并点击提交。</p><p><strong>【任务】</strong></p><p>登录 Linux 服务器,进入指定操作目录(/root/tools)基于开发部署工具 build_chain.sh 脚本在本地搭建一条 4 节点的 FISCO BCOS 链。起始端口号为:30300,20200,8545。将节点 2 的端口号改为 30500,20400,8675。确保搭建的区块链系统能正常运行,并将执行的命令和完整的命令执行结果截图保存至作答区并点击提交。具体任务如下:</p><p><strong>【参考答案】</strong></p><p>使用 build_chain.sh 脚本搭建 FISCO BCOS 链:</p><p>默认的 -v 会从网络中下载 FISCO BCOS,这里本地已经有了,比赛的时候肯定是断网的,这里直接调用本地的即可</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-shell"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">bash</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> build_chain.sh</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -l</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> "</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">127.0.0.1:4</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -p</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 30300,20200,8545</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -e</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> ./fisco-bcos</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p><img src="https://image.simengweb.com/blog/competition/BRICS2025-ST-132/20250930201715_253_27.png" alt="配置默认单机4节点"> 在创建完成之后,当前目录会出现一个 nodes 文件夹,这里面就是我们的每个节点的具体配置信息等等</p><p>这里推荐下载一个 tree 用来查看目录结构</p><div class="language-shell line-numbers-mode" data-highlighter="shiki" data-ext="shell" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-shell"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">apt</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> install</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> tree</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">tree</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> nodes</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>目录结构应该大概如下:</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>nodes</span></span>
|
||||
<span class="line"><span>├── 127.0.0.1</span></span>
|
||||
<span class="line"><span>│ ├── node0</span></span>
|
||||
<span class="line"><span>│ │ ├── ...</span></span>
|
||||
<span class="line"><span>│ ├── node1</span></span>
|
||||
<span class="line"><span>│ │ ├── ...</span></span>
|
||||
<span class="line"><span>│ ├── node2</span></span>
|
||||
<span class="line"><span>│ │ ├── ...</span></span>
|
||||
<span class="line"><span>│ ├── node3</span></span>
|
||||
<span class="line"><span>│ │ ├── ...</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>每个 node 文件夹都包含 <code>conf/</code>(配置文件),<code>log/</code>(日志文件),<code>fisco-bcos/</code>(二进制副本)</p><p>修改节点2的端口,根据要求修改为 30500,20400,8675</p><p>编辑配置文件:<code>vim nodes/127.0.0.1/node2/config.ini</code></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark has-diff vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">rpc</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> channel_listen_ip</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">0.0.0.0</span></span>
|
||||
<span class="line diff remove"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> channel_listen_port</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">20202</span></span>
|
||||
<span class="line diff add"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> channel_listen_port</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">20400</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> jsonrpc_listen_ip</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">127.0.0.1</span></span>
|
||||
<span class="line diff remove"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> jsonrpc_listen_port</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">8547</span></span>
|
||||
<span class="line diff add"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> jsonrpc_listen_port</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">8675</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> disable_dynamic_group</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">false</span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">p2p</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> listen_ip</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">0.0.0.0</span></span>
|
||||
<span class="line diff remove"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> listen_port</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">30302</span></span>
|
||||
<span class="line diff add"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> listen_port</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">30500</span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ;</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> nodes</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> to</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> connect</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> node.0</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">=127.0.0.1:30300</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> node.1</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">=127.0.0.1:30301</span></span>
|
||||
<span class="line diff remove"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> node.2</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">=127.0.0.1:30302</span></span>
|
||||
<span class="line diff add"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> node.2</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">=127.0.0.1:30500</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> node.3</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">=127.0.0.1:30303</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>不光节点2的 [p2p] 的 <code>node.2</code> 需要修改,其他几个节点的都需要进行修改</p><p>切换到 <code>nodes/127.0.0.1/</code> 目录下,通过 <code>bash start_all.sh</code> 启动所有节点</p><p><img src="https://image.simengweb.com/blog/competition/BRICS2025-ST-132/20250930205309_254_27.png" alt="启动所有节点"></p><p>验证端口是否生效:<code>ss -tuln | grep -E '30500|20400|8675'</code></p><p>预期输出如下:</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">tcp</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> LISTEN</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 4096</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 127.0.0.1:8675</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 0.0.0.0:</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">*</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">tcp</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> LISTEN</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 4096</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 0.0.0.0:30500</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 0.0.0.0:</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">*</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">tcp</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> LISTEN</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 4096</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 0.0.0.0:20400</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 0.0.0.0:</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">*</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>主要参考文章如下:</p><ol><li><a href="https://fisco-doc.readthedocs.io/zh/latest/docs/installation.html" target="_blank" rel="noopener noreferrer">搭建第一个区块链网络</a></li><li><a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/manual/build_chain.html" target="_blank" rel="noopener noreferrer">开发部署工具(build_chain.sh)</a></li></ol><h3 id="第2题-按要求完成webase-node-manager的安装与部署" tabindex="-1"><a class="header-anchor" href="#第2题-按要求完成webase-node-manager的安装与部署"><span>第2题:按要求完成WeBASE-Node-Manager的安装与部署</span></a></h3><p><strong>【要求】</strong></p><p>登录 Linux 服务器,部署节点管理平台,并将部署、启动、应用过程结果截图,保存至作答区并点击提交。</p><p><strong>【任务】</strong></p><p>登录 linux 服务器,进入指定操作目录(/root/tools/webase)中完成区块链一体化管理平台的配置部署,并检查是否安装成功,具体操作任务如下:</p><ol><li>进入 WeBASE-Node-Manager 目录,完成数据库初始化操作;</li><li>修改 application.yml 配置文件,进行 WeBASE-Node-Manager 的服务配置,包括数据库名称,数据库用户,数据库密码等;</li><li>使用命令启动 WeBASE-Node-Manager 管理平台服务,并检查节点管理是否正常启动;</li><li>使用 swagger 对节点管理服务的 API 接口测试。</li></ol><p><strong>【参考答案】</strong></p><p>切换到 WeBASE-Front 目录下,将 <code>dist/conf_template</code> 配置文件目录复制一份作为配置文件,命名为 <code>dist/conf</code></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 当前工作目录为:/home/simeng/blockchain/WeBASE-Front</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">cp</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -r</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> dist/conf_template</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> dist/conf</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>将节点所在目录 <code>nodes/{$ip}/sdk</code> 下的所有文件拷贝到当前的 <code>dist/conf</code> 目录下</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">cp</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> ../nodes/127.0.0.1/sdk/</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;">*</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> ./dist/conf/</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>编辑配置文件 : <code>vim dist/conf/application.yml</code></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>配置环境变量 JAVA_HOME 编辑配置文件:<code>~/.bashrc</code>,添加如下内容</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">export</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> JAVA_HOME</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">/usr/lib/jvm/java-1.8.0-openjdk-amd64</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span></span>
|
||||
<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">export</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> PATH</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">$JAVA_HOME</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">/</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">bin</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">:</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">$PATH</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>刷新环境变量</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">source</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> ~/.bashrc</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>切换到 <code>dist</code> 目录下,拉取 Solidity 开发工具 v0.8.11.js(这一步可能会很慢,建议直接把 v0.8.11.js 下载到本地,然后直接放到对应目录,WSL2 的机器是直接挂载在 Windows 上的,Windows 可以直接操作)</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">wget</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> https://github.com/WeBankBlockchain/WeBASELargeFiles/releases/download/v3.0.0/v0.8.11.js</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -O</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> static/static/js/v0.8.11.js</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>运行 <code>bash start.sh</code> 启动 WeBASE-Node-Manager 管理平台服务</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 当前工作目录为:/home/simeng/blockchain/WeBASE-Front/dist</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">bash</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> start.sh</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div></div></div><p>由于 localhostForwarding 机制(具体参考:<a href="https://notes.simengweb.com/article/operate-wsl2/#%E7%BD%91%E7%BB%9C%E7%9B%B8%E5%85%B3%E9%85%8D%E7%BD%AE" target="_blank" rel="noopener noreferrer">配置WSL2资源</a>),我们可以直接通过localhost来访问WSL2容器的端口的服务 访问:<a href="http://localhost:5002/WeBASE-Front" target="_blank" rel="noopener noreferrer">http://localhost:5002/WeBASE-Front</a></p>`,49)])])}const d=i(l,[["render",t]]),r=JSON.parse('{"path":"/article/2025-BR-BRICS-BC-App-Develop-Op-Sample-Q_A/","title":"2025 一带一路金砖 - 区块链应用开发与运维 样题详解","lang":"zh-CN","frontmatter":{"title":"2025 一带一路金砖 - 区块链应用开发与运维 样题详解","createTime":"2025/09/30 19:57:14","permalink":"/article/2025-BR-BRICS-BC-App-Develop-Op-Sample-Q&A/","description":"第一部分:区块链平台运维 第1题:完成 FISCO BCOS 区块链系统部署并验证 【要求】 登录 Linux 服务器,完成节点部署、启动、将过程结果截图,保存至做答题并点击提交。 【任务】 登录 Linux 服务器,进入指定操作目录(/root/tools)基于开发部署工具 build_chain.sh 脚本在本地搭建一条 4 节点的 FISCO B...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"2025 一带一路金砖 - 区块链应用开发与运维 样题详解\\",\\"image\\":[\\"https://image.simengweb.com/blog/competition/BRICS2025-ST-132/20250930201715_253_27.png\\",\\"https://image.simengweb.com/blog/competition/BRICS2025-ST-132/20250930205309_254_27.png\\"],\\"dateModified\\":\\"2025-10-27T11:38:35.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/article/2025-BR-BRICS-BC-App-Develop-Op-Sample-Q_A/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"2025 一带一路金砖 - 区块链应用开发与运维 样题详解"}],["meta",{"property":"og:description","content":"第一部分:区块链平台运维 第1题:完成 FISCO BCOS 区块链系统部署并验证 【要求】 登录 Linux 服务器,完成节点部署、启动、将过程结果截图,保存至做答题并点击提交。 【任务】 登录 Linux 服务器,进入指定操作目录(/root/tools)基于开发部署工具 build_chain.sh 脚本在本地搭建一条 4 节点的 FISCO B..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://image.simengweb.com/blog/competition/BRICS2025-ST-132/20250930201715_253_27.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-27T11:38:35.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-27T11:38:35.000Z"}]]},"readingTime":{"minutes":3.72,"words":1117},"git":{"createdTime":1759303270000,"updatedTime":1761565115000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":2,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"},{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"blog/competition/BRICS2025-ST-132.md","headers":[],"_e":"$2b$14$MyA9W2ha6Br8f6EKwypp5ORCHh3Wcr6yR3cFOLYqhCrnhv1Q0CnPK","categoryList":[{"id":"126ac9","sort":10000,"name":"blog"},{"id":"83ee8d","sort":10004,"name":"competition"}]}');export{d as comp,r as data};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as r,c as g,b as i,a as e,e as l,d as a,w as h,r as d,o as y}from"./app-Dqab9jXZ.js";const D={},c={class:"code-block-title","data-title":"index.html"},o={class:"code-block-title-bar"},A={class:"title"},v={class:"code-block-title","data-title":"index.html"},m={class:"code-block-title-bar"},u={class:"title"},B={class:"code-block-title","data-title":"index.html"},b={class:"code-block-title-bar"},E={class:"title"},C={class:"code-block-title","data-title":"index.html"},F={class:"code-block-title-bar"},f={class:"title"},q={class:"code-block-title","data-title":"index.html"},x={class:"code-block-title-bar"},w={class:"title"},T={class:"code-block-title","data-title":"index.html"},S={class:"code-block-title-bar"},L={class:"title"},H={class:"code-block-title","data-title":"index.html"},M={class:"code-block-title-bar"},P={class:"title"},N={class:"code-block-title","data-title":"index.html"},O={class:"code-block-title-bar"},z={class:"title"},Y={class:"code-block-title","data-title":"index.html"},j={class:"code-block-title-bar"},V={class:"title"};function R(I,s){const k=d("VPIcon"),p=d("CodeTabs");return y(),g("div",null,[s[38]||(s[38]=i("h2",{id:"文本与标题-h-p-span-strong-em-div",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#文本与标题-h-p-span-strong-em-div"},[i("span",null,"文本与标题(H/P/Span/Strong/Em/Div)")])],-1)),s[39]||(s[39]=i("p",null,[i("strong",null,"标题"),a(":从重要到不重要,"),i("code",null,"<h1>"),a(" ~ "),i("code",null,"<h6>"),a("。")],-1)),i("div",c,[i("div",o,[i("span",A,[l(k,{provider:"iconify",name:"vscode-icons:file-type-html"}),s[0]||(s[0]=a("index.html",-1))])]),s[1]||(s[1]=e(`<div class="language-html line-numbers-mode" data-highlighter="shiki" data-ext="html" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-html"><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">h1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">我的网站</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"></</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">h1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
import{_ as r,c as g,b as i,a as e,e as l,d as a,w as h,r as d,o as y}from"./app-COnnofor.js";const D={},c={class:"code-block-title","data-title":"index.html"},o={class:"code-block-title-bar"},A={class:"title"},v={class:"code-block-title","data-title":"index.html"},m={class:"code-block-title-bar"},u={class:"title"},B={class:"code-block-title","data-title":"index.html"},b={class:"code-block-title-bar"},E={class:"title"},C={class:"code-block-title","data-title":"index.html"},F={class:"code-block-title-bar"},f={class:"title"},q={class:"code-block-title","data-title":"index.html"},x={class:"code-block-title-bar"},w={class:"title"},T={class:"code-block-title","data-title":"index.html"},S={class:"code-block-title-bar"},L={class:"title"},H={class:"code-block-title","data-title":"index.html"},M={class:"code-block-title-bar"},P={class:"title"},N={class:"code-block-title","data-title":"index.html"},O={class:"code-block-title-bar"},z={class:"title"},Y={class:"code-block-title","data-title":"index.html"},j={class:"code-block-title-bar"},V={class:"title"};function R(I,s){const k=d("VPIcon"),p=d("CodeTabs");return y(),g("div",null,[s[38]||(s[38]=i("h2",{id:"文本与标题-h-p-span-strong-em-div",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#文本与标题-h-p-span-strong-em-div"},[i("span",null,"文本与标题(H/P/Span/Strong/Em/Div)")])],-1)),s[39]||(s[39]=i("p",null,[i("strong",null,"标题"),a(":从重要到不重要,"),i("code",null,"<h1>"),a(" ~ "),i("code",null,"<h6>"),a("。")],-1)),i("div",c,[i("div",o,[i("span",A,[l(k,{provider:"iconify",name:"vscode-icons:file-type-html"}),s[0]||(s[0]=a("index.html",-1))])]),s[1]||(s[1]=e(`<div class="language-html line-numbers-mode" data-highlighter="shiki" data-ext="html" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-html"><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">h1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">我的网站</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"></</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">h1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">h2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">关于我</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"></</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">h2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">h3</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">联系方式</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"></</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">h3</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div>`,1))]),s[40]||(s[40]=e('<h3 id="认识div标签" tabindex="-1"><a class="header-anchor" href="#认识div标签"><span>认识div标签</span></a></h3><p><strong>什么是 <code><div></code>?</strong></p><p><code><div></code> 是 "division"(分区)的缩写,可以理解为网页中的"容器"或"盒子"。</p><p>想象一下搬家时的纸箱:</p><ul><li>网页 = 整个房间</li><li><code><div></code> = 一个个纸箱</li><li>箱子里 = 可以放各种物品(文字、图片、按钮等)</li></ul><h3 id="div-的基本特点" tabindex="-1"><a class="header-anchor" href="#div-的基本特点"><span><code><div></code> 的基本特点</span></a></h3><ol><li>块级元素 <code><div></code> 是块级元素,这意味着:</li></ol><ul><li>默认会占据整行的宽度</li><li>前后会自动换行</li><li>就像段落一样,每个<code><div></code>都会从新的一行开始</li></ul><p><strong><code><div></code> 本身没有特定含义,它只是用来分组和布局。</strong></p><h3 id="为什么要使用-div" tabindex="-1"><a class="header-anchor" href="#为什么要使用-div"><span>为什么要使用 <code><div></code>?</span></a></h3><p>没有<code><div></code>的情况:</p>',11)),i("div",v,[i("div",m,[i("span",u,[l(k,{provider:"iconify",name:"vscode-icons:file-type-html"}),s[2]||(s[2]=a("index.html",-1))])]),s[3]||(s[3]=e(`<div class="language-html line-numbers-mode" data-highlighter="shiki" data-ext="html" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-html"><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><!</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">DOCTYPE</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> html</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">html</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as e,o as n}from"./app-Dqab9jXZ.js";const a={};function o(i,s){return n(),e("div")}const p=t(a,[["render",o]]),c=JSON.parse('{"path":"/friends/","title":"My Friends","lang":"zh-CN","frontmatter":{"title":"My Friends","description":"星星划过的时候,要记得许愿哦~♪","permalink":"/friends/","contentPosition":"after","article":false,"pageLayout":"friends","list":[{"name":"pengzhanbo","link":"https://github.com/pengzhanbo","avatar":"https://github.com/pengzhanbo.png","desc":"即使慢,驰而不息,纵会落后,纵会失败,但必须能够到达他所向的目标。"},{"name":"祀梦","link":"https://github.com/si-meng-spec","avatar":"https://github.com/si-meng-spec.png","desc":"嗨~ 新的一天,从一场美妙的邂逅开始。"},{"name":"AJohn","link":"https://www.ajohn.top/","avatar":"https://github.com/zzyAJohn.png","desc":"我希望正在读这句话的人永远开心"},{"name":"小小夏","link":"https://notes.simengweb.com","avatar":"https://image.simengweb.com/images/xxx.jpg","desc":"Kawasaki天下第一!"}],"draft":true,"head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"My Friends\\",\\"image\\":[\\"\\"],\\"dateModified\\":null,\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/friends/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"My Friends"}],["meta",{"property":"og:description","content":"星星划过的时候,要记得许愿哦~♪"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}]]},"readingTime":{"minutes":0.45,"words":134},"git":{},"filePathRelative":"friends.md","headers":[],"type":"friends"}');export{p as comp,c as data};
|
||||
import{_ as t,c as e,o as n}from"./app-COnnofor.js";const a={};function o(i,s){return n(),e("div")}const p=t(a,[["render",o]]),c=JSON.parse('{"path":"/friends/","title":"My Friends","lang":"zh-CN","frontmatter":{"title":"My Friends","description":"星星划过的时候,要记得许愿哦~♪","permalink":"/friends/","contentPosition":"after","article":false,"pageLayout":"friends","list":[{"name":"pengzhanbo","link":"https://github.com/pengzhanbo","avatar":"https://github.com/pengzhanbo.png","desc":"即使慢,驰而不息,纵会落后,纵会失败,但必须能够到达他所向的目标。"},{"name":"祀梦","link":"https://github.com/si-meng-spec","avatar":"https://github.com/si-meng-spec.png","desc":"嗨~ 新的一天,从一场美妙的邂逅开始。"},{"name":"AJohn","link":"https://www.ajohn.top/","avatar":"https://github.com/zzyAJohn.png","desc":"我希望正在读这句话的人永远开心"},{"name":"小小夏","link":"https://notes.simengweb.com","avatar":"https://image.simengweb.com/images/xxx.jpg","desc":"Kawasaki天下第一!"}],"draft":true,"head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"My Friends\\",\\"image\\":[\\"\\"],\\"dateModified\\":null,\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/friends/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"My Friends"}],["meta",{"property":"og:description","content":"星星划过的时候,要记得许愿哦~♪"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}]]},"readingTime":{"minutes":0.45,"words":134},"git":{},"filePathRelative":"friends.md","headers":[],"type":"friends"}');export{p as comp,c as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as n,b as e,d as r,o as a}from"./app-Dqab9jXZ.js";const i={};function m(c,t){return a(),n("div",null,[...t[0]||(t[0]=[e("p",null,[r("作为算法初学者,选择合适的题目开始练习真的超~级重要哦!这里给大家推荐一份超棒的入门题单——"),e("a",{href:"https://leetcode.cn/studyplan/primers-list/",target:"_blank",rel:"noopener noreferrer"},"「新」动计划 · 编程入门"),r(" ~这份题单就像给小树苗精心准备的阳光和雨露一样,特别适合刚开始算法之旅的你~(悄悄告诉你,里面有两题是数据库基础,暂时可以跳过哦~)")],-1),e("p",null,"我的小建议是:先自己试着挑战一下,如果遇到困难了,再来看题解也没关系~重要的是享受这个成长的过程呀~(♡˙︶˙♡)",-1),e("h2",{id:"基础语法-数据类型-٩-๑-◡-๑-۶",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#基础语法-数据类型-٩-๑-◡-๑-۶"},[e("span",null,"基础语法 & 数据类型 ٩(๑>◡<๑)۶")])],-1)])])}const s=o(i,[["render",m]]),d=JSON.parse('{"path":"/programming/leetcode/question_sheet/beginner/","title":"LeetCode 入门题单~(≧∇≦)ノ","lang":"zh-CN","frontmatter":{"title":"LeetCode 入门题单~(≧∇≦)ノ","description":"给算法初学者的题目推荐和学习路径","createTime":"2025年9月22日 08:52:52","permalink":"/programming/leetcode/question_sheet/beginner/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"LeetCode 入门题单~(≧∇≦)ノ\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-22T12:58:52.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/leetcode/question_sheet/beginner/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"LeetCode 入门题单~(≧∇≦)ノ"}],["meta",{"property":"og:description","content":"给算法初学者的题目推荐和学习路径"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-22T12:58:52.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-22T12:58:52.000Z"}]]},"readingTime":{"minutes":0.68,"words":203},"git":{"createdTime":1758545932000,"updatedTime":1758545932000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"}]},"filePathRelative":"notes/programming/leetcode/beginner.md","headers":[]}');export{s as comp,d as data};
|
||||
import{_ as o,c as n,b as e,d as r,o as a}from"./app-COnnofor.js";const i={};function m(c,t){return a(),n("div",null,[...t[0]||(t[0]=[e("p",null,[r("作为算法初学者,选择合适的题目开始练习真的超~级重要哦!这里给大家推荐一份超棒的入门题单——"),e("a",{href:"https://leetcode.cn/studyplan/primers-list/",target:"_blank",rel:"noopener noreferrer"},"「新」动计划 · 编程入门"),r(" ~这份题单就像给小树苗精心准备的阳光和雨露一样,特别适合刚开始算法之旅的你~(悄悄告诉你,里面有两题是数据库基础,暂时可以跳过哦~)")],-1),e("p",null,"我的小建议是:先自己试着挑战一下,如果遇到困难了,再来看题解也没关系~重要的是享受这个成长的过程呀~(♡˙︶˙♡)",-1),e("h2",{id:"基础语法-数据类型-٩-๑-◡-๑-۶",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#基础语法-数据类型-٩-๑-◡-๑-۶"},[e("span",null,"基础语法 & 数据类型 ٩(๑>◡<๑)۶")])],-1)])])}const s=o(i,[["render",m]]),d=JSON.parse('{"path":"/programming/leetcode/question_sheet/beginner/","title":"LeetCode 入门题单~(≧∇≦)ノ","lang":"zh-CN","frontmatter":{"title":"LeetCode 入门题单~(≧∇≦)ノ","description":"给算法初学者的题目推荐和学习路径","createTime":"2025年9月22日 08:52:52","permalink":"/programming/leetcode/question_sheet/beginner/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"LeetCode 入门题单~(≧∇≦)ノ\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-22T12:58:52.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/leetcode/question_sheet/beginner/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"LeetCode 入门题单~(≧∇≦)ノ"}],["meta",{"property":"og:description","content":"给算法初学者的题目推荐和学习路径"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-22T12:58:52.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-22T12:58:52.000Z"}]]},"readingTime":{"minutes":0.68,"words":203},"git":{"createdTime":1758545932000,"updatedTime":1758545932000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"}]},"filePathRelative":"notes/programming/leetcode/beginner.md","headers":[]}');export{s as comp,d as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as n,b as t,o as r}from"./app-Dqab9jXZ.js";const o={};function i(c,e){return r(),n("div",null,[...e[0]||(e[0]=[t("ul",null,[t("li",null,"写作模板与常用句式"),t("li",null,"改写与润色(句式多样化、语法准确性)"),t("li",null,"翻译(语法、词汇、上下文)")],-1)])])}const l=a(o,[["render",i]]),m=JSON.parse('{"path":"/subject/english/writing-translation/","title":"写译","lang":"zh-CN","frontmatter":{"title":"写译","createTime":"2025/10/22 10:26:07","permalink":"/subject/english/writing-translation/","description":"写作模板与常用句式 改写与润色(句式多样化、语法准确性) 翻译(语法、词汇、上下文)","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"写译\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-22T03:13:21.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/writing-translation/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"写译"}],["meta",{"property":"og:description","content":"写作模板与常用句式 改写与润色(句式多样化、语法准确性) 翻译(语法、词汇、上下文)"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-22T03:13:21.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-22T03:13:21.000Z"}]]},"readingTime":{"minutes":0.15,"words":46},"git":{"createdTime":1761102801000,"updatedTime":1761102801000,"contributors":[{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":1,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/writing-translation/README.md","headers":[]}');export{l as comp,m as data};
|
||||
import{_ as a,c as n,b as t,o as r}from"./app-COnnofor.js";const o={};function i(c,e){return r(),n("div",null,[...e[0]||(e[0]=[t("ul",null,[t("li",null,"写作模板与常用句式"),t("li",null,"改写与润色(句式多样化、语法准确性)"),t("li",null,"翻译(语法、词汇、上下文)")],-1)])])}const l=a(o,[["render",i]]),m=JSON.parse('{"path":"/subject/english/writing-translation/","title":"写译","lang":"zh-CN","frontmatter":{"title":"写译","createTime":"2025/10/22 10:26:07","permalink":"/subject/english/writing-translation/","description":"写作模板与常用句式 改写与润色(句式多样化、语法准确性) 翻译(语法、词汇、上下文)","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"写译\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-22T03:13:21.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/writing-translation/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"写译"}],["meta",{"property":"og:description","content":"写作模板与常用句式 改写与润色(句式多样化、语法准确性) 翻译(语法、词汇、上下文)"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-22T03:13:21.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-22T03:13:21.000Z"}]]},"readingTime":{"minutes":0.15,"words":46},"git":{"createdTime":1761102801000,"updatedTime":1761102801000,"contributors":[{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":1,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/writing-translation/README.md","headers":[]}');export{l as comp,m as data};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as p,c as g,b as i,e as t,a as d,d as s,w as k,r,o as y}from"./app-Dqab9jXZ.js";const D={},A={class:"code-block-title","data-title":"index.html"},c={class:"code-block-title-bar"},B={class:"title"},u={class:"code-block-title","data-title":"index.html"},m={class:"code-block-title-bar"},v={class:"title"},o={class:"code-block-title","data-title":"index.html"},E={class:"code-block-title-bar"},b={class:"title"},C={class:"code-block-title","data-title":"index.html"},F={class:"code-block-title-bar"},f={class:"title"},x={class:"code-block-title","data-title":"index.html"},j={class:"code-block-title-bar"},S={class:"title"};function T(q,h){const e=r("VPIcon"),n=r("CodeTabs");return y(),g("div",null,[h[60]||(h[60]=i("h2",{id:"四、列表-ul-ol-li",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#四、列表-ul-ol-li"},[i("span",null,"四、列表(UL/OL/LI)")])],-1)),h[61]||(h[61]=i("p",null,"无序列表(圆点):",-1)),i("div",A,[i("div",c,[i("span",B,[t(e,{provider:"iconify",name:"vscode-icons:file-type-html"}),h[0]||(h[0]=s("index.html",-1))])]),h[1]||(h[1]=d(`<div class="language-html line-numbers-mode" data-highlighter="shiki" data-ext="html" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-html"><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">ul</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
import{_ as p,c as g,b as i,e as t,a as d,d as s,w as k,r,o as y}from"./app-COnnofor.js";const D={},A={class:"code-block-title","data-title":"index.html"},c={class:"code-block-title-bar"},B={class:"title"},u={class:"code-block-title","data-title":"index.html"},m={class:"code-block-title-bar"},v={class:"title"},o={class:"code-block-title","data-title":"index.html"},E={class:"code-block-title-bar"},b={class:"title"},C={class:"code-block-title","data-title":"index.html"},F={class:"code-block-title-bar"},f={class:"title"},x={class:"code-block-title","data-title":"index.html"},j={class:"code-block-title-bar"},S={class:"title"};function T(q,h){const e=r("VPIcon"),n=r("CodeTabs");return y(),g("div",null,[h[60]||(h[60]=i("h2",{id:"四、列表-ul-ol-li",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#四、列表-ul-ol-li"},[i("span",null,"四、列表(UL/OL/LI)")])],-1)),h[61]||(h[61]=i("p",null,"无序列表(圆点):",-1)),i("div",A,[i("div",c,[i("span",B,[t(e,{provider:"iconify",name:"vscode-icons:file-type-html"}),h[0]||(h[0]=s("index.html",-1))])]),h[1]||(h[1]=d(`<div class="language-html line-numbers-mode" data-highlighter="shiki" data-ext="html" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-html"><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">ul</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> <</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">li</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">学习笔记</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"></</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">li</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> <</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">li</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">工具推荐</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"></</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">li</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> <</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">li</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">友情链接</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"></</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">li</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
@@ -260,4 +260,4 @@ import{_ as p,c as g,b as i,e as t,a as d,d as s,w as k,r,o as y}from"./app-Dqab
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," const"),i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," count"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," ="),i("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," Number"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"counter"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"."),i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"dataset"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"."),i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"count"),i("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," ||"),i("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}}," 0"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},")"),i("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}}," +"),i("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}}," 1"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";")]),s(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," counter"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"."),i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"dataset"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"."),i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"count"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," ="),i("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," String"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"("),i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"count"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},");")]),s(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," statusEl"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"."),i("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}},"textContent"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," ="),i("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}}," `"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"当前计数:"),i("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"${"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"count"),i("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"}"),i("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},"`"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";")]),s(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"});")])])]),i("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"})])],-1)])]),_:1}),h[79]||(h[79]=i("h2",{id:"结尾-先结构清晰-再上样式与交互",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#结尾-先结构清晰-再上样式与交互"},[i("span",null,"结尾:先结构清晰,再上样式与交互")])],-1)),h[80]||(h[80]=i("p",null,"写网页像搭房子:先把房间(结构标签)安排好,再选家具颜色(CSS),最后加智能设备(JS)。",-1)),h[81]||(h[81]=i("p",null,"建议你先用这些常用标签做一个“个人名片页”,含标题、段落、头像图片、导航链接和一个简单表单。练熟后再加样式与交互。",-1)),h[82]||(h[82]=i("p",null,[i("strong",null,"延伸阅读"),s(":")],-1)),h[83]||(h[83]=i("ul",null,[i("li",null,"HTML 规范与参考(MDN):https://developer.mozilla.org/en-US/docs/Web/HTML"),i("li",null,"无障碍与语义化:https://developer.mozilla.org/en-US/docs/Glossary/Semantics")],-1))])}const L=p(D,[["render",T]]),P=JSON.parse('{"path":"/programming/web/basic-syntax/html-lists-and-semantic-layout/","title":"test","lang":"zh-CN","frontmatter":{"title":"test","createTime":"2025/11/02 20:47:50","permalink":"/programming/web/basic-syntax/html-lists-and-semantic-layout/","description":"四、列表(UL/OL/LI) 无序列表(圆点): 有序列表(数字): 小案例:展示清单与步骤 小作业:做一个“今日任务清单” 五、语义化布局(Header/Nav/Main/Section/Article/Aside/Footer) 语义化标签让结构更清晰,搜索引擎更友好: 语义化标签的要点:这些标签表达了“这是什么内容”,而不是“怎么显示”。更容易被...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"test\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-11-02T12:50:33.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/web/basic-syntax/html-lists-and-semantic-layout/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"test"}],["meta",{"property":"og:description","content":"四、列表(UL/OL/LI) 无序列表(圆点): 有序列表(数字): 小案例:展示清单与步骤 小作业:做一个“今日任务清单” 五、语义化布局(Header/Nav/Main/Section/Article/Aside/Footer) 语义化标签让结构更清晰,搜索引擎更友好: 语义化标签的要点:这些标签表达了“这是什么内容”,而不是“怎么显示”。更容易被..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-11-02T12:50:33.000Z"}],["meta",{"property":"article:modified_time","content":"2025-11-02T12:50:33.000Z"}]]},"readingTime":{"minutes":6.92,"words":2076},"git":{"createdTime":1762087833000,"updatedTime":1762087833000,"contributors":[{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":1,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/web/basic-syntax/html-lists-and-semantic-layout.md","headers":[]}');export{L as comp,P as data};
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"});")])])]),i("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"}),i("div",{class:"line-number"})])],-1)])]),_:1}),h[79]||(h[79]=i("h2",{id:"结尾-先结构清晰-再上样式与交互",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#结尾-先结构清晰-再上样式与交互"},[i("span",null,"结尾:先结构清晰,再上样式与交互")])],-1)),h[80]||(h[80]=i("p",null,"写网页像搭房子:先把房间(结构标签)安排好,再选家具颜色(CSS),最后加智能设备(JS)。",-1)),h[81]||(h[81]=i("p",null,"建议你先用这些常用标签做一个“个人名片页”,含标题、段落、头像图片、导航链接和一个简单表单。练熟后再加样式与交互。",-1)),h[82]||(h[82]=i("p",null,[i("strong",null,"延伸阅读"),s(":")],-1)),h[83]||(h[83]=i("ul",null,[i("li",null,"HTML 规范与参考(MDN):https://developer.mozilla.org/en-US/docs/Web/HTML"),i("li",null,"无障碍与语义化:https://developer.mozilla.org/en-US/docs/Glossary/Semantics")],-1))])}const L=p(D,[["render",T]]),P=JSON.parse('{"path":"/programming/web/basic-syntax/html-lists-and-semantic-layout/","title":"html 列表与语义布局","lang":"zh-CN","frontmatter":{"title":"html 列表与语义布局","createTime":"2025/11/02 20:47:50","permalink":"/programming/web/basic-syntax/html-lists-and-semantic-layout/","description":"四、列表(UL/OL/LI) 无序列表(圆点): 有序列表(数字): 小案例:展示清单与步骤 小作业:做一个“今日任务清单” 五、语义化布局(Header/Nav/Main/Section/Article/Aside/Footer) 语义化标签让结构更清晰,搜索引擎更友好: 语义化标签的要点:这些标签表达了“这是什么内容”,而不是“怎么显示”。更容易被...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"html 列表与语义布局\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-12-01T07:21:37.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/web/basic-syntax/html-lists-and-semantic-layout/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"html 列表与语义布局"}],["meta",{"property":"og:description","content":"四、列表(UL/OL/LI) 无序列表(圆点): 有序列表(数字): 小案例:展示清单与步骤 小作业:做一个“今日任务清单” 五、语义化布局(Header/Nav/Main/Section/Article/Aside/Footer) 语义化标签让结构更清晰,搜索引擎更友好: 语义化标签的要点:这些标签表达了“这是什么内容”,而不是“怎么显示”。更容易被..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-12-01T07:21:37.000Z"}],["meta",{"property":"article:modified_time","content":"2025-12-01T07:21:37.000Z"}]]},"readingTime":{"minutes":6.94,"words":2083},"git":{"createdTime":1762087833000,"updatedTime":1764573697000,"contributors":[{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":2,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/web/basic-syntax/html-lists-and-semantic-layout.md","headers":[]}');export{L as comp,P as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as r,c as t,a,o}from"./app-Dqab9jXZ.js";const n={};function l(i,e){return o(),t("div",null,[...e[0]||(e[0]=[a('<p>这里是我在LeetCode刷题过程中记录的解题思路和代码实现。通过整理这些题解,希望能够提高自己的算法水平和编程能力。</p><h2 id="题解分类" tabindex="-1"><a class="header-anchor" href="#题解分类"><span>题解分类</span></a></h2><h3 id="数组与字符串" tabindex="-1"><a class="header-anchor" href="#数组与字符串"><span>数组与字符串</span></a></h3><ul><li><a href="https://leetcode-cn.com/problems/two-sum/" target="_blank" rel="noopener noreferrer">两数之和</a></li><li><a href="https://leetcode-cn.com/problems/3sum/" target="_blank" rel="noopener noreferrer">三数之和</a></li></ul><h3 id="链表" tabindex="-1"><a class="header-anchor" href="#链表"><span>链表</span></a></h3><ul><li><a href="https://leetcode-cn.com/problems/reverse-linked-list/" target="_blank" rel="noopener noreferrer">反转链表</a></li><li><a href="https://leetcode-cn.com/problems/merge-two-sorted-lists/" target="_blank" rel="noopener noreferrer">合并两个有序链表</a></li></ul><h3 id="动态规划" tabindex="-1"><a class="header-anchor" href="#动态规划"><span>动态规划</span></a></h3><ul><li><a href="https://leetcode-cn.com/problems/climbing-stairs/" target="_blank" rel="noopener noreferrer">爬楼梯</a></li><li><a href="https://leetcode-cn.com/problems/longest-palindromic-substring/" target="_blank" rel="noopener noreferrer">最长回文子串</a></li></ul><h2 id="解题技巧" tabindex="-1"><a class="header-anchor" href="#解题技巧"><span>解题技巧</span></a></h2><ol><li><strong>双指针法</strong>:常用于数组、链表问题,如两数之和、反转链表等</li><li><strong>滑动窗口</strong>:处理字符串子串问题</li><li><strong>动态规划</strong>:将原问题分解为子问题,自底向上求解</li><li><strong>分治法</strong>:将问题分成若干子问题,分别求解后合并结果</li></ol><h2 id="学习资源" tabindex="-1"><a class="header-anchor" href="#学习资源"><span>学习资源</span></a></h2><ul><li><a href="https://leetcode-cn.com/problemset/all/" target="_blank" rel="noopener noreferrer">LeetCode官方题解</a></li><li><a href="https://programmercarl.com/" target="_blank" rel="noopener noreferrer">代码随想录</a></li><li><a href="https://mitpress.mit.edu/books/introduction-algorithms" target="_blank" rel="noopener noreferrer">算法导论</a></li></ul>',12)])])}const p=r(n,[["render",l]]),c=JSON.parse('{"path":"/programming/leetcode/","title":"LeetCode 题解笔记","lang":"zh-CN","frontmatter":{"title":"LeetCode 题解笔记","description":"记录LeetCode算法题的解题思路和代码实现","createTime":"2025/09/22 08:09:52","permalink":"/programming/leetcode/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"LeetCode 题解笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-22T12:58:52.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/leetcode/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"LeetCode 题解笔记"}],["meta",{"property":"og:description","content":"记录LeetCode算法题的解题思路和代码实现"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-22T12:58:52.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-22T12:58:52.000Z"}]]},"readingTime":{"minutes":0.89,"words":268},"git":{"createdTime":1758545932000,"updatedTime":1758545932000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"}]},"filePathRelative":"notes/programming/leetcode/README.md","headers":[]}');export{p as comp,c as data};
|
||||
import{_ as r,c as t,a,o}from"./app-COnnofor.js";const n={};function l(i,e){return o(),t("div",null,[...e[0]||(e[0]=[a('<p>这里是我在LeetCode刷题过程中记录的解题思路和代码实现。通过整理这些题解,希望能够提高自己的算法水平和编程能力。</p><h2 id="题解分类" tabindex="-1"><a class="header-anchor" href="#题解分类"><span>题解分类</span></a></h2><h3 id="数组与字符串" tabindex="-1"><a class="header-anchor" href="#数组与字符串"><span>数组与字符串</span></a></h3><ul><li><a href="https://leetcode-cn.com/problems/two-sum/" target="_blank" rel="noopener noreferrer">两数之和</a></li><li><a href="https://leetcode-cn.com/problems/3sum/" target="_blank" rel="noopener noreferrer">三数之和</a></li></ul><h3 id="链表" tabindex="-1"><a class="header-anchor" href="#链表"><span>链表</span></a></h3><ul><li><a href="https://leetcode-cn.com/problems/reverse-linked-list/" target="_blank" rel="noopener noreferrer">反转链表</a></li><li><a href="https://leetcode-cn.com/problems/merge-two-sorted-lists/" target="_blank" rel="noopener noreferrer">合并两个有序链表</a></li></ul><h3 id="动态规划" tabindex="-1"><a class="header-anchor" href="#动态规划"><span>动态规划</span></a></h3><ul><li><a href="https://leetcode-cn.com/problems/climbing-stairs/" target="_blank" rel="noopener noreferrer">爬楼梯</a></li><li><a href="https://leetcode-cn.com/problems/longest-palindromic-substring/" target="_blank" rel="noopener noreferrer">最长回文子串</a></li></ul><h2 id="解题技巧" tabindex="-1"><a class="header-anchor" href="#解题技巧"><span>解题技巧</span></a></h2><ol><li><strong>双指针法</strong>:常用于数组、链表问题,如两数之和、反转链表等</li><li><strong>滑动窗口</strong>:处理字符串子串问题</li><li><strong>动态规划</strong>:将原问题分解为子问题,自底向上求解</li><li><strong>分治法</strong>:将问题分成若干子问题,分别求解后合并结果</li></ol><h2 id="学习资源" tabindex="-1"><a class="header-anchor" href="#学习资源"><span>学习资源</span></a></h2><ul><li><a href="https://leetcode-cn.com/problemset/all/" target="_blank" rel="noopener noreferrer">LeetCode官方题解</a></li><li><a href="https://programmercarl.com/" target="_blank" rel="noopener noreferrer">代码随想录</a></li><li><a href="https://mitpress.mit.edu/books/introduction-algorithms" target="_blank" rel="noopener noreferrer">算法导论</a></li></ul>',12)])])}const p=r(n,[["render",l]]),c=JSON.parse('{"path":"/programming/leetcode/","title":"LeetCode 题解笔记","lang":"zh-CN","frontmatter":{"title":"LeetCode 题解笔记","description":"记录LeetCode算法题的解题思路和代码实现","createTime":"2025/09/22 08:09:52","permalink":"/programming/leetcode/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"LeetCode 题解笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-22T12:58:52.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/leetcode/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"LeetCode 题解笔记"}],["meta",{"property":"og:description","content":"记录LeetCode算法题的解题思路和代码实现"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-22T12:58:52.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-22T12:58:52.000Z"}]]},"readingTime":{"minutes":0.89,"words":268},"git":{"createdTime":1758545932000,"updatedTime":1758545932000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"}]},"filePathRelative":"notes/programming/leetcode/README.md","headers":[]}');export{p as comp,c as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as a,a as i,o as l}from"./app-Dqab9jXZ.js";const n={};function r(o,e){return l(),a("div",null,[...e[0]||(e[0]=[i('<h2 id="考试结构概览" tabindex="-1"><a class="header-anchor" href="#考试结构概览"><span>考试结构概览</span></a></h2><ul><li>听力 (25%):新闻、长对话、讲座/采访</li><li>阅读 (35%):仔细阅读、选词填空</li><li>翻译 (15%):汉译英</li><li>写作 (25%):应用文与观点写作</li></ul><h2 id="核心备考策略" tabindex="-1"><a class="header-anchor" href="#核心备考策略"><span>核心备考策略</span></a></h2><ul><li>词汇:高频词与真题语块,使用 SRS 间隔重复</li><li>语法:时态、非谓语、从句,针对写作与翻译的准确表达</li><li>听力:精听 + 跟读(shadowing),积累场景表达</li><li>阅读:结构化分析段落逻辑,题型定位与干扰项识别</li><li>写作:模板+素材库+改写练习,关注连贯与准确</li></ul><h2 id="时间分配建议" tabindex="-1"><a class="header-anchor" href="#时间分配建议"><span>时间分配建议</span></a></h2><ul><li>写作 30 分钟:审题→列纲→写作→快速校对</li><li>阅读 40 分钟:定位→分析→作答→标记不确定</li><li>听力 按机考节奏:提前熟悉说明与做题界面</li><li>翻译 20 分钟:分句翻译→语法检查→润色</li></ul><h2 id="真题与模拟" tabindex="-1"><a class="header-anchor" href="#真题与模拟"><span>真题与模拟</span></a></h2><ul><li>使用近 3-5 年真题按套训练;分析错因并归档到词汇/语法/方法类别</li><li>每周至少一次全真模拟,记录分配与状态调整</li></ul><h2 id="考场技巧" tabindex="-1"><a class="header-anchor" href="#考场技巧"><span>考场技巧</span></a></h2><ul><li>先易后难;不确定题目标记后回看</li><li>注意题干限制词与语义线索(especially/only/not/except 等)</li><li>写作与翻译建议使用简单准确句式,避免长难句错误</li></ul><h2 id="推荐资源" tabindex="-1"><a class="header-anchor" href="#推荐资源"><span>推荐资源</span></a></h2><ul><li>真题:教育部考试中心官方题库与解析</li><li>听力:BBC 6 Minute English、VOA Learning English</li><li>写作:常用应用文格式与常见开头结尾句</li></ul><blockquote><p>后续我会补充各模块的详细练习清单与示例。</p></blockquote>',13)])])}const c=t(n,[["render",r]]),p=JSON.parse('{"path":"/subject/english/exam/cet-4/","title":"英语四级 (CET-4) 备考指南","lang":"zh-CN","frontmatter":{"title":"英语四级 (CET-4) 备考指南","createTime":"2025/10/20 16:42:00","permalink":"/subject/english/exam/cet-4/","description":"考试结构概览 听力 (25%):新闻、长对话、讲座/采访 阅读 (35%):仔细阅读、选词填空 翻译 (15%):汉译英 写作 (25%):应用文与观点写作 核心备考策略 词汇:高频词与真题语块,使用 SRS 间隔重复 语法:时态、非谓语、从句,针对写作与翻译的准确表达 听力:精听 + 跟读(shadowing),积累场景表达 阅读:结构化分析段落逻辑...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"英语四级 (CET-4) 备考指南\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-20T11:55:15.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/exam/cet-4/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"英语四级 (CET-4) 备考指南"}],["meta",{"property":"og:description","content":"考试结构概览 听力 (25%):新闻、长对话、讲座/采访 阅读 (35%):仔细阅读、选词填空 翻译 (15%):汉译英 写作 (25%):应用文与观点写作 核心备考策略 词汇:高频词与真题语块,使用 SRS 间隔重复 语法:时态、非谓语、从句,针对写作与翻译的准确表达 听力:精听 + 跟读(shadowing),积累场景表达 阅读:结构化分析段落逻辑..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-20T11:55:15.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-20T11:55:15.000Z"}]]},"readingTime":{"minutes":1.38,"words":415},"git":{"createdTime":1760961315000,"updatedTime":1760961315000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/exam/cet-4.md","headers":[]}');export{c as comp,p as data};
|
||||
import{_ as t,c as a,a as i,o as l}from"./app-COnnofor.js";const n={};function r(o,e){return l(),a("div",null,[...e[0]||(e[0]=[i('<h2 id="考试结构概览" tabindex="-1"><a class="header-anchor" href="#考试结构概览"><span>考试结构概览</span></a></h2><ul><li>听力 (25%):新闻、长对话、讲座/采访</li><li>阅读 (35%):仔细阅读、选词填空</li><li>翻译 (15%):汉译英</li><li>写作 (25%):应用文与观点写作</li></ul><h2 id="核心备考策略" tabindex="-1"><a class="header-anchor" href="#核心备考策略"><span>核心备考策略</span></a></h2><ul><li>词汇:高频词与真题语块,使用 SRS 间隔重复</li><li>语法:时态、非谓语、从句,针对写作与翻译的准确表达</li><li>听力:精听 + 跟读(shadowing),积累场景表达</li><li>阅读:结构化分析段落逻辑,题型定位与干扰项识别</li><li>写作:模板+素材库+改写练习,关注连贯与准确</li></ul><h2 id="时间分配建议" tabindex="-1"><a class="header-anchor" href="#时间分配建议"><span>时间分配建议</span></a></h2><ul><li>写作 30 分钟:审题→列纲→写作→快速校对</li><li>阅读 40 分钟:定位→分析→作答→标记不确定</li><li>听力 按机考节奏:提前熟悉说明与做题界面</li><li>翻译 20 分钟:分句翻译→语法检查→润色</li></ul><h2 id="真题与模拟" tabindex="-1"><a class="header-anchor" href="#真题与模拟"><span>真题与模拟</span></a></h2><ul><li>使用近 3-5 年真题按套训练;分析错因并归档到词汇/语法/方法类别</li><li>每周至少一次全真模拟,记录分配与状态调整</li></ul><h2 id="考场技巧" tabindex="-1"><a class="header-anchor" href="#考场技巧"><span>考场技巧</span></a></h2><ul><li>先易后难;不确定题目标记后回看</li><li>注意题干限制词与语义线索(especially/only/not/except 等)</li><li>写作与翻译建议使用简单准确句式,避免长难句错误</li></ul><h2 id="推荐资源" tabindex="-1"><a class="header-anchor" href="#推荐资源"><span>推荐资源</span></a></h2><ul><li>真题:教育部考试中心官方题库与解析</li><li>听力:BBC 6 Minute English、VOA Learning English</li><li>写作:常用应用文格式与常见开头结尾句</li></ul><blockquote><p>后续我会补充各模块的详细练习清单与示例。</p></blockquote>',13)])])}const c=t(n,[["render",r]]),p=JSON.parse('{"path":"/subject/english/exam/cet-4/","title":"英语四级 (CET-4) 备考指南","lang":"zh-CN","frontmatter":{"title":"英语四级 (CET-4) 备考指南","createTime":"2025/10/20 16:42:00","permalink":"/subject/english/exam/cet-4/","description":"考试结构概览 听力 (25%):新闻、长对话、讲座/采访 阅读 (35%):仔细阅读、选词填空 翻译 (15%):汉译英 写作 (25%):应用文与观点写作 核心备考策略 词汇:高频词与真题语块,使用 SRS 间隔重复 语法:时态、非谓语、从句,针对写作与翻译的准确表达 听力:精听 + 跟读(shadowing),积累场景表达 阅读:结构化分析段落逻辑...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"英语四级 (CET-4) 备考指南\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-20T11:55:15.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/exam/cet-4/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"英语四级 (CET-4) 备考指南"}],["meta",{"property":"og:description","content":"考试结构概览 听力 (25%):新闻、长对话、讲座/采访 阅读 (35%):仔细阅读、选词填空 翻译 (15%):汉译英 写作 (25%):应用文与观点写作 核心备考策略 词汇:高频词与真题语块,使用 SRS 间隔重复 语法:时态、非谓语、从句,针对写作与翻译的准确表达 听力:精听 + 跟读(shadowing),积累场景表达 阅读:结构化分析段落逻辑..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-20T11:55:15.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-20T11:55:15.000Z"}]]},"readingTime":{"minutes":1.38,"words":415},"git":{"createdTime":1760961315000,"updatedTime":1760961315000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/exam/cet-4.md","headers":[]}');export{c as comp,p as data};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,a as e,o as n}from"./app-Dqab9jXZ.js";const l={};function h(d,s){return n(),a("div",null,[...s[0]||(s[0]=[e(`<p>Hello~ 欢迎来到 Linux 命令的奇妙世界!今天,爱莉希雅将带着祀梦一起探索那些最常用、最实用的 Linux 基础命令哦~ 准备好了吗?Let's go!🚀</p><h2 id="文件与目录操作" tabindex="-1"><a class="header-anchor" href="#文件与目录操作"><span>文件与目录操作</span></a></h2><h3 id="ls-查看目录内容" tabindex="-1"><a class="header-anchor" href="#ls-查看目录内容"><span>ls - 查看目录内容</span></a></h3><p><code>ls</code> 命令就像是你的眼睛,可以帮你查看当前目录下有哪些文件和文件夹~</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 查看当前目录内容</span></span>
|
||||
import{_ as i,c as a,a as e,o as n}from"./app-COnnofor.js";const l={};function h(d,s){return n(),a("div",null,[...s[0]||(s[0]=[e(`<p>Hello~ 欢迎来到 Linux 命令的奇妙世界!今天,爱莉希雅将带着祀梦一起探索那些最常用、最实用的 Linux 基础命令哦~ 准备好了吗?Let's go!🚀</p><h2 id="文件与目录操作" tabindex="-1"><a class="header-anchor" href="#文件与目录操作"><span>文件与目录操作</span></a></h2><h3 id="ls-查看目录内容" tabindex="-1"><a class="header-anchor" href="#ls-查看目录内容"><span>ls - 查看目录内容</span></a></h3><p><code>ls</code> 命令就像是你的眼睛,可以帮你查看当前目录下有哪些文件和文件夹~</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 查看当前目录内容</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">ls</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 查看详细信息(包括权限、大小、修改时间等)</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as o,b as e,o as n}from"./app-Dqab9jXZ.js";const r={};function i(s,t){return n(),o("div",null,[...t[0]||(t[0]=[e("p",null,"这里是英语学习的入门环境配置示例模版:",-1),e("ul",null,[e("li",null,"推荐词典与工具"),e("li",null,"输入法与语音资源"),e("li",null,"常用学习网站与 App")],-1),e("p",null,"你可以按需补充具体内容。",-1)])])}const p=a(r,[["render",i]]),l=JSON.parse('{"path":"/subject/english/basis/","title":"英语环境配置","lang":"zh-CN","frontmatter":{"title":"英语环境配置","createTime":"2025/10/20 16:34:20","permalink":"/subject/english/basis/","description":"这里是英语学习的入门环境配置示例模版: 推荐词典与工具 输入法与语音资源 常用学习网站与 App 你可以按需补充具体内容。","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"英语环境配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-20T11:55:15.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/basis/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"英语环境配置"}],["meta",{"property":"og:description","content":"这里是英语学习的入门环境配置示例模版: 推荐词典与工具 输入法与语音资源 常用学习网站与 App 你可以按需补充具体内容。"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-20T11:55:15.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-20T11:55:15.000Z"}]]},"readingTime":{"minutes":0.24,"words":72},"git":{"createdTime":1760961315000,"updatedTime":1760961315000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/basis/README.md","headers":[]}');export{p as comp,l as data};
|
||||
import{_ as a,c as o,b as e,o as n}from"./app-COnnofor.js";const r={};function i(s,t){return n(),o("div",null,[...t[0]||(t[0]=[e("p",null,"这里是英语学习的入门环境配置示例模版:",-1),e("ul",null,[e("li",null,"推荐词典与工具"),e("li",null,"输入法与语音资源"),e("li",null,"常用学习网站与 App")],-1),e("p",null,"你可以按需补充具体内容。",-1)])])}const p=a(r,[["render",i]]),l=JSON.parse('{"path":"/subject/english/basis/","title":"英语环境配置","lang":"zh-CN","frontmatter":{"title":"英语环境配置","createTime":"2025/10/20 16:34:20","permalink":"/subject/english/basis/","description":"这里是英语学习的入门环境配置示例模版: 推荐词典与工具 输入法与语音资源 常用学习网站与 App 你可以按需补充具体内容。","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"英语环境配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-20T11:55:15.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/basis/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"英语环境配置"}],["meta",{"property":"og:description","content":"这里是英语学习的入门环境配置示例模版: 推荐词典与工具 输入法与语音资源 常用学习网站与 App 你可以按需补充具体内容。"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-20T11:55:15.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-20T11:55:15.000Z"}]]},"readingTime":{"minutes":0.24,"words":72},"git":{"createdTime":1760961315000,"updatedTime":1760961315000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/basis/README.md","headers":[]}');export{p as comp,l as data};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as r,b as e,o as n}from"./app-Dqab9jXZ.js";const s={};function o(i,t){return n(),r("div",null,[...t[0]||(t[0]=[e("h2",{id:"c-的简介",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#c-的简介"},[e("span",null,"C++的简介")])],-1),e("p",null,"欢迎来到C++的奇妙世界~(๑>◡<๑) 如果你之前接触过C语言的话,那真是太棒啦!C++就像是C语言穿上了漂亮的新衣裳,不仅保留了原来的优点,还添加了面向对象和泛型编程的魔法哦~不过呢,可能需要稍微调整一下之前的编程习惯呢。就算你是第一次接触C++也完全不用担心,我会用最简单可爱的方式,带着你一步一步探索这个神奇的编程世界哒!",-1),e("h2",{id:"环境配置",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#环境配置"},[e("span",null,"环境配置")])],-1)])])}const c=a(s,[["render",o]]),p=JSON.parse('{"path":"/programming/cplusplus/basis/","title":"C++ 简介与环境配置","lang":"zh-CN","frontmatter":{"title":"C++ 简介与环境配置","createTime":"2025/09/22 09:06:00","permalink":"/programming/cplusplus/basis/","description":"C++的简介 欢迎来到C++的奇妙世界~(๑>◡<๑) 如果你之前接触过C语言的话,那真是太棒啦!C++就像是C语言穿上了漂亮的新衣裳,不仅保留了原来的优点,还添加了面向对象和泛型编程的魔法哦~不过呢,可能需要稍微调整一下之前的编程习惯呢。就算你是第一次接触C++也完全不用担心,我会用最简单可爱的方式,带着你一步一步探索这个神奇的编程世界哒! 环境配置","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"C++ 简介与环境配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-24T03:53:04.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/cplusplus/basis/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"C++ 简介与环境配置"}],["meta",{"property":"og:description","content":"C++的简介 欢迎来到C++的奇妙世界~(๑>◡<๑) 如果你之前接触过C语言的话,那真是太棒啦!C++就像是C语言穿上了漂亮的新衣裳,不仅保留了原来的优点,还添加了面向对象和泛型编程的魔法哦~不过呢,可能需要稍微调整一下之前的编程习惯呢。就算你是第一次接触C++也完全不用担心,我会用最简单可爱的方式,带着你一步一步探索这个神奇的编程世界哒! 环境配置"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-24T03:53:04.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-24T03:53:04.000Z"}]]},"readingTime":{"minutes":0.55,"words":164},"git":{"createdTime":1758547422000,"updatedTime":1758685984000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"},{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":1,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"autoDesc":true,"filePathRelative":"notes/programming/c++/basis.md","headers":[]}');export{c as comp,p as data};
|
||||
import{_ as a,c as r,b as e,o as n}from"./app-COnnofor.js";const s={};function o(i,t){return n(),r("div",null,[...t[0]||(t[0]=[e("h2",{id:"c-的简介",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#c-的简介"},[e("span",null,"C++的简介")])],-1),e("p",null,"欢迎来到C++的奇妙世界~(๑>◡<๑) 如果你之前接触过C语言的话,那真是太棒啦!C++就像是C语言穿上了漂亮的新衣裳,不仅保留了原来的优点,还添加了面向对象和泛型编程的魔法哦~不过呢,可能需要稍微调整一下之前的编程习惯呢。就算你是第一次接触C++也完全不用担心,我会用最简单可爱的方式,带着你一步一步探索这个神奇的编程世界哒!",-1),e("h2",{id:"环境配置",tabindex:"-1"},[e("a",{class:"header-anchor",href:"#环境配置"},[e("span",null,"环境配置")])],-1)])])}const c=a(s,[["render",o]]),p=JSON.parse('{"path":"/programming/cplusplus/basis/","title":"C++ 简介与环境配置","lang":"zh-CN","frontmatter":{"title":"C++ 简介与环境配置","createTime":"2025/09/22 09:06:00","permalink":"/programming/cplusplus/basis/","description":"C++的简介 欢迎来到C++的奇妙世界~(๑>◡<๑) 如果你之前接触过C语言的话,那真是太棒啦!C++就像是C语言穿上了漂亮的新衣裳,不仅保留了原来的优点,还添加了面向对象和泛型编程的魔法哦~不过呢,可能需要稍微调整一下之前的编程习惯呢。就算你是第一次接触C++也完全不用担心,我会用最简单可爱的方式,带着你一步一步探索这个神奇的编程世界哒! 环境配置","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"C++ 简介与环境配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-24T03:53:04.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/cplusplus/basis/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"C++ 简介与环境配置"}],["meta",{"property":"og:description","content":"C++的简介 欢迎来到C++的奇妙世界~(๑>◡<๑) 如果你之前接触过C语言的话,那真是太棒啦!C++就像是C语言穿上了漂亮的新衣裳,不仅保留了原来的优点,还添加了面向对象和泛型编程的魔法哦~不过呢,可能需要稍微调整一下之前的编程习惯呢。就算你是第一次接触C++也完全不用担心,我会用最简单可爱的方式,带着你一步一步探索这个神奇的编程世界哒! 环境配置"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-24T03:53:04.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-24T03:53:04.000Z"}]]},"readingTime":{"minutes":0.55,"words":164},"git":{"createdTime":1758547422000,"updatedTime":1758685984000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"},{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":1,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"autoDesc":true,"filePathRelative":"notes/programming/c++/basis.md","headers":[]}');export{c as comp,p as data};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,a as e,o as n}from"./app-Dqab9jXZ.js";const h={};function t(l,s){return n(),a("div",null,[...s[0]||(s[0]=[e(`<h2 id="hardhat2-部署" tabindex="-1"><a class="header-anchor" href="#hardhat2-部署"><span>HardHat2 部署</span></a></h2><h3 id="node-js-v16-安装" tabindex="-1"><a class="header-anchor" href="#node-js-v16-安装"><span>Node.js v16 安装</span></a></h3><p>HardHat2 需要 Node.js v16 及以上的版本 这里给出的是通过 npm 来将旧版本升级到 Node.js v16 的,如果想要直接安装的话通过 <code>yum install nodejs</code> 或者 <code>apt install nodejs</code> 来即可。</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">npm</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> config</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> set</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> registry</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> https://registry.npmmirror.com</span></span>
|
||||
import{_ as i,c as a,a as e,o as n}from"./app-COnnofor.js";const h={};function t(l,s){return n(),a("div",null,[...s[0]||(s[0]=[e(`<h2 id="hardhat2-部署" tabindex="-1"><a class="header-anchor" href="#hardhat2-部署"><span>HardHat2 部署</span></a></h2><h3 id="node-js-v16-安装" tabindex="-1"><a class="header-anchor" href="#node-js-v16-安装"><span>Node.js v16 安装</span></a></h3><p>HardHat2 需要 Node.js v16 及以上的版本 这里给出的是通过 npm 来将旧版本升级到 Node.js v16 的,如果想要直接安装的话通过 <code>yum install nodejs</code> 或者 <code>apt install nodejs</code> 来即可。</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">npm</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> config</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> set</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> registry</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> https://registry.npmmirror.com</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">sudo</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> npm</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> install</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -g</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> n</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">sudo</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> n</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 16</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>安装完成之后可以查看版本,如果没有更新可以重新刷新一下环境(直接退出重连最简单)</p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">node</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> -v</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># v16.20.2</span></span>
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as r,c as g,a as e,b as s,e as k,d as i,w as h,r as p,o as y}from"./app-Dqab9jXZ.js";const c={},A={class:"code-block-title","data-title":"index.html"},D={class:"code-block-title-bar"},B={class:"title"};function v(o,a){const t=p("VPIcon"),d=p("CodeTabs");return y(),g("div",null,[a[8]||(a[8]=e('<h2 id="javascript-是什么" tabindex="-1"><a class="header-anchor" href="#javascript-是什么"><span>JavaScript 是什么?</span></a></h2><p>JavaScript 是一种广泛用于网页开发的脚本语言,它使网页能够实现交互式功能。与 HTML(负责结构)和 CSS(负责样式)不同,JavaScript 专注于<strong>行为</strong>,可以让网页变得动态和响应式。</p><h2 id="第一个-javascript-程序" tabindex="-1"><a class="header-anchor" href="#第一个-javascript-程序"><span>第一个 JavaScript 程序</span></a></h2><p>JavaScript 代码可以直接写在 HTML 文件中,通常放在 <code><body></code> 标签的底部,使用 <code><script></code> 标签包裹。</p>',4)),s("div",A,[s("div",D,[s("span",B,[k(t,{provider:"iconify",name:"vscode-icons:file-type-html"}),a[0]||(a[0]=i("index.html",-1))])]),a[1]||(a[1]=e(`<div class="language-html line-numbers-mode" data-highlighter="shiki" data-ext="html" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-html"><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><!</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">DOCTYPE</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> html</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
import{_ as r,c as g,a as e,b as s,e as k,d as i,w as h,r as p,o as y}from"./app-COnnofor.js";const c={},A={class:"code-block-title","data-title":"index.html"},D={class:"code-block-title-bar"},B={class:"title"};function v(o,a){const t=p("VPIcon"),d=p("CodeTabs");return y(),g("div",null,[a[8]||(a[8]=e('<h2 id="javascript-是什么" tabindex="-1"><a class="header-anchor" href="#javascript-是什么"><span>JavaScript 是什么?</span></a></h2><p>JavaScript 是一种广泛用于网页开发的脚本语言,它使网页能够实现交互式功能。与 HTML(负责结构)和 CSS(负责样式)不同,JavaScript 专注于<strong>行为</strong>,可以让网页变得动态和响应式。</p><h2 id="第一个-javascript-程序" tabindex="-1"><a class="header-anchor" href="#第一个-javascript-程序"><span>第一个 JavaScript 程序</span></a></h2><p>JavaScript 代码可以直接写在 HTML 文件中,通常放在 <code><body></code> 标签的底部,使用 <code><script></code> 标签包裹。</p>',4)),s("div",A,[s("div",D,[s("span",B,[k(t,{provider:"iconify",name:"vscode-icons:file-type-html"}),a[0]||(a[0]=i("index.html",-1))])]),a[1]||(a[1]=e(`<div class="language-html line-numbers-mode" data-highlighter="shiki" data-ext="html" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-html"><span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><!</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">DOCTYPE</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> html</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">html</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> lang</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">zh-CN</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"><</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">head</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;"> <</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">meta</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> charset</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">utf-8</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">></span></span>
|
||||
@@ -141,12 +141,15 @@ import{_ as r,c as g,a as e,b as s,e as k,d as i,w as h,r as p,o as y}from"./app
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">while</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">count</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> <=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 5</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> console</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">count</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> count</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">++</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="函数" tabindex="-1"><a class="header-anchor" href="#函数"><span>函数</span></a></h2><p>函数是可重用的代码块,用于执行特定任务。</p><h3 id="函数声明" tabindex="-1"><a class="header-anchor" href="#函数声明"><span>函数声明</span></a></h3><div class="language-javascript line-numbers-mode" data-highlighter="shiki" data-ext="javascript" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-javascript"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">function</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> greet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">name</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="函数" tabindex="-1"><a class="header-anchor" href="#函数"><span>函数</span></a></h2><p>函数是一段可重复使用的代码块,可以接受输入(参数),执行操作,并返回输出(返回值)。</p><h3 id="函数声明" tabindex="-1"><a class="header-anchor" href="#函数声明"><span>函数声明</span></a></h3><div class="language-javascript line-numbers-mode" data-highlighter="shiki" data-ext="javascript" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-javascript"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">function</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> greet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">name</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;"> \`</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">你好,</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">\${</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">name</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">}</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">!</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">\`</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">const</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> message</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> greet</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">小明</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">console</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">message</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // 输出:你好,小明!</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="箭头函数-es6" tabindex="-1"><a class="header-anchor" href="#箭头函数-es6"><span>箭头函数(ES6)</span></a></h3><div class="language-javascript line-numbers-mode" data-highlighter="shiki" data-ext="javascript" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-javascript"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">const</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> sum</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">a</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> b</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =></span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">console</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">message</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // 输出:你好,小明!</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>格式如下</p><div class="language-javascript line-numbers-mode" data-highlighter="shiki" data-ext="javascript" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-javascript"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">function</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> 函数名</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">参数1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> 参数2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ...</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">参数N</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // 函数体:要执行的代码</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> 返回值</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // 可选</span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">}</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h3 id="箭头函数-es6" tabindex="-1"><a class="header-anchor" href="#箭头函数-es6"><span>箭头函数(ES6)</span></a></h3><div class="language-javascript line-numbers-mode" data-highlighter="shiki" data-ext="javascript" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-javascript"><span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">const</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> sum</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">a</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> b</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =></span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> return</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> a</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> +</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> b</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">};</span></span>
|
||||
<span class="line"></span>
|
||||
@@ -178,7 +181,7 @@ import{_ as r,c as g,a as e,b as s,e as k,d as i,w as h,r as p,o as y}from"./app
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">button</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">addEventListener</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">click</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> function</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;"> console</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">按钮被点击了!</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;"> alert</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">你好,欢迎使用!</span><span style="--shiki-light:#B5695977;--shiki-dark:#C98A7D77;">"</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">});</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="小案例-交互式计算器" tabindex="-1"><a class="header-anchor" href="#小案例-交互式计算器"><span>小案例:交互式计算器</span></a></h2><p>下面是一个简单的交互式计算器示例,演示如何结合 HTML、CSS 和 JavaScript。</p>`,66)),k(d,{id:"181",data:[{id:"index.html"},{id:"style.css"},{id:"script.js"}]},{title0:h(({value:n,isActive:l})=>[k(t,{provider:"iconify",name:"vscode-icons:file-type-html"}),a[2]||(a[2]=s("span",null,"index.html",-1))]),title1:h(({value:n,isActive:l})=>[k(t,{provider:"iconify",name:"vscode-icons:file-type-css"}),a[3]||(a[3]=s("span",null,"style.css",-1))]),title2:h(({value:n,isActive:l})=>[k(t,{provider:"iconify",name:"vscode-icons:file-type-js"}),a[4]||(a[4]=s("span",null,"script.js",-1))]),tab0:h(({value:n,isActive:l})=>[...a[5]||(a[5]=[s("div",{class:"language-html line-numbers-mode","data-highlighter":"shiki","data-ext":"html",style:{"--shiki-light":"#393a34","--shiki-dark":"#dbd7caee","--shiki-light-bg":"#ffffff","--shiki-dark-bg":"#121212"}},[s("pre",{class:"shiki shiki-themes vitesse-light vitesse-dark vp-code"},[s("code",{class:"language-html"},[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"<!"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"DOCTYPE"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," html"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},">")]),i(`
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">});</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="小案例-交互式计算器" tabindex="-1"><a class="header-anchor" href="#小案例-交互式计算器"><span>小案例:交互式计算器</span></a></h2><p>下面是一个简单的交互式计算器示例,演示如何结合 HTML、CSS 和 JavaScript。</p>`,68)),k(d,{id:"185",data:[{id:"index.html"},{id:"style.css"},{id:"script.js"}]},{title0:h(({value:n,isActive:l})=>[k(t,{provider:"iconify",name:"vscode-icons:file-type-html"}),a[2]||(a[2]=s("span",null,"index.html",-1))]),title1:h(({value:n,isActive:l})=>[k(t,{provider:"iconify",name:"vscode-icons:file-type-css"}),a[3]||(a[3]=s("span",null,"style.css",-1))]),title2:h(({value:n,isActive:l})=>[k(t,{provider:"iconify",name:"vscode-icons:file-type-js"}),a[4]||(a[4]=s("span",null,"script.js",-1))]),tab0:h(({value:n,isActive:l})=>[...a[5]||(a[5]=[s("div",{class:"language-html line-numbers-mode","data-highlighter":"shiki","data-ext":"html",style:{"--shiki-light":"#393a34","--shiki-dark":"#dbd7caee","--shiki-light-bg":"#ffffff","--shiki-dark-bg":"#121212"}},[s("pre",{class:"shiki shiki-themes vitesse-light vitesse-dark vp-code"},[s("code",{class:"language-html"},[s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"<!"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"DOCTYPE"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," html"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},">")]),i(`
|
||||
`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"<"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"html"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," lang"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"="),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},'"'),s("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"zh-CN"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},'"'),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},">")]),i(`
|
||||
`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"<"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"head"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},">")]),i(`
|
||||
`),s("span",{class:"line"},[s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," <"),s("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"meta"),s("span",{style:{"--shiki-light":"#B07D48","--shiki-dark":"#BD976A"}}," charset"),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"="),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},'"'),s("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"utf-8"),s("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},'"'),s("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},">")]),i(`
|
||||
@@ -319,4 +322,4 @@ import{_ as r,c as g,a as e,b as s,e as k,d as i,w as h,r as p,o as y}from"./app
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">console</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">typeof</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 42</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // "number"</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">console</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">typeof</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> true</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">);</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // "boolean"</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">console</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">typeof</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {});</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // "object"</span></span>
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">console</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">typeof</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> []);</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // "object"(数组也是对象的一种)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="实践练习" tabindex="-1"><a class="header-anchor" href="#实践练习"><span>实践练习</span></a></h2><h3 id="练习1-创建一个简单的待办事项列表" tabindex="-1"><a class="header-anchor" href="#练习1-创建一个简单的待办事项列表"><span>练习1:创建一个简单的待办事项列表</span></a></h3><p>使用 HTML、CSS 和 JavaScript 创建一个待办事项列表,包含添加、删除和标记完成功能。</p><p>提示:</p><ul><li>使用数组存储待办事项</li><li>使用 DOM 操作动态更新列表</li><li>为按钮添加事件监听器</li></ul><h3 id="练习2-实现一个数字猜谜游戏" tabindex="-1"><a class="header-anchor" href="#练习2-实现一个数字猜谜游戏"><span>练习2:实现一个数字猜谜游戏</span></a></h3><p>计算机随机生成一个1到100之间的数字,玩家通过输入框猜测,程序提示"猜大了"或"猜小了",直到猜对为止。</p><p>提示:</p><ul><li>使用 <code>Math.random()</code> 生成随机数</li><li>使用条件语句判断猜测结果</li><li>记录并显示猜测次数</li></ul><h2 id="总结" tabindex="-1"><a class="header-anchor" href="#总结"><span>总结</span></a></h2><p>JavaScript 是现代 web 开发的核心技术之一,它可以让网页变得动态和交互。通过学习变量、数据类型、运算符、条件语句、循环、函数和 DOM 操作等基础知识,你已经迈出了学习 JavaScript 的第一步。</p><p>继续练习和探索,你会发现 JavaScript 的强大功能和灵活性!</p>`,25))])}const m=r(c,[["render",v]]),b=JSON.parse('{"path":"/programming/web/basic-syntax/javascript-basics/","title":"JavaScript 基础知识","lang":"zh-CN","frontmatter":{"title":"JavaScript 基础知识","createTime":"2025/11/2 21:30:00","permalink":"/programming/web/basic-syntax/javascript-basics/","description":"JavaScript 是什么? JavaScript 是一种广泛用于网页开发的脚本语言,它使网页能够实现交互式功能。与 HTML(负责结构)和 CSS(负责样式)不同,JavaScript 专注于行为,可以让网页变得动态和响应式。 第一个 JavaScript 程序 JavaScript 代码可以直接写在 HTML 文件中,通常放在 <body> 标签...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"JavaScript 基础知识\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-11-10T06:45:12.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/web/basic-syntax/javascript-basics/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"JavaScript 基础知识"}],["meta",{"property":"og:description","content":"JavaScript 是什么? JavaScript 是一种广泛用于网页开发的脚本语言,它使网页能够实现交互式功能。与 HTML(负责结构)和 CSS(负责样式)不同,JavaScript 专注于行为,可以让网页变得动态和响应式。 第一个 JavaScript 程序 JavaScript 代码可以直接写在 HTML 文件中,通常放在 <body> 标签..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-11-10T06:45:12.000Z"}],["meta",{"property":"article:modified_time","content":"2025-11-10T06:45:12.000Z"}]]},"readingTime":{"minutes":8.22,"words":2466},"git":{"createdTime":1762757112000,"updatedTime":1762757112000,"contributors":[{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":1,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/web/basic-syntax/javascript-basics.md","headers":[]}');export{m as comp,b as data};
|
||||
<span class="line"><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">console</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">log</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">typeof</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> []);</span><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> // "object"(数组也是对象的一种)</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><h2 id="实践练习" tabindex="-1"><a class="header-anchor" href="#实践练习"><span>实践练习</span></a></h2><h3 id="练习1-创建一个简单的待办事项列表" tabindex="-1"><a class="header-anchor" href="#练习1-创建一个简单的待办事项列表"><span>练习1:创建一个简单的待办事项列表</span></a></h3><p>使用 HTML、CSS 和 JavaScript 创建一个待办事项列表,包含添加、删除和标记完成功能。</p><p>提示:</p><ul><li>使用数组存储待办事项</li><li>使用 DOM 操作动态更新列表</li><li>为按钮添加事件监听器</li></ul><h3 id="练习2-实现一个数字猜谜游戏" tabindex="-1"><a class="header-anchor" href="#练习2-实现一个数字猜谜游戏"><span>练习2:实现一个数字猜谜游戏</span></a></h3><p>计算机随机生成一个1到100之间的数字,玩家通过输入框猜测,程序提示"猜大了"或"猜小了",直到猜对为止。</p><p>提示:</p><ul><li>使用 <code>Math.random()</code> 生成随机数</li><li>使用条件语句判断猜测结果</li><li>记录并显示猜测次数</li></ul><h2 id="总结" tabindex="-1"><a class="header-anchor" href="#总结"><span>总结</span></a></h2><p>JavaScript 是现代 web 开发的核心技术之一,它可以让网页变得动态和交互。通过学习变量、数据类型、运算符、条件语句、循环、函数和 DOM 操作等基础知识,你已经迈出了学习 JavaScript 的第一步。</p><p>继续练习和探索,你会发现 JavaScript 的强大功能和灵活性!</p>`,25))])}const m=r(c,[["render",v]]),b=JSON.parse('{"path":"/programming/web/basic-syntax/javascript-basics/","title":"JavaScript 基础知识","lang":"zh-CN","frontmatter":{"title":"JavaScript 基础知识","createTime":"2025/11/2 21:30:00","permalink":"/programming/web/basic-syntax/javascript-basics/","description":"JavaScript 是什么? JavaScript 是一种广泛用于网页开发的脚本语言,它使网页能够实现交互式功能。与 HTML(负责结构)和 CSS(负责样式)不同,JavaScript 专注于行为,可以让网页变得动态和响应式。 第一个 JavaScript 程序 JavaScript 代码可以直接写在 HTML 文件中,通常放在 <body> 标签...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"JavaScript 基础知识\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-12-05T05:32:37.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/web/basic-syntax/javascript-basics/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"JavaScript 基础知识"}],["meta",{"property":"og:description","content":"JavaScript 是什么? JavaScript 是一种广泛用于网页开发的脚本语言,它使网页能够实现交互式功能。与 HTML(负责结构)和 CSS(负责样式)不同,JavaScript 专注于行为,可以让网页变得动态和响应式。 第一个 JavaScript 程序 JavaScript 代码可以直接写在 HTML 文件中,通常放在 <body> 标签..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-12-05T05:32:37.000Z"}],["meta",{"property":"article:modified_time","content":"2025-12-05T05:32:37.000Z"}]]},"readingTime":{"minutes":8.39,"words":2518},"git":{"createdTime":1762757112000,"updatedTime":1764912757000,"contributors":[{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":2,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/web/basic-syntax/javascript-basics.md","headers":[]}');export{m as comp,b as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./app-Dqab9jXZ.js";const n={};function r(o,c){return a(),t("div")}const i=e(n,[["render",r]]),s=JSON.parse('{"path":"/blog/","title":"博客","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"博客","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"blog"}');export{i as comp,s as data};
|
||||
import{_ as e,c as t,o as a}from"./app-COnnofor.js";const n={};function r(o,c){return a(),t("div")}const i=e(n,[["render",r]]),s=JSON.parse('{"path":"/blog/","title":"博客","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"博客","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"blog"}');export{i as comp,s as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as r,b as e,o as n}from"./app-Dqab9jXZ.js";const o={};function i(c,t){return n(),r("div",null,[...t[0]||(t[0]=[e("ul",null,[e("li",null,"阅读策略(略读、扫读、精读)"),e("li",null,"篇章结构与逻辑(指代、连接、修饰)")],-1)])])}const s=a(o,[["render",i]]),d=JSON.parse('{"path":"/subject/english/reading-writing/","title":"阅读提升","lang":"zh-CN","frontmatter":{"title":"阅读提升","createTime":"2025/10/20 16:40:00","permalink":"/subject/english/reading-writing/","description":"阅读策略(略读、扫读、精读) 篇章结构与逻辑(指代、连接、修饰)","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"阅读提升\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-22T03:13:21.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/reading-writing/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"阅读提升"}],["meta",{"property":"og:description","content":"阅读策略(略读、扫读、精读) 篇章结构与逻辑(指代、连接、修饰)"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-22T03:13:21.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-22T03:13:21.000Z"}]]},"readingTime":{"minutes":0.13,"words":40},"git":{"createdTime":1760961315000,"updatedTime":1761102801000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"},{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":1,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/reading-writing/README.md","headers":[]}');export{s as comp,d as data};
|
||||
import{_ as a,c as r,b as e,o as n}from"./app-COnnofor.js";const o={};function i(c,t){return n(),r("div",null,[...t[0]||(t[0]=[e("ul",null,[e("li",null,"阅读策略(略读、扫读、精读)"),e("li",null,"篇章结构与逻辑(指代、连接、修饰)")],-1)])])}const s=a(o,[["render",i]]),d=JSON.parse('{"path":"/subject/english/reading-writing/","title":"阅读提升","lang":"zh-CN","frontmatter":{"title":"阅读提升","createTime":"2025/10/20 16:40:00","permalink":"/subject/english/reading-writing/","description":"阅读策略(略读、扫读、精读) 篇章结构与逻辑(指代、连接、修饰)","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"阅读提升\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-22T03:13:21.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/reading-writing/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"阅读提升"}],["meta",{"property":"og:description","content":"阅读策略(略读、扫读、精读) 篇章结构与逻辑(指代、连接、修饰)"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-22T03:13:21.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-22T03:13:21.000Z"}]]},"readingTime":{"minutes":0.13,"words":40},"git":{"createdTime":1760961315000,"updatedTime":1761102801000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"},{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":1,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/reading-writing/README.md","headers":[]}');export{s as comp,d as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as t,a as r,o as n}from"./app-Dqab9jXZ.js";const o={};function i(s,e){return n(),t("div",null,[...e[0]||(e[0]=[r('<p>嗨~ 欢迎来到祀梦的个人博客,这是我在这个小站发布的第一篇文章哦~ (✧ω✧)</p><h2 id="关于站长我呀-🌸" tabindex="-1"><a class="header-anchor" href="#关于站长我呀-🌸"><span>关于站长我呀~ 🌸</span></a></h2><p>我是祀梦,现在在上海某大专读书,是个可爱的男孩子~ 目前是信息安全专业的学生,但是超——级喜欢编程!(๑•̀ㅂ•́)و✧</p><h2 id="我的兴趣爱好-🌈" tabindex="-1"><a class="header-anchor" href="#我的兴趣爱好-🌈"><span>我的兴趣爱好~ 🌈</span></a></h2><p>我喜欢好多好多东西呀!编程、摄像、美食、旅游,还有画画~ 假期闲下来的时候,我会画一些自己喜欢的角色呢!(๑˘ᴗ˘๑)</p><h2 id="技术方面-💻" tabindex="-1"><a class="header-anchor" href="#技术方面-💻"><span>技术方面~ 💻</span></a></h2><p>在技术方面,Python 是我最熟练的编程语言,Java 和 C 也懂一些,前后端开发和 Linux 运维我也会一点哦~ 虽然什么都感兴趣,什么都想学,但是总觉得自己不够聪明,学杂而不精呢... (╥ω╥)</p><h2 id="为什么叫-祀梦-🌙" tabindex="-1"><a class="header-anchor" href="#为什么叫-祀梦-🌙"><span>为什么叫"祀梦"? 🌙</span></a></h2><p>这个名字的由来超有趣!初中的时候我很喜欢写小说,"祀梦"是我其中一本小书的主角名字~ 当时我的初中同学聊天的时候说这个名字很好听,我就一直沿用下来啦!(๑´ㅂ`๑)</p><h2 id="联系方式-📱" tabindex="-1"><a class="header-anchor" href="#联系方式-📱"><span>联系方式~ 📱</span></a></h2><p>如果您在网页访问过程中遇到什么问题,或者想要交个朋友的话,欢迎随时来找我玩哦~</p><ul><li>邮箱:meng_si@proton.me</li><li>B站:<a href="https://space.bilibili.com/361714249" target="_blank" rel="noopener noreferrer">66ccff色的薰依草</a></li></ul><h2 id="网站的成长记录-📝" tabindex="-1"><a class="header-anchor" href="#网站的成长记录-📝"><span>网站的成长记录~ 📝</span></a></h2><ul><li>2025年9月21日:部署完网站</li></ul><h2 id="写在最后-💌" tabindex="-1"><a class="header-anchor" href="#写在最后-💌"><span>写在最后~ 💌</span></a></h2><p>很早之前我就总是喜欢写点东西,但是又不敢发到大的平台上,做一个属于自己的互联网小窝感觉真的超——级棒!希望大家能在这里找到有用的内容,也欢迎大家常来玩哦~ (づ ̄ 3 ̄)づ</p>',16)])])}const p=a(o,[["render",i]]),m=JSON.parse('{"path":"/about/","title":"关于祀梦的花园","lang":"zh-CN","frontmatter":{"title":"关于祀梦的花园","description":"这里是爱与回忆的小世界~","hideInBlogList":true,"article":false,"createTime":"2024/10/29 12:30:00","permalink":"/about/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"关于祀梦的花园\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-20T06:41:24.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/about/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"关于祀梦的花园"}],["meta",{"property":"og:description","content":"这里是爱与回忆的小世界~"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-20T06:41:24.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-20T06:41:24.000Z"}]]},"readingTime":{"minutes":1.52,"words":457},"git":{"createdTime":1758539729000,"updatedTime":1760942484000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"},{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":2,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"},{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"filePathRelative":"about.md","headers":[],"categoryList":[]}');export{p as comp,m as data};
|
||||
import{_ as a,c as t,a as r,o as n}from"./app-COnnofor.js";const o={};function i(s,e){return n(),t("div",null,[...e[0]||(e[0]=[r('<p>嗨~ 欢迎来到祀梦的个人博客,这是我在这个小站发布的第一篇文章哦~ (✧ω✧)</p><h2 id="关于站长我呀-🌸" tabindex="-1"><a class="header-anchor" href="#关于站长我呀-🌸"><span>关于站长我呀~ 🌸</span></a></h2><p>我是祀梦,现在在上海某大专读书,是个可爱的男孩子~ 目前是信息安全专业的学生,但是超——级喜欢编程!(๑•̀ㅂ•́)و✧</p><h2 id="我的兴趣爱好-🌈" tabindex="-1"><a class="header-anchor" href="#我的兴趣爱好-🌈"><span>我的兴趣爱好~ 🌈</span></a></h2><p>我喜欢好多好多东西呀!编程、摄像、美食、旅游,还有画画~ 假期闲下来的时候,我会画一些自己喜欢的角色呢!(๑˘ᴗ˘๑)</p><h2 id="技术方面-💻" tabindex="-1"><a class="header-anchor" href="#技术方面-💻"><span>技术方面~ 💻</span></a></h2><p>在技术方面,Python 是我最熟练的编程语言,Java 和 C 也懂一些,前后端开发和 Linux 运维我也会一点哦~ 虽然什么都感兴趣,什么都想学,但是总觉得自己不够聪明,学杂而不精呢... (╥ω╥)</p><h2 id="为什么叫-祀梦-🌙" tabindex="-1"><a class="header-anchor" href="#为什么叫-祀梦-🌙"><span>为什么叫"祀梦"? 🌙</span></a></h2><p>这个名字的由来超有趣!初中的时候我很喜欢写小说,"祀梦"是我其中一本小书的主角名字~ 当时我的初中同学聊天的时候说这个名字很好听,我就一直沿用下来啦!(๑´ㅂ`๑)</p><h2 id="联系方式-📱" tabindex="-1"><a class="header-anchor" href="#联系方式-📱"><span>联系方式~ 📱</span></a></h2><p>如果您在网页访问过程中遇到什么问题,或者想要交个朋友的话,欢迎随时来找我玩哦~</p><ul><li>邮箱:meng_si@proton.me</li><li>B站:<a href="https://space.bilibili.com/361714249" target="_blank" rel="noopener noreferrer">66ccff色的薰依草</a></li></ul><h2 id="网站的成长记录-📝" tabindex="-1"><a class="header-anchor" href="#网站的成长记录-📝"><span>网站的成长记录~ 📝</span></a></h2><ul><li>2025年9月21日:部署完网站</li></ul><h2 id="写在最后-💌" tabindex="-1"><a class="header-anchor" href="#写在最后-💌"><span>写在最后~ 💌</span></a></h2><p>很早之前我就总是喜欢写点东西,但是又不敢发到大的平台上,做一个属于自己的互联网小窝感觉真的超——级棒!希望大家能在这里找到有用的内容,也欢迎大家常来玩哦~ (づ ̄ 3 ̄)づ</p>',16)])])}const p=a(o,[["render",i]]),m=JSON.parse('{"path":"/about/","title":"关于祀梦的花园","lang":"zh-CN","frontmatter":{"title":"关于祀梦的花园","description":"这里是爱与回忆的小世界~","hideInBlogList":true,"article":false,"createTime":"2024/10/29 12:30:00","permalink":"/about/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"关于祀梦的花园\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-20T06:41:24.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/about/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"关于祀梦的花园"}],["meta",{"property":"og:description","content":"这里是爱与回忆的小世界~"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-20T06:41:24.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-20T06:41:24.000Z"}]]},"readingTime":{"minutes":1.52,"words":457},"git":{"createdTime":1758539729000,"updatedTime":1760942484000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"},{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":2,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"},{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"filePathRelative":"about.md","headers":[],"categoryList":[]}');export{p as comp,m as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
import{_ as e,c as s,a,o as t}from"./app-Dqab9jXZ.js";const l={};function n(d,i){return t(),s("div",null,[...i[0]||(i[0]=[a(`<h2 id="solidity-文件基础框架" tabindex="-1"><a class="header-anchor" href="#solidity-文件基础框架"><span>Solidity 文件基础框架</span></a></h2><p>Solidity 文件的基础框架通常包含以下几个部分:</p><ol><li><strong>SPDX 许可证标识符 (SPDX License Identifier)</strong>:为了避免法律问题和明确智能合约的开源许可证,建议在合约的开头添加 SPDX 许可证标识符。</li><li><strong>Solidity 版本声明 (Pragma)</strong>:这会告诉编译器您希望使用哪个版本的 Solidity 来编译您的代码。</li><li><strong>ABI编码编译指示</strong>:通过<code>pragma abicoder v1</code>或<code>pragma abicoder v2</code>来指定ABI编码版本。</li><li><strong>合约定义 (Contract Definition)</strong>:这是您编写智能合约代码的主体部分。</li></ol><p>下面是一个基础的 Solidity 文件框架示例,您可以直接使用:</p><div class="language-solidity line-numbers-mode" data-highlighter="shiki" data-ext="solidity" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-solidity"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">// SPDX-License-Identifier: MIT</span></span>
|
||||
import{_ as e,c as s,a,o as t}from"./app-COnnofor.js";const l={};function n(d,i){return t(),s("div",null,[...i[0]||(i[0]=[a(`<h2 id="solidity-文件基础框架" tabindex="-1"><a class="header-anchor" href="#solidity-文件基础框架"><span>Solidity 文件基础框架</span></a></h2><p>Solidity 文件的基础框架通常包含以下几个部分:</p><ol><li><strong>SPDX 许可证标识符 (SPDX License Identifier)</strong>:为了避免法律问题和明确智能合约的开源许可证,建议在合约的开头添加 SPDX 许可证标识符。</li><li><strong>Solidity 版本声明 (Pragma)</strong>:这会告诉编译器您希望使用哪个版本的 Solidity 来编译您的代码。</li><li><strong>ABI编码编译指示</strong>:通过<code>pragma abicoder v1</code>或<code>pragma abicoder v2</code>来指定ABI编码版本。</li><li><strong>合约定义 (Contract Definition)</strong>:这是您编写智能合约代码的主体部分。</li></ol><p>下面是一个基础的 Solidity 文件框架示例,您可以直接使用:</p><div class="language-solidity line-numbers-mode" data-highlighter="shiki" data-ext="solidity" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-solidity"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">// SPDX-License-Identifier: MIT</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">pragma</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> solidity</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> ^0.8.20</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">pragma</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> experimental</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> ABIEncoderV2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
|
||||
<span class="line"></span>
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o}from"./app-Dqab9jXZ.js";const a={};function n(r,c){return o(),t("div")}const l=e(a,[["render",n]]),p=JSON.parse('{"path":"/","title":"","lang":"zh-CN","frontmatter":{"pageLayout":"home","externalLinkIcon":false,"config":[{"type":"hero","full":true,"background":"tint-plate","hero":{"name":"仲夏夜之梦","tagline":"祀梦和小小夏的花园","text":"在这里,每一个文字都承载着温暖与美好 🌸","actions":[{"theme":"brand","text":"博客","link":"/blog/"}]}}],"head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"\\",\\"image\\":[\\"\\"],\\"dateModified\\":null,\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}]]},"readingTime":{"minutes":0.18,"words":55},"git":{},"filePathRelative":"README.md","headers":[],"categoryList":[]}');export{l as comp,p as data};
|
||||
import{_ as e,c as t,o}from"./app-COnnofor.js";const a={};function n(r,c){return o(),t("div")}const l=e(a,[["render",n]]),p=JSON.parse('{"path":"/","title":"","lang":"zh-CN","frontmatter":{"pageLayout":"home","externalLinkIcon":false,"config":[{"type":"hero","full":true,"background":"tint-plate","hero":{"name":"仲夏夜之梦","tagline":"祀梦和小小夏的花园","text":"在这里,每一个文字都承载着温暖与美好 🌸","actions":[{"theme":"brand","text":"博客","link":"/blog/"}]}}],"head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"\\",\\"image\\":[\\"\\"],\\"dateModified\\":null,\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}]]},"readingTime":{"minutes":0.18,"words":55},"git":{},"filePathRelative":"README.md","headers":[],"categoryList":[]}');export{l as comp,p as data};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,a as n,o as l}from"./app-Dqab9jXZ.js";const e={};function h(t,s){return l(),a("div",null,[...s[0]||(s[0]=[n(`<h2 id="关于-memory-和-storage-存储类型" tabindex="-1"><a class="header-anchor" href="#关于-memory-和-storage-存储类型"><span>关于 memory 和 storage 存储类型</span></a></h2><ul><li><code>storage</code>:合约的持久化状态数据,保存在链上状态。对 <code>storage</code> 的写入最昂贵,读取也比内存贵;修改会永久生效。</li><li><code>memory</code>:函数调用期间的临时数据,函数返回后即释放。对 <code>memory</code> 的更改不会持久化。</li><li>(补充)<code>calldata</code>:外部函数参数的只读数据位置,零拷贝、不可修改,用于节省 gas。</li></ul><h3 id="生命周期与成本" tabindex="-1"><a class="header-anchor" href="#生命周期与成本"><span>生命周期与成本</span></a></h3><ul><li><code>storage</code> 写入昂贵、读取较贵;适合保存需要长期存在的状态。</li><li><code>memory</code> 在函数结束时释放,读取/写入相对便宜;适合临时计算与返回值。</li><li>复杂引用类型(数组、<code>struct</code>、<code>mapping</code>、<code>string</code>、<code>bytes</code>)在函数参数或局部变量处通常必须显式标注数据位置。</li></ul><h3 id="默认与必须声明" tabindex="-1"><a class="header-anchor" href="#默认与必须声明"><span>默认与必须声明</span></a></h3><ul><li>状态变量总是位于 <code>storage</code>(例如 <code>User[] public users;</code>)。</li><li>外部函数(<code>external</code>)的复杂类型参数默认是 <code>calldata</code>;内部/公共函数需要显式标注 <code>memory</code> 或 <code>storage</code>。</li><li>局部变量的复杂类型必须指定数据位置,否则编译报错。</li></ul><h3 id="拷贝与引用语义" tabindex="-1"><a class="header-anchor" href="#拷贝与引用语义"><span>拷贝与引用语义</span></a></h3><ul><li>从 <code>storage</code> 读取到 <code>memory</code> 会“复制”数据;修改 <code>memory</code> 副本不影响原始 <code>storage</code>。</li><li>使用 <code>storage</code> 局部变量可以得到对状态数据的“引用”,对其赋值会持久化。</li></ul><div class="language-solidity line-numbers-mode" data-highlighter="shiki" data-ext="solidity" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-solidity"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">pragma</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> solidity</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> ^0.8.20</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
|
||||
import{_ as i,c as a,a as n,o as l}from"./app-COnnofor.js";const e={};function h(t,s){return l(),a("div",null,[...s[0]||(s[0]=[n(`<h2 id="关于-memory-和-storage-存储类型" tabindex="-1"><a class="header-anchor" href="#关于-memory-和-storage-存储类型"><span>关于 memory 和 storage 存储类型</span></a></h2><ul><li><code>storage</code>:合约的持久化状态数据,保存在链上状态。对 <code>storage</code> 的写入最昂贵,读取也比内存贵;修改会永久生效。</li><li><code>memory</code>:函数调用期间的临时数据,函数返回后即释放。对 <code>memory</code> 的更改不会持久化。</li><li>(补充)<code>calldata</code>:外部函数参数的只读数据位置,零拷贝、不可修改,用于节省 gas。</li></ul><h3 id="生命周期与成本" tabindex="-1"><a class="header-anchor" href="#生命周期与成本"><span>生命周期与成本</span></a></h3><ul><li><code>storage</code> 写入昂贵、读取较贵;适合保存需要长期存在的状态。</li><li><code>memory</code> 在函数结束时释放,读取/写入相对便宜;适合临时计算与返回值。</li><li>复杂引用类型(数组、<code>struct</code>、<code>mapping</code>、<code>string</code>、<code>bytes</code>)在函数参数或局部变量处通常必须显式标注数据位置。</li></ul><h3 id="默认与必须声明" tabindex="-1"><a class="header-anchor" href="#默认与必须声明"><span>默认与必须声明</span></a></h3><ul><li>状态变量总是位于 <code>storage</code>(例如 <code>User[] public users;</code>)。</li><li>外部函数(<code>external</code>)的复杂类型参数默认是 <code>calldata</code>;内部/公共函数需要显式标注 <code>memory</code> 或 <code>storage</code>。</li><li>局部变量的复杂类型必须指定数据位置,否则编译报错。</li></ul><h3 id="拷贝与引用语义" tabindex="-1"><a class="header-anchor" href="#拷贝与引用语义"><span>拷贝与引用语义</span></a></h3><ul><li>从 <code>storage</code> 读取到 <code>memory</code> 会“复制”数据;修改 <code>memory</code> 副本不影响原始 <code>storage</code>。</li><li>使用 <code>storage</code> 局部变量可以得到对状态数据的“引用”,对其赋值会持久化。</li></ul><div class="language-solidity line-numbers-mode" data-highlighter="shiki" data-ext="solidity" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-solidity"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">pragma</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> solidity</span><span style="--shiki-light:#A65E2B;--shiki-dark:#C99076;"> ^0.8.20</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">contract</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> Users</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span></span>
|
||||
<span class="line"><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> struct</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> User</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> {</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> string</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> name</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> uint</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> age</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> }</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as n,a as i,o}from"./app-Dqab9jXZ.js";const a={};function r(s,e){return o(),n("div",null,[...e[0]||(e[0]=[i('<p>你好呀,这里是祀梦的 Linux 运维笔记小天地~ 🌟</p><p>在这片神奇的天地里,我们将一起探索 Linux 操作系统的奥秘,学习各种实用的运维技巧。无论你是刚开始接触 Linux 的新手,还是已经有一定经验的运维工程师,相信这里都能为你提供一些有用的知识和见解哦~</p><h2 id="为什么选择-linux" tabindex="-1"><a class="header-anchor" href="#为什么选择-linux"><span>为什么选择 Linux?</span></a></h2><p>Linux 就像是一个宝藏盒子,里面装满了各种强大的工具和功能。它稳定、安全、高效,是服务器领域的佼佼者。而且最重要的是,它是开源的!这意味着我们可以自由地探索它的内部结构,甚至可以根据自己的需求进行定制~</p><h2 id="笔记内容概览" tabindex="-1"><a class="header-anchor" href="#笔记内容概览"><span>笔记内容概览</span></a></h2><p>这里的笔记将会涵盖以下几个方面:</p><ul><li><strong>Linux 基础命令</strong>:从最基本的文件操作到系统管理,一步步带你熟悉 Linux 的常用命令</li><li><strong>系统管理</strong>:学习如何管理用户、进程、服务和网络</li><li><strong>Shell 脚本编程</strong>:掌握 Shell 脚本的编写技巧,让你的工作更加自动化</li><li><strong>系统性能优化</strong>:了解如何监控和优化 Linux 系统的性能</li><li><strong>安全防护</strong>:学习 Linux 系统的安全配置和防护措施</li></ul><h2 id="学习建议" tabindex="-1"><a class="header-anchor" href="#学习建议"><span>学习建议</span></a></h2><p>学习 Linux 最好的方法就是<strong>多实践</strong>!不要害怕犯错,每一次错误都是成长的机会。如果你在学习过程中遇到了问题,记得多查阅文档,多和社区交流~</p><p>让我们一起开启这段精彩的 Linux 运维之旅吧! 💪</p>',10)])])}const c=t(a,[["render",r]]),l=JSON.parse('{"path":"/ops/linux/","title":"Linux 运维笔记","lang":"zh-CN","frontmatter":{"title":"Linux 运维笔记","createTime":"2025/09/28 10:30:00","permalink":"/ops/linux/","description":"你好呀,这里是祀梦的 Linux 运维笔记小天地~ 🌟 在这片神奇的天地里,我们将一起探索 Linux 操作系统的奥秘,学习各种实用的运维技巧。无论你是刚开始接触 Linux 的新手,还是已经有一定经验的运维工程师,相信这里都能为你提供一些有用的知识和见解哦~ 为什么选择 Linux? Linux 就像是一个宝藏盒子,里面装满了各种强大的工具和功能。...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Linux 运维笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-28T12:03:21.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/ops/linux/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Linux 运维笔记"}],["meta",{"property":"og:description","content":"你好呀,这里是祀梦的 Linux 运维笔记小天地~ 🌟 在这片神奇的天地里,我们将一起探索 Linux 操作系统的奥秘,学习各种实用的运维技巧。无论你是刚开始接触 Linux 的新手,还是已经有一定经验的运维工程师,相信这里都能为你提供一些有用的知识和见解哦~ 为什么选择 Linux? Linux 就像是一个宝藏盒子,里面装满了各种强大的工具和功能。..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-28T12:03:21.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-28T12:03:21.000Z"}]]},"readingTime":{"minutes":1.43,"words":430},"git":{"createdTime":1759061001000,"updatedTime":1759061001000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":1,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"autoDesc":true,"filePathRelative":"notes/ops/linux/README.md","headers":[]}');export{c as comp,l as data};
|
||||
import{_ as t,c as n,a as i,o}from"./app-COnnofor.js";const a={};function r(s,e){return o(),n("div",null,[...e[0]||(e[0]=[i('<p>你好呀,这里是祀梦的 Linux 运维笔记小天地~ 🌟</p><p>在这片神奇的天地里,我们将一起探索 Linux 操作系统的奥秘,学习各种实用的运维技巧。无论你是刚开始接触 Linux 的新手,还是已经有一定经验的运维工程师,相信这里都能为你提供一些有用的知识和见解哦~</p><h2 id="为什么选择-linux" tabindex="-1"><a class="header-anchor" href="#为什么选择-linux"><span>为什么选择 Linux?</span></a></h2><p>Linux 就像是一个宝藏盒子,里面装满了各种强大的工具和功能。它稳定、安全、高效,是服务器领域的佼佼者。而且最重要的是,它是开源的!这意味着我们可以自由地探索它的内部结构,甚至可以根据自己的需求进行定制~</p><h2 id="笔记内容概览" tabindex="-1"><a class="header-anchor" href="#笔记内容概览"><span>笔记内容概览</span></a></h2><p>这里的笔记将会涵盖以下几个方面:</p><ul><li><strong>Linux 基础命令</strong>:从最基本的文件操作到系统管理,一步步带你熟悉 Linux 的常用命令</li><li><strong>系统管理</strong>:学习如何管理用户、进程、服务和网络</li><li><strong>Shell 脚本编程</strong>:掌握 Shell 脚本的编写技巧,让你的工作更加自动化</li><li><strong>系统性能优化</strong>:了解如何监控和优化 Linux 系统的性能</li><li><strong>安全防护</strong>:学习 Linux 系统的安全配置和防护措施</li></ul><h2 id="学习建议" tabindex="-1"><a class="header-anchor" href="#学习建议"><span>学习建议</span></a></h2><p>学习 Linux 最好的方法就是<strong>多实践</strong>!不要害怕犯错,每一次错误都是成长的机会。如果你在学习过程中遇到了问题,记得多查阅文档,多和社区交流~</p><p>让我们一起开启这段精彩的 Linux 运维之旅吧! 💪</p>',10)])])}const c=t(a,[["render",r]]),l=JSON.parse('{"path":"/ops/linux/","title":"Linux 运维笔记","lang":"zh-CN","frontmatter":{"title":"Linux 运维笔记","createTime":"2025/09/28 10:30:00","permalink":"/ops/linux/","description":"你好呀,这里是祀梦的 Linux 运维笔记小天地~ 🌟 在这片神奇的天地里,我们将一起探索 Linux 操作系统的奥秘,学习各种实用的运维技巧。无论你是刚开始接触 Linux 的新手,还是已经有一定经验的运维工程师,相信这里都能为你提供一些有用的知识和见解哦~ 为什么选择 Linux? Linux 就像是一个宝藏盒子,里面装满了各种强大的工具和功能。...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Linux 运维笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-28T12:03:21.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/ops/linux/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Linux 运维笔记"}],["meta",{"property":"og:description","content":"你好呀,这里是祀梦的 Linux 运维笔记小天地~ 🌟 在这片神奇的天地里,我们将一起探索 Linux 操作系统的奥秘,学习各种实用的运维技巧。无论你是刚开始接触 Linux 的新手,还是已经有一定经验的运维工程师,相信这里都能为你提供一些有用的知识和见解哦~ 为什么选择 Linux? Linux 就像是一个宝藏盒子,里面装满了各种强大的工具和功能。..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-28T12:03:21.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-28T12:03:21.000Z"}]]},"readingTime":{"minutes":1.43,"words":430},"git":{"createdTime":1759061001000,"updatedTime":1759061001000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":1,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"autoDesc":true,"filePathRelative":"notes/ops/linux/README.md","headers":[]}');export{c as comp,l as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o}from"./app-Dqab9jXZ.js";const i={};function c(a,n){return o(),t("div")}const s=e(i,[["render",c]]),p=JSON.parse('{"path":"/ops/blockchain/theory/basic-principles/","title":"区块链的基本原理","lang":"zh-CN","frontmatter":{"title":"区块链的基本原理","createTime":"2025/09/28 12:39:11","permalink":"/ops/blockchain/theory/basic-principles/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"区块链的基本原理\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-02T07:56:20.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/ops/blockchain/theory/basic-principles/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"区块链的基本原理"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-02T07:56:20.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-02T07:56:20.000Z"}]]},"readingTime":{"minutes":0.06,"words":17},"git":{"createdTime":1759130659000,"updatedTime":1759391780000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":2,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"filePathRelative":"notes/ops/blockchain/theory/basic-principles.md","headers":[]}');export{s as comp,p as data};
|
||||
import{_ as e,c as t,o}from"./app-COnnofor.js";const i={};function c(a,n){return o(),t("div")}const s=e(i,[["render",c]]),p=JSON.parse('{"path":"/ops/blockchain/theory/basic-principles/","title":"区块链的基本原理","lang":"zh-CN","frontmatter":{"title":"区块链的基本原理","createTime":"2025/09/28 12:39:11","permalink":"/ops/blockchain/theory/basic-principles/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"区块链的基本原理\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-02T07:56:20.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/ops/blockchain/theory/basic-principles/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"区块链的基本原理"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-02T07:56:20.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-02T07:56:20.000Z"}]]},"readingTime":{"minutes":0.06,"words":17},"git":{"createdTime":1759130659000,"updatedTime":1759391780000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":2,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"filePathRelative":"notes/ops/blockchain/theory/basic-principles.md","headers":[]}');export{s as comp,p as data};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as e,c as a,a as i,o as n}from"./app-Dqab9jXZ.js";const l={};function t(d,s){return n(),a("div",null,[...s[0]||(s[0]=[i(`<p>这篇文章主要讲WSL2虚拟机核心操作哦~它基于轻量级Hyper-V运行,像贴心小精灵默默工作~还能用命令行精细控制!接下来讲启动/关闭、实例管理、资源配置、网络操作、备份迁移这五大操作,是不是很期待呢~♪</p><h2 id="启动-关闭-wsl2-虚拟机" tabindex="-1"><a class="header-anchor" href="#启动-关闭-wsl2-虚拟机"><span>启动/关闭 WSL2 虚拟机</span></a></h2><p>WSL2的虚拟机平时是由Windows自动管理的呢,不过我们也可以通过命令手动控制它的生命周期哦~</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span># 启动指定的发行版</span></span>
|
||||
import{_ as e,c as a,a as i,o as n}from"./app-COnnofor.js";const l={};function t(d,s){return n(),a("div",null,[...s[0]||(s[0]=[i(`<p>这篇文章主要讲WSL2虚拟机核心操作哦~它基于轻量级Hyper-V运行,像贴心小精灵默默工作~还能用命令行精细控制!接下来讲启动/关闭、实例管理、资源配置、网络操作、备份迁移这五大操作,是不是很期待呢~♪</p><h2 id="启动-关闭-wsl2-虚拟机" tabindex="-1"><a class="header-anchor" href="#启动-关闭-wsl2-虚拟机"><span>启动/关闭 WSL2 虚拟机</span></a></h2><p>WSL2的虚拟机平时是由Windows自动管理的呢,不过我们也可以通过命令手动控制它的生命周期哦~</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span># 启动指定的发行版</span></span>
|
||||
<span class="line"><span>wsl -d Ubuntu-20.04</span></span>
|
||||
<span class="line"><span></span></span>
|
||||
<span class="line"><span># 关闭指定的发行版</span></span>
|
||||
@@ -37,4 +37,4 @@ import{_ as e,c as a,a as i,o as n}from"./app-Dqab9jXZ.js";const l={};function t
|
||||
<span class="line"><span></span></span>
|
||||
<span class="line"><span># 导入 tar 文件为新的发行版</span></span>
|
||||
<span class="line"><span>wsl --import <新发行版名称> <安装目录> <tar 文件路径> [选项]</span></span>
|
||||
<span class="line"><span>wsl --import Ubuntu-Backup C:\\wsl\\Ubuntu-Backup D:\\backups\\ubuntu-2004.tar --version 2</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>要注意哦~导入完成后,默认用户会变成root呢~如果想要设置回原来的用户,可以使用这个命令:</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>ubuntu2004.exe config --default-user username</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>悄悄告诉大家一个小秘密~WSL2是可以同时存在多个同源发行版的哦~这样我们就可以在不同的环境中进行不同的实验啦~是不是很方便呢~</p>`,36)])])}const r=e(l,[["render",t]]),c=JSON.parse('{"path":"/article/operate-wsl2/","title":"WSL2 核心操作指南","lang":"zh-CN","frontmatter":{"title":"WSL2 核心操作指南","createTime":"2025/09/30 16:08:32","cover":"https://image.simengweb.com/elysia_cover_image/2MEiWEhvsx8OtKeJ.png","permalink":"/article/operate-wsl2/","description":"这篇文章主要讲WSL2虚拟机核心操作哦~它基于轻量级Hyper-V运行,像贴心小精灵默默工作~还能用命令行精细控制!接下来讲启动/关闭、实例管理、资源配置、网络操作、备份迁移这五大操作,是不是很期待呢~♪ 启动/关闭 WSL2 虚拟机 WSL2的虚拟机平时是由Windows自动管理的呢,不过我们也可以通过命令手动控制它的生命周期哦~ 如果想要完全关闭W...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"WSL2 核心操作指南\\",\\"image\\":[\\"https://image.simengweb.com/elysia_cover_image/2MEiWEhvsx8OtKeJ.png\\"],\\"dateModified\\":\\"2025-10-01T07:21:10.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/article/operate-wsl2/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"WSL2 核心操作指南"}],["meta",{"property":"og:description","content":"这篇文章主要讲WSL2虚拟机核心操作哦~它基于轻量级Hyper-V运行,像贴心小精灵默默工作~还能用命令行精细控制!接下来讲启动/关闭、实例管理、资源配置、网络操作、备份迁移这五大操作,是不是很期待呢~♪ 启动/关闭 WSL2 虚拟机 WSL2的虚拟机平时是由Windows自动管理的呢,不过我们也可以通过命令手动控制它的生命周期哦~ 如果想要完全关闭W..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://image.simengweb.com/elysia_cover_image/2MEiWEhvsx8OtKeJ.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-01T07:21:10.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:src","content":"https://image.simengweb.com/elysia_cover_image/2MEiWEhvsx8OtKeJ.png"}],["meta",{"name":"twitter:image:alt","content":"WSL2 核心操作指南"}],["meta",{"property":"article:modified_time","content":"2025-10-01T07:21:10.000Z"}]]},"readingTime":{"minutes":3.74,"words":1123},"git":{"createdTime":1759223056000,"updatedTime":1759303270000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":3,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"autoDesc":true,"filePathRelative":"blog/technology/Operate_WSL2.md","headers":[],"categoryList":[{"id":"126ac9","sort":10000,"name":"blog"},{"id":"750eb7","sort":10001,"name":"technology"}]}');export{r as comp,c as data};
|
||||
<span class="line"><span>wsl --import Ubuntu-Backup C:\\wsl\\Ubuntu-Backup D:\\backups\\ubuntu-2004.tar --version 2</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div><div class="line-number"></div></div></div><p>要注意哦~导入完成后,默认用户会变成root呢~如果想要设置回原来的用户,可以使用这个命令:</p><div class="language- line-numbers-mode" data-highlighter="shiki" data-ext="" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark vp-code"><code class="language-"><span class="line"><span>ubuntu2004.exe config --default-user username</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div><p>悄悄告诉大家一个小秘密~WSL2是可以同时存在多个同源发行版的哦~这样我们就可以在不同的环境中进行不同的实验啦~是不是很方便呢~</p>`,36)])])}const r=e(l,[["render",t]]),c=JSON.parse('{"path":"/article/operate-wsl2/","title":"WSL2 核心操作指南","lang":"zh-CN","frontmatter":{"title":"WSL2 核心操作指南","createTime":"2025/09/30 16:08:32","cover":"https://image.simengweb.com/elysia_cover_image/2MEiWEhvsx8OtKeJ.png","permalink":"/article/operate-wsl2/","description":"这篇文章主要讲WSL2虚拟机核心操作哦~它基于轻量级Hyper-V运行,像贴心小精灵默默工作~还能用命令行精细控制!接下来讲启动/关闭、实例管理、资源配置、网络操作、备份迁移这五大操作,是不是很期待呢~♪ 启动/关闭 WSL2 虚拟机 WSL2的虚拟机平时是由Windows自动管理的呢,不过我们也可以通过命令手动控制它的生命周期哦~ 如果想要完全关闭W...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"WSL2 核心操作指南\\",\\"image\\":[\\"https://image.simengweb.com/elysia_cover_image/2MEiWEhvsx8OtKeJ.png\\"],\\"dateModified\\":\\"2025-10-01T07:21:10.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/article/operate-wsl2/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"WSL2 核心操作指南"}],["meta",{"property":"og:description","content":"这篇文章主要讲WSL2虚拟机核心操作哦~它基于轻量级Hyper-V运行,像贴心小精灵默默工作~还能用命令行精细控制!接下来讲启动/关闭、实例管理、资源配置、网络操作、备份迁移这五大操作,是不是很期待呢~♪ 启动/关闭 WSL2 虚拟机 WSL2的虚拟机平时是由Windows自动管理的呢,不过我们也可以通过命令手动控制它的生命周期哦~ 如果想要完全关闭W..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://image.simengweb.com/elysia_cover_image/2MEiWEhvsx8OtKeJ.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-01T07:21:10.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:src","content":"https://image.simengweb.com/elysia_cover_image/2MEiWEhvsx8OtKeJ.png"}],["meta",{"name":"twitter:image:alt","content":"WSL2 核心操作指南"}],["meta",{"property":"article:modified_time","content":"2025-10-01T07:21:10.000Z"}]]},"readingTime":{"minutes":3.74,"words":1123},"git":{"createdTime":1759223056000,"updatedTime":1759303270000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":3,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"autoDesc":true,"filePathRelative":"blog/technology/Operate_WSL2.md","headers":[],"categoryList":[{"id":"126ac9","sort":10000,"name":"blog"},{"id":"750eb7","sort":10003,"name":"technology"}]}');export{r as comp,c as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as t,c as a,a as r,o as i}from"./app-Dqab9jXZ.js";const n={};function l(o,e){return i(),a("div",null,[...e[0]||(e[0]=[r('<p>这里是我在学习C++编程语言过程中记录的学习心得、基础知识和实战经验。通过整理这些笔记,希望能够帮助自己和他人更好地掌握C++这门强大的编程语言。</p><h2 id="学习路径" tabindex="-1"><a class="header-anchor" href="#学习路径"><span>学习路径</span></a></h2><p>C++是一门复杂而强大的编程语言,学习路径建议如下:</p><ol><li><strong>基础语法</strong> - 掌握C++的基本语法和编程概念</li><li><strong>面向对象编程</strong> - 学习C++的类、继承、多态等OOP特性</li><li><strong>STL标准库</strong> - 熟悉常用的容器和算法</li><li><strong>高级特性</strong> - 模板、异常处理、智能指针等</li><li><strong>实战项目</strong> - 通过实际项目巩固所学知识</li></ol><h2 id="笔记分类" tabindex="-1"><a class="header-anchor" href="#笔记分类"><span>笔记分类</span></a></h2><h3 id="基础语法" tabindex="-1"><a class="header-anchor" href="#基础语法"><span>基础语法</span></a></h3><ul><li>数据类型</li><li>运算符和表达式</li><li>控制流语句</li><li>函数</li></ul><h3 id="面向对象编程" tabindex="-1"><a class="header-anchor" href="#面向对象编程"><span>面向对象编程</span></a></h3><ul><li>类和对象</li><li>继承与多态</li><li>封装与抽象</li><li>构造函数与析构函数</li></ul><h3 id="stl标准库" tabindex="-1"><a class="header-anchor" href="#stl标准库"><span>STL标准库</span></a></h3><ul><li>容器(vector, list, map等)</li><li>迭代器</li><li>算法</li><li>函数对象</li></ul><h2 id="学习资源推荐" tabindex="-1"><a class="header-anchor" href="#学习资源推荐"><span>学习资源推荐</span></a></h2><ul><li><a href="https://101su.ru/book/5442395/430bc1/c-primer-plus%E4%B8%AD%E6%96%87%E7%89%88%E7%AC%AC%E5%85%AD%E7%89%88.html" target="_blank" rel="noopener noreferrer">C++ Primer Plus:中文版(第六版)</a> - 很好的C++入门教材</li></ul><p>开始你的C++学习之旅吧!坚持学习,你会发现C++的魅力所在!</p>',14)])])}const p=t(n,[["render",l]]),c=JSON.parse('{"path":"/programming/cplusplus/","title":"C++ 学习笔记","lang":"zh-CN","frontmatter":{"title":"C++ 学习笔记","description":"记录C++编程语言的学习心得和基础知识","createTime":"2025/09/22 09:00:00","permalink":"/programming/cplusplus/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"C++ 学习笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-22T13:23:42.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/cplusplus/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"C++ 学习笔记"}],["meta",{"property":"og:description","content":"记录C++编程语言的学习心得和基础知识"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-22T13:23:42.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-22T13:23:42.000Z"}]]},"readingTime":{"minutes":1.19,"words":356},"git":{"createdTime":1758547422000,"updatedTime":1758547422000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"}]},"filePathRelative":"notes/programming/c++/README.md","headers":[]}');export{p as comp,c as data};
|
||||
import{_ as t,c as a,a as r,o as i}from"./app-COnnofor.js";const n={};function l(o,e){return i(),a("div",null,[...e[0]||(e[0]=[r('<p>这里是我在学习C++编程语言过程中记录的学习心得、基础知识和实战经验。通过整理这些笔记,希望能够帮助自己和他人更好地掌握C++这门强大的编程语言。</p><h2 id="学习路径" tabindex="-1"><a class="header-anchor" href="#学习路径"><span>学习路径</span></a></h2><p>C++是一门复杂而强大的编程语言,学习路径建议如下:</p><ol><li><strong>基础语法</strong> - 掌握C++的基本语法和编程概念</li><li><strong>面向对象编程</strong> - 学习C++的类、继承、多态等OOP特性</li><li><strong>STL标准库</strong> - 熟悉常用的容器和算法</li><li><strong>高级特性</strong> - 模板、异常处理、智能指针等</li><li><strong>实战项目</strong> - 通过实际项目巩固所学知识</li></ol><h2 id="笔记分类" tabindex="-1"><a class="header-anchor" href="#笔记分类"><span>笔记分类</span></a></h2><h3 id="基础语法" tabindex="-1"><a class="header-anchor" href="#基础语法"><span>基础语法</span></a></h3><ul><li>数据类型</li><li>运算符和表达式</li><li>控制流语句</li><li>函数</li></ul><h3 id="面向对象编程" tabindex="-1"><a class="header-anchor" href="#面向对象编程"><span>面向对象编程</span></a></h3><ul><li>类和对象</li><li>继承与多态</li><li>封装与抽象</li><li>构造函数与析构函数</li></ul><h3 id="stl标准库" tabindex="-1"><a class="header-anchor" href="#stl标准库"><span>STL标准库</span></a></h3><ul><li>容器(vector, list, map等)</li><li>迭代器</li><li>算法</li><li>函数对象</li></ul><h2 id="学习资源推荐" tabindex="-1"><a class="header-anchor" href="#学习资源推荐"><span>学习资源推荐</span></a></h2><ul><li><a href="https://101su.ru/book/5442395/430bc1/c-primer-plus%E4%B8%AD%E6%96%87%E7%89%88%E7%AC%AC%E5%85%AD%E7%89%88.html" target="_blank" rel="noopener noreferrer">C++ Primer Plus:中文版(第六版)</a> - 很好的C++入门教材</li></ul><p>开始你的C++学习之旅吧!坚持学习,你会发现C++的魅力所在!</p>',14)])])}const p=t(n,[["render",l]]),c=JSON.parse('{"path":"/programming/cplusplus/","title":"C++ 学习笔记","lang":"zh-CN","frontmatter":{"title":"C++ 学习笔记","description":"记录C++编程语言的学习心得和基础知识","createTime":"2025/09/22 09:00:00","permalink":"/programming/cplusplus/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"C++ 学习笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-09-22T13:23:42.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/cplusplus/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"C++ 学习笔记"}],["meta",{"property":"og:description","content":"记录C++编程语言的学习心得和基础知识"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-09-22T13:23:42.000Z"}],["meta",{"property":"article:modified_time","content":"2025-09-22T13:23:42.000Z"}]]},"readingTime":{"minutes":1.19,"words":356},"git":{"createdTime":1758547422000,"updatedTime":1758547422000,"contributors":[{"name":"simeng","username":"","email":"simeng@simengweb.com","commits":1,"avatar":"https://gravatar.com/avatar/0d358b828946f71c617d26b8c881331619abfbbab3bf694ea3f0eb3909110815?d=retro"}]},"filePathRelative":"notes/programming/c++/README.md","headers":[]}');export{p as comp,c as data};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./app-Dqab9jXZ.js";const r={};function n(o,c){return a(),t("div")}const s=e(r,[["render",n]]),l=JSON.parse('{"path":"/blog/categories/","title":"分类","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"分类","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"blog-categories"}');export{s as comp,l as data};
|
||||
import{_ as e,c as t,o as a}from"./app-COnnofor.js";const r={};function n(o,c){return a(),t("div")}const s=e(r,[["render",n]]),l=JSON.parse('{"path":"/blog/categories/","title":"分类","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"分类","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"blog-categories"}');export{s as comp,l as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as t,c as e,o as a}from"./app-Dqab9jXZ.js";const n={};function r(o,c){return a(),e("div")}const l=t(n,[["render",r]]),i=JSON.parse('{"path":"/blog/tags/","title":"标签","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"标签","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"blog-tags"}');export{l as comp,i as data};
|
||||
import{_ as t,c as e,o as a}from"./app-COnnofor.js";const n={};function r(o,c){return a(),e("div")}const l=t(n,[["render",r]]),i=JSON.parse('{"path":"/blog/tags/","title":"标签","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"标签","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"blog-tags"}');export{l as comp,i as data};
|
||||
1
assets/index.html-Dn2zM_4K.js
Normal file
1
assets/index.html-Dn2zM_4K.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./app-Dqab9jXZ.js";const r={};function n(c,o){return a(),t("div")}const s=e(r,[["render",n]]),l=JSON.parse('{"path":"/blog/archives/","title":"归档","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"归档","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"blog-archives"}');export{s as comp,l as data};
|
||||
import{_ as e,c as t,o as a}from"./app-COnnofor.js";const r={};function n(c,o){return a(),t("div")}const s=e(r,[["render",n]]),l=JSON.parse('{"path":"/blog/archives/","title":"归档","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"归档","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"blog-archives"}');export{s as comp,l as data};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as t,c as r,a as k,e as d,w as a,r as p,o as g,b as i,d as s}from"./app-Dqab9jXZ.js";const A={};function y(D,l){const e=p("CodeTabs");return g(),r("div",null,[l[8]||(l[8]=k('<h2 id="节点的基础概念" tabindex="-1"><a class="header-anchor" href="#节点的基础概念"><span>节点的基础概念</span></a></h2><p>FISCO BCOS 引入了<a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/design/security_control/node_management.html#id6" target="_blank" rel="noopener noreferrer">游离节点、观察者节点和共识节点</a>,这三种节点类型可以通过控制台互相转换。</p><p>组员:</p><ul><li>共识节点:参与共识的节点,拥有群组的所有数据(搭链时默认都生成共识节点)。</li><li>观察者节点:不参与共识,但能实时同步链上数据的节点。</li></ul><p>非组员:</p><ul><li>游离节点:已启动,等待加入群组的节点。处在一种暂时的节点状态,不能获取链上的数据。</li></ul><h2 id="节点配置文件详解" tabindex="-1"><a class="header-anchor" href="#节点配置文件详解"><span>节点配置文件详解</span></a></h2><p>节点搭建完成之后会有<code>config.ini</code>、<code>conf/group.%group_id.genesis</code>、<code>conf/group.%group_id.ini</code>、<code>node.nodeid</code> 等配置文件</p>',8)),d(e,{id:"37",data:[{id:"config.ini"},{id:"group.1.genesis"},{id:"group.1.ini"},{id:"node.nodeid"}]},{title0:a(({value:h,isActive:n})=>[...l[0]||(l[0]=[i("span",null,"config.ini",-1)])]),title1:a(({value:h,isActive:n})=>[...l[1]||(l[1]=[i("span",null,"group.1.genesis",-1)])]),title2:a(({value:h,isActive:n})=>[...l[2]||(l[2]=[i("span",null,"group.1.ini",-1)])]),title3:a(({value:h,isActive:n})=>[...l[3]||(l[3]=[i("span",null,"node.nodeid",-1)])]),tab0:a(({value:h,isActive:n})=>[...l[4]||(l[4]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash",style:{"--shiki-light":"#393a34","--shiki-dark":"#dbd7caee","--shiki-light-bg":"#ffffff","--shiki-dark-bg":"#121212"}},[i("pre",{class:"shiki shiki-themes vitesse-light vitesse-dark vp-code"},[i("code",{class:"language-bash"},[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#A0ADA0","--shiki-dark":"#758575DD"}},"# RPC (Remote Proceduce Call 远程过程调用)")]),s(`
|
||||
import{_ as t,c as r,a as k,e as d,w as a,r as p,o as g,b as i,d as s}from"./app-COnnofor.js";const A={};function y(D,l){const e=p("CodeTabs");return g(),r("div",null,[l[8]||(l[8]=k('<h2 id="节点的基础概念" tabindex="-1"><a class="header-anchor" href="#节点的基础概念"><span>节点的基础概念</span></a></h2><p>FISCO BCOS 引入了<a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/design/security_control/node_management.html#id6" target="_blank" rel="noopener noreferrer">游离节点、观察者节点和共识节点</a>,这三种节点类型可以通过控制台互相转换。</p><p>组员:</p><ul><li>共识节点:参与共识的节点,拥有群组的所有数据(搭链时默认都生成共识节点)。</li><li>观察者节点:不参与共识,但能实时同步链上数据的节点。</li></ul><p>非组员:</p><ul><li>游离节点:已启动,等待加入群组的节点。处在一种暂时的节点状态,不能获取链上的数据。</li></ul><h2 id="节点配置文件详解" tabindex="-1"><a class="header-anchor" href="#节点配置文件详解"><span>节点配置文件详解</span></a></h2><p>节点搭建完成之后会有<code>config.ini</code>、<code>conf/group.%group_id.genesis</code>、<code>conf/group.%group_id.ini</code>、<code>node.nodeid</code> 等配置文件</p>',8)),d(e,{id:"37",data:[{id:"config.ini"},{id:"group.1.genesis"},{id:"group.1.ini"},{id:"node.nodeid"}]},{title0:a(({value:h,isActive:n})=>[...l[0]||(l[0]=[i("span",null,"config.ini",-1)])]),title1:a(({value:h,isActive:n})=>[...l[1]||(l[1]=[i("span",null,"group.1.genesis",-1)])]),title2:a(({value:h,isActive:n})=>[...l[2]||(l[2]=[i("span",null,"group.1.ini",-1)])]),title3:a(({value:h,isActive:n})=>[...l[3]||(l[3]=[i("span",null,"node.nodeid",-1)])]),tab0:a(({value:h,isActive:n})=>[...l[4]||(l[4]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash",style:{"--shiki-light":"#393a34","--shiki-dark":"#dbd7caee","--shiki-light-bg":"#ffffff","--shiki-dark-bg":"#121212"}},[i("pre",{class:"shiki shiki-themes vitesse-light vitesse-dark vp-code"},[i("code",{class:"language-bash"},[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#A0ADA0","--shiki-dark":"#758575DD"}},"# RPC (Remote Proceduce Call 远程过程调用)")]),s(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#A0ADA0","--shiki-dark":"#758575DD"}},"# 用于配置节点对外提供的 RPC 服务,包括 JSON-RPC ( 用于 Web3.js,控制台等 )和 Channel 通信( 用于 SDK,Java 应用等 )")]),s(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"["),i("span",{style:{"--shiki-light":"#393A34","--shiki-dark":"#DBD7CAEE"}},"rpc"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"]")]),s(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#A0ADA0","--shiki-dark":"#758575DD"}}," # 允许外部访问")]),s(`
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as r,a as o,o as i}from"./app-Dqab9jXZ.js";const a={};function n(p,e){return i(),r("div",null,[...e[0]||(e[0]=[o('<h2 id="solidity-智能合约概述" tabindex="-1"><a class="header-anchor" href="#solidity-智能合约概述"><span>Solidity 智能合约概述</span></a></h2><p>Solidity 是一种用于编写智能合约的静态类型编程语言,它运行在以太坊虚拟机(EVM)上。</p><h2 id="推荐的资料" tabindex="-1"><a class="header-anchor" href="#推荐的资料"><span>推荐的资料</span></a></h2><p>推荐的编辑器</p><p>Remix IDE:<a href="https://remix.ethereum.org/" target="_blank" rel="noopener noreferrer">https://remix.ethereum.org/</a></p><p>有在线版本,也可以下载之后使用,而且可以通过 Docker 部署,很方便</p><p>Solidity 学习资料:</p><ul><li><a href="https://docs.soliditylang.org/zh-cn/latest/index.html" target="_blank" rel="noopener noreferrer">Solidity 官方文档</a></li><li><a href="https://cryptozombies.io/zh/course" target="_blank" rel="noopener noreferrer">cryptozombies</a></li></ul>',8)])])}const m=t(a,[["render",n]]),c=JSON.parse('{"path":"/programming/solidity/","title":"Solidity 学习笔记","lang":"zh-CN","frontmatter":{"title":"Solidity 学习笔记","description":"记录Solidity智能合约开发的学习心得和基础知识","createTime":"2025/09/28 19:39:00","permalink":"/programming/solidity/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Solidity 学习笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-10T02:54:35.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/solidity/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Solidity 学习笔记"}],["meta",{"property":"og:description","content":"记录Solidity智能合约开发的学习心得和基础知识"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-10T02:54:35.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-10T02:54:35.000Z"}]]},"readingTime":{"minutes":0.44,"words":132},"git":{"createdTime":1759059454000,"updatedTime":1760064875000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":2,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"},{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"filePathRelative":"notes/programming/solidity/README.md","headers":[]}');export{m as comp,c as data};
|
||||
import{_ as t,c as r,a as o,o as i}from"./app-COnnofor.js";const a={};function n(p,e){return i(),r("div",null,[...e[0]||(e[0]=[o('<h2 id="solidity-智能合约概述" tabindex="-1"><a class="header-anchor" href="#solidity-智能合约概述"><span>Solidity 智能合约概述</span></a></h2><p>Solidity 是一种用于编写智能合约的静态类型编程语言,它运行在以太坊虚拟机(EVM)上。</p><h2 id="推荐的资料" tabindex="-1"><a class="header-anchor" href="#推荐的资料"><span>推荐的资料</span></a></h2><p>推荐的编辑器</p><p>Remix IDE:<a href="https://remix.ethereum.org/" target="_blank" rel="noopener noreferrer">https://remix.ethereum.org/</a></p><p>有在线版本,也可以下载之后使用,而且可以通过 Docker 部署,很方便</p><p>Solidity 学习资料:</p><ul><li><a href="https://docs.soliditylang.org/zh-cn/latest/index.html" target="_blank" rel="noopener noreferrer">Solidity 官方文档</a></li><li><a href="https://cryptozombies.io/zh/course" target="_blank" rel="noopener noreferrer">cryptozombies</a></li></ul>',8)])])}const m=t(a,[["render",n]]),c=JSON.parse('{"path":"/programming/solidity/","title":"Solidity 学习笔记","lang":"zh-CN","frontmatter":{"title":"Solidity 学习笔记","description":"记录Solidity智能合约开发的学习心得和基础知识","createTime":"2025/09/28 19:39:00","permalink":"/programming/solidity/","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Solidity 学习笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-10T02:54:35.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/programming/solidity/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Solidity 学习笔记"}],["meta",{"property":"og:description","content":"记录Solidity智能合约开发的学习心得和基础知识"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-10T02:54:35.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-10T02:54:35.000Z"}]]},"readingTime":{"minutes":0.44,"words":132},"git":{"createdTime":1759059454000,"updatedTime":1760064875000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":2,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"},{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"filePathRelative":"notes/programming/solidity/README.md","headers":[]}');export{m as comp,c as data};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as e,a,o as n}from"./app-Dqab9jXZ.js";const t={};function l(h,s){return n(),e("div",null,[...s[0]||(s[0]=[a(`<h2 id="console-控制台是什么" tabindex="-1"><a class="header-anchor" href="#console-控制台是什么"><span>Console 控制台是什么?</span></a></h2><p>Console 是 FISCO BCOS 官方提供的一个交互式命令行工具,用于直接与区块链节点交互。 主要功能包括:</p><ul><li>查询区块链状态(如区块链高度、节点列表、群组信息)</li><li>部署和调用智能合约(支持 Solidity)</li><li>管理节点(如查看节点共识状态、动态添加节点)</li><li>调试交易和查看回执</li></ul><h2 id="部署-console-控制台" tabindex="-1"><a class="header-anchor" href="#部署-console-控制台"><span>部署 Console 控制台</span></a></h2><p>获取下载脚本:<code>wget https://gitee.com/FISCO-BCOS/console/releases/download/v2.8.0/console.tar.gz</code> 解压控制台安装包:<code>tar -zxf console.tar.gz console/</code></p><p>复制配置文件:<code>cp conf/config-example.toml conf/config.toml</code> 编辑配置文件:<code>vim conf/config.toml</code></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark has-highlighted vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># enSslKey = "conf/gm/gmensdk.key" # GM ssl cert file path</span></span>
|
||||
import{_ as i,c as e,a,o as n}from"./app-COnnofor.js";const t={};function l(h,s){return n(),e("div",null,[...s[0]||(s[0]=[a(`<h2 id="console-控制台是什么" tabindex="-1"><a class="header-anchor" href="#console-控制台是什么"><span>Console 控制台是什么?</span></a></h2><p>Console 是 FISCO BCOS 官方提供的一个交互式命令行工具,用于直接与区块链节点交互。 主要功能包括:</p><ul><li>查询区块链状态(如区块链高度、节点列表、群组信息)</li><li>部署和调用智能合约(支持 Solidity)</li><li>管理节点(如查看节点共识状态、动态添加节点)</li><li>调试交易和查看回执</li></ul><h2 id="部署-console-控制台" tabindex="-1"><a class="header-anchor" href="#部署-console-控制台"><span>部署 Console 控制台</span></a></h2><p>获取下载脚本:<code>wget https://gitee.com/FISCO-BCOS/console/releases/download/v2.8.0/console.tar.gz</code> 解压控制台安装包:<code>tar -zxf console.tar.gz console/</code></p><p>复制配置文件:<code>cp conf/config-example.toml conf/config.toml</code> 编辑配置文件:<code>vim conf/config.toml</code></p><div class="language-bash line-numbers-mode" data-highlighter="shiki" data-ext="bash" style="--shiki-light:#393a34;--shiki-dark:#dbd7caee;--shiki-light-bg:#ffffff;--shiki-dark-bg:#121212;"><pre class="shiki shiki-themes vitesse-light vitesse-dark has-highlighted vp-code"><code class="language-bash"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># enSslKey = "conf/gm/gmensdk.key" # GM ssl cert file path</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # default load the GM SSL encryption privateKey from \${certPath}/gm/gmensdk.key</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">network</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span></span>
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as a,a as o,o as n}from"./app-Dqab9jXZ.js";const r={};function p(c,e){return n(),a("div",null,[...e[0]||(e[0]=[o('<h2 id="区块链简介" tabindex="-1"><a class="header-anchor" href="#区块链简介"><span>区块链简介</span></a></h2><p>区块链就像是一本神奇的共享账本哦~它由许许多多的"区块"连接而成,每个区块里都记录着各种交易信息~最特别的是,这本账本不是由某一个人或组织保管的,而是由网络里的所有人一起维护呢~</p><p>想象一下,当有新的交易发生时,网络里的每个人都会收到一份拷贝,大家一起验证这份交易的真实性,然后把它添加到账本里~这样一来,就没有人能够偷偷篡改账本啦~是不是很神奇呢~♪</p><p>区块链还有一个超棒的特点哦~它不需要中间人的帮忙,就能让互不相识的人们安全地进行交易~就像魔法一样,让信任在数字世界里自然生长~</p><h2 id="区块链的理论基础" tabindex="-1"><a class="header-anchor" href="#区块链的理论基础"><span>区块链的理论基础</span></a></h2><p>呜呜~在网上找关于完整区块链原理的资料好难呀,现在就只看到一些比较基础的课程和书籍呢。</p><p>嘿嘿,在B站的话,发现有一个课程超棒哒,就是肖臻老师的<a href="https://www.bilibili.com/video/BV1Vt411X7JF/" target="_blank" rel="noopener noreferrer">《区块链技术与应用》</a>呢!</p><p>在Youtube上也可以去看看<a href="https://www.youtube.com/@BinanceAcademy" target="_blank" rel="noopener noreferrer">Binance Academy</a>的视频哟,感觉也很不错哒!</p><p>至于书籍嘛,目前还没找到特别好的,不过没关系,会继续努力找找哒!如果有好的课程的话,可以评论留言分享一下哦~</p><h2 id="区块链的运维实践" tabindex="-1"><a class="header-anchor" href="#区块链的运维实践"><span>区块链的运维实践</span></a></h2><p>嘿嘿~区块链的搭建呀,主要就是通过 <a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/introduction.html" target="_blank" rel="noopener noreferrer">FISCO BCOS</a> 来实现哒!</p><p>它呢,是一个开源的、基于Java的区块链平台哟~还支持智能合约的部署和执行呢,超厉害的!</p>',12)])])}const s=t(r,[["render",p]]),m=JSON.parse('{"path":"/ops/blockchain/","title":"区块链运维指南","lang":"zh-CN","frontmatter":{"title":"区块链运维指南","createTime":"2025/09/28 07:54:17","permalink":"/ops/blockchain/","description":"区块链简介 区块链就像是一本神奇的共享账本哦~它由许许多多的\\"区块\\"连接而成,每个区块里都记录着各种交易信息~最特别的是,这本账本不是由某一个人或组织保管的,而是由网络里的所有人一起维护呢~ 想象一下,当有新的交易发生时,网络里的每个人都会收到一份拷贝,大家一起验证这份交易的真实性,然后把它添加到账本里~这样一来,就没有人能够偷偷篡改账本啦~是不是很神...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"区块链运维指南\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-02T07:56:20.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/ops/blockchain/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"区块链运维指南"}],["meta",{"property":"og:description","content":"区块链简介 区块链就像是一本神奇的共享账本哦~它由许许多多的\\"区块\\"连接而成,每个区块里都记录着各种交易信息~最特别的是,这本账本不是由某一个人或组织保管的,而是由网络里的所有人一起维护呢~ 想象一下,当有新的交易发生时,网络里的每个人都会收到一份拷贝,大家一起验证这份交易的真实性,然后把它添加到账本里~这样一来,就没有人能够偷偷篡改账本啦~是不是很神..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-02T07:56:20.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-02T07:56:20.000Z"}]]},"readingTime":{"minutes":1.54,"words":461},"git":{"createdTime":1759061001000,"updatedTime":1759391780000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":3,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"autoDesc":true,"filePathRelative":"notes/ops/blockchain/README.md","headers":[]}');export{s as comp,m as data};
|
||||
import{_ as t,c as a,a as o,o as n}from"./app-COnnofor.js";const r={};function p(c,e){return n(),a("div",null,[...e[0]||(e[0]=[o('<h2 id="区块链简介" tabindex="-1"><a class="header-anchor" href="#区块链简介"><span>区块链简介</span></a></h2><p>区块链就像是一本神奇的共享账本哦~它由许许多多的"区块"连接而成,每个区块里都记录着各种交易信息~最特别的是,这本账本不是由某一个人或组织保管的,而是由网络里的所有人一起维护呢~</p><p>想象一下,当有新的交易发生时,网络里的每个人都会收到一份拷贝,大家一起验证这份交易的真实性,然后把它添加到账本里~这样一来,就没有人能够偷偷篡改账本啦~是不是很神奇呢~♪</p><p>区块链还有一个超棒的特点哦~它不需要中间人的帮忙,就能让互不相识的人们安全地进行交易~就像魔法一样,让信任在数字世界里自然生长~</p><h2 id="区块链的理论基础" tabindex="-1"><a class="header-anchor" href="#区块链的理论基础"><span>区块链的理论基础</span></a></h2><p>呜呜~在网上找关于完整区块链原理的资料好难呀,现在就只看到一些比较基础的课程和书籍呢。</p><p>嘿嘿,在B站的话,发现有一个课程超棒哒,就是肖臻老师的<a href="https://www.bilibili.com/video/BV1Vt411X7JF/" target="_blank" rel="noopener noreferrer">《区块链技术与应用》</a>呢!</p><p>在Youtube上也可以去看看<a href="https://www.youtube.com/@BinanceAcademy" target="_blank" rel="noopener noreferrer">Binance Academy</a>的视频哟,感觉也很不错哒!</p><p>至于书籍嘛,目前还没找到特别好的,不过没关系,会继续努力找找哒!如果有好的课程的话,可以评论留言分享一下哦~</p><h2 id="区块链的运维实践" tabindex="-1"><a class="header-anchor" href="#区块链的运维实践"><span>区块链的运维实践</span></a></h2><p>嘿嘿~区块链的搭建呀,主要就是通过 <a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/introduction.html" target="_blank" rel="noopener noreferrer">FISCO BCOS</a> 来实现哒!</p><p>它呢,是一个开源的、基于Java的区块链平台哟~还支持智能合约的部署和执行呢,超厉害的!</p>',12)])])}const s=t(r,[["render",p]]),m=JSON.parse('{"path":"/ops/blockchain/","title":"区块链运维指南","lang":"zh-CN","frontmatter":{"title":"区块链运维指南","createTime":"2025/09/28 07:54:17","permalink":"/ops/blockchain/","description":"区块链简介 区块链就像是一本神奇的共享账本哦~它由许许多多的\\"区块\\"连接而成,每个区块里都记录着各种交易信息~最特别的是,这本账本不是由某一个人或组织保管的,而是由网络里的所有人一起维护呢~ 想象一下,当有新的交易发生时,网络里的每个人都会收到一份拷贝,大家一起验证这份交易的真实性,然后把它添加到账本里~这样一来,就没有人能够偷偷篡改账本啦~是不是很神...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"区块链运维指南\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-02T07:56:20.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/ops/blockchain/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"区块链运维指南"}],["meta",{"property":"og:description","content":"区块链简介 区块链就像是一本神奇的共享账本哦~它由许许多多的\\"区块\\"连接而成,每个区块里都记录着各种交易信息~最特别的是,这本账本不是由某一个人或组织保管的,而是由网络里的所有人一起维护呢~ 想象一下,当有新的交易发生时,网络里的每个人都会收到一份拷贝,大家一起验证这份交易的真实性,然后把它添加到账本里~这样一来,就没有人能够偷偷篡改账本啦~是不是很神..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-02T07:56:20.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-02T07:56:20.000Z"}]]},"readingTime":{"minutes":1.54,"words":461},"git":{"createdTime":1759061001000,"updatedTime":1759391780000,"contributors":[{"name":"si-meng-spec","username":"si-meng-spec","email":"simeng@simengweb.com","commits":3,"avatar":"https://avatars.githubusercontent.com/si-meng-spec?v=4","url":"https://github.com/si-meng-spec"}]},"autoDesc":true,"filePathRelative":"notes/ops/blockchain/README.md","headers":[]}');export{s as comp,m as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as a,a as i,o as c}from"./app-Dqab9jXZ.js";const s={};function n(o,e){return c(),a("div",null,[...e[0]||(e[0]=[i('<p>这是一个英语学习笔记的总览页。下面是目录与分区入口:</p><h2 id="目录" tabindex="-1"><a class="header-anchor" href="#目录"><span>目录</span></a></h2><ul><li>学习环境与工具 → <code>/subject/english/basis/</code></li><li>词汇与记忆 → <code>/subject/english/vocabulary/</code></li><li>语法与句法 → <code>/subject/english/grammar/</code></li><li>听力与口语 → <code>/subject/english/listening-speaking/</code></li><li>阅读 → <code>/subject/english/reading-writing/</code></li><li>考试与备考(含四级) → <code>/subject/english/exam/cet-4/</code></li><li>学习资源与工具 → <code>/subject/english/resources/</code></li><li>写译 → <code>/subject/english/writing-translation/</code></li></ul><p>你可以从以上入口进入对应的专题,随时扩展各章节内容。</p>',4)])])}const l=t(s,[["render",n]]),d=JSON.parse('{"path":"/subject/english/","title":"英语学习笔记","lang":"zh-CN","frontmatter":{"title":"英语学习笔记","createTime":"2025/10/20 16:34:20","permalink":"/subject/english/","description":"这是一个英语学习笔记的总览页。下面是目录与分区入口: 目录 学习环境与工具 → /subject/english/basis/ 词汇与记忆 → /subject/english/vocabulary/ 语法与句法 → /subject/english/grammar/ 听力与口语 → /subject/english/listening-speakin...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"英语学习笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-22T03:13:21.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"英语学习笔记"}],["meta",{"property":"og:description","content":"这是一个英语学习笔记的总览页。下面是目录与分区入口: 目录 学习环境与工具 → /subject/english/basis/ 词汇与记忆 → /subject/english/vocabulary/ 语法与句法 → /subject/english/grammar/ 听力与口语 → /subject/english/listening-speakin..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-22T03:13:21.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-22T03:13:21.000Z"}]]},"readingTime":{"minutes":0.41,"words":123},"git":{"createdTime":1760961315000,"updatedTime":1761102801000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"},{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":1,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/README.md","headers":[]}');export{l as comp,d as data};
|
||||
import{_ as t,c as a,a as i,o as c}from"./app-COnnofor.js";const s={};function n(o,e){return c(),a("div",null,[...e[0]||(e[0]=[i('<p>这是一个英语学习笔记的总览页。下面是目录与分区入口:</p><h2 id="目录" tabindex="-1"><a class="header-anchor" href="#目录"><span>目录</span></a></h2><ul><li>学习环境与工具 → <code>/subject/english/basis/</code></li><li>词汇与记忆 → <code>/subject/english/vocabulary/</code></li><li>语法与句法 → <code>/subject/english/grammar/</code></li><li>听力与口语 → <code>/subject/english/listening-speaking/</code></li><li>阅读 → <code>/subject/english/reading-writing/</code></li><li>考试与备考(含四级) → <code>/subject/english/exam/cet-4/</code></li><li>学习资源与工具 → <code>/subject/english/resources/</code></li><li>写译 → <code>/subject/english/writing-translation/</code></li></ul><p>你可以从以上入口进入对应的专题,随时扩展各章节内容。</p>',4)])])}const l=t(s,[["render",n]]),d=JSON.parse('{"path":"/subject/english/","title":"英语学习笔记","lang":"zh-CN","frontmatter":{"title":"英语学习笔记","createTime":"2025/10/20 16:34:20","permalink":"/subject/english/","description":"这是一个英语学习笔记的总览页。下面是目录与分区入口: 目录 学习环境与工具 → /subject/english/basis/ 词汇与记忆 → /subject/english/vocabulary/ 语法与句法 → /subject/english/grammar/ 听力与口语 → /subject/english/listening-speakin...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"英语学习笔记\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-22T03:13:21.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"英语学习笔记"}],["meta",{"property":"og:description","content":"这是一个英语学习笔记的总览页。下面是目录与分区入口: 目录 学习环境与工具 → /subject/english/basis/ 词汇与记忆 → /subject/english/vocabulary/ 语法与句法 → /subject/english/grammar/ 听力与口语 → /subject/english/listening-speakin..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-22T03:13:21.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-22T03:13:21.000Z"}]]},"readingTime":{"minutes":0.41,"words":123},"git":{"createdTime":1760961315000,"updatedTime":1761102801000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"},{"name":"Kawaxxxsaki","username":"","email":"1111@123.com","commits":1,"avatar":"https://gravatar.com/avatar/b3cd57e776cc1b92ffa9800b35152c0ce7692893d12a14450061083fcacd34ce?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/README.md","headers":[]}');export{l as comp,d as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as a,b as e,o as n}from"./app-Dqab9jXZ.js";const c={};function r(i,t){return n(),a("div",null,[...t[0]||(t[0]=[e("ul",null,[e("li",null,"高频词与词根词缀"),e("li",null,"主题词汇(校园、科技、社会等)"),e("li",null,"间隔重复(SRS)与记忆曲线"),e("li",null,"固定搭配与语块(collocations & chunks)")],-1)])])}const s=o(c,[["render",r]]),m=JSON.parse('{"path":"/subject/english/vocabulary/","title":"词汇学习与记忆法","lang":"zh-CN","frontmatter":{"title":"词汇学习与记忆法","createTime":"2025/10/20 16:40:00","permalink":"/subject/english/vocabulary/","description":"高频词与词根词缀 主题词汇(校园、科技、社会等) 间隔重复(SRS)与记忆曲线 固定搭配与语块(collocations & chunks)","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"词汇学习与记忆法\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-20T11:55:15.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/vocabulary/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"词汇学习与记忆法"}],["meta",{"property":"og:description","content":"高频词与词根词缀 主题词汇(校园、科技、社会等) 间隔重复(SRS)与记忆曲线 固定搭配与语块(collocations & chunks)"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-20T11:55:15.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-20T11:55:15.000Z"}]]},"readingTime":{"minutes":0.21,"words":62},"git":{"createdTime":1760961315000,"updatedTime":1760961315000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/vocabulary/README.md","headers":[]}');export{s as comp,m as data};
|
||||
import{_ as o,c as a,b as e,o as n}from"./app-COnnofor.js";const c={};function r(i,t){return n(),a("div",null,[...t[0]||(t[0]=[e("ul",null,[e("li",null,"高频词与词根词缀"),e("li",null,"主题词汇(校园、科技、社会等)"),e("li",null,"间隔重复(SRS)与记忆曲线"),e("li",null,"固定搭配与语块(collocations & chunks)")],-1)])])}const s=o(c,[["render",r]]),m=JSON.parse('{"path":"/subject/english/vocabulary/","title":"词汇学习与记忆法","lang":"zh-CN","frontmatter":{"title":"词汇学习与记忆法","createTime":"2025/10/20 16:40:00","permalink":"/subject/english/vocabulary/","description":"高频词与词根词缀 主题词汇(校园、科技、社会等) 间隔重复(SRS)与记忆曲线 固定搭配与语块(collocations & chunks)","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"词汇学习与记忆法\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-20T11:55:15.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://notes.simengweb.com/subject/english/vocabulary/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"词汇学习与记忆法"}],["meta",{"property":"og:description","content":"高频词与词根词缀 主题词汇(校园、科技、社会等) 间隔重复(SRS)与记忆曲线 固定搭配与语块(collocations & chunks)"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-20T11:55:15.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-20T11:55:15.000Z"}]]},"readingTime":{"minutes":0.21,"words":62},"git":{"createdTime":1760961315000,"updatedTime":1760961315000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/vocabulary/README.md","headers":[]}');export{s as comp,m as data};
|
||||
@@ -1,2 +1,2 @@
|
||||
import{p as o}from"./treemap-KMMF4GRG-7ORZ52ND-DhI38Nao.js";import{m as e,p as s,aN as n,W as p,aO as d}from"./mermaid.esm.min-DAbLg_2m.js";import"./chunk-OMTJKCYW-G6Hf23Oh.js";import"./app-Dqab9jXZ.js";var m={parse:e(async r=>{let a=await o("info",r);s.debug(a)},"parse")},g={version:d.version+""},v=e(()=>g.version,"getVersion"),f={getVersion:v},l=e((r,a,i)=>{s.debug(`rendering info diagram
|
||||
import{p as o}from"./treemap-KMMF4GRG-7ORZ52ND-hp-dLOEF.js";import{m as e,p as s,aN as n,W as p,aO as d}from"./mermaid.esm.min-C3PPQ_C2.js";import"./chunk-OMTJKCYW-icim_91v.js";import"./app-COnnofor.js";var m={parse:e(async r=>{let a=await o("info",r);s.debug(a)},"parse")},g={version:d.version+""},v=e(()=>g.version,"getVersion"),f={getVersion:v},l=e((r,a,i)=>{s.debug(`rendering info diagram
|
||||
`+r);let t=n(a);p(t,100,400,!0),t.append("g").append("text").attr("x",100).attr("y",40).attr("class","version").attr("font-size",32).style("text-anchor","middle").text(`v${i}`)},"draw"),x={draw:l},w={parser:m,db:f,renderer:x};export{w as diagram};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{g as mt,h as ot,y as xt,x as kt}from"./chunk-WONJCSFZ-Bl0w6VB5.js";import{o as bt}from"./chunk-ZZTKAOFA-BbIdtWS5.js";import{m as a,$ as _t,G as vt,U as wt,H as $t,e as St,j as Mt,a as L,i as Y,W as Et,N as Tt,aQ as et}from"./mermaid.esm.min-DAbLg_2m.js";import"./app-Dqab9jXZ.js";var Z=(function(){var t=a(function(y,i,r,u){for(r=r||{},u=y.length;u--;r[y[u]]=i);return r},"o"),e=[6,8,10,11,12,14,16,17,18],s=[1,9],l=[1,10],n=[1,11],c=[1,12],d=[1,13],h=[1,14],f={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:a(function(y,i,r,u,p,o,x){var k=o.length-1;switch(p){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 13:u.addTask(o[k-1],o[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:s,12:l,14:n,16:c,17:d,18:h},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:s,12:l,14:n,16:c,17:d,18:h},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:a(function(y,i){if(i.recoverable)this.trace(y);else{var r=new Error(y);throw r.hash=i,r}},"parseError"),parse:a(function(y){var i=this,r=[0],u=[],p=[null],o=[],x=this.table,k="",C=0,P=0,pt=0,yt=2,J=1,dt=o.slice.call(arguments,1),b=Object.create(this.lexer),A={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(A.yy[z]=this.yy[z]);b.setInput(y,A.yy),A.yy.lexer=b,A.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var q=b.yylloc;o.push(q);var ft=b.options&&b.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function gt(v){r.length=r.length-2*v,p.length=p.length-v,o.length=o.length-v}a(gt,"popStack");function K(){var v;return v=u.pop()||b.lex()||J,typeof v!="number"&&(v instanceof Array&&(u=v,v=u.pop()),v=i.symbols_[v]||v),v}a(K,"lex");for(var _,G,I,w,Zt,U,j={},V,M,tt,F;;){if(I=r[r.length-1],this.defaultActions[I]?w=this.defaultActions[I]:((_===null||typeof _>"u")&&(_=K()),w=x[I]&&x[I][_]),typeof w>"u"||!w.length||!w[0]){var W="";F=[];for(V in x[I])this.terminals_[V]&&V>yt&&F.push("'"+this.terminals_[V]+"'");b.showPosition?W="Parse error on line "+(C+1)+`:
|
||||
import{g as mt,h as ot,y as xt,x as kt}from"./chunk-WONJCSFZ-DKxzR-8d.js";import{o as bt}from"./chunk-ZZTKAOFA-wdOG834u.js";import{m as a,$ as _t,G as vt,U as wt,H as $t,e as St,j as Mt,a as L,i as Y,W as Et,N as Tt,aQ as et}from"./mermaid.esm.min-C3PPQ_C2.js";import"./app-COnnofor.js";var Z=(function(){var t=a(function(y,i,r,u){for(r=r||{},u=y.length;u--;r[y[u]]=i);return r},"o"),e=[6,8,10,11,12,14,16,17,18],s=[1,9],l=[1,10],n=[1,11],c=[1,12],d=[1,13],h=[1,14],f={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,journey:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,taskName:18,taskData:19,$accept:0,$end:1},terminals_:{2:"error",4:"journey",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",18:"taskName",19:"taskData"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,2]],performAction:a(function(y,i,r,u,p,o,x){var k=o.length-1;switch(p){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:u.setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),u.setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),u.setAccDescription(this.$);break;case 12:u.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 13:u.addTask(o[k-1],o[k]),this.$="task";break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},t(e,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:s,12:l,14:n,16:c,17:d,18:h},t(e,[2,7],{1:[2,1]}),t(e,[2,3]),{9:15,11:s,12:l,14:n,16:c,17:d,18:h},t(e,[2,5]),t(e,[2,6]),t(e,[2,8]),{13:[1,16]},{15:[1,17]},t(e,[2,11]),t(e,[2,12]),{19:[1,18]},t(e,[2,4]),t(e,[2,9]),t(e,[2,10]),t(e,[2,13])],defaultActions:{},parseError:a(function(y,i){if(i.recoverable)this.trace(y);else{var r=new Error(y);throw r.hash=i,r}},"parseError"),parse:a(function(y){var i=this,r=[0],u=[],p=[null],o=[],x=this.table,k="",C=0,P=0,pt=0,yt=2,J=1,dt=o.slice.call(arguments,1),b=Object.create(this.lexer),A={yy:{}};for(var z in this.yy)Object.prototype.hasOwnProperty.call(this.yy,z)&&(A.yy[z]=this.yy[z]);b.setInput(y,A.yy),A.yy.lexer=b,A.yy.parser=this,typeof b.yylloc>"u"&&(b.yylloc={});var q=b.yylloc;o.push(q);var ft=b.options&&b.options.ranges;typeof A.yy.parseError=="function"?this.parseError=A.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function gt(v){r.length=r.length-2*v,p.length=p.length-v,o.length=o.length-v}a(gt,"popStack");function K(){var v;return v=u.pop()||b.lex()||J,typeof v!="number"&&(v instanceof Array&&(u=v,v=u.pop()),v=i.symbols_[v]||v),v}a(K,"lex");for(var _,G,I,w,Zt,U,j={},V,M,tt,F;;){if(I=r[r.length-1],this.defaultActions[I]?w=this.defaultActions[I]:((_===null||typeof _>"u")&&(_=K()),w=x[I]&&x[I][_]),typeof w>"u"||!w.length||!w[0]){var W="";F=[];for(V in x[I])this.terminals_[V]&&V>yt&&F.push("'"+this.terminals_[V]+"'");b.showPosition?W="Parse error on line "+(C+1)+`:
|
||||
`+b.showPosition()+`
|
||||
Expecting `+F.join(", ")+", got '"+(this.terminals_[_]||_)+"'":W="Parse error on line "+(C+1)+": Unexpected "+(_==J?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(W,{text:b.match,token:this.terminals_[_]||_,line:b.yylineno,loc:q,expected:F})}if(w[0]instanceof Array&&w.length>1)throw new Error("Parse Error: multiple actions possible at state: "+I+", token: "+_);switch(w[0]){case 1:r.push(_),p.push(b.yytext),o.push(b.yylloc),r.push(w[1]),_=null,G?(_=G,G=null):(P=b.yyleng,k=b.yytext,C=b.yylineno,q=b.yylloc,pt>0);break;case 2:if(M=this.productions_[w[1]][1],j.$=p[p.length-M],j._$={first_line:o[o.length-(M||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(M||1)].first_column,last_column:o[o.length-1].last_column},ft&&(j._$.range=[o[o.length-(M||1)].range[0],o[o.length-1].range[1]]),U=this.performAction.apply(j,[k,P,C,A.yy,w[1],p,o].concat(dt)),typeof U<"u")return U;M&&(r=r.slice(0,-1*M*2),p=p.slice(0,-1*M),o=o.slice(0,-1*M)),r.push(this.productions_[w[1]][0]),p.push(j.$),o.push(j._$),tt=x[r[r.length-2]][r[r.length-1]],r.push(tt);break;case 3:return!0}}return!0},"parse")},m=(function(){var y={EOF:1,parseError:a(function(i,r){if(this.yy.parser)this.yy.parser.parseError(i,r);else throw new Error(i)},"parseError"),setInput:a(function(i,r){return this.yy=r||this.yy||{},this._input=i,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var i=this._input[0];this.yytext+=i,this.yyleng++,this.offset++,this.match+=i,this.matched+=i;var r=i.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),i},"input"),unput:a(function(i){var r=i.length,u=i.split(/(?:\r\n?|\n)/g);this._input=i+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var p=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),u.length-1&&(this.yylineno-=u.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:u?(u.length===p.length?this.yylloc.first_column:0)+p[p.length-u.length].length-u[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
||||
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a(function(i){this.unput(this.match.slice(i))},"less"),pastInput:a(function(){var i=this.matched.substr(0,this.matched.length-this.match.length);return(i.length>20?"...":"")+i.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var i=this.match;return i.length<20&&(i+=this._input.substr(0,20-i.length)),(i.substr(0,20)+(i.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var i=this.pastInput(),r=new Array(i.length+1).join("-");return i+this.upcomingInput()+`
|
||||
@@ -1,4 +1,4 @@
|
||||
import{m as a,p as te,a as G,aN as fe,bd as me,be,bf as _e,b7 as ke,r as z,o as M,g as Ee,k as Se,b8 as Ne,b9 as le,ba as ce}from"./mermaid.esm.min-DAbLg_2m.js";import{o as xe}from"./chunk-ZZTKAOFA-BbIdtWS5.js";import"./app-Dqab9jXZ.js";var Z=(function(){var t=a(function(d,e,s,r){for(s=s||{},r=d.length;r--;s[d[r]]=e);return s},"o"),u=[1,4],p=[1,13],n=[1,12],g=[1,15],f=[1,16],k=[1,20],l=[1,19],D=[6,7,8],v=[1,26],h=[1,24],T=[1,25],S=[6,7,11],$=[1,31],O=[6,7,11,24],b=[1,6,13,16,17,20,23],A=[1,35],I=[1,36],w=[1,6,7,11,13,16,17,20,23],B=[1,38],H={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:a(function(d,e,s,r,c,i,E){var o=i.length-1;switch(c){case 6:case 7:return r;case 8:r.getLogger().trace("Stop NL ");break;case 9:r.getLogger().trace("Stop EOF ");break;case 11:r.getLogger().trace("Stop NL2 ");break;case 12:r.getLogger().trace("Stop EOF2 ");break;case 15:r.getLogger().info("Node: ",i[o-1].id),r.addNode(i[o-2].length,i[o-1].id,i[o-1].descr,i[o-1].type,i[o]);break;case 16:r.getLogger().info("Node: ",i[o].id),r.addNode(i[o-1].length,i[o].id,i[o].descr,i[o].type);break;case 17:r.getLogger().trace("Icon: ",i[o]),r.decorateNode({icon:i[o]});break;case 18:case 23:r.decorateNode({class:i[o]});break;case 19:r.getLogger().trace("SPACELIST");break;case 20:r.getLogger().trace("Node: ",i[o-1].id),r.addNode(0,i[o-1].id,i[o-1].descr,i[o-1].type,i[o]);break;case 21:r.getLogger().trace("Node: ",i[o].id),r.addNode(0,i[o].id,i[o].descr,i[o].type);break;case 22:r.decorateNode({icon:i[o]});break;case 27:r.getLogger().trace("node found ..",i[o-2]),this.$={id:i[o-1],descr:i[o-1],type:r.getType(i[o-2],i[o])};break;case 28:this.$={id:i[o],descr:i[o],type:0};break;case 29:r.getLogger().trace("node found ..",i[o-3]),this.$={id:i[o-3],descr:i[o-1],type:r.getType(i[o-2],i[o])};break;case 30:this.$=i[o-1]+i[o];break;case 31:this.$=i[o];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:u},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:u},{6:p,7:[1,10],9:9,12:11,13:n,14:14,16:g,17:f,18:17,19:18,20:k,23:l},t(D,[2,3]),{1:[2,2]},t(D,[2,4]),t(D,[2,5]),{1:[2,6],6:p,12:21,13:n,14:14,16:g,17:f,18:17,19:18,20:k,23:l},{6:p,9:22,12:11,13:n,14:14,16:g,17:f,18:17,19:18,20:k,23:l},{6:v,7:h,10:23,11:T},t(S,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:k,23:l}),t(S,[2,19]),t(S,[2,21],{15:30,24:$}),t(S,[2,22]),t(S,[2,23]),t(O,[2,25]),t(O,[2,26]),t(O,[2,28],{20:[1,32]}),{21:[1,33]},{6:v,7:h,10:34,11:T},{1:[2,7],6:p,12:21,13:n,14:14,16:g,17:f,18:17,19:18,20:k,23:l},t(b,[2,14],{7:A,11:I}),t(w,[2,8]),t(w,[2,9]),t(w,[2,10]),t(S,[2,16],{15:37,24:$}),t(S,[2,17]),t(S,[2,18]),t(S,[2,20],{24:B}),t(O,[2,31]),{21:[1,39]},{22:[1,40]},t(b,[2,13],{7:A,11:I}),t(w,[2,11]),t(w,[2,12]),t(S,[2,15],{24:B}),t(O,[2,30]),{22:[1,41]},t(O,[2,27]),t(O,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:a(function(d,e){if(e.recoverable)this.trace(d);else{var s=new Error(d);throw s.hash=e,s}},"parseError"),parse:a(function(d){var e=this,s=[0],r=[],c=[null],i=[],E=this.table,o="",W=0,ne=0,ue=0,ge=2,re=1,pe=i.slice.call(arguments,1),m=Object.create(this.lexer),R={yy:{}};for(var Q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Q)&&(R.yy[Q]=this.yy[Q]);m.setInput(d,R.yy),R.yy.lexer=m,R.yy.parser=this,typeof m.yylloc>"u"&&(m.yylloc={});var V=m.yylloc;i.push(V);var de=m.options&&m.options.ranges;typeof R.yy.parseError=="function"?this.parseError=R.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ye(N){s.length=s.length-2*N,c.length=c.length-N,i.length=i.length-N}a(ye,"popStack");function ae(){var N;return N=r.pop()||m.lex()||re,typeof N!="number"&&(N instanceof Array&&(r=N,N=r.pop()),N=e.symbols_[N]||N),N}a(ae,"lex");for(var _,X,P,x,We,q,F={},K,C,oe,j;;){if(P=s[s.length-1],this.defaultActions[P]?x=this.defaultActions[P]:((_===null||typeof _>"u")&&(_=ae()),x=E[P]&&E[P][_]),typeof x>"u"||!x.length||!x[0]){var Y="";j=[];for(K in E[P])this.terminals_[K]&&K>ge&&j.push("'"+this.terminals_[K]+"'");m.showPosition?Y="Parse error on line "+(W+1)+`:
|
||||
import{m as a,p as te,a as G,aN as fe,bd as me,be,bf as _e,b7 as ke,r as z,o as M,g as Ee,k as Se,b8 as Ne,b9 as le,ba as ce}from"./mermaid.esm.min-C3PPQ_C2.js";import{o as xe}from"./chunk-ZZTKAOFA-wdOG834u.js";import"./app-COnnofor.js";var Z=(function(){var t=a(function(d,e,s,r){for(s=s||{},r=d.length;r--;s[d[r]]=e);return s},"o"),u=[1,4],p=[1,13],n=[1,12],g=[1,15],f=[1,16],k=[1,20],l=[1,19],D=[6,7,8],v=[1,26],h=[1,24],T=[1,25],S=[6,7,11],$=[1,31],O=[6,7,11,24],b=[1,6,13,16,17,20,23],A=[1,35],I=[1,36],w=[1,6,7,11,13,16,17,20,23],B=[1,38],H={trace:a(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,KANBAN:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,shapeData:15,ICON:16,CLASS:17,nodeWithId:18,nodeWithoutId:19,NODE_DSTART:20,NODE_DESCR:21,NODE_DEND:22,NODE_ID:23,SHAPE_DATA:24,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"KANBAN",11:"EOF",13:"SPACELIST",16:"ICON",17:"CLASS",20:"NODE_DSTART",21:"NODE_DESCR",22:"NODE_DEND",23:"NODE_ID",24:"SHAPE_DATA"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,3],[12,2],[12,2],[12,2],[12,1],[12,2],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[19,3],[18,1],[18,4],[15,2],[15,1]],performAction:a(function(d,e,s,r,c,i,E){var o=i.length-1;switch(c){case 6:case 7:return r;case 8:r.getLogger().trace("Stop NL ");break;case 9:r.getLogger().trace("Stop EOF ");break;case 11:r.getLogger().trace("Stop NL2 ");break;case 12:r.getLogger().trace("Stop EOF2 ");break;case 15:r.getLogger().info("Node: ",i[o-1].id),r.addNode(i[o-2].length,i[o-1].id,i[o-1].descr,i[o-1].type,i[o]);break;case 16:r.getLogger().info("Node: ",i[o].id),r.addNode(i[o-1].length,i[o].id,i[o].descr,i[o].type);break;case 17:r.getLogger().trace("Icon: ",i[o]),r.decorateNode({icon:i[o]});break;case 18:case 23:r.decorateNode({class:i[o]});break;case 19:r.getLogger().trace("SPACELIST");break;case 20:r.getLogger().trace("Node: ",i[o-1].id),r.addNode(0,i[o-1].id,i[o-1].descr,i[o-1].type,i[o]);break;case 21:r.getLogger().trace("Node: ",i[o].id),r.addNode(0,i[o].id,i[o].descr,i[o].type);break;case 22:r.decorateNode({icon:i[o]});break;case 27:r.getLogger().trace("node found ..",i[o-2]),this.$={id:i[o-1],descr:i[o-1],type:r.getType(i[o-2],i[o])};break;case 28:this.$={id:i[o],descr:i[o],type:0};break;case 29:r.getLogger().trace("node found ..",i[o-3]),this.$={id:i[o-3],descr:i[o-1],type:r.getType(i[o-2],i[o])};break;case 30:this.$=i[o-1]+i[o];break;case 31:this.$=i[o];break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:u},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:u},{6:p,7:[1,10],9:9,12:11,13:n,14:14,16:g,17:f,18:17,19:18,20:k,23:l},t(D,[2,3]),{1:[2,2]},t(D,[2,4]),t(D,[2,5]),{1:[2,6],6:p,12:21,13:n,14:14,16:g,17:f,18:17,19:18,20:k,23:l},{6:p,9:22,12:11,13:n,14:14,16:g,17:f,18:17,19:18,20:k,23:l},{6:v,7:h,10:23,11:T},t(S,[2,24],{18:17,19:18,14:27,16:[1,28],17:[1,29],20:k,23:l}),t(S,[2,19]),t(S,[2,21],{15:30,24:$}),t(S,[2,22]),t(S,[2,23]),t(O,[2,25]),t(O,[2,26]),t(O,[2,28],{20:[1,32]}),{21:[1,33]},{6:v,7:h,10:34,11:T},{1:[2,7],6:p,12:21,13:n,14:14,16:g,17:f,18:17,19:18,20:k,23:l},t(b,[2,14],{7:A,11:I}),t(w,[2,8]),t(w,[2,9]),t(w,[2,10]),t(S,[2,16],{15:37,24:$}),t(S,[2,17]),t(S,[2,18]),t(S,[2,20],{24:B}),t(O,[2,31]),{21:[1,39]},{22:[1,40]},t(b,[2,13],{7:A,11:I}),t(w,[2,11]),t(w,[2,12]),t(S,[2,15],{24:B}),t(O,[2,30]),{22:[1,41]},t(O,[2,27]),t(O,[2,29])],defaultActions:{2:[2,1],6:[2,2]},parseError:a(function(d,e){if(e.recoverable)this.trace(d);else{var s=new Error(d);throw s.hash=e,s}},"parseError"),parse:a(function(d){var e=this,s=[0],r=[],c=[null],i=[],E=this.table,o="",W=0,ne=0,ue=0,ge=2,re=1,pe=i.slice.call(arguments,1),m=Object.create(this.lexer),R={yy:{}};for(var Q in this.yy)Object.prototype.hasOwnProperty.call(this.yy,Q)&&(R.yy[Q]=this.yy[Q]);m.setInput(d,R.yy),R.yy.lexer=m,R.yy.parser=this,typeof m.yylloc>"u"&&(m.yylloc={});var V=m.yylloc;i.push(V);var de=m.options&&m.options.ranges;typeof R.yy.parseError=="function"?this.parseError=R.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ye(N){s.length=s.length-2*N,c.length=c.length-N,i.length=i.length-N}a(ye,"popStack");function ae(){var N;return N=r.pop()||m.lex()||re,typeof N!="number"&&(N instanceof Array&&(r=N,N=r.pop()),N=e.symbols_[N]||N),N}a(ae,"lex");for(var _,X,P,x,We,q,F={},K,C,oe,j;;){if(P=s[s.length-1],this.defaultActions[P]?x=this.defaultActions[P]:((_===null||typeof _>"u")&&(_=ae()),x=E[P]&&E[P][_]),typeof x>"u"||!x.length||!x[0]){var Y="";j=[];for(K in E[P])this.terminals_[K]&&K>ge&&j.push("'"+this.terminals_[K]+"'");m.showPosition?Y="Parse error on line "+(W+1)+`:
|
||||
`+m.showPosition()+`
|
||||
Expecting `+j.join(", ")+", got '"+(this.terminals_[_]||_)+"'":Y="Parse error on line "+(W+1)+": Unexpected "+(_==re?"end of input":"'"+(this.terminals_[_]||_)+"'"),this.parseError(Y,{text:m.match,token:this.terminals_[_]||_,line:m.yylineno,loc:V,expected:j})}if(x[0]instanceof Array&&x.length>1)throw new Error("Parse Error: multiple actions possible at state: "+P+", token: "+_);switch(x[0]){case 1:s.push(_),c.push(m.yytext),i.push(m.yylloc),s.push(x[1]),_=null,X?(_=X,X=null):(ne=m.yyleng,o=m.yytext,W=m.yylineno,V=m.yylloc,ue>0);break;case 2:if(C=this.productions_[x[1]][1],F.$=c[c.length-C],F._$={first_line:i[i.length-(C||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(C||1)].first_column,last_column:i[i.length-1].last_column},de&&(F._$.range=[i[i.length-(C||1)].range[0],i[i.length-1].range[1]]),q=this.performAction.apply(F,[o,ne,W,R.yy,x[1],c,i].concat(pe)),typeof q<"u")return q;C&&(s=s.slice(0,-1*C*2),c=c.slice(0,-1*C),i=i.slice(0,-1*C)),s.push(this.productions_[x[1]][0]),c.push(F.$),i.push(F._$),oe=E[s[s.length-2]][s[s.length-1]],s.push(oe);break;case 3:return!0}}return!0},"parse")},J=(function(){var d={EOF:1,parseError:a(function(e,s){if(this.yy.parser)this.yy.parser.parseError(e,s);else throw new Error(e)},"parseError"),setInput:a(function(e,s){return this.yy=s||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:a(function(){var e=this._input[0];this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e;var s=e.match(/(?:\r\n?|\n).*/g);return s?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},"input"),unput:a(function(e){var s=e.length,r=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-s),this.offset-=s;var c=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),r.length-1&&(this.yylineno-=r.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:r?(r.length===c.length?this.yylloc.first_column:0)+c[c.length-r.length].length-r[0].length:this.yylloc.first_column-s},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-s]),this.yyleng=this.yytext.length,this},"unput"),more:a(function(){return this._more=!0,this},"more"),reject:a(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
||||
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:a(function(e){this.unput(this.match.slice(e))},"less"),pastInput:a(function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?"...":"")+e.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:a(function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:a(function(){var e=this.pastInput(),s=new Array(e.length+1).join("-");return e+this.upcomingInput()+`
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
import{m as ue}from"./chunk-6EQESGSB-D5T9ujH0.js";import{y as pe}from"./chunk-T244DUNM-BkxI9n__.js";import{m as l,p as I,V as ye,c as fe,r as M,a as V,o as P,bc as me,b8 as be,b9 as _e,ba as Ee}from"./mermaid.esm.min-DAbLg_2m.js";import"./app-Dqab9jXZ.js";var X=(function(){var i=l(function(N,t,r,o){for(r=r||{},o=N.length;o--;r[N[o]]=t);return r},"o"),e=[1,4],n=[1,13],a=[1,12],h=[1,15],c=[1,16],p=[1,20],u=[1,19],b=[6,7,8],C=[1,26],Y=[1,24],q=[1,25],E=[6,7,11],J=[1,6,13,15,16,19,22],K=[1,33],Q=[1,34],R=[1,6,7,11,13,15,16,19,22],B={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:l(function(N,t,r,o,d,s,_){var g=s.length-1;switch(d){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",s[g].id),o.addNode(s[g-1].length,s[g].id,s[g].descr,s[g].type);break;case 16:o.getLogger().trace("Icon: ",s[g]),o.decorateNode({icon:s[g]});break;case 17:case 21:o.decorateNode({class:s[g]});break;case 18:o.getLogger().trace("SPACELIST");break;case 19:o.getLogger().trace("Node: ",s[g].id),o.addNode(0,s[g].id,s[g].descr,s[g].type);break;case 20:o.decorateNode({icon:s[g]});break;case 25:o.getLogger().trace("node found ..",s[g-2]),this.$={id:s[g-1],descr:s[g-1],type:o.getType(s[g-2],s[g])};break;case 26:this.$={id:s[g],descr:s[g],type:o.nodeType.DEFAULT};break;case 27:o.getLogger().trace("node found ..",s[g-3]),this.$={id:s[g-3],descr:s[g-1],type:o.getType(s[g-2],s[g])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:n,7:[1,10],9:9,12:11,13:a,14:14,15:h,16:c,17:17,18:18,19:p,22:u},i(b,[2,3]),{1:[2,2]},i(b,[2,4]),i(b,[2,5]),{1:[2,6],6:n,12:21,13:a,14:14,15:h,16:c,17:17,18:18,19:p,22:u},{6:n,9:22,12:11,13:a,14:14,15:h,16:c,17:17,18:18,19:p,22:u},{6:C,7:Y,10:23,11:q},i(E,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:p,22:u}),i(E,[2,18]),i(E,[2,19]),i(E,[2,20]),i(E,[2,21]),i(E,[2,23]),i(E,[2,24]),i(E,[2,26],{19:[1,30]}),{20:[1,31]},{6:C,7:Y,10:32,11:q},{1:[2,7],6:n,12:21,13:a,14:14,15:h,16:c,17:17,18:18,19:p,22:u},i(J,[2,14],{7:K,11:Q}),i(R,[2,8]),i(R,[2,9]),i(R,[2,10]),i(E,[2,15]),i(E,[2,16]),i(E,[2,17]),{20:[1,35]},{21:[1,36]},i(J,[2,13],{7:K,11:Q}),i(R,[2,11]),i(R,[2,12]),{21:[1,37]},i(E,[2,25]),i(E,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:l(function(N,t){if(t.recoverable)this.trace(N);else{var r=new Error(N);throw r.hash=t,r}},"parseError"),parse:l(function(N){var t=this,r=[0],o=[],d=[null],s=[],_=this.table,g="",$=0,Z=0,le=0,ce=2,ee=1,he=s.slice.call(arguments,1),y=Object.create(this.lexer),v={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(v.yy[F]=this.yy[F]);y.setInput(N,v.yy),v.yy.lexer=y,v.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var j=y.yylloc;s.push(j);var de=y.options&&y.options.ranges;typeof v.yy.parseError=="function"?this.parseError=v.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ge(S){r.length=r.length-2*S,d.length=d.length-S,s.length=s.length-S}l(ge,"popStack");function te(){var S;return S=o.pop()||y.lex()||ee,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=t.symbols_[S]||S),S}l(te,"lex");for(var m,G,T,D,Ce,z,O={},A,k,ie,U;;){if(T=r[r.length-1],this.defaultActions[T]?D=this.defaultActions[T]:((m===null||typeof m>"u")&&(m=te()),D=_[T]&&_[T][m]),typeof D>"u"||!D.length||!D[0]){var H="";U=[];for(A in _[T])this.terminals_[A]&&A>ce&&U.push("'"+this.terminals_[A]+"'");y.showPosition?H="Parse error on line "+($+1)+`:
|
||||
import{m as ue}from"./chunk-6EQESGSB-CxeJJhjr.js";import{y as pe}from"./chunk-T244DUNM-wAx6vwlF.js";import{m as l,p as I,V as ye,c as fe,r as M,a as V,o as P,bc as me,b8 as be,b9 as _e,ba as Ee}from"./mermaid.esm.min-C3PPQ_C2.js";import"./app-COnnofor.js";var X=(function(){var i=l(function(N,t,r,o){for(r=r||{},o=N.length;o--;r[N[o]]=t);return r},"o"),e=[1,4],n=[1,13],a=[1,12],h=[1,15],c=[1,16],p=[1,20],u=[1,19],b=[6,7,8],C=[1,26],Y=[1,24],q=[1,25],E=[6,7,11],J=[1,6,13,15,16,19,22],K=[1,33],Q=[1,34],R=[1,6,7,11,13,15,16,19,22],B={trace:l(function(){},"trace"),yy:{},symbols_:{error:2,start:3,mindMap:4,spaceLines:5,SPACELINE:6,NL:7,MINDMAP:8,document:9,stop:10,EOF:11,statement:12,SPACELIST:13,node:14,ICON:15,CLASS:16,nodeWithId:17,nodeWithoutId:18,NODE_DSTART:19,NODE_DESCR:20,NODE_DEND:21,NODE_ID:22,$accept:0,$end:1},terminals_:{2:"error",6:"SPACELINE",7:"NL",8:"MINDMAP",11:"EOF",13:"SPACELIST",15:"ICON",16:"CLASS",19:"NODE_DSTART",20:"NODE_DESCR",21:"NODE_DEND",22:"NODE_ID"},productions_:[0,[3,1],[3,2],[5,1],[5,2],[5,2],[4,2],[4,3],[10,1],[10,1],[10,1],[10,2],[10,2],[9,3],[9,2],[12,2],[12,2],[12,2],[12,1],[12,1],[12,1],[12,1],[12,1],[14,1],[14,1],[18,3],[17,1],[17,4]],performAction:l(function(N,t,r,o,d,s,_){var g=s.length-1;switch(d){case 6:case 7:return o;case 8:o.getLogger().trace("Stop NL ");break;case 9:o.getLogger().trace("Stop EOF ");break;case 11:o.getLogger().trace("Stop NL2 ");break;case 12:o.getLogger().trace("Stop EOF2 ");break;case 15:o.getLogger().info("Node: ",s[g].id),o.addNode(s[g-1].length,s[g].id,s[g].descr,s[g].type);break;case 16:o.getLogger().trace("Icon: ",s[g]),o.decorateNode({icon:s[g]});break;case 17:case 21:o.decorateNode({class:s[g]});break;case 18:o.getLogger().trace("SPACELIST");break;case 19:o.getLogger().trace("Node: ",s[g].id),o.addNode(0,s[g].id,s[g].descr,s[g].type);break;case 20:o.decorateNode({icon:s[g]});break;case 25:o.getLogger().trace("node found ..",s[g-2]),this.$={id:s[g-1],descr:s[g-1],type:o.getType(s[g-2],s[g])};break;case 26:this.$={id:s[g],descr:s[g],type:o.nodeType.DEFAULT};break;case 27:o.getLogger().trace("node found ..",s[g-3]),this.$={id:s[g-3],descr:s[g-1],type:o.getType(s[g-2],s[g])};break}},"anonymous"),table:[{3:1,4:2,5:3,6:[1,5],8:e},{1:[3]},{1:[2,1]},{4:6,6:[1,7],7:[1,8],8:e},{6:n,7:[1,10],9:9,12:11,13:a,14:14,15:h,16:c,17:17,18:18,19:p,22:u},i(b,[2,3]),{1:[2,2]},i(b,[2,4]),i(b,[2,5]),{1:[2,6],6:n,12:21,13:a,14:14,15:h,16:c,17:17,18:18,19:p,22:u},{6:n,9:22,12:11,13:a,14:14,15:h,16:c,17:17,18:18,19:p,22:u},{6:C,7:Y,10:23,11:q},i(E,[2,22],{17:17,18:18,14:27,15:[1,28],16:[1,29],19:p,22:u}),i(E,[2,18]),i(E,[2,19]),i(E,[2,20]),i(E,[2,21]),i(E,[2,23]),i(E,[2,24]),i(E,[2,26],{19:[1,30]}),{20:[1,31]},{6:C,7:Y,10:32,11:q},{1:[2,7],6:n,12:21,13:a,14:14,15:h,16:c,17:17,18:18,19:p,22:u},i(J,[2,14],{7:K,11:Q}),i(R,[2,8]),i(R,[2,9]),i(R,[2,10]),i(E,[2,15]),i(E,[2,16]),i(E,[2,17]),{20:[1,35]},{21:[1,36]},i(J,[2,13],{7:K,11:Q}),i(R,[2,11]),i(R,[2,12]),{21:[1,37]},i(E,[2,25]),i(E,[2,27])],defaultActions:{2:[2,1],6:[2,2]},parseError:l(function(N,t){if(t.recoverable)this.trace(N);else{var r=new Error(N);throw r.hash=t,r}},"parseError"),parse:l(function(N){var t=this,r=[0],o=[],d=[null],s=[],_=this.table,g="",$=0,Z=0,le=0,ce=2,ee=1,he=s.slice.call(arguments,1),y=Object.create(this.lexer),v={yy:{}};for(var F in this.yy)Object.prototype.hasOwnProperty.call(this.yy,F)&&(v.yy[F]=this.yy[F]);y.setInput(N,v.yy),v.yy.lexer=y,v.yy.parser=this,typeof y.yylloc>"u"&&(y.yylloc={});var j=y.yylloc;s.push(j);var de=y.options&&y.options.ranges;typeof v.yy.parseError=="function"?this.parseError=v.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function ge(S){r.length=r.length-2*S,d.length=d.length-S,s.length=s.length-S}l(ge,"popStack");function te(){var S;return S=o.pop()||y.lex()||ee,typeof S!="number"&&(S instanceof Array&&(o=S,S=o.pop()),S=t.symbols_[S]||S),S}l(te,"lex");for(var m,G,T,D,Ce,z,O={},A,k,ie,U;;){if(T=r[r.length-1],this.defaultActions[T]?D=this.defaultActions[T]:((m===null||typeof m>"u")&&(m=te()),D=_[T]&&_[T][m]),typeof D>"u"||!D.length||!D[0]){var H="";U=[];for(A in _[T])this.terminals_[A]&&A>ce&&U.push("'"+this.terminals_[A]+"'");y.showPosition?H="Parse error on line "+($+1)+`:
|
||||
`+y.showPosition()+`
|
||||
Expecting `+U.join(", ")+", got '"+(this.terminals_[m]||m)+"'":H="Parse error on line "+($+1)+": Unexpected "+(m==ee?"end of input":"'"+(this.terminals_[m]||m)+"'"),this.parseError(H,{text:y.match,token:this.terminals_[m]||m,line:y.yylineno,loc:j,expected:U})}if(D[0]instanceof Array&&D.length>1)throw new Error("Parse Error: multiple actions possible at state: "+T+", token: "+m);switch(D[0]){case 1:r.push(m),d.push(y.yytext),s.push(y.yylloc),r.push(D[1]),m=null,G?(m=G,G=null):(Z=y.yyleng,g=y.yytext,$=y.yylineno,j=y.yylloc,le>0);break;case 2:if(k=this.productions_[D[1]][1],O.$=d[d.length-k],O._$={first_line:s[s.length-(k||1)].first_line,last_line:s[s.length-1].last_line,first_column:s[s.length-(k||1)].first_column,last_column:s[s.length-1].last_column},de&&(O._$.range=[s[s.length-(k||1)].range[0],s[s.length-1].range[1]]),z=this.performAction.apply(O,[g,Z,$,v.yy,D[1],d,s].concat(he)),typeof z<"u")return z;k&&(r=r.slice(0,-1*k*2),d=d.slice(0,-1*k),s=s.slice(0,-1*k)),r.push(this.productions_[D[1]][0]),d.push(O.$),s.push(O._$),ie=_[r[r.length-2]][r[r.length-1]],r.push(ie);break;case 3:return!0}}return!0},"parse")},ae=(function(){var N={EOF:1,parseError:l(function(t,r){if(this.yy.parser)this.yy.parser.parseError(t,r);else throw new Error(t)},"parseError"),setInput:l(function(t,r){return this.yy=r||this.yy||{},this._input=t,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:l(function(){var t=this._input[0];this.yytext+=t,this.yyleng++,this.offset++,this.match+=t,this.matched+=t;var r=t.match(/(?:\r\n?|\n).*/g);return r?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),t},"input"),unput:l(function(t){var r=t.length,o=t.split(/(?:\r\n?|\n)/g);this._input=t+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-r),this.offset-=r;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),o.length-1&&(this.yylineno-=o.length-1);var s=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:o?(o.length===d.length?this.yylloc.first_column:0)+d[d.length-o.length].length-o[0].length:this.yylloc.first_column-r},this.options.ranges&&(this.yylloc.range=[s[0],s[0]+this.yyleng-r]),this.yyleng=this.yytext.length,this},"unput"),more:l(function(){return this._more=!0,this},"more"),reject:l(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
||||
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:l(function(t){this.unput(this.match.slice(t))},"less"),pastInput:l(function(){var t=this.matched.substr(0,this.matched.length-this.match.length);return(t.length>20?"...":"")+t.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:l(function(){var t=this.match;return t.length<20&&(t+=this._input.substr(0,20-t.length)),(t.substr(0,20)+(t.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:l(function(){var t=this.pastInput(),r=new Array(t.length+1).join("-");return t+this.upcomingInput()+`
|
||||
@@ -1,4 +1,4 @@
|
||||
import{c as B}from"./chunk-4KE642ED-BHboJLjX.js";import{p as V}from"./treemap-KMMF4GRG-7ORZ52ND-DhI38Nao.js";import{m as r,$ as Q,G as X,U as Y,H as q,e as I,j as J,p as w,a as K,L as Z,aN as _,aP as ee,aQ as W,aR as te,W as ae,N as ie,aS as le,r as re}from"./mermaid.esm.min-DAbLg_2m.js";import"./chunk-OMTJKCYW-G6Hf23Oh.js";import"./app-Dqab9jXZ.js";var se=re.pie,v={sections:new Map,showData:!1},u=v.sections,y=v.showData,oe=structuredClone(se),ne=r(()=>structuredClone(oe),"getConfig"),pe=r(()=>{u=new Map,y=v.showData,ie()},"clear"),de=r(({label:e,value:a})=>{if(a<0)throw new Error(`"${e}" has invalid value: ${a}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);u.has(e)||(u.set(e,a),w.debug(`added new section: ${e}, with value: ${a}`))},"addSection"),ce=r(()=>u,"getSections"),ue=r(e=>{y=e},"setShowData"),ge=r(()=>y,"getShowData"),M={getConfig:ne,clear:pe,setDiagramTitle:J,getDiagramTitle:I,setAccTitle:q,getAccTitle:Y,setAccDescription:X,getAccDescription:Q,addSection:de,getSections:ce,setShowData:ue,getShowData:ge},me=r((e,a)=>{B(e,a),a.setShowData(e.showData),e.sections.map(a.addSection)},"populateDb"),he={parse:r(async e=>{let a=await V("pie",e);w.debug(a),me(a,M)},"parse")},fe=r(e=>`
|
||||
import{c as B}from"./chunk-4KE642ED-BWKyYx7V.js";import{p as V}from"./treemap-KMMF4GRG-7ORZ52ND-hp-dLOEF.js";import{m as r,$ as Q,G as X,U as Y,H as q,e as I,j as J,p as w,a as K,L as Z,aN as _,aP as ee,aQ as W,aR as te,W as ae,N as ie,aS as le,r as re}from"./mermaid.esm.min-C3PPQ_C2.js";import"./chunk-OMTJKCYW-icim_91v.js";import"./app-COnnofor.js";var se=re.pie,v={sections:new Map,showData:!1},u=v.sections,y=v.showData,oe=structuredClone(se),ne=r(()=>structuredClone(oe),"getConfig"),pe=r(()=>{u=new Map,y=v.showData,ie()},"clear"),de=r(({label:e,value:a})=>{if(a<0)throw new Error(`"${e}" has invalid value: ${a}. Negative values are not allowed in pie charts. All slice values must be >= 0.`);u.has(e)||(u.set(e,a),w.debug(`added new section: ${e}, with value: ${a}`))},"addSection"),ce=r(()=>u,"getSections"),ue=r(e=>{y=e},"setShowData"),ge=r(()=>y,"getShowData"),M={getConfig:ne,clear:pe,setDiagramTitle:J,getDiagramTitle:I,setAccTitle:q,getAccTitle:Y,setAccDescription:X,getAccDescription:Q,addSection:de,getSections:ce,setShowData:ue,getShowData:ge},me=r((e,a)=>{B(e,a),a.setShowData(e.showData),e.sections.map(a.addSection)},"populateDb"),he={parse:r(async e=>{let a=await V("pie",e);w.debug(a),me(a,M)},"parse")},fe=r(e=>`
|
||||
.pieCircle{
|
||||
stroke: ${e.pieStrokeColor};
|
||||
stroke-width : ${e.pieStrokeWidth};
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
import{m as n,j as jt,e as zt,G as Bt,$ as Ft,H as Rt,U as Ut,a as dt,A as Gt,i as K,aR as Ht,b7 as Vt,N as Wt,h as qt,bg as Qt}from"./mermaid.esm.min-DAbLg_2m.js";import"./app-Dqab9jXZ.js";var st=(function(){var t=n(function(k,r,a,f){for(a=a||{},f=k.length;f--;a[k[f]]=r);return a},"o"),i=[1,9],s=[1,10],l=[1,5,10,12],h={trace:n(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:n(function(k,r,a,f,_,d,b){var x=d.length-1;switch(_){case 7:let C=f.findOrCreateNode(d[x-4].trim().replaceAll('""','"')),A=f.findOrCreateNode(d[x-2].trim().replaceAll('""','"')),N=parseFloat(d[x].trim());f.addLink(C,A,N);break;case 8:case 9:case 11:this.$=d[x];break;case 10:this.$=d[x-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:i,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(l,[2,8]),t(l,[2,9]),{19:[1,16]},t(l,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:i,20:s},{15:18,16:7,17:8,18:i,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(l,[2,10]),{15:21,16:7,17:8,18:i,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:n(function(k,r){if(r.recoverable)this.trace(k);else{var a=new Error(k);throw a.hash=r,a}},"parseError"),parse:n(function(k){var r=this,a=[0],f=[],_=[null],d=[],b=this.table,x="",C=0,A=0,N=0,j=2,M=1,z=d.slice.call(arguments,1),S=Object.create(this.lexer),I={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(I.yy[$]=this.yy[$]);S.setInput(k,I.yy),I.yy.lexer=S,I.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var g=S.yylloc;d.push(g);var T=S.options&&S.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function V(L){a.length=a.length-2*L,_.length=_.length-L,d.length=d.length-L}n(V,"popStack");function R(){var L;return L=f.pop()||S.lex()||M,typeof L!="number"&&(L instanceof Array&&(f=L,L=f.pop()),L=r.symbols_[L]||L),L}n(R,"lex");for(var E,U,O,e,y,u,c={},o,p,w,P;;){if(O=a[a.length-1],this.defaultActions[O]?e=this.defaultActions[O]:((E===null||typeof E>"u")&&(E=R()),e=b[O]&&b[O][E]),typeof e>"u"||!e.length||!e[0]){var D="";P=[];for(o in b[O])this.terminals_[o]&&o>j&&P.push("'"+this.terminals_[o]+"'");S.showPosition?D="Parse error on line "+(C+1)+`:
|
||||
import{m as n,j as jt,e as zt,G as Bt,$ as Ft,H as Rt,U as Ut,a as dt,A as Gt,i as K,aR as Ht,b7 as Vt,N as Wt,h as qt,bg as Qt}from"./mermaid.esm.min-C3PPQ_C2.js";import"./app-COnnofor.js";var st=(function(){var t=n(function(k,r,a,f){for(a=a||{},f=k.length;f--;a[k[f]]=r);return a},"o"),i=[1,9],s=[1,10],l=[1,5,10,12],h={trace:n(function(){},"trace"),yy:{},symbols_:{error:2,start:3,SANKEY:4,NEWLINE:5,csv:6,opt_eof:7,record:8,csv_tail:9,EOF:10,"field[source]":11,COMMA:12,"field[target]":13,"field[value]":14,field:15,escaped:16,non_escaped:17,DQUOTE:18,ESCAPED_TEXT:19,NON_ESCAPED_TEXT:20,$accept:0,$end:1},terminals_:{2:"error",4:"SANKEY",5:"NEWLINE",10:"EOF",11:"field[source]",12:"COMMA",13:"field[target]",14:"field[value]",18:"DQUOTE",19:"ESCAPED_TEXT",20:"NON_ESCAPED_TEXT"},productions_:[0,[3,4],[6,2],[9,2],[9,0],[7,1],[7,0],[8,5],[15,1],[15,1],[16,3],[17,1]],performAction:n(function(k,r,a,f,_,d,b){var x=d.length-1;switch(_){case 7:let C=f.findOrCreateNode(d[x-4].trim().replaceAll('""','"')),A=f.findOrCreateNode(d[x-2].trim().replaceAll('""','"')),N=parseFloat(d[x].trim());f.addLink(C,A,N);break;case 8:case 9:case 11:this.$=d[x];break;case 10:this.$=d[x-1];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},{5:[1,3]},{6:4,8:5,15:6,16:7,17:8,18:i,20:s},{1:[2,6],7:11,10:[1,12]},t(s,[2,4],{9:13,5:[1,14]}),{12:[1,15]},t(l,[2,8]),t(l,[2,9]),{19:[1,16]},t(l,[2,11]),{1:[2,1]},{1:[2,5]},t(s,[2,2]),{6:17,8:5,15:6,16:7,17:8,18:i,20:s},{15:18,16:7,17:8,18:i,20:s},{18:[1,19]},t(s,[2,3]),{12:[1,20]},t(l,[2,10]),{15:21,16:7,17:8,18:i,20:s},t([1,5,10],[2,7])],defaultActions:{11:[2,1],12:[2,5]},parseError:n(function(k,r){if(r.recoverable)this.trace(k);else{var a=new Error(k);throw a.hash=r,a}},"parseError"),parse:n(function(k){var r=this,a=[0],f=[],_=[null],d=[],b=this.table,x="",C=0,A=0,N=0,j=2,M=1,z=d.slice.call(arguments,1),S=Object.create(this.lexer),I={yy:{}};for(var $ in this.yy)Object.prototype.hasOwnProperty.call(this.yy,$)&&(I.yy[$]=this.yy[$]);S.setInput(k,I.yy),I.yy.lexer=S,I.yy.parser=this,typeof S.yylloc>"u"&&(S.yylloc={});var g=S.yylloc;d.push(g);var T=S.options&&S.options.ranges;typeof I.yy.parseError=="function"?this.parseError=I.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function V(L){a.length=a.length-2*L,_.length=_.length-L,d.length=d.length-L}n(V,"popStack");function R(){var L;return L=f.pop()||S.lex()||M,typeof L!="number"&&(L instanceof Array&&(f=L,L=f.pop()),L=r.symbols_[L]||L),L}n(R,"lex");for(var E,U,O,e,y,u,c={},o,p,w,P;;){if(O=a[a.length-1],this.defaultActions[O]?e=this.defaultActions[O]:((E===null||typeof E>"u")&&(E=R()),e=b[O]&&b[O][E]),typeof e>"u"||!e.length||!e[0]){var D="";P=[];for(o in b[O])this.terminals_[o]&&o>j&&P.push("'"+this.terminals_[o]+"'");S.showPosition?D="Parse error on line "+(C+1)+`:
|
||||
`+S.showPosition()+`
|
||||
Expecting `+P.join(", ")+", got '"+(this.terminals_[E]||E)+"'":D="Parse error on line "+(C+1)+": Unexpected "+(E==M?"end of input":"'"+(this.terminals_[E]||E)+"'"),this.parseError(D,{text:S.match,token:this.terminals_[E]||E,line:S.yylineno,loc:g,expected:P})}if(e[0]instanceof Array&&e.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+E);switch(e[0]){case 1:a.push(E),_.push(S.yytext),d.push(S.yylloc),a.push(e[1]),E=null,U?(E=U,U=null):(A=S.yyleng,x=S.yytext,C=S.yylineno,g=S.yylloc,N>0);break;case 2:if(p=this.productions_[e[1]][1],c.$=_[_.length-p],c._$={first_line:d[d.length-(p||1)].first_line,last_line:d[d.length-1].last_line,first_column:d[d.length-(p||1)].first_column,last_column:d[d.length-1].last_column},T&&(c._$.range=[d[d.length-(p||1)].range[0],d[d.length-1].range[1]]),u=this.performAction.apply(c,[x,A,C,I.yy,e[1],_,d].concat(z)),typeof u<"u")return u;p&&(a=a.slice(0,-1*p*2),_=_.slice(0,-1*p),d=d.slice(0,-1*p)),a.push(this.productions_[e[1]][0]),_.push(c.$),d.push(c._$),w=b[a[a.length-2]][a[a.length-1]],a.push(w);break;case 3:return!0}}return!0},"parse")},v=(function(){var k={EOF:1,parseError:n(function(r,a){if(this.yy.parser)this.yy.parser.parseError(r,a);else throw new Error(r)},"parseError"),setInput:n(function(r,a){return this.yy=a||this.yy||{},this._input=r,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:n(function(){var r=this._input[0];this.yytext+=r,this.yyleng++,this.offset++,this.match+=r,this.matched+=r;var a=r.match(/(?:\r\n?|\n).*/g);return a?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),r},"input"),unput:n(function(r){var a=r.length,f=r.split(/(?:\r\n?|\n)/g);this._input=r+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-a),this.offset-=a;var _=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),f.length-1&&(this.yylineno-=f.length-1);var d=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:f?(f.length===_.length?this.yylloc.first_column:0)+_[_.length-f.length].length-f[0].length:this.yylloc.first_column-a},this.options.ranges&&(this.yylloc.range=[d[0],d[0]+this.yyleng-a]),this.yyleng=this.yytext.length,this},"unput"),more:n(function(){return this._more=!0,this},"more"),reject:n(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
||||
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:n(function(r){this.unput(this.match.slice(r))},"less"),pastInput:n(function(){var r=this.matched.substr(0,this.matched.length-this.match.length);return(r.length>20?"...":"")+r.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:n(function(){var r=this.match;return r.length<20&&(r+=this._input.substr(0,20-r.length)),(r.substr(0,20)+(r.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:n(function(){var r=this.pastInput(),a=new Array(r.length+1).join("-");return r+this.upcomingInput()+`
|
||||
1
assets/searchBox-default-CHe69NWu.js
Normal file
1
assets/searchBox-default-CHe69NWu.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
assets/stateDiagram-v2-B7NEODPZ-ByByxE9b.js
Normal file
1
assets/stateDiagram-v2-B7NEODPZ-ByByxE9b.js
Normal file
@@ -0,0 +1 @@
|
||||
import{g as e,q as t,B as a,_ as s}from"./chunk-XTOMJ4XH-BMKEeKaZ.js";import"./chunk-6EQESGSB-CxeJJhjr.js";import"./chunk-T244DUNM-wAx6vwlF.js";import{m as o}from"./mermaid.esm.min-C3PPQ_C2.js";import"./app-COnnofor.js";var b={parser:a,get db(){return new s(2)},renderer:t,styles:e,init:o(r=>{r.state||(r.state={}),r.state.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
|
||||
@@ -1 +0,0 @@
|
||||
import{g as e,q as t,B as a,_ as s}from"./chunk-AI4T2ZLM-DXKlGKW1.js";import"./chunk-6EQESGSB-D5T9ujH0.js";import"./chunk-T244DUNM-BkxI9n__.js";import{m as o}from"./mermaid.esm.min-DAbLg_2m.js";import"./app-Dqab9jXZ.js";var b={parser:a,get db(){return new s(2)},renderer:t,styles:e,init:o(r=>{r.state||(r.state={}),r.state.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{b as diagram};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{m as r,a as bt,p as S,i as V,b7 as kt,b8 as _t,b9 as vt,ba as wt,aQ as et,n as St,bb as $t,N as Et}from"./mermaid.esm.min-DAbLg_2m.js";import"./app-Dqab9jXZ.js";var X=(function(){var i=r(function(g,a,c,h){for(c=c||{},h=g.length;h--;c[g[h]]=a);return c},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],s=[1,10],n=[1,11],l=[1,12],p=[1,13],y=[1,16],u=[1,17],f={trace:r(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:r(function(g,a,c,h,d,o,m){var k=o.length-1;switch(d){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:h.getCommonDb().setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),h.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),h.getCommonDb().setAccDescription(this.$);break;case 12:h.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 15:h.addTask(o[k],0,""),this.$=o[k];break;case 16:h.addEvent(o[k].substr(2)),this.$=o[k];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},i(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:s,14:n,16:l,17:p,18:14,19:15,20:y,21:u},i(t,[2,7],{1:[2,1]}),i(t,[2,3]),{9:18,11:e,12:s,14:n,16:l,17:p,18:14,19:15,20:y,21:u},i(t,[2,5]),i(t,[2,6]),i(t,[2,8]),{13:[1,19]},{15:[1,20]},i(t,[2,11]),i(t,[2,12]),i(t,[2,13]),i(t,[2,14]),i(t,[2,15]),i(t,[2,16]),i(t,[2,4]),i(t,[2,9]),i(t,[2,10])],defaultActions:{},parseError:r(function(g,a){if(a.recoverable)this.trace(g);else{var c=new Error(g);throw c.hash=a,c}},"parseError"),parse:r(function(g){var a=this,c=[0],h=[],d=[null],o=[],m=this.table,k="",I=0,P=0,H=0,C=2,v=1,N=o.slice.call(arguments,1),x=Object.create(this.lexer),$={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&($.yy[L]=this.yy[L]);x.setInput(g,$.yy),$.yy.lexer=x,$.yy.parser=this,typeof x.yylloc>"u"&&(x.yylloc={});var F=x.yylloc;o.push(F);var mt=x.options&&x.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function xt(E){c.length=c.length-2*E,d.length=d.length-E,o.length=o.length-E}r(xt,"popStack");function K(){var E;return E=h.pop()||x.lex()||v,typeof E!="number"&&(E instanceof Array&&(h=E,E=h.pop()),E=a.symbols_[E]||E),E}r(K,"lex");for(var w,G,O,T,qt,q,j={},R,A,tt,W;;){if(O=c[c.length-1],this.defaultActions[O]?T=this.defaultActions[O]:((w===null||typeof w>"u")&&(w=K()),T=m[O]&&m[O][w]),typeof T>"u"||!T.length||!T[0]){var Y="";W=[];for(R in m[O])this.terminals_[R]&&R>C&&W.push("'"+this.terminals_[R]+"'");x.showPosition?Y="Parse error on line "+(I+1)+`:
|
||||
import{m as r,a as bt,p as S,i as V,b7 as kt,b8 as _t,b9 as vt,ba as wt,aQ as et,n as St,bb as $t,N as Et}from"./mermaid.esm.min-C3PPQ_C2.js";import"./app-COnnofor.js";var X=(function(){var i=r(function(g,a,c,h){for(c=c||{},h=g.length;h--;c[g[h]]=a);return c},"o"),t=[6,8,10,11,12,14,16,17,20,21],e=[1,9],s=[1,10],n=[1,11],l=[1,12],p=[1,13],y=[1,16],u=[1,17],f={trace:r(function(){},"trace"),yy:{},symbols_:{error:2,start:3,timeline:4,document:5,EOF:6,line:7,SPACE:8,statement:9,NEWLINE:10,title:11,acc_title:12,acc_title_value:13,acc_descr:14,acc_descr_value:15,acc_descr_multiline_value:16,section:17,period_statement:18,event_statement:19,period:20,event:21,$accept:0,$end:1},terminals_:{2:"error",4:"timeline",6:"EOF",8:"SPACE",10:"NEWLINE",11:"title",12:"acc_title",13:"acc_title_value",14:"acc_descr",15:"acc_descr_value",16:"acc_descr_multiline_value",17:"section",20:"period",21:"event"},productions_:[0,[3,3],[5,0],[5,2],[7,2],[7,1],[7,1],[7,1],[9,1],[9,2],[9,2],[9,1],[9,1],[9,1],[9,1],[18,1],[19,1]],performAction:r(function(g,a,c,h,d,o,m){var k=o.length-1;switch(d){case 1:return o[k-1];case 2:this.$=[];break;case 3:o[k-1].push(o[k]),this.$=o[k-1];break;case 4:case 5:this.$=o[k];break;case 6:case 7:this.$=[];break;case 8:h.getCommonDb().setDiagramTitle(o[k].substr(6)),this.$=o[k].substr(6);break;case 9:this.$=o[k].trim(),h.getCommonDb().setAccTitle(this.$);break;case 10:case 11:this.$=o[k].trim(),h.getCommonDb().setAccDescription(this.$);break;case 12:h.addSection(o[k].substr(8)),this.$=o[k].substr(8);break;case 15:h.addTask(o[k],0,""),this.$=o[k];break;case 16:h.addEvent(o[k].substr(2)),this.$=o[k];break}},"anonymous"),table:[{3:1,4:[1,2]},{1:[3]},i(t,[2,2],{5:3}),{6:[1,4],7:5,8:[1,6],9:7,10:[1,8],11:e,12:s,14:n,16:l,17:p,18:14,19:15,20:y,21:u},i(t,[2,7],{1:[2,1]}),i(t,[2,3]),{9:18,11:e,12:s,14:n,16:l,17:p,18:14,19:15,20:y,21:u},i(t,[2,5]),i(t,[2,6]),i(t,[2,8]),{13:[1,19]},{15:[1,20]},i(t,[2,11]),i(t,[2,12]),i(t,[2,13]),i(t,[2,14]),i(t,[2,15]),i(t,[2,16]),i(t,[2,4]),i(t,[2,9]),i(t,[2,10])],defaultActions:{},parseError:r(function(g,a){if(a.recoverable)this.trace(g);else{var c=new Error(g);throw c.hash=a,c}},"parseError"),parse:r(function(g){var a=this,c=[0],h=[],d=[null],o=[],m=this.table,k="",I=0,P=0,H=0,C=2,v=1,N=o.slice.call(arguments,1),x=Object.create(this.lexer),$={yy:{}};for(var L in this.yy)Object.prototype.hasOwnProperty.call(this.yy,L)&&($.yy[L]=this.yy[L]);x.setInput(g,$.yy),$.yy.lexer=x,$.yy.parser=this,typeof x.yylloc>"u"&&(x.yylloc={});var F=x.yylloc;o.push(F);var mt=x.options&&x.options.ranges;typeof $.yy.parseError=="function"?this.parseError=$.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;function xt(E){c.length=c.length-2*E,d.length=d.length-E,o.length=o.length-E}r(xt,"popStack");function K(){var E;return E=h.pop()||x.lex()||v,typeof E!="number"&&(E instanceof Array&&(h=E,E=h.pop()),E=a.symbols_[E]||E),E}r(K,"lex");for(var w,G,O,T,qt,q,j={},R,A,tt,W;;){if(O=c[c.length-1],this.defaultActions[O]?T=this.defaultActions[O]:((w===null||typeof w>"u")&&(w=K()),T=m[O]&&m[O][w]),typeof T>"u"||!T.length||!T[0]){var Y="";W=[];for(R in m[O])this.terminals_[R]&&R>C&&W.push("'"+this.terminals_[R]+"'");x.showPosition?Y="Parse error on line "+(I+1)+`:
|
||||
`+x.showPosition()+`
|
||||
Expecting `+W.join(", ")+", got '"+(this.terminals_[w]||w)+"'":Y="Parse error on line "+(I+1)+": Unexpected "+(w==v?"end of input":"'"+(this.terminals_[w]||w)+"'"),this.parseError(Y,{text:x.match,token:this.terminals_[w]||w,line:x.yylineno,loc:F,expected:W})}if(T[0]instanceof Array&&T.length>1)throw new Error("Parse Error: multiple actions possible at state: "+O+", token: "+w);switch(T[0]){case 1:c.push(w),d.push(x.yytext),o.push(x.yylloc),c.push(T[1]),w=null,G?(w=G,G=null):(P=x.yyleng,k=x.yytext,I=x.yylineno,F=x.yylloc,H>0);break;case 2:if(A=this.productions_[T[1]][1],j.$=d[d.length-A],j._$={first_line:o[o.length-(A||1)].first_line,last_line:o[o.length-1].last_line,first_column:o[o.length-(A||1)].first_column,last_column:o[o.length-1].last_column},mt&&(j._$.range=[o[o.length-(A||1)].range[0],o[o.length-1].range[1]]),q=this.performAction.apply(j,[k,P,I,$.yy,T[1],d,o].concat(N)),typeof q<"u")return q;A&&(c=c.slice(0,-1*A*2),d=d.slice(0,-1*A),o=o.slice(0,-1*A)),c.push(this.productions_[T[1]][0]),d.push(j.$),o.push(j._$),tt=m[c[c.length-2]][c[c.length-1]],c.push(tt);break;case 3:return!0}}return!0},"parse")},_=(function(){var g={EOF:1,parseError:r(function(a,c){if(this.yy.parser)this.yy.parser.parseError(a,c);else throw new Error(a)},"parseError"),setInput:r(function(a,c){return this.yy=c||this.yy||{},this._input=a,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match="",this.conditionStack=["INITIAL"],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},"setInput"),input:r(function(){var a=this._input[0];this.yytext+=a,this.yyleng++,this.offset++,this.match+=a,this.matched+=a;var c=a.match(/(?:\r\n?|\n).*/g);return c?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),a},"input"),unput:r(function(a){var c=a.length,h=a.split(/(?:\r\n?|\n)/g);this._input=a+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-c),this.offset-=c;var d=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),h.length-1&&(this.yylineno-=h.length-1);var o=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:h?(h.length===d.length?this.yylloc.first_column:0)+d[d.length-h.length].length-h[0].length:this.yylloc.first_column-c},this.options.ranges&&(this.yylloc.range=[o[0],o[0]+this.yyleng-c]),this.yyleng=this.yytext.length,this},"unput"),more:r(function(){return this._more=!0,this},"more"),reject:r(function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError("Lexical error on line "+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
||||
`+this.showPosition(),{text:"",token:null,line:this.yylineno});return this},"reject"),less:r(function(a){this.unput(this.match.slice(a))},"less"),pastInput:r(function(){var a=this.matched.substr(0,this.matched.length-this.match.length);return(a.length>20?"...":"")+a.substr(-20).replace(/\n/g,"")},"pastInput"),upcomingInput:r(function(){var a=this.match;return a.length<20&&(a+=this._input.substr(0,20-a.length)),(a.substr(0,20)+(a.length>20?"...":"")).replace(/\n/g,"")},"upcomingInput"),showPosition:r(function(){var a=this.pastInput(),c=new Array(a.length+1).join("-");return a+this.upcomingInput()+`
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user