Build: 周日 2026/03/29 13:22:18.51
This commit is contained in:
File diff suppressed because one or more lines are too long
1
ai/index.html
Normal file
1
ai/index.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
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
article/archives/index.html
Normal file
1
article/archives/index.html
Normal file
File diff suppressed because one or more lines are too long
1
article/categories/index.html
Normal file
1
article/categories/index.html
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
article/tags/index.html
Normal file
1
article/tags/index.html
Normal file
File diff suppressed because one or more lines are too long
170
article/windows11-ragflow-deployment-mcp/index.html
Normal file
170
article/windows11-ragflow-deployment-mcp/index.html
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
import{_ as e,c as o,b as n,o as r}from"./app-BJYYgOLS.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-DTJ1dk4L.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
9
assets/SearchBox-rRqQ0jXh.js
Normal file
9
assets/SearchBox-rRqQ0jXh.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
64
assets/app-DTJ1dk4L.js
Normal file
64
assets/app-DTJ1dk4L.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
132
assets/blockDiagram-HG7WUIX4-CfMG388_.js
Normal file
132
assets/blockDiagram-HG7WUIX4-CfMG388_.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
10
assets/c4Diagram-BBK6TRR6-DNjzZLul.js
Normal file
10
assets/c4Diagram-BBK6TRR6-DNjzZLul.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
import{m as e}from"./mermaid.esm.min-C7K1CMb_.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-BbAqstPk.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};
|
||||||
File diff suppressed because one or more lines are too long
13
assets/chunk-H3VCZNTA-nEiogkTg.js
Normal file
13
assets/chunk-H3VCZNTA-nEiogkTg.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
|||||||
import{m as e}from"./mermaid.esm.min-C7K1CMb_.js";var l=e(()=>`
|
import{m as e}from"./mermaid.esm.min-BbAqstPk.js";var l=e(()=>`
|
||||||
/* Font Awesome icon styling - consolidated */
|
/* Font Awesome icon styling - consolidated */
|
||||||
.label-icon {
|
.label-icon {
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
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-C7K1CMb_.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,U as g,p as s}from"./mermaid.esm.min-BbAqstPk.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,i as e}from"./mermaid.esm.min-C7K1CMb_.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-BbAqstPk.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};
|
||||||
189
assets/chunk-TFLKLN34-D38mcvdj.js
Normal file
189
assets/chunk-TFLKLN34-D38mcvdj.js
Normal file
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
|||||||
import{m as s}from"./mermaid.esm.min-C7K1CMb_.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-BbAqstPk.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
assets/chunk-W2A4CRWB-ySFc8Hn2.js
Normal file
1
assets/chunk-W2A4CRWB-ySFc8Hn2.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{m as l,i as n,b as o,r as d,f as y}from"./mermaid.esm.min-BbAqstPk.js";var x=d(y()),p=l((a,t)=>{let e=a.append("rect");if(e.attr("x",t.x),e.attr("y",t.y),e.attr("fill",t.fill),e.attr("stroke",t.stroke),e.attr("width",t.width),e.attr("height",t.height),t.name&&e.attr("name",t.name),t.rx&&e.attr("rx",t.rx),t.ry&&e.attr("ry",t.ry),t.attrs!==void 0)for(let r in t.attrs)e.attr(r,t.attrs[r]);return t.class&&e.attr("class",t.class),e},"drawRect"),h=l((a,t)=>{let e={x:t.startx,y:t.starty,width:t.stopx-t.startx,height:t.stopy-t.starty,fill:t.fill,stroke:t.stroke,class:"rect"};p(a,e).lower()},"drawBackgroundRect"),f=l((a,t)=>{let e=t.text.replace(o," "),r=a.append("text");r.attr("x",t.x),r.attr("y",t.y),r.attr("class","legend"),r.style("text-anchor",t.anchor),t.class&&r.attr("class",t.class);let s=r.append("tspan");return s.attr("x",t.x+t.textMargin*2),s.text(e),r},"drawText"),g=l((a,t,e,r)=>{let s=a.append("image");s.attr("x",t),s.attr("y",e);let i=(0,x.sanitizeUrl)(r);s.attr("xlink:href",i)},"drawImage"),m=l((a,t,e,r)=>{let s=a.append("use");s.attr("x",t),s.attr("y",e);let i=(0,x.sanitizeUrl)(r);s.attr("xlink:href",`#${i}`)},"drawEmbeddedImage"),w=l(()=>({x:0,y:0,width:100,height:100,fill:"#EDF2AE",stroke:"#666",anchor:"start",rx:0,ry:0}),"getNoteRect"),u=l(()=>({x:0,y:0,width:100,height:100,"text-anchor":"start",style:"#666",textMargin:0,rx:0,ry:0,tspan:!0}),"getTextObj"),k=l(()=>{let a=n(".mermaidTooltip");return a.empty()&&(a=n("body").append("div").attr("class","mermaidTooltip").style("opacity",0).style("position","absolute").style("text-align","center").style("max-width","200px").style("padding","2px").style("font-size","12px").style("background","#ffffde").style("border","1px solid #333").style("border-radius","2px").style("pointer-events","none").style("z-index","100")),a},"createTooltip");export{g as E,u as G,k as T,f,h as g,m as h,w as u,p as x};
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{m as l,z as n,q as d,f as h}from"./mermaid.esm.min-C7K1CMb_.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};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{V as t,Q as a,C as s,l as e}from"./chunk-BHQAJ5QI-DA7zzj_Z.js";import"./chunk-ZZTKAOFA-cx20ieyl.js";import"./chunk-6EQESGSB-Dkf561HF.js";import"./chunk-T244DUNM-DcmmAP9a.js";import{m as o}from"./mermaid.esm.min-C7K1CMb_.js";import"./app-BJYYgOLS.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-JG6F6YBT-Bbk9znF6.js
Normal file
1
assets/classDiagram-JG6F6YBT-Bbk9znF6.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{U as t,q as a,E as s,c as o}from"./chunk-TFLKLN34-D38mcvdj.js";import"./chunk-KSICW3F5-_UGIl_8q.js";import"./chunk-W2A4CRWB-ySFc8Hn2.js";import"./chunk-TBF5ZNIQ-CRSBpdfg.js";import"./chunk-T4EQAHMB-BcpZ2qh9.js";import{m as e}from"./mermaid.esm.min-BbAqstPk.js";import"./app-DTJ1dk4L.js";var d={parser:s,get db(){return new o},renderer:a,styles:t,init:e(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{d as diagram};
|
||||||
1
assets/classDiagram-v2-CFK7UN3Z-Bbk9znF6.js
Normal file
1
assets/classDiagram-v2-CFK7UN3Z-Bbk9znF6.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{U as t,q as a,E as s,c as o}from"./chunk-TFLKLN34-D38mcvdj.js";import"./chunk-KSICW3F5-_UGIl_8q.js";import"./chunk-W2A4CRWB-ySFc8Hn2.js";import"./chunk-TBF5ZNIQ-CRSBpdfg.js";import"./chunk-T4EQAHMB-BcpZ2qh9.js";import{m as e}from"./mermaid.esm.min-BbAqstPk.js";import"./app-DTJ1dk4L.js";var d={parser:s,get db(){return new o},renderer:a,styles:t,init:e(r=>{r.class||(r.class={}),r.class.arrowMarkerAbsolute=r.arrowMarkerAbsolute},"init")};export{d as diagram};
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{V as t,Q as a,C as s,l as e}from"./chunk-BHQAJ5QI-DA7zzj_Z.js";import"./chunk-ZZTKAOFA-cx20ieyl.js";import"./chunk-6EQESGSB-Dkf561HF.js";import"./chunk-T244DUNM-DcmmAP9a.js";import{m as o}from"./mermaid.esm.min-C7K1CMb_.js";import"./app-BJYYgOLS.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
72
assets/component-Df6htD1N.js
Normal file
72
assets/component-Df6htD1N.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,43 +0,0 @@
|
|||||||
import{c as I}from"./chunk-4KE642ED-de9jmlDi.js";import{p as S}from"./treemap-KMMF4GRG-7ORZ52ND-Bwerl8EN.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-C7K1CMb_.js";import"./chunk-OMTJKCYW-aVlGrdgc.js";import"./app-BJYYgOLS.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};
|
|
||||||
fill-opacity: ${t.curveOpacity};
|
|
||||||
stroke: ${i};
|
|
||||||
stroke-width: ${t.curveStrokeWidth};
|
|
||||||
}
|
|
||||||
.radarLegendBox-${r} {
|
|
||||||
fill: ${i};
|
|
||||||
fill-opacity: ${t.curveOpacity};
|
|
||||||
stroke: ${i};
|
|
||||||
}
|
|
||||||
`}return e},"genIndexStyles"),nt=o(a=>{let t=H(),e=w(),r=v(t,e.themeVariables),i=v(r.radar,a);return{themeVariables:r,radarOptions:i}},"buildRadarStyleOptions"),lt=o(({radar:a}={})=>{let{themeVariables:t,radarOptions:e}=nt(a);return`
|
|
||||||
.radarTitle {
|
|
||||||
font-size: ${t.fontSize};
|
|
||||||
color: ${t.titleColor};
|
|
||||||
dominant-baseline: hanging;
|
|
||||||
text-anchor: middle;
|
|
||||||
}
|
|
||||||
.radarAxisLine {
|
|
||||||
stroke: ${e.axisColor};
|
|
||||||
stroke-width: ${e.axisStrokeWidth};
|
|
||||||
}
|
|
||||||
.radarAxisLabel {
|
|
||||||
dominant-baseline: middle;
|
|
||||||
text-anchor: middle;
|
|
||||||
font-size: ${e.axisLabelFontSize}px;
|
|
||||||
color: ${e.axisColor};
|
|
||||||
}
|
|
||||||
.radarGraticule {
|
|
||||||
fill: ${e.graticuleColor};
|
|
||||||
fill-opacity: ${e.graticuleOpacity};
|
|
||||||
stroke: ${e.graticuleColor};
|
|
||||||
stroke-width: ${e.graticuleStrokeWidth};
|
|
||||||
}
|
|
||||||
.radarLegendText {
|
|
||||||
text-anchor: start;
|
|
||||||
font-size: ${e.legendFontSize}px;
|
|
||||||
dominant-baseline: hanging;
|
|
||||||
}
|
|
||||||
${st(t,e)}
|
|
||||||
`},"styles"),ht={parser:Y,db:f,renderer:it,styles:lt};export{ht as diagram};
|
|
||||||
43
assets/diagram-G7E7SVAT-DI7Uky4t.js
Normal file
43
assets/diagram-G7E7SVAT-DI7Uky4t.js
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
import{c as S}from"./chunk-AEOMTBSW-B2mxm9r_.js";import{p as I}from"./treemap-KZPCXAKY-RU5UWGQG-kaNIxUTr.js";import{Y as E,X as F,Z as z,K as D,V as P,j as R,m as o,aO as V,$ as W,L as v,n as B,o as w,p as j,aT as G,U as Z}from"./mermaid.esm.min-BbAqstPk.js";import"./chunk-H3VCZNTA-nEiogkTg.js";import"./app-DTJ1dk4L.js";var h={showLegend:!0,ticks:5,max:null,min:0,graticule:"circle"},b={axes:[],curves:[],options:h},x=structuredClone(b),K=B.radar,U=o(()=>v({...K,...w().radar}),"getConfig"),M=o(()=>x.axes,"getAxes"),X=o(()=>x.curves,"getCurves"),Y=o(()=>x.options,"getOptions"),_=o(a=>{x.axes=a.map(t=>({name:t.name,label:t.label??t.name}))},"setAxes"),H=o(a=>{x.curves=a.map(t=>({name:t.name,label:t.label??t.name,entries:q(t.entries)}))},"setCurves"),q=o(a=>{if(a[0].axis==null)return a.map(e=>e.value);let t=M();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"),J=o(a=>{let t=a.reduce((e,r)=>(e[r.name]=r,e),{});x.options={showLegend:t.showLegend?.value??h.showLegend,ticks:t.ticks?.value??h.ticks,max:t.max?.value??h.max,min:t.min?.value??h.min,graticule:t.graticule?.value??h.graticule}},"setOptions"),N=o(()=>{W(),x=structuredClone(b)},"clear"),f={getAxes:M,getCurves:X,getOptions:Y,setAxes:_,setCurves:H,setOptions:J,getConfig:U,clear:N,setAccTitle:R,getAccTitle:P,setDiagramTitle:D,getDiagramTitle:z,getAccDescription:F,setAccDescription:E},Q=o(a=>{S(a,f);let{axes:t,curves:e,options:r}=a;f.setAxes(t),f.setCurves(e),f.setOptions(r)},"populate"),tt={parse:o(async a=>{let t=await I("radar",a);j.debug(t),Q(t)},"parse")},et=o((a,t,e,r)=>{let i=r.db,n=i.getAxes(),l=i.getCurves(),s=i.getOptions(),c=i.getConfig(),d=i.getDiagramTitle(),g=V(t),p=at(g,c),u=s.max??Math.max(...l.map(y=>Math.max(...y.entries))),m=s.min,$=Math.min(c.width,c.height)/2;rt(p,n,$,s.ticks,s.graticule),it(p,n,$,c),C(p,n,l,m,u,s.graticule,c),k(p,l,s.showLegend,c),p.append("text").attr("class","radarTitle").text(d).attr("x",0).attr("y",-c.height/2-c.marginTop)},"draw"),at=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 Z(a,r,e,t.useMaxWidth??!0),a.attr("viewBox",`0 0 ${e} ${r}`),a.append("g").attr("transform",`translate(${i.x}, ${i.y})`)},"drawFrame"),rt=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,g)=>{let p=2*g*Math.PI/n-Math.PI/2,u=s*Math.cos(p),m=s*Math.sin(p);return`${u},${m}`}).join(" ");a.append("polygon").attr("points",c).attr("class","radarGraticule")}}},"drawGraticule"),it=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 C(a,t,e,r,i,n,l){let s=t.length,c=Math.min(l.width,l.height)/2;e.forEach((d,g)=>{if(d.entries.length!==s)return;let p=d.entries.map((u,m)=>{let $=2*Math.PI*m/s-Math.PI/2,y=L(u,r,i,c),A=y*Math.cos($),O=y*Math.sin($);return{x:A,y:O}});n==="circle"?a.append("path").attr("d",T(p,l.curveTension)).attr("class",`radarCurve-${g}`):n==="polygon"&&a.append("polygon").attr("points",p.map(u=>`${u.x},${u.y}`).join(" ")).attr("class",`radarCurve-${g}`)})}o(C,"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},g={x:s.x-(c.x-l.x)*t,y:s.y-(c.y-l.y)*t};r+=` C${d.x},${d.y} ${g.x},${g.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 st={draw:et},nt=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};
|
||||||
|
fill-opacity: ${t.curveOpacity};
|
||||||
|
stroke: ${i};
|
||||||
|
stroke-width: ${t.curveStrokeWidth};
|
||||||
|
}
|
||||||
|
.radarLegendBox-${r} {
|
||||||
|
fill: ${i};
|
||||||
|
fill-opacity: ${t.curveOpacity};
|
||||||
|
stroke: ${i};
|
||||||
|
}
|
||||||
|
`}return e},"genIndexStyles"),lt=o(a=>{let t=G(),e=w(),r=v(t,e.themeVariables),i=v(r.radar,a);return{themeVariables:r,radarOptions:i}},"buildRadarStyleOptions"),ot=o(({radar:a}={})=>{let{themeVariables:t,radarOptions:e}=lt(a);return`
|
||||||
|
.radarTitle {
|
||||||
|
font-size: ${t.fontSize};
|
||||||
|
color: ${t.titleColor};
|
||||||
|
dominant-baseline: hanging;
|
||||||
|
text-anchor: middle;
|
||||||
|
}
|
||||||
|
.radarAxisLine {
|
||||||
|
stroke: ${e.axisColor};
|
||||||
|
stroke-width: ${e.axisStrokeWidth};
|
||||||
|
}
|
||||||
|
.radarAxisLabel {
|
||||||
|
dominant-baseline: middle;
|
||||||
|
text-anchor: middle;
|
||||||
|
font-size: ${e.axisLabelFontSize}px;
|
||||||
|
color: ${e.axisColor};
|
||||||
|
}
|
||||||
|
.radarGraticule {
|
||||||
|
fill: ${e.graticuleColor};
|
||||||
|
fill-opacity: ${e.graticuleOpacity};
|
||||||
|
stroke: ${e.graticuleColor};
|
||||||
|
stroke-width: ${e.graticuleStrokeWidth};
|
||||||
|
}
|
||||||
|
.radarLegendText {
|
||||||
|
text-anchor: start;
|
||||||
|
font-size: ${e.legendFontSize}px;
|
||||||
|
dominant-baseline: hanging;
|
||||||
|
}
|
||||||
|
${nt(t,e)}
|
||||||
|
`},"styles"),xt={parser:tt,db:f,renderer:st,styles:ot};export{xt as diagram};
|
||||||
24
assets/diagram-HOHITQNR-DJJgms4R.js
Normal file
24
assets/diagram-HOHITQNR-DJJgms4R.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
|||||||
import{c as B}from"./chunk-4KE642ED-de9jmlDi.js";import{p as C}from"./treemap-KMMF4GRG-7ORZ52ND-Bwerl8EN.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-C7K1CMb_.js";import"./chunk-OMTJKCYW-aVlGrdgc.js";import"./app-BJYYgOLS.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 v}from"./chunk-AEOMTBSW-B2mxm9r_.js";import{p as C}from"./treemap-KZPCXAKY-RU5UWGQG-kaNIxUTr.js";import{m as f,L as u,aO as P,U as z,p as w,j as F,V as S,K as D,Z as W,X as E,Y as T,n as L,o as Y,$ as A}from"./mermaid.esm.min-BbAqstPk.js";import"./chunk-H3VCZNTA-nEiogkTg.js";import"./app-DTJ1dk4L.js";var R=L.packet,m,$=(m=class{constructor(){this.packet=[],this.setAccTitle=F,this.getAccTitle=S,this.setDiagramTitle=D,this.getDiagramTitle=W,this.getAccDescription=E,this.setAccDescription=T}getConfig(){let t=u({...R,...Y().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),j=1e4,M=f((e,t)=>{v(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<j;){let[p,o]=V({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"),V=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),M(t,r)},"parse")},X=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(),b=a+s,h=b*(p.length+1)-(o?0:a),k=c*d+2,g=P(t);g.attr("viewBox",`0 0 ${k} ${h}`),z(g,h,k,n.useMaxWidth);for(let[x,B]of p.entries())H(g,B,x,n);g.append("text").text(o).attr("x",k/2).attr("y",h-b/2).attr("dominant-baseline","middle").attr("text-anchor","middle").attr("class","packetTitle")},"draw"),H=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 b=o.start%s*a+1,h=(o.end-o.start+1)*a-l;if(d.append("rect").attr("x",b).attr("y",p).attr("width",h).attr("height",i).attr("class","packetBlock"),d.append("text").attr("x",b+h/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",b+(k?h/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",b+h).attr("y",g).attr("class","packetByte end").attr("dominant-baseline","auto").attr("text-anchor","end").text(o.end)}},"drawWord"),K={draw:X},N={byteFontSize:"10px",startByteColor:"black",endByteColor:"black",labelColor:"black",labelFontSize:"12px",titleColor:"black",titleFontSize:"14px",blockStrokeColor:"black",blockStrokeWidth:"1",blockFillColor:"#efefef"},O=f(({packet:e}={})=>{let t=u(N,e);return`
|
||||||
.packetByte {
|
.packetByte {
|
||||||
font-size: ${t.byteFontSize};
|
font-size: ${t.byteFontSize};
|
||||||
}
|
}
|
||||||
@@ -21,4 +21,4 @@ import{c as B}from"./chunk-4KE642ED-de9jmlDi.js";import{p as C}from"./treemap-KM
|
|||||||
stroke-width: ${t.blockStrokeWidth};
|
stroke-width: ${t.blockStrokeWidth};
|
||||||
fill: ${t.blockFillColor};
|
fill: ${t.blockFillColor};
|
||||||
}
|
}
|
||||||
`},"styles"),K={parser:y,get db(){return new $},renderer:Y,styles:V};export{K as diagram};
|
`},"styles"),_={parser:y,get db(){return new $},renderer:K,styles:O};export{_ as diagram};
|
||||||
File diff suppressed because one or more lines are too long
70
assets/erDiagram-L2NYR2MQ-6R-KuwlE.js
Normal file
70
assets/erDiagram-L2NYR2MQ-6R-KuwlE.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
162
assets/flowDiagram-IIOBCMXN-DaOL4RjI.js
Normal file
162
assets/flowDiagram-IIOBCMXN-DaOL4RjI.js
Normal file
File diff suppressed because one or more lines are too long
292
assets/ganttDiagram-CBGYKTO2-DNpmB-0K.js
Normal file
292
assets/ganttDiagram-CBGYKTO2-DNpmB-0K.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
65
assets/gitGraphDiagram-FCDOK2W6-KUve1R-r.js
Normal file
65
assets/gitGraphDiagram-FCDOK2W6-KUve1R-r.js
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
|||||||
import{_ as i,c as a,a as n,o as l}from"./app-BJYYgOLS.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-DTJ1dk4L.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>
|
||||||
<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;">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>
|
<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-BJYYgOLS.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:#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:#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>
|
||||||
<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};
|
<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":"一些没分类的小知识 | Solidity","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 +0,0 @@
|
|||||||
import{_ as e,c as t,o as a}from"./app-BJYYgOLS.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 +0,0 @@
|
|||||||
import{_ as e,c as n,a as i,o as a}from"./app-BJYYgOLS.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};
|
|
||||||
@@ -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-BJYYgOLS.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-DTJ1dk4L.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":"#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":"#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(`
|
`),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"}}," 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":"#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":"#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\\":\\"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};
|
`),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};
|
||||||
3
assets/index.html-BD-Sujc7.js
Normal file
3
assets/index.html-BD-Sujc7.js
Normal file
File diff suppressed because one or more lines are too long
1
assets/index.html-BNRJqH2X.js
Normal file
1
assets/index.html-BNRJqH2X.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{_ as a,c as n,b as t,o}from"./app-DTJ1dk4L.js";const r={};function i(c,e){return o(),n("div",null,[...e[0]||(e[0]=[t("blockquote",null,[t("p",null,"还没有开始写呢,先占个位置~ ✨")],-1),t("p",null,"敬请期待...",-1)])])}const p=a(r,[["render",i]]),l=JSON.parse('{"path":"/subject/certification/sys-analyst/planning/","title":"第十章 系统规划与分析 | 系统分析师","lang":"zh-CN","frontmatter":{"title":"第十章 系统规划与分析","createTime":"2026/03/01 14:00:00","permalink":"/subject/certification/sys-analyst/planning/","description":"还没有开始写呢,先占个位置~ ✨ 敬请期待...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"第十章 系统规划与分析\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-03-01T12:47:17.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/subject/certification/sys-analyst/planning/"}],["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-03-01T12:47:17.000Z"}],["meta",{"property":"article:modified_time","content":"2026-03-01T12:47:17.000Z"}]]},"readingTime":{"minutes":0.15,"words":46},"git":{"createdTime":1772369237000,"updatedTime":1772369237000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/certification/sys-analyst/planning.md","headers":[]}');export{p as comp,l as data};
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as t,c as a,a as n,o as r}from"./app-BJYYgOLS.js";const o={};function i(p,e){return r(),a("div",null,[...e[0]||(e[0]=[n('<p>各位~今天要给大家介绍一个超棒的图床搭建方法哦!EdgeOne Pages 是腾讯云提供的静态网站托管服务,而且还有免费额度可以使用呢,对于日常需求来说完全足够啦~</p><h2 id="创建一个-git-项目" tabindex="-1"><a class="header-anchor" href="#创建一个-git-项目"><span>创建一个 Git 项目</span></a></h2><p>第一步呢,我们需要先在 Gitee 上创建一个项目,专门用来存放网站里要用的各种图片。当然啦,如果你习惯用 Github 或者 CNB 也没问题,这些平台都是支持的哦~而且要记住,项目的目录结构就是以后图片的访问路径呢~</p><h2 id="edgeone-page-中导入项目" tabindex="-1"><a class="header-anchor" href="#edgeone-page-中导入项目"><span>EdgeOne Page 中导入项目</span></a></h2><p>接下来打开 EdgeOne Page 的<a href="https://console.cloud.tencent.com/edgeone/pages" target="_blank" rel="noopener noreferrer">控制台</a>,这里可以导入 Github、Gitee 和 CNB 的项目哦~</p><p>点击「导入项目」,选择 Gitee 项目,找到刚才创建的那个项目,然后就可以直接开始部署啦~</p><p>等待大概一分钟左右,部署完成后,在项目概览页面点击预览按钮,就可以先看看资源能不能正常访问啦~</p><h2 id="配置域名" tabindex="-1"><a class="header-anchor" href="#配置域名"><span>配置域名</span></a></h2><p>如果临时链接可以正常访问的话,我们就可以配置自己的域名啦~在项目概览页面点击「自定义域名」就可以进入配置界面哦~</p><p>在那里输入你想要使用的域名,腾讯云可是提供了50个免费证书的额度呢!而且证书到期后还会自动释放额度,所以完全不用担心证书不够用的问题,可以放心大胆地点击「使用免费证书」按钮哦~</p>',10)])])}const s=t(o,[["render",i]]),d=JSON.parse('{"path":"/article/8gihio2v/","title":"通过 EdgeOne Pages 搭建图床","lang":"zh-CN","frontmatter":{"title":"通过 EdgeOne Pages 搭建图床","createTime":"2025/09/29 02:28:17","permalink":"/article/8gihio2v/","tags":["image-hosting"],"description":"各位~今天要给大家介绍一个超棒的图床搭建方法哦!EdgeOne Pages 是腾讯云提供的静态网站托管服务,而且还有免费额度可以使用呢,对于日常需求来说完全足够啦~ 创建一个 Git 项目 第一步呢,我们需要先在 Gitee 上创建一个项目,专门用来存放网站里要用的各种图片。当然啦,如果你习惯用 Github 或者 CNB 也没问题,这些平台都是支持的...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"通过 EdgeOne Pages 搭建图床\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-03-28T16:28:45.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/article/8gihio2v/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"通过 EdgeOne Pages 搭建图床"}],["meta",{"property":"og:description","content":"各位~今天要给大家介绍一个超棒的图床搭建方法哦!EdgeOne Pages 是腾讯云提供的静态网站托管服务,而且还有免费额度可以使用呢,对于日常需求来说完全足够啦~ 创建一个 Git 项目 第一步呢,我们需要先在 Gitee 上创建一个项目,专门用来存放网站里要用的各种图片。当然啦,如果你习惯用 Github 或者 CNB 也没问题,这些平台都是支持的..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-03-28T16:28:45.000Z"}],["meta",{"property":"article:tag","content":"image-hosting"}],["meta",{"property":"article:modified_time","content":"2026-03-28T16:28:45.000Z"}]]},"readingTime":{"minutes":1.41,"words":423},"git":{"createdTime":1767924220000,"updatedTime":1774715325000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":2,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"blog/website/EdgeOne_Pages_Images.md","headers":[],"categoryList":[{"id":"126ac9","sort":10000,"name":"博客"},{"id":"b0f8fe","sort":10002,"name":"网站"}]}');export{s as comp,d 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-BJYYgOLS.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,d as a,e as l,a as e,w as h,r as d,o as y}from"./app-DTJ1dk4L.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;">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;">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>
|
<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"}},"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"}},"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":"#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\\":\\"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};
|
`),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 常用标签与属性 | Web 开发","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};
|
||||||
1
assets/index.html-BXHDJj6h.js
Normal file
1
assets/index.html-BXHDJj6h.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{_ as a,c as o,b as t,o as r}from"./app-DTJ1dk4L.js";const n={};function c(i,e){return r(),o("div",null,[...e[0]||(e[0]=[t("blockquote",null,[t("p",null,"还没有开始写呢,先占个位置~ ✨")],-1),t("p",null,"敬请期待...",-1)])])}const p=a(n,[["render",c]]),m=JSON.parse('{"path":"/subject/certification/sys-analyst/","title":"第一章 绪论 | 系统分析师","lang":"zh-CN","frontmatter":{"title":"第一章 绪论","createTime":"2026/03/01 14:00:00","permalink":"/subject/certification/sys-analyst/","description":"还没有开始写呢,先占个位置~ ✨ 敬请期待...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"第一章 绪论\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-03-01T12:47:17.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/subject/certification/sys-analyst/"}],["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-03-01T12:47:17.000Z"}],["meta",{"property":"article:modified_time","content":"2026-03-01T12:47:17.000Z"}]]},"readingTime":{"minutes":0.12,"words":36},"git":{"createdTime":1772369237000,"updatedTime":1772369237000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/certification/sys-analyst/README.md","headers":[]}');export{p as comp,m as data};
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import{_ as e,c as a,a as n,o as i}from"./app-BJYYgOLS.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-DTJ1dk4L.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>wsl -d Ubuntu-20.04</span></span>
|
||||||
<span class="line"><span></span></span>
|
<span class="line"><span></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-BJYYgOLS.js";const l={};function t
|
|||||||
<span class="line"><span></span></span>
|
<span class="line"><span></span></span>
|
||||||
<span class="line"><span># 导入 tar 文件为新的发行版</span></span>
|
<span class="line"><span># 导入 tar 文件为新的发行版</span></span>
|
||||||
<span class="line"><span>wsl --import <新发行版名称> <安装目录> <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","permalink":"/article/operate-wsl2/","tags":["wsl"],"description":"这篇文章主要讲WSL2虚拟机核心操作哦~它基于轻量级Hyper-V运行,像贴心小精灵默默工作~还能用命令行精细控制!接下来讲启动/关闭、实例管理、资源配置、网络操作、备份迁移这五大操作,是不是很期待呢~♪ 启动/关闭 WSL2 虚拟机 WSL2的虚拟机平时是由Windows自动管理的呢,不过我们也可以通过命令手动控制它的生命周期哦~ 如果想要完全关闭W...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"WSL2 核心操作指南\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-03-28T16:28:45.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:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-03-28T16:28:45.000Z"}],["meta",{"property":"article:tag","content":"wsl"}],["meta",{"property":"article:modified_time","content":"2026-03-28T16:28:45.000Z"}]]},"readingTime":{"minutes":3.74,"words":1122},"git":{"createdTime":1767924220000,"updatedTime":1774715325000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":2,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"blog/technology/Operate_WSL2.md","headers":[],"categoryList":[{"id":"126ac9","sort":10000,"name":"博客"},{"id":"750eb7","sort":10001,"name":"技术"}]}');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","permalink":"/article/operate-wsl2/","tags":["wsl"],"description":"这篇文章主要讲WSL2虚拟机核心操作哦~它基于轻量级Hyper-V运行,像贴心小精灵默默工作~还能用命令行精细控制!接下来讲启动/关闭、实例管理、资源配置、网络操作、备份迁移这五大操作,是不是很期待呢~♪ 启动/关闭 WSL2 虚拟机 WSL2的虚拟机平时是由Windows自动管理的呢,不过我们也可以通过命令手动控制它的生命周期哦~ 如果想要完全关闭W...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"WSL2 核心操作指南\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-03-28T16:28:45.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:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-03-28T16:28:45.000Z"}],["meta",{"property":"article:tag","content":"wsl"}],["meta",{"property":"article:modified_time","content":"2026-03-28T16:28:45.000Z"}]]},"readingTime":{"minutes":3.74,"words":1122},"git":{"createdTime":1767924220000,"updatedTime":1774715325000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":2,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"blog/technology/Operate_WSL2.md","headers":[],"categoryList":[{"id":"83ec45","sort":10001,"name":"技术"}]}');export{r as comp,c as data};
|
||||||
@@ -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-BJYYgOLS.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-DTJ1dk4L.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;">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;">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>
|
<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:#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:#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>
|
||||||
<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};
|
<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 基础知识 | Web 开发","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 t,c as e,o as n}from"./app-BJYYgOLS.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-DTJ1dk4L.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};
|
||||||
1
assets/index.html-BnTjqV-i.js
Normal file
1
assets/index.html-BnTjqV-i.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{_ as e,c as t,o as a}from"./app-DTJ1dk4L.js";const r={};function c(n,s){return a(),t("div")}const o=e(r,[["render",c]]),l=JSON.parse('{"path":"/article/archives/","title":"归档","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"归档","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"posts-archives"}');export{o as comp,l as data};
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as e,c as t,o as a}from"./app-BJYYgOLS.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 t,c as r,a as o,o as i}from"./app-BJYYgOLS.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};
|
|
||||||
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
|||||||
import{_ as a,c as o,b as t,o as r}from"./app-BJYYgOLS.js";const n={};function c(i,e){return r(),o("div",null,[...e[0]||(e[0]=[t("blockquote",null,[t("p",null,"还没有开始写呢,先占个位置~ ✨")],-1),t("p",null,"敬请期待...",-1)])])}const m=a(n,[["render",c]]),p=JSON.parse('{"path":"/subject/certification/sys-analyst/math/","title":"第二章 数学与工程基础","lang":"zh-CN","frontmatter":{"title":"第二章 数学与工程基础","createTime":"2026/03/01 14:00:00","permalink":"/subject/certification/sys-analyst/math/","description":"还没有开始写呢,先占个位置~ ✨ 敬请期待...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"第二章 数学与工程基础\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-03-01T12:47:17.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/subject/certification/sys-analyst/math/"}],["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-03-01T12:47:17.000Z"}],["meta",{"property":"article:modified_time","content":"2026-03-01T12:47:17.000Z"}]]},"readingTime":{"minutes":0.15,"words":46},"git":{"createdTime":1772369237000,"updatedTime":1772369237000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/subject/certification/sys-analyst/math.md","headers":[]}');export{m as comp,p as data};
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
import{_ as r,c as a,b as e,o as n}from"./app-BJYYgOLS.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
assets/index.html-CBhDXZL1.js
Normal file
1
assets/index.html-CBhDXZL1.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{_ as t,c as r,a as o,o as i}from"./app-DTJ1dk4L.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 学习笔记 | 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 +0,0 @@
|
|||||||
import{_ as t,c as a,a as o,o as r}from"./app-BJYYgOLS.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
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
|
|||||||
import{_ as e,c as t,o as a}from"./app-BJYYgOLS.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-CJdXDPUR.js
Normal file
1
assets/index.html-CJdXDPUR.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{_ as t,c as e,o as a}from"./app-DTJ1dk4L.js";const n={};function r(o,c){return a(),e("div")}const i=t(n,[["render",r]]),l=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":"posts"}');export{i as comp,l as data};
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import{_ as i,c as e,a,o as n}from"./app-BJYYgOLS.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-DTJ1dk4L.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 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>
|
||||||
<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>
|
<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-BJYYgOLS.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:#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;"> d036a22f16909cba4c8521cd3c31db3be381e673c9749e3fd2848ab25eca134ef917cb9306f41893295c535078bce77bdc241eba3f92549a73efe4699d3c0df8,</span></span>
|
||||||
<span class="line"><span style="--shiki-light:#393A34;--shiki-dark:#DBD7CAEE;"> f0535616759000b473a285d60814bc2c5927a9cb897644da46890de71e59df590cd6fe1b226a95e19a566b6fc127fd85032de0d9fdd3d529e5e50cd96ad51f28</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 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};
|
<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 +0,0 @@
|
|||||||
import{_ as t,c as e,o as a}from"./app-BJYYgOLS.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};
|
|
||||||
7
assets/index.html-CW7eTBaK.js
Normal file
7
assets/index.html-CW7eTBaK.js
Normal file
File diff suppressed because one or more lines are too long
1
assets/index.html-CZJ9_S3Z.js
Normal file
1
assets/index.html-CZJ9_S3Z.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{_ as r,c as n,b as t,d as o,e as i,w as p,r as s,o as m}from"./app-DTJ1dk4L.js";const d={};function l(c,e){const a=s("VPLink");return m(),n("div",null,[e[3]||(e[3]=t("h1",{id:"模型",tabindex:"-1"},[t("a",{class:"header-anchor",href:"#模型"},[t("span",null,"模型")])],-1)),e[4]||(e[4]=t("p",null,"这里是我和大模型、RAG、本地部署还有各种工具链打交道的地方~",-1)),e[5]||(e[5]=t("p",null,"和博客里的随想不同,这些笔记会更系统化一些,方便以后自己回来查的时候能一把抓到重点。左侧的目录会随着我记的东西越来越多而慢慢展开,就像「英语学习」「Web 开发」那些栏目一样,可以按专题慢慢逛。",-1)),t("p",null,[e[1]||(e[1]=o("当然啦,如果只是突然想到什么、想随手记几句碎碎念,还是会丢进 ",-1)),i(a,{href:"/blog/"},{default:p(()=>[...e[0]||(e[0]=[o("博客",-1)])]),_:1}),e[2]||(e[2]=o(" 里,那里更适合发点动态更新的小东西~",-1))])])}const u=r(d,[["render",l]]),g=JSON.parse('{"path":"/ai/","title":"模型 | 模型","lang":"zh-CN","frontmatter":{"title":"模型","createTime":"2026/03/29 20:00:00","permalink":"/ai/","description":"模型 这里是我和大模型、RAG、本地部署还有各种工具链打交道的地方~ 和博客里的随想不同,这些笔记会更系统化一些,方便以后自己回来查的时候能一把抓到重点。左侧的目录会随着我记的东西越来越多而慢慢展开,就像「英语学习」「Web 开发」那些栏目一样,可以按专题慢慢逛。 当然啦,如果只是突然想到什么、想随手记几句碎碎念,还是会丢进 里,那里更适合发点动态更新...","head":[["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"模型\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2026-03-29T05:21:46.000Z\\",\\"author\\":[]}"],["meta",{"property":"og:url","content":"https://www.simengweb.com/ai/"}],["meta",{"property":"og:site_name","content":"仲夏夜之梦"}],["meta",{"property":"og:title","content":"模型"}],["meta",{"property":"og:description","content":"模型 这里是我和大模型、RAG、本地部署还有各种工具链打交道的地方~ 和博客里的随想不同,这些笔记会更系统化一些,方便以后自己回来查的时候能一把抓到重点。左侧的目录会随着我记的东西越来越多而慢慢展开,就像「英语学习」「Web 开发」那些栏目一样,可以按专题慢慢逛。 当然啦,如果只是突然想到什么、想随手记几句碎碎念,还是会丢进 里,那里更适合发点动态更新..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-03-29T05:21:46.000Z"}],["meta",{"property":"article:modified_time","content":"2026-03-29T05:21:46.000Z"}]]},"readingTime":{"minutes":0.56,"words":168},"git":{"createdTime":1774761706000,"updatedTime":1774761706000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":1,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"notes/ai/README.md","headers":[]}');export{u as comp,g 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
@@ -1 +0,0 @@
|
|||||||
import{_ as r,c as t,a,o}from"./app-BJYYgOLS.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};
|
|
||||||
1
assets/index.html-CfGlHeOe.js
Normal file
1
assets/index.html-CfGlHeOe.js
Normal file
@@ -0,0 +1 @@
|
|||||||
|
import{_ as e,c as t,o as a}from"./app-DTJ1dk4L.js";const r={};function c(n,o){return a(),t("div")}const i=e(r,[["render",c]]),l=JSON.parse('{"path":"/article/categories/","title":"分类","lang":"zh-CN","frontmatter":{"lang":"zh-CN","title":"分类","gitInclude":[],"draft":true},"readingTime":{"minutes":0,"words":0},"git":{},"filePathRelative":null,"headers":[],"type":"posts-categories"}');export{i as comp,l as data};
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
import{_ as i,c as a,a as n,o as h}from"./app-BJYYgOLS.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>
|
import{_ as i,c as a,a as n,o as h}from"./app-DTJ1dk4L.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 style="--shiki-light:#A0ADA0;--shiki-dark:#758575DD;"># import sys</span></span>
|
||||||
<span class="line"></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;"># def is_prime(n):</span></span>
|
||||||
@@ -127,4 +127,4 @@ import{_ as i,c as a,a as n,o as h}from"./app-BJYYgOLS.js";const k={};function l
|
|||||||
<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;"> 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 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>
|
||||||
<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","permalink":"/archives/b1c77a1d-d402-4788-8049-fa3aeb12ebd0/","tags":["contest"],"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\\":[\\"\\"],\\"dateModified\\":\\"2026-03-28T16:28:45.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:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-03-28T16:28:45.000Z"}],["meta",{"property":"article:tag","content":"contest"}],["meta",{"property":"article:modified_time","content":"2026-03-28T16:28:45.000Z"}]]},"readingTime":{"minutes":6.48,"words":1944},"git":{"createdTime":1767946229000,"updatedTime":1774715325000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":2,"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":"博客"},{"id":"83ee8d","sort":10004,"name":"竞赛"}]}');export{e as comp,d as data};
|
<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","permalink":"/archives/b1c77a1d-d402-4788-8049-fa3aeb12ebd0/","tags":["contest"],"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\\":[\\"\\"],\\"dateModified\\":\\"2026-03-28T16:28:45.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:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2026-03-28T16:28:45.000Z"}],["meta",{"property":"article:tag","content":"contest"}],["meta",{"property":"article:modified_time","content":"2026-03-28T16:28:45.000Z"}]]},"readingTime":{"minutes":6.48,"words":1944},"git":{"createdTime":1767946229000,"updatedTime":1774715325000,"contributors":[{"name":"祀梦","username":"","email":"3501646051@qq.com","commits":2,"avatar":"https://gravatar.com/avatar/6406a81eeddc359cf3d3ce018797689fc6d014ff06215c27d0210b42e8f5a8ab?d=retro"}]},"autoDesc":true,"filePathRelative":"blog/competition/14th-lanqiaocup-python-grad.md","headers":[],"categoryList":[{"id":"3190db","sort":10003,"name":"竞赛"}]}');export{e as comp,d as data};
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user