diff --git a/404.html b/404.html index 24028709..a4b004ce 100644 --- a/404.html +++ b/404.html @@ -30,11 +30,11 @@ Jzero Framework - - + + -
跳至主要內容
- +
跳至主要內容
+ diff --git a/article/index.html b/article/index.html index bf4a49be..ab5a36d3 100644 --- a/article/index.html +++ b/article/index.html @@ -30,8 +30,8 @@ 文章 | Jzero Framework - - + +
跳至主要內容
- + diff --git a/assets/404.html-B8IqJqEq.js b/assets/404.html-C-cXDumL.js similarity index 94% rename from assets/404.html-B8IqJqEq.js rename to assets/404.html-C-cXDumL.js index ca525d62..1eca3a1a 100644 --- a/assets/404.html-B8IqJqEq.js +++ b/assets/404.html-C-cXDumL.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,e as n,o as r}from"./app-i_AVB87T.js";const a={};function p(c,t){return r(),o("div",null,t[0]||(t[0]=[n("p",null,"404 Not Found",-1)]))}const l=e(a,[["render",p],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/404.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0.01,"words":3},"filePathRelative":null,"excerpt":"

404 Not Found

\\n","autoDesc":true}');export{l as comp,m as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,e as n,o as r}from"./app-CykRD9-9.js";const a={};function p(c,t){return r(),o("div",null,t[0]||(t[0]=[n("p",null,"404 Not Found",-1)]))}const l=e(a,[["render",p],["__file","404.html.vue"]]),m=JSON.parse('{"path":"/404.html","title":"","lang":"zh-CN","frontmatter":{"layout":"NotFound","description":"404 Not Found","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/404.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:description","content":"404 Not Found"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"\\",\\"description\\":\\"404 Not Found\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0.01,"words":3},"filePathRelative":null,"excerpt":"

404 Not Found

\\n","autoDesc":true}');export{l as comp,m as data}; diff --git a/assets/api.html-CAncEz_1.js b/assets/api.html-BiSAAXMH.js similarity index 98% rename from assets/api.html-CAncEz_1.js rename to assets/api.html-BiSAAXMH.js index fca5c551..be5c776b 100644 --- a/assets/api.html-CAncEz_1.js +++ b/assets/api.html-BiSAAXMH.js @@ -1,4 +1,4 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as i,o}from"./app-i_AVB87T.js";const n={};function r(p,e){return o(),a("div",null,e[0]||(e[0]=[i(`

基于 go-zero api 框架: https://go-zero.dev/docs/tutorials

api 字段校验

jzero 集成 https://github.com/go-playground/validator 进行字段校验

