diff --git a/site/components/BaseLink.tsx b/site/components/BaseLink.tsx new file mode 100644 index 00000000..3fa39c91 --- /dev/null +++ b/site/components/BaseLink.tsx @@ -0,0 +1,15 @@ +import Link from "next/link"; +import { forwardRef } from "react"; + +const BaseLink = forwardRef((props: any, ref) => { + const { href, children, ...rest } = props; + return ( + + {children} + + ); +}); + +BaseLink.displayName = "BaseLink"; + +export default BaseLink; diff --git a/site/components/Features.tsx b/site/components/Features.tsx new file mode 100644 index 00000000..d1679550 --- /dev/null +++ b/site/components/Features.tsx @@ -0,0 +1,71 @@ +const features: { title: string; description: string; icon: string }[] = [ + { + title: 'Unified sites', + description: + 'Present data and content in one seamless site, pulling datasets from a DMS (e.g. CKAN) and content from a CMS (e.g. wordpress) with a common internal API', + icon: '/images/icon-unified-sites.svg', + }, + { + title: 'Developer friendly', + description: 'Built with familiar frontend tech Javascript, React etc', + icon: '/images/icon-dev-friendly.svg', + }, + { + title: 'Batteries included', + description: + 'Full set of portal components out of the box e.g. catalog search, dataset showcase, blog etc.', + icon: '/images/icon-batteries-included.svg', + }, + { + title: 'Easy to theme and customize', + description: + 'installable themes, use standard CSS and React+CSS tooling. Add new routes quickly.', + icon: '/images/icon-easy-to-theme.svg', + }, + { + title: 'Extensible', + description: 'quickly extend and develop/import your own React components', + icon: '/images/icon-extensible.svg', + }, + { + title: 'Well documented', + description: + 'full set of documentation plus the documentation of NextJS and Apollo.', + icon: '/images/icon-well-documented.svg', + }, +]; + +export default function Features() { + return ( +
+ Portal.JS is built in JavaScript and React on top of the popular Next.js + framework, assuming a "decoupled" approach where the frontend is a + separate service from the backend and interacts with backend(s) via an + API. It can be used with any backend and has out of the box support for + CKAN. +
++ {feature.description} +
++ Portal.JS is a framework for rapidly building rich data portal + frontends using a modern frontend approach. It can be used to + present a single dataset or build a full-scale data + catalog/portal. +
++ Sign up to get notified about updates +
+ + {/*+ We are actively trialling and developing Flowershow. If you'd + like to get notified about our progress and important updates, + please sign up. +
*/} +
+ A project of
+
+
+ Datopian
+
+
+
+ {tokens.map((line, lineIndex) => (
+
+ {line.map((token, tokenIndex) => (
+
+ ))}
+
+ ))}
+
+
+ )}
+