Merge branch 'main' into develop

# Conflicts:
#	.github/workflows/ci.yaml
#	quartz.config.ts
#	quartz/components/Footer.tsx
#	quartz/components/scripts/popover.inline.ts
This commit is contained in:
jyje 2024-10-03 15:13:08 +09:00
commit dd00c8580c
36 changed files with 408 additions and 111 deletions

View File

@ -1,72 +0,0 @@
name: Build and Test
on:
pull_request:
branches:
- v4
push:
branches:
- v4
workflow_dispatch:
jobs:
build-and-test:
if: ${{ github.repository == 'jackyzha0/quartz' }}
strategy:
matrix:
os: [windows-latest, macos-latest, ubuntu-latest]
runs-on: ${{ matrix.os }}
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Cache dependencies
uses: actions/cache@v4
with:
path: ~/.npm
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- run: npm ci
- name: Check types and style
run: npm run check
- name: Test
run: npm test
- name: Ensure Quartz builds, check bundle info
run: npx quartz build --bundleInfo
publish-tag:
if: ${{ github.repository == 'jackyzha0/quartz' && github.ref == 'refs/heads/v4' }}
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: 20
- name: Get package version
run: node -p -e '`PACKAGE_VERSION=${require("./package.json").version}`' >> $GITHUB_ENV
- name: Create release tag
uses: pkgdeps/git-tag-action@v3
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
github_repo: ${{ github.repository }}
version: ${{ env.PACKAGE_VERSION }}
git_commit_sha: ${{ github.sha }}
git_tag_prefix: "v"

60
.github/workflows/deploy.yaml vendored Normal file
View File

@ -0,0 +1,60 @@
name: Deploy Quartz site to GitHub Pages
on:
pull_request:
branches:
- main
push:
branches:
- main
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: false
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0 # Fetch all history for git info
- uses: actions/setup-node@v4
with:
node-version: 18
- name: Install Dependencies
run: npm ci
- name: Build Quartz
run: npx quartz build
- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: public
deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
if: github.actor == 'jyje'
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
auto-approve:
needs: build
runs-on: ubuntu-latest
permissions:
pull-requests: write
if: github.actor == 'dependabot[bot]'
steps:
- uses: hmarr/auto-approve-action@v4
with:
review-message: "Auto approved automated PR"

12
.github/workflows/utterances.yaml vendored Normal file
View File

@ -0,0 +1,12 @@
name: Control utterances issue
on:
issues:
types: [opened]
jobs:
close-issue:
runs-on: ubuntu-latest
steps:
- name: Close Issue
if: github.event.issue.user.login == 'utterances-bot'
uses: peter-evans/close-issue@v3

View File

