From f443dab92c9953b42ca8ad4820fec0dc463df8a3 Mon Sep 17 00:00:00 2001 From: olayway Date: Thu, 18 May 2023 19:09:12 +0200 Subject: [PATCH] [site/content][s]: add drd guide --- .../assets/howto/catalog-facets-example.png | Bin 0 -> 21013 bytes site/content/howto/drd.md | 334 ++++++++++++++++++ 2 files changed, 334 insertions(+) create mode 100644 site/content/assets/howto/catalog-facets-example.png create mode 100644 site/content/howto/drd.md diff --git a/site/content/assets/howto/catalog-facets-example.png b/site/content/assets/howto/catalog-facets-example.png new file mode 100644 index 0000000000000000000000000000000000000000..38a715cb5381a1f4baa470e20326b371186bd2a6 GIT binary patch literal 21013 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 literal 0 HcmV?d00001 diff --git a/site/content/howto/drd.md b/site/content/howto/drd.md new file mode 100644 index 00000000..47295d57 --- /dev/null +++ b/site/content/howto/drd.md @@ -0,0 +1,334 @@ +# How to create data-rich documents with charts and tables? + +> [!info] Prerequisites +> If you want to enrich your markdown content with charts and tables, you first need to add support for rendering markdown files in your PortalJS app. Follow [[markdown|this guide]] to learn how to do this. + +PortalJS comes with a library of components that provides essential pieces for your data portal. The best way to explore the components is to look at our [Storybook](https://storybook.portaljs.org/) that contains all the details on how to use them. Below is an overview of available components. + +You can install the library with: + +```sh +npm i @portaljs/components +``` + +Now, in order to use these components in your markdown files, we need to pass them to our `MDXRemote` component (see [[markdown#Import, parse and render your markdown files|this section in our markdown guide]]): + +```tsx +// e.g. /blog/[[...slug]].tsx +import fs from "fs"; +import { LineChart, Table, Catalog, Vega, VegaLite } from "@portaljs/components"; + +import { MdxRemote } from "next-mdx-remote"; +import clientPromise from "@/lib/mddb.mjs"; +import parse from "@/lib/markdown"; + +const components = { + Table: Table, + Vega: Vega, + VegaLite: VegaLite, + LineChart: LineChart, +}; + + +export default function Page({ source }) { + source = JSON.parse(source); + + return ( + <> + + + ); +} + +// Import metadata of a file matching the static path and return its parsed source and frontmatter object +export const getStaticProps = async ({ params }) => { + const urlPath = params?.slug ? (params.slug as string[]).join("/") : "/"; + + const mddb = await clientPromise; + const dbFile = await mddb.getFileByUrl(urlPath); + const filePath = dbFile!.file_path; + // const frontMatter = dbFile!.metadata ?? {}; + + const source = fs.readFileSync(filePath, { encoding: "utf-8" }); + const { mdxSource } = await parse(source, "mdx", {}); + + return { + props: { + source: JSON.stringify(mdxSource), + // frontMatter + }, + }; +}; + +``` + +You can now use these components in your markdown, like so: + +```md +### My Data Rich Note + +Some markdown here. + + + +Some markdown here. +``` + +## PortalJS components + +### Table + +An easy-to-use table component with built-in pagination, search, and sorting. It can be used with raw data, raw CSV strings or with URLs to hosted CSV files. + +![[table-example.png]] + +Example usage: + +```js +
+``` + +>[!info] +> More info on the [storybook page](https://storybook.portaljs.org/?path=/docs/components-table--docs) + +### Linechart + +A simple component that allows the creation of an opinionated line chart without the need to go deep into charting standards. It can be used with raw data, raw CSV strings or with URLs to hosted CSV files. + +![[linechart-example.png]] + +Example usage: + +```js + +``` + +>[!info] +> More info on the [storybook page](https://storybook.portaljs.org/?path=/docs/components-linechart--docs) + +### Vega chart + +A wrapper around the [Vega specification](https://vega.github.io/vega/) that allows you to build pretty much any kind of chart imaginable. + +Example usage: +![](https://hackmd.io/_uploads/ryN5mYmSh.png) + +```js + +``` + +> [!info] +> More info on the [storybook page](https://storybook.portaljs.org/?path=/docs/components-vega--docs) + +### VegaLite chart + +A wrapper around the [Vega Lite specification](https://vega.github.io/vega-lite/) which allows for a more concise grammar than Vega around the building of charts. + +Example usage: + +```js + +``` + +>[!info] +> More info on the [storybook page](https://storybook.portaljs.org/?path=/docs/components-vegalite--docs) + +### Catalog + +A searchable catalog that will index a list of datasets and allow for contextual searching + filters. + +![[catalog-example.png]] + +Example usage: + +```js + +``` + +You can also add facets that are going to act as filters for your metadata. + +![[catalog-facets-example.png]] + +```js + +``` + +>[!info] +> More info on the [storybook page](https://storybook.portaljs.org/?path=/docs/components-catalog--docs)