diff --git a/.dockerignore b/.dockerignore deleted file mode 100644 index 27d2dae..0000000 --- a/.dockerignore +++ /dev/null @@ -1,2 +0,0 @@ -*/node_modules -*.log diff --git a/.gitignore b/.gitignore deleted file mode 100644 index fb1087c..0000000 --- a/.gitignore +++ /dev/null @@ -1,14 +0,0 @@ -.DS_Store - -node_modules - -lib/core/metadata.js -lib/core/MetadataBlog.js - -website/translated_docs -website/build/ -website/yarn.lock -website/node_modules -website/i18n/* - -.vscode \ No newline at end of file diff --git a/CNAME b/CNAME new file mode 100644 index 0000000..21c9bd9 --- /dev/null +++ b/CNAME @@ -0,0 +1 @@ +dropkit.org \ No newline at end of file diff --git a/Dockerfile b/Dockerfile deleted file mode 100644 index c7f1856..0000000 --- a/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM node:lts - -WORKDIR /app/website - -EXPOSE 3000 35729 -COPY ./docs /app/docs -COPY ./website /app/website -RUN yarn install - -CMD ["yarn", "start"] diff --git a/css/main.css b/css/main.css new file mode 100644 index 0000000..3a37653 --- /dev/null +++ b/css/main.css @@ -0,0 +1 @@ +a,abbr,acronym,address,applet,article,aside,audio,b,big,blockquote,body,canvas,caption,center,cite,code,dd,del,details,dfn,div,dl,dt,em,embed,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,output,p,pre,q,ruby,s,samp,section,small,span,strike,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,tt,u,ul,var,video{border:0;font:inherit;font-size:100%;margin:0;padding:0;vertical-align:baseline}body{color:#24292e;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;font-size:16px;line-height:1.5;-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;word-wrap:break-word}*{box-sizing:border-box}b,strong{font-weight:600}em,i{font-style:italic}[type=checkbox]{box-sizing:border-box;padding:0}a,a:hover{color:#204b7e;text-decoration:none}a:active,a:hover{outline-width:0}a:not([href]){color:inherit;text-decoration:none}p{margin-bottom:1em;margin-top:0}h1,h2,h3,h4,h5,h6{color:inherit;font-weight:600;line-height:1.25;margin-bottom:16px;margin-top:1.5em}h1{font-size:32px}h2{font-size:24px}h3{font-size:20px}h4{font-size:16px}h5{font-size:14px}h6{font-size:13.6px}ol,ul{margin-bottom:1em;margin-top:0;padding-left:2em}ol ol,ul ol{list-style-type:lower-roman}ol ol,ol ul,ul ol,ul ul{margin-bottom:0;margin-top:0}ol ol ol,ol ul ol,ul ol ol,ul ul ol{list-style-type:lower-alpha}li{word-wrap:break-all}li>p{margin-top:1em}li+li{margin-top:.25em}img{border-style:none;box-sizing:content-box;max-width:100%}img[align=right]{padding-left:1.25em}img[align=left]{padding-right:1.25em}table{border-collapse:collapse;border-spacing:0;display:block;margin-bottom:16px;margin-top:0;overflow:auto;width:100%}table tr{background-color:transparent;border-top:1px solid #dfe2e5}table tr:nth-child(2n){background-color:#f6f8fa}table td,table th{border:1px solid #dfe2e5;padding:6px 13px}table th{background-color:inherit;font-weight:600}table td,table th{color:inherit}blockquote{color:#6a737d;font-size:16px;margin:0 0 16px;padding:0 1em}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}code{background-color:rgba(27,31,35,.05);border-radius:3px;color:inherit;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:85%;margin:0;padding:3.2px 6.4px}pre{margin-bottom:16px}pre code{background-color:transparent;border:0;display:inline;font-size:85%;line-height:inherit;margin:0;max-width:auto;overflow:visible;padding:0;white-space:pre;word-break:normal;word-wrap:normal}kbd{background-color:#fafbfc;border:1px solid #d1d5da;border-bottom-color:#c6cbd1;border-radius:3px;box-shadow:inset 0 -1px 0 #c6cbd1;color:#444d56;display:inline-block;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:68.75%;line-height:10px;padding:3px 5px;vertical-align:middle}hr{border:1px solid #dfe2e5;box-sizing:content-box;margin:1.5em 0;overflow:hidden;padding:0}hr:after,hr:before{content:"";display:table}hr:after{clear:both}body{background-color:#fff;min-height:100vh;text-rendering:optimizeLegibility}@media only screen and (min-width:736px){body{display:flex;flex-direction:column}}article:after,article:before{content:"";display:table}article:after{clear:both}article>:first-child{margin-top:0}article>:last-child{margin-bottom:0}article iframe,article p img{display:block;margin-left:auto;margin-right:auto;max-width:100%}.anchor{display:block;position:relative;top:-80px}.hash-link{line-height:1;margin-left:-20px;opacity:0;padding-right:4px;transition:opacity .3s}.hash-link:hover{opacity:1!important;transition:none}.hash-link .hash-link-icon{vertical-align:middle}.button{border:1px solid #204b7e;border-radius:3px;color:#204b7e;display:inline-block;font-size:14px;font-weight:400;line-height:1.2em;padding:10px;text-decoration:none!important;text-transform:uppercase;transition:background .3s,color .3s}.button:hover{background:#204b7e;color:#fff}h1:hover .hash-link,h2:hover .hash-link,h3:hover .hash-link,h4:hover .hash-link{opacity:.5;transition:none}blockquote{background-color:rgba(255,229,100,.3);border-left:8px solid #ffe564;padding:15px 30px 15px 15px}.wrapper{margin:0 auto;max-width:1100px;padding:0 20px}.wrapper blockquote>p:first-child{padding-top:0}.center{display:block}.center,.homeContainer{text-align:center}.homeContainer .homeWrapper{padding:2em 10px}.homeContainer .homeWrapper .wrapper{margin:0 auto;max-width:900px;padding:0 20px}.homeContainer .homeWrapper .projectLogo img{height:100px;margin-bottom:0}.homeContainer .homeWrapper #project_title{font-size:300%;letter-spacing:-.08em;line-height:1em;margin-bottom:80px}.homeContainer .homeWrapper #project_tagline{font-size:200%;letter-spacing:-.04em;line-height:1em}.projectLogo{display:none;pointer-events:none}.projectLogo img{height:100px;margin-bottom:0}.projectIntro{margin:40px 0}.projectTitle{color:#204b7e;font-size:250%;line-height:1em}.projectTitle>small{display:block;font-weight:400;font-size:50%;line-height:1em;margin:.7em 0 1.3em}@media only screen and (min-width:480px){.projectTitle{font-size:300%;margin:.3em 0}.projectLogo img{height:200px;margin-bottom:10px}.homeContainer .homeWrapper{padding-left:10px;padding-right:10px}}@media only screen and (min-width:736px){.homeContainer .homeWrapper{position:relative}.homeContainer .homeWrapper #inner{max-width:600px;padding-right:40px}}@media only screen and (min-width:1200px){.homeContainer .homeWrapper #inner{max-width:750px}.homeContainer .homeWrapper .projectLogo{align-items:center;bottom:0;display:flex;justify-content:flex-end;left:0;padding:2em 100px 4em;position:absolute;right:0;top:0}.homeContainer .homeWrapper .projectLogo img{height:100%;max-height:250px}}@media only screen and (min-width:1500px){.homeContainer .homeWrapper #inner{max-width:1100px;padding-bottom:40px;padding-top:40px}.wrapper{max-width:1400px}}.mainContainer{flex:1 1 0%;max-width:100%;padding:40px 0}.mainContainer .wrapper{text-align:left}.mainContainer .wrapper .allShareBlock{padding:10px 0}.mainContainer .wrapper .allShareBlock .pluginBlock{margin:12px 0;padding:0}.mainContainer .wrapper .post{position:relative}.mainContainer .wrapper .post.basicPost{margin-top:30px}.mainContainer .wrapper .post .postHeader{margin-bottom:16px}.mainContainer .wrapper .post .postHeaderTitle{margin-top:0;padding:0}.docsContainer .wrapper .post .postHeader:before,.docsContainer .wrapper .post .postHeaderTitle:before{content:"";display:block;height:90px;margin-top:-90px;visibility:hidden;pointer-events:none}.mainContainer .wrapper .post .postSocialPlugins{padding-top:1em}.mainContainer .wrapper .post .docPagination{background:#204b7e;bottom:0;left:0;position:absolute;right:0}.mainContainer .wrapper .post .docPagination .pager{display:inline-block;width:50%}.mainContainer .wrapper .post .docPagination .pagingNext{float:right;text-align:right}.mainContainer .wrapper .post .docPagination a{border:none;color:#fff;display:block;padding:4px 12px}.mainContainer .wrapper .post .docPagination a:hover{background-color:#f9f9f9;color:#393939}.mainContainer .wrapper .post .docPagination a .pagerLabel{display:inline}.mainContainer .wrapper .post .docPagination a .pagerTitle{display:none}@media only screen and (min-width:480px){.mainContainer .wrapper .post .docPagination a .pagerLabel{display:none}.mainContainer .wrapper .post .docPagination a .pagerTitle{display:inline}}@media only screen and (min-width:1024px){.mainContainer .wrapper .post{display:block}.mainContainer .wrapper .posts .post{width:100%}}@media only screen and (max-width:1023px){.docsContainer .wrapper .post .postHeader:before,.docsContainer .wrapper .post .postHeaderTitle:before{content:"";display:block;height:200px;margin-top:-200px;visibility:hidden;pointer-events:none}}.fixedHeaderContainer{background:#204b7e;color:#fff;min-height:50px;padding:8px 0;position:fixed;width:100%;z-index:9999;transform:translateZ(0)}@media only screen and (min-width:1024px){.fixedHeaderContainer{flex-shrink:0}}.fixedHeaderContainer a{align-items:center;border:0;color:#fff;display:flex;flex-flow:row nowrap;height:34px;z-index:10000}.fixedHeaderContainer header{display:flex;flex-flow:row nowrap;position:relative;text-align:left}.fixedHeaderContainer header img{height:100%;margin-right:10px}.fixedHeaderContainer header .headerTitle{font-size:1.25em;margin:0}.fixedHeaderContainer header .headerTitleWithLogo{display:block;font-size:1.25em;line-height:18px;margin:0;position:relative;z-index:9999}.fixedHeaderContainer header h3{color:#fff;font-size:16px;margin:0 0 0 10px;text-decoration:underline}@media (max-width:480px){.headerTitle{font-size:17px}.headerTitleWithLogo{display:none!important}}.promoSection{display:flex;flex-flow:column wrap;font-size:125%;line-height:1.6em;position:relative;z-index:99}.promoSection .promoRow{padding:10px 0}.promoSection .promoRow .pluginWrapper{display:block}.promoSection .promoRow .pluginWrapper.ghStarWrapper,.promoSection .promoRow .pluginWrapper.ghWatchWrapper{height:28px}.promoSection .promoRow .pluginRowBlock{display:flex;flex-wrap:wrap;justify-content:center;margin:0 -2px}.promoSection .promoRow .pluginRowBlock .pluginWrapper{padding:0 2px}.promoSection .promoRow .pluginRowBlock iframe{margin-left:2px;margin-top:5px}input[type=search]{-moz-appearance:none;-webkit-appearance:none}.navSearchWrapper{align-items:center;align-self:center;display:flex;justify-content:center;padding-left:10px;position:absolute;right:10px;top:10px}.navSearchWrapper:before{border:3px solid #e5e5e5;border-radius:50%;content:" ";display:block;height:6px;left:15px;position:absolute;top:50%;transform:translateY(-58%);width:6px;z-index:1}.navSearchWrapper:after{background:#e5e5e5;content:" ";height:7px;left:24px;position:absolute;top:55%;transform:rotate(-45deg);width:3px;z-index:1}.navSearchWrapper .aa-dropdown-menu{background:#f9f9f9;border:3px solid rgba(57,57,57,.25);color:#393939;font-size:14px;left:auto!important;line-height:1.2em;right:0!important}.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--category-header{background:#204b7e;color:#fff;font-size:14px;font-weight:400}.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--category-header .algolia-docsearch-suggestion--highlight{background-color:#204b7e;color:#fff}.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--subcategory-column .algolia-docsearch-suggestion--highlight,.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--title .algolia-docsearch-suggestion--highlight{color:#204b7e}.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion--subcategory-column,.navSearchWrapper .aa-dropdown-menu .algolia-docsearch-suggestion__secondary{border-color:rgba(57,57,57,.3)}input#search_input_react{background-color:rgba(0,0,0,.2);border:none;border-radius:20px;color:#fff;font-size:14px;font-weight:300;line-height:20px;outline:none;padding-left:25px;position:relative;transition:width .5s ease;width:170px}.navSearchWrapper:before{left:24px}.navSearchWrapper:after{left:35px}input#search_input_react:active,input#search_input_react:focus{color:#fff;width:220px}.navigationSlider .slidingNav .navSearchWrapper .algolia-docsearch-footer a{height:auto}@media only screen and (max-width:735px){.navSearchWrapper{width:40%}}input::-webkit-input-placeholder{color:#e5e5e5}input::-moz-placeholder{color:#e5e5e5}input:-ms-input-placeholder{color:#e5e5e5}input::-ms-input-placeholder{color:#e5e5e5}input::placeholder{color:#e5e5e5}.hljs{padding:1.25rem 1.5rem}.gridBlock{padding:0}.gridBlock>*{box-sizing:border-box}.gridBlock .fourByGridBlock img,.gridBlock .threeByGridBlock img,.gridBlock .twoByGridBlock img{max-width:100%}.gridBlock .gridClear{clear:both}@media only screen and (max-width:735px){.gridBlock .fourByGridBlock{flex:1 0 26%}}@media only screen and (min-width:736px){.gridBlock{display:flex;flex-direction:row;flex-wrap:wrap}.gridBlock>*{margin:0 12px}.gridBlock>:first-child{margin-left:0}.gridBlock>:last-child{margin-right:0}.gridBlock .twoByGridBlock{flex:1 0 40%}.gridBlock .threeByGridBlock{flex:1 0 26%}.gridBlock .fourByGridBlock{flex:1 0 20%}h2+.gridBlock{padding-top:20px}}@media only screen and (min-width:1400px){.gridBlock{display:flex;flex-direction:row;flex-wrap:wrap}}.alignCenter{text-align:center}.alignRight{text-align:right}.imageAlignSide{display:flex;flex-flow:row wrap}.blockImage{max-width:730px}.imageAlignSide .blockImage{flex:0 1 500px;max-width:500px}@media only screen and (max-width:735px){.imageAlignSide .blockImage{display:none}}.imageAlignSide .blockContent{flex:1 1}.imageAlignBottom .blockImage{margin:0 auto 20px;max-width:730px}.imageAlignBottom.alignCenter .blockImage{margin-left:auto;margin-right:auto}.imageAlignTop .blockImage{margin-bottom:20px;max-width:80px}.imageAlignTop.alignCenter .blockImage{margin-left:auto;margin-right:auto}.imageAlignRight .blockImage{margin-left:40px}.imageAlignLeft .blockImage{margin-right:40px}.container .gridBlock .blockContent p{padding:0}.container .wrapper .alignCenter h2{text-align:center}.container .wrapper .imageAlignSide h2{text-align:left}.container .wrapper .imageAlignSide p{margin:0 0 40px;max-width:560px}.highlightBackground{background:rgba(153,66,79,.7);color:#fff}.highlightBackground a{font-weight:800}.container.highlightBackground .wrapper h1,.container.highlightBackground .wrapper h2,.container.highlightBackground .wrapper h3,.container.highlightBackground .wrapper h4,.container.highlightBackground .wrapper h5,.highlightBackground a{border-color:#fff;color:#fff}.lightBackground{background:#f7f7f7}.darkBackground{background:grey;color:#fff}.darkBackground a,.darkBackground code{color:#d6b3b8}.container.darkBackground .wrapper h1,.container.darkBackground .wrapper h2,.container.darkBackground .wrapper h3,.container.darkBackground .wrapper h4,.container.darkBackground .wrapper h5{border-color:#fff;color:#fff}.container.paddingAll{padding:40px}.container.paddingBottom{padding-bottom:80px}.container.paddingLeft{padding-left:40px}.container.paddingRight{padding-right:40px}.container.paddingTop{padding-top:80px}@media only screen and (max-width:735px){.container.paddingBottom{padding-bottom:40px}.container.paddingTop{padding-top:20px}}@media only screen and (max-width:1023px){.responsiveList .blockContent{position:relative}.responsiveList .blockContent>div{padding-left:20px}.responsiveList .blockContent:before{content:"\2022";position:absolute}}.navigationSlider .navSlideout{cursor:pointer;padding-top:4px;position:absolute;right:10px;top:0;transition:top .3s;z-index:101}.navigationSlider .slidingNav{bottom:auto;box-sizing:border-box;left:0;position:fixed;right:0;top:0}.navigationSlider .slidingNav.slidingNavActive{height:auto;padding-top:42px;width:300px}.navigationSlider .slidingNav ul{background:#462769;box-sizing:border-box;color:#fff;display:flex;flex-wrap:nowrap;list-style:none;margin-top:50px;padding:0;width:100%}.navigationSlider .slidingNav.slidingNavActive ul{display:block}.navigationSlider .slidingNav ul li{flex:1 1 auto;margin:0;text-align:center;white-space:nowrap}.navigationSlider .slidingNav ul li a{align-items:center;box-sizing:border-box;color:#204b7e;color:inherit;display:flex;font-size:.9em;height:auto;height:50px;justify-content:center;margin:0;padding:10px;transition:background-color .3s}.navigationSlider .slidingNav ul li.siteNavGroupActive>a,.navigationSlider .slidingNav ul li.siteNavItemActive>a,.navigationSlider .slidingNav ul li>a:focus,.navigationSlider .slidingNav ul li>a:hover{background-color:#204b7e}.languages-icon{width:20px}#languages-dropdown{pointer-events:none;position:absolute;width:100%}#languages-dropdown.visible{display:flex}#languages-dropdown.hide{display:none}#languages-dropdown-items{background-color:#204b7e;display:flex;flex-direction:column;min-width:120px;pointer-events:all}#languages li{display:block}.navPusher{left:0;min-height:100%;padding-top:100px;position:relative;z-index:99}.singleRowMobileNav.navPusher{padding-top:50px}.navPusher:after{background:rgba(0,0,0,.4);content:"";height:0;opacity:0;position:absolute;right:0;top:0;transition:opacity .5s,width .1s .5s,height .1s .5s;width:0}@media screen and (min-width:1024px){.navPusher{display:flex;flex-direction:column;min-height:calc(100vh - 50px);padding-top:50px}.navPusher,.navPusher>:first-child{flex-grow:1}}.sliderActive .navPusher:after{height:100%;opacity:1;transition:opacity .5s;width:100%;z-index:100}@media only screen and (max-width:1024px){.reactNavSearchWrapper input#search_input_react{background-color:rgba(242,196,178,.25);border:none;border-radius:20px;box-sizing:border-box;color:#393939;font-size:14px;line-height:20px;outline:none;padding-left:38px;position:relative;transition:background-color .2s cubic-bezier(.68,-.55,.265,1.55),width .2s cubic-bezier(.68,-.55,.265,1.55),color .2s ease;width:100%;height:30px}.reactNavSearchWrapper input#search_input_react:active,.reactNavSearchWrapper input#search_input_react:focus{background-color:#204b7e;color:#fff}.reactNavSearchWrapper .algolia-docsearch-suggestion--subcategory-inline{display:none}.reactNavSearchWrapper>span{width:100%}.reactNavSearchWrapper .aa-dropdown-menu{font-size:12px;line-height:2em;padding:0;border-width:1px;min-width:500px}.reactNavSearchWrapper .algolia-docsearch-suggestion__secondary{border-top:none}.aa-suggestions{min-height:140px;max-height:60vh;-webkit-overflow-scrolling:touch;overflow-y:scroll}#languages-dropdown{left:0;top:50px}#languages-dropdown-items{background-color:#204b7e;display:flex;flex-direction:row}}@media only screen and (min-width:1024px){.navSearchWrapper{padding-left:10px;position:relative;right:auto;top:auto}.reactNavSearchWrapper input#search_input_react{height:100%;padding-top:8px;padding-bottom:8px;padding-left:38px}.navSearchWrapper .algolia-autocomplete{display:block}.navigationSlider{height:34px;margin-left:auto;position:relative}.navigationSlider .navSlideout{display:none}.navigationSlider nav.slidingNav{background:none;height:auto;position:relative;right:auto;top:auto;width:auto}.navigationSlider .slidingNav ul{background:none;display:flex;flex-flow:row nowrap;margin:0;padding:0;width:auto}.navigationSlider .slidingNav ul li a{border:0;color:hsla(0,0%,100%,.8);display:flex;font-size:16px;font-size:1em;font-weight:300;height:32px;line-height:1.2em;margin:0;padding:6px 10px}.navigationSlider .slidingNav ul li.siteNavGroupActive a,.navigationSlider .slidingNav ul li.siteNavItemActive a,.navigationSlider .slidingNav ul li a:hover{color:#fff}}@media only screen and (max-width:735px){.navigationSlider .slidingNav ul{overflow-x:auto}.navigationSlider .slidingNav ul::-webkit-scrollbar{display:none}.reactNavSearchWrapper .aa-dropdown-menu{min-width:400px}}@media only screen and (max-width:475px){.reactNavSearchWrapper .aa-dropdown-menu{min-width:300px}}.docMainWrapper .wrapper{padding-left:0;padding-right:0;padding-top:10px}@media only screen and (min-width:1024px){.docMainWrapper{width:100%}.docMainWrapper>*{margin:0 24px}.docMainWrapper>:first-child{margin-left:0}.docMainWrapper>:last-child{margin-right:0}.docMainWrapper .mainContainer{min-width:0}}.edit-page-link{float:right;font-size:10px;font-weight:400;margin-top:3px;text-decoration:none}@media only screen and (max-width:1023px){.edit-page-link{display:none}}.docLastUpdate{font-size:13px;font-style:italic;margin:20px 0;text-align:right}.docs-prevnext{margin:20px 0}.docs-prevnext:after{clear:both;content:" ";display:table}.docs-next{float:right}.docs-prev{float:left}@media only screen and (max-width:735px){.docs-next{clear:both;float:left}.docs-next,.docs-prev{margin:10px 0}.arrow-next{float:right;margin-left:10px}.arrow-prev{float:left;margin-right:10px}.function-name-prevnext{width:200px;display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.hide{display:none}.collapsible{cursor:pointer}.collapsible .arrow{float:right;margin-right:8px;margin-top:-4px;transform:rotate(90deg);transition:transform .2s linear}.collapsible .arrow.rotate{transform:rotate(180deg)}@media only screen and (max-width:1023px){.docsNavContainer{background:#fff;left:0;position:fixed;width:100%;z-index:100}}@media only screen and (min-width:1024px){.docsNavContainer{flex:0 0 240px;height:calc(100vh - 50px);position:-webkit-sticky;position:sticky;overflow-y:auto;top:50px}}.docsSliderActive.docsNavContainer{box-sizing:border-box;height:100%;-webkit-overflow-scrolling:touch;overflow-y:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;padding-bottom:50px}.docsNavContainer .toc .navBreadcrumb{background-color:#f1f1f1;box-sizing:border-box;display:flex;flex-flow:row nowrap;font-size:12px;height:48px;overflow:hidden;padding:8px 20px}.docsNavContainer .toc .navWrapper{padding:0}@media only screen and (min-width:1024px){.docsNavContainer .toc .navBreadcrumb{display:none}.navBreadcrumb h2{padding:0 10px}.separateOnPageNav .docsNavContainer{flex:0 0 240px}}.navBreadcrumb a,.navBreadcrumb span{border:0;color:#393939}@media only screen and (max-width:735px){.anchor{top:-144px}}@media only screen and (min-width:1024px){.toc{padding:40px 0}}.toc section{padding:0;position:relative}.toc section .navGroups{display:none;padding:48px 20px 60px}.toc .toggleNav{color:#393939;position:relative}.toc .toggleNav .navToggle{cursor:pointer;height:32px;margin-right:10px;position:relative;text-align:left;width:18px}.hamburger-menu{position:absolute;top:6px;width:100%}.line1,.line2,.line3{width:100%;height:3px;background-color:#393939;margin:3px 0;transition:.4s;border-radius:10px}.docsSliderActive .hamburger-menu{top:12px}.docsSliderActive .line1{position:absolute;top:50%;transform:rotate(-45deg)}.docsSliderActive .line2{display:none}.docsSliderActive .line3{position:absolute;top:50%;transform:rotate(45deg)}.toggleNav h2 i{padding:0 4px}.toc .toggleNav .navGroup{margin-bottom:16px}.toc .toggleNav .subNavGroup{margin-bottom:0}.toc .toggleNav .navGroup .navGroupCategoryTitle{color:#393939;font-size:18px;font-weight:500;line-height:1.2em;margin-bottom:8px;margin-top:0}.toc .toggleNav .navGroup .navGroupSubcategoryTitle{color:#393939;font-size:14px;font-weight:500;line-height:1.5;margin-bottom:0;margin-top:0;padding:4px 0}.toc .toggleNav .navGroup .navListItem{margin:0}.toc .toggleNav .navGroup h3 i:not(:empty){box-sizing:border-box;color:rgba(57,57,57,.5);display:inline-block;height:16px;margin-right:10px;text-align:center;transition:color .2s;width:16px}.toc .toggleNav ul{padding:0 8px}.docsSliderActive .toc .toggleNav ul{padding-left:0}.toc .toggleNav ul li{list-style-type:none;padding:0}.toc .toggleNav ul li a{border:none;color:#717171;display:block;font-size:14px;padding:4px 0;transition:color .3s}.toc .toggleNav ul li.navListItemActive a,.toc .toggleNav ul li a:focus,.toc .toggleNav ul li a:hover{color:#204b7e}.docsSliderActive .toc .navBreadcrumb,.tocActive .navBreadcrumb{border-bottom:1px solid #ccc;margin-bottom:20px;position:fixed;width:100%}.toc .toggleNav .navBreadcrumb h2{border:0;flex-grow:1;font-size:16px;font-weight:600;line-height:32px;margin:0;padding:0}.docsSliderActive .toc section .navGroups{display:block;padding-top:60px}.tocToggler{cursor:pointer;height:32px;line-height:32px;margin-right:-10px;padding:0 10px}.icon-toc{box-sizing:border-box;display:inline-block;line-height:normal;position:relative;top:-1px;vertical-align:middle}.icon-toc,.icon-toc:after,.icon-toc:before{background-color:currentColor;border:1px solid;border-radius:50%;box-sizing:border-box;height:4px;width:4px}.icon-toc:after,.icon-toc:before{content:"";position:absolute}.icon-toc:before{left:-1px;top:-7px}.icon-toc:after{left:-1px;top:5px}.tocActive .icon-toc{border-radius:0;height:16px;transform:rotate(45deg);width:3px}.tocActive .icon-toc:before{border-radius:0;height:3px;left:50%;top:50%;transform:translate(-50%,-50%);width:16px}.tocActive .icon-toc:after{content:""}@media only screen and (min-width:1024px){.docMainWrapper{display:flex;flex-flow:row nowrap}.docMainWrapper .wrapper{padding-top:0;padding-left:0;padding-right:0}}.onPageNav{display:none;margin-bottom:40px}.onPageNav::-webkit-scrollbar{width:7px}.onPageNav::-webkit-scrollbar-track{background:#f1f1f1;border-radius:10px}.onPageNav::-webkit-scrollbar-thumb{background:#888;border-radius:10px}.onPageNav::-webkit-scrollbar-thumb:hover{background:#555}.onPageNav a{color:#717171}.onPageNav .toc-headings>li>a.active,.onPageNav .toc-headings>li>a.hover{font-weight:600;color:#204b7e}.onPageNav ul{list-style:none}.onPageNav ul li{font-size:12px;line-height:16px;padding-bottom:8px}.onPageNav ul ul{padding:8px 0 0 20px}.onPageNav ul ul li{padding-bottom:5px}@media only screen and (min-width:1024px){.toc section .navGroups{display:block;padding:8px 0 0}.navBreadcrumb h2{padding:0 10px}}@supports ((position: -webkit-sticky) or (position: sticky)){@media only screen and (max-width:1023px){.tocActive .onPageNav{background:#fff;bottom:0;display:block;left:0;overflow-y:auto;-ms-scroll-chaining:none;overscroll-behavior:contain;padding:0 20px;position:fixed;right:0;top:148px;z-index:10;margin-bottom:0}.tocActive .singleRowMobileNav .onPageNav{top:98px}.tocActive .navBreadcrumb h2,.tocActive .navToggle{visibility:hidden}.tocActive .onPageNav>.toc-headings{padding:12px 0}}@media only screen and (min-width:1024px){.separateOnPageNav .headerWrapper.wrapper,.separateOnPageNav .wrapper{max-width:1400px}.separateOnPageNav .toc{width:auto}.separateOnPageNav.sideNavVisible .navPusher .mainContainer{flex:1 auto;max-width:100%;min-width:0}.onPageNav{align-self:flex-start;display:block;flex:0 0 240px;max-height:calc(100vh - 90px);overflow-y:auto;position:-webkit-sticky;position:sticky;top:90px}.onPageNav>.toc-headings{border-left:1px solid #e0e0e0;padding:10px 0 2px 15px}.tocToggler{display:none}}}.blog .wrapper{max-width:1100px}.blogContainer .posts .post{border-bottom:1px solid #e0e0e0;border-radius:3px;margin-bottom:20px;padding-bottom:20px}.blogContainer .postHeader{margin-bottom:10px}.blogContainer .postHeaderTitle{margin-top:0}.blogContainer .postHeader p.post-meta{margin-bottom:10px;padding:0}.blogContainer .postHeader .authorBlock{display:flex}.blogContainer .postHeader .post-authorName{color:rgba(57,57,57,.7);display:flex;flex-direction:column;font-size:14px;font-weight:400;justify-content:center;margin-right:10px;margin-top:0;margin-bottom:0;padding:0}.blogContainer .postHeader .authorPhoto{border-radius:50%;height:30px;overflow:hidden;width:30px}.blogContainer .postHeader .authorPhoto.authorPhotoBig{height:50px;width:50px}.blog-recent{margin:20px 0}.blog-recent>a{float:left}@media only screen and (max-width:735px){.blog-recent{height:40px}}.blogSocialSection{display:block;padding:36px 0}.blogSocialSection .blogSocialSectionItem{padding-bottom:5px}.fb-like{display:block;margin-bottom:20px;width:100%}.more-users{margin:0 auto;max-width:560px;text-align:center}.productShowcaseSection{padding:0 20px;text-align:center}.productShowcaseSection.paddingTop{padding-top:20px}.productShowcaseSection.paddingBottom{padding-bottom:80px}.productShowcaseSection h2{color:#204b7e;font-size:30px;line-height:1em;margin-top:20px;padding:10px 0;text-align:center}.productShowcaseSection p{margin:0 auto;max-width:560px;padding:.8em 0}.productShowcaseSection .logos{align-items:center;display:flex;flex-flow:row wrap;justify-content:center;padding:20px}.productShowcaseSection .logos img{max-height:110px;padding:20px;width:110px}@media only screen and (max-width:735px){.productShowcaseSection .logos img{max-height:64px;padding:20px;width:64px}}.showcaseSection{margin:0 auto;max-width:900px}.showcaseSection,.showcaseSection .prose h1{text-align:center}.showcaseSection .prose{margin:0 auto;max-width:560px;text-align:center}.showcaseSection .logos{align-items:center;display:flex;flex-flow:row wrap;justify-content:center}.showcaseSection .logos img{max-height:128px;padding:20px;width:128px}@media only screen and (max-width:735px){.showcaseSection .logos img{max-height:64px;padding:20px;width:64px}}.nav-footer{background:#20232a;border:none;color:#202020;font-size:15px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:24px;padding-bottom:2em;padding-top:2em;position:relative}@media only screen and (min-width:1024px){.nav-footer{flex-shrink:0}}.nav-footer .sitemap{display:flex;justify-content:space-between;margin:0 auto 3em;max-width:1080px}.nav-footer .sitemap div{flex:1}.nav-footer .sitemap .nav-home{display:table;height:72px;margin:-12px 20px 0 0;opacity:.4;padding:10px;transition:opacity .15s ease-in-out;width:72px}.nav-footer .sitemap .nav-home:focus,.nav-footer .sitemap .nav-home:hover{opacity:1}@media only screen and (max-width:735px){.nav-footer .sitemap{display:flex;flex-direction:column;margin:0 2em 3em;width:calc(100% - 4em)}.nav-footer .sitemap>div{margin-bottom:18px}}.nav-footer .sitemap a{color:hsla(0,0%,100%,.6);display:block;margin:2px 0;padding:3px 0}.nav-footer .sitemap a:focus,.nav-footer .sitemap a:hover,.nav-footer .sitemap h5>a:focus,.nav-footer .sitemap h5>a:hover{color:#fff;text-decoration:none}.nav-footer .sitemap h5,.nav-footer .sitemap h6{margin:0 0 10px}.nav-footer .sitemap h5,.nav-footer .sitemap h5>a,.nav-footer .sitemap h6,.nav-footer .sitemap h6>a{color:#fff}.nav-footer .sitemap h5>a,.nav-footer .sitemap h6>a{margin:0 -10px}.nav-footer .fbOpenSource{display:block;margin:1em auto;opacity:.4;transition:opacity .15s ease-in-out;width:170px}.nav-footer .fbOpenSource:hover{opacity:1}.nav-footer .copyright{color:hsla(0,0%,100%,.4);text-align:center}.nav-footer .social{padding:5px 0}.tabs{border-top:1px solid #cfcfcf}.nav-tabs{display:flex;border-bottom:4px solid #e0e0e0;width:100%;padding:0;overflow-x:auto;white-space:nowrap;max-height:100%}.nav-tabs::-webkit-scrollbar{display:none}.tabs .tab-pane:focus{outline:none}.tabs .nav-tabs>div{font-size:14px;line-height:1.14286;padding:12px 16px;text-decoration:none;display:block;cursor:pointer}.tabs .nav-tabs>div.active{border-bottom:4px solid #204b7e}.tab-pane{display:none}.tab-pane.active{display:block}.tab-pane>pre{white-space:pre-wrap}.tab-pane>pre>code{margin-top:0;border-radius:0;box-shadow:none}@import "antd/dist/antd.css"; \ No newline at end of file diff --git a/css/prism.css b/css/prism.css new file mode 100644 index 0000000..d783edb --- /dev/null +++ b/css/prism.css @@ -0,0 +1,115 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * Modified prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ + +code[class*='language-'], +pre[class*='language-'] { + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +/* Code blocks */ +pre[class*='language-'] { + padding: 1em; + margin: 0.5em 0; + overflow: auto; +} + +/* Inline code */ +:not(pre) > code[class*='language-'] { + padding: 0.1em; + border-radius: 0.3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: 0.7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.number, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #dd4a68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 6711192..0000000 --- a/docker-compose.yml +++ /dev/null @@ -1,18 +0,0 @@ -version: "3" - -services: - docusaurus: - build: . - ports: - - 3000:3000 - - 35729:35729 - volumes: - - ./docs:/app/docs - - ./website/blog:/app/website/blog - - ./website/core:/app/website/core - - ./website/i18n:/app/website/i18n - - ./website/pages:/app/website/pages - - ./website/static:/app/website/static - - ./website/sidebars.json:/app/website/sidebars.json - - ./website/siteConfig.js:/app/website/siteConfig.js - working_dir: /app/website diff --git a/docs/about.html b/docs/about.html new file mode 100644 index 0000000..87b51a0 --- /dev/null +++ b/docs/about.html @@ -0,0 +1,58 @@ +What is DropKit? · DropKit

DropKit

\ No newline at end of file diff --git a/docs/about.md b/docs/about.md deleted file mode 100644 index 9fee208..0000000 --- a/docs/about.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -id: about -title: What is DropKit? -sidebar_label: What is DropKit? ---- - -DropKit is a blockchain-inspired secure database with audit trails, considered as the open source replacement of Amazon QLDB. It is a distributed ACID-compliant database that runs on open Internet without central coordination. Also, its privacy-by-design properties enforce the access with Granted Permission and encryption pass. diff --git a/docs/about/index.html b/docs/about/index.html new file mode 100644 index 0000000..87b51a0 --- /dev/null +++ b/docs/about/index.html @@ -0,0 +1,58 @@ +What is DropKit? · DropKit

DropKit

\ No newline at end of file diff --git a/docs/api_authority.html b/docs/api_authority.html new file mode 100644 index 0000000..ebc5e8f --- /dev/null +++ b/docs/api_authority.html @@ -0,0 +1,241 @@ +Authority Control API Reference · DropKit

DropKit

\ No newline at end of file diff --git a/docs/api_authority.md b/docs/api_authority.md deleted file mode 100644 index 5cd93f0..0000000 --- a/docs/api_authority.md +++ /dev/null @@ -1,198 +0,0 @@ ---- -id: api_authority -title: Authority Control API Reference -sidebar_label: Authority ---- - -## Methods - - - ---- - -## Reference - -### `/api/auth/grant` - -Grant user permissions to interact with specific table. - -#### Parameters - -| Name | Type | Description | -| ---------- | ------ | -------------------------------- | -| user_name | string | Specifies a DropKit user | -| table_name | string | Specifies a table name | -| caller_pk | string | Caller private key | - -#### Response - -Content Type: `application/json` - -| Name | Type | Description | -| ------------ | ------ | ----------------------- | -| Code | number | Response code | -| Message | string | Response message | - -#### Response Code - -| Code | Description | -| ------------ | ---------------------------- | -| 0 | Success | -| 20201 | Unauthorized | - -#### Sample Input - -```json -{ - "user_name": "0x0000000000000000000000000000000000000000", - "table_name": "employee", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -} -``` - -#### Sample Response - -```json -{ - "Code": 0, - "Message": "Ok" -} -``` - -#### curl Example - -```bash -curl http://localhost:5000/api/auth/grant \ --X POST \ --d '{ - "user_name": "0x0000000000000000000000000000000000000000", - "table_name": "employee", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -}' - -{"Code": 0,"Message": "Ok"} -``` - -### `/api/auth/revoke` - -Revoke user permission to interact with a specific table. - -#### Parameters - -| Name | Type | Description | -| ---------- | ------ | -------------------------------- | -| user_name | string | Specifies a DropKit user | -| table_name | string | Specifies a table name | -| caller_pk | string | Caller private key | - -#### Response - -Content Type: `application/json` - -| Name | Type | Description | -| ------------ | ------ | ----------------------- | -| Code | number | Response code | -| Message | string | Response message | - -#### Response Code - -| Code | Description | -| ------------ | ---------------------------- | -| 0 | Success | -| 20201 | Unauthorized | - -#### Sample Input - -```json -{ - "user_name": "0x0000000000000000000000000000000000000000", - "table_name": "employee", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -} -``` - -#### Sample Response - -```json -{ - "Code": 0, - "Message": "Ok" -} -``` - -#### curl Example - -```bash -curl http://localhost:5000/api/auth/revoke \ --X POST \ --d '{ - "user_name": "0x0000000000000000000000000000000000000000", - "table_name": "employee", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -}' - -{"Code": 0,"Message": "Ok"} -``` - -### `/api/auth/verify` - -Verify the user has permissions - -#### Parameters - -| Name | Type | Description | -| ---------- | ------ | -------------------------------- | -| user_name | string | Specifies a DropKit user | -| table_name | string | Specifies a table name | -| caller_pk | string | Caller private key | - -#### Response - -Content Type: `application/json` - -| Name | Type | Description | -| ------------ | ------ | ----------------------- | -| Code | number | Response code | -| Message | string | Response message | -| Response | bool | Verify result | - -#### Response Code - -| Code | Description | -| ------------ | ---------------------------- | -| 0 | Success | -| 20201 | Unauthorized | - -#### Sample Input - -```json -{ - "user_name": "0x0000000000000000000000000000000000000000", - "table_name": "employee", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -} -``` - -#### Sample Response - -```json -{ - "Code": 0, - "Message": "Ok", - "Response": true -} -``` - -#### curl Example - -```bash -curl http://localhost:5000/api/auth/verify \ --X POST \ --d '{ - "user_name": "0x0000000000000000000000000000000000000000", - "table_name": "employee", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -}' - -{"Code": 0,"Message": "Ok","Response": true} -``` diff --git a/docs/api_authority/index.html b/docs/api_authority/index.html new file mode 100644 index 0000000..ebc5e8f --- /dev/null +++ b/docs/api_authority/index.html @@ -0,0 +1,241 @@ +Authority Control API Reference · DropKit
\ No newline at end of file diff --git a/docs/api_database.html b/docs/api_database.html new file mode 100644 index 0000000..cfc6a52 --- /dev/null +++ b/docs/api_database.html @@ -0,0 +1,250 @@ +Database API Reference · DropKit
\ No newline at end of file diff --git a/docs/api_database.md b/docs/api_database.md deleted file mode 100644 index 5518207..0000000 --- a/docs/api_database.md +++ /dev/null @@ -1,213 +0,0 @@ ---- -id: api_database -title: Database API Reference -sidebar_label: Database ---- - -## Methods - - - ---- - -## Reference - -### `/api/db/create` - -Executes create query against DropKit - -``` -POST /api/db/create -``` - -#### Parameters - -| Name | Type | Description | -| ------------ | ------ | ----------------------- | -| db_statement | string | SQL exec command | -| caller_pk | string | Caller private key | - -#### Response - -Content Type: `application/json` - -| Name | Type | Description | -| ------------ | ------ | ----------------------- | -| Code | number | Response code | -| Message | string | Response message | -| Audit | string | Audit log hash | - -#### Response Code - -| Code | Description | -| ------------ | ---------------------------- | -| 0 | Success | -| 20101 | Unauthorized | - -#### Sample Input - -```json -{ - "db_statement": "CREATE TABLE employee (id int PRIMARY KEY, name varchar, age int, language varchar)", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -} -``` - -#### Sample Response - -```json -{ - "Code": 0, - "Message": "Ok", - "Audit": "0x6eb3bc317d8bcb363d7f60f54e3f1503cdb80d82b3f3b775b3186a4a5262a626" -} -``` - -#### curl Example - -```bash -curl http://localhost:5000/api/db/create \ --X POST \ --d '{ - "db_statement": "CREATE TABLE employee (id int PRIMARY KEY, name varchar, age int, language varchar)", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -}' - -{"Code": 0,"Message": "Ok","Audit": "0x6eb3bc317d8bcb363d7f60f54e3f1503cdb80d82b3f3b775b3186a4a5262a626"} -``` - -### `/api/db/insert` - -Executes insert query against DropKit - -``` -POST /api/db/insert -``` - -#### Parameters - -| Name | Type | Description | -| ------------ | ------ | ----------------------- | -| db_statement | string | SQL exec command | -| caller_pk | string | Caller private key | - -#### Response - -Content Type: `application/json` - -| Name | Type | Description | -| ------------ | ------ | ----------------------- | -| Code | number | Response code | -| Message | string | Response message | -| Audit | string | Audit log hash | - -#### Response Code - -| Code | Description | -| ------------ | ---------------------------- | -| 0 | Success | -| 20101 | Unauthorized | - -#### Sample Input - -```json -{ - "db_statement": "INSERT INTO employee (id, name, age, language) VALUES (1, 'John', 35, 'Go')", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -} -``` - -#### Sample Response - -```json -{ - "Code": 0, - "Message": "Ok", - "Audit": "0x6eb3bc317d8bcb363d7f60f54e3f1503cdb80d82b3f3b775b3186a4a5262a626" -} -``` - -#### curl Example - -```bash -curl http://localhost:5000/api/db/insert \ --X POST \ --d '{ - "db_statement": "INSERT INTO employee (id, name, age, language) VALUES (1, 'John', 35, 'Go')", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -}' - -{"Code": 0,"Message": "Ok","Audit": "0x6eb3bc317d8bcb363d7f60f54e3f1503cdb80d82b3f3b775b3186a4a5262a626"} -``` - -### `/api/db/select` - -Executes select query against DropKit - -``` -POST /api/db/select -``` - -#### Parameters - -| Name | Type | Description | -| ------------ | ------ | ----------------------- | -| db_statement | string | SQL exec command | -| caller_pk | string | Caller private key | - -#### Response - -Content Type: `application/json` - -| Name | Type | Description | -| ------------ | ------ | ----------------------- | -| Code | number | Response code | -| Message | string | Response message | -| Data | list | Database response | -| Audit | string | Audit log hash | - -#### Response Code - -| Code | Description | -| ------------ | ---------------------------- | -| 0 | Success | -| 20101 | Unauthorized | - -#### Sample Input - -```json -{ - "db_statement": "SELECT name, age, language FROM employee WHERE id = 1", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -} -``` - -#### Sample Response - -```json -{ - "Code": 0, - "Message": "Ok", - "Data": [ - { - "age": 35, - "language": "Go", - "name": "John" - } - ], - "Audit": "0x19c5a417c739977c39dfefc7cd86762e3a6ba2cac7beba5f77452814fd2a613a" -} -``` - -#### curl Example - -```bash -curl http://localhost:5000/api/db/select \ --X POST \ --d '{ - "db_statement": "SELECT name, age, language FROM employee WHERE id = 1", - "caller_pk": "00000000000000000000000000000000000000000000000000000000000000000000" -}' - -{"Code": 0,"Message": "Ok","Data": [{"age": 35,"language": "Go","name": "John"}],"Audit": "0x19c5a417c739977c39dfefc7cd86762e3a6ba2cac7beba5f77452814fd2a613a"} -``` diff --git a/docs/api_database/index.html b/docs/api_database/index.html new file mode 100644 index 0000000..cfc6a52 --- /dev/null +++ b/docs/api_database/index.html @@ -0,0 +1,250 @@ +Database API Reference · DropKit \ No newline at end of file diff --git a/docs/features.html b/docs/features.html new file mode 100644 index 0000000..c4b999a --- /dev/null +++ b/docs/features.html @@ -0,0 +1,65 @@ +Core features of DropKit · DropKit \ No newline at end of file diff --git a/docs/features.md b/docs/features.md deleted file mode 100644 index 451a4ba..0000000 --- a/docs/features.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -id: features -title: Core features of DropKit -sidebar_label: Features ---- - -## Operation history is immutable and trackable - -The blockchain-backed audit trail is built-in to ensure each access and each modification of data is securely tracked without the possibility of being deleted or modified. The integrity of data is protected with fraud detection, so that users get notified when anomalous behavior is detected when data access is concerned. - -## Per-record encryption - -Having data encrypted is nice, but doesn't protect against many types of data breaches. Instead, DropKit encrypts every record separately, using a secure key hierarchy. This serves as effective data breach protection as the risk for breaches is significantly reduced due to the inability to extract large amounts of data at once. - -## Fault tolerance - -DropKit can automatically handle failures and therefore provides high availability . This means the cluster will remain available for both reads and writes even if one node fails. It is primarily used for applications that support high-value, high-rate transactions, such as check clearinghouses and stock exchanges. - -## Ready to use - -DropKit can scale horizontally in case user application load increases. It is also highly available and handles encrypted backups automatically. Users simply send SQL-92 compliant statement to specified adapter component and DropKit would maintain accordingly. diff --git a/docs/features/index.html b/docs/features/index.html new file mode 100644 index 0000000..c4b999a --- /dev/null +++ b/docs/features/index.html @@ -0,0 +1,65 @@ +Core features of DropKit · DropKit \ No newline at end of file diff --git a/docs/use_case.html b/docs/use_case.html new file mode 100644 index 0000000..7dc6abf --- /dev/null +++ b/docs/use_case.html @@ -0,0 +1,77 @@ +Use Case of DropKit · DropKit \ No newline at end of file diff --git a/docs/use_case.md b/docs/use_case.md deleted file mode 100644 index f1286ea..0000000 --- a/docs/use_case.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -id: use_case -title: Use Case of DropKit -sidebar_label: Use case ---- - -## Privacy data - -If you are a developer of password management tools just like [1Password](https://1password.com/) or [LastPass](https://www.lastpass.com/). You can use DropKit as the database to take benefits: - -- Serverless: no need to deploy a server to store your user's password for sync which is the hot potato. -- Security: DropKit handles all the encryption work. Decentralized data storage gives more confidence to your users. -- Regulation: DropKt naturally complies with GDPR. - -## Open data service - -You can directly expose an online SQL interface to your customers to meet a wide range of query needs. - -- DropKit can limit specific SQL query statements to meet the needs while also balancing data security; -- DropKit can record SQL query records on the blockchain, which is very convenient for customers to check their bills for long-tail customers and billing. -- For customers with high performance requirements, Slave nodes can be deployed at the customer to meet the needs of customers with low latency queries while enabling almost real-time data updates. - -## Data manipulation for IoT Devices - -DropKit can be deployed globally, and IoT node can write to nearest adaptor nodes directly. - -- Lower cost: Without passing all the traffic through a gateway, you can save a large bandwidth cost. -- Faster: The consensus protocol behind DropKit is designed for Internet where network latency is unavoidable. diff --git a/docs/use_case/index.html b/docs/use_case/index.html new file mode 100644 index 0000000..7dc6abf --- /dev/null +++ b/docs/use_case/index.html @@ -0,0 +1,77 @@ +Use Case of DropKit · DropKit \ No newline at end of file diff --git a/en/index.html b/en/index.html new file mode 100644 index 0000000..370007c --- /dev/null +++ b/en/index.html @@ -0,0 +1 @@ +DropKit · DropKit Document \ No newline at end of file diff --git a/website/static/img/favicon.ico b/img/favicon.ico similarity index 100% rename from website/static/img/favicon.ico rename to img/favicon.ico diff --git a/img/language.svg b/img/language.svg new file mode 100644 index 0000000..6619593 --- /dev/null +++ b/img/language.svg @@ -0,0 +1,3 @@ + + + diff --git a/img/logo.png b/img/logo.png new file mode 100644 index 0000000..c833611 Binary files /dev/null and b/img/logo.png differ diff --git a/index.html b/index.html new file mode 100644 index 0000000..5f3ad10 --- /dev/null +++ b/index.html @@ -0,0 +1,60 @@ + + + + + + + DropKit · DropKit Document + + + + + + + + + + + + + + + + + + + + +
+
+

DropKit

+ +
+
+
+ + + + diff --git a/js/codetabs.js b/js/codetabs.js new file mode 100644 index 0000000..60072d2 --- /dev/null +++ b/js/codetabs.js @@ -0,0 +1,31 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +// Turn off ESLint for this file because it's sent down to users as-is. + +/* eslint-disable */ +window.addEventListener('load', function() { + // add event listener for all tab + document.querySelectorAll('.nav-link').forEach(function(el) { + el.addEventListener('click', function(e) { + var groupId = e.target.getAttribute('data-group'); + document + .querySelectorAll('.nav-link[data-group='.concat(groupId, ']')) + .forEach(function(el) { + el.classList.remove('active'); + }); + document + .querySelectorAll('.tab-pane[data-group='.concat(groupId, ']')) + .forEach(function(el) { + el.classList.remove('active'); + }); + e.target.classList.add('active'); + document + .querySelector('#'.concat(e.target.getAttribute('data-tab'))) + .classList.add('active'); + }); + }); +}); diff --git a/js/scrollSpy.js b/js/scrollSpy.js new file mode 100644 index 0000000..ec05853 --- /dev/null +++ b/js/scrollSpy.js @@ -0,0 +1,83 @@ +/** + * Copyright (c) 2017-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* eslint-disable */ +(function scrollSpy() { + var OFFSET = 10; + var timer; + var headingsCache; + + var findHeadings = function findHeadings() { + return headingsCache || document.querySelectorAll('.toc-headings > li > a'); + }; + + var onScroll = function onScroll() { + if (timer) { + // throttle + return; + } + + timer = setTimeout(function() { + timer = null; + var activeNavFound = false; + var headings = findHeadings(); // toc nav anchors + + /** + * On every call, try to find header right after <-- next header + * the one whose content is on the current screen <-- highlight this + */ + + for (var i = 0; i < headings.length; i++) { + // headings[i] is current element + // if an element is already active, then current element is not active + // if no element is already active, then current element is active + var currNavActive = !activeNavFound; + /** + * Enter the following check up only when an active nav header is not yet found + * Then, check the bounding rectangle of the next header + * The headers that are scrolled passed will have negative bounding rect top + * So the first one with positive bounding rect top will be the nearest next header + */ + + if (currNavActive && i < headings.length - 1) { + var heading = headings[i + 1]; + var next = decodeURIComponent(heading.href.split('#')[1]); + var nextHeader = document.getElementById(next); + + if (nextHeader) { + var top = nextHeader.getBoundingClientRect().top; + currNavActive = top > OFFSET; + } else { + console.error('Can not find header element', { + id: next, + heading: heading, + }); + } + } + /** + * Stop searching once a first such header is found, + * this makes sure the highlighted header is the most current one + */ + + if (currNavActive) { + activeNavFound = true; + headings[i].classList.add('active'); + } else { + headings[i].classList.remove('active'); + } + } + }, 100); + }; + + document.addEventListener('scroll', onScroll); + document.addEventListener('resize', onScroll); + document.addEventListener('DOMContentLoaded', function() { + // Cache the headings once the page has fully loaded. + headingsCache = findHeadings(); + onScroll(); + }); +})(); diff --git a/publish-gh.sh b/publish-gh.sh deleted file mode 100755 index 9013398..0000000 --- a/publish-gh.sh +++ /dev/null @@ -1,87 +0,0 @@ -#!/usr/bin/env bash -# usage: publish-gh -v 0.0.1 -u junwei0117 - -set -o errexit -set -o pipefail - -check_env() { - if [[ ! -e "./website/node_modules/.bin/docusaurus-version" ]]; then - echo " -**ERROR** -docusaurus related commands not found under [website/node_modules/.bin] -Please install dependencies for this project: - 1. install node if you don't have; - 2. install dependencies: cd website && npm install. -" - exit 1 - fi -} - -command::publish-gh() { - local version=() - local user=() - local current_opt="" - - while :; do - case ${1:-notset} in - -v|--version) - current_opt="version" - ;; - -u|--user) - current_opt="user" - ;; - notset) - break - ;; - *) - case ${current_opt} in - version) - version+=("$1") - ;; - user) - user+=("$1") - ;; - esac - ;; - esac - shift - done - - # print version and user - echo "Version: ${version}" - echo "User: ${user}" - - # publish current docs - cd website - - GIT_USER=${user} \ - CURRENT_BRANCH=master \ - USE_SSH=true \ - yarn run publish-gh-pages - - # commit and push - cd .. - git add . - git commit -m "chore(publish): published ${version} docs by [${user}]" - git push origin master -} - -usage() { - echo " -Usage: publish-gh -v -u - -Options: - version: semantic version, e.g. 0.0.1 - user: username who updates the docs, e.g. junwei0117 -" 1>&2; exit 1; -} - -main() { - check_env - if [[ $# -ne 4 ]]; then - usage - fi - command::publish-gh "$@" -} - -main "$@" \ No newline at end of file diff --git a/readme.md b/readme.md deleted file mode 100644 index 58dc4f5..0000000 --- a/readme.md +++ /dev/null @@ -1,19 +0,0 @@ -# DropKit Document - -## Prerequisites - -- node.js >= 8 - -## Install Dependencies - -```bash -cd website && yarn -``` - -## Start Website - -```bash -yarn start -``` - -Load `localhost:3000/docs/db_create` to find out the API document. diff --git a/sitemap.xml b/sitemap.xml new file mode 100644 index 0000000..2399c77 --- /dev/null +++ b/sitemap.xml @@ -0,0 +1 @@ +http://dropkit.org/indexweekly0.5http://dropkit.org/docs/abouthourly1.0http://dropkit.org/docs/api_authorityhourly1.0http://dropkit.org/docs/api_databasehourly1.0http://dropkit.org/docs/featureshourly1.0http://dropkit.org/docs/use_casehourly1.0 \ No newline at end of file diff --git a/website/core/Footer.js b/website/core/Footer.js deleted file mode 100644 index 066e171..0000000 --- a/website/core/Footer.js +++ /dev/null @@ -1,67 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const React = require('react'); - -class Footer extends React.Component { - docUrl(doc, language) { - const baseUrl = this.props.config.baseUrl; - const docsUrl = this.props.config.docsUrl; - const docsPart = `${docsUrl ? `${docsUrl}/` : ''}`; - const langPart = `${language ? `${language}/` : ''}`; - return `${baseUrl}${docsPart}${langPart}${doc}`; - } - - pageUrl(doc, language) { - const baseUrl = this.props.config.baseUrl; - return baseUrl + (language ? `${language}/` : '') + doc; - } - - render() { - return ( - - ); - } -} - -module.exports = Footer; diff --git a/website/package.json b/website/package.json deleted file mode 100644 index 1f87392..0000000 --- a/website/package.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "scripts": { - "examples": "docusaurus-examples", - "start": "docusaurus-start", - "build": "docusaurus-build", - "publish-gh-pages": "docusaurus-publish", - "write-translations": "docusaurus-write-translations", - "version": "docusaurus-version", - "rename-version": "docusaurus-rename-version" - }, - "devDependencies": { - "docusaurus": "^1.14.4" - } -} diff --git a/website/pages/en/index.js b/website/pages/en/index.js deleted file mode 100644 index e63b8a1..0000000 --- a/website/pages/en/index.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -const React = require('react'); - -class Index extends React.Component { - render() { - - return ( -
-
-
-
- ); - } -} - -module.exports = Index; diff --git a/website/sidebars.json b/website/sidebars.json deleted file mode 100644 index dcb7b26..0000000 --- a/website/sidebars.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "apis": { - "Introduction":["about", "features", "use_case"], - "API Reference": ["api_database", "api_authority"] - } -} diff --git a/website/siteConfig.js b/website/siteConfig.js deleted file mode 100644 index 174e7a0..0000000 --- a/website/siteConfig.js +++ /dev/null @@ -1,107 +0,0 @@ -/** - * Copyright (c) 2017-present, Facebook, Inc. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ - -// See https://docusaurus.io/docs/site-config for all the possible -// site configuration options. - -// List of projects/orgs using your project for the users page. -// const users = [ -// { -// caption: 'User1', -// // You will need to prepend the image path with your baseUrl -// // if it is not '/', like: '/test-site/img/image.jpg'. -// image: '/img/undraw_open_source.svg', -// infoLink: 'https://www.facebook.com', -// pinned: true, -// }, -// ]; - -const siteConfig = { - title: 'DropKit', // Title for your website. - tagline: 'DropKit Document', - url: 'http://dropkit.org', // Your website URL - baseUrl: '/', // Base URL for your project */ - // For github.io type URLs, you would set the url and baseUrl like: - // url: 'https://facebook.github.io', - // baseUrl: '/test-site/', - - // Used for publishing and more - // url: 'https://dropkit.github.io', // Replace USERNAME with your GitHub username. - // baseUrl: '/docs/', // The name of your GitHub project. - projectName: 'docs', // The name of your GitHub project. Same as above. - organizationName: 'dropkit', // Your GitHub username. - - // For no header links in the top nav bar -> headerLinks: [], - headerLinks: [ - {doc: 'about', label: 'About'}, - {doc: 'api_database', label: 'API'} - ], - - // If you have users set above, you add it here: - // users, - - /* path to images for header/footer */ - // headerIcon: 'img/logo.png', - footerIcon: 'img/logo.png', - favicon: 'img/logo.png', - - /* Colors for website */ - colors: { - primaryColor: '#204B7E', - secondaryColor: '#462769', - }, - - /* Custom fonts for website */ - /* - fonts: { - myFont: [ - "Times New Roman", - "Serif" - ], - myOtherFont: [ - "-apple-system", - "system-ui" - ] - }, - */ - - // This copyright info is used in /core/Footer.js and blog RSS/Atom feeds. - copyright: `Copyright © ${new Date().getFullYear()} BiiLabs.io`, - - highlight: { - // Highlight.js theme to use for syntax highlighting in code blocks. - theme: 'default', - }, - - // Add custom scripts here that would be placed in - Redirect... - - - If you are not redirected automatically, follow this link. - -