13 Commits

Author SHA1 Message Date
dependabot[bot]
802ecb2deb Bump @isaacs/brace-expansion from 5.0.0 to 5.0.1
Bumps @isaacs/brace-expansion from 5.0.0 to 5.0.1.

---
updated-dependencies:
- dependency-name: "@isaacs/brace-expansion"
  dependency-version: 5.0.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-02-03 20:15:15 +00:00
fc5e57305e Merge pull request #8 from cupcakearmy/dependabot/npm_and_yarn/mdast-util-to-hast-13.2.1
Bump mdast-util-to-hast from 13.2.0 to 13.2.1
2025-12-07 02:05:35 +01:00
2ef7a55e0c Merge pull request #9 from cupcakearmy/dependabot/npm_and_yarn/next-15.5.7
Bump next from 15.5.2 to 15.5.7
2025-12-07 02:05:25 +01:00
dependabot[bot]
c92d6bdd49 Bump next from 15.5.2 to 15.5.7
Bumps [next](https://github.com/vercel/next.js) from 15.5.2 to 15.5.7.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v15.5.2...v15.5.7)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 15.5.7
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-03 19:11:58 +00:00
dependabot[bot]
8df5ecc303 Bump mdast-util-to-hast from 13.2.0 to 13.2.1
Bumps [mdast-util-to-hast](https://github.com/syntax-tree/mdast-util-to-hast) from 13.2.0 to 13.2.1.
- [Release notes](https://github.com/syntax-tree/mdast-util-to-hast/releases)
- [Commits](https://github.com/syntax-tree/mdast-util-to-hast/compare/13.2.0...13.2.1)

---
updated-dependencies:
- dependency-name: mdast-util-to-hast
  dependency-version: 13.2.1
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-12-02 03:50:41 +00:00
b91dc261d1 remove pdf passsowrd 2025-10-06 10:28:08 +02:00
c0f8de1f86 remove banner 2025-09-06 19:38:18 +02:00
7864c38371 update to nextra 4 2025-09-06 19:19:45 +02:00
d17a565130 update deps 2025-09-06 18:52:03 +02:00
12f5d932b1 Merge pull request #6 from cupcakearmy/dependabot/npm_and_yarn/next-14.2.32
Bump next from 14.2.30 to 14.2.32
2025-08-31 13:52:34 +02:00
dependabot[bot]
306eddf4bf Bump next from 14.2.30 to 14.2.32
Bumps [next](https://github.com/vercel/next.js) from 14.2.30 to 14.2.32.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v14.2.30...v14.2.32)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 14.2.32
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-08-31 11:50:46 +00:00
ae86edf961 Merge pull request #5 from cupcakearmy/dependabot/npm_and_yarn/next-14.2.30
Bump next from 14.2.21 to 14.2.30
2025-08-31 13:49:36 +02:00
dependabot[bot]
91d15569a6 Bump next from 14.2.21 to 14.2.30
Bumps [next](https://github.com/vercel/next.js) from 14.2.21 to 14.2.30.
- [Release notes](https://github.com/vercel/next.js/releases)
- [Changelog](https://github.com/vercel/next.js/blob/canary/release.js)
- [Commits](https://github.com/vercel/next.js/compare/v14.2.21...v14.2.30)

---
updated-dependencies:
- dependency-name: next
  dependency-version: 14.2.30
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-15 03:26:45 +00:00
49 changed files with 2207 additions and 1396 deletions

3
.gitignore vendored
View File

@@ -1,4 +1,3 @@
node_modules
.next
out
public

1
.nvmrc
View File

@@ -1 +0,0 @@
v22.13.0

View File

@@ -0,0 +1,27 @@
import { generateStaticParamsFor, importPage } from "nextra/pages";
import { useMDXComponents as getMDXComponents } from "../../mdx-components";
export const generateStaticParams = generateStaticParamsFor("mdxPath");
export async function generateMetadata(props) {
const params = await props.params;
const { metadata } = await importPage(params.mdxPath);
return metadata;
}
const Wrapper = getMDXComponents().wrapper;
export default async function Page(props) {
const params = await props.params;
const {
default: MDXContent,
toc,
metadata,
sourceCode,
} = await importPage(params.mdxPath);
return (
<Wrapper toc={toc} metadata={metadata} sourceCode={sourceCode}>
<MDXContent {...props} params={params} />
</Wrapper>
);
}

57
app/layout.tsx Normal file
View File

@@ -0,0 +1,57 @@
import { Footer, Layout, Navbar } from "nextra-theme-docs";
import { Banner, Head } from "nextra/components";
import { getPageMap } from "nextra/page-map";
import "nextra-theme-docs/style.css";
export const metadata = {
// Define your metadata here
// For more information on metadata API, see: https://nextjs.org/docs/app/building-your-application/optimizing/metadata
};
const navbar = (
<Navbar
projectLink="https://github.com/cupcakearmy/memoir"
logo={<b>Memoir</b>}
/>
);
const footer = (
<Footer>
<span>
MIT {new Date().getFullYear()} ©{" "}
<a href="https://github.com/cupcakearmy" target="_blank">
cupcakearmy
</a>
.
</span>
</Footer>
);
export default async function RootLayout({ children }) {
return (
<html lang="en" dir="ltr" suppressHydrationWarning>
<Head>
<script
defer
src="https://spectare.nicco.io//unicorn.js"
data-website-id="4aecaa6f-1e68-4a21-960a-8ff5aaa6599a"
></script>
</Head>
<body>
<Layout
sidebar={{
defaultMenuCollapseLevel: 1,
}}
feedback={{
content: "Question? An error? Give feedback →",
}}
navbar={navbar}
pageMap={await getPageMap()}
docsRepositoryBase="https://github.com/cupcakearmy/memoir/blob/main"
footer={footer}
>
{children}
</Layout>
</body>
</html>
);
}

View File

@@ -0,0 +1,17 @@
---
tags:
- cli
- qpdf
- pdf
- decrypt
---
# Remove password from PDFs
```bash
# Install qpdf
nix-shell -p qpdf
# Remove password
qpdf --password=YOUR_PASSWORD --decrypt input.pdf output.pdf
```

12
mdx-components.ts Normal file
View File

@@ -0,0 +1,12 @@
import { useMDXComponents as getThemeComponents } from "nextra-theme-docs"; // nextra-theme-blog or your custom theme
// Get the default MDX components
const themeComponents = getThemeComponents();
// Merge components
export function useMDXComponents(components = {}) {
return {
...themeComponents,
...components,
};
}

3
next-env.d.ts vendored
View File

@@ -1,5 +1,6 @@
/// <reference types="next" />
/// <reference types="next/image-types/global" />
/// <reference path="./.next/types/routes.d.ts" />
// NOTE: This file should not be edited
// see https://nextjs.org/docs/pages/building-your-application/configuring/typescript for more information.
// see https://nextjs.org/docs/app/api-reference/config/typescript for more information.

View File

@@ -1,13 +0,0 @@
import nextra from 'nextra'
const withNextra = nextra({
theme: 'nextra-theme-docs',
themeConfig: './theme.config.jsx',
})
export default withNextra({
output: 'export',
images: {
unoptimized: true,
},
})

5
next.config.mjs Normal file
View File

@@ -0,0 +1,5 @@
import nextra from "nextra";
const withNextra = nextra({});
export default withNextra({});

View File

@@ -1,21 +1,21 @@
{
"private": true,
"license": "MIT",
"type": "module",
"scripts": {
"build": "NEXT_TELEMETRY_DISABLED=1 next build",
"dev": "NEXT_TELEMETRY_DISABLED=1 next dev",
"start": "pnpm dlx serve out"
"dev": "next",
"build": "next build",
"start": "next start",
"postbuild": "pagefind --site .next/server/app --output-path public/_pagefind"
},
"dependencies": {
"next": "^14.2.21",
"nextra": "^3.0.15",
"nextra-theme-docs": "^3.0.15",
"react": "^18.3.1",
"react-dom": "^18.3.1"
"next": "^15.5.7",
"nextra": "^4.4.0",
"nextra-theme-docs": "^4.4.0",
"react": "^19.1.1",
"react-dom": "^19.1.1"
},
"packageManager": "pnpm@10.15.1",
"devDependencies": {
"@types/node": "22.7.7"
},
"packageManager": "pnpm@9.12.2"
"@types/node": "24.3.1",
"@types/react": "19.1.12",
"pagefind": "^1.4.0"
}
}

3382
pnpm-lock.yaml generated

File diff suppressed because it is too large Load Diff

2
pnpm-workspace.yaml Normal file
View File

@@ -0,0 +1,2 @@
onlyBuiltDependencies:
- sharp

View File

@@ -1,27 +0,0 @@
export default {
logo: <span>Memoir</span>,
docsRepositoryBase: 'https://github.com/cupcakearmy/memoir/blob/main',
project: {
link: 'https://github.com/cupcakearmy/memoir',
},
sidebar: {
defaultMenuCollapseLevel: 1,
},
feedback: {
content: 'Question? An error? Give feedback →',
},
head: (
<script defer src="https://spectare.nicco.io//unicorn.js" data-website-id="4aecaa6f-1e68-4a21-960a-8ff5aaa6599a"></script>
),
footer: {
text: (
<span>
MIT {new Date().getFullYear()} ©{' '}
<a href="https://github.com/cupcakearmy" target="_blank">
cupcakearmy
</a>
.
</span>
),
},
}

View File

@@ -1,10 +1,7 @@
{
"compilerOptions": {
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"allowJs": true,
"skipLibCheck": true,
"strict": false,
@@ -12,17 +9,16 @@
"incremental": true,
"module": "esnext",
"esModuleInterop": true,
"moduleResolution": "node",
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve"
},
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx"
],
"exclude": [
"node_modules"
"jsx": "preserve",
"plugins": [
{
"name": "next"
}
]
},
"include": ["next-env.d.ts", ".next/types/**/*.ts", "**/*.ts", "**/*.tsx"],
"exclude": ["node_modules"]
}