This commit is contained in:
parent
bf8823b998
commit
032a2285ec
71
.dockerignore
Normal file
71
.dockerignore
Normal file
@ -0,0 +1,71 @@
|
||||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
yarn-error.log*
|
||||
|
||||
# Runtime data
|
||||
pids
|
||||
*.pid
|
||||
*.seed
|
||||
*.pid.lock
|
||||
|
||||
# Directory for instrumented libs generated by jscoverage/JSCover
|
||||
lib-cov
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
|
||||
# nyc test coverage
|
||||
.nyc_output
|
||||
|
||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
||||
.grunt
|
||||
|
||||
# Bower dependency directory (https://bower.io/)
|
||||
bower_components
|
||||
|
||||
# node-waf configuration
|
||||
.lock-wscript
|
||||
|
||||
# Compiled binary addons (http://nodejs.org/api/addons.html)
|
||||
build/Release
|
||||
|
||||
# Dependency directories
|
||||
node_modules
|
||||
jspm_packages
|
||||
**/node_modules/**
|
||||
|
||||
# Typescript v1 declaration files
|
||||
typings/
|
||||
|
||||
# Optional npm cache directory
|
||||
.npm
|
||||
|
||||
# Optional eslint cache
|
||||
.eslintcache
|
||||
|
||||
# Optional REPL history
|
||||
.node_repl_history
|
||||
|
||||
# Output of 'npm pack'
|
||||
*.tgz
|
||||
|
||||
# Yarn Integrity file
|
||||
.yarn-integrity
|
||||
|
||||
# dotenv environment variables file
|
||||
.env
|
||||
.env.*
|
||||
!.env.example
|
||||
|
||||
.cache
|
||||
**/.cache
|
||||
public
|
||||
|
||||
.idea
|
||||
.vscode
|
||||
.DS_Store
|
||||
|
||||
secrets.txt
|
148
.drone.yml
Normal file
148
.drone.yml
Normal file
@ -0,0 +1,148 @@
|
||||
---
|
||||
kind: pipeline
|
||||
name: base
|
||||
type: docker
|
||||
|
||||
steps:
|
||||
- name: install
|
||||
image: plugins/docker
|
||||
settings:
|
||||
registry: docker-registry.ivanli.cc
|
||||
username:
|
||||
from_secret: ivan-docker-username
|
||||
password:
|
||||
from_secret: ivan-docker-password
|
||||
repo: docker-registry.ivanli.cc/ivan/gatsby-blog
|
||||
cache_from:
|
||||
- docker-registry.ivanli.cc/ivan/gatsby-blog:${DRONE_BRANCH}${DRONE_TAG}-amd64
|
||||
dockerfile: Dockerfile
|
||||
build_args:
|
||||
- BUILDKIT_INLINE_CACHE=1
|
||||
target: base
|
||||
tags:
|
||||
- '${DRONE_COMMIT_SHA:0:8}-amd64'
|
||||
- '${DRONE_BRANCH}${DRONE_TAG}-amd64'
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
name: linux-amd64
|
||||
type: docker
|
||||
depends_on:
|
||||
- base
|
||||
|
||||
steps:
|
||||
- name: build&publish
|
||||
image: plugins/docker
|
||||
settings:
|
||||
registry: docker-registry.ivanli.cc
|
||||
username:
|
||||
from_secret: ivan-docker-username
|
||||
password:
|
||||
from_secret: ivan-docker-password
|
||||
repo: docker-registry.ivanli.cc/ivan/gatsby-blog
|
||||
dockerfile: Dockerfile
|
||||
target: release
|
||||
cache_from:
|
||||
- docker-registry.ivanli.cc/ivan/gatsby-blog:${DRONE_COMMIT_SHA:0:8}-amd64
|
||||
tags:
|
||||
- '${DRONE_COMMIT_SHA:0:8}'
|
||||
- '${DRONE_BRANCH}${DRONE_TAG}'
|
||||
- name: notify
|
||||
image: appleboy/drone-telegram
|
||||
failure: ignore
|
||||
when:
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
environment:
|
||||
PLUGIN_TOKEN:
|
||||
from_secret: drone-telegram-bot-token
|
||||
PLUGIN_TO:
|
||||
from_secret: telegram-notify-to
|
||||
settings:
|
||||
format: markdown
|
||||
message: >
|
||||
{{#success build.status}}
|
||||
✅ Build #{{build.number}} of `{{repo.name}}` succeeded.
|
||||
📝 Commit by {{commit.author}} on `{{commit.branch}}`:
|
||||
```
|
||||
{{commit.message}}
|
||||
```
|
||||
🌐 {{ build.link }}
|
||||
{{else}}
|
||||
❌ Build #{{build.number}} of `{{repo.name}}` failed.
|
||||
📝 Commit by {{commit.author}} on `{{commit.branch}}`:
|
||||
```
|
||||
{{commit.message}}
|
||||
```
|
||||
🌐 {{ build.link }}
|
||||
{{/success}}
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
- main
|
||||
- develop
|
||||
|
||||
---
|
||||
kind: pipeline
|
||||
type: docker
|
||||
name: deploy
|
||||
clone:
|
||||
disable: true
|
||||
depends_on:
|
||||
- linux-amd64
|
||||
volumes:
|
||||
- name: dockersock
|
||||
host:
|
||||
path: /var/run/docker.sock
|
||||
- name: fennec
|
||||
host:
|
||||
path: /home/ivan/srv/fennec
|
||||
|
||||
steps:
|
||||
- name: deploy
|
||||
image: plugins/webhook
|
||||
settings:
|
||||
token-value:
|
||||
from_secret: watchtower-webhook-token
|
||||
token-type: Bearer
|
||||
urls: http://101.local/v1/update
|
||||
content_type: application/json
|
||||
template: |
|
||||
{
|
||||
"owner": "{{ repo.owner }}",
|
||||
"repo": "{{ repo.name }}",
|
||||
"status": "{{ build.status }}",
|
||||
}
|
||||
|
||||
- name: notify
|
||||
image: appleboy/drone-telegram
|
||||
when:
|
||||
status:
|
||||
- success
|
||||
- failure
|
||||
failure: ignore
|
||||
environment:
|
||||
PLUGIN_TOKEN:
|
||||
from_secret: drone-telegram-bot-token
|
||||
PLUGIN_TO:
|
||||
from_secret: telegram-notify-to
|
||||
settings:
|
||||
format: markdown
|
||||
message: >
|
||||
{{#success build.status}}
|
||||
✅ Deploy #{{build.number}} of `{{repo.name}}` succeeded.
|
||||
📝 Commit by {{commit.author}} on `{{commit.branch}}`:
|
||||
```
|
||||
{{commit.message}}
|
||||
```
|
||||
🌐 {{ build.link }}
|
||||
{{else}}
|
||||
❌ Deploy #{{build.number}} of `{{repo.name}}` failed.
|
||||
📝 Commit by {{commit.author}} on `{{commit.branch}}`:
|
||||
```
|
||||
{{commit.message}}
|
||||
```
|
||||
🌐 {{ build.link }}
|
||||
{{/success}}
|
4
.gitignore
vendored
4
.gitignore
vendored
@ -66,4 +66,6 @@ public
|
||||
|
||||
.idea
|
||||
.vscode
|
||||
.DS_Store
|
||||
.DS_Store
|
||||
|
||||
secrets.txt
|
13
Dockerfile
Normal file
13
Dockerfile
Normal file
@ -0,0 +1,13 @@
|
||||
FROM node:16-alpine as base
|
||||
# RUN apk add --no-cache make gcc g++ python3
|
||||
WORKDIR /app
|
||||
COPY package-lock.json package.json ./
|
||||
RUN npm ci --no-audit --legacy-peer-deps
|
||||
COPY . .
|
||||
FROM node:16-alpine as release
|
||||
WORKDIR /app
|
||||
COPY --from=base /app ./
|
||||
RUN npm run build &&\
|
||||
npm prune --omit dev
|
||||
EXPOSE 80
|
||||
CMD npm run serve -- -H 0.0.0.0 -p 80
|
@ -1,8 +1,12 @@
|
||||
---
|
||||
title: About
|
||||
title: Ivan Li
|
||||
slug: "/about"
|
||||
---
|
||||
你好呀!
|
||||
|
||||
Hi!
|
||||
我是 Ivan Li,从事 Web 全栈开发工作,最近在研究电子电路与嵌入式开发。这是我的博客,用来与到访的你分享我的繁星点点。
|
||||
|
||||
I'm LekoArts, a designer turned software engineer passionate about open source & teaching. Learn more about Gatsby & React on [my website](https://www.lekoarts.de?utm_source=minimal-blog&utm_medium=Starter).
|
||||
我平常做 Web 开发一般会使用 React、Angular、Vue、NestJS 相关生态,我偏好 PostgreSQL 存储数据。我喜欢 MacOS 和 ArchLinux。
|
||||
我正在学习 Rust 语言,它非常棒,我在用 Rust 和 ESP 32-C3 实现一些嵌入式的工程。我还在慢慢摸索电子电路知识,希望我能平安地学到足够用的知识。
|
||||
|
||||
哦,对了!因为平常使用 [Logseq](https://notes.ivanli.cc/) 做记录,它相当于我的扩展记忆体,我的很多公开内容都在那儿。不过最后我会找个时间,将内容梳理过来,请放心。
|
@ -7,14 +7,14 @@ module.exports = {
|
||||
// You can overwrite values here that are used for the SEO component
|
||||
// You can also add new values here to query them like usual
|
||||
// See all options: https://github.com/LekoArts/gatsby-themes/blob/main/themes/gatsby-theme-minimal-blog/gatsby-config.js
|
||||
siteTitle: `Minimal Blog`,
|
||||
siteTitleAlt: `Minimal Blog - Gatsby Theme`,
|
||||
siteHeadline: `Minimal Blog - Gatsby Theme from @lekoarts`,
|
||||
siteUrl: `https://minimal-blog.lekoarts.de`,
|
||||
siteDescription: `Typography driven, feature-rich blogging theme with minimal aesthetics. Includes tags/categories support and extensive features for code blocks such as live preview, line numbers, and line highlighting.`,
|
||||
siteLanguage: `en`,
|
||||
siteTitle: `Ivan's Blog`,
|
||||
siteTitleAlt: `Ivan Li 的个人博客`,
|
||||
siteHeadline: `Ivan Li 的个人博客`,
|
||||
siteUrl: `https://ivanli.cc/`,
|
||||
siteDescription: `一个 Web 全栈开发者、嵌入式开发爱好者,与你分享我的工作和生活。专注 React、Node.js、Rust,热爱 Self-Hosted、IoT、硬件。`,
|
||||
siteLanguage: `zh`,
|
||||
siteImage: `/banner.jpg`,
|
||||
author: `@lekoarts_de`,
|
||||
author: `Ivan Li`,
|
||||
},
|
||||
plugins: [
|
||||
{
|
||||
@ -31,16 +31,16 @@ module.exports = {
|
||||
slug: `/about`,
|
||||
},
|
||||
],
|
||||
externalLinks: [
|
||||
{
|
||||
name: `Twitter`,
|
||||
url: `https://twitter.com/lekoarts_de`,
|
||||
},
|
||||
{
|
||||
name: `Homepage`,
|
||||
url: `https://www.lekoarts.de?utm_source=minimal-blog&utm_medium=Starter`,
|
||||
},
|
||||
],
|
||||
// externalLinks: [
|
||||
// {
|
||||
// name: `Twitter`,
|
||||
// url: `https://twitter.com/lekoarts_de`,
|
||||
// },
|
||||
// {
|
||||
// name: `Homepage`,
|
||||
// url: `https://www.lekoarts.de?utm_source=minimal-blog&utm_medium=Starter`,
|
||||
// },
|
||||
// ],
|
||||
},
|
||||
},
|
||||
{
|
||||
@ -62,9 +62,9 @@ module.exports = {
|
||||
{
|
||||
resolve: `gatsby-plugin-manifest`,
|
||||
options: {
|
||||
name: `minimal-blog - @lekoarts/gatsby-theme-minimal-blog`,
|
||||
short_name: `minimal-blog`,
|
||||
description: `Typography driven, feature-rich blogging theme with minimal aesthetics. Includes tags/categories support and extensive features for code blocks such as live preview, line numbers, and code highlighting.`,
|
||||
name: `Ivan Li 的个人博客`,
|
||||
short_name: `Ivan's Blog`,
|
||||
description: `一个 Web 全栈开发者、嵌入式开发爱好者,与你分享我的工作和生活。专注 React、Node.js、Rust,热爱 Self-Hosted、IoT、硬件。`,
|
||||
start_url: `/`,
|
||||
background_color: `#fff`,
|
||||
// This will impact how browsers show your PWA/website
|
||||
|
2587
package-lock.json
generated
2587
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
10
package.json
10
package.json
@ -9,14 +9,14 @@
|
||||
"scripts": {
|
||||
"build": "gatsby build",
|
||||
"develop": "gatsby develop",
|
||||
"develop:cypress": "cross-env CYPRESS_SUPPORT=y yarn develop",
|
||||
"build:cypress": "cross-env CYPRESS_SUPPORT=y yarn build",
|
||||
"develop:cypress": "cross-env CYPRESS_SUPPORT=y npm run develop",
|
||||
"build:cypress": "cross-env CYPRESS_SUPPORT=y npm run build",
|
||||
"start": "gatsby develop",
|
||||
"serve": "gatsby serve",
|
||||
"clean": "gatsby clean"
|
||||
},
|
||||
"dependencies": {
|
||||
"@lekoarts/gatsby-theme-minimal-blog": "^4.0.0",
|
||||
"@lekoarts/gatsby-theme-minimal-blog": "^4.1.7",
|
||||
"gatsby": "^4.18.2",
|
||||
"gatsby-omni-font-loader": "^2.0.0",
|
||||
"gatsby-plugin-feed": "^4.18.1",
|
||||
@ -24,8 +24,8 @@
|
||||
"gatsby-plugin-manifest": "^4.18.1",
|
||||
"gatsby-plugin-sitemap": "^5.18.1",
|
||||
"gatsby-plugin-webpack-bundle-analyser-v2": "^1.1.27",
|
||||
"react": "^18.0.0",
|
||||
"react-dom": "^18.0.0"
|
||||
"react": "^18.2.0",
|
||||
"react-dom": "^18.2.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"cross-env": "^7.0.3"
|
||||
|
@ -1,5 +1,10 @@
|
||||
<Text sx={{ fontSize: [4, 5, 6], fontWeight: `bold`, color: `heading` }}>
|
||||
Hi.
|
||||
你好呀!
|
||||
</Text>
|
||||
|
||||
I'm LekoArts, your theme creator. I'm passionate about open source & teaching. Learn more about Gatsby & React on [my website](https://www.lekoarts.de?utm_source=minimal-blog&utm_medium=Starter).
|
||||
我是 Ivan Li,从事 Web 全栈开发工作,最近在研究电子电路与嵌入式开发。这是我的博客,用来与到访的你分享我的繁星点点。
|
||||
|
||||
我平常做 Web 开发一般会使用 React、Angular、Vue、NestJS 相关生态,我偏好 PostgreSQL 存储数据。我喜欢 MacOS 和 ArchLinux。
|
||||
我正在学习 Rust 语言,它非常棒,我在用 Rust 和 ESP 32-C3 实现一些嵌入式的工程。我还在慢慢摸索电子电路知识,希望我能平安地学到足够用的知识。
|
||||
|
||||
哦,对了!因为平常使用 Logseq 做记录,它相当于我的扩展记忆体,我的很多公开内容都在那。不过最后我会找个时间,将内容梳理过来,请放心。
|
@ -1,3 +1,3 @@
|
||||
User-agent: *
|
||||
|
||||
sitemap: https://minimal-blog.lekoarts.de/sitemap.xml
|
||||
sitemap: https://ivanli.cc/sitemap.xml
|
Loading…
Reference in New Issue
Block a user