Skip to content

Smart imports #160

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 7 commits into from
Apr 21, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/bundle_analysis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ jobs:
uses: dawidd6/action-download-artifact@v2
if: success() && github.event.number
with:
workflow: nextjs_bundle_analysis.yml
workflow: bundle_analysis.yml
branch: ${{ github.event.pull_request.base.ref }}
path: ./examples/bundle-test/.next/analyze/base

Expand Down
3 changes: 2 additions & 1 deletion examples/bundle-test/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
"nextBundleAnalysis": {
"budget": 358400,
"budgetPercentIncreaseRed": 20,
"showDetails": true
"showDetails": true,
"minimumChangeThreshold": 0
}
}
2 changes: 1 addition & 1 deletion examples/bundle-test/pages/js-page.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ export default function Page() {
return (
<div>
<h1>Hello</h1>
Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet. Consectetur adipiscing elit.
</div>
)
}
2 changes: 1 addition & 1 deletion examples/bundle-test/pages/no-ch-mdx.mdx
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
# Hello

Lorem ipsum dolor sit amet.
Lorem ipsum dolor sit amet. Consectetur adipiscing elit.
1 change: 1 addition & 0 deletions examples/nextjs/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
"private": true,
"version": "0.0.0",
"scripts": {
"dev": "next",
"build": "next build"
},
"dependencies": {
Expand Down
154 changes: 154 additions & 0 deletions examples/nextjs/pages/scrolly.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
# Scrollycoding with preview

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilities morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.

Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilities morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.

<CH.Scrollycoding preset="https://codesandbox.io/s/w5wfe">

## Step 1

Lorem ipsum dolor sit amet, consectetur adipiscing something about points, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.

> Nova in illis at dabat legi harundine non, ova miratur? _Quid in_ sole aer
> ad diffusa illis voluisti fidensque coniugiale laniata curam. Aras rivus
> eripuit, qua fistula haec partus; serpens, negat.
Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget.

Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilities morbi tempus.

```jsx src/App.js
import { motion } from "framer-motion"

export default function App() {
const bg = "hsl(20, 100%, 50%)"
return (
<motion.div
className="swatch"
animate={{ backgroundColor: bg }}
transition={{ duration: 1 }}
/>
)
}
```

---

## Step 2

Velit euismod in pellentesque massa placerat. Mi bibendum neque egestas congue quisque egestas diam in arcu. Nisi lacus sed viverra tellus in.

Praesent elementum facilisis leo vel fringilla est ullamcorper eget.

Id aliquet risus feugiat in ante metus dictum at tempor. Sed blandit libero volutpat sed cras. Sed odio morbi quis commodo odio aenean sed adipiscing. Velit euismod in pellentesque massa placerat. Mi bibendum neque egestas congue quisque egestas diam in arcu. Nisi lacus sed viverra tellus in. Nibh cras pulvinar mattis nunc sed. Luctus accumsan tortor posuere ac ut consequat semper viverra. Fringilla ut morbi tincidunt augue interdum velit euismod.

Morbi quis commodo.

```jsx src/App.js focus=1,4,6:10
import { motion } from "framer-motion"

export default function App() {
const bg = "hsl(110, 100%, 50%)"
return (
<motion.div
className="swatch"
animate={{ backgroundColor: bg }}
transition={{ duration: 1 }}
/>
)
}
```

---

## Step 3

Id aliquet risus feugiat in ante metus dictum at tempor. Sed blandit libero volutpat sed cras. Sed odio morbi quis commodo odio aenean sed adipiscing. Velit euismod in pellentesque massa placerat. Mi bibendum neque egestas congue quisque egestas diam in arcu.

- Nisi lacus sed viverra tellus in
- Nibh cras pulvinar mattis nunc sed
- Luctus accumsan tortor posuere ac

Ut consequat semper viverra. Fringilla ut morbi tincidunt augue interdum velit euismod.

```jsx src/App.js focus=1,4,6:10
import { motion } from "framer-motion"

export default function App() {
const bg = "hsl(200, 100%, 50%)"
return (
<motion.div
className="swatch"
animate={{ backgroundColor: bg }}
transition={{ duration: 1 }}
/>
)
}
```

---

## Step 4

Velit euismod in pellentesque massa placerat. Mi bibendum neque egestas congue quisque egestas diam in arcu. Nisi lacus sed viverra tellus in. Venenatis cras sed felis eget velit. Consectetur libero id faucibus nisl tincidunt.

Sed blandit libero volutpat sed cras.

- Nisi lacus sed viverra tellus in
- Nibh cras pulvinar mattis nunc sed

Gravida in fermentum et sollicitudin ac orci phasellus egestas tellus. Volutpat consequat mauris nunc congue nisi vitae.

```jsx src/App.js focus=1,4,6:10
import { motion } from "framer-motion"

export default function App() {
const bg = "hsl(290, 100%, 50%)"
return (
<motion.div
className="swatch"
animate={{ backgroundColor: bg }}
transition={{ duration: 1 }}
/>
)
}
```

---

## Step 5

Velit euismod in pellentesque massa placerat. Mi bibendum neque egestas congue quisque egestas diam in arcu. Nisi lacus sed viverra tellus in.

Praesent elementum facilisis leo vel fringilla est ullamcorper eget.

Id aliquet risus feugiat in ante metus dictum at tempor. Sed blandit libero volutpat sed cras. Sed odio morbi quis commodo odio aenean sed adipiscing. Velit euismod in pellentesque massa placerat.

Mi bibendum neque egestas congue quisque egestas diam in arcu. Nisi lacus sed viverra tellus in. Nibh cras pulvinar mattis nunc sed. Luctus accumsan tortor posuere ac ut consequat semper viverra.

- Fringilla ut morbi tincidunt augue interdum velit euismod.
- Luctus accumsan tortor posuere ac ut consequat semper viverra.

Morbi quis commodo.

```jsx src/App.js focus=1,4,6:10
import { motion } from "framer-motion"

export default function App() {
const bg = "hsl(10, 100%, 50%)"
return (
<motion.div
className="swatch"
animate={{ backgroundColor: bg }}
transition={{ duration: 1 }}
/>
)
}
```

</CH.Scrollycoding>

Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilities morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.

Consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Praesent elementum facilisis leo vel fringilla est ullamcorper eget. At imperdiet dui accumsan sit amet nulla facilities morbi tempus. Praesent elementum facilisis leo vel fringilla. Congue mauris rhoncus aenean vel. Egestas sed tempus urna et pharetra pharetra massa massa ultricies.
10 changes: 6 additions & 4 deletions packages/mdx/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -38,28 +38,29 @@
"coverage": "vitest run --coverage"
},
"dependencies": {
"@codesandbox/sandpack-client": "^0.1.20",
"diff": "^4.0.2",
"hast-util-to-estree": "^1.4.0",
"is-plain-obj": "^3.0.0",
"node-fetch": "^2.0.0",
"remark-rehype": "^8.1.0",
"shiki": "^0.10.1",
"unified": "^9.2.2",
"unist-util-visit": "^2.0.0",
"unist-util-visit-parents": "^3.0.0",
"use-spring": "^0.2.3"
"unist-util-visit-parents": "^3.0.0"
},
"devDependencies": {
"@codesandbox/sandpack-client": "^0.19.0",
"@mdx-js/mdx": "^2.0.0",
"@rollup/plugin-commonjs": "^21.1.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^13.2.1",
"@rollup/plugin-replace": "^4.0.0",
"@types/diff": "^5.0.2",
"@types/node": "^17.0.21",
"@types/node-fetch": "^2.6.1",
"@types/react": "^17.0.39",
"autoprefixer": "^9.8.2",
"cssnano": "^4.1.10",
"diff": "^4.0.2",
"esbuild": "^0.13.2",
"mdx-bundler": "^8.0.1",
"mdx-debugger": "^0.2.0",
Expand All @@ -73,6 +74,7 @@
"rollup-plugin-typescript2": "^0.27.1",
"sass": "^1.49.9",
"typescript": "^4.6.2",
"use-spring": "^0.2.3",
"vite": "^2.8.6",
"vitest": "^0.5.9"
},
Expand Down
11 changes: 8 additions & 3 deletions packages/mdx/rollup.config.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,16 @@ import path from "path"
import json from "@rollup/plugin-json"
import del from "rollup-plugin-delete"
import replace from "@rollup/plugin-replace"
import { nodeResolve } from "@rollup/plugin-node-resolve"
// import { terser } from "rollup-plugin-terser"
import commonjs from "@rollup/plugin-commonjs"

