-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcomponent---src-pages-about-js-4141f94032f59b263a34.js
1 lines (1 loc) · 4.35 KB
/
component---src-pages-about-js-4141f94032f59b263a34.js
1
"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([[432],{4779:function(e,t,a){a.r(t);var r=a(9474),n=a(9980),s=a(2983),o=a(1875),l=a(4723);t.default=()=>{const{siteBuildMetadata:e}=(0,s.GR)("1593082925");return r.createElement(o.A,null,r.createElement(l.A,{title:"About"}),r.createElement("div",{className:"prose prose-slate w-full py-10 dark:prose-invert lg:prose-lg"},r.createElement("h1",{className:"text-3xl font-bold"},"About"),r.createElement("p",null,r.createElement("strong",null,"Keycap Archivist")," is a community driven project from artisan keycap enthusiasts made for other enthusiasts. It is made in collaboration with"," ",r.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://keycap.info/"},"keycap.info"),', which is the "single source of truth". The Google Docs from'," ",r.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://keycap.info/"},"keycap.info")," ","are dowloaded as HTML and parsed to extract the data as the format is the same on every catalog. Then those data are exposed through an open source repository. Once data is available, we build upon it; that‘s how",r.createElement("strong",null," Keycap Archivist")," was born. If you want to contribute just visit the"," ",r.createElement("a",{target:"_blank",rel:"noopener noreferrer",href:"https://github.com/keycap-archivist/"},"Github"),"."),r.createElement("p",null,"The project is composed of the following components:"),r.createElement("h2",{className:"flex items-center text-2xl font-bold"},"Database",r.createElement("a",{href:"https://github.com/keycap-archivist/database",target:"_blank",rel:"noopener noreferrer",className:"ml-4"},r.createElement(n.g,{icon:["fab","github"]}))),r.createElement("p",null,"Database generator is a Javascript based project. Each maker got it‘s importer and parser module, because even if the format is mostly the same there can be some slight differences to handle. All keycap ids are made using a CRC32 calculation based on the image url of the keycap."),r.createElement("p",null,"Once the data is collected, it‘s formated using this json schema and exposed as separated JSON/CSV files per maker and one exposing the whole catalog in each format. You can check the compiled database files"," ",r.createElement("a",{href:"https://github.com/keycap-archivist/database/tree/master/db",target:"_blank",rel:"noopener noreferrer"},"here"),". The database is generated every 6 hours and if there is a change it‘s pushed to the repository."),r.createElement("h2",{className:"text-2xl font-bold"},"App"," ",r.createElement("a",{href:"https://github.com/keycap-archivist/app",target:"_blank",rel:"noopener noreferrer",className:"ml-4"},r.createElement(n.g,{icon:["fab","github"]}))),r.createElement("p",null,"The app is a NodeJs server using TypeScript and Fastify. It is mainly used to make the Wishlist you can generate in ",r.createElement(s.N_,{to:"/wishlist"},"here"),'. There is also couple of other features that will be described in the Open Api description (soon LMAO). This is the only "costly" feature of the project because it needs a server to run and thankfully a community member let us squat its Docker runtime.'),r.createElement("h2",{className:"text-2xl font-bold"},"Website"," ",r.createElement("a",{href:"https://github.com/keycap-archivist/website",target:"_blank",rel:"noopener noreferrer",className:"ml-4"},r.createElement(n.g,{icon:["fab","github"]}))),r.createElement("p",null,"The website you‘re browsing right now is made using"," ",r.createElement("a",{href:"https://github.com/gatsbyjs/gatsby",target:"_blank",rel:"noopener noreferrer"},"Gatsby")," ","and consuming the database generated like explained before. The website repository polls the database revision every 6 hour and check if there is a different revision. If so it‘s regenerated and pushed on Github Pages."),r.createElement("p",null,"Thanks for taking the time to read this section, if you want to contribute feel free to raise issues on github or come discuss with us on"," ",r.createElement("a",{href:"https://discord.gg/nXrShaa",target:"_blank",rel:"noopener noreferrer"},"discord"),"!"),r.createElement("div",{className:"text-xs"},r.createElement("h3",null,"Build Info"),r.createElement("ul",null,r.createElement("li",null,"dbrevision: ","e5389b9dfe9c25c9881f1366299d1a8aef352604"),r.createElement("li",null,"Build date: ",e.buildTime.slice(0,19))))))}}}]);