Compare commits

..

34 Commits

Author SHA1 Message Date
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
d7eaf2a06a update stats url 2025-02-18 23:18:36 +01:00
a509e476f1 windows stuff 2025-02-10 12:56:20 +01:00
aa9d0798e3 remove github runner 2025-02-05 11:04:11 +01:00
4550b301a1 formatting 2025-02-01 11:17:28 +01:00
cdec1b86b8 Merge branch 'main' of github.com:cupcakearmy/memoir 2025-02-01 11:17:16 +01:00
42dcee4dc0 drive formatting 2025-02-01 11:16:08 +01:00
b0cb5dca72 Rename remove-merged-branches to remove-merged-branch.mdes 2025-01-22 11:30:21 +01:00
914c29c087 Merge pull request #4 from cupcakearmy/dependabot/npm_and_yarn/next-14.2.21
Bump next from 14.2.15 to 14.2.21
2025-01-20 11:46:45 +01:00
5d333bee79 Create remove-merged-branches 2025-01-20 11:46:37 +01:00
dependabot[bot]
ea0b16e8c1 Bump next from 14.2.15 to 14.2.21
Bumps [next](https://github.com/vercel/next.js) from 14.2.15 to 14.2.21.
- [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.15...v14.2.21)

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

Signed-off-by: dependabot[bot] <support@github.com>
2025-01-04 02:19:13 +00:00
3e69437018 Merge pull request #3 from cupcakearmy/dependabot/npm_and_yarn/nanoid-3.3.8
Bump nanoid from 3.3.7 to 3.3.8
2024-12-17 14:59:42 +01:00
eb8815a6c2 add removing secrets from git 2024-12-16 11:51:48 +01:00
dependabot[bot]
eaac32317f Bump nanoid from 3.3.7 to 3.3.8
Bumps [nanoid](https://github.com/ai/nanoid) from 3.3.7 to 3.3.8.
- [Release notes](https://github.com/ai/nanoid/releases)
- [Changelog](https://github.com/ai/nanoid/blob/main/CHANGELOG.md)
- [Commits](https://github.com/ai/nanoid/compare/3.3.7...3.3.8)

---
updated-dependencies:
- dependency-name: nanoid
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
2024-12-14 18:55:16 +00:00
48c8dc4ad9 add umami 2024-12-06 13:42:37 +01:00
dcef283b92 update to nextra 3 2024-10-21 16:03:54 +02:00
768bbce8b3 add content 2024-10-21 16:03:38 +02:00
9a5d3ca87d update deps 2024-03-05 17:27:33 +01:00
0f172b5c61 add git clean 2024-03-05 17:27:27 +01:00
eb63b57ad4 add tailwind theme 2023-10-11 22:13:20 +02:00
1f04e83a3d update deps 2023-10-11 22:13:10 +02:00
0a977a0b3d update deps 2023-08-22 09:31:28 +02:00
a4f2d2b1dd delete empty dirs 2023-08-22 09:28:40 +02:00
2042ca97c1 udpate pnpm 2023-06-28 17:14:44 +02:00
074ad94d7e disable telemetry 2023-06-28 17:12:26 +02:00
91b041c5d9 update deps 2023-06-28 17:10:05 +02:00
65b24be322 update deps 2023-06-16 12:39:17 +02:00
237a6cf548 add revert commit 2023-06-16 12:35:54 +02:00
53 changed files with 4544 additions and 1951 deletions

View File

@@ -1,17 +0,0 @@
name: "Build"
description: "Install deps and build docs"
runs:
using: "composite"
steps:
- uses: pnpm/action-setup@v2
- uses: actions/setup-node@v3
with:
node-version-file: .nvmrc
cache: "pnpm"
- name: Install dependencies
run: pnpm install --frozen-lockfile
shell: bash
- name: Build
run: pnpm build
shell: bash

View File

@@ -1,35 +0,0 @@
name: Docs
on:
push:
branches:
- main
workflow_dispatch:
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: "pages"
cancel-in-progress: true
jobs:
deploy:
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
- uses: ./.github/actions/build
- uses: actions/configure-pages@v3
- uses: actions/upload-pages-artifact@v1
with:
path: "./out"
- id: deployment
uses: actions/deploy-pages@v1

3
.gitignore vendored
View File

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

1
.nvmrc
View File

@@ -1 +0,0 @@
v18.16.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>
);
}

8
content/_meta.ts Normal file
View File

@@ -0,0 +1,8 @@
export default {
index: 'Intro',
cli: 'CLI',
git: 'Git',
dev_ops: 'Dev Ops',
latex: 'LaTeX',
web_dev: 'Web Development',
}

21
content/admin/windows.md Normal file
View File

@@ -0,0 +1,21 @@
---
tags:
- windows
- administration
---
# Windows
## List of tools
- [De-Bloat](https://github.com/Raphire/Win11Debloat)
- [Microsoft Activation Scripts](https://github.com/massgravel/Microsoft-Activation-Scripts)
- [Uniget UI](https://github.com/marticliment/UnigetUI)
## Utils
### Add local user
`Win + R` then `netplwiz`

View File

@@ -0,0 +1,7 @@
# Delete empty directories
```bash
find . -type d -empty -delete
```
This recursively finds and deletes empty directory.

View File

@@ -0,0 +1,23 @@
---
tags:
- cli
- macos
- format
---
# Format a Drive
## macOS
Some times Disk Utility cannot format a whole drive for some reason.
```
# Check devices
diskutil list
# To exfat
diskutil eraseDisk EXFAT "NAME" GPT /dev/diskN
# To fat32, with mbr
diskutil eraseDisk FAT32 "NAME" MBR /dev/diskN
```

4
content/dev_ops/_meta.ts Normal file
View File

@@ -0,0 +1,4 @@
export default {
'github-actions': 'Github Actions',
hosting: 'Hosting',
}

View File

@@ -22,15 +22,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v2
uses: docker/setup-buildx-action@v3
with:
install: true
- name: Docker Labels
id: meta
uses: docker/metadata-action@v4
uses: docker/metadata-action@v5
with:
images: |
foo/bar
@@ -43,19 +43,19 @@ jobs:
type=semver,pattern={{major}}
- name: Log in to Docker Hub
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
username: ${{ secrets.DOCKER_USERNAME }}
password: ${{ secrets.DOCKER_TOKEN }}
- name: Log in to the Container registry
uses: docker/login-action@v2
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push
uses: docker/build-push-action@v3
uses: docker/build-push-action@v5
with:
platforms: linux/amd64,linux/arm64
push: true

View File

@@ -0,0 +1,14 @@
---
tags:
- docker registry
- hosting
- authentication
---
# Setup you own authenticated Docker Registry
## Resources
- https://earthly.dev/blog/private-docker-registry/
- https://www.digitalocean.com/community/tutorials/how-to-set-up-a-private-docker-registry-on-ubuntu-20-04
- https://github.com/docker/get-involved/blob/90c9470fd66c9318fec9c6f0914cb70fa87b9bf9/content/en/docs/CommunityLeaders/EventHandbooks/Docker101/registry/_index.md?plain=1#L203

17
content/git/clean.md Normal file
View File

@@ -0,0 +1,17 @@
---
tags:
- git
- clean
- gitignore
- delete
---
# Delete all files mentioned by `.gitignore`
This command is useful if you want to reset a repository to it's checked out state.
```bash
git clean -Xdf
```
[Original SO Link](https://unix.stackexchange.com/a/542735)

View File

@@ -0,0 +1,20 @@
---
tags:
- git
- branch
- clean
- delete
---
# Delete all local branches that are already merged.
This command is useful if you have a buch of local branches that you don't need anymore.
```bash
git branch --merged | grep -v \* | xargs git branch -D
```
[Original SO Link](https://stackoverflow.com/a/10610669)

View File

@@ -0,0 +1,9 @@
# Remove secrets after being pushed
If you accidentally pushed a secret or some file that should not be publicly available in your git repo, there are a few ways. My personal fav is [BFG](https://rtyley.github.io/bfg-repo-cleaner/).
> `--no-blob-protection` also modifies you latest commit, by default that is turned off.
```bash
bfg -D "*.txt" --no-blob-protection
```

View File

@@ -3,5 +3,9 @@
How to reset files from another branch.
```sh
# New way
git restore my/file.md
# Old way
git checkout origin/HEAD -- my/file.md
```

View File

@@ -0,0 +1,16 @@
# Revert branch to commit
Revert a branch to a certain commit, discarding newer ones.
```bash
# Specific commit
git reset --hard a1d6424
# Commits back
git reset --hard HEAD@{3}
```
```bash
# Push
git push -f
```

View File

@@ -0,0 +1,82 @@
---
tags:
- tailwind
- theme
- css variables
- dark mode
---
# Tailwind themes with CSS Variables
There are many tailwind theme plugins, tried few and landed on`tailwindcss-themer`.
## Setup
Two files are required:
1. `pnpm i -D tailwindcss-themer`
1. `tailwind.config.js`
1. `app.postcss`
> Technically, we don't need to use CSS variables, but I like to, as I can export them automatically from Figma, or whatever design tool. Without CSS Variables, you could just define the colors in `tailwind.config.js` without touching css files.
```js
// tailwind.config.js
const themer = require('tailwindcss-themer')
/** @type {import('tailwindcss').Config}*/
const config = {
theme: {
// ...
},
plugins: [
themer({
defaultTheme: {
extend: {
colors: {
primary: 'var(--colors-cyan-500)',
secondary: 'var(--colors-yellow-500)',
surface: 'var(--colors-gray-100)',
text: 'var(--colors-gray-900)',
},
},
},
themes: [
{
name: 'darker',
mediaQuery: '@media (prefers-color-scheme: dark)',
extend: {
colors: {
primary: 'var(--colors-cyan-700)',
secondary: 'var(--colors-yellow-500)',
surface: 'var(--colors-gray-900)',
text: 'var(--colors-gray-100)',
},
},
},
],
}),
],
}
module.exports = config
```
```css
/* app.postcss */
@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
/* colors */
--colors-cyan-500: rgb(164, 189, 245);
--colors-cyan-700: #0d398c;
--colors-gray-100: rgb(255, 255, 255);
--colors-gray-900: rgb(1, 1, 1);
--colors-yellow-500: rgb(233, 246, 82);
}
```

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,
};
}

6
next-env.d.ts vendored Normal file
View File

@@ -0,0 +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/app/api-reference/config/typescript for more information.

View File

@@ -1,11 +0,0 @@
const withNextra = require('nextra')({
theme: 'nextra-theme-docs',
themeConfig: './theme.config.jsx',
})
module.exports = {
...withNextra(),
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,16 +1,21 @@
{
"private": true,
"license": "MIT",
"packageManager": "pnpm@8.6.0",
"scripts": {
"dev": "next dev",
"build": "next build && next export"
"dev": "next",
"build": "next build",
"start": "next start",
"postbuild": "pagefind --site .next/server/app --output-path public/_pagefind"
},
"dependencies": {
"next": "^13.4.4",
"nextra": "^2.6.2",
"nextra-theme-docs": "^2.6.2",
"react": "^18.2.0",
"react-dom": "^18.2.0"
"next": "^15.5.2",
"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": "24.3.1",
"@types/react": "19.1.12",
"pagefind": "^1.4.0"
}
}

View File

@@ -1,3 +0,0 @@
export default function App({ Component, pageProps }) {
return <Component {...pageProps} />
}

View File

@@ -1,7 +0,0 @@
{
"index": "Intro",
"cli": "CLI",
"git": "Git",
"dev_ops": "Dev Ops",
"latex": "LaTeX"
}

View File

@@ -1,4 +0,0 @@
{
"github-actions": "Github Actions",
"hosting": "Hosting"
}

5955
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,24 +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 →',
},
footer: {
text: (
<span>
MIT {new Date().getFullYear()} ©{' '}
<a href="https://github.com/cupcakearmy" target="_blank">
cupcakearmy
</a>
.
</span>
),
},
}

24
tsconfig.json Normal file
View File

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