const clientExternal = [
"react",
"@codesandbox/sandpack-client",
"use-spring",
"diff",
"react-dom",
// "@codesandbox/sandpack-client",
// "use-spring",
// "diff",
]
const remarkExternal = [
"react",
Expand Down Expand Up @@ -112,6 +115,8 @@ export default function makeConfig(commandOptions) {
],
external: clientExternal,
plugins: [
nodeResolve(),
commonjs(),
json({ compact: true }),
typescript({
tsconfigOverride: {
Expand Down
14 changes: 14 additions & 0 deletions packages/mdx/src/components.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,20 @@ import {
import { Preview } from "./mdx-client/preview"
import { InlineCode } from "./mdx-client/inline-code"

export {
Code,
Section,
SectionLink,
SectionCode,
Spotlight,
Scrollycoding,
Preview,
annotationsMap as annotations,
Annotation,
Slideshow,
InlineCode,
}

export const CH = {
Code,
Section,
Expand Down
19 changes: 19 additions & 0 deletions packages/mdx/src/mdx-plugin/ch-usage.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import { JsxNode, SuperNode, visit } from "./nodes"

export function chUsage(tree: SuperNode) {
const usage = []
visit(
tree,
["mdxJsxFlowElement", "mdxJsxTextElement"],
(node: JsxNode) => {
if (
node.name &&
node.name.startsWith("CH.") &&
!usage.includes(node.name)
) {
usage.push(node.name)
}
}
)
return usage
}
Loading