This is an automated email from the ASF dual-hosted git repository. hsluoyz pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/casbin-website.git
commit 1918460e9c6dfb809f587c1892d77a7511ef8c47 Author: Yang Luo <[email protected]> AuthorDate: Sat Oct 3 22:35:42 2026 +0800 feat: add social card and structured data to homepage --- docusaurus.config.js | 1 + src/pages/index.js | 39 ++++++++++++++++++++++++++++++++++++--- static/img/social-card.png | Bin 0 -> 58780 bytes 3 files changed, 37 insertions(+), 3 deletions(-) diff --git a/docusaurus.config.js b/docusaurus.config.js index 325782803..998f759f6 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -20,6 +20,7 @@ module.exports = { organizationName: "apache", // Usually your GitHub org/user name. projectName: "casbin-website", // Usually your repo name. themeConfig: { + image: "img/social-card.png", metadata: [ { name: "Apache Casbin", diff --git a/src/pages/index.js b/src/pages/index.js index b95671ad0..412a71e05 100644 --- a/src/pages/index.js +++ b/src/pages/index.js @@ -1,6 +1,7 @@ import React, {useEffect, useRef} from "react"; import clsx from "clsx"; import Layout from "@theme/Layout"; +import Head from "@docusaurus/Head"; import Link from "@docusaurus/Link"; import styles from "./index.module.css"; import HomepageFeatures from "../components/HomepageFeatures"; @@ -210,7 +211,7 @@ function Showcase() { return ( <div className="hero text--center showcase"> <div className="container"> - <h1><Translate>Who's using Apache Casbin?</Translate></h1> + <h2><Translate>Who's using Apache Casbin?</Translate></h2> <p style={{ width: "50vw", margin: "auto", @@ -232,11 +233,43 @@ function Showcase() { ); } +const structuredData = { + "@context": "https://schema.org", + "@graph": [ + { + "@type": "WebSite", + "@id": "https://casbin.apache.org/#website", + "name": "Apache Casbin", + "url": "https://casbin.apache.org/", + "publisher": {"@id": "https://www.apache.org/#organization"}, + }, + { + "@type": "Organization", + "@id": "https://www.apache.org/#organization", + "name": "The Apache Software Foundation", + "url": "https://www.apache.org/", + }, + { + "@type": "SoftwareSourceCode", + "name": "Apache Casbin", + "url": "https://casbin.apache.org/", + "description": "Open-source authorization library that supports access control models such as ACL, RBAC, ABAC and ReBAC, with implementations for Go, Java, Node.js, Python, .NET, PHP, Rust, C++ and other languages.", + "codeRepository": "https://github.com/apache/casbin", + "programmingLanguage": ["Go", "Java", "JavaScript", "TypeScript", "Python", "C#", "PHP", "Rust", "C++"], + "license": "https://www.apache.org/licenses/LICENSE-2.0", + "publisher": {"@id": "https://www.apache.org/#organization"}, + }, + ], +}; + export default function Home() { return ( <Layout - title="Apache Casbin ยท An authorization library" - description="An authorization library that supports access control models like ACL, RBAC, ABAC, ReBAC, PBAC, OrBAC, BLP, Biba, LBAC, UCON, Priority, RESTful for Golang, Java, C/C++, Node.js, Javascript, PHP, Laravel, Python, .NET (C#), Delphi, Rust, Ruby, Swift (Objective-C), Lua (OpenResty), Dart (Flutter) and Elixir"> + title="Open-Source Authorization Library for ACL, RBAC and ABAC" + description="Apache Casbin is an open-source authorization library that supports ACL, RBAC, ABAC, ReBAC and more, with one model for Go, Java, Node.js, Python, .NET, PHP, Rust and C++."> + <Head> + <script type="application/ld+json">{JSON.stringify(structuredData)}</script> + </Head> <main> <HomepageHeader /> <LanguageIntegration /> diff --git a/static/img/social-card.png b/static/img/social-card.png new file mode 100644 index 000000000..97ea1c0c0 Binary files /dev/null and b/static/img/social-card.png differ --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
