From 0fd635f2b218aa58a4f386037e1c430b96aa1a96 Mon Sep 17 00:00:00 2001 From: Defectink Date: Mon, 18 Apr 2022 11:14:22 +0800 Subject: [PATCH] Update post * update algolia --- components/NavBar.tsx | 6 +- components/RUA/RUASandpack.tsx | 2 +- next.config.mjs | 7 +- package.json | 1 - .../how-to-load-a-background-with-threejs.mdx | 7 ++ scripts/build-search.mjs | 92 +++++++++++++++++++ yarn.lock | 42 ++------- 7 files changed, 111 insertions(+), 46 deletions(-) create mode 100644 scripts/build-search.mjs diff --git a/components/NavBar.tsx b/components/NavBar.tsx index 9dc679f..8a828a8 100644 --- a/components/NavBar.tsx +++ b/components/NavBar.tsx @@ -93,9 +93,9 @@ const HeadBar: FC = () => {
  • diff --git a/components/RUA/RUASandpack.tsx b/components/RUA/RUASandpack.tsx index 8d28024..cd81fc2 100644 --- a/components/RUA/RUASandpack.tsx +++ b/components/RUA/RUASandpack.tsx @@ -1,4 +1,4 @@ -import { FC, useEffect, useState } from 'react'; +import { FC } from 'react'; import { Sandpack, SandpackProps } from '@codesandbox/sandpack-react'; import '@codesandbox/sandpack-react/dist/index.css'; import { useTheme } from 'next-themes'; diff --git a/next.config.mjs b/next.config.mjs index bf8065f..8c47253 100644 --- a/next.config.mjs +++ b/next.config.mjs @@ -1,7 +1,6 @@ import remarkFrontmatter from 'remark-frontmatter'; import mdx from '@next/mdx'; import rehypePrism from '@mapbox/rehype-prism'; -// import remarkToc from 'remark-toc'; import composePlugins from 'next-compose-plugins'; import remarkGfm from 'remark-gfm'; import rehypeSlug from 'rehype-slug'; @@ -10,11 +9,7 @@ const composedConfig = composePlugins([ mdx({ extension: /\.mdx?$/, options: { - remarkPlugins: [ - remarkFrontmatter, - // [remarkToc, { maxDepth: 2 }], - remarkGfm, - ], + remarkPlugins: [remarkFrontmatter, remarkGfm], rehypePlugins: [rehypePrism, rehypeSlug], providerImportSource: '@mdx-js/react', }, diff --git a/package.json b/package.json index 7d06aac..e419f9f 100644 --- a/package.json +++ b/package.json @@ -27,7 +27,6 @@ "rehype-slug": "^5.0.1", "remark-frontmatter": "^4.0.1", "remark-gfm": "^3.0.1", - "remark-toc": "^8.0.1", "sharp": "^0.30.3" }, "devDependencies": { diff --git a/pages/p/how-to-load-a-background-with-threejs.mdx b/pages/p/how-to-load-a-background-with-threejs.mdx index 5082087..d2d6ee5 100644 --- a/pages/p/how-to-load-a-background-with-threejs.mdx +++ b/pages/p/how-to-load-a-background-with-threejs.mdx @@ -101,10 +101,16 @@ export default function App() { ) }`; +export const styles = `* { + padding: 0; + margin: 0; +}`; + { + if (a < b) { + return 1; + } else if (a > b) { + return -1; + } else { + return 0; + } +}; + +/** + * Read post meta info with gray-matter. + * @param filename + * @returns + */ +const readFileMeta = (filename) => { + const markdownWithMeta = fs.readFileSync( + path.join('pages/p', filename), + 'utf-8' + ); + const slug = filename.replace(/\.mdx$/, ''); + const { data: meta } = matter(markdownWithMeta); + return { + slug, + ...{ ...meta }, + }; +}; + +/** + * Read all posts with matter info. + * @returns + */ +export const postLists = async () => { + const files = fs.readdirSync(path.join('pages/p')); + const posts = files.map(readFileMeta).sort(sortByDate); + + return posts; +}; + +async function main() { + // initialize environment variables + config(); + + if ( + !process.env.NEXT_PUBLIC_ALGOLIA_APP_ID && + !process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_ADMIN_KEY + ) { + return console.log('API key not found!'); + } + + try { + const posts = await postLists(); + // All objects must have an unique objectID + posts.forEach((p) => (p.objectID = p.slug)); + + // initialize the client with your environment variables + const client = algoliasearch( + process.env.NEXT_PUBLIC_ALGOLIA_APP_ID, + process.env.NEXT_PUBLIC_ALGOLIA_SEARCH_ADMIN_KEY + ); + + // initialize the index with your index name + const index = client.initIndex('RUA'); + + // save the objects! + const algoliaResponse = await index.replaceAllObjects(posts); + + // check the output of the response in the console + console.log( + `🎉 Sucessfully added ${ + algoliaResponse.objectIDs.length + } records to Algolia search. Object IDs:\n${algoliaResponse.objectIDs.join( + '\n' + )}` + ); + } catch (e) { + console.log(e); + } +} + +// (async () => { +// const posts = await postLists(); +// console.log(posts); +// })(); + +main(); diff --git a/yarn.lock b/yarn.lock index 4d8cc82..c41142b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1245,16 +1245,6 @@ resolved "https://registry.npmmirror.com/@types/estree/-/estree-0.0.50.tgz#1e0caa9364d3fccd2931c3ed96fdbeaa5d4cca83" integrity sha512-C6N5s2ZFtuZRj54k2/zyRhNDjJwwcViAM3Nbm8zjBpbqAdZ00mr0CFxvSKeO8Y/e03WVFLpQMdHYVfUd6SB+Hw== -"@types/extend@^3.0.0": - version "3.0.1" - resolved "https://registry.npmmirror.com/@types/extend/-/extend-3.0.1.tgz#923dc2d707d944382433e01d6cc0c69030ab2c75" - integrity sha512-R1g/VyKFFI2HLC1QGAeTtCBWCo6n75l41OnsVYNbmKG+kempOESaodf6BeJyUM3Q0rKa/NQcTHbB2+66lNnxLw== - -"@types/github-slugger@^1.0.0": - version "1.3.0" - resolved "https://registry.npmmirror.com/@types/github-slugger/-/github-slugger-1.3.0.tgz#16ab393b30d8ae2a111ac748a015ac05a1fc5524" - integrity sha512-J/rMZa7RqiH/rT29TEVZO4nBoDP9XJOjnbbIofg7GQKs4JIduEO3WLpte+6WeUz/TcrXKlY+bM7FYrp8yFB+3g== - "@types/graceful-fs@^4.1.2": version "4.1.5" resolved "https://registry.npmmirror.com/@types/graceful-fs/-/graceful-fs-4.1.5.tgz#21ffba0d98da4350db64891f92a9e5db3cdb4e15" @@ -1510,7 +1500,7 @@ ajv@^6.10.0, ajv@^6.12.4: json-schema-traverse "^0.4.1" uri-js "^4.2.2" -algoliasearch@^4.0.0: +algoliasearch@^4.0.0, algoliasearch@^4.13.0: version "4.13.0" resolved "https://registry.npmmirror.com/algoliasearch/-/algoliasearch-4.13.0.tgz#e36611fda82b1fc548c156ae7929a7f486e4b663" integrity sha512-oHv4faI1Vl2s+YC0YquwkK/TsaJs79g2JFg5FDm2rKN12VItPTAeQ7hyJMHarOPPYuCnNC5kixbtcqvb21wchw== @@ -2623,6 +2613,11 @@ dot-prop@^5.2.0: dependencies: is-obj "^2.0.0" +dotenv@^16.0.0: + version "16.0.0" + resolved "https://registry.npmmirror.com/dotenv/-/dotenv-16.0.0.tgz#c619001253be89ebb638d027b609c75c26e47411" + integrity sha512-qD9WU0MPM4SWLPJy/r2Be+2WgQj8plChsyrCNQzW/0WjvcJQiKQJ9mH3ZgB3fxbUUxgc/11ZJ0Fi5KiimWGz2Q== + dotenv@^5.0.1: version "5.0.1" resolved "https://registry.npmmirror.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" @@ -3374,7 +3369,7 @@ github-from-package@0.0.0: resolved "https://registry.npmmirror.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" integrity sha512-SyHy3T1v2NUXn29OsWdxmK6RwHD+vkj3v8en8AOBZ1wBQ/hCAQ5bAQTD02kW4W9tUp/3Qh6J8r9EvntiyCmOOw== -github-slugger@^1.0.0, github-slugger@^1.1.1: +github-slugger@^1.1.1: version "1.4.0" resolved "https://registry.npmmirror.com/github-slugger/-/github-slugger-1.4.0.tgz#206eb96cdb22ee56fdc53a28d5a302338463444e" integrity sha512-w0dzqw/nt51xMVmlaV1+JRzN+oCa1KfcgGEWhxUG16wbdA+Xnt/yoFO8Z8x/V82ZcZ0wy6ln9QDup5avbhiDhQ== @@ -5071,20 +5066,6 @@ mdast-util-to-string@^3.0.0, mdast-util-to-string@^3.1.0: resolved "https://registry.npmmirror.com/mdast-util-to-string/-/mdast-util-to-string-3.1.0.tgz#56c506d065fbf769515235e577b5a261552d56e9" integrity sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA== -mdast-util-toc@^6.0.0: - version "6.1.0" - resolved "https://registry.npmmirror.com/mdast-util-toc/-/mdast-util-toc-6.1.0.tgz#1f38419f5ce774449c8daa87b39a4d940b24be7c" - integrity sha512-0PuqZELXZl4ms1sF7Lqigrqik4Ll3UhbI+jdTrfw7pZ9QPawgl7LD4GQ8MkU7bT/EwiVqChNTbifa2jLLKo76A== - dependencies: - "@types/extend" "^3.0.0" - "@types/github-slugger" "^1.0.0" - "@types/mdast" "^3.0.0" - extend "^3.0.0" - github-slugger "^1.0.0" - mdast-util-to-string "^3.1.0" - unist-util-is "^5.0.0" - unist-util-visit "^3.0.0" - mdurl@^1.0.0: version "1.0.1" resolved "https://registry.npmmirror.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" @@ -6480,15 +6461,6 @@ remark-rehype@^10.0.0: mdast-util-to-hast "^12.1.0" unified "^10.0.0" -remark-toc@^8.0.1: - version "8.0.1" - resolved "https://registry.npmmirror.com/remark-toc/-/remark-toc-8.0.1.tgz#f3e07ea13734f1c531e3d3460e58babe31d17cd7" - integrity sha512-7he2VOm/cy13zilnOTZcyAoyoolV26ULlon6XyCFU+vG54Z/LWJnwphj/xKIDLOt66QmJUgTyUvLVHi2aAElyg== - dependencies: - "@types/mdast" "^3.0.0" - mdast-util-toc "^6.0.0" - unified "^10.0.0" - remote-origin-url@^1.0.0: version "1.0.0" resolved "https://registry.npmmirror.com/remote-origin-url/-/remote-origin-url-1.0.0.tgz#add020aa5f1a0b37372858e02b323dc28d4cd030"