mirror of
https://github.com/jakejarvis/jarv.is.git
synced 2025-07-19 23:15:31 -04:00
proper cwd for mdx components
This commit is contained in:
@@ -73,7 +73,7 @@ export const getNote = async (slug: string): Promise<NoteType> => {
|
|||||||
const { frontMatter, content } = getNoteData(slug);
|
const { frontMatter, content } = getNoteData(slug);
|
||||||
const { code: mdxSource } = await bundleMDX({
|
const { code: mdxSource } = await bundleMDX({
|
||||||
source: content,
|
source: content,
|
||||||
cwd: process.cwd(),
|
cwd: path.join(process.cwd(), NOTES_DIR),
|
||||||
xdmOptions: (options) => {
|
xdmOptions: (options) => {
|
||||||
options.remarkPlugins = [...(options.remarkPlugins ?? []), [remarkGfm, { singleTilde: false }]];
|
options.remarkPlugins = [...(options.remarkPlugins ?? []), [remarkGfm, { singleTilde: false }]];
|
||||||
options.rehypePlugins = [
|
options.rehypePlugins = [
|
||||||
|
@@ -11,9 +11,9 @@ tags:
|
|||||||
image: "/static/images/notes/bernie-sanders-bern-app-data/sad-bernie.jpg"
|
image: "/static/images/notes/bernie-sanders-bern-app-data/sad-bernie.jpg"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
import Video from "./components/media/Video";
|
import Video from "../components/media/Video";
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
@@ -11,8 +11,8 @@ tags:
|
|||||||
image: "/static/images/notes/cloudflare-dns-archive-is-blocked/archive-is.png"
|
image: "/static/images/notes/cloudflare-dns-archive-is-blocked/archive-is.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Tweet from "./components/media/Tweet";
|
import Tweet from "../components/media/Tweet";
|
||||||
|
|
||||||
**tl;dr:** No. Quite the opposite, actually — [Archive.is](https://archive.is/)'s owner is intentionally blocking 1.1.1.1 users.
|
**tl;dr:** No. Quite the opposite, actually — [Archive.is](https://archive.is/)'s owner is intentionally blocking 1.1.1.1 users.
|
||||||
|
|
||||||
|
@@ -12,7 +12,7 @@ tags:
|
|||||||
image: "/static/images/notes/cool-bash-tricks-for-your-terminal-dotfiles/terminal.png"
|
image: "/static/images/notes/cool-bash-tricks-for-your-terminal-dotfiles/terminal.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
|
|
||||||
<Image
|
<Image
|
||||||
src="/static/images/notes/cool-bash-tricks-for-your-terminal-dotfiles/terminal.png"
|
src="/static/images/notes/cool-bash-tricks-for-your-terminal-dotfiles/terminal.png"
|
||||||
|
@@ -11,8 +11,8 @@ tags:
|
|||||||
image: "/static/images/notes/coronavirus-open-source/covid19dashboards.png"
|
image: "/static/images/notes/coronavirus-open-source/covid19dashboards.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Video from "./components/media/Video";
|
import Video from "../components/media/Video";
|
||||||
|
|
||||||
export const Octocat = (props) => {
|
export const Octocat = (props) => {
|
||||||
return (
|
return (
|
||||||
|
@@ -11,10 +11,10 @@ tags:
|
|||||||
image: "/static/images/notes/dropping-dropbox/email.png"
|
image: "/static/images/notes/dropping-dropbox/email.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
import Tweet from "./components/media/Tweet";
|
import Tweet from "../components/media/Tweet";
|
||||||
import Video from "./components/media/Video";
|
import Video from "../components/media/Video";
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
@@ -11,7 +11,7 @@ tags:
|
|||||||
image: "/static/images/notes/finding-candidates-subdomain-takeovers/hackerone-2.png"
|
image: "/static/images/notes/finding-candidates-subdomain-takeovers/hackerone-2.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
@@ -11,9 +11,9 @@ tags:
|
|||||||
image: "/static/images/notes/github-actions/actions-flow.png"
|
image: "/static/images/notes/github-actions/actions-flow.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
import Gist from "./components/media/Gist";
|
import Gist from "../components/media/Gist";
|
||||||
|
|
||||||
<Image
|
<Image
|
||||||
src="/static/images/notes/github-actions/actions-flow.png"
|
src="/static/images/notes/github-actions/actions-flow.png"
|
||||||
|
@@ -12,8 +12,8 @@ tags:
|
|||||||
image: "/static/images/notes/github-rename-master/github-default.png"
|
image: "/static/images/notes/github-rename-master/github-default.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Tweet from "./components/media/Tweet";
|
import Tweet from "../components/media/Tweet";
|
||||||
|
|
||||||
<Image
|
<Image
|
||||||
src="/static/images/notes/github-rename-master/blm-topic.png"
|
src="/static/images/notes/github-rename-master/blm-topic.png"
|
||||||
|
@@ -12,8 +12,8 @@ tags:
|
|||||||
image: "/static/images/notes/how-to-backup-linux-server/apocalypse.png"
|
image: "/static/images/notes/how-to-backup-linux-server/apocalypse.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
import Tweet from "./components/media/Tweet";
|
import Tweet from "../components/media/Tweet";
|
||||||
|
|
||||||
<Figure src="/static/images/notes/how-to-backup-linux-server/apocalypse.png" width="865" height="303" priority>
|
<Figure src="/static/images/notes/how-to-backup-linux-server/apocalypse.png" width="865" height="303" priority>
|
||||||
**The Cloud-pocalypse:** Coming soon(er than you think) to a server near you.
|
**The Cloud-pocalypse:** Coming soon(er than you think) to a server near you.
|
||||||
|
@@ -12,7 +12,7 @@ tags:
|
|||||||
image: "/static/images/notes/how-to-pull-request-fork-github/step7-2.png"
|
image: "/static/images/notes/how-to-pull-request-fork-github/step7-2.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
|
|
||||||
<svg width="150" height="150" viewBox="0 0 40 40" style={{ float: "right", marginBottom: "6px", marginLeft: "12px" }}>
|
<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" />
|
<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" />
|
||||||
|
@@ -11,8 +11,8 @@ tags:
|
|||||||
image: "/static/images/notes/how-to-shrink-linux-virtual-disk-vmware/screen-shot-2018-12-07-at-2-04-04-pm.png"
|
image: "/static/images/notes/how-to-shrink-linux-virtual-disk-vmware/screen-shot-2018-12-07-at-2-04-04-pm.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
|
|
||||||
<Figure
|
<Figure
|
||||||
src="/static/images/notes/how-to-shrink-linux-virtual-disk-vmware/screen-shot-2018-12-07-at-2-04-04-pm.png"
|
src="/static/images/notes/how-to-shrink-linux-virtual-disk-vmware/screen-shot-2018-12-07-at-2-04-04-pm.png"
|
||||||
|
@@ -11,8 +11,8 @@ image: "/static/images/notes/millenial-with-hillary-clinton/24707394571_0818d4ab
|
|||||||
noComments: true
|
noComments: true
|
||||||
---
|
---
|
||||||
|
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
import Video from "./components/media/Video";
|
import Video from "../components/media/Video";
|
||||||
|
|
||||||
<Figure
|
<Figure
|
||||||
src="/static/images/notes/millenial-with-hillary-clinton/24707394571_0818d4ab83_o-1-copy.jpg"
|
src="/static/images/notes/millenial-with-hillary-clinton/24707394571_0818d4ab83_o-1-copy.jpg"
|
||||||
|
@@ -11,8 +11,8 @@ tags:
|
|||||||
image: "/static/images/notes/my-first-code/jbb-screen1.png"
|
image: "/static/images/notes/my-first-code/jbb-screen1.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
|
|
||||||
<Image
|
<Image
|
||||||
src="/static/images/notes/my-first-code/netscape.png"
|
src="/static/images/notes/my-first-code/netscape.png"
|
||||||
|
@@ -12,7 +12,7 @@ tags:
|
|||||||
image: "/static/images/notes/netlify-analytics-review/overview.png"
|
image: "/static/images/notes/netlify-analytics-review/overview.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
@@ -10,9 +10,9 @@ tags:
|
|||||||
image: "/static/images/notes/presidential-candidates-404-pages/obama-laughing.jpg"
|
image: "/static/images/notes/presidential-candidates-404-pages/obama-laughing.jpg"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
import Video from "./components/media/Video";
|
import Video from "../components/media/Video";
|
||||||
|
|
||||||
<Figure
|
<Figure
|
||||||
src="/static/images/notes/presidential-candidates-404-pages/obama-laughing.jpg"
|
src="/static/images/notes/presidential-candidates-404-pages/obama-laughing.jpg"
|
||||||
|
@@ -11,8 +11,8 @@ tags:
|
|||||||
image: "/static/images/notes/security-headers-cloudflare-workers/security-headers.png"
|
image: "/static/images/notes/security-headers-cloudflare-workers/security-headers.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
|
|
||||||
<Figure
|
<Figure
|
||||||
src="/static/images/notes/security-headers-cloudflare-workers/security-headers.png"
|
src="/static/images/notes/security-headers-cloudflare-workers/security-headers.png"
|
||||||
|
@@ -11,8 +11,8 @@ tags:
|
|||||||
image: "/static/images/notes/shodan-search-queries/shodan.png"
|
image: "/static/images/notes/shodan-search-queries/shodan.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Image from "./components/media/Image";
|
import Image from "../components/media/Image";
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
|
|
||||||
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.
|
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.
|
||||||
|
|
||||||
|
@@ -10,7 +10,7 @@ tags:
|
|||||||
image: "/static/images/notes/y2k-sandbox/screenshot.png"
|
image: "/static/images/notes/y2k-sandbox/screenshot.png"
|
||||||
---
|
---
|
||||||
|
|
||||||
import Figure from "./components/media/Figure";
|
import Figure from "../components/media/Figure";
|
||||||
|
|
||||||
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?
|
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?
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user