chore: update deps

This commit is contained in:
Andrea 2024-02-05 17:41:19 +01:00
parent 6b453ddc2d
commit 398e00542b
No known key found for this signature in database
GPG Key ID: 4594610B9C8F91C5
6 changed files with 26 additions and 86 deletions

View File

@ -1,6 +1,6 @@
import type { LoaderFunctionArgs } from "@remix-run/node"; import type { LoaderFunctionArgs } from "@remix-run/node";
import { useLoaderData } from "@remix-run/react"; import { useLoaderData } from "@remix-run/react";
import { getMDXComponent } from "mdx-bundler/client"; import { getMDXComponent } from "mdx-bundler/client/index.js";
import React from "react"; import React from "react";
import { BlogWrapper } from "~/components/BlogWrapper"; import { BlogWrapper } from "~/components/BlogWrapper";
import { Title } from "~/components/Title"; import { Title } from "~/components/Title";

View File

@ -1,7 +1,6 @@
import { remarkCodeHike } from "@code-hike/mdx"; import { remarkCodeHike } from "@code-hike/mdx";
import { readdir, readFile } from "fs/promises"; import { readdir, readFile } from "fs/promises";
import { bundleMDX } from "mdx-bundler"; import { bundleMDX } from "mdx-bundler";
import codeHikeTheme from "shiki/themes/one-dark-pro.json";
type FrontMatter = { type FrontMatter = {
title: string; title: string;
@ -11,7 +10,7 @@ type FrontMatter = {
export const getMdxFile = async (file: string) => { export const getMdxFile = async (file: string) => {
return bundleMDX<FrontMatter>({ return bundleMDX<FrontMatter>({
source: (await readFile(`${__dirname}/../posts/${file}.mdx`)).toString(), source: (await readFile(`posts/${file}.mdx`)).toString(),
mdxOptions(options) { mdxOptions(options) {
return { return {
rehypePlugins: [...(options.rehypePlugins ?? [])], rehypePlugins: [...(options.rehypePlugins ?? [])],
@ -20,7 +19,7 @@ export const getMdxFile = async (file: string) => {
[ [
remarkCodeHike, remarkCodeHike,
{ {
theme: codeHikeTheme, theme: "one-dark-pro",
lineNumbers: true, lineNumbers: true,
showCopyButton: true, showCopyButton: true,
autoImport: true, autoImport: true,
@ -33,20 +32,20 @@ export const getMdxFile = async (file: string) => {
}; };
export const findPosts = async () => { export const findPosts = async () => {
const files = await readdir(`${__dirname}/../posts`); const files = await readdir(`posts`);
const posts: (FrontMatter & { const posts: (FrontMatter & {
filename: string; filename: string;
})[] = []; })[] = [];
for (const file of files.filter((file) => file.endsWith(".mdx"))) { for (const file of files.filter((file) => file.endsWith(".mdx"))) {
const { frontmatter } = await bundleMDX<FrontMatter>({ const { frontmatter } = await bundleMDX<FrontMatter>({
source: (await readFile(`${__dirname}/../posts/${file}`)).toString(), source: (await readFile(`posts/${file}`)).toString(),
mdxOptions() { mdxOptions() {
return { return {
remarkPlugins: [ remarkPlugins: [
[ [
remarkCodeHike, remarkCodeHike,
{ {
theme: codeHikeTheme, theme: "one-dark-pro",
lineNumbers: true, lineNumbers: true,
showCopyButton: true, showCopyButton: true,
autoImport: true, autoImport: true,

75
package-lock.json generated
View File

@ -14,7 +14,7 @@
"mdx-bundler": "^10.0.1", "mdx-bundler": "^10.0.1",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"shiki": "^0.14.3" "react-icons": "^5.0.1"
}, },
"devDependencies": { "devDependencies": {
"@remix-run/dev": "^2.1.0", "@remix-run/dev": "^2.1.0",
@ -23,7 +23,6 @@
"@types/react": "^18.2.18", "@types/react": "^18.2.18",
"@types/react-dom": "^18.2.7", "@types/react-dom": "^18.2.7",
"eslint": "^8.46.0", "eslint": "^8.46.0",
"react-icons": "^4.10.1",
"tailwindcss": "^3.3.3", "tailwindcss": "^3.3.3",
"typescript": "^5.1.6" "typescript": "^5.1.6"
} }
@ -4404,11 +4403,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/ansi-sequence-parser": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz",
"integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ=="
},
"node_modules/ansi-styles": { "node_modules/ansi-styles": {
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@ -9055,7 +9049,8 @@
"node_modules/jsonc-parser": { "node_modules/jsonc-parser": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
"integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
"dev": true
}, },
"node_modules/jsonfile": { "node_modules/jsonfile": {
"version": "6.1.0", "version": "6.1.0",
@ -12271,10 +12266,9 @@
} }
}, },
"node_modules/react-icons": { "node_modules/react-icons": {
"version": "4.10.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.10.1.tgz", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz",
"integrity": "sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==", "integrity": "sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==",
"dev": true,
"peerDependencies": { "peerDependencies": {
"react": "*" "react": "*"
} }
@ -12800,17 +12794,6 @@
"node": ">=8" "node": ">=8"
} }
}, },
"node_modules/shiki": {
"version": "0.14.3",
"resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.3.tgz",
"integrity": "sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==",
"dependencies": {
"ansi-sequence-parser": "^1.1.0",
"jsonc-parser": "^3.2.0",
"vscode-oniguruma": "^1.7.0",
"vscode-textmate": "^8.0.0"
}
},
"node_modules/side-channel": { "node_modules/side-channel": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@ -14579,16 +14562,6 @@
"@esbuild/win32-x64": "0.16.17" "@esbuild/win32-x64": "0.16.17"
} }
}, },
"node_modules/vscode-oniguruma": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
"integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA=="
},
"node_modules/vscode-textmate": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz",
"integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg=="
},
"node_modules/wcwidth": { "node_modules/wcwidth": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
@ -17669,11 +17642,6 @@
"integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
"dev": true "dev": true
}, },
"ansi-sequence-parser": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.0.tgz",
"integrity": "sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ=="
},
"ansi-styles": { "ansi-styles": {
"version": "4.3.0", "version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
@ -20904,7 +20872,8 @@
"jsonc-parser": { "jsonc-parser": {
"version": "3.2.0", "version": "3.2.0",
"resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz",
"integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==" "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==",
"dev": true
}, },
"jsonfile": { "jsonfile": {
"version": "6.1.0", "version": "6.1.0",
@ -23045,10 +23014,9 @@
} }
}, },
"react-icons": { "react-icons": {
"version": "4.10.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/react-icons/-/react-icons-4.10.1.tgz", "resolved": "https://registry.npmjs.org/react-icons/-/react-icons-5.0.1.tgz",
"integrity": "sha512-/ngzDP/77tlCfqthiiGNZeYFACw85fUjZtLbedmJ5DTlNDIwETxhwBzdOJ21zj4iJdvc0J3y7yOsX3PpxAJzrw==", "integrity": "sha512-WqLZJ4bLzlhmsvme6iFdgO8gfZP17rfjYEJ2m9RsZjZ+cc4k1hTzknEz63YS1MeT50kVzoa1Nz36f4BEx+Wigw==",
"dev": true,
"requires": {} "requires": {}
}, },
"react-is": { "react-is": {
@ -23432,17 +23400,6 @@
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
"dev": true "dev": true
}, },
"shiki": {
"version": "0.14.3",
"resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.3.tgz",
"integrity": "sha512-U3S/a+b0KS+UkTyMjoNojvTgrBHjgp7L6ovhFVZsXmBGnVdQ4K4U9oK0z63w538S91ATngv1vXigHCSWOwnr+g==",
"requires": {
"ansi-sequence-parser": "^1.1.0",
"jsonc-parser": "^3.2.0",
"vscode-oniguruma": "^1.7.0",
"vscode-textmate": "^8.0.0"
}
},
"side-channel": { "side-channel": {
"version": "1.0.4", "version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
@ -24650,16 +24607,6 @@
} }
} }
}, },
"vscode-oniguruma": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz",
"integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA=="
},
"vscode-textmate": {
"version": "8.0.0",
"resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz",
"integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg=="
},
"wcwidth": { "wcwidth": {
"version": "1.0.1", "version": "1.0.1",
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",

View File

@ -1,6 +1,7 @@
{ {
"private": true, "private": true,
"sideEffects": false, "sideEffects": false,
"type": "module",
"scripts": { "scripts": {
"build": "remix build", "build": "remix build",
"dev": "remix dev", "dev": "remix dev",
@ -17,7 +18,7 @@
"mdx-bundler": "^10.0.1", "mdx-bundler": "^10.0.1",
"react": "^18.2.0", "react": "^18.2.0",
"react-dom": "^18.2.0", "react-dom": "^18.2.0",
"shiki": "^0.14.3" "react-icons": "^5.0.1"
}, },
"devDependencies": { "devDependencies": {
"@remix-run/dev": "^2.1.0", "@remix-run/dev": "^2.1.0",
@ -26,7 +27,6 @@
"@types/react": "^18.2.18", "@types/react": "^18.2.18",
"@types/react-dom": "^18.2.7", "@types/react-dom": "^18.2.7",
"eslint": "^8.46.0", "eslint": "^8.46.0",
"react-icons": "^4.10.1",
"tailwindcss": "^3.3.3", "tailwindcss": "^3.3.3",
"typescript": "^5.1.6" "typescript": "^5.1.6"
} }

View File

@ -1,13 +0,0 @@
const { remarkCodeHike } = require("@code-hike/mdx");
const theme = require("shiki/themes/one-dark-pro.json");
/** @type {import('@remix-run/dev').AppConfig} */
module.exports = {
ignoredRouteFiles: ["**/.*"],
serverDependenciesToBundle: ["mdx-bundler"],
tailwind: true,
serverModuleFormat: "cjs",
mdx: {
remarkPlugins: [[remarkCodeHike, { theme }]],
},
};

7
remix.config.ts Normal file
View File

@ -0,0 +1,7 @@
import type { AppConfig } from "@remix-run/dev";
export default {
ignoredRouteFiles: ["**/.*"],
serverDependenciesToBundle: ["mdx-bundler"],
tailwind: true,
} satisfies AppConfig;