🚀   새로운 블로그로 이전했습니다.

Next.js 블로그 mdx에서 이미지 복붙하기 (feat. Paste Image)

2022.11.15
2분

notion, velog로 글을 작성하다가 vscode로 작성하려다보니 이미지를 추가하는 것이 꽤나 번거롭습니다. 🥲
일일이 링크를 찾거나 생성해서 수작업으로 넣어줘야 했지요.
앞으로 글을 그대로 수작업으로 작성해야한다고 생각하면 너무 아찔합니다!

다행히 우리를 구원해줄 vscode 플러그인이 있습니다!
mdx에서 이미지를 복사하면 로컬환경에 정적 이미지 리소스를 생성해줍니다.

✨ Paste Image
다만 gif는 지원되지 않습니다.


환경 세팅하기

.vscode/settings.json 파일을 생성합니다.
레포 단위의 개발환경을 세팅하기 위함입니다.

{
  "pasteImage.defaultName": "YYMMDD-HHmmss",
  "pasteImage.basePath": "${projectRoot}/public",
  "pasteImage.path": "${projectRoot}/public/posts/${currentFileNameWithoutExt}",
  "pasteImage.forceUnixStyleSeparator": true,
  "pasteImage.insertPattern": "![${imageFileNameWithoutExt}](${imageFilePath})",
  "pasteImage.prefix": "/"
}

경로를 mdx 파일 단위로 이미지가 저장되도록 했습니다.

/posts/nextjs-blog/2-images.mdx
-> /public/posts/2-images/[YYMMDD-HHmmss].png

posts와 1:1 매칭하고 싶지만 중간 경로를 추출할 수 있는 방법이 없는 것 같습니다 🥲


단축키 설정

저는 간편하게 복붙하기 위해서 단축키도 같이 수정을 해줬습니다.

.vscode/keybindings.json

[
  {
    "key": "shift+cmd+v",
    "command": "-notebook.cell.pasteAbove",
    "when": "notebookEditorFocused && !inputFocus"
  },
  {
    "key": "shift+cmd+v",
    "command": "-markdown.showPreview",
    "when": "!notebookEditorFocused && editorLangId == 'markdown'"
  },
  {
    "key": "shift+cmd+v",
    "command": "-markdown.extension.closePreview",
    "when": "markdownPreviewFocus"
  },
  {
    "key": "shift+cmd+v",
    "command": "extension.pasteImage",
    "when": "editorTextFocus"
  }
]

이제 이미지를 복사하고 shift + cmd + v 입력하면 이미지가 짜잔 생성됩니다.
딜레이가 거의 없다는 사실!

copy-paste

221115-012522