diff --git a/.github/workflows/nextjs.yml b/.github/workflows/nextjs.yml index 8168e7c..a375158 100644 --- a/.github/workflows/nextjs.yml +++ b/.github/workflows/nextjs.yml @@ -32,6 +32,14 @@ jobs: with: submodules: 'recursive' fetch-depth: 0 + - name: Go-Generate + run: | + # Build the pelican site + cd pelican + make generate USE_DOCKER=1 + + # Copy the parameters.json file to the /public/static folder + cp docs/parameters.json ../public/static/parameters.json - name: Detect package manager id: detect-package-manager run: | diff --git a/components/Parameters.tsx b/components/Parameters.tsx new file mode 100644 index 0000000..5ac0cf0 --- /dev/null +++ b/components/Parameters.tsx @@ -0,0 +1,78 @@ +import { Box } from '@mui/material'; +import React from "react"; +import { Typography } from "@mui/material"; + + +const drillDown = (object, keys, value) => { + let currentObject = object + keys.forEach((key, index) => { + if(index === keys.length - 1) { + currentObject[key] = value + } else { + if(currentObject[key] === undefined){ + currentObject[key] = {} + } + currentObject = currentObject[key] + } + }) +} + +const formatParameters = (parameters) => { + + let formattedParameters = {} + + for(const parameter of parameters) { + let [keyComposite, value] = Object.entries(parameter)[0] + + let keys: string[] = keyComposite.split(".") + + drillDown(formattedParameters, keys, value) + } + + return formattedParameters +} + +interface ParameterBoxProps { + name: string + value: any +} + +function ParameterBox({name, value}: ParameterBoxProps) { + + if(value?.name == undefined) { + return ( + + {name} + {Object.entries(value).map(([name, value]) => { + return + })} + + ) + } + + return ( + + {name} + {value.description} + + { value.components ? Components: {`[${value.components.join(", ")}]`} : undefined } + Type: {value.type} + Default: {value.default == "" ? "\"\"" : value.default} + + + ) +} + +export default function Parameters({parameters}) { + + parameters = formatParameters(parameters) + + return ( + + {Object.entries(parameters).map(([name, value]) => { + console.log("Outside", name, value) + return + })} + + ) +} \ No newline at end of file