Author SHA1 Message Date
klemek 303e8e2dd2 chore: release 1.9.3
Deploy / Build (push) Successful in 1m13s
Lint / ESLint (push) Successful in 2m58s
Deploy / Deploy to Stapler (push) Successful in 3m15s
Lint / Oxlint (push) Successful in 3m36s
Lint / TypeScript (push) Successful in 3m31s
2026-07-17 11:15:09 +02:00
klemek c567a6a9d5 tools(make): release target 2026-07-17 11:13:17 +02:00
klemek f92baf3b82 feat: obfuscate build files
Deploy / Build (push) Has been cancelled
Deploy / Deploy to Stapler (push) Has been cancelled
Lint / ESLint (push) Has been cancelled
Lint / Oxlint (push) Has been cancelled
Lint / TypeScript (push) Has been cancelled
2026-07-17 11:09:43 +02:00
klemek 6680d464c3 ci: detect changes and use actions/stapler-deploy
Lint / Oxlint (push) Successful in 3m36s
Lint / ESLint (push) Successful in 3m36s
Lint / TypeScript (push) Successful in 3m36s
Deploy / Deploy to Stapler (push) Successful in 4m24s
Deploy / Build (push) Successful in 6m3s
2026-05-02 23:50:47 +02:00
klemek b6a5460a04 fix(ci): bug with Type Check job name
Lint / TypeScript (push) Successful in 18m9s
Lint / ESLint (push) Successful in 18m48s
Lint / Oxlint (push) Successful in 18m32s
Deploy / Build (push) Successful in 19m31s
Deploy / Deploy to Stapler (push) Successful in 3m54s
2026-05-02 21:16:42 +02:00
klemek 84c408d149 fix(deploy): stapler fail with body
Lint / Type Check (push) Failing after 7m40s
Lint / Oxlint (push) Successful in 10m30s
Lint / ESLint (push) Successful in 10m36s
Deploy / Build (push) Successful in 11m13s
Deploy / Deploy to Stapler (push) Successful in 3m35s
2026-05-02 20:11:31 +02:00
klemek 53d366f6b6 ci: use local bun action
Lint / Type Check (push) Failing after 2m2s
Lint / Oxlint (push) Successful in 2m14s
Lint / ESLint (push) Successful in 2m57s
Deploy / Build (push) Successful in 2m58s
Deploy / Deploy to Stapler (push) Successful in 3m56s
2026-05-02 19:57:21 +02:00
klemek 6beca83fa3 fix(actions): dont add bun version latest
Lint / Type Check (push) Failing after 5m19s
Lint / Oxlint (push) Successful in 6m57s
Lint / ESLint (push) Successful in 7m25s
Deploy / Deploy to Stapler (push) Successful in 2m53s
Deploy / Build (push) Successful in 8m12s
2026-05-02 00:49:39 +02:00
8 changed files with 69 additions and 57 deletions
+19 -12
View File
@@ -7,7 +7,18 @@ concurrency:
on: on:
push: push:
branches: branches:
- 'main' - "main"
paths:
- '.github/workflows/deploy.yml'
- 'package.json'
- 'bun.lock'
- 'src/**'
- 'index.html'
- 'vite.config.ts'
- 'post-build.ts'
- 'tsconfig.*'
- 'env.d.ts'
- 'vite.d.ts'
jobs: jobs:
build: build:
@@ -15,9 +26,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Set up Bun - name: Set up Bun
uses: https://github.com/oven-sh/setup-bun@v2 uses: actions/setup-bun@v2
with:
bun-version: latest
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: Install dependencies - name: Install dependencies
@@ -41,18 +50,16 @@ jobs:
name: "Deploy to Stapler" name: "Deploy to Stapler"
runs-on: ubuntu-latest runs-on: ubuntu-latest
needs: build needs: build
if: ${{ vars.STAPLER_TARGET != '' }}
steps: steps:
- name: Download production files - name: Download production files
uses: actions/download-artifact@v3 uses: actions/download-artifact@v3
with: with:
name: production-files name: production-files
path: ./dist path: ./dist
- name: Compress production files
run: tar -czC dist -f dist.tar.gz .
- name: Upload to Stapler server - name: Upload to Stapler server
run: | uses: actions/stapler-deploy@v1
curl -s -X PUT --data-binary "@dist.tar.gz" \ with:
-H 'X-Token: ${{ secrets.STAPLER_TOKEN }}' \ path: dist
${{ vars.STAPLER_CURL_ARGS }} \ token: ${{ secrets.STAPLER_TOKEN }}
${{ vars.STAPLER_TARGET }} target: ${{ github.repository }}
extra_curl_args: ${{ vars.STAPLER_CURL_ARGS }}
+19 -12
View File
@@ -4,7 +4,20 @@ concurrency:
group: lint-${{ github.ref }} group: lint-${{ github.ref }}
cancel-in-progress: true cancel-in-progress: true
on: [push, workflow_dispatch] on:
workflow_dispatch:
push:
paths:
- '.github/workflows/lint.yml'
- 'package.json'
- 'bun.lock'
- 'src/**'
- 'articles.example/**'
- '.oxlintrc.json'
- 'eslint.config.ts'
- 'tsconfig.*'
- 'env.d.ts'
- 'vite.d.ts'
jobs: jobs:
lint-eslint: lint-eslint:
@@ -12,9 +25,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Set up Bun - name: Set up Bun
uses: https://github.com/oven-sh/setup-bun@v2 uses: actions/setup-bun@v2
with:
bun-version: latest
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: Install dependencies - name: Install dependencies
@@ -29,9 +40,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Set up Bun - name: Set up Bun
uses: https://github.com/oven-sh/setup-bun@v2 uses: actions/setup-bun@v2
with:
bun-version: latest
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: Install dependencies - name: Install dependencies
@@ -41,14 +50,12 @@ jobs:
- name: Run Oxlint - name: Run Oxlint
run: bun run lint:oxlint run: bun run lint:oxlint
type-check: tsc:
name: Type Check name: 'TypeScript'
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Set up Bun - name: Set up Bun
uses: https://github.com/oven-sh/setup-bun@v2 uses: actions/setup-bun@v2
with:
bun-version: latest
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v6 uses: actions/checkout@v6
- name: Install dependencies - name: Install dependencies
-9
View File
@@ -1,9 +0,0 @@
{
"recommendations": [
"Vue.volar",
"dbaeumer.vscode-eslint",
"EditorConfig.EditorConfig",
"oxc.oxc-vscode",
"esbenp.prettier-vscode"
]
}
+10 -2
View File
@@ -31,8 +31,8 @@ node_modules: bun.lock
.PHONY: install .PHONY: install
install: npm-install ## install project install: npm-install ## install project
.PHONY: install .PHONY: update
install: npm-update ## update project update: npm-update ## update project
.PHONY: build .PHONY: build
build: npm-run-build ## build static site in "dist" build: npm-run-build ## build static site in "dist"
@@ -59,3 +59,11 @@ npm-update: ## npm update
.PHONY: npm-run-% .PHONY: npm-run-%
npm-run-%: node_modules ## npm run (script) npm-run-%: node_modules ## npm run (script)
$(NPM) run $* $(NPM) run $*
.PHONY: release-%
release-%: node_modules ## release major/minor/patch
$(NPM) pm version $* --no-git-tag-version || true
git add package.json
git commit -m "chore: release $$(cat package.json | jq -r .version)"
git tag "release/$$(cat package.json | jq -r .version)" -m "md-blog $$(cat package.json | jq -r .version)"
+1
View File
@@ -1,5 +1,6 @@
{ {
"lockfileVersion": 1, "lockfileVersion": 1,
"configVersion": 0,
"workspaces": { "workspaces": {
"": { "": {
"name": "md-blog", "name": "md-blog",
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "md-blog", "name": "md-blog",
"version": "1.9.2", "version": "1.9.3",
"private": true, "private": true,
"type": "module", "type": "module",
"repository": "https://git.klemek.fr/klemek/md-blog", "repository": "https://git.klemek.fr/klemek/md-blog",
+14 -1
View File
@@ -18,7 +18,6 @@ export default ({ mode }: { mode: string }) => {
return defineConfig({ return defineConfig({
plugins: [vue(), vueDevTools(), mdPlugin({ mode: [Mode.HTML] })], plugins: [vue(), vueDevTools(), mdPlugin({ mode: [Mode.HTML] })],
base: process.env.VITE_BASE_URL,
resolve: { resolve: {
alias: { alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)), '@': fileURLToPath(new URL('./src', import.meta.url)),
@@ -29,5 +28,19 @@ export default ({ mode }: { mode: string }) => {
'@components': fileURLToPath(new URL('./src/components', import.meta.url)), '@components': fileURLToPath(new URL('./src/components', import.meta.url)),
}, },
}, },
build: {
rolldownOptions: {
output: {
codeSplitting: {
groups: [
{
name: (moduleId: string) => moduleId.includes('node_modules') ? 'libs' : 'app',
maxSize: 1024 * 1024,
}
]
}
}
}
}
}) })
} }
Vendored
+1 -16
View File
@@ -2,26 +2,11 @@ declare module '*.md' {
// "unknown" would be more detailed depends on how you structure frontmatter // "unknown" would be more detailed depends on how you structure frontmatter
const attributes: Record<string, unknown> const attributes: Record<string, unknown>
// When "Mode.TOC" is requested
const toc: { level: string; content: string }[]
// When "Mode.HTML" is requested // When "Mode.HTML" is requested
const html: string const html: string
// When "Mode.RAW" is requested
const raw: string
// When "Mode.React" is requested. VFC could take a generic like React.VFC<{ MyComponent: TypeOfMyComponent }>
import React from 'react'
const ReactComponent: React.VFC
// When "Mode.Vue" is requested
import { ComponentOptions, Component } from 'vue'
const VueComponent: ComponentOptions
const VueComponentWith: (components: Record<string, Component>) => ComponentOptions
// Modify below per your usage // Modify below per your usage
export { attributes, toc, html, ReactComponent, VueComponent, VueComponentWith } export { html }
} }
declare module '*.vue' declare module '*.vue'