mirror of
https://github.com/open-policy-agent/opa.git
synced 2026-08-13 03:42:35 -06:00
53ab5b7a80
* New site v1 Signed-off-by: Charlie Egan <charlie@styra.com> * Add feature and language pages Signed-off-by: Charlie Egan <charlie@styra.com> * tidy data generation Signed-off-by: Charlie Egan <charlie@styra.com> * Import docs Signed-off-by: Charlie Egan <charlie@styra.com> * WIP Signed-off-by: Charlie Egan <charlie@styra.com> * Update contentd65888c14fSigned-off-by: Charlie Egan <charlie@styra.com> * Refactor site to support any base path Signed-off-by: Charlie Egan <charlie@styra.com> * Use base URL for nav icons Signed-off-by: Charlie Egan <charlie@styra.com> * Refactor locations of community and support logos Signed-off-by: Charlie Egan <charlie@styra.com> * More asset refactoring Signed-off-by: Charlie Egan <charlie@styra.com> * Move k8s docs into correct location Signed-off-by: Charlie Egan <charlie@styra.com> * Build the sidebar Signed-off-by: Charlie Egan <charlie@styra.com> * Fix CLI formatting Signed-off-by: Charlie Egan <charlie@styra.com> * Fix broken links Signed-off-by: Charlie Egan <charlie@styra.com> * Tidy nav with some dividers Signed-off-by: Charlie Egan <charlie@styra.com> * Deploy under /new Signed-off-by: Charlie Egan <charlie@styra.com> * Deploy new site on preview too Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Link to OPA repo for GH nav link Signed-off-by: Charlie Egan <charlie@styra.com> * Updates to homepage Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Add a logo grid to homepage Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Update homepage to have improved layout Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Update homepage rego example Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Update homepage logo list Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Update PlaygroundExample to used ?? operator Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Add a simple search We might want to come back to this later to make the results better but this is as good as the current search. Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Add a docs archive page Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Revise homepage content and use demo video Signed-off-by: Charlie Egan <charlie@styra.com> * docs: correct archive version list Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Only support light mode This is something we can come back to when we have time to review the graphics for multi mode Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Link is available by default Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Remove blue hero color, and use smaller logo grid Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Correct ecosystem feature links Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Drop loadEcosystem This is no longer needed as ecosystem pages are now loaded like other pages (no special asset handling). Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Update content tof308f61This branch duplicates content to reformat some of it for the new site. This commit ports in some of the new changes. https://github.com/open-policy-agent/opa/compare/f7b002e17...f308f612b Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Update slack logos Use one with a transparent background instead. Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Use styled components, clear custom css This keeps custom css to a minimum. Used for side by side and for hiding the codeAPI text. Signed-off-by: Charlie Egan <charlie@styra.com> * docs: Update archive to show 1.4.2 release Signed-off-by: Charlie Egan <charlie@styra.com> --------- Signed-off-by: Charlie Egan <charlie@styra.com>
89 lines
2.4 KiB
JavaScript
89 lines
2.4 KiB
JavaScript
import Heading from "@theme/Heading";
|
|
import Layout from "@theme/Layout";
|
|
import React from "react";
|
|
import ReactMarkdown from "react-markdown";
|
|
import Card from "./components/Card";
|
|
|
|
import getLogoAsset from "./lib/ecosystem/getLogoAsset.js";
|
|
import sortPagesByRank from "./lib/ecosystem/sortPagesByRank.js";
|
|
|
|
import entries from "@generated/ecosystem-data/default/entries.json";
|
|
import featureCategories from "@generated/ecosystem-data/default/feature-categories.json";
|
|
import features from "@generated/ecosystem-data/default/features.json";
|
|
import languages from "@generated/ecosystem-data/default/languages.json";
|
|
|
|
const EcosystemFeature = (props) => {
|
|
const { feature } = props.route.customData;
|
|
|
|
const pagesByFeature = {};
|
|
|
|
for (const pageId in entries) {
|
|
const page = entries[pageId];
|
|
const features = page.docs_features || {};
|
|
|
|
for (const featureKey of Object.keys(features)) {
|
|
if (!pagesByFeature[featureKey]) {
|
|
pagesByFeature[featureKey] = [];
|
|
}
|
|
|
|
pagesByFeature[featureKey].push(page);
|
|
}
|
|
}
|
|
|
|
const pages = pagesByFeature[feature] || [];
|
|
|
|
const sortedPages = sortPagesByRank(pages);
|
|
|
|
const title = features[feature].title;
|
|
const content = features[feature].content;
|
|
|
|
return (
|
|
<Layout title={title}>
|
|
<div className="container margin-vert--lg">
|
|
<Heading as="h1" style={{ margin: 0 }}>
|
|
{title}
|
|
</Heading>
|
|
{content && (
|
|
<div style={{ marginTop: "1rem" }}>
|
|
<div style={{ marginTop: "0.5rem" }}>
|
|
<ReactMarkdown>
|
|
{content}
|
|
</ReactMarkdown>
|
|
</div>
|
|
</div>
|
|
)}
|
|
|
|
<div
|
|
style={{
|
|
marginTop: "2rem",
|
|
display: "flex",
|
|
flexWrap: "wrap",
|
|
justifyContent: "center",
|
|
gap: 20,
|
|
}}
|
|
>
|
|
{sortedPages.map((id) => {
|
|
const page = pages[id];
|
|
|
|
const cardData = {
|
|
title: page.title,
|
|
note: page.docs_features[feature].note,
|
|
icon: getLogoAsset(page.id),
|
|
link: `/ecosystem/entry/${page.id}`,
|
|
link_text: "View Details",
|
|
};
|
|
|
|
return (
|
|
<div key={id} style={{ flex: "1 1 30%", minWidth: "250px", maxWidth: "400px" }}>
|
|
<Card item={cardData} />
|
|
</div>
|
|
);
|
|
})}
|
|
</div>
|
|
</div>
|
|
</Layout>
|
|
);
|
|
};
|
|
|
|
export default EcosystemFeature;
|