1
mirror of https://github.com/jakejarvis/jarv.is.git synced 2025-04-26 09:05:22 -04:00

restore YAML frontmatter

This commit is contained in:
Jake Jarvis 2025-03-16 15:35:01 -04:00
parent 99ec01de0a
commit 2b4a86a900
Signed by: jake
SSH Key Fingerprint: SHA256:nCkvAjYA6XaSPUqc4TfbBQTpzr8Xj7ritg/sGInCdkc
27 changed files with 385 additions and 193 deletions

View File

@ -9,3 +9,4 @@ pnpm-lock.yaml
# other
.devcontainer/devcontainer.json
public/.well-known/

View File

@ -1,7 +1,6 @@
import { cache } from "react";
import path from "path";
import glob from "fast-glob";
import pMap from "p-map";
import pMemoize from "p-memoize";
import { decode } from "html-entities";
import { formatDate } from "./format-date";
import { BASE_URL, POSTS_DIR } from "../config/constants";
@ -71,7 +70,8 @@ export const getFrontMatter = async (slug: string): Promise<FrontMatter> => {
};
};
export const getPostSlugs = pMemoize(async (): Promise<string[]> => {
// use filesystem to get a simple list of all post slugs
export const getPostSlugs = cache(async (): Promise<string[]> => {
// list all .mdx files in POSTS_DIR
const mdxFiles = await glob("**/*.mdx", {
cwd: path.join(process.cwd(), POSTS_DIR),
@ -85,9 +85,10 @@ export const getPostSlugs = pMemoize(async (): Promise<string[]> => {
});
// returns the parsed front matter of ALL posts, sorted reverse chronologically
export const getAllPosts = pMemoize(async (): Promise<FrontMatter[]> => {
// for each post, query its front matter
const data = await pMap(await getPostSlugs(), async (slug) => await getFrontMatter(slug));
export const getAllPosts = cache(async (): Promise<FrontMatter[]> => {
// concurrently fetch the front matter of each post
const slugs = await getPostSlugs();
const data = await Promise.all(slugs.map(async (slug) => await getFrontMatter(slug)));
// sort the results by date
data.sort((post1, post2) => (post1.date > post2.date ? -1 : 1));

View File

@ -4,7 +4,9 @@ export { default as rehypeSanitize } from "rehype-sanitize";
export { default as rehypeSlug } from "rehype-slug";
export { default as rehypeStringify } from "rehype-stringify";
export { default as rehypeUnwrapImages } from "rehype-unwrap-images";
export { default as remarkFrontmatter } from "remark-frontmatter";
export { default as remarkGfm } from "remark-gfm";
export { default as remarkMdxFrontmatter } from "remark-mdx-frontmatter";
export { default as remarkParse } from "remark-parse";
export { default as remarkRehype } from "remark-rehype";
export { default as remarkSmartypants } from "remark-smartypants";

View File

@ -129,6 +129,8 @@ const withBundleAnalyzer = createBundleAnalyzer({
const withMDX = createMDX({
options: {
remarkPlugins: [
mdxPlugins.remarkFrontmatter,
mdxPlugins.remarkMdxFrontmatter,
[mdxPlugins.remarkGfm, { singleTilde: false }],
[
mdxPlugins.remarkSmartypants,

View File

@ -1,11 +1,17 @@
export const frontmatter = {
title: 'Bernie Sanders\' Creepy "BERN" App Wants Your Data...From Your Best Friends',
date: "2019-05-08 10:31:02-0400",
description:
"The team behind Bernie's campaign has a new app named BERN. It's undoubtedly a smart move, but also a concerning one for privacy advocates.",
tags: ["Privacy", "Data", "Bernie Sanders", "2020 Presidential Campaign", "Politics"],
image: "sad-bernie.jpg",
};
---
title: Bernie Sanders' Creepy "BERN" App Wants Your Data...From Your Best Friends
date: "2019-05-08 10:31:02-0400"
description: >-
The team behind Bernie's campaign has a new app named BERN. It's undoubtedly a
smart move, but also a concerning one for privacy advocates.
tags:
- Privacy
- Data
- Bernie Sanders
- 2020 Presidential Campaign
- Politics
image: ./sad-bernie.jpg
---
The team behind Bernie Sanders' 2020 campaign [released a new web app](https://www.nbcnews.com/politics/2020-election/bernie-sanders-2020-campaign-unveils-app-increase-its-voter-database-n999206) last month named [BERN](https://app.berniesanders.com/). The goal of BERN is simple: to gather as much information as they can on as many voters in the United States as they can, and make their grassroots army of enthusiastic supporters do the work. It's undoubtedly a smart strategy, but also a concerning one for myself and other privacy advocates.

View File

@ -1,11 +1,17 @@
export const frontmatter = {
title: "Does Cloudflare's 1.1.1.1 DNS Block Archive.is?",
date: "2019-05-04 09:35:12-0400",
description:
"Short answer: no. Quite the opposite, actually — Archive.is is intentionally blocking 1.1.1.1 users. Here's why.",
tags: ["Cloudflare", "DNS", "Networking", "Privacy", "Temper Tantrums"],
image: "archive-is.png",
};
---
title: Does Cloudflare's 1.1.1.1 DNS Block Archive.is?
date: "2019-05-04 09:35:12-0400"
description: >-
Short answer: no. Quite the opposite, actually — Archive.is is intentionally
blocking 1.1.1.1 users. Here's why.
tags:
- Cloudflare
- DNS
- Networking
- Privacy
- Temper Tantrums
image: ./archive-is.png
---
**tl;dr:** No. Quite the opposite, actually — [Archive.is](https://archive.is/)'s owner is intentionally blocking 1.1.1.1 users.

View File

@ -1,11 +1,19 @@
export const frontmatter = {
title: 'Cool Bash Tricks for Your Terminal\'s "Dotfiles"',
date: "2018-12-10 20:01:50-0400",
description:
"Bashfiles usually contain shortcuts compatible with Bash terminals to automate convoluted commands. Here's a summary of the ones I find most helpful that you can add to your own .bash_profile or .bashrc file.",
tags: ["Dotfiles", "Hacks", "macOS", "Programming", "Terminal", "Tutorial"],
image: "terminal.png",
};
---
title: Cool Bash Tricks for Your Terminal's "Dotfiles"
date: "2018-12-10 20:01:50-0400"
description: >-
Bashfiles usually contain shortcuts compatible with Bash terminals to automate
convoluted commands. Here's a summary of the ones I find most helpful that you
can add to your own .bash_profile or .bashrc file.
tags:
- Dotfiles
- Hacks
- macOS
- Programming
- Terminal
- Tutorial
image: ./terminal.png
---
![Terminal.app on macOS](./terminal.png)

View File

@ -1,13 +1,19 @@
import Link from "../../components/Link";
---
title: COVID-19 vs. the Open Source Community ⚔️
date: "2020-03-23 15:17:09-0400"
description: >-
The open source community is rallying together like no other to provide
coronavirus information to the public in innovative ways.
tags:
- Open Source
- COVID-19
- Coronavirus
- Public Health
- GitHub
image: ./covid19dashboards.png
---
export const frontmatter = {
title: "COVID-19 vs. the Open Source Community ⚔️",
date: "2020-03-23 15:17:09-0400",
description:
"The open source community is rallying together like no other to provide coronavirus information to the public in innovative ways.",
tags: ["Open Source", "COVID-19", "Coronavirus", "Public Health", "GitHub"],
image: "covid19dashboards.png",
};
import Link from "../../components/Link";
export const OctocatLink = ({ repo }) => {
return (

View File

@ -1,10 +1,15 @@
export const frontmatter = {
title: "Animated Waving Hand Emoji 👋 Using CSS",
date: "2019-04-17 14:20:10-0400",
description: "How to make the 👋 waving hand emoji actually wave using pure CSS animation!",
tags: ["CSS", "Animation", "Emoji", "Keyframes", "Cool Tricks"],
image: "codepen.png",
};
---
title: "Animated Waving Hand Emoji \U0001F44B Using CSS"
date: "2019-04-17 14:20:10-0400"
description: "How to make the \U0001F44B waving hand emoji actually wave using pure CSS animation!"
tags:
- CSS
- Animation
- Emoji
- Keyframes
- Cool Tricks
image: ./codepen.png
---
## Howdy, friends! 👋

View File

@ -1,9 +1,17 @@
export const frontmatter = {
title: "How To: Add Dark Mode to a Website 🌓",
date: "2021-10-15 08:56:33-0400",
description: "Simple dark mode switching using local storage, OS preference detection, and minimal JavaScript.",
tags: ["JavaScript", "NPM", "CSS", "Dark Mode", "How To", "Tutorial"],
};
---
title: "How To: Add Dark Mode to a Website \U0001F313"
date: "2021-10-15 08:56:33-0400"
description: >-
Simple dark mode switching using local storage, OS preference detection, and
minimal JavaScript.
tags:
- JavaScript
- NPM
- CSS
- Dark Mode
- How To
- Tutorial
---
Love it or hate it, it seems that the [dark mode fad](https://en.wikipedia.org/wiki/Light-on-dark_color_scheme) is here to stay, especially now that more and more devices have [OLED screens](https://www.macrumors.com/2019/10/21/ios-13-dark-mode-extends-iphone-battery-life/) that display true blacks... which means that these trendsetters might go blind from your site's insanely white background if you're behind the curve and don't offer your own dark mode.

View File

@ -1,11 +1,17 @@
export const frontmatter = {
title: "Why I'm Dropping Dropbox",
date: "2019-11-20 17:22:43-0400",
description:
"I'm finally canceling my Dropbox Pro account and moving to iCloud Drive for synchronized cloud storage.",
tags: ["Cloud Storage", "Dropbox", "Apple", "iCloud Drive", "Betrayal"],
image: "email.png",
};
---
title: Why I'm Dropping Dropbox
date: "2019-11-20 17:22:43-0400"
description: >-
I'm finally canceling my Dropbox Pro account and moving to iCloud Drive for
synchronized cloud storage.
tags:
- Cloud Storage
- Dropbox
- Apple
- iCloud Drive
- Betrayal
image: ./email.png
---
I've been a loyal Dropbox user since its inception as a [Y Combinator startup](https://www.ycombinator.com/apply/dropbox/) ten years ago. Having a folder on all of my devices that instantly synchronized with each other was a game-changer for me, and I grew dependent on it more and more as they gave out free storage like candy — 48 GB for having a Samsung Chromebook, 1 GB for "Posting \<3 to Twitter," and so on — until I needed to upgrade to Dropbox Pro. But this month I canceled my Pro subscription after a few too many strikes.

View File

@ -1,11 +1,18 @@
export const frontmatter = {
title: "Finding Candidates for Subdomain Takeovers",
date: "2019-03-10 11:19:48-0400",
description:
"A subdomain takeover occurs when a subdomain points to a shared hosting account that is abandoned by its owner, leaving the endpoint available to claim for yourself.",
tags: ["Pentesting", "Infosec", "Subdomain Takeover", "Bug Bounty", "Tutorial"],
image: "hackerone-2.png",
};
---
title: Finding Candidates for Subdomain Takeovers
date: "2019-03-10 11:19:48-0400"
description: >-
A subdomain takeover occurs when a subdomain points to a shared hosting
account that is abandoned by its owner, leaving the endpoint available to
claim for yourself.
tags:
- Pentesting
- Infosec
- Subdomain Takeover
- Bug Bounty
- Tutorial
image: ./hackerone-2.png
---
A **subdomain takeover** occurs when a subdomain (like _example_.jarv.is) points to a shared hosting account that is abandoned by its owner, leaving the endpoint available to claim for yourself.

View File

@ -1,10 +1,17 @@
export const frontmatter = {
title: "I ❤️ GitHub Actions",
date: "2019-10-25 13:58:39-0400",
description: "I've found a new hobby of making cool GitHub Actions, the latest tool in the CI world. Here's why.",
tags: ["DevOps", "GitHub", "Continuous Integration", "Docker", "Open Source"],
image: "actions-flow.png",
};
---
title: I ❤️ GitHub Actions
date: "2019-10-25 13:58:39-0400"
description: >-
I've found a new hobby of making cool GitHub Actions, the latest tool in the
CI world. Here's why.
tags:
- DevOps
- GitHub
- Continuous Integration
- Docker
- Open Source
image: ./actions-flow.png
---
![Example workflow for a GitHub Action](./actions-flow.png)

View File

@ -1,11 +1,18 @@
export const frontmatter = {
title: "How To: Safely Rename `master` Branch on GitHub ✊🏾",
date: "2020-06-28 09:28:52-0400",
description:
'Some of the most popular open-source projects are renaming their default branch from "master" on GitHub. Here\'s how to do so, and safely.',
tags: ["How To", "Tutorial", "Git", "GitHub", "Open Source", "Black Lives Matter"],
image: "blm-topic.png",
};
---
title: "How To: Safely Rename `master` Branch on GitHub ✊\U0001F3FE"
date: "2020-06-28 09:28:52-0400"
description: >-
Some of the most popular open-source projects are renaming their default
branch from "master" on GitHub. Here's how to do so, and safely.
tags:
- How To
- Tutorial
- Git
- GitHub
- Open Source
- Black Lives Matter
image: ./blm-topic.png
---
![Black lives matter.](./blm-topic.png)

View File

@ -1,11 +1,18 @@
export const frontmatter = {
title: "How To: Automatically Backup a Linux VPS to a Separate Cloud Storage Service",
date: "2019-06-09 19:03:10-0400",
description:
"A walkthrough for backing up a Linux server to an external storage provider like Amazon S3 automatically.",
tags: ["How To", "Tutorial", "Servers", "Backups", "Linux", "Restic"],
image: "apocalypse.png",
};
---
title: "How To: Automatically Backup a Linux VPS to a Separate Cloud Storage Service"
date: "2019-06-09 19:03:10-0400"
description: >-
A walkthrough for backing up a Linux server to an external storage provider
like Amazon S3 automatically.
tags:
- How To
- Tutorial
- Servers
- Backups
- Linux
- Restic
image: ./apocalypse.png
---
![The Cloud-pocalypse: Coming soon(er than you think) to a server near you.](./apocalypse.png)

View File

@ -1,11 +1,18 @@
export const frontmatter = {
title: "How To: Fork a GitHub Repository & Submit a Pull Request",
date: "2019-04-09 02:17:03-0400",
description:
"Walkthrough of forking a GitHub repository, cloning it, committing your changes to a new branch, and pushing it back upstream.",
tags: ["How To", "Tutorial", "Git", "Pull Request", "Open Source", "GitHub"],
image: "step7-2.png",
};
---
title: "How To: Fork a GitHub Repository & Submit a Pull Request"
date: "2019-04-09 02:17:03-0400"
description: >-
Walkthrough of forking a GitHub repository, cloning it, committing your
changes to a new branch, and pushing it back upstream.
tags:
- How To
- Tutorial
- Git
- Pull Request
- Open Source
- GitHub
image: ./step7-2.png
---
<svg width="150" height="150" viewBox="0 0 40 40" style={{ float: "right", marginBottom: "6px", marginLeft: "12px" }}>
<path d="M6.5 35v-4.8c0-5.4 4.3-9.7 9.7-9.7h7.6c5.4 0 9.7-4.3 9.7-9.7V6M6.5 32.5v-26" fill="none" stroke="#a3b7cc" />

View File

@ -1,10 +1,17 @@
export const frontmatter = {
title: "How To: Shrink a Linux Virtual Machine Disk with VMware",
date: "2018-12-04 19:10:04-0400",
description: "VMware is bad at shrinking Linux VMs when space is freed up. How to optimize and shrink virtual disks.",
tags: ["How To", "Linux", "Tutorial", "Virtual Machines", "VMware"],
image: "screen-shot-2018-12-07-at-2-04-04-pm.png",
};
---
title: "How To: Shrink a Linux Virtual Machine Disk with VMware"
date: "2018-12-04 19:10:04-0400"
description: >-
VMware is bad at shrinking Linux VMs when space is freed up. How to optimize
and shrink virtual disks.
tags:
- How To
- Linux
- Tutorial
- Virtual Machines
- VMware
image: ./screen-shot-2018-12-07-at-2-04-04-pm.png
---
![`df -dh` = WTF](./screen-shot-2018-12-07-at-2-04-04-pm.png)

View File

@ -1,11 +1,17 @@
export const frontmatter = {
title: "Revenge of the JavaScript: Moving from Hugo to Next.js",
date: "2022-04-07 10:53:33-0400",
description:
"The next chapter in this website's history of overengineering, from static HTML with Hugo to React everywhere with Next.js.",
tags: ["React", "JavaScript", "Next.js", "Hugo", "Meta"],
image: "web-vitals.png",
};
---
title: "Revenge of the JavaScript: Moving from Hugo to Next.js"
date: "2022-04-07 10:53:33-0400"
description: >-
The next chapter in this website's history of overengineering, from static
HTML with Hugo to React everywhere with Next.js.
tags:
- React
- JavaScript
- Next.js
- Hugo
- Meta
image: ./web-vitals.png
---
![Pull Request #711](./pr.png)

View File

@ -1,12 +1,19 @@
export const frontmatter = {
title: "Why This Millennial Is With Hillary Clinton Now — and Why We All Need To Be In November",
date: "2016-02-29 00:10:26-0400",
description:
'I am a 24-year-old "millennial" and I passionately support Hillary Clinton for the 45th President of the United States. Yes, we exist.',
tags: ["2016 Presidential Election", "Bernie Sanders", "Hillary Clinton", "Politics"],
image: "24707394571_0818d4ab83_o-1-copy.jpg",
noComments: true,
};
---
title: >-
Why This Millennial Is With Hillary Clinton Now — and Why We All Need To Be In
November
date: "2016-02-29 00:10:26-0400"
description: >-
I am a 24-year-old "millennial" and I passionately support Hillary Clinton for
the 45th President of the United States. Yes, we exist.
tags:
- 2016 Presidential Election
- Bernie Sanders
- Hillary Clinton
- Politics
image: ./24707394571_0818d4ab83_o-1-copy.jpg
noComments: true
---
![Hillary for New Hampshire Winter Fellows with Hillary Clinton in Derry, NH (February 3, 2016)](./24707394571_0818d4ab83_o-1-copy.jpg)

View File

@ -1,11 +1,17 @@
export const frontmatter = {
title: "My First Code: Jake's Bulletin Board",
date: "2019-10-01 08:34:25-0400",
description:
"My first full coding project ever: a PHP bulletin board creatively titled Jake's Bulletin Board, circa 2003.",
tags: ["Hello World", "Baby's First PHP", "Nostalgia", "Vintage Code", "Awesome List"],
image: "jbb-screen1.png",
};
---
title: "My First Code: Jake's Bulletin Board"
date: "2019-10-01 08:34:25-0400"
description: >-
My first full coding project ever: a PHP bulletin board creatively titled
Jake's Bulletin Board, circa 2003.
tags:
- Hello World
- Baby's First PHP
- Nostalgia
- Vintage Code
- Awesome List
image: ./jbb-screen1.png
---
![Awesome First Code on GitHub](./netscape.png)

View File

@ -1,11 +1,18 @@
export const frontmatter = {
title: "Netlify Analytics Review",
date: "2019-11-13T08:21:22-0500",
description:
"Netlify has released Netlify Analytics, a tracking tool that's the only one of its kind, prioritizing privacy and speed.",
tags: ["Review", "Analytics", "Data", "Netlify", "Privacy", "JAMStack"],
image: "overview.png",
};
---
title: Netlify Analytics Review
date: "2019-11-13T08:21:22-0500"
description: >-
Netlify has released Netlify Analytics, a tracking tool that's the only one of
its kind, prioritizing privacy and speed.
tags:
- Review
- Analytics
- Data
- Netlify
- Privacy
- JAMStack
image: ./overview.png
---
I've been trying out [Netlify Analytics](https://www.netlify.com/products/analytics/) on this site for over a month now and have some quick thoughts about this unique offering in a world full of bloated and invasive tracking scripts.

View File

@ -1,10 +1,14 @@
export const frontmatter = {
title: "Ranking 2020 Presidential Candidates's 404 Pages",
date: "2019-10-30 13:58:39-0400",
description: "Each of the 2020 presidential candidates's 404 Not Found pages, ranked.",
tags: ["Politics", "Campaign 2020", "Rankings", "Attempted Humor"],
image: "obama-laughing.jpg",
};
---
title: Ranking 2020 Presidential Candidates's 404 Pages
date: "2019-10-30 13:58:39-0400"
description: "Each of the 2020 presidential candidates's 404 Not Found pages, ranked."
tags:
- Politics
- Campaign 2020
- Rankings
- Attempted Humor
image: ./obama-laughing.jpg
---
![President Barack H. Obama, probably ranking some of these 404 pages.](./obama-laughing.jpg)

View File

@ -1,11 +1,17 @@
export const frontmatter = {
title: "Adding Security Headers Using Cloudflare Workers",
date: "2019-02-28 03:18:10-0400",
description:
"How to add important security headers to your website using Cloudflare Workers before delivering the response to the user.",
tags: ["Security", "HTTP Headers", "Cloudflare", "Hosting", "Tutorial"],
image: "security-headers.png",
};
---
title: Adding Security Headers Using Cloudflare Workers
date: "2019-02-28 03:18:10-0400"
description: >-
How to add important security headers to your website using Cloudflare Workers
before delivering the response to the user.
tags:
- Security
- HTTP Headers
- Cloudflare
- Hosting
- Tutorial
image: ./security-headers.png
---
![An A+ security grade for this website!](./security-headers.png)

View File

@ -1,11 +1,18 @@
export const frontmatter = {
title: "Fascinating & Frightening Shodan Search Queries (AKA: The Internet of Sh*t)",
date: "2019-09-19 09:56:10-0400",
description:
"I've collected some interesting and scary search queries for Shodan, the internet-of-things search engine. Some return fun results, while others return serious vulnerabilities.",
tags: ["Infosec", "Pentesting", "Shodan", "Internet of Things", "Dorking"],
image: "shodan.png",
};
---
title: "Fascinating & Frightening Shodan Search Queries (AKA: The Internet of Sh*t)"
date: "2019-09-19 09:56:10-0400"
description: >-
I've collected some interesting and scary search queries for Shodan, the
internet-of-things search engine. Some return fun results, while others return
serious vulnerabilities.
tags:
- Infosec
- Pentesting
- Shodan
- Internet of Things
- Dorking
image: ./shodan.png
---
Over time, I've collected an assortment of interesting, funny, and depressing search queries to plug into [Shodan](https://www.shodan.io/), the ([literal](https://www.vice.com/en_uk/article/9bvxmd/shodan-exposes-the-dark-side-of-the-net)) internet search engine. Some return facepalm-inducing results, while others return serious and/or ancient vulnerabilities in the wild.

View File

@ -1,11 +1,16 @@
export const frontmatter = {
title: "I Made A Thing, Powered by Windows Me™",
date: "2020-06-06 10:05:23-0400",
description:
"Introducing the Y2K Sandbox: fully featured, fully isolated, on-demand Windows Millennium Edition® virtual machines.",
tags: ["Projects", "Nostalgia", "Windows", "Virtual Machines"],
image: "screenshot.png",
};
---
title: "I Made A Thing, Powered by Windows Me™"
date: "2020-06-06 10:05:23-0400"
description: >-
Introducing the Y2K Sandbox: fully featured, fully isolated, on-demand Windows
Millennium Edition® virtual machines.
tags:
- Projects
- Nostalgia
- Windows
- Virtual Machines
image: ./screenshot.png
---
A few months ago, I stumbled upon [my first website ever](https://jakejarvis.github.io/my-first-website/) on an old floppy disk. Despite the instant cringing, I [uploaded it](https://github.com/jakejarvis/my-first-website) to GitHub, [collected other iterations](/previously/), and made an [#awesome-list](https://github.com/jakejarvis/awesome-first-code) of others who were brave and/or shameless enough to do the same. But why not take that ~~one~~ 1,000 steps further?

View File

@ -40,8 +40,6 @@
"modern-normalize": "^3.0.1",
"next": "15.3.0-canary.10",
"obj-str": "^1.1.0",
"p-map": "^7.0.3",
"p-memoize": "^7.1.1",
"polished": "^4.3.1",
"prop-types": "^15.8.1",
"react": "19.0.0",
@ -58,7 +56,9 @@
"rehype-slug": "^6.0.0",
"rehype-stringify": "^10.0.1",
"rehype-unwrap-images": "^1.0.0",
"remark-frontmatter": "^5.0.0",
"remark-gfm": "^4.0.1",
"remark-mdx-frontmatter": "^5.0.0",
"remark-parse": "^11.0.0",
"remark-rehype": "^11.1.1",
"remark-smartypants": "^3.0.2",

93
pnpm-lock.yaml generated
View File

@ -74,12 +74,6 @@ importers:
obj-str:
specifier: ^1.1.0
version: 1.1.0
p-map:
specifier: ^7.0.3
version: 7.0.3
p-memoize:
specifier: ^7.1.1
version: 7.1.1
polished:
specifier: ^4.3.1
version: 4.3.1
@ -128,9 +122,15 @@ importers:
rehype-unwrap-images:
specifier: ^1.0.0
version: 1.0.0
remark-frontmatter:
specifier: ^5.0.0
version: 5.0.0
remark-gfm:
specifier: ^4.0.1
version: 4.0.1
remark-mdx-frontmatter:
specifier: ^5.0.0
version: 5.0.0
remark-parse:
specifier: ^11.0.0
version: 11.0.0
@ -1791,6 +1791,9 @@ packages:
fastq@1.19.1:
resolution: {integrity: sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==}
fault@2.0.1:
resolution: {integrity: sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==}
fdir@6.4.3:
resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==}
peerDependencies:
@ -1836,6 +1839,10 @@ packages:
resolution: {integrity: sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==}
engines: {node: '>=14'}
format@0.2.2:
resolution: {integrity: sha512-wzsgA6WOq+09wrU1tsJ09udeR/YZRaeArL9e1wPbFg3GG2yDnC2ldKpxs4xunpFF9DgqCqOIra3bc1HWrJ37Ww==}
engines: {node: '>=0.4.x'}
fsevents@2.3.3:
resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==}
engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0}
@ -2408,6 +2415,9 @@ packages:
mdast-util-from-markdown@2.0.2:
resolution: {integrity: sha512-uZhTV/8NBuw0WHkPTrCqDOl0zVe1BIng5ZtHoDk49ME1qqcjYmmLmOf0gELgcRMxN4w2iuIeVso5/6QymSrgmA==}
mdast-util-frontmatter@2.0.1:
resolution: {integrity: sha512-LRqI9+wdgC25P0URIJY9vwocIzCcksduHQ9OF2joxQoyTNVduwLAFUzjoopuRJbJAReaKrNQKAZKL3uCMugWJA==}
mdast-util-gfm-autolink-literal@2.0.1:
resolution: {integrity: sha512-5HVP2MKaP6L+G6YaxPNjuL0BPrq9orG3TsrZ9YXbA3vDw/ACI4MEsnoDpn6ZNm7GnZgtAcONJyPhOP8tNJQavQ==}
@ -2470,6 +2480,9 @@ packages:
micromark-core-commonmark@2.0.3:
resolution: {integrity: sha512-RDBrHEMSxVFLg6xvnXmb1Ayr2WzLAWjeSATAoxwKYJV94TeNavgoIdA0a9ytzDSVzBy2YKFK+emCPOEibLeCrg==}
micromark-extension-frontmatter@2.0.0:
resolution: {integrity: sha512-C4AkuM3dA58cgZha7zVnuVxBhDsbttIMiytjgsM2XbHAB2faRVaHRle40558FBN+DJcrLNCoqG5mlrpdU4cRtg==}
micromark-extension-gfm-autolink-literal@2.1.0:
resolution: {integrity: sha512-oOg7knzhicgQ3t4QCjCWgTmfNhvQbDDnJeVu9v81r7NltNCVmhPy1fJRX27pISafdjL+SVc4d3l48Gb6pbRypw==}
@ -2755,14 +2768,6 @@ packages:
resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==}
engines: {node: '>=10'}
p-map@7.0.3:
resolution: {integrity: sha512-VkndIv2fIB99swvQoA65bm+fsmt6UNdGeIB0oxBs+WhAhdh08QA04JXpI7rbB9r08/nkbysKoya9rtDERYOYMA==}
engines: {node: '>=18'}
p-memoize@7.1.1:
resolution: {integrity: sha512-DZ/bONJILHkQ721hSr/E9wMz5Am/OTJ9P6LhLFo2Tu+jL8044tgc9LwHO8g4PiaYePnlVVRAJcKmgy8J9MVFrA==}
engines: {node: '>=14.16'}
package-json-from-dist@1.0.1:
resolution: {integrity: sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==}
@ -3042,9 +3047,15 @@ packages:
rehype-unwrap-images@1.0.0:
resolution: {integrity: sha512-wzW5Mk9IlVF2UwXC5NtIZsx1aHYbV8+bLWjJnlZaaamz5QU52RppWtq1uEZJqGo8d9Y4RuDqidB6r9RFpKugIg==}
remark-frontmatter@5.0.0:
resolution: {integrity: sha512-XTFYvNASMe5iPN0719nPrdItC9aU0ssC4v14mH1BCi1u0n1gAocqcujWUrByftZTbLhRtiKRyjYTSIOcr69UVQ==}
remark-gfm@4.0.1:
resolution: {integrity: sha512-1quofZ2RQ9EWdeN34S79+KExV1764+wCUGop5CPL1WGdD0ocPpu91lzPGbwWMECpEpd42kJGQwzRfyov9j4yNg==}
remark-mdx-frontmatter@5.0.0:
resolution: {integrity: sha512-kI75pshe27TM71R+0iX7C3p4MbGMdygkvSbrk1WYSar88WAwR2JfQilofcDGgDNFAWUo5IwTPyq9XvGpifTwqQ==}
remark-mdx@3.1.0:
resolution: {integrity: sha512-Ngl/H3YXyBV9RcRNdlYsZujAmhsxwzxpDzpDEhFBVAGthS4GDgnctpDjgFl/ULx5UEDzqtW1cyBSNKqYYrqLBA==}
@ -3425,6 +3436,9 @@ packages:
toggle-selection@1.0.6:
resolution: {integrity: sha512-BiZS+C1OS8g/q2RRbJmy59xpyghNBqrr6k5L/uKBGRsTfxmu3ffiRnd8mlGPUVayg8pvfi5urfnu8TU7DVOkLQ==}
toml@3.0.0:
resolution: {integrity: sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==}
totalist@3.0.1:
resolution: {integrity: sha512-sf4i37nQ2LBx4m3wB74y+ubopq6W/dIzXg0FDGjsYnZHVa1Da8FH853wlL2gtUhg+xJXjfk3kUZS3BRoQeoQBQ==}
engines: {node: '>=6'}
@ -5379,6 +5393,10 @@ snapshots:
dependencies:
reusify: 1.1.0
fault@2.0.1:
dependencies:
format: 0.2.2
fdir@6.4.3(picomatch@4.0.2):
optionalDependencies:
picomatch: 4.0.2
@ -5426,6 +5444,8 @@ snapshots:
cross-spawn: 7.0.6
signal-exit: 4.1.0
format@0.2.2: {}
fsevents@2.3.3:
optional: true
@ -6102,6 +6122,17 @@ snapshots:
transitivePeerDependencies:
- supports-color
mdast-util-frontmatter@2.0.1:
dependencies:
'@types/mdast': 4.0.4
devlop: 1.1.0
escape-string-regexp: 5.0.0
mdast-util-from-markdown: 2.0.2
mdast-util-to-markdown: 2.1.2
micromark-extension-frontmatter: 2.0.0
transitivePeerDependencies:
- supports-color
mdast-util-gfm-autolink-literal@2.0.1:
dependencies:
'@types/mdast': 4.0.4
@ -6271,6 +6302,13 @@ snapshots:
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.2
micromark-extension-frontmatter@2.0.0:
dependencies:
fault: 2.0.1
micromark-util-character: 2.1.1
micromark-util-symbol: 2.0.1
micromark-util-types: 2.0.2
micromark-extension-gfm-autolink-literal@2.1.0:
dependencies:
micromark-util-character: 2.1.1
@ -6720,13 +6758,6 @@ snapshots:
dependencies:
p-limit: 3.1.0
p-map@7.0.3: {}
p-memoize@7.1.1:
dependencies:
mimic-fn: 4.0.0
type-fest: 3.13.1
package-json-from-dist@1.0.1: {}
parent-module@1.0.1:
@ -7060,6 +7091,15 @@ snapshots:
hast-util-whitespace: 3.0.0
unist-util-visit: 5.0.0
remark-frontmatter@5.0.0:
dependencies:
'@types/mdast': 4.0.4
mdast-util-frontmatter: 2.0.1
micromark-extension-frontmatter: 2.0.0
unified: 11.0.5
transitivePeerDependencies:
- supports-color
remark-gfm@4.0.1:
dependencies:
'@types/mdast': 4.0.4
@ -7071,6 +7111,15 @@ snapshots:
transitivePeerDependencies:
- supports-color
remark-mdx-frontmatter@5.0.0:
dependencies:
'@types/mdast': 4.0.4
estree-util-is-identifier-name: 3.0.0
estree-util-value-to-estree: 3.3.2
toml: 3.0.0
unified: 11.0.5
yaml: 2.7.0
remark-mdx@3.1.0:
dependencies:
mdast-util-mdx: 3.0.0
@ -7596,6 +7645,8 @@ snapshots:
toggle-selection@1.0.6: {}
toml@3.0.0: {}
totalist@3.0.1: {}
trim-lines@3.0.1: {}