syntax = "v1"
+import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as i,o}from"./app-CykRD9-9.js";const n={};function r(p,e){return o(),a("div",null,e[0]||(e[0]=[i(`

基于 go-zero api 框架: https://go-zero.dev/docs/tutorials

api 字段校验

jzero 集成 https://github.com/go-playground/validator 进行字段校验

syntax = "v1"
 
 type CreateRequest {
     name string \`json:"name" validate:"gte=2,lte=30"\` // 名称
diff --git a/assets/app-i_AVB87T.js b/assets/app-CykRD9-9.js
similarity index 98%
rename from assets/app-i_AVB87T.js
rename to assets/app-CykRD9-9.js
index 13a37b0f..32512090 100644
--- a/assets/app-i_AVB87T.js
+++ b/assets/app-CykRD9-9.js
@@ -1,4 +1,4 @@
-const __vite__fileDeps=["assets/index.html-Cbd171QW.js","assets/plugin-vue_export-helper-DlAUqK2U.js","assets/index.html-Bzq9U1lm.js","assets/index.html-CcVmTy1T.js","assets/swagger.html-Dj4yDr0W.js","assets/check.html-CpRQsgoK.js","assets/contribute.html-Dsyecs8z.js","assets/gen.html-BoFzd135.js","assets/gendoc.html-D-Lmx4HK.js","assets/gensdk.html-CBidjnZM.js","assets/genswagger.html-BTHYOKma.js","assets/ivm.html-DPRnZKxm.js","assets/jzero.html-wilYoJzH.js","assets/new.html-CRsC_KB9.js","assets/template.html-CPhrUoEH.js","assets/index.html-Bkhys7ds.js","assets/gateway.html-DJHAgh9i.js","assets/index.html-BZpiCXlO.js","assets/base.html-Bcuu8yz1.js","assets/index.html-BQ9LiL4y.js","assets/etcd.html-BSk8f97P.js","assets/introduction.html-CQ0m7qm1.js","assets/limit.html-CyKCJhSd.js","assets/log.html-5GKmNjmA.js","assets/prometheus.html-2LOXfUW-.js","assets/telemetry.html-zpi3ydaZ.js","assets/timeout.html-Ze1Dj6Gs.js","assets/index.html-BdN0ZalW.js","assets/image.html-DUU7BMb_.js","assets/index.html-BaLEG_5R.js","assets/api.html-CAncEz_1.js","assets/command.html-BZx2VwSG.js","assets/log.html-DqgoM-LB.js","assets/proto.html-DuBQfelr.js","assets/404.html-B8IqJqEq.js","assets/index.html-BB1KKT_E.js","assets/category.html-D-gOMkUe.js","assets/index.html-Cx9MoW39.js","assets/index.html-Aip76kXx.js","assets/index.html-B5Cnkk2s.js","assets/index.html-B4BezKkG.js","assets/index.html-B45eauE2.js","assets/index.html-_hTD5r2w.js","assets/category.html--7e_ngao.js","assets/tag.html-DJLmQWNw.js","assets/index.html-B1zxIjH8.js","assets/index.html-8Gw_vm22.js","assets/index.html-CvYnL55h.js","assets/index.html-DOj4krHA.js","assets/tag.html-Bhro9y0c.js","assets/index.html-BAGLy4_8.js","assets/index.html-BF-V8TbH.js","assets/star.html-BW2b8fXo.js","assets/star.html-D7_AXg2a.js","assets/index.html-CFMNswyR.js","assets/index.html-uuB1JdsC.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
+const __vite__fileDeps=["assets/index.html-0M-f0RHo.js","assets/plugin-vue_export-helper-DlAUqK2U.js","assets/index.html-BfvkL9je.js","assets/index.html-CD4p8Pdl.js","assets/swagger.html-DLUKzObB.js","assets/check.html-CjOIYXes.js","assets/contribute.html-CMSHQ7hA.js","assets/gen.html-pnwZnKXr.js","assets/gendoc.html-B_8TiLpV.js","assets/gensdk.html-B9azMcZc.js","assets/genswagger.html-CRnk28O6.js","assets/ivm.html-CVD7O9Nb.js","assets/jzero.html-1sFP92P9.js","assets/new.html-BolyTBF0.js","assets/template.html-BAuUZSJU.js","assets/index.html-CDb_Pw4F.js","assets/gateway.html-DDCeP_Hj.js","assets/index.html-BODQ4Uyd.js","assets/base.html-Dh00g-AS.js","assets/index.html-O3Jq0bVp.js","assets/etcd.html-Cx1MSNms.js","assets/introduction.html-Ce4UbW76.js","assets/limit.html-DhZ2l6Ko.js","assets/log.html-Bczu5ACN.js","assets/prometheus.html-C9h0tPXR.js","assets/telemetry.html-vJpQFaiS.js","assets/timeout.html-BZjO8fdq.js","assets/index.html-CJ-2-XaB.js","assets/image.html-ca7VRSfN.js","assets/index.html-C--49tsz.js","assets/api.html-BiSAAXMH.js","assets/command.html-DWiPMAk3.js","assets/log.html-BqxiG7x-.js","assets/proto.html-GouWPghd.js","assets/404.html-C-cXDumL.js","assets/index.html-BhYElsFm.js","assets/category.html-D9J3cbHa.js","assets/index.html-Dg-TWTCD.js","assets/index.html-CLBq6kx9.js","assets/index.html-G9ZczZ4H.js","assets/index.html-D9UVA_KP.js","assets/index.html-DYC7Zubq.js","assets/index.html-LuovaIse.js","assets/category.html-DOAZxti-.js","assets/tag.html-D5cmFYtf.js","assets/index.html-B_VQjZZV.js","assets/index.html-wi5a_sDS.js","assets/index.html-BCCVEm50.js","assets/index.html-geXTp7i1.js","assets/tag.html-DMRJgkRx.js","assets/index.html-CblHrs13.js","assets/index.html-BPHZkvSo.js","assets/star.html-CENyG7R6.js","assets/star.html-zvt9Tgnb.js","assets/index.html-D-2f3sY1.js","assets/index.html-B9ivrt1J.js"],__vite__mapDeps=i=>i.map(i=>__vite__fileDeps[i]);
 var Td=Object.defineProperty;var Ld=(e,t,n)=>t in e?Td(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var Pi=(e,t,n)=>(Ld(e,typeof t!="symbol"?t+"":t,n),n);/**
 * @vue/shared v3.5.8
 * (c) 2018-present Yuxi (Evan) You and Vue contributors
@@ -16,44 +16,44 @@ var Td=Object.defineProperty;var Ld=(e,t,n)=>t in e?Td(e,t,{enumerable:!0,config
 * @vue/runtime-dom v3.5.8
 * (c) 2018-present Yuxi (Evan) You and Vue contributors
 * @license MIT
-**/let ga;const ir=typeof window<"u"&&window.trustedTypes;if(ir)try{ga=ir.createPolicy("vue",{createHTML:e=>e})}catch{}const dc=ga?e=>ga.createHTML(e):e=>e,zh="http://www.w3.org/2000/svg",Nh="http://www.w3.org/1998/Math/MathML",zt=typeof document<"u"?document:null,ar=zt&&zt.createElement("template"),Hh={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const i=t==="svg"?zt.createElementNS(zh,e):t==="mathml"?zt.createElementNS(Nh,e):n?zt.createElement(e,{is:n}):zt.createElement(e);return e==="select"&&s&&s.multiple!=null&&i.setAttribute("multiple",s.multiple),i},createText:e=>zt.createTextNode(e),createComment:e=>zt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>zt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,i,a){const l=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{ar.innerHTML=dc(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const o=ar.content;if(s==="svg"||s==="mathml"){const c=o.firstChild;for(;c.firstChild;)o.appendChild(c.firstChild);o.removeChild(c)}t.insertBefore(o,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ut="transition",es="animation",Nn=Symbol("_vtc"),pc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},hc=Ie({},Po,pc),Vh=e=>(e.displayName="Transition",e.props=hc,e),Hn=Vh((e,{slots:t})=>r(Pp,fc(e),t)),cn=(e,t=[])=>{ne(e)?e.forEach(n=>n(...t)):e&&e(...t)},lr=e=>e?ne(e)?e.some(t=>t.length>1):e.length>1:!1;function fc(e){const t={};for(const P in e)P in pc||(t[P]=e[P]);if(e.css===!1)return t;const{name:n="v",type:s,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:u=l,appearToClass:d=o,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:f=`${n}-leave-to`}=e,k=qh(i),y=k&&k[0],w=k&&k[1],{onBeforeEnter:b,onEnter:_,onEnterCancelled:g,onLeave:E,onLeaveCancelled:O,onBeforeAppear:H=b,onAppear:F=_,onAppearCancelled:G=g}=t,R=(P,X,fe)=>{Kt(P,X?d:o),Kt(P,X?u:l),fe&&fe()},T=(P,X)=>{P._isLeaving=!1,Kt(P,p),Kt(P,f),Kt(P,h),X&&X()},z=P=>(X,fe)=>{const Ce=P?F:_,U=()=>R(X,P,fe);cn(Ce,[X,U]),rr(()=>{Kt(X,P?c:a),$t(X,P?d:o),lr(Ce)||or(X,s,y,U)})};return Ie(t,{onBeforeEnter(P){cn(b,[P]),$t(P,a),$t(P,l)},onBeforeAppear(P){cn(H,[P]),$t(P,c),$t(P,u)},onEnter:z(!1),onAppear:z(!0),onLeave(P,X){P._isLeaving=!0;const fe=()=>T(P,X);$t(P,p),$t(P,h),gc(),rr(()=>{P._isLeaving&&(Kt(P,p),$t(P,f),lr(E)||or(P,s,w,fe))}),cn(E,[P,fe])},onEnterCancelled(P){R(P,!1),cn(g,[P])},onAppearCancelled(P){R(P,!0),cn(G,[P])},onLeaveCancelled(P){T(P),cn(O,[P])}})}function qh(e){if(e==null)return null;if(Te(e))return[Gi(e.enter),Gi(e.leave)];{const t=Gi(e);return[t,t]}}function Gi(e){return zd(e)}function $t(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Nn]||(e[Nn]=new Set)).add(t)}function Kt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Nn];n&&(n.delete(t),n.size||(e[Nn]=void 0))}function rr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Gh=0;function or(e,t,n,s){const i=e._endId=++Gh,a=()=>{i===e._endId&&s()};if(n!=null)return setTimeout(a,n);const{type:l,timeout:o,propCount:c}=vc(e,t);if(!l)return s();const u=l+"end";let d=0;const p=()=>{e.removeEventListener(u,h),a()},h=f=>{f.target===e&&++d>=c&&p()};setTimeout(()=>{d(n[k]||"").split(", "),i=s(`${Ut}Delay`),a=s(`${Ut}Duration`),l=cr(i,a),o=s(`${es}Delay`),c=s(`${es}Duration`),u=cr(o,c);let d=null,p=0,h=0;t===Ut?l>0&&(d=Ut,p=l,h=a.length):t===es?u>0&&(d=es,p=u,h=c.length):(p=Math.max(l,u),d=p>0?l>u?Ut:es:null,h=d?d===Ut?a.length:c.length:0);const f=d===Ut&&/\b(transform|all)(,|$)/.test(s(`${Ut}Property`).toString());return{type:d,timeout:p,propCount:h,hasTransform:f}}function cr(e,t){for(;e.lengthur(n)+ur(e[s])))}function ur(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function gc(){return document.body.offsetHeight}function Uh(e,t,n){const s=e[Nn];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const dr=Symbol("_vod"),Wh=Symbol("_vsh"),Kh=Symbol(""),Yh=/(^|;)\s*display\s*:/;function Jh(e,t,n){const s=e.style,i=De(n);let a=!1;if(n&&!i){if(t)if(De(t))for(const l of t.split(";")){const o=l.slice(0,l.indexOf(":")).trim();n[o]==null&&ci(s,o,"")}else for(const l in t)n[l]==null&&ci(s,l,"");for(const l in n)l==="display"&&(a=!0),ci(s,l,n[l])}else if(i){if(t!==n){const l=s[Kh];l&&(n+=";"+l),s.cssText=n,a=Yh.test(n)}}else t&&e.removeAttribute("style");dr in e&&(e[dr]=a?s.display:"",e[Wh]&&(s.display="none"))}const pr=/\s*!important$/;function ci(e,t,n){if(ne(n))n.forEach(s=>ci(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Qh(e,t);pr.test(n)?e.setProperty(bn(s),n.replace(pr,""),"important"):e[s]=n}}const hr=["Webkit","Moz","ms"],Ui={};function Qh(e,t){const n=Ui[t];if(n)return n;let s=ot(t);if(s!=="filter"&&s in e)return Ui[t]=s;s=xs(s);for(let i=0;iWi||(sf.then(()=>Wi=0),Wi=Date.now());function lf(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;wt(rf(s,n.value),t,5,[s])};return n.value=e,n.attached=af(),n}function rf(e,t){if(ne(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>i=>!i._stopped&&s&&s(i))}else return t}const kr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,of=(e,t,n,s,i,a)=>{const l=i==="svg";t==="class"?Uh(e,s,l):t==="style"?Jh(e,n,s):As(t)?Ra(t)||tf(e,t,n,s,a):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):cf(e,t,s,l))?(Xh(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&vr(e,t,s,l,a,t!=="value")):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),vr(e,t,s,l))};function cf(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&kr(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return kr(t)&&De(n)?!1:!!(t in e||e._isVueCE&&(/[A-Z]/.test(t)||!De(n)))}const mc=new WeakMap,kc=new WeakMap,gi=Symbol("_moveCb"),yr=Symbol("_enterCb"),uf=e=>(delete e.props.mode,e),df=uf({name:"TransitionGroup",props:Ie({},hc,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Bs(),s=Io();let i,a;return jo(()=>{if(!i.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!gf(i[0].el,n.vnode.el,l))return;i.forEach(hf),i.forEach(ff);const o=i.filter(vf);gc(),o.forEach(c=>{const u=c.el,d=u.style;$t(u,l),d.transform=d.webkitTransform=d.transitionDuration="";const p=u[gi]=h=>{h&&h.target!==u||(!h||/transform$/.test(h.propertyName))&&(u.removeEventListener("transitionend",p),u[gi]=null,Kt(u,l))};u.addEventListener("transitionend",p)})}),()=>{const l=ce(e),o=fc(l);let c=l.tag||it;if(i=[],a)for(let u=0;u{o.split(/\s+/).forEach(c=>c&&s.classList.remove(c))}),n.split(/\s+/).forEach(o=>o&&s.classList.add(o)),s.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(s);const{hasTransform:l}=vc(s);return a.removeChild(s),l}const mf=Ie({patchProp:of},Hh);let Ki,br=!1;function kf(){return Ki=br?Ki:hh(mf),br=!0,Ki}const yf=(...e)=>{const t=kf().createApp(...e),{mount:n}=t;return t.mount=s=>{const i=Cf(s);if(i)return n(i,!0,bf(i))},t};function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cf(e){return De(e)?document.querySelector(e):e}var Ps=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),wf=/.md((\?|#).*)?$/,Ai=(e,t="/")=>Ps(e)||e.startsWith("/")&&!e.startsWith(t)&&!wf.test(e),wn=e=>/^(https?:)?\/\//.test(e),Cr=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},_f="http://.",Ef=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return Cr(new URL(`${n}/${e}`,_f).pathname)}return Cr(e)},Af=(e,t)=>{const n=Object.keys(e).sort((s,i)=>{const a=i.split("/").length-s.split("/").length;return a!==0?a:i.length-s.length});for(const s of n)if(t.startsWith(s))return s;return"/"},xf=/(#|\?)/,yc=e=>{const[t,...n]=e.split(xf);return{pathname:t,hashAndQueries:n.join("")}},Sf=["link","meta","script","style","noscript","template"],Ff=["title","base"],Tf=([e,t,n])=>Ff.includes(e)?e:Sf.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([s,i])=>typeof i=="boolean"?i?[s,""]:null:[s,i]).filter(s=>s!=null).sort(([s],[i])=>s.localeCompare(i)),n]):null,Lf=e=>{const t=new Set,n=[];return e.forEach(s=>{const i=Tf(s);i&&!t.has(i)&&(t.add(i),n.push(s))}),n},Bf=e=>e[0]==="/"?e:`/${e}`,bc=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,al=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Cc=e=>e[0]==="/"?e.slice(1):e,Ds=e=>Object.prototype.toString.call(e)==="[object Object]",Fe=e=>typeof e=="string";const Of="modulepreload",If=function(e){return"/"+e},wr={},Y=function(t,n,s){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=Promise.all(n.map(o=>{if(o=If(o),o in wr)return;wr[o]=!0;const c=o.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${o}"]${u}`))return;const d=document.createElement("link");if(d.rel=c?"stylesheet":Of,c||(d.as="script",d.crossOrigin=""),d.href=o,l&&d.setAttribute("nonce",l),document.head.appendChild(d),c)return new Promise((p,h)=>{d.addEventListener("load",p),d.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${o}`)))})}))}return i.then(()=>t()).catch(a=>{const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=a,window.dispatchEvent(l),!l.defaultPrevented)throw a})},Pf=JSON.parse("{}"),Df=Object.fromEntries([["/",{loader:()=>Y(()=>import("./index.html-Cbd171QW.js"),__vite__mapDeps([0,1])),meta:{d:1712825833e3,e:`
+**/let ga;const ir=typeof window<"u"&&window.trustedTypes;if(ir)try{ga=ir.createPolicy("vue",{createHTML:e=>e})}catch{}const dc=ga?e=>ga.createHTML(e):e=>e,zh="http://www.w3.org/2000/svg",Nh="http://www.w3.org/1998/Math/MathML",zt=typeof document<"u"?document:null,ar=zt&&zt.createElement("template"),Hh={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,s)=>{const i=t==="svg"?zt.createElementNS(zh,e):t==="mathml"?zt.createElementNS(Nh,e):n?zt.createElement(e,{is:n}):zt.createElement(e);return e==="select"&&s&&s.multiple!=null&&i.setAttribute("multiple",s.multiple),i},createText:e=>zt.createTextNode(e),createComment:e=>zt.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>zt.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,s,i,a){const l=n?n.previousSibling:t.lastChild;if(i&&(i===a||i.nextSibling))for(;t.insertBefore(i.cloneNode(!0),n),!(i===a||!(i=i.nextSibling)););else{ar.innerHTML=dc(s==="svg"?`${e}`:s==="mathml"?`${e}`:e);const o=ar.content;if(s==="svg"||s==="mathml"){const c=o.firstChild;for(;c.firstChild;)o.appendChild(c.firstChild);o.removeChild(c)}t.insertBefore(o,n)}return[l?l.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},Ut="transition",es="animation",Nn=Symbol("_vtc"),pc={name:String,type:String,css:{type:Boolean,default:!0},duration:[String,Number,Object],enterFromClass:String,enterActiveClass:String,enterToClass:String,appearFromClass:String,appearActiveClass:String,appearToClass:String,leaveFromClass:String,leaveActiveClass:String,leaveToClass:String},hc=Ie({},Po,pc),Vh=e=>(e.displayName="Transition",e.props=hc,e),Hn=Vh((e,{slots:t})=>r(Pp,fc(e),t)),cn=(e,t=[])=>{ne(e)?e.forEach(n=>n(...t)):e&&e(...t)},lr=e=>e?ne(e)?e.some(t=>t.length>1):e.length>1:!1;function fc(e){const t={};for(const P in e)P in pc||(t[P]=e[P]);if(e.css===!1)return t;const{name:n="v",type:s,duration:i,enterFromClass:a=`${n}-enter-from`,enterActiveClass:l=`${n}-enter-active`,enterToClass:o=`${n}-enter-to`,appearFromClass:c=a,appearActiveClass:u=l,appearToClass:d=o,leaveFromClass:p=`${n}-leave-from`,leaveActiveClass:h=`${n}-leave-active`,leaveToClass:f=`${n}-leave-to`}=e,k=qh(i),y=k&&k[0],w=k&&k[1],{onBeforeEnter:b,onEnter:_,onEnterCancelled:g,onLeave:E,onLeaveCancelled:O,onBeforeAppear:H=b,onAppear:F=_,onAppearCancelled:G=g}=t,R=(P,X,fe)=>{Kt(P,X?d:o),Kt(P,X?u:l),fe&&fe()},T=(P,X)=>{P._isLeaving=!1,Kt(P,p),Kt(P,f),Kt(P,h),X&&X()},z=P=>(X,fe)=>{const Ce=P?F:_,U=()=>R(X,P,fe);cn(Ce,[X,U]),rr(()=>{Kt(X,P?c:a),$t(X,P?d:o),lr(Ce)||or(X,s,y,U)})};return Ie(t,{onBeforeEnter(P){cn(b,[P]),$t(P,a),$t(P,l)},onBeforeAppear(P){cn(H,[P]),$t(P,c),$t(P,u)},onEnter:z(!1),onAppear:z(!0),onLeave(P,X){P._isLeaving=!0;const fe=()=>T(P,X);$t(P,p),$t(P,h),gc(),rr(()=>{P._isLeaving&&(Kt(P,p),$t(P,f),lr(E)||or(P,s,w,fe))}),cn(E,[P,fe])},onEnterCancelled(P){R(P,!1),cn(g,[P])},onAppearCancelled(P){R(P,!0),cn(G,[P])},onLeaveCancelled(P){T(P),cn(O,[P])}})}function qh(e){if(e==null)return null;if(Te(e))return[Gi(e.enter),Gi(e.leave)];{const t=Gi(e);return[t,t]}}function Gi(e){return zd(e)}function $t(e,t){t.split(/\s+/).forEach(n=>n&&e.classList.add(n)),(e[Nn]||(e[Nn]=new Set)).add(t)}function Kt(e,t){t.split(/\s+/).forEach(s=>s&&e.classList.remove(s));const n=e[Nn];n&&(n.delete(t),n.size||(e[Nn]=void 0))}function rr(e){requestAnimationFrame(()=>{requestAnimationFrame(e)})}let Gh=0;function or(e,t,n,s){const i=e._endId=++Gh,a=()=>{i===e._endId&&s()};if(n!=null)return setTimeout(a,n);const{type:l,timeout:o,propCount:c}=vc(e,t);if(!l)return s();const u=l+"end";let d=0;const p=()=>{e.removeEventListener(u,h),a()},h=f=>{f.target===e&&++d>=c&&p()};setTimeout(()=>{d(n[k]||"").split(", "),i=s(`${Ut}Delay`),a=s(`${Ut}Duration`),l=cr(i,a),o=s(`${es}Delay`),c=s(`${es}Duration`),u=cr(o,c);let d=null,p=0,h=0;t===Ut?l>0&&(d=Ut,p=l,h=a.length):t===es?u>0&&(d=es,p=u,h=c.length):(p=Math.max(l,u),d=p>0?l>u?Ut:es:null,h=d?d===Ut?a.length:c.length:0);const f=d===Ut&&/\b(transform|all)(,|$)/.test(s(`${Ut}Property`).toString());return{type:d,timeout:p,propCount:h,hasTransform:f}}function cr(e,t){for(;e.lengthur(n)+ur(e[s])))}function ur(e){return e==="auto"?0:Number(e.slice(0,-1).replace(",","."))*1e3}function gc(){return document.body.offsetHeight}function Uh(e,t,n){const s=e[Nn];s&&(t=(t?[t,...s]:[...s]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const dr=Symbol("_vod"),Wh=Symbol("_vsh"),Kh=Symbol(""),Yh=/(^|;)\s*display\s*:/;function Jh(e,t,n){const s=e.style,i=De(n);let a=!1;if(n&&!i){if(t)if(De(t))for(const l of t.split(";")){const o=l.slice(0,l.indexOf(":")).trim();n[o]==null&&ci(s,o,"")}else for(const l in t)n[l]==null&&ci(s,l,"");for(const l in n)l==="display"&&(a=!0),ci(s,l,n[l])}else if(i){if(t!==n){const l=s[Kh];l&&(n+=";"+l),s.cssText=n,a=Yh.test(n)}}else t&&e.removeAttribute("style");dr in e&&(e[dr]=a?s.display:"",e[Wh]&&(s.display="none"))}const pr=/\s*!important$/;function ci(e,t,n){if(ne(n))n.forEach(s=>ci(e,t,s));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const s=Qh(e,t);pr.test(n)?e.setProperty(bn(s),n.replace(pr,""),"important"):e[s]=n}}const hr=["Webkit","Moz","ms"],Ui={};function Qh(e,t){const n=Ui[t];if(n)return n;let s=ot(t);if(s!=="filter"&&s in e)return Ui[t]=s;s=xs(s);for(let i=0;iWi||(sf.then(()=>Wi=0),Wi=Date.now());function lf(e,t){const n=s=>{if(!s._vts)s._vts=Date.now();else if(s._vts<=n.attached)return;wt(rf(s,n.value),t,5,[s])};return n.value=e,n.attached=af(),n}function rf(e,t){if(ne(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(s=>i=>!i._stopped&&s&&s(i))}else return t}const kr=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,of=(e,t,n,s,i,a)=>{const l=i==="svg";t==="class"?Uh(e,s,l):t==="style"?Jh(e,n,s):As(t)?Ra(t)||tf(e,t,n,s,a):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):cf(e,t,s,l))?(Xh(e,t,s),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&vr(e,t,s,l,a,t!=="value")):(t==="true-value"?e._trueValue=s:t==="false-value"&&(e._falseValue=s),vr(e,t,s,l))};function cf(e,t,n,s){if(s)return!!(t==="innerHTML"||t==="textContent"||t in e&&kr(t)&&se(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const i=e.tagName;if(i==="IMG"||i==="VIDEO"||i==="CANVAS"||i==="SOURCE")return!1}return kr(t)&&De(n)?!1:!!(t in e||e._isVueCE&&(/[A-Z]/.test(t)||!De(n)))}const mc=new WeakMap,kc=new WeakMap,gi=Symbol("_moveCb"),yr=Symbol("_enterCb"),uf=e=>(delete e.props.mode,e),df=uf({name:"TransitionGroup",props:Ie({},hc,{tag:String,moveClass:String}),setup(e,{slots:t}){const n=Bs(),s=Io();let i,a;return jo(()=>{if(!i.length)return;const l=e.moveClass||`${e.name||"v"}-move`;if(!gf(i[0].el,n.vnode.el,l))return;i.forEach(hf),i.forEach(ff);const o=i.filter(vf);gc(),o.forEach(c=>{const u=c.el,d=u.style;$t(u,l),d.transform=d.webkitTransform=d.transitionDuration="";const p=u[gi]=h=>{h&&h.target!==u||(!h||/transform$/.test(h.propertyName))&&(u.removeEventListener("transitionend",p),u[gi]=null,Kt(u,l))};u.addEventListener("transitionend",p)})}),()=>{const l=ce(e),o=fc(l);let c=l.tag||it;if(i=[],a)for(let u=0;u{o.split(/\s+/).forEach(c=>c&&s.classList.remove(c))}),n.split(/\s+/).forEach(o=>o&&s.classList.add(o)),s.style.display="none";const a=t.nodeType===1?t:t.parentNode;a.appendChild(s);const{hasTransform:l}=vc(s);return a.removeChild(s),l}const mf=Ie({patchProp:of},Hh);let Ki,br=!1;function kf(){return Ki=br?Ki:hh(mf),br=!0,Ki}const yf=(...e)=>{const t=kf().createApp(...e),{mount:n}=t;return t.mount=s=>{const i=Cf(s);if(i)return n(i,!0,bf(i))},t};function bf(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function Cf(e){return De(e)?document.querySelector(e):e}var Ps=e=>/^[a-z][a-z0-9+.-]*:/.test(e)||e.startsWith("//"),wf=/.md((\?|#).*)?$/,Ai=(e,t="/")=>Ps(e)||e.startsWith("/")&&!e.startsWith(t)&&!wf.test(e),wn=e=>/^(https?:)?\/\//.test(e),Cr=e=>{if(!e||e.endsWith("/"))return e;let t=e.replace(/(^|\/)README.md$/i,"$1index.html");return t.endsWith(".md")?t=t.substring(0,t.length-3)+".html":t.endsWith(".html")||(t=t+".html"),t.endsWith("/index.html")&&(t=t.substring(0,t.length-10)),t},_f="http://.",Ef=(e,t)=>{if(!e.startsWith("/")&&t){const n=t.slice(0,t.lastIndexOf("/"));return Cr(new URL(`${n}/${e}`,_f).pathname)}return Cr(e)},Af=(e,t)=>{const n=Object.keys(e).sort((s,i)=>{const a=i.split("/").length-s.split("/").length;return a!==0?a:i.length-s.length});for(const s of n)if(t.startsWith(s))return s;return"/"},xf=/(#|\?)/,yc=e=>{const[t,...n]=e.split(xf);return{pathname:t,hashAndQueries:n.join("")}},Sf=["link","meta","script","style","noscript","template"],Ff=["title","base"],Tf=([e,t,n])=>Ff.includes(e)?e:Sf.includes(e)?e==="meta"&&t.name?`${e}.${t.name}`:e==="template"&&t.id?`${e}.${t.id}`:JSON.stringify([e,Object.entries(t).map(([s,i])=>typeof i=="boolean"?i?[s,""]:null:[s,i]).filter(s=>s!=null).sort(([s],[i])=>s.localeCompare(i)),n]):null,Lf=e=>{const t=new Set,n=[];return e.forEach(s=>{const i=Tf(s);i&&!t.has(i)&&(t.add(i),n.push(s))}),n},Bf=e=>e[0]==="/"?e:`/${e}`,bc=e=>e[e.length-1]==="/"||e.endsWith(".html")?e:`${e}/`,al=e=>e[e.length-1]==="/"?e.slice(0,-1):e,Cc=e=>e[0]==="/"?e.slice(1):e,Ds=e=>Object.prototype.toString.call(e)==="[object Object]",Fe=e=>typeof e=="string";const Of="modulepreload",If=function(e){return"/"+e},wr={},Y=function(t,n,s){let i=Promise.resolve();if(n&&n.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),l=(a==null?void 0:a.nonce)||(a==null?void 0:a.getAttribute("nonce"));i=Promise.all(n.map(o=>{if(o=If(o),o in wr)return;wr[o]=!0;const c=o.endsWith(".css"),u=c?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${o}"]${u}`))return;const d=document.createElement("link");if(d.rel=c?"stylesheet":Of,c||(d.as="script",d.crossOrigin=""),d.href=o,l&&d.setAttribute("nonce",l),document.head.appendChild(d),c)return new Promise((p,h)=>{d.addEventListener("load",p),d.addEventListener("error",()=>h(new Error(`Unable to preload CSS for ${o}`)))})}))}return i.then(()=>t()).catch(a=>{const l=new Event("vite:preloadError",{cancelable:!0});if(l.payload=a,window.dispatchEvent(l),!l.defaultPrevented)throw a})},Pf=JSON.parse("{}"),Df=Object.fromEntries([["/",{loader:()=>Y(()=>import("./index.html-0M-f0RHo.js"),__vite__mapDeps([0,1])),meta:{d:1712825833e3,e:`

特性

-

基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它.

`,r:{minutes:2.81,words:842},t:"首页",i:"fluent:home-heart-20-filled",y:"a"}}],["/en/",{loader:()=>Y(()=>import("./index.html-Bzq9U1lm.js"),__vite__mapDeps([2,1])),meta:{d:1724402743e3,e:`
+

基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它.

`,r:{minutes:2.81,words:842},t:"首页",i:"fluent:home-heart-20-filled",y:"a"}}],["/en/",{loader:()=>Y(()=>import("./index.html-BfvkL9je.js"),__vite__mapDeps([2,1])),meta:{d:1724402743e3,e:`

Features

-

Jzero, a low-code scaffold developed based on go-zero, aims to accomplish more with fewer commands, but jzero is not limited to the go-zero framework. In theory, it can support any framework through the template function, depending on how you use it.

`,r:{minutes:1.76,words:528},t:"Home",i:"fluent:home-heart-20-filled",y:"a"}}],["/faq/",{loader:()=>Y(()=>import("./index.html-CcVmTy1T.js"),__vite__mapDeps([3,1])),meta:{d:1722405663e3,r:{minutes:.05,words:16},t:"问题与解决",i:"mdi:faq",O:10,y:"a"}}],["/faq/swagger.html",{loader:()=>Y(()=>import("./swagger.html-Dj4yDr0W.js"),__vite__mapDeps([4,1])),meta:{d:1722913605e3,c:"faq",g:["faq"],e:`

1. 为什么我的 proto 字段是 order_id 但是生成的 swagger 是 orderId, 如何解决?

+

Jzero, a low-code scaffold developed based on go-zero, aims to accomplish more with fewer commands, but jzero is not limited to the go-zero framework. In theory, it can support any framework through the template function, depending on how you use it.

`,r:{minutes:1.76,words:528},t:"Home",i:"fluent:home-heart-20-filled",y:"a"}}],["/faq/",{loader:()=>Y(()=>import("./index.html-CD4p8Pdl.js"),__vite__mapDeps([3,1])),meta:{d:1722405663e3,r:{minutes:.05,words:16},t:"问题与解决",i:"mdi:faq",O:10,y:"a"}}],["/faq/swagger.html",{loader:()=>Y(()=>import("./swagger.html-DLUKzObB.js"),__vite__mapDeps([4,1])),meta:{d:1722913605e3,c:"faq",g:["faq"],e:`

1. 为什么我的 proto 字段是 order_id 但是生成的 swagger 是 orderId, 如何解决?

syntax = "proto3";
 
 message GetOrderRequest {
     int32 order_id = 2;
 }
-
`,r:{minutes:.59,words:177},t:"swagger 问题",i:"vscode-icons:file-type-swagger",O:1,y:"a"}}],["/guide/check.html",{loader:()=>Y(()=>import("./check.html-CpRQsgoK.js"),__vite__mapDeps([5,1])),meta:{d:1713163888e3,e:`

由于 jzero 基于 go 语言以及 go-zero 框架, 需要先安装 golang, goctl 工具

+
`,r:{minutes:.59,words:177},t:"swagger 问题",i:"vscode-icons:file-type-swagger",O:1,y:"a"}}],["/guide/check.html",{loader:()=>Y(()=>import("./check.html-CjOIYXes.js"),__vite__mapDeps([5,1])),meta:{d:1713163888e3,e:`

由于 jzero 基于 go 语言以及 go-zero 框架, 需要先安装 golang, goctl 工具

安装 golang

推荐采用 go 1.21 版本以及以上

使用 gvm 工具安装 golang, 并能管理 golang 的版本.

-

gvm Release

`,r:{minutes:.68,words:203},t:"环境准备",i:"marketeq:download-alt-4",O:2,y:"a"}}],["/guide/contribute.html",{loader:()=>Y(()=>import("./contribute.html-Dsyecs8z.js"),__vite__mapDeps([6,1])),meta:{d:1726795837e3,c:"contribute",g:["contribute"],e:`

欢迎参与 jzero 的开发以及维护, 这是一件非常有意义的事情, 让我们一起让 jzero 变得更好.

+

gvm Release

`,r:{minutes:.68,words:203},t:"环境准备",i:"marketeq:download-alt-4",O:2,y:"a"}}],["/guide/contribute.html",{loader:()=>Y(()=>import("./contribute.html-CMSHQ7hA.js"),__vite__mapDeps([6,1])),meta:{d:1726795837e3,c:"contribute",g:["contribute"],e:`

欢迎参与 jzero 的开发以及维护, 这是一件非常有意义的事情, 让我们一起让 jzero 变得更好.

步骤

1. fork jzero

https://github.com/jzero-io/jzero/fork

2. clone

git clone https://github.com/your_username/jzero
-
`,r:{minutes:.61,words:183},t:"贡献指南",i:"ooui:user-contributions-ltr",O:30,y:"a"}}],["/guide/gen.html",{loader:()=>Y(()=>import("./gen.html-BoFzd135.js"),__vite__mapDeps([7,1])),meta:{d:1713163888e3,e:`

jzero gen 根据 desc/api, desc/proto, desc/sql 文件夹下的文件生成代码. 生成代码的逻辑是调用 goctl 工具完成.

+
`,r:{minutes:.61,words:183},t:"贡献指南",i:"ooui:user-contributions-ltr",O:30,y:"a"}}],["/guide/gen.html",{loader:()=>Y(()=>import("./gen.html-pnwZnKXr.js"),__vite__mapDeps([7,1])),meta:{d:1713163888e3,e:`

jzero gen 根据 desc/api, desc/proto, desc/sql 文件夹下的文件生成代码. 生成代码的逻辑是调用 goctl 工具完成.

jzero 会自动检测对应文件夹下的内容, 然后进行自动生成, 使用者无需关心.

生成代码

下载依赖

go mod tidy
-
`,r:{minutes:1.23,words:370},t:"生成服务端代码",i:"vscode-icons:folder-type-api-opened",O:4,y:"a"}}],["/guide/gendoc.html",{loader:()=>Y(()=>import("./gendoc.html-D-Lmx4HK.js"),__vite__mapDeps([8,1])),meta:{d:1723711843e3,e:`
+
`,r:{minutes:1.23,words:370},t:"生成服务端代码",i:"vscode-icons:folder-type-api-opened",O:4,y:"a"}}],["/guide/gendoc.html",{loader:()=>Y(()=>import("./gendoc.html-B_8TiLpV.js"),__vite__mapDeps([8,1])),meta:{d:1723711843e3,e:`

目前仅支持 proto 可描述文件

markdown

jzero gen doc
-
`,r:{minutes:.22,words:66},t:"生成 markdown 等文档",i:"ph:markdown-logo-bold",O:5.2,y:"a"}}],["/guide/gensdk.html",{loader:()=>Y(()=>import("./gensdk.html-CBidjnZM.js"),__vite__mapDeps([9,1])),meta:{d:1713956544e3,e:`

自动生成 http sdk 参数

+
`,r:{minutes:.22,words:66},t:"生成 markdown 等文档",i:"ph:markdown-logo-bold",O:5.2,y:"a"}}],["/guide/gensdk.html",{loader:()=>Y(()=>import("./gensdk.html-B9azMcZc.js"),__vite__mapDeps([9,1])),meta:{d:1713956544e3,e:`

自动生成 http sdk 参数

$ jzero gen sdk -h                   
 Generate sdk client by api file and proto file
 
@@ -77,13 +77,13 @@ var Td=Object.defineProperty;var Ld=(e,t,n)=>t in e?Td(e,t,{enumerable:!0,config
       --debug           debug mode
       --home string     set template home (default "/Users/jaronnie/Desktop/jaronnie/github/jzero-io/jzero/.template")
       --style string    The file naming format, see [https://github.com/zeromicro/go-zero/blob/master/tools/goctl/config/readme.md] (default "gozero")
-
`,r:{minutes:1.65,words:495},t:"生成客户端 SDK",i:"carbon:sdk",O:5,y:"a"}}],["/guide/genswagger.html",{loader:()=>Y(()=>import("./genswagger.html-BTHYOKma.js"),__vite__mapDeps([10,1])),meta:{d:1716177673e3,e:`

说明

+
`,r:{minutes:1.65,words:495},t:"生成客户端 SDK",i:"carbon:sdk",O:5,y:"a"}}],["/guide/genswagger.html",{loader:()=>Y(()=>import("./genswagger.html-CRnk28O6.js"),__vite__mapDeps([10,1])),meta:{d:1716177673e3,e:`

说明

同时支持基于 go-zero api 文件和 protobuf 文件自动生成 swagger 文档

其中自动生成 swagger 的插件如下:

`,r:{minutes:.74,words:222},t:"生成 swagger 文档",i:"vscode-icons:file-type-swagger",O:5.1,y:"a"}}],["/guide/ivm.html",{loader:()=>Y(()=>import("./ivm.html-DPRnZKxm.js"),__vite__mapDeps([11,1])),meta:{d:1719820902e3,c:"开发",g:["Guide"],e:`

说明

+`,r:{minutes:.74,words:222},t:"生成 swagger 文档",i:"vscode-icons:file-type-swagger",O:5.1,y:"a"}}],["/guide/ivm.html",{loader:()=>Y(()=>import("./ivm.html-CVD7O9Nb.js"),__vite__mapDeps([11,1])),meta:{d:1719820902e3,c:"开发",g:["Guide"],e:`

说明

接口版本控制功能, 是用来管理服务端的接口版本, 目前仅支持 grpc 场景. 默认会创建 v1 版本, 对应 desc/proto/v1 文件夹中的 proto

可以通过 ivm 命令自动初始化 v2 版本的接口, 并默认调用 v1 接口逻辑, 这意味着你仅需一条命令, 就可以自动生成 v2 的接口, 后续对 v2 接口继续更改即可

$ tree desc 
@@ -93,7 +93,7 @@ var Td=Object.defineProperty;var Ld=(e,t,n)=>t in e?Td(e,t,{enumerable:!0,config
     │   └── hello.proto
     └── v2
         └── hello_v2.proto
-
`,r:{minutes:1.05,words:314},t:"接口版本控制",i:"hugeicons:api",O:6,y:"a"}}],["/guide/jzero.html",{loader:()=>Y(()=>import("./jzero.html-wilYoJzH.js"),__vite__mapDeps([12,1])),meta:{d:1714465306e3,e:`

jzero 命令一览

+`,r:{minutes:1.05,words:314},t:"接口版本控制",i:"hugeicons:api",O:6,y:"a"}}],["/guide/jzero.html",{loader:()=>Y(()=>import("./jzero.html-1sFP92P9.js"),__vite__mapDeps([12,1])),meta:{d:1714465306e3,e:`

jzero 命令一览

  • upgrade: 更新 jzero
  • -`,r:{minutes:1.27,words:380},t:"命令行说明",i:"heroicons:command-line",O:2.1,y:"a"}}],["/guide/new.html",{loader:()=>Y(()=>import("./new.html-CRsC_KB9.js"),__vite__mapDeps([13,1])),meta:{d:1713163888e3,e:`

    说明

    +`,r:{minutes:1.27,words:380},t:"命令行说明",i:"heroicons:command-line",O:2.1,y:"a"}}],["/guide/new.html",{loader:()=>Y(()=>import("./new.html-BolyTBF0.js"),__vite__mapDeps([13,1])),meta:{d:1713163888e3,e:`

    说明

    新建项目基于模板文件进行构建, 默认模板规范如下:

    如果构建自己的模板, app 文件夹是必须的

    由于新建项目完全基于模板文件, 这意味这你可以构建任意框架的代码作为模板, 默认使用 go-zero 框架

    默认远程模板仓库: https://github.com/jzero-io/templates

    -
    `,r:{minutes:2.53,words:759},t:"新建项目",i:"mdi:new-box",O:3,y:"a"}}],["/guide/template.html",{loader:()=>Y(()=>import("./template.html-CPhrUoEH.js"),__vite__mapDeps([14,1])),meta:{d:1713332628e3,c:"开发",g:["Guide"],e:`

    jzero gen 生成代码, 仍然是依赖于 goctl 工具.

    +`,r:{minutes:2.53,words:759},t:"新建项目",i:"mdi:new-box",O:3,y:"a"}}],["/guide/template.html",{loader:()=>Y(()=>import("./template.html-BAuUZSJU.js"),__vite__mapDeps([14,1])),meta:{d:1713332628e3,c:"开发",g:["Guide"],e:`

    jzero gen 生成代码, 仍然是依赖于 goctl 工具.

    # 初始化的模板位置: ~/.jzero/$Version 下, 可以修改模板后再进行新建项目
     jzero template init
     # 或者初始化模板到当前项目, jzero gen 默认会优先读取当前项目的 .template 作为模板 home
    @@ -139,7 +139,7 @@ var Td=Object.defineProperty;var Ld=(e,t,n)=>t in e?Td(e,t,{enumerable:!0,config
     
     # 如果仍需要扩展 go-zero 的 template
     goctl template init --home .template/go-zero
    -
    `,r:{minutes:.53,words:159},t:"模版",i:"vscode-icons:folder-type-template",O:5.3,y:"a"}}],["/project/",{loader:()=>Y(()=>import("./index.html-Bkhys7ds.js"),__vite__mapDeps([15,1])),meta:{d:1722405663e3,r:{minutes:.06,words:17},t:"项目实战",i:"mdi:arrow-projectile-multiple",O:9,y:"a"}}],["/project/gateway.html",{loader:()=>Y(()=>import("./gateway.html-DJHAgh9i.js"),__vite__mapDeps([16,1])),meta:{d:1722405663e3,c:"project",g:["Guide"],e:`

    1. 简介

    +`,r:{minutes:.53,words:159},t:"模版",i:"vscode-icons:folder-type-template",O:5.3,y:"a"}}],["/project/",{loader:()=>Y(()=>import("./index.html-CDb_Pw4F.js"),__vite__mapDeps([15,1])),meta:{d:1722405663e3,r:{minutes:.06,words:17},t:"项目实战",i:"mdi:arrow-projectile-multiple",O:9,y:"a"}}],["/project/gateway.html",{loader:()=>Y(()=>import("./gateway.html-DDCeP_Hj.js"),__vite__mapDeps([16,1])),meta:{d:1722405663e3,c:"project",g:["Guide"],e:`

    1. 简介

    gateway 项目包含以下技术栈:

    `,r:{minutes:2.42,words:727},t:"proto 教程",i:"vscode-icons:file-type-protobuf",O:1,y:"a"}}],["/404.html",{loader:()=>Y(()=>import("./404.html-B8IqJqEq.js"),__vite__mapDeps([34,1])),meta:{t:""}}],["/guide/",{loader:()=>Y(()=>import("./index.html-BB1KKT_E.js"),__vite__mapDeps([35,1])),meta:{t:"Guide"}}],["/category",{loader:()=>Y(()=>import("./category.html-D-gOMkUe.js"),__vite__mapDeps([36,1])),meta:{t:"分类",I:!1}}],["/category/faq/",{loader:()=>Y(()=>import("./index.html-Cx9MoW39.js"),__vite__mapDeps([37,1])),meta:{t:"faq 分类",I:!1}}],["/category/contribute/",{loader:()=>Y(()=>import("./index.html-Aip76kXx.js"),__vite__mapDeps([38,1])),meta:{t:"contribute 分类",I:!1}}],["/category/%E5%BC%80%E5%8F%91/",{loader:()=>Y(()=>import("./index.html-B5Cnkk2s.js"),__vite__mapDeps([39,1])),meta:{t:"开发 分类",I:!1}}],["/category/project/",{loader:()=>Y(()=>import("./index.html-B4BezKkG.js"),__vite__mapDeps([40,1])),meta:{t:"project 分类",I:!1}}],["/category/roadmap/",{loader:()=>Y(()=>import("./index.html-B45eauE2.js"),__vite__mapDeps([41,1])),meta:{t:"roadmap 分类",I:!1}}],["/category/%E9%85%8D%E7%BD%AE/",{loader:()=>Y(()=>import("./index.html-_hTD5r2w.js"),__vite__mapDeps([42,1])),meta:{t:"配置 分类",I:!1}}],["/en/category",{loader:()=>Y(()=>import("./category.html--7e_ngao.js"),__vite__mapDeps([43,1])),meta:{t:"Category",I:!1}}],["/tag",{loader:()=>Y(()=>import("./tag.html-DJLmQWNw.js"),__vite__mapDeps([44,1])),meta:{t:"标签",I:!1}}],["/tag/faq/",{loader:()=>Y(()=>import("./index.html-B1zxIjH8.js"),__vite__mapDeps([45,1])),meta:{t:"标签: faq",I:!1}}],["/tag/contribute/",{loader:()=>Y(()=>import("./index.html-8Gw_vm22.js"),__vite__mapDeps([46,1])),meta:{t:"标签: contribute",I:!1}}],["/tag/guide/",{loader:()=>Y(()=>import("./index.html-CvYnL55h.js"),__vite__mapDeps([47,1])),meta:{t:"标签: Guide",I:!1}}],["/tag/roadmap/",{loader:()=>Y(()=>import("./index.html-DOj4krHA.js"),__vite__mapDeps([48,1])),meta:{t:"标签: roadmap",I:!1}}],["/en/tag",{loader:()=>Y(()=>import("./tag.html-Bhro9y0c.js"),__vite__mapDeps([49,1])),meta:{t:"Tag",I:!1}}],["/article/",{loader:()=>Y(()=>import("./index.html-BAGLy4_8.js"),__vite__mapDeps([50,1])),meta:{t:"文章",I:!1}}],["/en/article/",{loader:()=>Y(()=>import("./index.html-BF-V8TbH.js"),__vite__mapDeps([51,1])),meta:{t:"Articles",I:!1}}],["/star",{loader:()=>Y(()=>import("./star.html-BW2b8fXo.js"),__vite__mapDeps([52,1])),meta:{t:"星标",I:!1}}],["/en/star",{loader:()=>Y(()=>import("./star.html-D7_AXg2a.js"),__vite__mapDeps([53,1])),meta:{t:"Star",I:!1}}],["/timeline/",{loader:()=>Y(()=>import("./index.html-CFMNswyR.js"),__vite__mapDeps([54,1])),meta:{t:"时间轴",I:!1}}],["/en/timeline/",{loader:()=>Y(()=>import("./index.html-uuB1JdsC.js"),__vite__mapDeps([55,1])),meta:{t:"Timeline",I:!1}}]]);/*! +`,r:{minutes:2.42,words:727},t:"proto 教程",i:"vscode-icons:file-type-protobuf",O:1,y:"a"}}],["/404.html",{loader:()=>Y(()=>import("./404.html-C-cXDumL.js"),__vite__mapDeps([34,1])),meta:{t:""}}],["/guide/",{loader:()=>Y(()=>import("./index.html-BhYElsFm.js"),__vite__mapDeps([35,1])),meta:{t:"Guide"}}],["/category",{loader:()=>Y(()=>import("./category.html-D9J3cbHa.js"),__vite__mapDeps([36,1])),meta:{t:"分类",I:!1}}],["/category/faq/",{loader:()=>Y(()=>import("./index.html-Dg-TWTCD.js"),__vite__mapDeps([37,1])),meta:{t:"faq 分类",I:!1}}],["/category/contribute/",{loader:()=>Y(()=>import("./index.html-CLBq6kx9.js"),__vite__mapDeps([38,1])),meta:{t:"contribute 分类",I:!1}}],["/category/%E5%BC%80%E5%8F%91/",{loader:()=>Y(()=>import("./index.html-G9ZczZ4H.js"),__vite__mapDeps([39,1])),meta:{t:"开发 分类",I:!1}}],["/category/project/",{loader:()=>Y(()=>import("./index.html-D9UVA_KP.js"),__vite__mapDeps([40,1])),meta:{t:"project 分类",I:!1}}],["/category/roadmap/",{loader:()=>Y(()=>import("./index.html-DYC7Zubq.js"),__vite__mapDeps([41,1])),meta:{t:"roadmap 分类",I:!1}}],["/category/%E9%85%8D%E7%BD%AE/",{loader:()=>Y(()=>import("./index.html-LuovaIse.js"),__vite__mapDeps([42,1])),meta:{t:"配置 分类",I:!1}}],["/en/category",{loader:()=>Y(()=>import("./category.html-DOAZxti-.js"),__vite__mapDeps([43,1])),meta:{t:"Category",I:!1}}],["/tag",{loader:()=>Y(()=>import("./tag.html-D5cmFYtf.js"),__vite__mapDeps([44,1])),meta:{t:"标签",I:!1}}],["/tag/faq/",{loader:()=>Y(()=>import("./index.html-B_VQjZZV.js"),__vite__mapDeps([45,1])),meta:{t:"标签: faq",I:!1}}],["/tag/contribute/",{loader:()=>Y(()=>import("./index.html-wi5a_sDS.js"),__vite__mapDeps([46,1])),meta:{t:"标签: contribute",I:!1}}],["/tag/guide/",{loader:()=>Y(()=>import("./index.html-BCCVEm50.js"),__vite__mapDeps([47,1])),meta:{t:"标签: Guide",I:!1}}],["/tag/roadmap/",{loader:()=>Y(()=>import("./index.html-geXTp7i1.js"),__vite__mapDeps([48,1])),meta:{t:"标签: roadmap",I:!1}}],["/en/tag",{loader:()=>Y(()=>import("./tag.html-DMRJgkRx.js"),__vite__mapDeps([49,1])),meta:{t:"Tag",I:!1}}],["/article/",{loader:()=>Y(()=>import("./index.html-CblHrs13.js"),__vite__mapDeps([50,1])),meta:{t:"文章",I:!1}}],["/en/article/",{loader:()=>Y(()=>import("./index.html-BPHZkvSo.js"),__vite__mapDeps([51,1])),meta:{t:"Articles",I:!1}}],["/star",{loader:()=>Y(()=>import("./star.html-CENyG7R6.js"),__vite__mapDeps([52,1])),meta:{t:"星标",I:!1}}],["/en/star",{loader:()=>Y(()=>import("./star.html-zvt9Tgnb.js"),__vite__mapDeps([53,1])),meta:{t:"Star",I:!1}}],["/timeline/",{loader:()=>Y(()=>import("./index.html-D-2f3sY1.js"),__vite__mapDeps([54,1])),meta:{t:"时间轴",I:!1}}],["/en/timeline/",{loader:()=>Y(()=>import("./index.html-B9ivrt1J.js"),__vite__mapDeps([55,1])),meta:{t:"Timeline",I:!1}}]]);/*! * vue-router v4.4.5 * (c) 2024 Eduardo San Martin Morote * @license MIT diff --git a/assets/base.html-Bcuu8yz1.js b/assets/base.html-Dh00g-AS.js similarity index 98% rename from assets/base.html-Bcuu8yz1.js rename to assets/base.html-Dh00g-AS.js index af60bdbd..3b862e4c 100644 --- a/assets/base.html-Bcuu8yz1.js +++ b/assets/base.html-Dh00g-AS.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as i,o as s}from"./app-i_AVB87T.js";const l={};function c(o,t){return s(),a("div",null,t[0]||(t[0]=[i('',1)]))}const m=e(l,[["render",c],["__file","base.html.vue"]]),p=JSON.parse('{"path":"/roadmap/base.html","title":"基础框架","lang":"zh-CN","frontmatter":{"title":"基础框架","icon":"mdi:roadmap","star":true,"order":1,"category":"roadmap","tag":["roadmap"],"description":"支持通过 sql 文件自动生成 proto 或 api 文件,并自动补充 crud 代码 支持基于 grpc-gateway 以及 go-zero api 文件生成 ts sdk 支持 gateway 框架和 rpc 框架基于 proto 文件控制路由以及路由组使用 middleware 支持 proto validator 自定义错误信息 支持 zr...","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/roadmap/base.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"基础框架"}],["meta",{"property":"og:description","content":"支持通过 sql 文件自动生成 proto 或 api 文件,并自动补充 crud 代码 支持基于 grpc-gateway 以及 go-zero api 文件生成 ts sdk 支持 gateway 框架和 rpc 框架基于 proto 文件控制路由以及路由组使用 middleware 支持 proto validator 自定义错误信息 支持 zr..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-21T11:03:46.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:tag","content":"roadmap"}],["meta",{"property":"article:modified_time","content":"2024-08-21T11:03:46.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"基础框架\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-21T11:03:46.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1721015898000,"updatedTime":1724238226000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":2},{"name":"jaron","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.35,"words":105},"filePathRelative":"roadmap/base.md","localizedDate":"2024年7月15日","excerpt":"","autoDesc":true}');export{m as comp,p as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as i,o as s}from"./app-CykRD9-9.js";const l={};function c(o,t){return s(),a("div",null,t[0]||(t[0]=[i('',1)]))}const m=e(l,[["render",c],["__file","base.html.vue"]]),p=JSON.parse('{"path":"/roadmap/base.html","title":"基础框架","lang":"zh-CN","frontmatter":{"title":"基础框架","icon":"mdi:roadmap","star":true,"order":1,"category":"roadmap","tag":["roadmap"],"description":"支持通过 sql 文件自动生成 proto 或 api 文件,并自动补充 crud 代码 支持基于 grpc-gateway 以及 go-zero api 文件生成 ts sdk 支持 gateway 框架和 rpc 框架基于 proto 文件控制路由以及路由组使用 middleware 支持 proto validator 自定义错误信息 支持 zr...","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/roadmap/base.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"基础框架"}],["meta",{"property":"og:description","content":"支持通过 sql 文件自动生成 proto 或 api 文件,并自动补充 crud 代码 支持基于 grpc-gateway 以及 go-zero api 文件生成 ts sdk 支持 gateway 框架和 rpc 框架基于 proto 文件控制路由以及路由组使用 middleware 支持 proto validator 自定义错误信息 支持 zr..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-21T11:03:46.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:tag","content":"roadmap"}],["meta",{"property":"article:modified_time","content":"2024-08-21T11:03:46.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"基础框架\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-21T11:03:46.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1721015898000,"updatedTime":1724238226000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":2},{"name":"jaron","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.35,"words":105},"filePathRelative":"roadmap/base.md","localizedDate":"2024年7月15日","excerpt":"","autoDesc":true}');export{m as comp,p as data}; diff --git a/assets/category.html-D-gOMkUe.js b/assets/category.html-D9J3cbHa.js similarity index 94% rename from assets/category.html-D-gOMkUe.js rename to assets/category.html-D9J3cbHa.js index 82648285..67446ca2 100644 --- a/assets/category.html-D-gOMkUe.js +++ b/assets/category.html-D9J3cbHa.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-i_AVB87T.js";const r={};function a(n,c){return o(),t("div")}const i=e(r,[["render",a],["__file","category.html.vue"]]),s=JSON.parse('{"path":"/category","title":"分类","lang":"zh-CN","frontmatter":{"title":"分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/category"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-CykRD9-9.js";const r={};function a(n,c){return o(),t("div")}const i=e(r,[["render",a],["__file","category.html.vue"]]),s=JSON.parse('{"path":"/category","title":"分类","lang":"zh-CN","frontmatter":{"title":"分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/category"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,s as data}; diff --git a/assets/category.html--7e_ngao.js b/assets/category.html-DOAZxti-.js similarity index 94% rename from assets/category.html--7e_ngao.js rename to assets/category.html-DOAZxti-.js index 4d28a810..47395174 100644 --- a/assets/category.html--7e_ngao.js +++ b/assets/category.html-DOAZxti-.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-i_AVB87T.js";const r={};function a(n,c){return o(),t("div")}const l=e(r,[["render",a],["__file","category.html.vue"]]),s=JSON.parse('{"path":"/en/category","title":"Category","lang":"zh-CN","frontmatter":{"title":"Category","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/category"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Category"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Category\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-CykRD9-9.js";const r={};function a(n,c){return o(),t("div")}const l=e(r,[["render",a],["__file","category.html.vue"]]),s=JSON.parse('{"path":"/en/category","title":"Category","lang":"zh-CN","frontmatter":{"title":"Category","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/category"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Category"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Category\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; diff --git a/assets/check.html-CpRQsgoK.js b/assets/check.html-CjOIYXes.js similarity index 99% rename from assets/check.html-CpRQsgoK.js rename to assets/check.html-CjOIYXes.js index a461984d..9c15286c 100644 --- a/assets/check.html-CpRQsgoK.js +++ b/assets/check.html-CjOIYXes.js @@ -1,4 +1,4 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as h,a as o,b as d,w as a,r as g,o as k,d as s,e as i}from"./app-i_AVB87T.js";const p={};function c(m,e){const l=g("CodeTabs");return k(),h("div",null,[e[2]||(e[2]=o(`

    由于 jzero 基于 go 语言以及 go-zero 框架, 需要先安装 golang, goctl 工具

    安装 golang

    推荐采用 go 1.21 版本以及以上

    使用 gvm 工具安装 golang, 并能管理 golang 的版本.

    gvm Release

    # 以 linux 为例子, 下载 tar.gz 后
    +import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as h,a as o,b as d,w as a,r as g,o as k,d as s,e as i}from"./app-CykRD9-9.js";const p={};function c(m,e){const l=g("CodeTabs");return k(),h("div",null,[e[2]||(e[2]=o(`

    由于 jzero 基于 go 语言以及 go-zero 框架, 需要先安装 golang, goctl 工具

    安装 golang

    推荐采用 go 1.21 版本以及以上

    使用 gvm 工具安装 golang, 并能管理 golang 的版本.

    gvm Release

    # 以 linux 为例子, 下载 tar.gz 后
     tar -zxvf gvm_1.4.2_Linux_x86_64.tar.gz
     mv gvm /usr/local/bin
     gvm init
    diff --git a/assets/command.html-BZx2VwSG.js b/assets/command.html-DWiPMAk3.js
    similarity index 98%
    rename from assets/command.html-BZx2VwSG.js
    rename to assets/command.html-DWiPMAk3.js
    index 3c65d6e7..3bcba8c7 100644
    --- a/assets/command.html-BZx2VwSG.js
    +++ b/assets/command.html-DWiPMAk3.js
    @@ -1,4 +1,4 @@
    -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as s,a,o as t}from"./app-i_AVB87T.js";const n={};function r(l,i){return t(),s("div",null,i[0]||(i[0]=[a(`

    jzero 基于 cobra 库实现命令行管理. 可基于 cobra-cli 工具新增 command.

    go install github.com/spf13/cobra-cli@latest
    +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as s,a,o as t}from"./app-CykRD9-9.js";const n={};function r(l,i){return t(),s("div",null,i[0]||(i[0]=[a(`

    jzero 基于 cobra 库实现命令行管理. 可基于 cobra-cli 工具新增 command.

    go install github.com/spf13/cobra-cli@latest
     
     cd your_project
     cobra-cli add init
    diff --git a/assets/contribute.html-Dsyecs8z.js b/assets/contribute.html-CMSHQ7hA.js
    similarity index 99%
    rename from assets/contribute.html-Dsyecs8z.js
    rename to assets/contribute.html-CMSHQ7hA.js
    index 52e5107b..574d9673 100644
    --- a/assets/contribute.html-Dsyecs8z.js
    +++ b/assets/contribute.html-CMSHQ7hA.js
    @@ -1,4 +1,4 @@
    -import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as s,a,o as t}from"./app-i_AVB87T.js";const l={};function n(h,e){return t(),s("div",null,e[0]||(e[0]=[a(`

    欢迎参与 jzero 的开发以及维护, 这是一件非常有意义的事情, 让我们一起让 jzero 变得更好.

    步骤

    1. fork jzero

    https://github.com/jzero-io/jzero/fork

    2. clone

    git clone https://github.com/your_username/jzero

    3. checkout branch

    cd jzero
    +import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as s,a,o as t}from"./app-CykRD9-9.js";const l={};function n(h,e){return t(),s("div",null,e[0]||(e[0]=[a(`

    欢迎参与 jzero 的开发以及维护, 这是一件非常有意义的事情, 让我们一起让 jzero 变得更好.

    步骤

    1. fork jzero

    https://github.com/jzero-io/jzero/fork

    2. clone

    git clone https://github.com/your_username/jzero

    3. checkout branch

    cd jzero
     
     git checkout -b feat/patch-1

    4. push

    git add .
     git commit -m "feat(xx): custom message"
    diff --git a/assets/etcd.html-BSk8f97P.js b/assets/etcd.html-Cx1MSNms.js
    similarity index 99%
    rename from assets/etcd.html-BSk8f97P.js
    rename to assets/etcd.html-Cx1MSNms.js
    index 32d608bf..561bd26e 100644
    --- a/assets/etcd.html-BSk8f97P.js
    +++ b/assets/etcd.html-Cx1MSNms.js
    @@ -1,4 +1,4 @@
    -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as n}from"./app-i_AVB87T.js";const t={};function l(h,i){return n(),e("div",null,i[0]||(i[0]=[a(`

    zrpc

    修改 etc/etc.yaml, 增加以下配置, 设置 etcd endpoints 和该服务在 etcd 上的 key

    zrpc:
    +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as n}from"./app-CykRD9-9.js";const t={};function l(h,i){return n(),e("div",null,i[0]||(i[0]=[a(`

    zrpc

    修改 etc/etc.yaml, 增加以下配置, 设置 etcd endpoints 和该服务在 etcd 上的 key

    zrpc:
         etcd:
             key: your_project.rpc
             hosts:
    diff --git a/assets/gateway.html-DJHAgh9i.js b/assets/gateway.html-DDCeP_Hj.js
    similarity index 99%
    rename from assets/gateway.html-DJHAgh9i.js
    rename to assets/gateway.html-DDCeP_Hj.js
    index 4554eac3..33dfc581 100644
    --- a/assets/gateway.html-DJHAgh9i.js
    +++ b/assets/gateway.html-DDCeP_Hj.js
    @@ -1,4 +1,4 @@
    -import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,a as l,e as h,d as s,b as e,w as k,r as p,o as r}from"./app-i_AVB87T.js";const d={};function g(y,i){const a=p("RouteLink");return r(),t("div",null,[i[2]||(i[2]=l(`

    1. 简介

    gateway 项目包含以下技术栈:

    • cobra: 提供命令行框架
    • zrpc: 基于 go-zero zrpc 框架提供 rpc 服务
    • gateway: 基于 go-zero gateway 框架, 支持以 http 方式调用 rpc 服务

    2. 新建项目

    jzero new simplegateway --branch gateway
    +import{_ as n}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,a as l,e as h,d as s,b as e,w as k,r as p,o as r}from"./app-CykRD9-9.js";const d={};function g(y,i){const a=p("RouteLink");return r(),t("div",null,[i[2]||(i[2]=l(`

    1. 简介

    gateway 项目包含以下技术栈:

    • cobra: 提供命令行框架
    • zrpc: 基于 go-zero zrpc 框架提供 rpc 服务
    • gateway: 基于 go-zero gateway 框架, 支持以 http 方式调用 rpc 服务

    2. 新建项目

    jzero new simplegateway --branch gateway
     cd simplegateway
     jzero gen
     go mod tidy

    3. 生成 swagger

    jzero gen swagger

    4. 测试

    go run main.go server
    diff --git a/assets/gen.html-BoFzd135.js b/assets/gen.html-pnwZnKXr.js
    similarity index 99%
    rename from assets/gen.html-BoFzd135.js
    rename to assets/gen.html-pnwZnKXr.js
    index 507697f8..3f2acf1d 100644
    --- a/assets/gen.html-BoFzd135.js
    +++ b/assets/gen.html-pnwZnKXr.js
    @@ -1,4 +1,4 @@
    -import{_ as p}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as k,e as i,b as t,w as a,a as r,d as e,r as h,o as g}from"./app-i_AVB87T.js";const c={};function u(m,s){const d=h("CodeTabs"),o=h("RouteLink");return g(),k("div",null,[s[7]||(s[7]=i("p",null,"jzero gen 根据 desc/api, desc/proto, desc/sql 文件夹下的文件生成代码. 生成代码的逻辑是调用 goctl 工具完成.",-1)),s[8]||(s[8]=i("p",null,"jzero 会自动检测对应文件夹下的内容, 然后进行自动生成, 使用者无需关心.",-1)),s[9]||(s[9]=i("h2",{id:"生成代码",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#生成代码"},[i("span",null,"生成代码")])],-1)),t(d,{id:"9",data:[{id:"jzero"},{id:"Docker"}],"tab-id":"shell"},{title0:a(({value:l,isActive:n})=>s[0]||(s[0]=[e("jzero")])),title1:a(({value:l,isActive:n})=>s[1]||(s[1]=[e("Docker")])),tab0:a(({value:l,isActive:n})=>s[2]||(s[2]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#56B6C2"}},"cd"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project")]),e(`
    +import{_ as p}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as k,e as i,b as t,w as a,a as r,d as e,r as h,o as g}from"./app-CykRD9-9.js";const c={};function u(m,s){const d=h("CodeTabs"),o=h("RouteLink");return g(),k("div",null,[s[7]||(s[7]=i("p",null,"jzero gen 根据 desc/api, desc/proto, desc/sql 文件夹下的文件生成代码. 生成代码的逻辑是调用 goctl 工具完成.",-1)),s[8]||(s[8]=i("p",null,"jzero 会自动检测对应文件夹下的内容, 然后进行自动生成, 使用者无需关心.",-1)),s[9]||(s[9]=i("h2",{id:"生成代码",tabindex:"-1"},[i("a",{class:"header-anchor",href:"#生成代码"},[i("span",null,"生成代码")])],-1)),t(d,{id:"9",data:[{id:"jzero"},{id:"Docker"}],"tab-id":"shell"},{title0:a(({value:l,isActive:n})=>s[0]||(s[0]=[e("jzero")])),title1:a(({value:l,isActive:n})=>s[1]||(s[1]=[e("Docker")])),tab0:a(({value:l,isActive:n})=>s[2]||(s[2]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#56B6C2"}},"cd"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project")]),e(`
     `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#61AFEF"}},"jzero"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," gen")])])]),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)])),tab1:a(({value:l,isActive:n})=>s[3]||(s[3]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#56B6C2"}},"cd"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project")]),e(`
     `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#61AFEF"}},"docker"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," run"),i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#D19A66"}}," --rm"),i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#D19A66"}}," -v"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}}," ${"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E06C75"}},"PWD"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}},"}"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}},":/app"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," ghcr.io/jzero-io/jzero:latest"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," gen")])])]),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}),s[10]||(s[10]=r('

    下载依赖

    go mod tidy

    运行项目

    go run main.go server

    高级教程

    生成数据库代码

    支持基于 sql 文件和数据库 dsn 连接生成代码, 默认使用 sql 文件生成

    model 模板地址

    go-zero model 文档

    jzero 默认使用 go-zero sqlx 和 sqlbuilder-go 完成对数据库的 crud 操作.

    jzero 数据库规范:

    • sql 文件放在 desc/sql
    • 生成的 model 放在 internal/model

    基于 sql 文件生成代码

    将 sql 文件放入 desc/sql 文件夹下即可, 执行 jzero gen

    基于数据库 dsn 连接生成代码

    jzero gen --model-mysql-datasource --model-mysql-datasource-url="root:123456@tcp(127.0.0.1:3306)/test"

    基于配置文件生成代码

    ',15)),i("p",null,[s[5]||(s[5]=e("基于")),t(o,{to:"/guide/jzero.html#%E5%9F%BA%E4%BA%8E%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E4%BD%BF%E7%94%A8-jzero"},{default:a(()=>s[4]||(s[4]=[e("配置文件")])),_:1}),s[6]||(s[6]=e("生成服务端代码, 支持设置 before 和 after hooks"))]),s[11]||(s[11]=r(`
    syntax: v1
     
    diff --git a/assets/gendoc.html-D-Lmx4HK.js b/assets/gendoc.html-B_8TiLpV.js
    similarity index 98%
    rename from assets/gendoc.html-D-Lmx4HK.js
    rename to assets/gendoc.html-B_8TiLpV.js
    index 42052a75..1131ba46 100644
    --- a/assets/gendoc.html-D-Lmx4HK.js
    +++ b/assets/gendoc.html-B_8TiLpV.js
    @@ -1 +1 @@
    -import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as s,a as t,o as a}from"./app-i_AVB87T.js";const n={};function l(d,e){return a(),s("div",null,e[0]||(e[0]=[t('

    目前仅支持 proto 可描述文件

    markdown

    jzero gen doc

    默认输出路径 desc/docs/markdown/index.md

    json

    jzero gen doc --format json

    默认输出路径 desc/docs/json/index.json

    html

    jzero gen doc --format html

    默认输出路径 desc/docs/html/index.html

    ',10)]))}const h=i(n,[["render",l],["__file","gendoc.html.vue"]]),c=JSON.parse('{"path":"/guide/gendoc.html","title":"生成 markdown 等文档","lang":"zh-CN","frontmatter":{"title":"生成 markdown 等文档","icon":"ph:markdown-logo-bold","order":5.2,"description":"目前仅支持 proto 可描述文件 markdown 默认输出路径 desc/docs/markdown/index.md json 默认输出路径 desc/docs/json/index.json html 默认输出路径 desc/docs/html/index.html","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/gendoc.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"生成 markdown 等文档"}],["meta",{"property":"og:description","content":"目前仅支持 proto 可描述文件 markdown 默认输出路径 desc/docs/markdown/index.md json 默认输出路径 desc/docs/json/index.json html 默认输出路径 desc/docs/html/index.html"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-15T08:50:43.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-15T08:50:43.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"生成 markdown 等文档\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-15T08:50:43.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[{"level":2,"title":"markdown","slug":"markdown","link":"#markdown","children":[]},{"level":2,"title":"json","slug":"json","link":"#json","children":[]},{"level":2,"title":"html","slug":"html","link":"#html","children":[]}],"git":{"createdTime":1723711843000,"updatedTime":1723711843000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.22,"words":66},"filePathRelative":"guide/gendoc.md","localizedDate":"2024年8月15日","excerpt":"
    \\n

    目前仅支持 proto 可描述文件

    \\n
    \\n

    markdown

    \\n
    jzero gen doc
    \\n
    ","autoDesc":true}');export{h as comp,c as data}; +import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as s,a as t,o as a}from"./app-CykRD9-9.js";const n={};function l(d,e){return a(),s("div",null,e[0]||(e[0]=[t('

    目前仅支持 proto 可描述文件

    markdown

    jzero gen doc

    默认输出路径 desc/docs/markdown/index.md

    json

    jzero gen doc --format json

    默认输出路径 desc/docs/json/index.json

    html

    jzero gen doc --format html

    默认输出路径 desc/docs/html/index.html

    ',10)]))}const h=i(n,[["render",l],["__file","gendoc.html.vue"]]),c=JSON.parse('{"path":"/guide/gendoc.html","title":"生成 markdown 等文档","lang":"zh-CN","frontmatter":{"title":"生成 markdown 等文档","icon":"ph:markdown-logo-bold","order":5.2,"description":"目前仅支持 proto 可描述文件 markdown 默认输出路径 desc/docs/markdown/index.md json 默认输出路径 desc/docs/json/index.json html 默认输出路径 desc/docs/html/index.html","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/gendoc.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"生成 markdown 等文档"}],["meta",{"property":"og:description","content":"目前仅支持 proto 可描述文件 markdown 默认输出路径 desc/docs/markdown/index.md json 默认输出路径 desc/docs/json/index.json html 默认输出路径 desc/docs/html/index.html"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-15T08:50:43.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-15T08:50:43.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"生成 markdown 等文档\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-15T08:50:43.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[{"level":2,"title":"markdown","slug":"markdown","link":"#markdown","children":[]},{"level":2,"title":"json","slug":"json","link":"#json","children":[]},{"level":2,"title":"html","slug":"html","link":"#html","children":[]}],"git":{"createdTime":1723711843000,"updatedTime":1723711843000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.22,"words":66},"filePathRelative":"guide/gendoc.md","localizedDate":"2024年8月15日","excerpt":"
    \\n

    目前仅支持 proto 可描述文件

    \\n
    \\n

    markdown

    \\n
    jzero gen doc
    \\n
    ","autoDesc":true}');export{h as comp,c as data}; diff --git a/assets/gensdk.html-CBidjnZM.js b/assets/gensdk.html-B9azMcZc.js similarity index 99% rename from assets/gensdk.html-CBidjnZM.js rename to assets/gensdk.html-B9azMcZc.js index f572fb95..11e1ff41 100644 --- a/assets/gensdk.html-CBidjnZM.js +++ b/assets/gensdk.html-B9azMcZc.js @@ -1,4 +1,4 @@ -import{_ as d}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as g,a as k,b as t,w as n,e as s,d as i,r as e,o as y}from"./app-i_AVB87T.js";const F={};function c(B,a){const p=e("CodeTabs"),r=e("RouteLink");return y(),g("div",null,[a[9]||(a[9]=k(`

    自动生成 http sdk 参数

    $ jzero gen sdk -h                   
    +import{_ as d}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as g,a as k,b as t,w as n,e as s,d as i,r as e,o as y}from"./app-CykRD9-9.js";const F={};function c(B,a){const p=e("CodeTabs"),r=e("RouteLink");return y(),g("div",null,[a[9]||(a[9]=k(`

    自动生成 http sdk 参数

    $ jzero gen sdk -h                   
     Generate sdk client by api file and proto file
     
     Usage:
    diff --git a/assets/genswagger.html-BTHYOKma.js b/assets/genswagger.html-CRnk28O6.js
    similarity index 99%
    rename from assets/genswagger.html-BTHYOKma.js
    rename to assets/genswagger.html-CRnk28O6.js
    index eb8ae5b5..79bef313 100644
    --- a/assets/genswagger.html-BTHYOKma.js
    +++ b/assets/genswagger.html-CRnk28O6.js
    @@ -1,4 +1,4 @@
    -import{_ as g}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as k,a as r,b as l,w as a,e as i,d as e,r as p,o as d}from"./app-i_AVB87T.js";const c={};function u(m,s){const o=p("CodeTabs"),h=p("RouteLink");return d(),k("div",null,[s[6]||(s[6]=r('

    说明

    同时支持基于 go-zero api 文件和 protobuf 文件自动生成 swagger 文档

    其中自动生成 swagger 的插件如下:

    由于 go-zero 官方仓库插件 goctl-swagger 不怎么维护了, 并在实际使用中存在一些 bug, 所以 fork 了一份进行维护.

    jzero 框架默认增加了在线访问 swagger ui 的路由

    ',6)),l(o,{id:"29",data:[{id:"jzero"},{id:"Docker"}],"tab-id":"shell"},{title0:a(({value:n,isActive:t})=>s[0]||(s[0]=[e("jzero")])),title1:a(({value:n,isActive:t})=>s[1]||(s[1]=[e("Docker")])),tab0:a(({value:n,isActive:t})=>s[2]||(s[2]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#56B6C2"}},"cd"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project")]),e(` +import{_ as g}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as k,a as r,b as l,w as a,e as i,d as e,r as p,o as d}from"./app-CykRD9-9.js";const c={};function u(m,s){const o=p("CodeTabs"),h=p("RouteLink");return d(),k("div",null,[s[6]||(s[6]=r('

    说明

    同时支持基于 go-zero api 文件和 protobuf 文件自动生成 swagger 文档

    其中自动生成 swagger 的插件如下:

    由于 go-zero 官方仓库插件 goctl-swagger 不怎么维护了, 并在实际使用中存在一些 bug, 所以 fork 了一份进行维护.

    jzero 框架默认增加了在线访问 swagger ui 的路由

    ',6)),l(o,{id:"29",data:[{id:"jzero"},{id:"Docker"}],"tab-id":"shell"},{title0:a(({value:n,isActive:t})=>s[0]||(s[0]=[e("jzero")])),title1:a(({value:n,isActive:t})=>s[1]||(s[1]=[e("Docker")])),tab0:a(({value:n,isActive:t})=>s[2]||(s[2]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#56B6C2"}},"cd"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project")]),e(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#61AFEF"}},"jzero"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," gen"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," swagger")])])]),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)])),tab1:a(({value:n,isActive:t})=>s[3]||(s[3]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#56B6C2"}},"cd"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project")]),e(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#61AFEF"}},"docker"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," run"),i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#D19A66"}}," --rm"),i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#D19A66"}}," -v"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}}," ${"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E06C75"}},"PWD"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}},"}"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}},":/app"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," ghcr.io/jzero-io/jzero:latest"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," gen"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," swagger")])])]),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}),s[7]||(s[7]=r('

    在线访问 swagger ui

    ip:port/swagger

    高级教程

    1. 如何自定义字段

    ',5)),i("p",null,[s[5]||(s[5]=e("please see: ")),l(h,{to:"/faq/swagger.html"},{default:a(()=>s[4]||(s[4]=[e("swagger 自定义字段")])),_:1})]),s[8]||(s[8]=r(`

    2. 基于 proto 文件自定义 header

    option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = {
         info: {
    diff --git a/assets/image.html-DUU7BMb_.js b/assets/image.html-ca7VRSfN.js
    similarity index 99%
    rename from assets/image.html-DUU7BMb_.js
    rename to assets/image.html-ca7VRSfN.js
    index 733cd4d8..907b2fcf 100644
    --- a/assets/image.html-DUU7BMb_.js
    +++ b/assets/image.html-ca7VRSfN.js
    @@ -1,3 +1,3 @@
    -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as t}from"./app-i_AVB87T.js";const l={};function n(h,i){return t(),e("div",null,i[0]||(i[0]=[a(`

    创建一个可以构建多平台的 buildx

    docker buildx create --use --name=mybuilder --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master

    推送多平台镜像

    cd your_project
    +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as t}from"./app-CykRD9-9.js";const l={};function n(h,i){return t(),e("div",null,i[0]||(i[0]=[a(`

    创建一个可以构建多平台的 buildx

    docker buildx create --use --name=mybuilder --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master

    推送多平台镜像

    cd your_project
     docker buildx build --platform linux/amd64,linux/arm64 --progress=plain -t your_project:latest . --push

    编译单平台镜像

    cd your_project
     docker buildx build --platform linux/amd64 --progress=plain -t your_project:latest . --load
    `,6)]))}const k=s(l,[["render",n],["__file","image.html.vue"]]),p=JSON.parse('{"path":"/guide/deploy/image.html","title":"镜像制作与推送","lang":"zh-CN","frontmatter":{"title":"镜像制作与推送","icon":"vscode-icons:file-type-docker2","star":true,"order":1,"category":"开发","tag":["Guide"],"description":"创建一个可以构建多平台的 buildx 推送多平台镜像 编译单平台镜像","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/deploy/image.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"镜像制作与推送"}],["meta",{"property":"og:description","content":"创建一个可以构建多平台的 buildx 推送多平台镜像 编译单平台镜像"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-07T15:53:45.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:tag","content":"Guide"}],["meta",{"property":"article:modified_time","content":"2024-07-07T15:53:45.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"镜像制作与推送\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-07T15:53:45.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[{"level":2,"title":"创建一个可以构建多平台的 buildx","slug":"创建一个可以构建多平台的-buildx","link":"#创建一个可以构建多平台的-buildx","children":[]},{"level":2,"title":"推送多平台镜像","slug":"推送多平台镜像","link":"#推送多平台镜像","children":[]},{"level":2,"title":"编译单平台镜像","slug":"编译单平台镜像","link":"#编译单平台镜像","children":[]}],"git":{"createdTime":1713352530000,"updatedTime":1720367625000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":2}]},"readingTime":{"minutes":0.32,"words":96},"filePathRelative":"guide/deploy/image.md","localizedDate":"2024年4月17日","excerpt":"

    创建一个可以构建多平台的 buildx

    \\n
    docker buildx create --use --name=mybuilder --driver docker-container --driver-opt image=dockerpracticesig/buildkit:master
    \\n
    ","autoDesc":true}');export{k as comp,p as data}; diff --git a/assets/index.html-Cbd171QW.js b/assets/index.html-0M-f0RHo.js similarity index 96% rename from assets/index.html-Cbd171QW.js rename to assets/index.html-0M-f0RHo.js index 4d2e0b3c..92d272dc 100644 --- a/assets/index.html-Cbd171QW.js +++ b/assets/index.html-0M-f0RHo.js @@ -1,4 +1,4 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as h,a as o,b as k,w as t,r as p,o as d,d as s,e as i}from"./app-i_AVB87T.js";const g={};function c(y,e){const n=p("CodeTabs");return d(),h("div",null,[e[4]||(e[4]=o('

    特性

    基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它.

    该项目可一键创建项目, 并支持不同的使用场景, 如 grpc 项目, gateway 项目, api 项目以及命令行项目等. 通过项目的可描述文件(如 proto, api, sql 等)一键生成服务端代码, 客户端代码和数据库代码.

    jzero 具备以下特点:

    • 极简命令, 通过配置文件 .jzero.yaml 控制不同命令的参数
    • 具备不同场景下的开发模板, 具备快速复制项目的能力
    • 优化 go-zero 已有的痛点并扩展新特性, 并完全兼容
    • 模板特性支持新增任意文件, 基于模板特性理论上可以支持任意框架

    在以下场景优化点:

    • api 场景
      • 支持 types 文件分组(原生 goctl 将所有 api 文件生成的 types 放到单文件 types.go 中, 导致该文件爆炸)
      • 编写多个 api 文件, 无需显示的编写一个 main.api 文件, 框架自动处理好
      • 默认集成 https://github.com/go-playground/validator 校验框架
      • 支持重新生成 handler 文件, 并支持不同场景(有输入输出, 有输入没输出, 没输入有输出, 没输入没输出), 无需再手动维护 handler 代码, 提升开发过程中的体验
      • 支持自动修改 logic 文件函数的入参和出参, 当 api 文件修改后, 自动适配修改, 提升开发过程中的体验
    • rpc 场景
      • 支持多个 proto, 自动注册, 无需手动编写
      • 默认支持 proto message 的字段校验, 且支持自定义错误信息
      • 默认支持通过 proto 新增拦截器, 可以设定某个 method, 也可以设定整个 service
    • gateway 场景
      • 默认可新增 rpc + gateway 的项目
      • 新增接口版本控制特性, 默认为 v1, 可一键初始化 v2, v3等版本的接口, 无需任何配置
      • 默认支持通过 proto 新增拦截器和 http 中间件, 可以设定某个 method, 也可以设定整个 service
    • 数据库场景
      • 将原生 sql 替换成 sqlbuilder, 从而可以更好的支持不同的数据库类型
      • 扩展新的抽象方法提升开发效率, 不再是简单的增删改查, 逐步扩展, 拥有类似 orm 的能力
    • 客户端场景:
      • 通过 api/proto 文件自动生成 swagger json, 并内置 swagger ui
      • 通过 api/proto 文件自动生成 http client
      • 通过 proto 文件自动生成 zrpc client

    快速开始

    Windows 用户请在 powershell 下执行所有指令

    ',10)),k(n,{id:"160",data:[{id:"Docker"},{id:"jzero"}],"tab-id":"shell"},{title0:t(({value:l,isActive:a})=>e[0]||(e[0]=[s("Docker")])),title1:t(({value:l,isActive:a})=>e[1]||(e[1]=[s("jzero")])),tab0:t(({value:l,isActive:a})=>e[2]||(e[2]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#7F848E","--shiki-light-font-style":"inherit","--shiki-dark-font-style":"italic"}},"# 一键创建项目")]),s(` +import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as h,a as o,b as k,w as t,r as p,o as d,d as s,e as i}from"./app-CykRD9-9.js";const g={};function c(y,e){const n=p("CodeTabs");return d(),h("div",null,[e[4]||(e[4]=o('

    特性

    基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它.

    该项目可一键创建项目, 并支持不同的使用场景, 如 grpc 项目, gateway 项目, api 项目以及命令行项目等. 通过项目的可描述文件(如 proto, api, sql 等)一键生成服务端代码, 客户端代码和数据库代码.

    jzero 具备以下特点:

    • 极简命令, 通过配置文件 .jzero.yaml 控制不同命令的参数
    • 具备不同场景下的开发模板, 具备快速复制项目的能力
    • 优化 go-zero 已有的痛点并扩展新特性, 并完全兼容
    • 模板特性支持新增任意文件, 基于模板特性理论上可以支持任意框架

    在以下场景优化点:

    • api 场景
      • 支持 types 文件分组(原生 goctl 将所有 api 文件生成的 types 放到单文件 types.go 中, 导致该文件爆炸)
      • 编写多个 api 文件, 无需显示的编写一个 main.api 文件, 框架自动处理好
      • 默认集成 https://github.com/go-playground/validator 校验框架
      • 支持重新生成 handler 文件, 并支持不同场景(有输入输出, 有输入没输出, 没输入有输出, 没输入没输出), 无需再手动维护 handler 代码, 提升开发过程中的体验
      • 支持自动修改 logic 文件函数的入参和出参, 当 api 文件修改后, 自动适配修改, 提升开发过程中的体验
    • rpc 场景
      • 支持多个 proto, 自动注册, 无需手动编写
      • 默认支持 proto message 的字段校验, 且支持自定义错误信息
      • 默认支持通过 proto 新增拦截器, 可以设定某个 method, 也可以设定整个 service
    • gateway 场景
      • 默认可新增 rpc + gateway 的项目
      • 新增接口版本控制特性, 默认为 v1, 可一键初始化 v2, v3等版本的接口, 无需任何配置
      • 默认支持通过 proto 新增拦截器和 http 中间件, 可以设定某个 method, 也可以设定整个 service
    • 数据库场景
      • 将原生 sql 替换成 sqlbuilder, 从而可以更好的支持不同的数据库类型
      • 扩展新的抽象方法提升开发效率, 不再是简单的增删改查, 逐步扩展, 拥有类似 orm 的能力
    • 客户端场景:
      • 通过 api/proto 文件自动生成 swagger json, 并内置 swagger ui
      • 通过 api/proto 文件自动生成 http client
      • 通过 proto 文件自动生成 zrpc client

    快速开始

    Windows 用户请在 powershell 下执行所有指令

    ',10)),k(n,{id:"160",data:[{id:"Docker"},{id:"jzero"}],"tab-id":"shell"},{title0:t(({value:l,isActive:a})=>e[0]||(e[0]=[s("Docker")])),title1:t(({value:l,isActive:a})=>e[1]||(e[1]=[s("jzero")])),tab0:t(({value:l,isActive:a})=>e[2]||(e[2]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#7F848E","--shiki-light-font-style":"inherit","--shiki-dark-font-style":"italic"}},"# 一键创建项目")]),s(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#61AFEF"}},"docker"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," run"),i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#D19A66"}}," --rm"),i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#D19A66"}}," -v"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}}," ${"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E06C75"}},"PWD"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}},"}"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}},":/app"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," ghcr.io/jzero-io/jzero:latest"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," new"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project")]),s(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#56B6C2"}},"cd"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}}," ")]),s(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#7F848E","--shiki-light-font-style":"inherit","--shiki-dark-font-style":"italic"}},"# 一键生成代码")]),s(` @@ -18,4 +18,4 @@ import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as h,a as o, `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#7F848E","--shiki-light-font-style":"inherit","--shiki-dark-font-style":"italic"}},"# 下载依赖")]),s(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#61AFEF"}},"go"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," mod"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," tidy")]),s(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#7F848E","--shiki-light-font-style":"inherit","--shiki-dark-font-style":"italic"}},"# 启动服务端程序")]),s(` -`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#61AFEF"}},"go"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," run"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," main.go"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," server")])])]),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"})])],-1)])),_:1})])}const F=r(g,[["render",c],["__file","index.html.vue"]]),b=JSON.parse('{"path":"/","title":"首页","lang":"zh-CN","frontmatter":{"home":false,"icon":"fluent:home-heart-20-filled","title":"首页","description":"特性 基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它. 该项目可一键创建项目, 并支持不同的使用场景, 如 grpc 项目, gateway 项目, api 项目以及命令行项目等. 通过项目的可描...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"首页"}],["meta",{"property":"og:description","content":"特性 基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它. 该项目可一键创建项目, 并支持不同的使用场景, 如 grpc 项目, gateway 项目, api 项目以及命令行项目等. 通过项目的可描..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-09-24T07:09:20.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-09-24T07:09:20.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"首页\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-09-24T07:09:20.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[{"level":2,"title":"特性","slug":"特性","link":"#特性","children":[]},{"level":2,"title":"快速开始","slug":"快速开始","link":"#快速开始","children":[]}],"git":{"createdTime":1712825833000,"updatedTime":1727161760000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":41},{"name":"jaron","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":2.81,"words":842},"filePathRelative":"README.md","localizedDate":"2024年4月11日","excerpt":"
    \\n \\"\\"\\n
    \\n

    特性

    \\n

    基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它.

    ","autoDesc":true}');export{F as comp,b as data}; +`),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#61AFEF"}},"go"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," run"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," main.go"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," server")])])]),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"})])],-1)])),_:1})])}const F=r(g,[["render",c],["__file","index.html.vue"]]),b=JSON.parse('{"path":"/","title":"首页","lang":"zh-CN","frontmatter":{"home":false,"icon":"fluent:home-heart-20-filled","title":"首页","description":"特性 基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它. 该项目可一键创建项目, 并支持不同的使用场景, 如 grpc 项目, gateway 项目, api 项目以及命令行项目等. 通过项目的可描...","head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"首页"}],["meta",{"property":"og:description","content":"特性 基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它. 该项目可一键创建项目, 并支持不同的使用场景, 如 grpc 项目, gateway 项目, api 项目以及命令行项目等. 通过项目的可描..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"og:updated_time","content":"2024-09-24T07:13:33.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-09-24T07:13:33.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"首页\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-09-24T07:13:33.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[{"level":2,"title":"特性","slug":"特性","link":"#特性","children":[]},{"level":2,"title":"快速开始","slug":"快速开始","link":"#快速开始","children":[]}],"git":{"createdTime":1712825833000,"updatedTime":1727162013000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":42},{"name":"jaron","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":2.81,"words":842},"filePathRelative":"README.md","localizedDate":"2024年4月11日","excerpt":"
    \\n \\"\\"\\n
    \\n

    特性

    \\n

    基于 go-zero 开发的低代码脚手架 jzero, 旨在通过更少的命令完成更多的事情, 但 jzero 不仅仅局限于 go-zero 框架, 理论上通过模板功能可以支持任意框架, 这取决于你如何使用它.

    ","autoDesc":true}');export{F as comp,b as data}; diff --git a/assets/index.html-uuB1JdsC.js b/assets/index.html-B9ivrt1J.js similarity index 94% rename from assets/index.html-uuB1JdsC.js rename to assets/index.html-B9ivrt1J.js index 37676d1c..4d613e22 100644 --- a/assets/index.html-uuB1JdsC.js +++ b/assets/index.html-B9ivrt1J.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as n}from"./app-i_AVB87T.js";const o={};function i(r,a){return n(),t("div")}const p=e(o,[["render",i],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/en/timeline/","title":"Timeline","lang":"zh-CN","frontmatter":{"title":"Timeline","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"timeline"},"layout":"Timeline","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/timeline/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Timeline"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Timeline\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{p as comp,c as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as n}from"./app-CykRD9-9.js";const o={};function i(r,a){return n(),t("div")}const p=e(o,[["render",i],["__file","index.html.vue"]]),c=JSON.parse('{"path":"/en/timeline/","title":"Timeline","lang":"zh-CN","frontmatter":{"title":"Timeline","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"timeline"},"layout":"Timeline","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/timeline/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Timeline"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Timeline\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{p as comp,c as data}; diff --git a/assets/index.html-CvYnL55h.js b/assets/index.html-BCCVEm50.js similarity index 94% rename from assets/index.html-CvYnL55h.js rename to assets/index.html-BCCVEm50.js index a8b6c57f..b4f7065e 100644 --- a/assets/index.html-CvYnL55h.js +++ b/assets/index.html-BCCVEm50.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-i_AVB87T.js";const a={};function r(n,i){return o(),t("div")}const l=e(a,[["render",r],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/tag/guide/","title":"标签: Guide","lang":"zh-CN","frontmatter":{"title":"标签: Guide","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"Guide","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag/guide/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签: Guide"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签: Guide\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-CykRD9-9.js";const a={};function r(n,i){return o(),t("div")}const l=e(a,[["render",r],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/tag/guide/","title":"标签: Guide","lang":"zh-CN","frontmatter":{"title":"标签: Guide","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"Guide","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag/guide/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签: Guide"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签: Guide\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; diff --git a/assets/index.html-BZpiCXlO.js b/assets/index.html-BODQ4Uyd.js similarity index 95% rename from assets/index.html-BZpiCXlO.js rename to assets/index.html-BODQ4Uyd.js index cd60e989..70774852 100644 --- a/assets/index.html-BZpiCXlO.js +++ b/assets/index.html-BODQ4Uyd.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as a,o as r,r as n}from"./app-i_AVB87T.js";const i={};function m(p,c){const e=n("Catalog");return r(),o("div",null,[a(e)])}const s=t(i,[["render",m],["__file","index.html.vue"]]),h=JSON.parse('{"path":"/roadmap/","title":"Roadmap","lang":"zh-CN","frontmatter":{"title":"Roadmap","icon":"mdi:roadmap","index":false,"order":20,"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/roadmap/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Roadmap"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-01T03:29:00.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-01T03:29:00.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Roadmap\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-01T03:29:00.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1722482940000,"updatedTime":1722482940000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.04,"words":11},"filePathRelative":"roadmap/README.md","localizedDate":"2024年8月1日","excerpt":""}');export{s as comp,h as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as a,o as r,r as n}from"./app-CykRD9-9.js";const i={};function m(p,c){const e=n("Catalog");return r(),o("div",null,[a(e)])}const s=t(i,[["render",m],["__file","index.html.vue"]]),h=JSON.parse('{"path":"/roadmap/","title":"Roadmap","lang":"zh-CN","frontmatter":{"title":"Roadmap","icon":"mdi:roadmap","index":false,"order":20,"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/roadmap/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Roadmap"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-01T03:29:00.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-01T03:29:00.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"Roadmap\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-01T03:29:00.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1722482940000,"updatedTime":1722482940000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.04,"words":11},"filePathRelative":"roadmap/README.md","localizedDate":"2024年8月1日","excerpt":""}');export{s as comp,h as data}; diff --git a/assets/index.html-BF-V8TbH.js b/assets/index.html-BPHZkvSo.js similarity index 94% rename from assets/index.html-BF-V8TbH.js rename to assets/index.html-BPHZkvSo.js index 6b36496d..da9de015 100644 --- a/assets/index.html-BF-V8TbH.js +++ b/assets/index.html-BPHZkvSo.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as r}from"./app-i_AVB87T.js";const o={};function a(n,c){return r(),t("div")}const p=e(o,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/en/article/","title":"Articles","lang":"zh-CN","frontmatter":{"title":"Articles","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"article"},"layout":"BlogType","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/article/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Articles"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Articles\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{p as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as r}from"./app-CykRD9-9.js";const o={};function a(n,c){return r(),t("div")}const p=e(o,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/en/article/","title":"Articles","lang":"zh-CN","frontmatter":{"title":"Articles","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"article"},"layout":"BlogType","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/article/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Articles"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Articles\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{p as comp,s as data}; diff --git a/assets/index.html-B1zxIjH8.js b/assets/index.html-B_VQjZZV.js similarity index 94% rename from assets/index.html-B1zxIjH8.js rename to assets/index.html-B_VQjZZV.js index 6d58063f..7741b1a3 100644 --- a/assets/index.html-B1zxIjH8.js +++ b/assets/index.html-B_VQjZZV.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-i_AVB87T.js";const o={};function r(n,c){return a(),t("div")}const l=e(o,[["render",r],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/tag/faq/","title":"标签: faq","lang":"zh-CN","frontmatter":{"title":"标签: faq","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"faq","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag/faq/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签: faq"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签: faq\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-CykRD9-9.js";const o={};function r(n,c){return a(),t("div")}const l=e(o,[["render",r],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/tag/faq/","title":"标签: faq","lang":"zh-CN","frontmatter":{"title":"标签: faq","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"faq","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag/faq/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签: faq"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签: faq\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; diff --git a/assets/index.html-Bzq9U1lm.js b/assets/index.html-BfvkL9je.js similarity index 99% rename from assets/index.html-Bzq9U1lm.js rename to assets/index.html-BfvkL9je.js index 39ea1036..697064e0 100644 --- a/assets/index.html-Bzq9U1lm.js +++ b/assets/index.html-BfvkL9je.js @@ -1,4 +1,4 @@ -import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,a as h,b as d,w as s,r as p,o as c,d as e,e as i}from"./app-i_AVB87T.js";const k={};function g(u,t){const n=p("CodeTabs");return c(),o("div",null,[t[4]||(t[4]=h('

    Features

    Jzero, a low-code scaffold developed based on go-zero, aims to accomplish more with fewer commands, but jzero is not limited to the go-zero framework. In theory, it can support any framework through the template function, depending on how you use it.

    The project can create projects with one click and support different usage scenarios, such as grpc projects, gateway projects, api projects, and command line projects. Through the project's descriptive files (such as proto, api, sql, etc.), you can generate server code, client code, and database code with one click.

    jzero has the following features:

    • Minimal commands, control the parameters of different commands through the configuration file .jzero.yaml
    • With development templates for different scenarios, it has the ability to quickly copy projects
    • Optimize the existing pain points of go-zero and expand new features, and be fully compatible
    • The template feature supports adding any file, and based on the template feature, it can theoretically support any framework

    Optimization points in the following scenarios:

    • API scenario

      • Support types File grouping (native goctl puts all the types generated by api files into a single file types.go, causing the file to explode)
      • Write multiple api files, no need to explicitly write a main.api file, the framework automatically handles it
      • Default integration of https://github.com/go-playground/validator validation framework
    • rpc scenario

      • Support multiple proto, automatic registration, no need to write manually
      • Default support for proto message field validation, and support for custom error messages
      • Default support for adding interceptors through proto, you can set a certain method, or you can set the entire service
    • gateway scenario

      • Default support for adding rpc + gateway projects
      • Add interface version control features, the default is v1, you can initialize v2, v3 and other versions of the interface with one click, no configuration required
      • Default support for adding interceptors and http middleware through proto, you can set a certain method, or you can set the entire service
    • database scenario

      • Replace native sql with sqlbuilder, So that different database types can be better supported
      • Expand new abstract methods to improve development efficiency, no longer a simple addition, deletion, modification and query, gradually expand, and have capabilities similar to orm
    • Client scenarios:

      • Automatically generate swagger json through api/proto files, and built-in swagger ui
      • Automatically generate http client through api/proto files
      • Automatically generate zrpc client through proto files

    Quick start

    Windows users please execute all instructions under powershell

    ',10)),d(n,{id:"150",data:[{id:"Docker"},{id:"jzero"}],"tab-id":"shell"},{title0:s(({value:a,isActive:l})=>t[0]||(t[0]=[e("Docker")])),title1:s(({value:a,isActive:l})=>t[1]||(t[1]=[e("jzero")])),tab0:s(({value:a,isActive:l})=>t[2]||(t[2]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#7F848E","--shiki-light-font-style":"inherit","--shiki-dark-font-style":"italic"}},"# One-click project creation")]),e(` +import{_ as r}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,a as h,b as d,w as s,r as p,o as c,d as e,e as i}from"./app-CykRD9-9.js";const k={};function g(u,t){const n=p("CodeTabs");return c(),o("div",null,[t[4]||(t[4]=h('

    Features

    Jzero, a low-code scaffold developed based on go-zero, aims to accomplish more with fewer commands, but jzero is not limited to the go-zero framework. In theory, it can support any framework through the template function, depending on how you use it.

    The project can create projects with one click and support different usage scenarios, such as grpc projects, gateway projects, api projects, and command line projects. Through the project's descriptive files (such as proto, api, sql, etc.), you can generate server code, client code, and database code with one click.

    jzero has the following features:

    • Minimal commands, control the parameters of different commands through the configuration file .jzero.yaml
    • With development templates for different scenarios, it has the ability to quickly copy projects
    • Optimize the existing pain points of go-zero and expand new features, and be fully compatible
    • The template feature supports adding any file, and based on the template feature, it can theoretically support any framework

    Optimization points in the following scenarios:

    • API scenario

      • Support types File grouping (native goctl puts all the types generated by api files into a single file types.go, causing the file to explode)
      • Write multiple api files, no need to explicitly write a main.api file, the framework automatically handles it
      • Default integration of https://github.com/go-playground/validator validation framework
    • rpc scenario

      • Support multiple proto, automatic registration, no need to write manually
      • Default support for proto message field validation, and support for custom error messages
      • Default support for adding interceptors through proto, you can set a certain method, or you can set the entire service
    • gateway scenario

      • Default support for adding rpc + gateway projects
      • Add interface version control features, the default is v1, you can initialize v2, v3 and other versions of the interface with one click, no configuration required
      • Default support for adding interceptors and http middleware through proto, you can set a certain method, or you can set the entire service
    • database scenario

      • Replace native sql with sqlbuilder, So that different database types can be better supported
      • Expand new abstract methods to improve development efficiency, no longer a simple addition, deletion, modification and query, gradually expand, and have capabilities similar to orm
    • Client scenarios:

      • Automatically generate swagger json through api/proto files, and built-in swagger ui
      • Automatically generate http client through api/proto files
      • Automatically generate zrpc client through proto files

    Quick start

    Windows users please execute all instructions under powershell

    ',10)),d(n,{id:"150",data:[{id:"Docker"},{id:"jzero"}],"tab-id":"shell"},{title0:s(({value:a,isActive:l})=>t[0]||(t[0]=[e("Docker")])),title1:s(({value:a,isActive:l})=>t[1]||(t[1]=[e("jzero")])),tab0:s(({value:a,isActive:l})=>t[2]||(t[2]=[i("div",{class:"language-bash line-numbers-mode","data-highlighter":"shiki","data-ext":"bash","data-title":"bash",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#7F848E","--shiki-light-font-style":"inherit","--shiki-dark-font-style":"italic"}},"# One-click project creation")]),e(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6F42C1","--shiki-dark":"#61AFEF"}},"docker"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," run"),i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#D19A66"}}," --rm"),i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#D19A66"}}," -v"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}}," ${"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#E06C75"}},"PWD"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}},"}"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}},":/app"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," ghcr.io/jzero-io/jzero:latest"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," new"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project")]),e(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#005CC5","--shiki-dark":"#56B6C2"}},"cd"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," your_project")]),e(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#6A737D","--shiki-dark":"#7F848E","--shiki-light-font-style":"inherit","--shiki-dark-font-style":"italic"}},"# One-click code generation")]),e(` diff --git a/assets/index.html-BB1KKT_E.js b/assets/index.html-BhYElsFm.js similarity index 93% rename from assets/index.html-BB1KKT_E.js rename to assets/index.html-BhYElsFm.js index b8f02efb..a3287018 100644 --- a/assets/index.html-BB1KKT_E.js +++ b/assets/index.html-BhYElsFm.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as a,o as r,r as n}from"./app-i_AVB87T.js";const c={};function i(p,l){const e=n("Catalog");return r(),o("div",null,[a(e)])}const d=t(c,[["render",i],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/guide/","title":"Guide","lang":"zh-CN","frontmatter":{"title":"Guide","article":false,"feed":false,"sitemap":false,"gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Guide"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Guide\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":1},"filePathRelative":null,"excerpt":""}');export{d as comp,g as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as a,o as r,r as n}from"./app-CykRD9-9.js";const c={};function i(p,l){const e=n("Catalog");return r(),o("div",null,[a(e)])}const d=t(c,[["render",i],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/guide/","title":"Guide","lang":"zh-CN","frontmatter":{"title":"Guide","article":false,"feed":false,"sitemap":false,"gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Guide"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Guide\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":1},"filePathRelative":null,"excerpt":""}');export{d as comp,g as data}; diff --git a/assets/index.html-BaLEG_5R.js b/assets/index.html-C--49tsz.js similarity index 95% rename from assets/index.html-BaLEG_5R.js rename to assets/index.html-C--49tsz.js index f62af330..ab5d2884 100644 --- a/assets/index.html-BaLEG_5R.js +++ b/assets/index.html-C--49tsz.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as r,o as n,r as a}from"./app-i_AVB87T.js";const i={};function c(p,m){const e=a("Catalog");return n(),o("div",null,[r(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/guide/develop/","title":"开发","lang":"zh-CN","frontmatter":{"title":"开发","icon":"carbon:development","index":false,"dir":{"order":7},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/develop/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"开发"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-07T15:53:45.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-07-07T15:53:45.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"开发\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-07T15:53:45.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1713332628000,"updatedTime":1720367625000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":4}]},"readingTime":{"minutes":0.04,"words":13},"filePathRelative":"guide/develop/README.md","localizedDate":"2024年4月17日","excerpt":""}');export{s as comp,g as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as r,o as n,r as a}from"./app-CykRD9-9.js";const i={};function c(p,m){const e=a("Catalog");return n(),o("div",null,[r(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/guide/develop/","title":"开发","lang":"zh-CN","frontmatter":{"title":"开发","icon":"carbon:development","index":false,"dir":{"order":7},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/develop/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"开发"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-07T15:53:45.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-07-07T15:53:45.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"开发\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-07T15:53:45.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1713332628000,"updatedTime":1720367625000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":4}]},"readingTime":{"minutes":0.04,"words":13},"filePathRelative":"guide/develop/README.md","localizedDate":"2024年4月17日","excerpt":""}');export{s as comp,g as data}; diff --git a/assets/index.html-CcVmTy1T.js b/assets/index.html-CD4p8Pdl.js similarity index 95% rename from assets/index.html-CcVmTy1T.js rename to assets/index.html-CD4p8Pdl.js index 0677dd45..91226a10 100644 --- a/assets/index.html-CcVmTy1T.js +++ b/assets/index.html-CD4p8Pdl.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as a,o as r,r as n}from"./app-i_AVB87T.js";const i={};function c(m,p){const e=n("Catalog");return r(),o("div",null,[a(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),h=JSON.parse('{"path":"/faq/","title":"问题与解决","lang":"zh-CN","frontmatter":{"title":"问题与解决","icon":"mdi:faq","index":false,"dir":{"order":10},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/faq/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"问题与解决"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-01T03:29:00.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-01T03:29:00.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"问题与解决\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-01T03:29:00.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1722405663000,"updatedTime":1722482940000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.05,"words":16},"filePathRelative":"faq/README.md","localizedDate":"2024年7月31日","excerpt":""}');export{s as comp,h as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as a,o as r,r as n}from"./app-CykRD9-9.js";const i={};function c(m,p){const e=n("Catalog");return r(),o("div",null,[a(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),h=JSON.parse('{"path":"/faq/","title":"问题与解决","lang":"zh-CN","frontmatter":{"title":"问题与解决","icon":"mdi:faq","index":false,"dir":{"order":10},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/faq/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"问题与解决"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-01T03:29:00.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-01T03:29:00.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"问题与解决\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-01T03:29:00.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1722405663000,"updatedTime":1722482940000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.05,"words":16},"filePathRelative":"faq/README.md","localizedDate":"2024年7月31日","excerpt":""}');export{s as comp,h as data}; diff --git a/assets/index.html-Bkhys7ds.js b/assets/index.html-CDb_Pw4F.js similarity index 96% rename from assets/index.html-Bkhys7ds.js rename to assets/index.html-CDb_Pw4F.js index 49219607..807d94f8 100644 --- a/assets/index.html-Bkhys7ds.js +++ b/assets/index.html-CDb_Pw4F.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as r,o as a,r as n}from"./app-i_AVB87T.js";const i={};function c(p,m){const e=n("Catalog");return a(),o("div",null,[r(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),h=JSON.parse('{"path":"/project/","title":"项目实战","lang":"zh-CN","frontmatter":{"title":"项目实战","icon":"mdi:arrow-projectile-multiple","index":false,"dir":{"order":9},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/project/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"项目实战"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-01T03:29:00.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-01T03:29:00.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"项目实战\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-01T03:29:00.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1722405663000,"updatedTime":1722482940000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.06,"words":17},"filePathRelative":"project/README.md","localizedDate":"2024年7月31日","excerpt":""}');export{s as comp,h as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as r,o as a,r as n}from"./app-CykRD9-9.js";const i={};function c(p,m){const e=n("Catalog");return a(),o("div",null,[r(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),h=JSON.parse('{"path":"/project/","title":"项目实战","lang":"zh-CN","frontmatter":{"title":"项目实战","icon":"mdi:arrow-projectile-multiple","index":false,"dir":{"order":9},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/project/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"项目实战"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-01T03:29:00.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-01T03:29:00.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"项目实战\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-01T03:29:00.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1722405663000,"updatedTime":1722482940000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":1}]},"readingTime":{"minutes":0.06,"words":17},"filePathRelative":"project/README.md","localizedDate":"2024年7月31日","excerpt":""}');export{s as comp,h as data}; diff --git a/assets/index.html-BdN0ZalW.js b/assets/index.html-CJ-2-XaB.js similarity index 95% rename from assets/index.html-BdN0ZalW.js rename to assets/index.html-CJ-2-XaB.js index f19007ad..0e000667 100644 --- a/assets/index.html-BdN0ZalW.js +++ b/assets/index.html-CJ-2-XaB.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as r,o as n,r as a}from"./app-i_AVB87T.js";const i={};function c(p,m){const e=a("Catalog");return n(),o("div",null,[r(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/guide/deploy/","title":"部署","lang":"zh-CN","frontmatter":{"title":"部署","icon":"icon-park:rocket-one","index":false,"dir":{"order":8},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/deploy/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"部署"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-07T15:53:45.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-07-07T15:53:45.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"部署\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-07T15:53:45.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1713332628000,"updatedTime":1720367625000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":2}]},"readingTime":{"minutes":0.05,"words":15},"filePathRelative":"guide/deploy/README.md","localizedDate":"2024年4月17日","excerpt":""}');export{s as comp,g as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as r,o as n,r as a}from"./app-CykRD9-9.js";const i={};function c(p,m){const e=a("Catalog");return n(),o("div",null,[r(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/guide/deploy/","title":"部署","lang":"zh-CN","frontmatter":{"title":"部署","icon":"icon-park:rocket-one","index":false,"dir":{"order":8},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/deploy/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"部署"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-07T15:53:45.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-07-07T15:53:45.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"部署\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-07T15:53:45.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1713332628000,"updatedTime":1720367625000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":2}]},"readingTime":{"minutes":0.05,"words":15},"filePathRelative":"guide/deploy/README.md","localizedDate":"2024年4月17日","excerpt":""}');export{s as comp,g as data}; diff --git a/assets/index.html-Aip76kXx.js b/assets/index.html-CLBq6kx9.js similarity index 94% rename from assets/index.html-Aip76kXx.js rename to assets/index.html-CLBq6kx9.js index bcb3815e..18d9112c 100644 --- a/assets/index.html-Aip76kXx.js +++ b/assets/index.html-CLBq6kx9.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-i_AVB87T.js";const r={};function n(a,c){return o(),t("div")}const l=e(r,[["render",n],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/contribute/","title":"contribute 分类","lang":"zh-CN","frontmatter":{"title":"contribute 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"contribute","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/contribute/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"contribute 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"contribute 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-CykRD9-9.js";const r={};function n(a,c){return o(),t("div")}const l=e(r,[["render",n],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/contribute/","title":"contribute 分类","lang":"zh-CN","frontmatter":{"title":"contribute 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"contribute","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/contribute/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"contribute 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"contribute 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; diff --git a/assets/index.html-BAGLy4_8.js b/assets/index.html-CblHrs13.js similarity index 94% rename from assets/index.html-BAGLy4_8.js rename to assets/index.html-CblHrs13.js index c36005d0..cbd110d8 100644 --- a/assets/index.html-BAGLy4_8.js +++ b/assets/index.html-CblHrs13.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as r}from"./app-i_AVB87T.js";const o={};function a(n,l){return r(),t("div")}const p=e(o,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/article/","title":"文章","lang":"zh-CN","frontmatter":{"title":"文章","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"article"},"layout":"BlogType","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/article/"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/article/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"文章"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"文章\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{p as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as r}from"./app-CykRD9-9.js";const o={};function a(n,l){return r(),t("div")}const p=e(o,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/article/","title":"文章","lang":"zh-CN","frontmatter":{"title":"文章","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"article"},"layout":"BlogType","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/article/"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/article/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"文章"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"文章\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{p as comp,s as data}; diff --git a/assets/index.html-CFMNswyR.js b/assets/index.html-D-2f3sY1.js similarity index 94% rename from assets/index.html-CFMNswyR.js rename to assets/index.html-D-2f3sY1.js index 0c5d810a..462f49b4 100644 --- a/assets/index.html-CFMNswyR.js +++ b/assets/index.html-D-2f3sY1.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as n}from"./app-i_AVB87T.js";const o={};function r(a,i){return n(),t("div")}const c=e(o,[["render",r],["__file","index.html.vue"]]),m=JSON.parse('{"path":"/timeline/","title":"时间轴","lang":"zh-CN","frontmatter":{"title":"时间轴","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"timeline"},"layout":"Timeline","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/timeline/"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/timeline/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"时间轴"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"时间轴\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{c as comp,m as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as n}from"./app-CykRD9-9.js";const o={};function r(a,i){return n(),t("div")}const c=e(o,[["render",r],["__file","index.html.vue"]]),m=JSON.parse('{"path":"/timeline/","title":"时间轴","lang":"zh-CN","frontmatter":{"title":"时间轴","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"timeline"},"layout":"Timeline","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/timeline/"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/timeline/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"时间轴"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"时间轴\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{c as comp,m as data}; diff --git a/assets/index.html-B4BezKkG.js b/assets/index.html-D9UVA_KP.js similarity index 94% rename from assets/index.html-B4BezKkG.js rename to assets/index.html-D9UVA_KP.js index cdc5f06f..6e9666a9 100644 --- a/assets/index.html-B4BezKkG.js +++ b/assets/index.html-D9UVA_KP.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-i_AVB87T.js";const r={};function a(n,c){return o(),t("div")}const l=e(r,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/project/","title":"project 分类","lang":"zh-CN","frontmatter":{"title":"project 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"project","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/project/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"project 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"project 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-CykRD9-9.js";const r={};function a(n,c){return o(),t("div")}const l=e(r,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/project/","title":"project 分类","lang":"zh-CN","frontmatter":{"title":"project 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"project","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/project/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"project 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"project 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; diff --git a/assets/index.html-B45eauE2.js b/assets/index.html-DYC7Zubq.js similarity index 94% rename from assets/index.html-B45eauE2.js rename to assets/index.html-DYC7Zubq.js index 8f6e5252..0d29df1d 100644 --- a/assets/index.html-B45eauE2.js +++ b/assets/index.html-DYC7Zubq.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-i_AVB87T.js";const o={};function r(n,p){return a(),t("div")}const i=e(o,[["render",r],["__file","index.html.vue"]]),l=JSON.parse('{"path":"/category/roadmap/","title":"roadmap 分类","lang":"zh-CN","frontmatter":{"title":"roadmap 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"roadmap","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/roadmap/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"roadmap 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"roadmap 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,l as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-CykRD9-9.js";const o={};function r(n,p){return a(),t("div")}const i=e(o,[["render",r],["__file","index.html.vue"]]),l=JSON.parse('{"path":"/category/roadmap/","title":"roadmap 分类","lang":"zh-CN","frontmatter":{"title":"roadmap 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"roadmap","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/roadmap/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"roadmap 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"roadmap 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,l as data}; diff --git a/assets/index.html-Cx9MoW39.js b/assets/index.html-Dg-TWTCD.js similarity index 94% rename from assets/index.html-Cx9MoW39.js rename to assets/index.html-Dg-TWTCD.js index 94e38b8f..d842dbee 100644 --- a/assets/index.html-Cx9MoW39.js +++ b/assets/index.html-Dg-TWTCD.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-i_AVB87T.js";const o={};function r(n,c){return a(),t("div")}const l=e(o,[["render",r],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/faq/","title":"faq 分类","lang":"zh-CN","frontmatter":{"title":"faq 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"faq","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/faq/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"faq 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"faq 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-CykRD9-9.js";const o={};function r(n,c){return a(),t("div")}const l=e(o,[["render",r],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/faq/","title":"faq 分类","lang":"zh-CN","frontmatter":{"title":"faq 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"faq","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/faq/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"faq 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"faq 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; diff --git a/assets/index.html-B5Cnkk2s.js b/assets/index.html-G9ZczZ4H.js similarity index 94% rename from assets/index.html-B5Cnkk2s.js rename to assets/index.html-G9ZczZ4H.js index 2af1cfac..a96989dc 100644 --- a/assets/index.html-B5Cnkk2s.js +++ b/assets/index.html-G9ZczZ4H.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-i_AVB87T.js";const r={};function a(n,c){return o(),t("div")}const l=e(r,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/%E5%BC%80%E5%8F%91/","title":"开发 分类","lang":"zh-CN","frontmatter":{"title":"开发 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"开发","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/%E5%BC%80%E5%8F%91/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"开发 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"开发 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-CykRD9-9.js";const r={};function a(n,c){return o(),t("div")}const l=e(r,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/%E5%BC%80%E5%8F%91/","title":"开发 分类","lang":"zh-CN","frontmatter":{"title":"开发 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"开发","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/%E5%BC%80%E5%8F%91/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"开发 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"开发 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; diff --git a/assets/index.html-_hTD5r2w.js b/assets/index.html-LuovaIse.js similarity index 94% rename from assets/index.html-_hTD5r2w.js rename to assets/index.html-LuovaIse.js index 92106a1d..acf8b806 100644 --- a/assets/index.html-_hTD5r2w.js +++ b/assets/index.html-LuovaIse.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-i_AVB87T.js";const r={};function a(n,c){return o(),t("div")}const l=e(r,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/%E9%85%8D%E7%BD%AE/","title":"配置 分类","lang":"zh-CN","frontmatter":{"title":"配置 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"配置","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/%E9%85%8D%E7%BD%AE/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"配置 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"配置 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-CykRD9-9.js";const r={};function a(n,c){return o(),t("div")}const l=e(r,[["render",a],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/category/%E9%85%8D%E7%BD%AE/","title":"配置 分类","lang":"zh-CN","frontmatter":{"title":"配置 分类","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"配置","key":"category"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/category/%E9%85%8D%E7%BD%AE/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"配置 分类"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"配置 分类\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; diff --git a/assets/index.html-BQ9LiL4y.js b/assets/index.html-O3Jq0bVp.js similarity index 96% rename from assets/index.html-BQ9LiL4y.js rename to assets/index.html-O3Jq0bVp.js index c7d91082..78cabe01 100644 --- a/assets/index.html-BQ9LiL4y.js +++ b/assets/index.html-O3Jq0bVp.js @@ -1 +1 @@ -import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as n,o as r,r as a}from"./app-i_AVB87T.js";const i={};function c(m,p){const e=a("Catalog");return r(),o("div",null,[n(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/guide/config/","title":"服务端配置","lang":"zh-CN","frontmatter":{"title":"服务端配置","icon":"vscode-icons:file-type-gleamconfig","index":false,"dir":{"order":6},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/config/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"服务端配置"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-07T09:04:29.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-07T09:04:29.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"服务端配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-07T09:04:29.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1713332628000,"updatedTime":1723021469000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":5}]},"readingTime":{"minutes":0.06,"words":19},"filePathRelative":"guide/config/README.md","localizedDate":"2024年4月17日","excerpt":""}');export{s as comp,g as data}; +import{_ as t}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as o,b as n,o as r,r as a}from"./app-CykRD9-9.js";const i={};function c(m,p){const e=a("Catalog");return r(),o("div",null,[n(e)])}const s=t(i,[["render",c],["__file","index.html.vue"]]),g=JSON.parse('{"path":"/guide/config/","title":"服务端配置","lang":"zh-CN","frontmatter":{"title":"服务端配置","icon":"vscode-icons:file-type-gleamconfig","index":false,"dir":{"order":6},"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/config/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"服务端配置"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-08-07T09:04:29.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:modified_time","content":"2024-08-07T09:04:29.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"服务端配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-08-07T09:04:29.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1713332628000,"updatedTime":1723021469000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":5}]},"readingTime":{"minutes":0.06,"words":19},"filePathRelative":"guide/config/README.md","localizedDate":"2024年4月17日","excerpt":""}');export{s as comp,g as data}; diff --git a/assets/index.html-DOj4krHA.js b/assets/index.html-geXTp7i1.js similarity index 94% rename from assets/index.html-DOj4krHA.js rename to assets/index.html-geXTp7i1.js index ba2eab52..c882f194 100644 --- a/assets/index.html-DOj4krHA.js +++ b/assets/index.html-geXTp7i1.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-i_AVB87T.js";const o={};function r(n,p){return a(),t("div")}const i=e(o,[["render",r],["__file","index.html.vue"]]),l=JSON.parse('{"path":"/tag/roadmap/","title":"标签: roadmap","lang":"zh-CN","frontmatter":{"title":"标签: roadmap","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"roadmap","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag/roadmap/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签: roadmap"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签: roadmap\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,l as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-CykRD9-9.js";const o={};function r(n,p){return a(),t("div")}const i=e(o,[["render",r],["__file","index.html.vue"]]),l=JSON.parse('{"path":"/tag/roadmap/","title":"标签: roadmap","lang":"zh-CN","frontmatter":{"title":"标签: roadmap","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"roadmap","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag/roadmap/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签: roadmap"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签: roadmap\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,l as data}; diff --git a/assets/index.html-8Gw_vm22.js b/assets/index.html-wi5a_sDS.js similarity index 94% rename from assets/index.html-8Gw_vm22.js rename to assets/index.html-wi5a_sDS.js index 39ec89a6..9a49998e 100644 --- a/assets/index.html-8Gw_vm22.js +++ b/assets/index.html-wi5a_sDS.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-i_AVB87T.js";const r={};function n(a,c){return o(),t("div")}const l=e(r,[["render",n],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/tag/contribute/","title":"标签: contribute","lang":"zh-CN","frontmatter":{"title":"标签: contribute","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"contribute","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag/contribute/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签: contribute"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签: contribute\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o}from"./app-CykRD9-9.js";const r={};function n(a,c){return o(),t("div")}const l=e(r,[["render",n],["__file","index.html.vue"]]),s=JSON.parse('{"path":"/tag/contribute/","title":"标签: contribute","lang":"zh-CN","frontmatter":{"title":"标签: contribute","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","name":"contribute","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag/contribute/"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签: contribute"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签: contribute\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data}; diff --git a/assets/introduction.html-CQ0m7qm1.js b/assets/introduction.html-Ce4UbW76.js similarity index 98% rename from assets/introduction.html-CQ0m7qm1.js rename to assets/introduction.html-Ce4UbW76.js index 0dc893c8..e153cf23 100644 --- a/assets/introduction.html-CQ0m7qm1.js +++ b/assets/introduction.html-Ce4UbW76.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as r,a as o,o as n}from"./app-i_AVB87T.js";const a={};function i(p,t){return n(),r("div",null,t[0]||(t[0]=[o('

    配置项

    jzero 支持以下几种场景:

    • api 项目: 基于 go-zero api 框架, 配置项为 rest
    • rpc 项目: 基于 go-zero zrpc 框架, 配置项为 zrpc
    • gateway 项目: 基于 go-zero gateway 框架以及 zrpc 框架, 配置项为 gatewayzrpc

    其中对于基础服务配置项为 rest/zrpc/gateway, 日志配置项为 log

    提示

    后续所有关于配置的地方, 标题表示在哪个配置项进行配置 请根据自己的场景选取在哪个配置项配置

    ',5)]))}const s=e(a,[["render",i],["__file","introduction.html.vue"]]),l=JSON.parse('{"path":"/guide/config/introduction.html","title":"配置说明","lang":"zh-CN","frontmatter":{"title":"配置说明","icon":"vscode-icons:file-type-gleamconfig","order":1,"star":true,"category":"配置","tag":["Guide"],"description":"配置项 jzero 支持以下几种场景: api 项目: 基于 go-zero api 框架, 配置项为 rest rpc 项目: 基于 go-zero zrpc 框架, 配置项为 zrpc gateway 项目: 基于 go-zero gateway 框架以及 zrpc 框架, 配置项为 gateway 和 zrpc 其中对于基础服务配置项为 rest...","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/config/introduction.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"配置说明"}],["meta",{"property":"og:description","content":"配置项 jzero 支持以下几种场景: api 项目: 基于 go-zero api 框架, 配置项为 rest rpc 项目: 基于 go-zero zrpc 框架, 配置项为 zrpc gateway 项目: 基于 go-zero gateway 框架以及 zrpc 框架, 配置项为 gateway 和 zrpc 其中对于基础服务配置项为 rest..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-30T02:09:03.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:tag","content":"Guide"}],["meta",{"property":"article:modified_time","content":"2024-07-30T02:09:03.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"配置说明\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-30T02:09:03.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1721984526000,"updatedTime":1722305343000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":5}]},"readingTime":{"minutes":0.51,"words":152},"filePathRelative":"guide/config/introduction.md","localizedDate":"2024年7月26日","excerpt":"\\n

    jzero 支持以下几种场景:

    \\n
      \\n
    • api 项目: 基于 go-zero api 框架, 配置项为 rest
    • \\n
    • rpc 项目: 基于 go-zero zrpc 框架, 配置项为 zrpc
    • \\n
    • gateway 项目: 基于 go-zero gateway 框架以及 zrpc 框架, 配置项为 gatewayzrpc
    • \\n
    \\n

    其中对于基础服务配置项为 rest/zrpc/gateway, 日志配置项为 log

    ","autoDesc":true}');export{s as comp,l as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as r,a as o,o as n}from"./app-CykRD9-9.js";const a={};function i(p,t){return n(),r("div",null,t[0]||(t[0]=[o('

    配置项

    jzero 支持以下几种场景:

    • api 项目: 基于 go-zero api 框架, 配置项为 rest
    • rpc 项目: 基于 go-zero zrpc 框架, 配置项为 zrpc
    • gateway 项目: 基于 go-zero gateway 框架以及 zrpc 框架, 配置项为 gatewayzrpc

    其中对于基础服务配置项为 rest/zrpc/gateway, 日志配置项为 log

    提示

    后续所有关于配置的地方, 标题表示在哪个配置项进行配置 请根据自己的场景选取在哪个配置项配置

    ',5)]))}const s=e(a,[["render",i],["__file","introduction.html.vue"]]),l=JSON.parse('{"path":"/guide/config/introduction.html","title":"配置说明","lang":"zh-CN","frontmatter":{"title":"配置说明","icon":"vscode-icons:file-type-gleamconfig","order":1,"star":true,"category":"配置","tag":["Guide"],"description":"配置项 jzero 支持以下几种场景: api 项目: 基于 go-zero api 框架, 配置项为 rest rpc 项目: 基于 go-zero zrpc 框架, 配置项为 zrpc gateway 项目: 基于 go-zero gateway 框架以及 zrpc 框架, 配置项为 gateway 和 zrpc 其中对于基础服务配置项为 rest...","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/config/introduction.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"配置说明"}],["meta",{"property":"og:description","content":"配置项 jzero 支持以下几种场景: api 项目: 基于 go-zero api 框架, 配置项为 rest rpc 项目: 基于 go-zero zrpc 框架, 配置项为 zrpc gateway 项目: 基于 go-zero gateway 框架以及 zrpc 框架, 配置项为 gateway 和 zrpc 其中对于基础服务配置项为 rest..."}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-30T02:09:03.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:tag","content":"Guide"}],["meta",{"property":"article:modified_time","content":"2024-07-30T02:09:03.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"配置说明\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-30T02:09:03.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[],"git":{"createdTime":1721984526000,"updatedTime":1722305343000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":5}]},"readingTime":{"minutes":0.51,"words":152},"filePathRelative":"guide/config/introduction.md","localizedDate":"2024年7月26日","excerpt":"\\n

    jzero 支持以下几种场景:

    \\n
      \\n
    • api 项目: 基于 go-zero api 框架, 配置项为 rest
    • \\n
    • rpc 项目: 基于 go-zero zrpc 框架, 配置项为 zrpc
    • \\n
    • gateway 项目: 基于 go-zero gateway 框架以及 zrpc 框架, 配置项为 gatewayzrpc
    • \\n
    \\n

    其中对于基础服务配置项为 rest/zrpc/gateway, 日志配置项为 log

    ","autoDesc":true}');export{s as comp,l as data}; diff --git a/assets/ivm.html-DPRnZKxm.js b/assets/ivm.html-CVD7O9Nb.js similarity index 99% rename from assets/ivm.html-DPRnZKxm.js rename to assets/ivm.html-CVD7O9Nb.js index 00f662fb..4809ab28 100644 --- a/assets/ivm.html-DPRnZKxm.js +++ b/assets/ivm.html-CVD7O9Nb.js @@ -1,4 +1,4 @@ -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as n}from"./app-i_AVB87T.js";const t={};function l(h,i){return n(),e("div",null,i[0]||(i[0]=[a(`

    说明

    接口版本控制功能, 是用来管理服务端的接口版本, 目前仅支持 grpc 场景. 默认会创建 v1 版本, 对应 desc/proto/v1 文件夹中的 proto

    可以通过 ivm 命令自动初始化 v2 版本的接口, 并默认调用 v1 接口逻辑, 这意味着你仅需一条命令, 就可以自动生成 v2 的接口, 后续对 v2 接口继续更改即可

    $ tree desc 
    +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as n}from"./app-CykRD9-9.js";const t={};function l(h,i){return n(),e("div",null,i[0]||(i[0]=[a(`

    说明

    接口版本控制功能, 是用来管理服务端的接口版本, 目前仅支持 grpc 场景. 默认会创建 v1 版本, 对应 desc/proto/v1 文件夹中的 proto

    可以通过 ivm 命令自动初始化 v2 版本的接口, 并默认调用 v1 接口逻辑, 这意味着你仅需一条命令, 就可以自动生成 v2 的接口, 后续对 v2 接口继续更改即可

    $ tree desc 
     desc
     └── proto
         ├── v1
    diff --git a/assets/jzero.html-wilYoJzH.js b/assets/jzero.html-1sFP92P9.js
    similarity index 99%
    rename from assets/jzero.html-wilYoJzH.js
    rename to assets/jzero.html-1sFP92P9.js
    index ca9a5162..03cea5ac 100644
    --- a/assets/jzero.html-wilYoJzH.js
    +++ b/assets/jzero.html-1sFP92P9.js
    @@ -1,4 +1,4 @@
    -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as l}from"./app-i_AVB87T.js";const n={};function t(h,i){return l(),e("div",null,i[0]||(i[0]=[a(`

    jzero 命令一览

    • check: 一键安装所有所需的工具
    • new: 基于模板新建一个完整的项目
    • gen: 生成服务端代码
      • gen sdk: 生成 http 客户端 sdk
      • gen zrpcclient: 生成 zrpc 客户端 sdk
      • gen swagger: 生成 swagger.json
      • gen doc: 生成 markdown 等文档
    • ivm: 接口版本管理
      • ivm init: 初始化新版本代码
      • ivm add: 新增可描述文件
        • ivm add api: 新增 api 文件
        • ivm add proto: 新增 proto 文件
    • template: 模板功能
      • template init: 将模板下载到本地磁盘
      • template build: 将当前项目编译成 jzero 可使用的模板
    • upgrade: 更新 jzero

    获取更多信息

    jzero -h

    基于配置文件使用 jzero

    提示

    jzero version >= v0.23.0

    默认使用当前项目 .jzero.yaml 文件

    由于各个命令 flag 众多, 使用起来较为麻烦, 可通过配置文件启动 jzero 命令, 使用起来更为简洁

    yaml 的编写规则是与命令行工具相匹配的, 如 gen sdk 命令下的 goModule flag 就写入 yaml gen.sdk.goModule 配置中

    如果是 persistent_flag, 则需要写入到对应命令下的配置中, 如 gen sdk 命令下的 style flag, 需要定义 style 到 gen 配置中

    其他命令类同

    syntax: v1
    +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as l}from"./app-CykRD9-9.js";const n={};function t(h,i){return l(),e("div",null,i[0]||(i[0]=[a(`

    jzero 命令一览

    • check: 一键安装所有所需的工具
    • new: 基于模板新建一个完整的项目
    • gen: 生成服务端代码
      • gen sdk: 生成 http 客户端 sdk
      • gen zrpcclient: 生成 zrpc 客户端 sdk
      • gen swagger: 生成 swagger.json
      • gen doc: 生成 markdown 等文档
    • ivm: 接口版本管理
      • ivm init: 初始化新版本代码
      • ivm add: 新增可描述文件
        • ivm add api: 新增 api 文件
        • ivm add proto: 新增 proto 文件
    • template: 模板功能
      • template init: 将模板下载到本地磁盘
      • template build: 将当前项目编译成 jzero 可使用的模板
    • upgrade: 更新 jzero

    获取更多信息

    jzero -h

    基于配置文件使用 jzero

    提示

    jzero version >= v0.23.0

    默认使用当前项目 .jzero.yaml 文件

    由于各个命令 flag 众多, 使用起来较为麻烦, 可通过配置文件启动 jzero 命令, 使用起来更为简洁

    yaml 的编写规则是与命令行工具相匹配的, 如 gen sdk 命令下的 goModule flag 就写入 yaml gen.sdk.goModule 配置中

    如果是 persistent_flag, 则需要写入到对应命令下的配置中, 如 gen sdk 命令下的 style flag, 需要定义 style 到 gen 配置中

    其他命令类同

    syntax: v1
     
     gen:
       style: go_zero
    diff --git a/assets/limit.html-CyKCJhSd.js b/assets/limit.html-DhZ2l6Ko.js
    similarity index 98%
    rename from assets/limit.html-CyKCJhSd.js
    rename to assets/limit.html-DhZ2l6Ko.js
    index a664a8b7..50e813e8 100644
    --- a/assets/limit.html-CyKCJhSd.js
    +++ b/assets/limit.html-DhZ2l6Ko.js
    @@ -1,3 +1,3 @@
    -import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,a,o as s}from"./app-i_AVB87T.js";const n={};function l(r,e){return s(),t("div",null,e[0]||(e[0]=[a(`

    rest

    修改 etc/etc.yaml, 增加以下配置, 设置最大 qps 100

    rest:
    +import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,a,o as s}from"./app-CykRD9-9.js";const n={};function l(r,e){return s(),t("div",null,e[0]||(e[0]=[a(`

    rest

    修改 etc/etc.yaml, 增加以下配置, 设置最大 qps 100

    rest:
       maxConns: 100

    gateway

    修改 etc/etc.yaml, 增加以下配置, 设置最大 qps 100

    gateway:
       maxConns: 100
    `,6)]))}const p=i(n,[["render",l],["__file","limit.html.vue"]]),o=JSON.parse('{"path":"/guide/config/limit.html","title":"限流配置","lang":"zh-CN","frontmatter":{"title":"限流配置","icon":"mdi:car-speed-limiter","star":true,"order":6,"category":"配置","tag":["Guide"],"description":"rest 修改 etc/etc.yaml, 增加以下配置, 设置最大 qps 100 gateway 修改 etc/etc.yaml, 增加以下配置, 设置最大 qps 100","head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/guide/config/limit.html"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"限流配置"}],["meta",{"property":"og:description","content":"rest 修改 etc/etc.yaml, 增加以下配置, 设置最大 qps 100 gateway 修改 etc/etc.yaml, 增加以下配置, 设置最大 qps 100"}],["meta",{"property":"og:type","content":"article"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:updated_time","content":"2024-07-30T02:09:03.000Z"}],["meta",{"property":"article:author","content":"jaronnie"}],["meta",{"property":"article:tag","content":"Guide"}],["meta",{"property":"article:modified_time","content":"2024-07-30T02:09:03.000Z"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"Article\\",\\"headline\\":\\"限流配置\\",\\"image\\":[\\"\\"],\\"dateModified\\":\\"2024-07-30T02:09:03.000Z\\",\\"author\\":[{\\"@type\\":\\"Person\\",\\"name\\":\\"jaronnie\\",\\"url\\":\\"https://github.com/jaronnie\\"}]}"]]},"headers":[{"level":2,"title":"rest","slug":"rest","link":"#rest","children":[]},{"level":2,"title":"gateway","slug":"gateway","link":"#gateway","children":[]}],"git":{"createdTime":1713525118000,"updatedTime":1722305343000,"contributors":[{"name":"jaronnie","email":"jaron@jaronnie.com","commits":14}]},"readingTime":{"minutes":0.2,"words":59},"filePathRelative":"guide/config/limit.md","localizedDate":"2024年4月19日","excerpt":"

    rest

    \\n

    修改 etc/etc.yaml, 增加以下配置, 设置最大 qps 100

    \\n
    rest:\\n  maxConns: 100
    \\n
    ","autoDesc":true}');export{p as comp,o as data}; diff --git a/assets/log.html-5GKmNjmA.js b/assets/log.html-Bczu5ACN.js similarity index 99% rename from assets/log.html-5GKmNjmA.js rename to assets/log.html-Bczu5ACN.js index e0122c39..1c60cfb9 100644 --- a/assets/log.html-5GKmNjmA.js +++ b/assets/log.html-Bczu5ACN.js @@ -1,4 +1,4 @@ -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as e,o as n}from"./app-i_AVB87T.js";const t={};function l(p,i){return n(),a("div",null,i[0]||(i[0]=[e(`

    修改 etc/etc.yaml, 增加以下配置

    log:
    +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as e,o as n}from"./app-CykRD9-9.js";const t={};function l(p,i){return n(),a("div",null,i[0]||(i[0]=[e(`

    修改 etc/etc.yaml, 增加以下配置

    log:
       keepDays: 30
       level: info
       maxBackups: 7
    diff --git a/assets/log.html-DqgoM-LB.js b/assets/log.html-BqxiG7x-.js
    similarity index 99%
    rename from assets/log.html-DqgoM-LB.js
    rename to assets/log.html-BqxiG7x-.js
    index 832f15e2..00fed6de 100644
    --- a/assets/log.html-DqgoM-LB.js
    +++ b/assets/log.html-BqxiG7x-.js
    @@ -1,4 +1,4 @@
    -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as n,o as l}from"./app-i_AVB87T.js";const h={};function t(k,i){return l(),a("div",null,i[0]||(i[0]=[n(`
    func (l *DownloadLogic) Download(req *types.DownloadRequest) error {
    +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as n,o as l}from"./app-CykRD9-9.js";const h={};function t(k,i){return l(),a("div",null,i[0]||(i[0]=[n(`
    func (l *DownloadLogic) Download(req *types.DownloadRequest) error {
         l.Logger.Infof("download req: %v", req)
     
         body, err := os.ReadFile(filepath.Join("./filedata", req.File))
    diff --git a/assets/new.html-CRsC_KB9.js b/assets/new.html-BolyTBF0.js
    similarity index 99%
    rename from assets/new.html-CRsC_KB9.js
    rename to assets/new.html-BolyTBF0.js
    index fb384fed..efc3126c 100644
    --- a/assets/new.html-CRsC_KB9.js
    +++ b/assets/new.html-BolyTBF0.js
    @@ -1,4 +1,4 @@
    -import{_ as k}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as d,a as r,b as n,w as t,e as i,r as p,o as g,d as a}from"./app-i_AVB87T.js";const o={};function y(c,s){const h=p("CodeTabs");return g(),d("div",null,[s[20]||(s[20]=r(`

    说明

    新建项目基于模板文件进行构建, 默认模板规范如下:

    如果构建自己的模板, app 文件夹是必须的

    由于新建项目完全基于模板文件, 这意味这你可以构建任意框架的代码作为模板, 默认使用 go-zero 框架

    默认远程模板仓库: https://github.com/jzero-io/templates

    新建项目命令参数

    $ jzero new -h                                           
    +import{_ as k}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as d,a as r,b as n,w as t,e as i,r as p,o as g,d as a}from"./app-CykRD9-9.js";const o={};function y(c,s){const h=p("CodeTabs");return g(),d("div",null,[s[20]||(s[20]=r(`

    说明

    新建项目基于模板文件进行构建, 默认模板规范如下:

    如果构建自己的模板, app 文件夹是必须的

    由于新建项目完全基于模板文件, 这意味这你可以构建任意框架的代码作为模板, 默认使用 go-zero 框架

    默认远程模板仓库: https://github.com/jzero-io/templates

    新建项目命令参数

    $ jzero new -h                                           
     jzero new project
     
     Usage:
    diff --git a/assets/prometheus.html-2LOXfUW-.js b/assets/prometheus.html-C9h0tPXR.js
    similarity index 99%
    rename from assets/prometheus.html-2LOXfUW-.js
    rename to assets/prometheus.html-C9h0tPXR.js
    index 023e6686..bcfa61d1 100644
    --- a/assets/prometheus.html-2LOXfUW-.js
    +++ b/assets/prometheus.html-C9h0tPXR.js
    @@ -1,4 +1,4 @@
    -import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as s,a,o as t}from"./app-i_AVB87T.js";const n={};function l(r,e){return t(),s("div",null,e[0]||(e[0]=[a(`

    rest

    修改 etc/etc.yaml, 增加以下配置

    rest:
    +import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as s,a,o as t}from"./app-CykRD9-9.js";const n={};function l(r,e){return t(),s("div",null,e[0]||(e[0]=[a(`

    rest

    修改 etc/etc.yaml, 增加以下配置

    rest:
       devServer:
         enabled: true

    zrpc

    修改 etc/etc.yaml, 增加以下配置

    zrpc:
       devServer:
    diff --git a/assets/proto.html-DuBQfelr.js b/assets/proto.html-GouWPghd.js
    similarity index 99%
    rename from assets/proto.html-DuBQfelr.js
    rename to assets/proto.html-GouWPghd.js
    index 2a951fff..ad35395f 100644
    --- a/assets/proto.html-DuBQfelr.js
    +++ b/assets/proto.html-GouWPghd.js
    @@ -1,4 +1,4 @@
    -import{_ as k}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as p,a as h,b as r,w as l,r as d,o as g,d as s,e as i}from"./app-i_AVB87T.js";const B={};function o(c,a){const t=d("CodeTabs");return g(),p("div",null,[a[6]||(a[6]=h('

    jzero 支持多 proto 进行管理 proto(goctl 原生工具不支持).

    jzero 在自动生成代码的时候会自动识别 daemon/desc/proto 下的文件并自动注册到 zrpc 上. jzero 默认支持对 proto 的字段校验, 使用 protoc-gen-validate.

    jzero 框架的理念是:

    • 不同模块分在不同的 proto 文件下. 如一个系统, 凭证模块即 credential.proto, 主机模块即 machine.proto.
    • 每个 proto 文件可以有多个 service. 对于复杂模块可以使用多个 service.
    • 应该考虑接口版本控制, 如 v1/hello.proto, v2/hello_v2.proto

    jzero 中 proto 规范:

    • proto 文件引用规范: 依据于 go-zero 的 proto 规范, 即 service 的 rpc 方法中入参和出参的 proto 不能是 import 的 proto 文件中的 message, 只能在当前文件

    proto 文件示例

    ',6)),r(t,{id:"38",data:[{id:"credential.proto"},{id:"machine.proto"},{id:"chain.proto(最复杂场景 proto 多 service)"}]},{title0:l(({value:n,isActive:e})=>a[0]||(a[0]=[s("credential.proto")])),title1:l(({value:n,isActive:e})=>a[1]||(a[1]=[s("machine.proto")])),title2:l(({value:n,isActive:e})=>a[2]||(a[2]=[s("chain.proto(最复杂场景 proto 多 service)")])),tab0:l(({value:n,isActive:e})=>a[3]||(a[3]=[i("div",{class:"language-protobuf line-numbers-mode","data-highlighter":"shiki","data-ext":"protobuf","data-title":"protobuf",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#C678DD"}},"syntax"),i("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#56B6C2"}}," ="),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}},' "proto3"'),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}},";")]),s(` +import{_ as k}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as p,a as h,b as r,w as l,r as d,o as g,d as s,e as i}from"./app-CykRD9-9.js";const B={};function o(c,a){const t=d("CodeTabs");return g(),p("div",null,[a[6]||(a[6]=h('

    jzero 支持多 proto 进行管理 proto(goctl 原生工具不支持).

    jzero 在自动生成代码的时候会自动识别 daemon/desc/proto 下的文件并自动注册到 zrpc 上. jzero 默认支持对 proto 的字段校验, 使用 protoc-gen-validate.

    jzero 框架的理念是:

    • 不同模块分在不同的 proto 文件下. 如一个系统, 凭证模块即 credential.proto, 主机模块即 machine.proto.
    • 每个 proto 文件可以有多个 service. 对于复杂模块可以使用多个 service.
    • 应该考虑接口版本控制, 如 v1/hello.proto, v2/hello_v2.proto

    jzero 中 proto 规范:

    • proto 文件引用规范: 依据于 go-zero 的 proto 规范, 即 service 的 rpc 方法中入参和出参的 proto 不能是 import 的 proto 文件中的 message, 只能在当前文件

    proto 文件示例

    ',6)),r(t,{id:"38",data:[{id:"credential.proto"},{id:"machine.proto"},{id:"chain.proto(最复杂场景 proto 多 service)"}]},{title0:l(({value:n,isActive:e})=>a[0]||(a[0]=[s("credential.proto")])),title1:l(({value:n,isActive:e})=>a[1]||(a[1]=[s("machine.proto")])),title2:l(({value:n,isActive:e})=>a[2]||(a[2]=[s("chain.proto(最复杂场景 proto 多 service)")])),tab0:l(({value:n,isActive:e})=>a[3]||(a[3]=[i("div",{class:"language-protobuf line-numbers-mode","data-highlighter":"shiki","data-ext":"protobuf","data-title":"protobuf",style:{"--shiki-light":"#24292e","--shiki-dark":"#abb2bf","--shiki-light-bg":"#fff","--shiki-dark-bg":"#282c34"}},[i("pre",{class:"shiki shiki-themes github-light one-dark-pro vp-code"},[i("code",null,[i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#C678DD"}},"syntax"),i("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#56B6C2"}}," ="),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}},' "proto3"'),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}},";")]),s(` `),i("span",{class:"line"}),s(` `),i("span",{class:"line"},[i("span",{style:{"--shiki-light":"#D73A49","--shiki-dark":"#C678DD"}},"package"),i("span",{style:{"--shiki-light":"#032F62","--shiki-dark":"#98C379"}}," credentialpb"),i("span",{style:{"--shiki-light":"#24292E","--shiki-dark":"#ABB2BF"}},";")]),s(` `),i("span",{class:"line"}),s(` diff --git a/assets/star.html-BW2b8fXo.js b/assets/star.html-CENyG7R6.js similarity index 94% rename from assets/star.html-BW2b8fXo.js rename to assets/star.html-CENyG7R6.js index c96455d1..a5b10ecb 100644 --- a/assets/star.html-BW2b8fXo.js +++ b/assets/star.html-CENyG7R6.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as r}from"./app-i_AVB87T.js";const a={};function o(n,p){return r(),t("div")}const c=e(a,[["render",o],["__file","star.html.vue"]]),i=JSON.parse('{"path":"/star","title":"星标","lang":"zh-CN","frontmatter":{"title":"星标","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"star"},"layout":"BlogType","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/star"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/star"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"星标"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"星标\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{c as comp,i as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as r}from"./app-CykRD9-9.js";const a={};function o(n,p){return r(),t("div")}const c=e(a,[["render",o],["__file","star.html.vue"]]),i=JSON.parse('{"path":"/star","title":"星标","lang":"zh-CN","frontmatter":{"title":"星标","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"star"},"layout":"BlogType","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/star"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/star"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"星标"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"星标\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{c as comp,i as data}; diff --git a/assets/star.html-D7_AXg2a.js b/assets/star.html-zvt9Tgnb.js similarity index 93% rename from assets/star.html-D7_AXg2a.js rename to assets/star.html-zvt9Tgnb.js index c81ea5d5..e74ec9dc 100644 --- a/assets/star.html-D7_AXg2a.js +++ b/assets/star.html-zvt9Tgnb.js @@ -1 +1 @@ -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as r}from"./app-i_AVB87T.js";const a={};function o(n,p){return r(),t("div")}const i=e(a,[["render",o],["__file","star.html.vue"]]),l=JSON.parse('{"path":"/en/star","title":"Star","lang":"zh-CN","frontmatter":{"title":"Star","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"star"},"layout":"BlogType","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/star"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Star"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Star\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,l as data}; +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as r}from"./app-CykRD9-9.js";const a={};function o(n,p){return r(),t("div")}const i=e(a,[["render",o],["__file","star.html.vue"]]),l=JSON.parse('{"path":"/en/star","title":"Star","lang":"zh-CN","frontmatter":{"title":"Star","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"type","key":"star"},"layout":"BlogType","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/star"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Star"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Star\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,l as data}; diff --git a/assets/swagger.html-Dj4yDr0W.js b/assets/swagger.html-DLUKzObB.js similarity index 99% rename from assets/swagger.html-Dj4yDr0W.js rename to assets/swagger.html-DLUKzObB.js index 3a822960..ac001fef 100644 --- a/assets/swagger.html-Dj4yDr0W.js +++ b/assets/swagger.html-DLUKzObB.js @@ -1,4 +1,4 @@ -import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as e,o as n}from"./app-i_AVB87T.js";const t={};function l(r,s){return n(),a("div",null,s[0]||(s[0]=[e(`

    1. 为什么我的 proto 字段是 order_id 但是生成的 swagger 是 orderId, 如何解决?

    syntax = "proto3";
    +import{_ as i}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as e,o as n}from"./app-CykRD9-9.js";const t={};function l(r,s){return n(),a("div",null,s[0]||(s[0]=[e(`

    1. 为什么我的 proto 字段是 order_id 但是生成的 swagger 是 orderId, 如何解决?

    syntax = "proto3";
     
     message GetOrderRequest {
         int32 order_id = 2;
    diff --git a/assets/tag.html-DJLmQWNw.js b/assets/tag.html-D5cmFYtf.js
    similarity index 94%
    rename from assets/tag.html-DJLmQWNw.js
    rename to assets/tag.html-D5cmFYtf.js
    index 30412ca8..a34630d7 100644
    --- a/assets/tag.html-DJLmQWNw.js
    +++ b/assets/tag.html-D5cmFYtf.js
    @@ -1 +1 @@
    -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-i_AVB87T.js";const o={};function r(n,l){return a(),t("div")}const i=e(o,[["render",r],["__file","tag.html.vue"]]),s=JSON.parse('{"path":"/tag","title":"标签","lang":"zh-CN","frontmatter":{"title":"标签","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/tag"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,s as data};
    +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-CykRD9-9.js";const o={};function r(n,l){return a(),t("div")}const i=e(o,[["render",r],["__file","tag.html.vue"]]),s=JSON.parse('{"path":"/tag","title":"标签","lang":"zh-CN","frontmatter":{"title":"标签","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["link",{"rel":"alternate","hreflang":"en-us","href":"https://jzero.jaronnie.com/en/tag"}],["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/tag"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"标签"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"og:locale:alternate","content":"en-US"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"标签\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{i as comp,s as data};
    diff --git a/assets/tag.html-Bhro9y0c.js b/assets/tag.html-DMRJgkRx.js
    similarity index 93%
    rename from assets/tag.html-Bhro9y0c.js
    rename to assets/tag.html-DMRJgkRx.js
    index f75f9c9c..4ad2a7ea 100644
    --- a/assets/tag.html-Bhro9y0c.js
    +++ b/assets/tag.html-DMRJgkRx.js
    @@ -1 +1 @@
    -import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-i_AVB87T.js";const o={};function r(n,c){return a(),t("div")}const l=e(o,[["render",r],["__file","tag.html.vue"]]),s=JSON.parse('{"path":"/en/tag","title":"Tag","lang":"zh-CN","frontmatter":{"title":"Tag","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/tag"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Tag"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Tag\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data};
    +import{_ as e}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as t,o as a}from"./app-CykRD9-9.js";const o={};function r(n,c){return a(),t("div")}const l=e(o,[["render",r],["__file","tag.html.vue"]]),s=JSON.parse('{"path":"/en/tag","title":"Tag","lang":"zh-CN","frontmatter":{"title":"Tag","dir":{"index":false},"index":false,"feed":false,"sitemap":false,"blog":{"type":"category","key":"tag"},"layout":"BlogCategory","gitInclude":[],"head":[["meta",{"property":"og:url","content":"https://jzero.jaronnie.com/en/tag"}],["meta",{"property":"og:site_name","content":"Jzero Framework"}],["meta",{"property":"og:title","content":"Tag"}],["meta",{"property":"og:type","content":"website"}],["meta",{"property":"og:locale","content":"zh-CN"}],["meta",{"property":"article:author","content":"jaronnie"}],["script",{"type":"application/ld+json"},"{\\"@context\\":\\"https://schema.org\\",\\"@type\\":\\"WebPage\\",\\"name\\":\\"Tag\\"}"]]},"headers":[],"git":{},"readingTime":{"minutes":0,"words":0},"filePathRelative":null,"excerpt":""}');export{l as comp,s as data};
    diff --git a/assets/telemetry.html-zpi3ydaZ.js b/assets/telemetry.html-vJpQFaiS.js
    similarity index 99%
    rename from assets/telemetry.html-zpi3ydaZ.js
    rename to assets/telemetry.html-vJpQFaiS.js
    index d82a03fb..7667ab12 100644
    --- a/assets/telemetry.html-zpi3ydaZ.js
    +++ b/assets/telemetry.html-vJpQFaiS.js
    @@ -1,4 +1,4 @@
    -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as e,o as n}from"./app-i_AVB87T.js";const t={};function l(h,i){return n(),a("div",null,i[0]||(i[0]=[e(`

    rest

    修改 etc/etc.yaml 添加一下内容

    rest:
    +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as a,a as e,o as n}from"./app-CykRD9-9.js";const t={};function l(h,i){return n(),a("div",null,i[0]||(i[0]=[e(`

    rest

    修改 etc/etc.yaml 添加一下内容

    rest:
       telemetry:
         name: "your_project-rpc"
         endpoint: "http://jaeger:14268/api/traces"
    diff --git a/assets/template.html-CPhrUoEH.js b/assets/template.html-BAuUZSJU.js
    similarity index 99%
    rename from assets/template.html-CPhrUoEH.js
    rename to assets/template.html-BAuUZSJU.js
    index 118d03a1..ce383aee 100644
    --- a/assets/template.html-CPhrUoEH.js
    +++ b/assets/template.html-BAuUZSJU.js
    @@ -1,4 +1,4 @@
    -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as t}from"./app-i_AVB87T.js";const n={};function l(h,i){return t(),e("div",null,i[0]||(i[0]=[a(`

    jzero gen 生成代码, 仍然是依赖于 goctl 工具.

    # 初始化的模板位置: ~/.jzero/$Version 下, 可以修改模板后再进行新建项目
    +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as t}from"./app-CykRD9-9.js";const n={};function l(h,i){return t(),e("div",null,i[0]||(i[0]=[a(`

    jzero gen 生成代码, 仍然是依赖于 goctl 工具.

    # 初始化的模板位置: ~/.jzero/$Version 下, 可以修改模板后再进行新建项目
     jzero template init
     # 或者初始化模板到当前项目, jzero gen 默认会优先读取当前项目的 .template 作为模板 home
     jzero template init --output .template
    diff --git a/assets/timeout.html-Ze1Dj6Gs.js b/assets/timeout.html-BZjO8fdq.js
    similarity index 99%
    rename from assets/timeout.html-Ze1Dj6Gs.js
    rename to assets/timeout.html-BZjO8fdq.js
    index 03de0cc4..f5a4a90e 100644
    --- a/assets/timeout.html-Ze1Dj6Gs.js
    +++ b/assets/timeout.html-BZjO8fdq.js
    @@ -1,4 +1,4 @@
    -import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as t}from"./app-i_AVB87T.js";const n={};function l(h,i){return t(),e("div",null,i[0]||(i[0]=[a(`

    rest

    修改 etc/etc.yaml, 增加以下配置

    rest:
    +import{_ as s}from"./plugin-vue_export-helper-DlAUqK2U.js";import{c as e,a,o as t}from"./app-CykRD9-9.js";const n={};function l(h,i){return t(),e("div",null,i[0]||(i[0]=[a(`

    rest

    修改 etc/etc.yaml, 增加以下配置

    rest:
       timeout: 10000 # 10s

    zrpc

    修改 etc/etc.yaml, 增加以下配置

    zrpc:
       timeout: 10000 # 10s

    gateway

    修改 etc/etc.yaml, 增加以下配置

    gateway:
       timeout: 10000 # 10s
    diff --git a/category.html b/category.html
    index 99073a81..59f47c0c 100644
    --- a/category.html
    +++ b/category.html
    @@ -30,11 +30,11 @@
         
         Jzero Framework
         
    -    
    -    
    +    
    +    
       
       
    -    
    -    
    +    
    +    
       
     
    diff --git a/category/contribute/index.html b/category/contribute/index.html
    index 33807f25..d7cf07f8 100644
    --- a/category/contribute/index.html
    +++ b/category/contribute/index.html
    @@ -30,8 +30,8 @@
         
         contribute 分类 | Jzero Framework
         
    -    
    -    
    +    
    +    
       
       
         
    -    
    +    
       
     
    diff --git a/category/faq/index.html b/category/faq/index.html
    index 33d39f00..94a556b5 100644
    --- a/category/faq/index.html
    +++ b/category/faq/index.html
    @@ -30,8 +30,8 @@
         
         faq 分类 | Jzero Framework
         
    -    
    -    
    +    
    +    
       
       
         

    jaronnie小于 1 分钟faqfaq
    - + diff --git a/category/project/index.html b/category/project/index.html index 09d194a1..9e84e7dd 100644 --- a/category/project/index.html +++ b/category/project/index.html @@ -30,8 +30,8 @@ project 分类 | Jzero Framework - - + +

    jaronnie大约 2 分钟projectGuide
    - + diff --git a/category/roadmap/index.html b/category/roadmap/index.html index fc1a6cdb..89f4c32a 100644 --- a/category/roadmap/index.html +++ b/category/roadmap/index.html @@ -30,8 +30,8 @@ roadmap 分类 | Jzero Framework - - + + - + diff --git "a/category/\345\274\200\345\217\221/index.html" "b/category/\345\274\200\345\217\221/index.html" index 06e2f472..df5641ab 100644 --- "a/category/\345\274\200\345\217\221/index.html" +++ "b/category/\345\274\200\345\217\221/index.html" @@ -30,8 +30,8 @@ 开发 分类 | Jzero Framework - - + + - + diff --git "a/category/\351\205\215\347\275\256/index.html" "b/category/\351\205\215\347\275\256/index.html" index a7c561ec..cdb976b7 100644 --- "a/category/\351\205\215\347\275\256/index.html" +++ "b/category/\351\205\215\347\275\256/index.html" @@ -30,8 +30,8 @@ 配置 分类 | Jzero Framework - - + + - + diff --git a/en/article/index.html b/en/article/index.html index 060c5085..1a1711d8 100644 --- a/en/article/index.html +++ b/en/article/index.html @@ -30,8 +30,8 @@ Articles | Jzero Framework - - + +
    Skip to main content
    - + diff --git a/en/category.html b/en/category.html index 4ce53b16..ebf13dc4 100644 --- a/en/category.html +++ b/en/category.html @@ -30,11 +30,11 @@ Jzero Framework - - + + - - + + diff --git a/en/index.html b/en/index.html index 2018d34f..71eee957 100644 --- a/en/index.html +++ b/en/index.html @@ -30,8 +30,8 @@ Home | Jzero Framework - - + +
    Skip to main content
    - + diff --git a/en/star.html b/en/star.html index 05ccdd46..173280e3 100644 --- a/en/star.html +++ b/en/star.html @@ -30,11 +30,11 @@ Jzero Framework - - + + - - +
    Skip to main content
    + diff --git a/en/tag.html b/en/tag.html index d2935070..805d7cc0 100644 --- a/en/tag.html +++ b/en/tag.html @@ -30,11 +30,11 @@ Jzero Framework - - + + - - +
    Skip to main content
    + diff --git a/en/timeline/index.html b/en/timeline/index.html index 904f0f22..7d4a8b9e 100644 --- a/en/timeline/index.html +++ b/en/timeline/index.html @@ -30,11 +30,11 @@ Timeline | Jzero Framework - - + + - + diff --git a/faq/index.html b/faq/index.html index fc9f4f82..89ec184f 100644 --- a/faq/index.html +++ b/faq/index.html @@ -30,11 +30,11 @@ 问题与解决 | Jzero Framework - - + + - + diff --git a/faq/swagger.html b/faq/swagger.html index 5abcb7e2..e4600ed2 100644 --- a/faq/swagger.html +++ b/faq/swagger.html @@ -30,8 +30,8 @@ swagger 问题 | Jzero Framework - - + + - + diff --git a/guide/check.html b/guide/check.html index bf7d8632..4f0b16b1 100644 --- a/guide/check.html +++ b/guide/check.html @@ -30,8 +30,8 @@ 环境准备 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/config/etcd.html b/guide/config/etcd.html index 18a2be56..a4c1e4c2 100644 --- a/guide/config/etcd.html +++ b/guide/config/etcd.html @@ -30,8 +30,8 @@ etcd 配置 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/config/index.html b/guide/config/index.html index f72336e7..18644e58 100644 --- a/guide/config/index.html +++ b/guide/config/index.html @@ -30,11 +30,11 @@ 服务端配置 | Jzero Framework - - + + - + diff --git a/guide/config/introduction.html b/guide/config/introduction.html index 74d1e391..fb02d429 100644 --- a/guide/config/introduction.html +++ b/guide/config/introduction.html @@ -30,11 +30,11 @@ 配置说明 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/config/limit.html b/guide/config/limit.html index 6eab245c..ce12db14 100644 --- a/guide/config/limit.html +++ b/guide/config/limit.html @@ -30,13 +30,13 @@ 限流配置 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/config/log.html b/guide/config/log.html index d4d73508..618a5fe6 100644 --- a/guide/config/log.html +++ b/guide/config/log.html @@ -30,8 +30,8 @@ 日志配置 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/config/prometheus.html b/guide/config/prometheus.html index a25973a5..c5134d3a 100644 --- a/guide/config/prometheus.html +++ b/guide/config/prometheus.html @@ -30,8 +30,8 @@ prometheus 配置 | Jzero Framework - - + + - + diff --git a/guide/config/telemetry.html b/guide/config/telemetry.html index 9ab01907..e3698e86 100644 --- a/guide/config/telemetry.html +++ b/guide/config/telemetry.html @@ -30,8 +30,8 @@ 链路追踪配置 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/config/timeout.html b/guide/config/timeout.html index 4e1b4558..00b382af 100644 --- a/guide/config/timeout.html +++ b/guide/config/timeout.html @@ -30,8 +30,8 @@ 超时配置 | Jzero Framework - - + + - + diff --git a/guide/contribute.html b/guide/contribute.html index 6869aa1a..b6a70c9f 100644 --- a/guide/contribute.html +++ b/guide/contribute.html @@ -30,8 +30,8 @@ 贡献指南 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/deploy/image.html b/guide/deploy/image.html index 779d8358..cff9b12f 100644 --- a/guide/deploy/image.html +++ b/guide/deploy/image.html @@ -30,13 +30,13 @@ 镜像制作与推送 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/deploy/index.html b/guide/deploy/index.html index bcb93b37..be3b7650 100644 --- a/guide/deploy/index.html +++ b/guide/deploy/index.html @@ -30,11 +30,11 @@ 部署 | Jzero Framework - - + + - + diff --git a/guide/develop/api.html b/guide/develop/api.html index b7e6ca5e..7e41cd59 100644 --- a/guide/develop/api.html +++ b/guide/develop/api.html @@ -30,8 +30,8 @@ api 教程 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/develop/command.html b/guide/develop/command.html index b46e701d..5fd58769 100644 --- a/guide/develop/command.html +++ b/guide/develop/command.html @@ -30,8 +30,8 @@ 新增 command 教程 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/develop/index.html b/guide/develop/index.html index a94fcfdd..7d8bb38c 100644 --- a/guide/develop/index.html +++ b/guide/develop/index.html @@ -30,11 +30,11 @@ 开发 | Jzero Framework - - + + - + diff --git a/guide/develop/log.html b/guide/develop/log.html index 3ebdd670..bd26b343 100644 --- a/guide/develop/log.html +++ b/guide/develop/log.html @@ -30,8 +30,8 @@ 日志打印规范 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/develop/proto.html b/guide/develop/proto.html index cd206f9c..500e3cbc 100644 --- a/guide/develop/proto.html +++ b/guide/develop/proto.html @@ -30,8 +30,8 @@ proto 教程 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/gen.html b/guide/gen.html index 29b54867..6fb47966 100644 --- a/guide/gen.html +++ b/guide/gen.html @@ -30,8 +30,8 @@ 生成服务端代码 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/gendoc.html b/guide/gendoc.html index 581fa2b2..1bf5d758 100644 --- a/guide/gendoc.html +++ b/guide/gendoc.html @@ -30,11 +30,11 @@ 生成 markdown 等文档 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/gensdk.html b/guide/gensdk.html index 2145c8e9..512b7b45 100644 --- a/guide/gensdk.html +++ b/guide/gensdk.html @@ -30,8 +30,8 @@ 生成客户端 SDK | Jzero Framework - - + + - + diff --git a/guide/genswagger.html b/guide/genswagger.html index e6cf907f..bde45710 100644 --- a/guide/genswagger.html +++ b/guide/genswagger.html @@ -30,8 +30,8 @@ 生成 swagger 文档 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/index.html b/guide/index.html index 7faa8865..e7b3bf2e 100644 --- a/guide/index.html +++ b/guide/index.html @@ -30,11 +30,11 @@ Guide | Jzero Framework - - + + - + diff --git a/guide/ivm.html b/guide/ivm.html index 82a54c0c..e007decb 100644 --- a/guide/ivm.html +++ b/guide/ivm.html @@ -30,8 +30,8 @@ 接口版本控制 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/jzero.html b/guide/jzero.html index 9734ce76..e2f6e63d 100644 --- a/guide/jzero.html +++ b/guide/jzero.html @@ -30,8 +30,8 @@ 命令行说明 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/guide/new.html b/guide/new.html index 21fe07c7..19e241ef 100644 --- a/guide/new.html +++ b/guide/new.html @@ -30,8 +30,8 @@ 新建项目 | Jzero Framework - - + +
    跳至主要內容

    场景三: 基于 go-zero 的 gateway 框架一键构建 gateway 项目

    提示

    即提供 rpc 接口的同时, 提供 http 的方式调用 rpc 服务.

    jzero
    jzero new your_project --branch gateway

    场景四: 同时支持 go-zero api, rpc, gateway

    提示

    能通过 go-zero 的 api 框架编写路由, 同时具备 rpc 服务以及 http 调用 rpc 服务

    这是最复杂的一个场景, jzero 默认模板为这个

    jzero
    jzero new your_project

    场景五: 命令行项目

    提示

    基于 cobra 构建命令行项目

    jzero
    jzero new your_project --branch cli
    - + diff --git a/guide/template.html b/guide/template.html index 20f6b3e3..42ff9c49 100644 --- a/guide/template.html +++ b/guide/template.html @@ -30,8 +30,8 @@ 模版 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/index.html b/index.html index 78c63d6c..0182ad81 100644 --- a/index.html +++ b/index.html @@ -28,10 +28,10 @@ document.documentElement.setAttribute("data-theme", "dark"); } - 首页 | Jzero Framework + 首页 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/project/gateway.html b/project/gateway.html index 16264ba9..bfa70a8e 100644 --- a/project/gateway.html +++ b/project/gateway.html @@ -30,8 +30,8 @@ gateway 项目实战 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/project/index.html b/project/index.html index 7f9b02f2..831da50b 100644 --- a/project/index.html +++ b/project/index.html @@ -30,11 +30,11 @@ 项目实战 | Jzero Framework - - + + - + diff --git a/roadmap/base.html b/roadmap/base.html index e98a8ab6..ed004d18 100644 --- a/roadmap/base.html +++ b/roadmap/base.html @@ -30,11 +30,11 @@ 基础框架 | Jzero Framework - - + +
    跳至主要內容
    - + diff --git a/roadmap/index.html b/roadmap/index.html index d8b33f9a..37b733f0 100644 --- a/roadmap/index.html +++ b/roadmap/index.html @@ -30,11 +30,11 @@ Roadmap | Jzero Framework - - + + - + diff --git a/sitemap.xml b/sitemap.xml index b206d706..fee78030 100644 --- a/sitemap.xml +++ b/sitemap.xml @@ -1,3 +1,3 @@ -https://jzero.jaronnie.com/2024-09-24T07:09:20.000Zdailyhttps://jzero.jaronnie.com/en/2024-08-23T09:14:46.000Zdailyhttps://jzero.jaronnie.com/faq/2024-08-01T03:29:00.000Zdailyhttps://jzero.jaronnie.com/faq/swagger.html2024-08-06T03:06:45.000Zdailyhttps://jzero.jaronnie.com/guide/check.html2024-08-21T10:52:59.000Zdailyhttps://jzero.jaronnie.com/guide/contribute.html2024-09-20T01:30:37.000Zdailyhttps://jzero.jaronnie.com/guide/gen.html2024-08-20T07:02:01.000Zdailyhttps://jzero.jaronnie.com/guide/gendoc.html2024-08-15T08:50:43.000Zdailyhttps://jzero.jaronnie.com/guide/gensdk.html2024-09-13T01:32:32.000Zdailyhttps://jzero.jaronnie.com/guide/genswagger.html2024-08-20T07:02:01.000Zdailyhttps://jzero.jaronnie.com/guide/ivm.html2024-07-08T05:58:53.000Zdailyhttps://jzero.jaronnie.com/guide/jzero.html2024-08-21T10:52:59.000Zdailyhttps://jzero.jaronnie.com/guide/new.html2024-09-19T05:07:12.000Zdailyhttps://jzero.jaronnie.com/guide/template.html2024-08-15T08:50:43.000Zdailyhttps://jzero.jaronnie.com/project/2024-08-01T03:29:00.000Zdailyhttps://jzero.jaronnie.com/project/gateway.html2024-08-13T09:36:12.000Zdailyhttps://jzero.jaronnie.com/roadmap/2024-08-01T03:29:00.000Zdailyhttps://jzero.jaronnie.com/roadmap/base.html2024-08-21T11:03:46.000Zdailyhttps://jzero.jaronnie.com/guide/config/2024-08-07T09:04:29.000Zdailyhttps://jzero.jaronnie.com/guide/config/etcd.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/introduction.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/limit.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/log.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/prometheus.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/telemetry.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/timeout.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/deploy/2024-07-07T15:53:45.000Zdailyhttps://jzero.jaronnie.com/guide/deploy/image.html2024-07-07T15:53:45.000Zdailyhttps://jzero.jaronnie.com/guide/develop/2024-07-07T15:53:45.000Zdailyhttps://jzero.jaronnie.com/guide/develop/api.html2024-08-21T10:05:53.000Zdailyhttps://jzero.jaronnie.com/guide/develop/command.html2024-08-15T08:50:43.000Zdailyhttps://jzero.jaronnie.com/guide/develop/log.html2024-07-07T15:53:45.000Zdailyhttps://jzero.jaronnie.com/guide/develop/proto.html2024-08-15T08:50:43.000Zdaily \ No newline at end of file +https://jzero.jaronnie.com/2024-09-24T07:13:33.000Zdailyhttps://jzero.jaronnie.com/en/2024-08-23T09:14:46.000Zdailyhttps://jzero.jaronnie.com/faq/2024-08-01T03:29:00.000Zdailyhttps://jzero.jaronnie.com/faq/swagger.html2024-08-06T03:06:45.000Zdailyhttps://jzero.jaronnie.com/guide/check.html2024-08-21T10:52:59.000Zdailyhttps://jzero.jaronnie.com/guide/contribute.html2024-09-20T01:30:37.000Zdailyhttps://jzero.jaronnie.com/guide/gen.html2024-08-20T07:02:01.000Zdailyhttps://jzero.jaronnie.com/guide/gendoc.html2024-08-15T08:50:43.000Zdailyhttps://jzero.jaronnie.com/guide/gensdk.html2024-09-13T01:32:32.000Zdailyhttps://jzero.jaronnie.com/guide/genswagger.html2024-08-20T07:02:01.000Zdailyhttps://jzero.jaronnie.com/guide/ivm.html2024-07-08T05:58:53.000Zdailyhttps://jzero.jaronnie.com/guide/jzero.html2024-08-21T10:52:59.000Zdailyhttps://jzero.jaronnie.com/guide/new.html2024-09-19T05:07:12.000Zdailyhttps://jzero.jaronnie.com/guide/template.html2024-08-15T08:50:43.000Zdailyhttps://jzero.jaronnie.com/project/2024-08-01T03:29:00.000Zdailyhttps://jzero.jaronnie.com/project/gateway.html2024-08-13T09:36:12.000Zdailyhttps://jzero.jaronnie.com/roadmap/2024-08-01T03:29:00.000Zdailyhttps://jzero.jaronnie.com/roadmap/base.html2024-08-21T11:03:46.000Zdailyhttps://jzero.jaronnie.com/guide/config/2024-08-07T09:04:29.000Zdailyhttps://jzero.jaronnie.com/guide/config/etcd.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/introduction.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/limit.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/log.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/prometheus.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/telemetry.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/config/timeout.html2024-07-30T02:09:03.000Zdailyhttps://jzero.jaronnie.com/guide/deploy/2024-07-07T15:53:45.000Zdailyhttps://jzero.jaronnie.com/guide/deploy/image.html2024-07-07T15:53:45.000Zdailyhttps://jzero.jaronnie.com/guide/develop/2024-07-07T15:53:45.000Zdailyhttps://jzero.jaronnie.com/guide/develop/api.html2024-08-21T10:05:53.000Zdailyhttps://jzero.jaronnie.com/guide/develop/command.html2024-08-15T08:50:43.000Zdailyhttps://jzero.jaronnie.com/guide/develop/log.html2024-07-07T15:53:45.000Zdailyhttps://jzero.jaronnie.com/guide/develop/proto.html2024-08-15T08:50:43.000Zdaily \ No newline at end of file diff --git a/star.html b/star.html index b8eac57d..c61e330c 100644 --- a/star.html +++ b/star.html @@ -30,11 +30,11 @@ Jzero Framework - - + + -
    跳至主要內容
    - + + diff --git a/tag.html b/tag.html index f00337bf..7644e182 100644 --- a/tag.html +++ b/tag.html @@ -30,11 +30,11 @@ Jzero Framework - - + + - - +
    跳至主要內容
    + diff --git a/tag/contribute/index.html b/tag/contribute/index.html index 78a796dc..331616fe 100644 --- a/tag/contribute/index.html +++ b/tag/contribute/index.html @@ -30,8 +30,8 @@ 标签: contribute | Jzero Framework - - + + - + diff --git a/tag/faq/index.html b/tag/faq/index.html index 9ae344f0..4a0cca59 100644 --- a/tag/faq/index.html +++ b/tag/faq/index.html @@ -30,8 +30,8 @@ 标签: faq | Jzero Framework - - + +
    跳至主要內容

    jaronnie小于 1 分钟faqfaq
    - + diff --git a/tag/guide/index.html b/tag/guide/index.html index 01ce9125..663360c7 100644 --- a/tag/guide/index.html +++ b/tag/guide/index.html @@ -30,8 +30,8 @@ 标签: Guide | Jzero Framework - - + + - + diff --git a/tag/roadmap/index.html b/tag/roadmap/index.html index 4f661349..e59bb307 100644 --- a/tag/roadmap/index.html +++ b/tag/roadmap/index.html @@ -30,8 +30,8 @@ 标签: roadmap | Jzero Framework - - + + - + diff --git a/timeline/index.html b/timeline/index.html index 0bc83d07..4d4b4880 100644 --- a/timeline/index.html +++ b/timeline/index.html @@ -30,11 +30,11 @@ 时间轴 | Jzero Framework - - + + - +