@ -1,18 +1,3 @@
# Quartz v4
# docs
> “[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important.” — Richard Hamming
Quartz is a set of tools that helps you publish your [digital garden](https://jzhao.xyz/posts/networked-thought) and notes as a website for free.
Quartz v4 features a from-the-ground rewrite focusing on end-user extensibility and ease-of-use.
🔗 Read the documentation and get started: https://quartz.jzhao.xyz/
[Join the Discord Community](https://discord.gg/cRFFHYye7t)
## Sponsors
<p align="center">
<a href="https://github.com/sponsors/jackyzha0">
<img src="https://cdn.jsdelivr.net/gh/jackyzha0/jackyzha0/sponsorkit/sponsors.svg" />
</a>
</p>
Please check [here](https://docs.jyje.live)

18
README.v4.md Normal file
View File

@ -0,0 +1,18 @@
# Quartz v4
> “[One] who works with the door open gets all kinds of interruptions, but [they] also occasionally gets clues as to what the world is and what might be important.” — Richard Hamming
Quartz is a set of tools that helps you publish your [digital garden](https://jzhao.xyz/posts/networked-thought) and notes as a website for free.
Quartz v4 features a from-the-ground rewrite focusing on end-user extensibility and ease-of-use.
🔗 Read the documentation and get started: https://quartz.jzhao.xyz/
[Join the Discord Community](https://discord.gg/cRFFHYye7t)
## Sponsors
<p align="center">
<a href="https://github.com/sponsors/jackyzha0">
<img src="https://cdn.jsdelivr.net/gh/jackyzha0/jackyzha0/sponsorkit/sponsors.svg" />
</a>
</p>

17
content/DevOps/Argo CD.md Normal file
View File

@ -0,0 +1,17 @@
---
title:
draft: false
tags:
- key-terms
- argo-proj
aliases: []
---
# #정의
- [[Kubernetes|쿠버네티스]]의 어플리케이션 배포 엔진
# #어원
- 애플리케이션의 이름인 아르고의 어원은 [[Argo Project#어원]]에서 찾을 수 있다.

View File

@ -0,0 +1,18 @@
---
title:
draft: false
tags:
- key-terms
- argo-proj
aliases:
- 아르고 이벤트
---
# #정의
- [[Argo Workflows|아르고 워크플로우]]의 이벤트 관리 엔진
# #어원
- 애플리케이션의 이름인 아르고의 어원은 [[Argo Project#어원]]에서 찾을 수 있다.

View File

@ -0,0 +1,60 @@
---
title:
draft: false
tags:
- argo-proj
aliases:
- 아르고 프로젝트
---
# #정의
- [Intuit](https://www.intuit.com/careers/teams/software-engineering)사에서 개발한 [[Kubernetes|쿠버네티스]] 확장 오픈소스 프로젝트
# #어원
아르고 프로젝트의 어원은 [프로젝트 창시자의 인터뷰](https://www.decibel.vc/articles/akuity-setting-sail-with-argo-for-every-cloud-native-journey)에서 찾아볼 수 있다:
> [!quote] Jesse Suen - Co-creator of Akuity Inc.
> Argonauts are groups of hard-working deep-sea octopuses that traverse undersea and perform numerous tasks critical to marine biology. When you are building a distributed system on containers such as Kubernetes, Argo makes it possible to orchestrate numerous steps that would be very difficult to do without some extra hands. Though an army of Argonauts are limited to 8 arms each, Argo itself has virtually no limitations in the number of containers it can orchestrate in the cloud.
>
> 아르고는 열심히 일하는 심해 문어 집단으로 해저를 횡단하며 해양생물학에 중요한 수많은 작업을 수행합니다. 쿠버네티스와 같은 컨테이너에 분산 시스템을 구축할 때, 아르고는 별도의 손 없이는 매우 어려운 수많은 단계를 조정할 수 있습니다. 아르고는 아르고로 구성된 군대가 각각 8개의 팔로 제한되어 있지만, 클라우드에서 조정할 수 있는 컨테이너 수에는 사실상 제한이 없습니다.
위 내용을 바탕으로 유추하자면:
- 아르고(Argo)는 그리스 신화에서 주로 '아르고호'와 연관되어 있으며, 아르고호는 이아손(Jason)과 아르고나우타이(Argonauts)가 황금 양털을 찾기 위한 여정에 사용한 배이다.
- 클라우드 네이티브 업계는 **해양**과 **그리스 신화**에 많은 영감을 받는다.
- 예시: 도커, [[Kubernetes|쿠버네티스]], 로키, 미미르
- 이 프로젝트는 그리스 신화와 심해 문어에 영감을 받아, 쿠버네티스를 위한 여러 업무를 하는 프로젝트로 **'아르고 (Argo)'** 라는 이름을 정하였다고 볼 수 있다.
# #소개
- 공식 페이지: https://argoproj.github.io
- 마스코트: 그리스 신화에서 영감을 얻은 **문어** ([[Argo Project#어원]] 참조)
- 하지만 우주를 여행하는 **우주 문어**의 느낌이 난다.
![argo|400](https://argoproj.github.io/static/7e59aa017f9653a5d9d22e86fe7f83bb/93d75/gitops-cd.png)
# #예시
아르고의 메인 프로젝트 4개는 다음과 같다:
- [[Argo Workflows|Workflows]]: 쿠버네티스 워크플로우 엔진
- [[Argo CD|CD]]: 쿠버네티스 배포 도구
- [[Argo Rollouts|Rollouts]]: TBA
- [[Argo Events|Events]]: 쿠버네티스 이벤트 생성 도구
그리고 실험적 프로젝트나 메인 프로젝트를 에드온 개발을 위한 [[argoproj-labs|보조 프로젝트]]가 있다.
# #스타-히스토리
#예시 에 나온 프로젝트들의 Github 스타 히스토리를 보면 꾸준히 성장하는 걸 볼 수 있다:
- 메인 프로젝트:
[![Star History Chart](https://api.star-history.com/svg?repos=argoproj/argo-workflows,argoproj/argo-cd,argoproj/argo-rollouts,argoproj/argo-events&type=Date)](https://star-history.com/#argoproj/argo-workflows&argoproj/argo-cd&argoproj/argo-rollouts&argoproj/argo-events&Date)
- 보조 프로젝트: [[argoproj-labs]] 참조

View File

@ -0,0 +1,31 @@
---
title:
draft: false
tags:
- key-terms
- argo-proj
aliases:
- 아르고 워크플로우
---
# #정의
- [[Kubernetes|쿠버네티스]]의 워크플로우 엔진
# #어원
- 워크플로우의 이름인 아르고의 어원은 [[Argo Project#어원]]에서 찾을 수 있다.
# #목적
- 쿠버네티스 파드를 원하는 순서대로 실행하여 문제를 해결한다.
# #예시
- [[Argo Events|아르고 이벤트]]와 연동해 이벤트 감지 후 파이프라인을 수행한다.
- 구체적인 예시:
- 깃허브에서 푸시 이벤트를 감지해 CI/CD 파이프라인을 수행한다.

View File

@ -0,0 +1,15 @@
---
title:
draft: false
tags:
- key-terms
- argo-workflows
aliases:
- 아르고 헤라
- 헤라
- argoproj-labs/hera
---
# #정의
- Python에서 [[Argo Workflows]]를 사용하기 위한 SDK

View File

@ -0,0 +1,18 @@
---
title:
draft: false
tags:
- key-terms
- argo-workflows
aliases:
- 워크플로우
- workflow
---
> [!Info]
> 이 사이트에서 언급하는 [[Workflow|워크플로우]]는 대부분 이 문서를 의미한다.
# #정의
- [[Argo Workflows]]를 통해 생성한 컨테이너 동작 순서

View File

@ -0,0 +1,25 @@
---
title:
draft: false
tags:
- argoproj-labs
aliases: []
---
# #정의
- [[Argo Project|아르고 프로젝트]]의 실험적인 프로젝트들
# #예시
실험적 프로젝트, 보조 프로젝트 모음
- [[argocd-image-updater|argoproj-labs/argocd-image-updater]]: [[Argo CD]]로 배포한 이미지의 태그 갱신 에드온
- [[Hera|argoproj-labs/hera]]: Python에서 [[Argo Workflows]]를 사용하기 위한 SDK
# #스타-히스토리
#예시 에 나온 프로젝트들의 Github 스타 히스토리를 보면 꾸준히 성장하는 걸 볼 수 있다:
[![Star History Chart for 'argoproj-labs'](https://api.star-history.com/svg?repos=argoproj-labs/hera,argoproj-labs/argocd-image-updater&type=Date)](https://star-history.com/#argoproj-labs/hera&argoproj-labs/argocd-image-updater&Date)

19
content/DevOps/Cluster.md Normal file
View File

@ -0,0 +1,19 @@
---
title:
draft: false
tags:
- key-terms
aliases:
- 클러스터
---
# #정의
- 같은 목적을 위해 연결된 컴퓨팅 도구들의 집합
# #예시
- **같은 네트워크에 설치된 10대의 컴퓨터**. 사용자는 한 번의 명령으로 10대의 컴퓨터를 모두 활용할 수 있다.
- **한 컴퓨터 속에 생성된 5개의 가상 머신**. 사용자는 한 번의 명령으로 5개의 가상 머신을 모두 활용할 수 있다.
- **두 컴퓨터에 각각 3개씩 생성된 가상 머신**. 이 때, 모든 가상 머신은 서로 통신할 수 있게 설정되어 있다. 사용자는 한 번의 명령으로 모든 가상 머신을 활용할 수 있다.
- **우리 집 공유기에 설치된 라즈베리 파이, 최근에 산 노트북 그리고 오래된 데스크탑**. 나는 한 번의 명령으로 모든 장비를 사용할 수 있다. 하지만 느리다.

View File

@ -0,0 +1,17 @@
---
title:
draft: false
tags:
- key-terms
aliases:
- k8s
- 쿠버네티스
---
# #정의
- 컨테이너화된 어플리케이션을 사용하여 [[Cluster|클러스터]]를 구성하는 오픈 소스 플랫폼
# #어원
- 그리스어로 선장(Captain) 혹은 조타수(Steersman)를 의미합니다.

View File

@ -0,0 +1,12 @@
---
title:
draft: false
tags:
- key-terms
aliases:
- 쿠베스프레이
- 큐브스프레이
---
# #정의
- Ansible 기반의 [[Kubernetes|쿠버네티스]] [[Cluster|클러스터]] 생성 및 관리 도구

View File

@ -0,0 +1,11 @@
---
title:
draft: false
tags:
- key-terms
aliases:
- microk8s
---
# #정의
- IoT를 위한 경량화된 [[Kubernetes|쿠버네티스]] [[Cluster|클러스터]] 생성 및 관리 도구

29
content/index.md Normal file
View File

@ -0,0 +1,29 @@
---
title: Home
draft: false
tags: []
aliases:
- Home
---
# 소개
안녕하세요. 이 사이트는 저의 지식들을 정리하고자 만든 저장소인 **🌿 디지털 가든**입니다. 주로 **👨🏼‍🔬 컴퓨터 비전, 🧑🏼‍💻 데브옵스** 등의 IT 분야를 다룹니다. 그 밖의 유용한 정보도 꾸준히 업데이트할 계획입니다. 부디 여러분에게 도움이 되었으면 좋겠습니다. 좋은 하루 되세요! 😊
- 문서에서 주로 다루는 분야는 **컴퓨터 비전, 데브옵스, 홈 서버 개발** 등의 IT 분야 입니다. 이 분야에 대한 저의 경험이 궁금하시다면, 저의 소개인 [jyje.live](https://jyje.live)에서 찾아보실 수 있습니다!
- 다른 문서는 이 창을 최대화 하면 왼쪽에 보이는 '**Explorer**'에서 탐색하실 수 있습니다.
- 이 사이트의 모든 내용은 기본적으로 [MIT license](https://github.com/jyje/docs/blob/main/LICENSE.txt)를 준수하고 있습니다. 필요한 경우 별도의 크레딧을 표기를 할 예정입니다.
# 태그
- #key-terms 태그는 주요 용어들을 나타냅니다. 해당 태그를 클릭하시거나 이 페이지 아래에 보이는 '**Graph View**'에서 #key-terms 를 클릭하여 주요 용어들을 살펴볼 수 있습니다.
---
> [!info]
> 🌏 Fundamental language of this site is Korean (🇰🇷, 한국어). So most of articles are hard to read for other-language-speakers. Please let me know if you want to read my article in English. Then I will translate it as possible 😊. All articles are under [MIT license](https://github.com/jyje/docs/blob/main/LICENSE.txt).

View File

@ -8,7 +8,7 @@ import * as Plugin from "./quartz/plugins"
*/
const config: QuartzConfig = {
configuration: {
pageTitle: "🪴 Quartz 4.0",
pageTitle: "🪴 docs.jyje.live",
pageTitleSuffix: "",
enableSPA: true,
enablePopovers: true,
@ -16,27 +16,27 @@ const config: QuartzConfig = {
provider: "plausible",
},
locale: "en-US",
baseUrl: "quartz.jzhao.xyz",
baseUrl: "docs.jyje.live",
ignorePatterns: ["private", "templates", ".obsidian"],
defaultDateType: "created",
theme: {
fontOrigin: "googleFonts",
cdnCaching: true,
typography: {
header: "Schibsted Grotesk",
body: "Source Sans Pro",
code: "IBM Plex Mono",
header: "Noto Sans KR", // Schibsted Grotesk
body: "Noto Sans KR", // Source Sans Pro
code: "Noto Sans Mono", // IBM Plex Mono
},
colors: {
lightMode: {
light: "#faf8f8",
light: "#ffffff",
lightgray: "#e5e5e5",
gray: "#b8b8b8",
darkgray: "#4e4e4e",
dark: "#2b2b2b",
secondary: "#284b63",
tertiary: "#84a59d",
highlight: "rgba(143, 159, 169, 0.15)",
secondary: "#680c2c",
tertiary: "#da185c",
highlight: "rgba(104, 12, 44, 0.15)",
textHighlight: "#fff23688",
},
darkMode: {
@ -45,9 +45,9 @@ const config: QuartzConfig = {
gray: "#646464",
darkgray: "#d4d4d4",
dark: "#ebebec",
secondary: "#7b97aa",
tertiary: "#84a59d",
highlight: "rgba(143, 159, 169, 0.15)",
secondary: "#f2bac2",
tertiary: "#da185c",
highlight: "rgba(180, 20, 76, 0.15)",
textHighlight: "#b3aa0288",
},
},

View File

@ -8,8 +8,11 @@ export const sharedPageComponents: SharedLayout = {
afterBody: [],
footer: Component.Footer({
links: {
GitHub: "https://github.com/jackyzha0/quartz",
"Discord Community": "https://discord.gg/cRFFHYye7t",
Repository: "https://github.com/jyje/docs",
License: "https://github.com/jyje/docs/blob/main/LICENSE.txt",
Bio: "https://jyje.live",
LinkedIn: "https://www.linkedin.com/in/jyje",
GitHub: "https://github.com/jyje",
},
}),
}

View File

@ -9,13 +9,20 @@ interface Options {
export default ((opts?: Options) => {
const Footer: QuartzComponent = ({ displayClass, cfg }: QuartzComponentProps) => {
const beginYear = 2022
const year = new Date().getFullYear()
const links = opts?.links ?? []
return (
<footer class={`${displayClass ?? ""}`}>
<p>
{i18n(cfg.locale).components.footer.createdWith}{" "}
<a href="https://quartz.jzhao.xyz/">Quartz v{version}</a> © {year}
<a href="https://jyje.live">jyje.live</a>
{" "}©{" "}{beginYear}-{year}.{" "}
{i18n(cfg.locale).components.footer.poweredBy}{" "}
<a href="https://quartz.jzhao.xyz">Quartz v{version}</a>
{" "}and{" "}
<a href="https://pages.github.com">GitHub Pages</a>
{" "}with .
</p>
<ul>
{Object.entries(links).map(([text, link]) => (

View File

@ -31,6 +31,7 @@ export default (() => {
<link rel="stylesheet" href={googleFontHref(cfg.theme)} />
</>
)}
<meta name="naver-site-verification" content="7e7588d7de984f2fb2f623e7b666cc6a8548f54b" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta property="og:title" content={title} />
<meta property="og:description" content={description} />

View File

@ -37,9 +37,11 @@ async function mouseEnterHandler(
targetUrl.hash = ""
targetUrl.search = ""
const response = await fetch(`${targetUrl}`).catch((err) => {
console.error(err)
})
const contents = await fetch(`${targetUrl}`)
.then((res) => res.text())
.catch((err) => {
console.error(err)
})
// bailout if another popover exists
if (hasAlreadyBeenFetched()) {

View File

@ -120,7 +120,7 @@ svg {
color: var(--secondary);
font-family: var(--headerFont);
font-size: 0.95rem;
font-weight: $semiBoldWeight;
font-weight: $boldWeight;
line-height: 1.5rem;
display: inline-block;
}
@ -145,7 +145,7 @@ svg {
font-size: 0.95rem;
display: inline-block;
color: var(--secondary);
font-weight: $semiBoldWeight;
font-weight: $boldWeight;
margin: 0;
line-height: 1.5rem;
pointer-events: none;

View File

@ -1,7 +1,7 @@
footer {
text-align: left;
margin-bottom: 4rem;
opacity: 0.7;
opacity: 0.9;
& ul {
list-style: none;

View File

@ -1,7 +1,7 @@
.recent-notes {
& > h3 {
margin: 0.5rem 0 0 0;
font-size: 1rem;
margin: 0;
}
& > ul.recent-ul {

View File

@ -33,6 +33,7 @@ export default {
title: "Explorer",
},
footer: {
poweredBy: "Powered by",
createdWith: "Erstellt mit",
},
graph: {

View File

@ -35,6 +35,7 @@ export interface Translation {
title: string
}
footer: {
poweredBy: string
createdWith: string
}
graph: {

View File

@ -33,6 +33,7 @@ export default {
title: "Explorer",
},
footer: {
poweredBy: "Powered by",
createdWith: "Created with",
},
graph: {

View File

@ -33,6 +33,7 @@ export default {
title: "Explorador",
},
footer: {
poweredBy: "Powered by",
createdWith: "Creado con",
},
graph: {

View File

@ -33,6 +33,7 @@ export default {
title: "Explorateur",
},
footer: {
poweredBy: "Powered by",
createdWith: "Créé avec",
},
graph: {

View File

@ -33,6 +33,7 @@ export default {
title: "エクスプローラー",
},
footer: {
poweredBy: "Powered by",
createdWith: "作成",
},
graph: {

View File

@ -33,6 +33,7 @@ export default {
title: "Verkenner",
},
footer: {
poweredBy: "Powered by",
createdWith: "Gemaakt met",
},
graph: {

View File

@ -33,6 +33,7 @@ export default {
title: "Explorator",
},
footer: {
poweredBy: "Powered by",
createdWith: "Creat cu",
},
graph: {

View File

@ -33,6 +33,7 @@ export default {
title: "Провідник",
},
footer: {
poweredBy: "Powered by",
createdWith: "Створено за допомогою",
},
graph: {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB