Build: 周五 2026/01/09 16:11:24.55
This commit is contained in:
@@ -1 +1 @@
|
||||
import{_ as e,c as o,b as n,o as r}from"./app-DVyxS3f7.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://www.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-Bph9hmvC.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://www.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-NB_kGFXu.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-BIp-uSYj.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-NB_kGFXu.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-BIp-uSYj.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-NB_kGFXu.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-BIp-uSYj.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-NB_kGFXu.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-BIp-uSYj.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-NB_kGFXu.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-BIp-uSYj.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-NB_kGFXu.js";var l=e(()=>`
|
||||
import{m as e}from"./mermaid.esm.min-BIp-uSYj.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-BHQAJ5QI-DC6DSIpx.js";import"./chunk-ZZTKAOFA-B3lz9Dqp.js";import"./chunk-6EQESGSB-BneyAw67.js";import"./chunk-T244DUNM-DnRtSXSU.js";import{m as o}from"./mermaid.esm.min-NB_kGFXu.js";import"./app-DVyxS3f7.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-Cict2Qg9.js
Normal file
1
assets/classDiagram-HVPNVESH-Cict2Qg9.js
Normal file
@@ -0,0 +1 @@
|
||||
import{V as t,Q as a,C as s,l as e}from"./chunk-BHQAJ5QI-DyolrgUh.js";import"./chunk-ZZTKAOFA-DTvOQDf5.js";import"./chunk-6EQESGSB-CKYVKUnj.js";import"./chunk-T244DUNM-mqOStZhi.js";import{m as o}from"./mermaid.esm.min-BIp-uSYj.js";import"./app-Bph9hmvC.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-BHQAJ5QI-DC6DSIpx.js";import"./chunk-ZZTKAOFA-B3lz9Dqp.js";import"./chunk-6EQESGSB-BneyAw67.js";import"./chunk-T244DUNM-DnRtSXSU.js";import{m as o}from"./mermaid.esm.min-NB_kGFXu.js";import"./app-DVyxS3f7.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-Cict2Qg9.js
Normal file
1
assets/classDiagram-v2-KGF5QE6Q-Cict2Qg9.js
Normal file
@@ -0,0 +1 @@
|
||||
import{V as t,Q as a,C as s,l as e}from"./chunk-BHQAJ5QI-DyolrgUh.js";import"./chunk-ZZTKAOFA-DTvOQDf5.js";import"./chunk-6EQESGSB-CKYVKUnj.js";import"./chunk-T244DUNM-mqOStZhi.js";import{m as o}from"./mermaid.esm.min-BIp-uSYj.js";import"./app-Bph9hmvC.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-S85yEoTD.js";import{p as C}from"./treemap-KMMF4GRG-7ORZ52ND-ColCN-gz.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-NB_kGFXu.js";import"./chunk-OMTJKCYW-D7JA-4UK.js";import"./app-DVyxS3f7.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-BJJ5u12t.js";import{p as C}from"./treemap-KMMF4GRG-7ORZ52ND-CZuoUfoB.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-BIp-uSYj.js";import"./chunk-OMTJKCYW-DrcFdFs9.js";import"./app-Bph9hmvC.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-S85yEoTD.js";import{p as S}from"./treemap-KMMF4GRG-7ORZ52ND-ColCN-gz.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-NB_kGFXu.js";import"./chunk-OMTJKCYW-D7JA-4UK.js";import"./app-DVyxS3f7.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-BJJ5u12t.js";import{p as S}from"./treemap-KMMF4GRG-7ORZ52ND-CZuoUfoB.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-BIp-uSYj.js";import"./chunk-OMTJKCYW-DrcFdFs9.js";import"./app-Bph9hmvC.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-B3lz9Dqp.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-NB_kGFXu.js";import{m as he}from"./chunk-6EQESGSB-BneyAw67.js";import{y as de}from"./chunk-T244DUNM-DnRtSXSU.js";import"./app-DVyxS3f7.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-DTvOQDf5.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-BIp-uSYj.js";import{m as he}from"./chunk-6EQESGSB-CKYVKUnj.js";import{y as de}from"./chunk-T244DUNM-mqOStZhi.js";import"./app-Bph9hmvC.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
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 t,c as a,a as i,o as r}from"./app-DVyxS3f7.js";const n={};function o(s,e){return r(),a("div",null,[...e[0]||(e[0]=[i('<h2 id="文件处理相关" tabindex="-1"><a class="header-anchor" href="#文件处理相关"><span>文件处理相关</span></a></h2><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>wc -l * | tail -n 1</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div>',3)])])}const d=t(n,[["render",o]]),p=JSON.parse('{"path":"/ops/linux/other/","title":"一些零散的命令","lang":"zh-CN","frontmatter":{"title":"一些零散的命令","createTime":"2025/12/31 10:00:30","permalink":"/ops/linux/other/","description":"文件处理相关 统计当前目录下的所有文件加起来有多少行","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"一些零散的命令\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-04T01:50:14.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/linux/other/"}],["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":"2026-01-04T01:50:14.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-04T01:50:14.000Z"}]]},"readingTime":{"minutes":0.15,"words":45},"git":{"createdTime":1767491414000,"updatedTime":1767491414000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ops/linux/other.md","headers":[]}');export{d as comp,p as data};
|
||||
import{_ as t,c as a,a as i,o as r}from"./app-Bph9hmvC.js";const n={};function o(s,e){return r(),a("div",null,[...e[0]||(e[0]=[i('<h2 id="文件处理相关" tabindex="-1"><a class="header-anchor" href="#文件处理相关"><span>文件处理相关</span></a></h2><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>wc -l * | tail -n 1</span></span></code></pre><div class="line-numbers" aria-hidden="true" style="counter-reset:line-number 0;"><div class="line-number"></div></div></div>',3)])])}const d=t(n,[["render",o]]),p=JSON.parse('{"path":"/ops/linux/other/","title":"一些零散的命令","lang":"zh-CN","frontmatter":{"title":"一些零散的命令","createTime":"2025/12/31 10:00:30","permalink":"/ops/linux/other/","description":"文件处理相关 统计当前目录下的所有文件加起来有多少行","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"一些零散的命令\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/linux/other/"}],["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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.15,"words":45},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ops/linux/other.md","headers":[]}');export{d as comp,p as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o}from"./app-DVyxS3f7.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://www.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-Bph9hmvC.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://www.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};
|
||||
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 e,c as a,a as n,o as i}from"./app-DVyxS3f7.js";const l={};function t(d,s){return i(),a("div",null,[...s[0]||(s[0]=[n(`<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 n,o as i}from"./app-Bph9hmvC.js";const l={};function t(d,s){return i(),a("div",null,[...s[0]||(s[0]=[n(`<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 n,o as i}from"./app-DVyxS3f7.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":"/images/elysia/4.jpg","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://www.simengweb.com/images/elysia/4.jpg\\"],\\"dateModified\\":\\"2026-01-08T09:05:22.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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://www.simengweb.com/images/elysia/4.jpg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-08T09:05:22.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:src","content":"https://www.simengweb.com/images/elysia/4.jpg"}],["meta",{"name":"twitter:image:alt","content":"WSL2 核心操作指南"}],["meta",{"property":"article:modified_time","content":"2026-01-08T09:05:22.000Z"}]]},"readingTime":{"minutes":3.74,"words":1122},"git":{"createdTime":1759223056000,"updatedTime":1767863122000,"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"},{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"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":"/images/elysia/4.jpg","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://www.simengweb.com/images/elysia/4.jpg\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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://www.simengweb.com/images/elysia/4.jpg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T02:03:40.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:src","content":"https://www.simengweb.com/images/elysia/4.jpg"}],["meta",{"name":"twitter:image:alt","content":"WSL2 核心操作指南"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":3.74,"words":1122},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"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};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{_ as t,c as a,a as i,o as c}from"./app-DVyxS3f7.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://www.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,4 +1,4 @@
|
||||
import{_ as i,c as a,a as e,o as n}from"./app-DVyxS3f7.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-Bph9hmvC.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>
|
||||
@@ -68,4 +68,4 @@ import{_ as i,c as a,a as e,o as n}from"./app-DVyxS3f7.js";const l={};function h
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">ping</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> www.example.com</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="ifconfig-ip-查看网络接口信息" tabindex="-1"><a class="header-anchor" href="#ifconfig-ip-查看网络接口信息"><span>ifconfig/ip - 查看网络接口信息</span></a></h3><p>想了解你的网络配置?<code>ifconfig</code> 或 <code>ip</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;">ifconfig</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 或者</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">ip</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> addr</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><h2 id="小练习" tabindex="-1"><a class="header-anchor" href="#小练习"><span>小练习</span></a></h2><p>现在,让我们来做一个小练习吧!尝试使用今天学到的命令完成以下任务:</p><ol><li>在家目录下创建一个名为 <code>practice</code> 的文件夹</li><li>进入 <code>practice</code> 文件夹,创建一个名为 <code>notes.txt</code> 的文件</li><li>使用 <code>cat</code> 命令查看该文件(虽然现在它是空的)</li><li>返回上一级目录,然后使用 <code>ls -la</code> 查看所有文件和目录的详细信息</li></ol><p>怎么样?你都完成了吗?如果遇到了问题,不要着急,多试几次就会熟悉啦~ 😊</p><h2 id="小结" tabindex="-1"><a class="header-anchor" href="#小结"><span>小结</span></a></h2><p>今天我们学习了很多实用的 Linux 基础命令,这些命令就像是 Linux 世界的积木,只要你熟练掌握它们,就可以搭建出各种各样的奇妙作品~ 记得要多多练习哦,实践出真知嘛!</p><p>下次我们将学习更多高级的 Linux 命令和技巧,敬请期待~ 拜拜~ 👋</p>`,52)])])}const p=i(l,[["render",h]]),r=JSON.parse(`{"path":"/ops/linux/basic-commands/","title":"Linux 基础命令详解","lang":"zh-CN","frontmatter":{"title":"Linux 基础命令详解","createTime":"2025/09/28 10:45:00","permalink":"/ops/linux/basic-commands/","description":"Hello~ 欢迎来到 Linux 命令的奇妙世界!今天,爱莉希雅将带着祀梦一起探索那些最常用、最实用的 Linux 基础命令哦~ 准备好了吗?Let's go!🚀 文件与目录操作 ls - 查看目录内容 ls 命令就像是你的眼睛,可以帮你查看当前目录下有哪些文件和文件夹~ cd - 切换目录 cd 命令是你的小脚丫,可以带你在不同的目录之间穿梭~ ...","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://www.simengweb.com/ops/linux/basic-commands/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Linux 基础命令详解"}],["meta",{"property":"og:description","content":"Hello~ 欢迎来到 Linux 命令的奇妙世界!今天,爱莉希雅将带着祀梦一起探索那些最常用、最实用的 Linux 基础命令哦~ 准备好了吗?Let's go!🚀 文件与目录操作 ls - 查看目录内容 ls 命令就像是你的眼睛,可以帮你查看当前目录下有哪些文件和文件夹~ cd - 切换目录 cd 命令是你的小脚丫,可以带你在不同的目录之间穿梭~ ..."}],["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":3.87,"words":1160},"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/basic-commands.md","headers":[]}`);export{p as comp,r as data};
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">ip</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> addr</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><h2 id="小练习" tabindex="-1"><a class="header-anchor" href="#小练习"><span>小练习</span></a></h2><p>现在,让我们来做一个小练习吧!尝试使用今天学到的命令完成以下任务:</p><ol><li>在家目录下创建一个名为 <code>practice</code> 的文件夹</li><li>进入 <code>practice</code> 文件夹,创建一个名为 <code>notes.txt</code> 的文件</li><li>使用 <code>cat</code> 命令查看该文件(虽然现在它是空的)</li><li>返回上一级目录,然后使用 <code>ls -la</code> 查看所有文件和目录的详细信息</li></ol><p>怎么样?你都完成了吗?如果遇到了问题,不要着急,多试几次就会熟悉啦~ 😊</p><h2 id="小结" tabindex="-1"><a class="header-anchor" href="#小结"><span>小结</span></a></h2><p>今天我们学习了很多实用的 Linux 基础命令,这些命令就像是 Linux 世界的积木,只要你熟练掌握它们,就可以搭建出各种各样的奇妙作品~ 记得要多多练习哦,实践出真知嘛!</p><p>下次我们将学习更多高级的 Linux 命令和技巧,敬请期待~ 拜拜~ 👋</p>`,52)])])}const p=i(l,[["render",h]]),r=JSON.parse(`{"path":"/ops/linux/basic-commands/","title":"Linux 基础命令详解","lang":"zh-CN","frontmatter":{"title":"Linux 基础命令详解","createTime":"2025/09/28 10:45:00","permalink":"/ops/linux/basic-commands/","description":"Hello~ 欢迎来到 Linux 命令的奇妙世界!今天,爱莉希雅将带着祀梦一起探索那些最常用、最实用的 Linux 基础命令哦~ 准备好了吗?Let's go!🚀 文件与目录操作 ls - 查看目录内容 ls 命令就像是你的眼睛,可以帮你查看当前目录下有哪些文件和文件夹~ cd - 切换目录 cd 命令是你的小脚丫,可以带你在不同的目录之间穿梭~ ...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Linux 基础命令详解\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/linux/basic-commands/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Linux 基础命令详解"}],["meta",{"property":"og:description","content":"Hello~ 欢迎来到 Linux 命令的奇妙世界!今天,爱莉希雅将带着祀梦一起探索那些最常用、最实用的 Linux 基础命令哦~ 准备好了吗?Let's go!🚀 文件与目录操作 ls - 查看目录内容 ls 命令就像是你的眼睛,可以帮你查看当前目录下有哪些文件和文件夹~ cd - 切换目录 cd 命令是你的小脚丫,可以带你在不同的目录之间穿梭~ ..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":3.87,"words":1160},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ops/linux/basic-commands.md","headers":[]}`);export{p as comp,r as data};
|
||||
1
assets/index.html-BtRGoS3R.js
Normal file
1
assets/index.html-BtRGoS3R.js
Normal file
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-DVyxS3f7.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://www.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-Bph9hmvC.js";const l={};function n(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(l,[["render",n]]),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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":1.19,"words":356},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"filePathRelative":"notes/programming/c++/README.md","headers":[]}');export{p as comp,c as data};
|
||||
1
assets/index.html-C2sI0AVI.js
Normal file
1
assets/index.html-C2sI0AVI.js
Normal file
@@ -0,0 +1 @@
|
||||
import{_ as a,c as r,b as e,o}from"./app-Bph9hmvC.js";const n={};function c(i,t){return o(),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 p=a(n,[["render",c]]),m=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.55,"words":164},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/c++/basis.md","headers":[]}');export{p as comp,m as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as a,a as o,o as n}from"./app-DVyxS3f7.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://www.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 r}from"./app-Bph9hmvC.js";const n={};function c(p,e){return r(),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(n,[["render",c]]),d=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":1.54,"words":461},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ops/blockchain/README.md","headers":[]}');export{s as comp,d 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
assets/index.html-CHu9Tkqs.js
Normal file
1
assets/index.html-CHu9Tkqs.js
Normal file
@@ -0,0 +1 @@
|
||||
import{_ as t,c as i,a,o as s}from"./app-Bph9hmvC.js";const c={};function n(o,e){return s(),i("div",null,[...e[0]||(e[0]=[a('<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(c,[["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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.41,"words":123},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/README.md","headers":[]}');export{l as comp,d as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -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-DVyxS3f7.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-Bph9hmvC.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(`
|
||||
@@ -276,4 +276,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
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," ;"),i("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," when"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," sdk_allowlist"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," is"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," not"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," empty,"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," only"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," the"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," SDK"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," in"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," the"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," allowlist"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," can"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," connect"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," to"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," this"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," node")]),s(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," ;"),i("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}}," public_key.0"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," should"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," be"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," nodeid,"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," nodeid"),i("span",{style:{"--shiki-light":"#B5695977","--shiki-dark":"#C98A7D77"}},"'"),i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}},"s length is 128")]),s(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#B56959","--shiki-dark":"#C98A7D"}}," ;public_key.0=")])])]),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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"}),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)])]),tab3:a(({value:h,isActive:n})=>[...l[7]||(l[7]=[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"}},"# 节点的 ID")]),s(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}},"f0535616759000b473a285d60814bc2c5927a9cb897644da46890de71e59df590cd6fe1b226a95e19a566b6fc127fd85032de0d9fdd3d529e5e50cd96ad51f28")])])]),i("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[i("div",{class:"line-number"}),i("div",{class:"line-number"})])],-1)])]),_:1}),l[9]||(l[9]=k('<h2 id="节点操作命令" tabindex="-1"><a class="header-anchor" href="#节点操作命令"><span>节点操作命令</span></a></h2><ul><li><p><code>addSealer</code>:将节点转换为共识节点。</p></li><li><p><code>addObserver</code>:将节点转换为观察节点。</p></li><li><p><code>removeNode</code>:将节点设置为游离节点。</p></li><li><p><code>getSealerList</code>:查询当前的共识节点的列表</p></li><li><p><code>getObserverList</code>:查询当前的观察者节点的列表·</p></li><li><p><code>getNodeList</code>:查询当前的所有节点的列表</p></li></ul><p>操作节点的时候是通过节点ID进行操作的,节点ID可以在节点目录的<code>conf/node.nodeid</code>中获取</p><p>请确保节点加入的区块链所有节点共识正常:正常的节点会输出<code>+++</code>日志</p><h2 id="参考文章" tabindex="-1"><a class="header-anchor" href="#参考文章"><span>参考文章:</span></a></h2><ol><li><p><a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/manual/node_management.html" target="_blank" rel="noopener noreferrer">组员节点管理</a></p></li><li><p><a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/design/features/storage_security.html" target="_blank" rel="noopener noreferrer">落盘加密</a></p></li><li><p><a href="https://blog.csdn.net/LforikQ/article/details/130920092" target="_blank" rel="noopener noreferrer">【全网首发】FISCO-BCOS从底层讲起链从配置文件开始解析...</a></p></li><li><p><a href="https://blog.csdn.net/qq_57309855/article/details/126334115" target="_blank" rel="noopener noreferrer">【教程】如何修改FISCO-BCOS内的EVM的gas值,让区块链预防DOS攻击...</a></p></li></ol>',6))])}const B=t(A,[["render",y]]),o=JSON.parse('{"path":"/ops/blockchain/theory/fisco-bcos-node-type/","title":"区块链的节点","lang":"zh-CN","frontmatter":{"title":"区块链的节点","createTime":"2025/10/05 13:07:05","permalink":"/ops/blockchain/theory/fisco-bcos-node-type/","description":"节点的基础概念 FISCO BCOS 引入了游离节点、观察者节点和共识节点,这三种节点类型可以通过控制台互相转换。 组员: 共识节点:参与共识的节点,拥有群组的所有数据(搭链时默认都生成共识节点)。 观察者节点:不参与共识,但能实时同步链上数据的节点。 非组员: 游离节点:已启动,等待加入群组的节点。处在一种暂时的节点状态,不能获取链上的数据。 节点配...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"区块链的节点\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-05T09:43:04.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/blockchain/theory/fisco-bcos-node-type/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"区块链的节点"}],["meta",{"property":"og:description","content":"节点的基础概念 FISCO BCOS 引入了游离节点、观察者节点和共识节点,这三种节点类型可以通过控制台互相转换。 组员: 共识节点:参与共识的节点,拥有群组的所有数据(搭链时默认都生成共识节点)。 观察者节点:不参与共识,但能实时同步链上数据的节点。 非组员: 游离节点:已启动,等待加入群组的节点。处在一种暂时的节点状态,不能获取链上的数据。 节点配..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-05T09:43:04.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-05T09:43:04.000Z"}]]},"readingTime":{"minutes":7.44,"words":2233},"git":{"createdTime":1759656932000,"updatedTime":1759657384000,"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"}]},"autoDesc":true,"filePathRelative":"notes/ops/blockchain/theory/fisco-bcos-node-type.md","headers":[]}');export{B as comp,o as data};
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#59873A","--shiki-dark":"#80A665"}},"f0535616759000b473a285d60814bc2c5927a9cb897644da46890de71e59df590cd6fe1b226a95e19a566b6fc127fd85032de0d9fdd3d529e5e50cd96ad51f28")])])]),i("div",{class:"line-numbers","aria-hidden":"true",style:{"counter-reset":"line-number 0"}},[i("div",{class:"line-number"}),i("div",{class:"line-number"})])],-1)])]),_:1}),l[9]||(l[9]=k('<h2 id="节点操作命令" tabindex="-1"><a class="header-anchor" href="#节点操作命令"><span>节点操作命令</span></a></h2><ul><li><p><code>addSealer</code>:将节点转换为共识节点。</p></li><li><p><code>addObserver</code>:将节点转换为观察节点。</p></li><li><p><code>removeNode</code>:将节点设置为游离节点。</p></li><li><p><code>getSealerList</code>:查询当前的共识节点的列表</p></li><li><p><code>getObserverList</code>:查询当前的观察者节点的列表·</p></li><li><p><code>getNodeList</code>:查询当前的所有节点的列表</p></li></ul><p>操作节点的时候是通过节点ID进行操作的,节点ID可以在节点目录的<code>conf/node.nodeid</code>中获取</p><p>请确保节点加入的区块链所有节点共识正常:正常的节点会输出<code>+++</code>日志</p><h2 id="参考文章" tabindex="-1"><a class="header-anchor" href="#参考文章"><span>参考文章:</span></a></h2><ol><li><p><a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/manual/node_management.html" target="_blank" rel="noopener noreferrer">组员节点管理</a></p></li><li><p><a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/design/features/storage_security.html" target="_blank" rel="noopener noreferrer">落盘加密</a></p></li><li><p><a href="https://blog.csdn.net/LforikQ/article/details/130920092" target="_blank" rel="noopener noreferrer">【全网首发】FISCO-BCOS从底层讲起链从配置文件开始解析...</a></p></li><li><p><a href="https://blog.csdn.net/qq_57309855/article/details/126334115" target="_blank" rel="noopener noreferrer">【教程】如何修改FISCO-BCOS内的EVM的gas值,让区块链预防DOS攻击...</a></p></li></ol>',6))])}const B=t(A,[["render",y]]),o=JSON.parse('{"path":"/ops/blockchain/theory/fisco-bcos-node-type/","title":"区块链的节点","lang":"zh-CN","frontmatter":{"title":"区块链的节点","createTime":"2025/10/05 13:07:05","permalink":"/ops/blockchain/theory/fisco-bcos-node-type/","description":"节点的基础概念 FISCO BCOS 引入了游离节点、观察者节点和共识节点,这三种节点类型可以通过控制台互相转换。 组员: 共识节点:参与共识的节点,拥有群组的所有数据(搭链时默认都生成共识节点)。 观察者节点:不参与共识,但能实时同步链上数据的节点。 非组员: 游离节点:已启动,等待加入群组的节点。处在一种暂时的节点状态,不能获取链上的数据。 节点配...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"区块链的节点\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/blockchain/theory/fisco-bcos-node-type/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"区块链的节点"}],["meta",{"property":"og:description","content":"节点的基础概念 FISCO BCOS 引入了游离节点、观察者节点和共识节点,这三种节点类型可以通过控制台互相转换。 组员: 共识节点:参与共识的节点,拥有群组的所有数据(搭链时默认都生成共识节点)。 观察者节点:不参与共识,但能实时同步链上数据的节点。 非组员: 游离节点:已启动,等待加入群组的节点。处在一种暂时的节点状态,不能获取链上的数据。 节点配..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":7.44,"words":2233},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ops/blockchain/theory/fisco-bcos-node-type.md","headers":[]}');export{B as comp,o 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-DVyxS3f7.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-Bph9hmvC.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 q(T,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-DVyx
|
||||
`),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]]),w=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://www.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,w 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",q]]),w=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":6.94,"words":2083},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/web/basic-syntax/html-lists-and-semantic-layout.md","headers":[]}');export{L as comp,w as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as a,b as e,o as n}from"./app-DVyxS3f7.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://www.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-Bph9hmvC.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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.21,"words":62},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"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 +1 @@
|
||||
import{_ as t,c as e,o as n}from"./app-DVyxS3f7.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://www.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-Bph9hmvC.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://www.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};
|
||||
134
assets/index.html-CcDirgyw.js
Normal file
134
assets/index.html-CcDirgyw.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as a,c as o,b as e,o as n}from"./app-DVyxS3f7.js";const r={};function i(c,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://www.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-Bph9hmvC.js";const r={};function i(c,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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.24,"words":72},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"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};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,a as n,o as l}from"./app-DVyxS3f7.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-Bph9hmvC.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>
|
||||
@@ -35,4 +35,4 @@ import{_ as i,c as a,a as n,o as l}from"./app-DVyxS3f7.js";const e={};function h
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> a </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> new</span><span style="--shiki-light:#2E8F82;--shiki-dark:#5DA994;"> uint</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">[](</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">n</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">)</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</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;"> i </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> i </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"><</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> n</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">;</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> i</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">++</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> a</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">i</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> i</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 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 class="line-number"></div><div class="line-number"></div></div></div><h3 id="常见坑与实践建议" tabindex="-1"><a class="header-anchor" href="#常见坑与实践建议"><span>常见坑与实践建议</span></a></h3><ul><li>给 <code>storage</code> 变量整体赋值会进行深拷贝或引用变更(依据类型),要明确拷贝成本与语义。</li><li>修改 <code>memory</code> 副本不会持久化;要修改链上状态请使用 <code>storage</code> 引用。</li><li>大型 <code>string/bytes/数组</code> 在 <code>memory↔storage</code> 间复制成本高,尽量减少不必要的复制。</li><li>外部函数能用 <code>calldata</code> 的地方尽量使用(只读参数),节省 gas。</li></ul>`,17)])])}const p=i(e,[["render",h]]),d=JSON.parse('{"path":"/programming/solidity/other/miscellaneous/","title":"一些没分类的小知识","lang":"zh-CN","frontmatter":{"title":"一些没分类的小知识","createTime":"2025/10/12 15:34:38","permalink":"/programming/solidity/other/miscellaneous/","description":"关于 memory 和 storage 存储类型 storage:合约的持久化状态数据,保存在链上状态。对 storage 的写入最昂贵,读取也比内存贵;修改会永久生效。 memory:函数调用期间的临时数据,函数返回后即释放。对 memory 的更改不会持久化。 (补充)calldata:外部函数参数的只读数据位置,零拷贝、不可修改,用于节省 gas...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"一些没分类的小知识\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-20T12:25:23.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/programming/solidity/other/miscellaneous/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"一些没分类的小知识"}],["meta",{"property":"og:description","content":"关于 memory 和 storage 存储类型 storage:合约的持久化状态数据,保存在链上状态。对 storage 的写入最昂贵,读取也比内存贵;修改会永久生效。 memory:函数调用期间的临时数据,函数返回后即释放。对 memory 的更改不会持久化。 (补充)calldata:外部函数参数的只读数据位置,零拷贝、不可修改,用于节省 gas..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-20T12:25:23.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-20T12:25:23.000Z"}]]},"readingTime":{"minutes":2.4,"words":721},"git":{"createdTime":1760427548000,"updatedTime":1760963123000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":2,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/solidity/other/miscellaneous.md","headers":[]}');export{p as comp,d as data};
|
||||
<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 class="line-number"></div><div class="line-number"></div></div></div><h3 id="常见坑与实践建议" tabindex="-1"><a class="header-anchor" href="#常见坑与实践建议"><span>常见坑与实践建议</span></a></h3><ul><li>给 <code>storage</code> 变量整体赋值会进行深拷贝或引用变更(依据类型),要明确拷贝成本与语义。</li><li>修改 <code>memory</code> 副本不会持久化;要修改链上状态请使用 <code>storage</code> 引用。</li><li>大型 <code>string/bytes/数组</code> 在 <code>memory↔storage</code> 间复制成本高,尽量减少不必要的复制。</li><li>外部函数能用 <code>calldata</code> 的地方尽量使用(只读参数),节省 gas。</li></ul>`,17)])])}const p=i(e,[["render",h]]),d=JSON.parse('{"path":"/programming/solidity/other/miscellaneous/","title":"一些没分类的小知识","lang":"zh-CN","frontmatter":{"title":"一些没分类的小知识","createTime":"2025/10/12 15:34:38","permalink":"/programming/solidity/other/miscellaneous/","description":"关于 memory 和 storage 存储类型 storage:合约的持久化状态数据,保存在链上状态。对 storage 的写入最昂贵,读取也比内存贵;修改会永久生效。 memory:函数调用期间的临时数据,函数返回后即释放。对 memory 的更改不会持久化。 (补充)calldata:外部函数参数的只读数据位置,零拷贝、不可修改,用于节省 gas...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"一些没分类的小知识\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/programming/solidity/other/miscellaneous/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"一些没分类的小知识"}],["meta",{"property":"og:description","content":"关于 memory 和 storage 存储类型 storage:合约的持久化状态数据,保存在链上状态。对 storage 的写入最昂贵,读取也比内存贵;修改会永久生效。 memory:函数调用期间的临时数据,函数返回后即释放。对 memory 的更改不会持久化。 (补充)calldata:外部函数参数的只读数据位置,零拷贝、不可修改,用于节省 gas..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":2.4,"words":721},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/solidity/other/miscellaneous.md","headers":[]}');export{p as comp,d as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
import{_ as t,c as a,a as i,o as l}from"./app-DVyxS3f7.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 s=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://www.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{s as comp,p as data};
|
||||
import{_ as t,c as a,a as i,o as l}from"./app-Bph9hmvC.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 s=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":1.38,"words":415},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"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{s as comp,p as data};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as e,c as s,a,o as t}from"./app-DVyxS3f7.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-Bph9hmvC.js";const l={};function d(n,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>
|
||||
@@ -9,4 +9,4 @@ import{_ as e,c as s,a,o as t}from"./app-DVyxS3f7.js";const l={};function n(d,i)
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">/*</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">这是一个</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;">块注释</span></span>
|
||||
<span class="line"><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>`,22)])])}const c=e(l,[["render",n]]),r=JSON.parse('{"path":"/programming/solidity/basic-syntax/","title":"Solidity 基础语法与数据类型","lang":"zh-CN","frontmatter":{"title":"Solidity 基础语法与数据类型","createTime":"2025/09/22 10:30:00","permalink":"/programming/solidity/basic-syntax/","description":"Solidity 文件基础框架 Solidity 文件的基础框架通常包含以下几个部分: SPDX 许可证标识符 (SPDX License Identifier):为了避免法律问题和明确智能合约的开源许可证,建议在合约的开头添加 SPDX 许可证标识符。 Solidity 版本声明 (Pragma):这会告诉编译器您希望使用哪个版本的 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://www.simengweb.com/programming/solidity/basic-syntax/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Solidity 基础语法与数据类型"}],["meta",{"property":"og:description","content":"Solidity 文件基础框架 Solidity 文件的基础框架通常包含以下几个部分: SPDX 许可证标识符 (SPDX License Identifier):为了避免法律问题和明确智能合约的开源许可证,建议在合约的开头添加 SPDX 许可证标识符。 Solidity 版本声明 (Pragma):这会告诉编译器您希望使用哪个版本的 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":2,"words":600},"git":{"createdTime":1759059454000,"updatedTime":1760064875000,"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"},{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/solidity/basic-syntax.md","headers":[]}');export{c as comp,r as data};
|
||||
<span class="line"><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>`,22)])])}const c=e(l,[["render",d]]),r=JSON.parse('{"path":"/programming/solidity/basic-syntax/","title":"Solidity 基础语法与数据类型","lang":"zh-CN","frontmatter":{"title":"Solidity 基础语法与数据类型","createTime":"2025/09/22 10:30:00","permalink":"/programming/solidity/basic-syntax/","description":"Solidity 文件基础框架 Solidity 文件的基础框架通常包含以下几个部分: SPDX 许可证标识符 (SPDX License Identifier):为了避免法律问题和明确智能合约的开源许可证,建议在合约的开头添加 SPDX 许可证标识符。 Solidity 版本声明 (Pragma):这会告诉编译器您希望使用哪个版本的 Solidity...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Solidity 基础语法与数据类型\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/programming/solidity/basic-syntax/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Solidity 基础语法与数据类型"}],["meta",{"property":"og:description","content":"Solidity 文件基础框架 Solidity 文件的基础框架通常包含以下几个部分: SPDX 许可证标识符 (SPDX License Identifier):为了避免法律问题和明确智能合约的开源许可证,建议在合约的开头添加 SPDX 许可证标识符。 Solidity 版本声明 (Pragma):这会告诉编译器您希望使用哪个版本的 Solidity..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":2,"words":600},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/solidity/basic-syntax.md","headers":[]}');export{c as comp,r as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./app-DVyxS3f7.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-Bph9hmvC.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 +0,0 @@
|
||||
import{_ as t,c as r,a as i,o}from"./app-DVyxS3f7.js";const a={};function n(p,e){return o(),r("div",null,[...e[0]||(e[0]=[i('<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://www.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 +1 @@
|
||||
import{_ as a,c as n,b as t,o as r}from"./app-DVyxS3f7.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://www.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-Bph9hmvC.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 s=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.15,"words":46},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/writing-translation/README.md","headers":[]}');export{s as comp,m as data};
|
||||
130
assets/index.html-D9EAuU7p.js
Normal file
130
assets/index.html-D9EAuU7p.js
Normal file
@@ -0,0 +1,130 @@
|
||||
import{_ as i,c as a,a as n,o as h}from"./app-Bph9hmvC.js";const k={};function l(p,s){return h(),a("div",null,[...s[0]||(s[0]=[n(`<h2 id="一、x-质数" tabindex="-1"><a class="header-anchor" href="#一、x-质数"><span>一、X 质数</span></a></h2><h3 id="题目" tabindex="-1"><a class="header-anchor" href="#题目"><span>题目</span></a></h3><p>题目链接:0X质数 - 蓝桥云课</p><h3 id="问题描述" tabindex="-1"><a class="header-anchor" href="#问题描述"><span>问题描述</span></a></h3><p>对于一个含有 M 个数位的正整数 N ,任意选中其中 K 个不同的数位(0≤K<M),将这些选中的数位删除之后,余下的数位按照原来的顺序组成了一个新的数字 P 。如果至少存在一个 P 是质数,我们就称 N 是一个 X 质数。例如,对于整数 7869 ,我们可以删去 7 和 6 ,得到一个新的数字 89 ,由于 89 是一个质数,因此 7869 是一个 X 质数。又如,对于整数 77 ,可以删去一个 7 后变为质数 7 ,因此 77 也是一个 X 质数。</p><p>请问 1 (含)至 1000000(含)中一共有多少个不同的 X 质数。</p><h3 id="解析" tabindex="-1"><a class="header-anchor" href="#解析"><span>解析</span></a></h3><p>先通过埃氏筛,获取到范围内的所有质数。然后遍历每个数字的所有子串,查看是否满足 X 质数的定义,我们只要找到一个符合条件的子串即可退出循环,只要子串是质数或者 X 质数,我们都可以认定当前数字为 X 质数。</p><p>这里在寻找每个数的子串的时候,可以采用二进制的方式,详情查看:通过位运算快速生成所有的子序列|祀梦的个人博客</p><h3 id="答案" tabindex="-1"><a class="header-anchor" href="#答案"><span>答案</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" 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-python"><span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># import os</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># import sys</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># def is_prime(n):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># _nums = [True] * (n + 1)</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># _nums[0] = _nums[1] = False</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># for i in range(2, n):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># if _nums[i]:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># for j in range(i ** 2, n + 1, i):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># _nums[j] = False</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># return _nums</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># N = 1000000</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># nums = is_prime(N)</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># ans = 0</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># for num in range(N + 1):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># digits = [int(n) for n in str(num)]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># length = len(str(num))</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># for mask in range(1,1 << length):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># subseq = 0</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># for i in range(length):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># if mask & ( 1 << i ):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># subseq = subseq * 10 + digits[i]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># if nums[subseq]:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># nums[num] = True</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># ans += 1</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># break</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># print(ans) # 989457</span></span>
|
||||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">print</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">989457</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 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 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><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>题目</span></a></h3><p>题目链接:0钉板上的正方形 - 蓝桥云课</p><h3 id="问题描述-1" tabindex="-1"><a class="header-anchor" href="#问题描述-1"><span>问题描述</span></a></h3><p>小蓝有一个大小为 10×1010×10 钉板,如下图所示,上面等距分布着 10×1010×10 个钉槽(上下/左右相邻的钉槽之间的距离均相同)。其中有一些钉槽上面有钉子, 在图中用红色来进行标注,白色则表示此处没有钉子。小蓝喜欢用橡皮筋在钉 子上围出正方形图案,即选择钉板上的四个钉子,将其作为正方形的四个顶点, 从而把橡皮筋拉伸为一个正方形。</p><p>现在,小蓝想要知道在这个钉板上,可以围出多少种边长不同的正方 形?(相同边长的正方形均视作是同一种,不用考虑正方形的位置)。图中展示 了三种不同边长的正方形,其中蓝色线条表示橡皮筋。</p><h3 id="解析-1" tabindex="-1"><a class="header-anchor" href="#解析-1"><span>解析</span></a></h3><p>参考了评论区的大哥(马国良的个人主页 - 蓝桥云课)的思路,如下图所示</p><p>dr 为行之间的差距</p><p>dc 为列之间的差距</p><p>我们遍历 A 和 B,计算 C 和 D 的坐标,分别为 ( x2 + dr , y2 - dc ),( x1 + dr , y1 - dc )</p><p>然后确保CD没有超过棋盘范围并且都有钉子即可</p><h3 id="答案-1" tabindex="-1"><a class="header-anchor" href="#答案-1"><span>答案</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" 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-python"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> os</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> sys</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">from</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> itertools </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> combinations</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">arr </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 style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</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:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</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:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</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:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</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:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</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:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</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:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</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:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</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:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</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:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</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 style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">points </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">i</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> j</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> i </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">10</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> j </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">10</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> arr</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">i</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">j</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">squares </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> set</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">for</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">x1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">),</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">x2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> in</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> combinations</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">points</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> dx</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> dy </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> x1 </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> x2</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y1 </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y2</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> x3 </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> x2 </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> dy</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y3 </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y2 </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> dx</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> x4 </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> x1 </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> dy</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y4 </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y1 </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> dx</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> all</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> <=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> coord </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"><</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 10</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> coord </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">x3</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y3</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> x4</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y4</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> arr</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">x3</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">y3</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> and</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> arr</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">x4</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">y4</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> squares</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">add</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">dx</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">*</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">dx </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> dy</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">*</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">dy</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
|
||||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">print</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">len</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">squares</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 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 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><h2 id="三、整数变换" tabindex="-1"><a class="header-anchor" href="#三、整数变换"><span>三、整数变换</span></a></h2><h3 id="题目-2" tabindex="-1"><a class="header-anchor" href="#题目-2"><span>题目</span></a></h3><p>题目链接:0整数变换 - 蓝桥云课</p><h3 id="问题描述-2" tabindex="-1"><a class="header-anchor" href="#问题描述-2"><span>问题描述</span></a></h3><p>小蓝有一个整数 n。每分钟,小蓝的数都会发生变化,变为上一分钟的数减去上一分钟的数的各个数位和。</p><p>例如,如果小蓝开始时的数为 23,则下一分钟变为 23−(2+3)=18,再下一分钟变为 18−(1+8)=9,再下一分钟变为 9−9=0,共经过了 3 分钟变为 0。</p><p>给定一个正整数,请问这个数多少分钟后变为 0。</p><h3 id="解析-2" tabindex="-1"><a class="header-anchor" href="#解析-2"><span>解析</span></a></h3><p>这题直接暴力就过了。</p><p>Python3 跑出来只能通过 60% 的测试用例,用 PyPy3 就好了。</p><h3 id="答案-2" tabindex="-1"><a class="header-anchor" href="#答案-2"><span>答案</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" 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-python"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> os</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> sys</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">num </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> int</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">input</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">())</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">count </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">while</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">!=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">-=</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> sum</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">map</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">int</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">num</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)))</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> count </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">+=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span></span>
|
||||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">print</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">count</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 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="整数变换的第二种做法" tabindex="-1"><a class="header-anchor" href="#整数变换的第二种做法"><span>整数变换的第二种做法</span></a></h3><h3 id="答案-3" tabindex="-1"><a class="header-anchor" href="#答案-3"><span>答案</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" 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-python"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> os</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> sys</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 对 1000 以内的数进行预处理</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># difference[i][j] 代表每次减去 sum_digits(i) + j 之后,剩余的值,可能为负数</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># step[i][j] 记录最终结果</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 题目中数字的最大值范围为 10的9 次方,我们每一步多减去的 j 值代表的其实是前六位的和</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># j 最大也就是 54( 前六位都是9 )</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">difference </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [[</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> _ </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">55</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)]</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> _ </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1000</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">step </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [[</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> _ </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">55</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)]</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> _ </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1000</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)]</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 这里要考虑一下边界情况,有可能后三位为 0 前六位还有</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 这个时候要减去前六位的值</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 并且步数需要加一步</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">difference</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</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 style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">num </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">55</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">step</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</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 style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> +</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> [</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">54</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)]</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 先计算出 0 ~ 999 以内的数的值</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> i </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1000</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # 遍历所有可能的 j 值</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> j </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">55</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> ans</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">num </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">i</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> while</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">></span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">-=</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> sum</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">map</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">int</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">num</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)))</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> +</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> j </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> ans </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">+=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> difference</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">i</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">j</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> step</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">i</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">j</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> =</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> ans</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 当 num 小于 1000 的时候直接返回</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">num </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> int</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">input</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">())</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"><</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1000</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> print</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">step</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">num</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">])</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">else</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> ans </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> while</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"><</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1000</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> ans </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">+=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> step</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">num</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> break</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # x 为前六位</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # y 为后三位</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> x </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">//</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1000</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> y </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">%</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1000</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"> # 直接加上步数,以及溢出的值即可</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> ans </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">+=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> step</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">y</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">sum</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">map</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">int</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">x</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)))]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> num </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> x </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">*</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1000</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> +</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> difference</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">y</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">sum</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">map</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">int</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">str</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">x</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)))]</span></span>
|
||||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> print</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ans</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 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 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 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><h2 id="四、火车运输" tabindex="-1"><a class="header-anchor" href="#四、火车运输"><span>四、火车运输</span></a></h2><h2 id="五、最大区间" tabindex="-1"><a class="header-anchor" href="#五、最大区间"><span>五、最大区间</span></a></h2><h3 id="题目-3" tabindex="-1"><a class="header-anchor" href="#题目-3"><span>题目</span></a></h3><p>题目链接:0最大区间 - 蓝桥云课</p><h3 id="问题描述-3" tabindex="-1"><a class="header-anchor" href="#问题描述-3"><span>问题描述</span></a></h3><p>给定一个长度为 n 的序列 Ai,求 L,R 使 (R−L+1)⋅min(AL,AL+1,…,AR) 尽可能大,其中 min 表示最小值。</p><p>你只需要输出最大的值即可,不需要输出具体的 L,R。</p><h3 id="解析-3" tabindex="-1"><a class="header-anchor" href="#解析-3"><span>解析</span></a></h3><p>这道题要求给定字符串中的 (R−L+1)⋅min(AL,AL+1,…,AR) 的最大值,每次计算区间内的最小值再扩展区间很麻烦,我们可以转换一下思路以当前元素为区间内的最小元素,视为右边界,然后不断向左边扩展,一直到小于当前元素的位置停下,就可以得到当前区间的结果。(这里为什么不用向右边扩展,因为如果存在这种情况的话,右边向左扩展的时候会包括这一段)我们可以采用单调递增栈来加快寻找的速度,0 是为了确保清空栈。</p><p>可以用下面这个例子 debug 一下程序查看运行过程。</p><p>n = 6</p><p>A = [1,2,3,2,3,2]</p><p>(感觉解释的还是不太够清楚,有啥问题可以直接评论)</p><h3 id="答案-4" tabindex="-1"><a class="header-anchor" href="#答案-4"><span>答案</span></a></h3><div class="language-python line-numbers-mode" data-highlighter="shiki" data-ext="python" 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-python"><span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> os</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">import</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> sys</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">n </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> int</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">input</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">())</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">A </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> list</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">map</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">int</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">,</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">input</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">().</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">split</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()))</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">A</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">append</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">0</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">stack </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:#393A34;--shiki-dark:#DBD7CAEE;">ans </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 0</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">for</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> i </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">in</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> range</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">n</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">+</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">):</span></span>
|
||||
<span class="line"><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> while</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> stack </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">and</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> A</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">i</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> <=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> A</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">stack</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]]:</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> prev_i </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> stack</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">pop</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">()</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> L </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> stack</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;"> if</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> stack </span><span style="--shiki-light:#1E754F;--shiki-dark:#4D9375;">else</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> -</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;">1</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> ans </span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#998418;--shiki-dark:#B8A965;"> max</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> (</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> i </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> L </span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">-</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> )</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;"> *</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> A</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">prev_i</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#999999;--shiki-dark:#666666;"> ,</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ans</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> stack</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">.</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">append</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">i</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">)</span></span>
|
||||
<span class="line"></span>
|
||||
<span class="line"><span style="--shiki-light:#998418;--shiki-dark:#B8A965;">print</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">(</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">ans</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 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><h2 id="六、等腰三角形" tabindex="-1"><a class="header-anchor" href="#六、等腰三角形"><span>六、等腰三角形</span></a></h2><h2 id="七、连续数组" tabindex="-1"><a class="header-anchor" href="#七、连续数组"><span>七、连续数组</span></a></h2><h2 id="八、质数排序" tabindex="-1"><a class="header-anchor" href="#八、质数排序"><span>八、质数排序</span></a></h2><h2 id="九、选段排序" tabindex="-1"><a class="header-anchor" href="#九、选段排序"><span>九、选段排序</span></a></h2><h2 id="十、最长同类子串" tabindex="-1"><a class="header-anchor" href="#十、最长同类子串"><span>十、最长同类子串</span></a></h2>`,60)])])}const e=i(k,[["render",l]]),d=JSON.parse('{"path":"/archives/b1c77a1d-d402-4788-8049-fa3aeb12ebd0/","title":"第十四届蓝桥杯大赛软件赛国赛 Python 研究生组(正在更新)","lang":"zh-CN","frontmatter":{"title":"第十四届蓝桥杯大赛软件赛国赛 Python 研究生组(正在更新)","createTime":"2026/01/09 15:57:22","cover":"/images/elysia/8.jpg","coverStyle":{"layout":"right"},"permalink":"/archives/b1c77a1d-d402-4788-8049-fa3aeb12ebd0/","description":"一、X 质数 题目 题目链接:0X质数 - 蓝桥云课 问题描述 对于一个含有 M 个数位的正整数 N ,任意选中其中 K 个不同的数位(0≤K<M),将这些选中的数位删除之后,余下的数位按照原来的顺序组成了一个新的数字 P 。如果至少存在一个 P 是质数,我们就称 N 是一个 X 质数。例如,对于整数 7869 ,我们可以删去 7 和 6 ,得到一个新...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"第十四届蓝桥杯大赛软件赛国赛 Python 研究生组(正在更新)\\",\\"image\\":[\\"https://www.simengweb.com/images/elysia/8.jpg\\"],\\"dateModified\\":\\"2026-01-09T08:10:29.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/archives/b1c77a1d-d402-4788-8049-fa3aeb12ebd0/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"第十四届蓝桥杯大赛软件赛国赛 Python 研究生组(正在更新)"}],["meta",{"property":"og:description","content":"一、X 质数 题目 题目链接:0X质数 - 蓝桥云课 问题描述 对于一个含有 M 个数位的正整数 N ,任意选中其中 K 个不同的数位(0≤K<M),将这些选中的数位删除之后,余下的数位按照原来的顺序组成了一个新的数字 P 。如果至少存在一个 P 是质数,我们就称 N 是一个 X 质数。例如,对于整数 7869 ,我们可以删去 7 和 6 ,得到一个新..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://www.simengweb.com/images/elysia/8.jpg"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T08:10:29.000Z"}],["meta",{"name":"twitter:card","content":"summary_large_image"}],["meta",{"name":"twitter:image:src","content":"https://www.simengweb.com/images/elysia/8.jpg"}],["meta",{"name":"twitter:image:alt","content":"第十四届蓝桥杯大赛软件赛国赛 Python 研究生组(正在更新)"}],["meta",{"property":"article:modified_time","content":"2026-01-09T08:10:29.000Z"}]]},"readingTime":{"minutes":6.49,"words":1947},"git":{"createdTime":1767946229000,"updatedTime":1767946229000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"blog/competition/14th-lanqiaocup-python-grad.md","headers":[],"categoryList":[{"id":"126ac9","sort":10000,"name":"blog"},{"id":"83ee8d","sort":10002,"name":"competition"}]}');export{e as comp,d as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
||||
import{_ as e,c as t,o}from"./app-DVyxS3f7.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://www.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};
|
||||
File diff suppressed because one or more lines are too long
@@ -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-DVyxS3f7.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-Bph9hmvC.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>
|
||||
@@ -322,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-12-05T05:32:37.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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};
|
||||
<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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":8.39,"words":2518},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/web/basic-syntax/javascript-basics.md","headers":[]}');export{m as comp,b as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./app-DVyxS3f7.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-Bph9hmvC.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};
|
||||
1
assets/index.html-DRv5T0VR.js
Normal file
1
assets/index.html-DRv5T0VR.js
Normal file
@@ -0,0 +1 @@
|
||||
import{_ as t,c as r,a as o,o as i}from"./app-Bph9hmvC.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 d=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.44,"words":132},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"filePathRelative":"notes/programming/solidity/README.md","headers":[]}');export{d as comp,c as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as t,c as e,o as a}from"./app-DVyxS3f7.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-Bph9hmvC.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};
|
||||
11
assets/index.html-DeOugXlB.js
Normal file
11
assets/index.html-DeOugXlB.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as e,a,o as n}from"./app-DVyxS3f7.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-Bph9hmvC.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>
|
||||
@@ -10,4 +10,4 @@ import{_ as i,c as e,a,o as n}from"./app-DVyxS3f7.js";const t={};function l(h,s)
|
||||
<span class="line"><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> d036a22f16909cba4c8521cd3c31db3be381e673c9749e3fd2848ab25eca134ef917cb9306f41893295c535078bce77bdc241eba3f92549a73efe4699d3c0df8,</span></span>
|
||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> f0535616759000b473a285d60814bc2c5927a9cb897644da46890de71e59df590cd6fe1b226a95e19a566b6fc127fd85032de0d9fdd3d529e5e50cd96ad51f28</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></div>`,18)])])}const d=i(t,[["render",l]]),p=JSON.parse('{"path":"/ops/blockchain/practice/console-operator/","title":"Console 控制台操作","lang":"zh-CN","frontmatter":{"title":"Console 控制台操作","createTime":"2025/10/03 02:55:49","permalink":"/ops/blockchain/practice/console-operator/","description":"Console 控制台是什么? Console 是 FISCO BCOS 官方提供的一个交互式命令行工具,用于直接与区块链节点交互。 主要功能包括: 查询区块链状态(如区块链高度、节点列表、群组信息) 部署和调用智能合约(支持 Solidity) 管理节点(如查看节点共识状态、动态添加节点) 调试交易和查看回执 部署 Console 控制台 获取下载脚...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Console 控制台操作\\",\\"image\\":[\\"https://image.simengweb.com/notes/ops/blockchain/practice/console-operator/2025-10-03-161500.png\\"],\\"dateModified\\":\\"2025-10-05T09:35:32.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/blockchain/practice/console-operator/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Console 控制台操作"}],["meta",{"property":"og:description","content":"Console 控制台是什么? Console 是 FISCO BCOS 官方提供的一个交互式命令行工具,用于直接与区块链节点交互。 主要功能包括: 查询区块链状态(如区块链高度、节点列表、群组信息) 部署和调用智能合约(支持 Solidity) 管理节点(如查看节点共识状态、动态添加节点) 调试交易和查看回执 部署 Console 控制台 获取下载脚..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://image.simengweb.com/notes/ops/blockchain/practice/console-operator/2025-10-03-161500.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-05T09:35:32.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-05T09:35:32.000Z"}]]},"readingTime":{"minutes":1.15,"words":344},"git":{"createdTime":1759656932000,"updatedTime":1759656932000,"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/blockchain/practice/console-operator.md","headers":[]}');export{d as comp,p as data};
|
||||
<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></div>`,18)])])}const o=i(t,[["render",l]]),p=JSON.parse('{"path":"/ops/blockchain/practice/console-operator/","title":"Console 控制台操作","lang":"zh-CN","frontmatter":{"title":"Console 控制台操作","createTime":"2025/10/03 02:55:49","permalink":"/ops/blockchain/practice/console-operator/","description":"Console 控制台是什么? Console 是 FISCO BCOS 官方提供的一个交互式命令行工具,用于直接与区块链节点交互。 主要功能包括: 查询区块链状态(如区块链高度、节点列表、群组信息) 部署和调用智能合约(支持 Solidity) 管理节点(如查看节点共识状态、动态添加节点) 调试交易和查看回执 部署 Console 控制台 获取下载脚...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Console 控制台操作\\",\\"image\\":[\\"https://image.simengweb.com/notes/ops/blockchain/practice/console-operator/2025-10-03-161500.png\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/blockchain/practice/console-operator/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Console 控制台操作"}],["meta",{"property":"og:description","content":"Console 控制台是什么? Console 是 FISCO BCOS 官方提供的一个交互式命令行工具,用于直接与区块链节点交互。 主要功能包括: 查询区块链状态(如区块链高度、节点列表、群组信息) 部署和调用智能合约(支持 Solidity) 管理节点(如查看节点共识状态、动态添加节点) 调试交易和查看回执 部署 Console 控制台 获取下载脚..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://image.simengweb.com/notes/ops/blockchain/practice/console-operator/2025-10-03-161500.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":1.15,"words":344},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ops/blockchain/practice/console-operator.md","headers":[]}');export{o as comp,p as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as o,c as n,b as e,d as r,o as a}from"./app-DVyxS3f7.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://www.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 a,b as e,d as r,o as n}from"./app-Bph9hmvC.js";const i={};function c(p,t){return n(),a("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 m=o(i,[["render",c]]),s=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.68,"words":203},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"filePathRelative":"notes/programming/leetcode/beginner.md","headers":[]}');export{m as comp,s as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as a,c as r,b as e,o as n}from"./app-DVyxS3f7.js";const i={};function o(c,t){return n(),r("div",null,[...t[0]||(t[0]=[e("ul",null,[e("li",null,"阅读策略(略读、扫读、精读)"),e("li",null,"篇章结构与逻辑(指代、连接、修饰)")],-1)])])}const s=a(i,[["render",o]]),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://www.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 r,c as a,b as e,o as n}from"./app-Bph9hmvC.js";const i={};function o(c,t){return n(),a("div",null,[...t[0]||(t[0]=[e("ul",null,[e("li",null,"阅读策略(略读、扫读、精读)"),e("li",null,"篇章结构与逻辑(指代、连接、修饰)")],-1)])])}const m=r(i,[["render",o]]),p=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.13,"words":40},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/english/reading-writing/README.md","headers":[]}');export{m as comp,p as data};
|
||||
@@ -1,4 +1,4 @@
|
||||
import{_ as i,c as a,a as e,o as n}from"./app-DVyxS3f7.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-Bph9hmvC.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>
|
||||
@@ -13,4 +13,4 @@ import{_ as i,c as a,a as e,o as n}from"./app-DVyxS3f7.js";const t={};function h
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">info</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">|</span><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">2025-10-02</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 21:59:59.284218</span><span style="--shiki-light:#AB5959;--shiki-dark:#CB7676;">|</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">[</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">g:1</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">CONSENSUS</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">][</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">SEALER</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">]</span><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;">++++++++++++++++ Generating seal on,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">blkNum</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">1,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">tx</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">0,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">nodeIdx</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">1,</span><span style="--shiki-light:#B07D48;--shiki-dark:#BD976A;">hash</span><span style="--shiki-light:#999999;--shiki-dark:#666666;">=</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;">721e8904...</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><h3 id="部署多机构多群组多节点" tabindex="-1"><a class="header-anchor" href="#部署多机构多群组多节点"><span>部署多机构多群组多节点</span></a></h3><p>在很多时候,我们需要部署多机构多群组多节点的联盟链,来满足不同业务场景下的需求。</p><p>现在有需求如下:</p><table><thead><tr><th>IP</th><th>节点数</th><th>所属机构</th><th>所属群组</th><th>P2P端口</th><th>Channel端口</th><th>RPC端口</th></tr></thead><tbody><tr><td>127.0.0.1</td><td>2</td><td>agencyA</td><td>1,2</td><td>30300</td><td>20200</td><td>8545</td></tr><tr><td>127.0.0.2</td><td>2</td><td>agencyB</td><td>2,3</td><td>30400</td><td>20300</td><td>8645</td></tr><tr><td>127.0.0.3</td><td>2</td><td>agencyC</td><td>3</td><td>30500</td><td>20400</td><td>8745</td></tr><tr><td>127.0.0.4</td><td>2</td><td>agencyD</td><td>4</td><td>30600</td><td>20500</td><td>8845</td></tr></tbody></table><p>这种时候建议直接编辑配置文件,参考样例如下:</p><div class="code-block-title" data-title="ipconf"><div class="code-block-title-bar"><span class="title">ipconf</span></div><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;">127.0.0.1:2</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> agencyA</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 1,2</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 30300,20200,8545</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">127.0.0.1:2</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> agencyB</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 2,3</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 30400,20300,8645</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">127.0.0.1:2</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> agencyC</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 3</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 30500,20400,8745</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">127.0.0.1:2</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> agencyD</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 4</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 30600,20500,8845</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></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>bash build_chain.sh -f ipconf -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></div><p>这里查看一下输出信息,应当如下图所示: <img src="https://image.simengweb.com/notes/ops/blockchain/practice/node-deployment/2025-10-02-172916.png" alt="多机构多群组多节点部署"></p><h2 id="参考文章" tabindex="-1"><a class="header-anchor" href="#参考文章"><span>参考文章</span></a></h2><ul><li><a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/installation.html" target="_blank" rel="noopener noreferrer">搭建第一个区块链网络</a></li><li><a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/release-2.7.0/docs/manual/build_chain.html" target="_blank" rel="noopener noreferrer">开发部署工具</a></li></ul>`,43)])])}const d=i(t,[["render",h]]),p=JSON.parse('{"path":"/ops/blockchain/practice/node-deployment/","title":"区块链网络部署与管理","lang":"zh-CN","frontmatter":{"title":"区块链网络部署与管理","createTime":"2025/10/02 04:13:08","permalink":"/ops/blockchain/practice/node-deployment/","description":"FISCO BCOS 简介 嘿呀~FISCO BCOS 可是金链盟开源工作组超用心牵头打造的企业级金融区块链底层平台哟!它就像一个超级厉害的小能手,有着高性能、高可用、安全可控这些超棒的特点呢。还支持多群组架构喔,能轻轻松松满足不同业务场景下的数据隔离和隐私保护需求,简直太赞啦! 而且呢,FISCO BCOS 还准备了好多丰富的开发工具和组件,就像给开...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"区块链网络部署与管理\\",\\"image\\":[\\"https://image.simengweb.com/notes/ops/blockchain/practice/node-deployment/2025-10-02-172916.png\\"],\\"dateModified\\":\\"2025-10-05T09:35:32.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/blockchain/practice/node-deployment/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"区块链网络部署与管理"}],["meta",{"property":"og:description","content":"FISCO BCOS 简介 嘿呀~FISCO BCOS 可是金链盟开源工作组超用心牵头打造的企业级金融区块链底层平台哟!它就像一个超级厉害的小能手,有着高性能、高可用、安全可控这些超棒的特点呢。还支持多群组架构喔,能轻轻松松满足不同业务场景下的数据隔离和隐私保护需求,简直太赞啦! 而且呢,FISCO BCOS 还准备了好多丰富的开发工具和组件,就像给开..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://image.simengweb.com/notes/ops/blockchain/practice/node-deployment/2025-10-02-172916.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-05T09:35:32.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-05T09:35:32.000Z"}]]},"readingTime":{"minutes":3.56,"words":1067},"git":{"createdTime":1759421291000,"updatedTime":1759656932000,"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/practice/node-deployment.md","headers":[]}');export{d as comp,p as data};
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">127.0.0.1:2</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> agencyD</span><span style="--shiki-light:#2F798A;--shiki-dark:#4C9A91;"> 4</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> 30600,20500,8845</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></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>bash build_chain.sh -f ipconf -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></div><p>这里查看一下输出信息,应当如下图所示: <img src="https://image.simengweb.com/notes/ops/blockchain/practice/node-deployment/2025-10-02-172916.png" alt="多机构多群组多节点部署"></p><h2 id="参考文章" tabindex="-1"><a class="header-anchor" href="#参考文章"><span>参考文章</span></a></h2><ul><li><a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/latest/docs/installation.html" target="_blank" rel="noopener noreferrer">搭建第一个区块链网络</a></li><li><a href="https://fisco-bcos-documentation.readthedocs.io/zh-cn/release-2.7.0/docs/manual/build_chain.html" target="_blank" rel="noopener noreferrer">开发部署工具</a></li></ul>`,43)])])}const k=i(t,[["render",h]]),p=JSON.parse('{"path":"/ops/blockchain/practice/node-deployment/","title":"区块链网络部署与管理","lang":"zh-CN","frontmatter":{"title":"区块链网络部署与管理","createTime":"2025/10/02 04:13:08","permalink":"/ops/blockchain/practice/node-deployment/","description":"FISCO BCOS 简介 嘿呀~FISCO BCOS 可是金链盟开源工作组超用心牵头打造的企业级金融区块链底层平台哟!它就像一个超级厉害的小能手,有着高性能、高可用、安全可控这些超棒的特点呢。还支持多群组架构喔,能轻轻松松满足不同业务场景下的数据隔离和隐私保护需求,简直太赞啦! 而且呢,FISCO BCOS 还准备了好多丰富的开发工具和组件,就像给开...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"区块链网络部署与管理\\",\\"image\\":[\\"https://image.simengweb.com/notes/ops/blockchain/practice/node-deployment/2025-10-02-172916.png\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ops/blockchain/practice/node-deployment/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"区块链网络部署与管理"}],["meta",{"property":"og:description","content":"FISCO BCOS 简介 嘿呀~FISCO BCOS 可是金链盟开源工作组超用心牵头打造的企业级金融区块链底层平台哟!它就像一个超级厉害的小能手,有着高性能、高可用、安全可控这些超棒的特点呢。还支持多群组架构喔,能轻轻松松满足不同业务场景下的数据隔离和隐私保护需求,简直太赞啦! 而且呢,FISCO BCOS 还准备了好多丰富的开发工具和组件,就像给开..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:image","content":"https://image.simengweb.com/notes/ops/blockchain/practice/node-deployment/2025-10-02-172916.png"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":3.56,"words":1067},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ops/blockchain/practice/node-deployment.md","headers":[]}');export{k as comp,p as data};
|
||||
@@ -1 +1 @@
|
||||
import{_ as r,c as t,a,o}from"./app-DVyxS3f7.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://www.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-Bph9hmvC.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 c=r(n,[["render",l]]),p=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.89,"words":268},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"filePathRelative":"notes/programming/leetcode/README.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
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 t,c as n,a as i,o as a}from"./app-DVyxS3f7.js";const o={};function r(s,e){return a(),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(o,[["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://www.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 e,c as n,a as i,o as a}from"./app-Bph9hmvC.js";const o={};function r(p,t){return a(),n("div",null,[...t[0]||(t[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=e(o,[["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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":1.43,"words":430},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ops/linux/README.md","headers":[]}');export{c 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 e,c as t,o as a}from"./app-DVyxS3f7.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-Bph9hmvC.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 +0,0 @@
|
||||
import{_ as a,c as r,b as e,o as n}from"./app-DVyxS3f7.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://www.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
1
assets/index.html-ccFtIWX7.js
Normal file
1
assets/index.html-ccFtIWX7.js
Normal file
@@ -0,0 +1 @@
|
||||
import{_ as e,c as t,o as a}from"./app-Bph9hmvC.js";const o={};function c(r,i){return a(),t("div")}const p=e(o,[["render",c]]),s=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\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.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":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":0.06,"words":17},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"filePathRelative":"notes/ops/blockchain/theory/basic-principles.md","headers":[]}');export{p as comp,s 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-DVyxS3f7.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-Bph9hmvC.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>
|
||||
@@ -190,4 +190,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
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," </"),i("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"section"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},">")]),a(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," </"),i("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"body"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},">")]),a(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},"</"),i("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"html"),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"}),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"}),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"}),i("div",{class:"line-number"})])],-1)])]),tab1:h(({value:t,isActive:n})=>[...s[37]||(s[37]=[i("div",{class:"language-css line-numbers-mode","data-highlighter":"shiki","data-ext":"css",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-css"},[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"section"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," {"),i("span",{style:{"--shiki-light":"#998418","--shiki-dark":"#B8A965"}}," margin-bottom"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},":"),i("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}}," 1"),i("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"rem"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," }")]),a(`
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"img"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," {"),i("span",{style:{"--shiki-light":"#998418","--shiki-dark":"#B8A965"}}," border"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},":"),i("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}}," 2"),i("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"px"),i("span",{style:{"--shiki-light":"#A65E2B","--shiki-dark":"#C99076"}}," solid"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," #"),i("span",{style:{"--shiki-light":"#A65E2B","--shiki-dark":"#C99076"}},"eee"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";"),i("span",{style:{"--shiki-light":"#998418","--shiki-dark":"#B8A965"}}," border-radius"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},":"),i("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}}," 50"),i("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"%"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";"),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"})])],-1)])]),_:1})])}const Z=r(D,[["render",R]]),J=JSON.parse('{"path":"/programming/web/basic-syntax/html-tags-attributes/","title":"HTML 常用标签与属性","lang":"zh-CN","frontmatter":{"title":"HTML 常用标签与属性","createTime":"2025/11/2 19:30:00","permalink":"/programming/web/basic-syntax/html-tags-attributes/","description":"文本与标题(H/P/Span/Strong/Em/Div) 标题:从重要到不重要,<h1> ~ <h6>。 认识div标签 什么是 <div>? <div> 是 \\"division\\"(分区)的缩写,可以理解为网页中的\\"容器\\"或\\"盒子\\"。 想象一下搬家时的纸箱: 网页 = 整个房间 <div> = 一个个纸箱 箱子里 = 可以放各种物品(文字、图片、按钮...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"HTML 常用标签与属性\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-11-02T12:43:42.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/programming/web/basic-syntax/html-tags-attributes/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"HTML 常用标签与属性"}],["meta",{"property":"og:description","content":"文本与标题(H/P/Span/Strong/Em/Div) 标题:从重要到不重要,<h1> ~ <h6>。 认识div标签 什么是 <div>? <div> 是 \\"division\\"(分区)的缩写,可以理解为网页中的\\"容器\\"或\\"盒子\\"。 想象一下搬家时的纸箱: 网页 = 整个房间 <div> = 一个个纸箱 箱子里 = 可以放各种物品(文字、图片、按钮..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-11-02T12:43:42.000Z"}],["meta",{"property":"article:modified_time","content":"2025-11-02T12:43:42.000Z"}]]},"readingTime":{"minutes":8.68,"words":2603},"git":{"createdTime":1762083884000,"updatedTime":1762087422000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":2,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"},{"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-tags-attributes.md","headers":[]}');export{Z as comp,J as data};
|
||||
`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#1E754F","--shiki-dark":"#4D9375"}},"img"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," {"),i("span",{style:{"--shiki-light":"#998418","--shiki-dark":"#B8A965"}}," border"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},":"),i("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}}," 2"),i("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"px"),i("span",{style:{"--shiki-light":"#A65E2B","--shiki-dark":"#C99076"}}," solid"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}}," #"),i("span",{style:{"--shiki-light":"#A65E2B","--shiki-dark":"#C99076"}},"eee"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";"),i("span",{style:{"--shiki-light":"#998418","--shiki-dark":"#B8A965"}}," border-radius"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},":"),i("span",{style:{"--shiki-light":"#2F798A","--shiki-dark":"#4C9A91"}}," 50"),i("span",{style:{"--shiki-light":"#AB5959","--shiki-dark":"#CB7676"}},"%"),i("span",{style:{"--shiki-light":"#999999","--shiki-dark":"#666666"}},";"),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"})])],-1)])]),_:1})])}const Z=r(D,[["render",R]]),J=JSON.parse('{"path":"/programming/web/basic-syntax/html-tags-attributes/","title":"HTML 常用标签与属性","lang":"zh-CN","frontmatter":{"title":"HTML 常用标签与属性","createTime":"2025/11/2 19:30:00","permalink":"/programming/web/basic-syntax/html-tags-attributes/","description":"文本与标题(H/P/Span/Strong/Em/Div) 标题:从重要到不重要,<h1> ~ <h6>。 认识div标签 什么是 <div>? <div> 是 \\"division\\"(分区)的缩写,可以理解为网页中的\\"容器\\"或\\"盒子\\"。 想象一下搬家时的纸箱: 网页 = 整个房间 <div> = 一个个纸箱 箱子里 = 可以放各种物品(文字、图片、按钮...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"HTML 常用标签与属性\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/programming/web/basic-syntax/html-tags-attributes/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"HTML 常用标签与属性"}],["meta",{"property":"og:description","content":"文本与标题(H/P/Span/Strong/Em/Div) 标题:从重要到不重要,<h1> ~ <h6>。 认识div标签 什么是 <div>? <div> 是 \\"division\\"(分区)的缩写,可以理解为网页中的\\"容器\\"或\\"盒子\\"。 想象一下搬家时的纸箱: 网页 = 整个房间 <div> = 一个个纸箱 箱子里 = 可以放各种物品(文字、图片、按钮..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":8.68,"words":2603},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/web/basic-syntax/html-tags-attributes.md","headers":[]}');export{Z as comp,J as data};
|
||||
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 h}from"./app-DVyxS3f7.js";const n={};function t(l,s){return h(),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 h}from"./app-Bph9hmvC.js";const n={};function t(l,s){return h(),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>
|
||||
@@ -14,4 +14,4 @@ import{_ as i,c as a,a as e,o as h}from"./app-DVyxS3f7.js";const n={};function t
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 运行测试</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">npx</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> hardhat</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> test</span></span>
|
||||
<span class="line"><span style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># 查看可用任务</span></span>
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">npx</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> hardhat</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> help</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>`,18)])])}const k=i(n,[["render",t]]),p=JSON.parse('{"path":"/programming/solidity/other/hardhat/","title":"Hardhat 相关知识","lang":"zh-CN","frontmatter":{"title":"Hardhat 相关知识","createTime":"2025/10/14 14:57:06","permalink":"/programming/solidity/other/hardhat/","description":"HardHat2 部署 Node.js v16 安装 HardHat2 需要 Node.js v16 及以上的版本 这里给出的是通过 npm 来将旧版本升级到 Node.js v16 的,如果想要直接安装的话通过 yum install nodejs 或者 apt install nodejs 来即可。 安装完成之后可以查看版本,如果没有更新可以重新刷...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Hardhat 相关知识\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2025-10-17T15:32:49.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/programming/solidity/other/hardhat/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Hardhat 相关知识"}],["meta",{"property":"og:description","content":"HardHat2 部署 Node.js v16 安装 HardHat2 需要 Node.js v16 及以上的版本 这里给出的是通过 npm 来将旧版本升级到 Node.js v16 的,如果想要直接安装的话通过 yum install nodejs 或者 apt install nodejs 来即可。 安装完成之后可以查看版本,如果没有更新可以重新刷..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2025-10-17T15:32:49.000Z"}],["meta",{"property":"article:modified_time","content":"2025-10-17T15:32:49.000Z"}]]},"readingTime":{"minutes":1.11,"words":332},"git":{"createdTime":1760427548000,"updatedTime":1760715169000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":2,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/solidity/other/hardhat.md","headers":[]}');export{k as comp,p as data};
|
||||
<span class="line"><span style="--shiki-light:#59873A;--shiki-dark:#80A665;">npx</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> hardhat</span><span style="--shiki-light:#B56959;--shiki-dark:#C98A7D;"> help</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>`,18)])])}const k=i(n,[["render",t]]),p=JSON.parse('{"path":"/programming/solidity/other/hardhat/","title":"Hardhat 相关知识","lang":"zh-CN","frontmatter":{"title":"Hardhat 相关知识","createTime":"2025/10/14 14:57:06","permalink":"/programming/solidity/other/hardhat/","description":"HardHat2 部署 Node.js v16 安装 HardHat2 需要 Node.js v16 及以上的版本 这里给出的是通过 npm 来将旧版本升级到 Node.js v16 的,如果想要直接安装的话通过 yum install nodejs 或者 apt install nodejs 来即可。 安装完成之后可以查看版本,如果没有更新可以重新刷...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Hardhat 相关知识\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-01-09T02:03:40.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/programming/solidity/other/hardhat/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"Hardhat 相关知识"}],["meta",{"property":"og:description","content":"HardHat2 部署 Node.js v16 安装 HardHat2 需要 Node.js v16 及以上的版本 这里给出的是通过 npm 来将旧版本升级到 Node.js v16 的,如果想要直接安装的话通过 yum install nodejs 或者 apt install nodejs 来即可。 安装完成之后可以查看版本,如果没有更新可以重新刷..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-01-09T02:03:40.000Z"}],["meta",{"property":"article:modified_time","content":"2026-01-09T02:03:40.000Z"}]]},"readingTime":{"minutes":1.11,"words":332},"git":{"createdTime":1767924220000,"updatedTime":1767924220000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/programming/solidity/other/hardhat.md","headers":[]}');export{k as comp,p as data};
|
||||
File diff suppressed because one or more lines are too long
@@ -1,2 +1,2 @@
|
||||
import{p as o}from"./treemap-KMMF4GRG-7ORZ52ND-ColCN-gz.js";import{m as e,p as s,aN as n,W as p,aO as d}from"./mermaid.esm.min-NB_kGFXu.js";import"./chunk-OMTJKCYW-D7JA-4UK.js";import"./app-DVyxS3f7.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-CZuoUfoB.js";import{m as e,p as s,aN as n,W as p,aO as d}from"./mermaid.esm.min-BIp-uSYj.js";import"./chunk-OMTJKCYW-DrcFdFs9.js";import"./app-Bph9hmvC.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-BkoMfD5a.js";import{o as bt}from"./chunk-ZZTKAOFA-B3lz9Dqp.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-NB_kGFXu.js";import"./app-DVyxS3f7.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-CkGxRoPJ.js";import{o as bt}from"./chunk-ZZTKAOFA-DTvOQDf5.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-BIp-uSYj.js";import"./app-Bph9hmvC.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-NB_kGFXu.js";import{o as xe}from"./chunk-ZZTKAOFA-B3lz9Dqp.js";import"./app-DVyxS3f7.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-BIp-uSYj.js";import{o as xe}from"./chunk-ZZTKAOFA-DTvOQDf5.js";import"./app-Bph9hmvC.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-BneyAw67.js";import{y as pe}from"./chunk-T244DUNM-DnRtSXSU.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-NB_kGFXu.js";import"./app-DVyxS3f7.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-CKYVKUnj.js";import{y as pe}from"./chunk-T244DUNM-mqOStZhi.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-BIp-uSYj.js";import"./app-Bph9hmvC.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-S85yEoTD.js";import{p as V}from"./treemap-KMMF4GRG-7ORZ52ND-ColCN-gz.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-NB_kGFXu.js";import"./chunk-OMTJKCYW-D7JA-4UK.js";import"./app-DVyxS3f7.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-BJJ5u12t.js";import{p as V}from"./treemap-KMMF4GRG-7ORZ52ND-CZuoUfoB.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-BIp-uSYj.js";import"./chunk-OMTJKCYW-DrcFdFs9.js";import"./app-Bph9hmvC.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};
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user