Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion public/robots.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
User-agent: *
Disallow:
Disallow:

Sitemap: https://gephi.org/sitemap-index.xml
9 changes: 6 additions & 3 deletions src/layouts/Layout.astro
Original file line number Diff line number Diff line change
Expand Up @@ -9,19 +9,21 @@ interface Props {
class?: string;
pageId?: string;
title?: string;
fullTitle?: string;
description?: string;
image?: string;
noindex?: boolean;
jsonLd?: object | object[];
}

const DEFAULT_TITLE = "Gephi - The Open Graph Viz Platform";
const DEFAULT_DESCRIPTION =
"Gephi is the leading visualization and exploration software for all kinds of graphs and networks. Gephi is open-source and free.";
const DEFAULT_IMAGE = "/gephi-screenshot.jpg";

const { class: className, pageId, title, description, image, noindex } = Astro.props;
const { class: className, pageId, title, fullTitle, description, image, noindex, jsonLd } = Astro.props;

const pageTitle = title ? `${title} | Gephi` : DEFAULT_TITLE;
const pageTitle = fullTitle ? fullTitle : title ? `${title} | Gephi` : DEFAULT_TITLE;
const pageDescription = description || DEFAULT_DESCRIPTION;
const canonicalURL = new URL(Astro.url.pathname, Astro.site);
const ogImageURL = new URL(image || DEFAULT_IMAGE, Astro.site);
Expand Down Expand Up @@ -55,12 +57,13 @@ const appPages = [
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
<link rel="shortcut icon" href="/favicon.ico" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<meta name="apple-mobile-web-app-title" content="MyWebSite" />
<meta name="apple-mobile-web-app-title" content="Gephi" />
<link rel="manifest" href="/site.webmanifest" />
<link rel="sitemap" href="/sitemap-index.xml" />
<meta name="description" content={pageDescription} />
{noindex && <meta name="robots" content="noindex" />}
<title>{pageTitle}</title>
{jsonLd && <script is:inline type="application/ld+json" set:html={JSON.stringify(jsonLd)} />}

<meta property="og:type" content="website" />
<meta property="og:site_name" content="Gephi" />
Expand Down
18 changes: 16 additions & 2 deletions src/pages/desktop/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,26 @@ import layout01 from "../../images/desktop/layout_01.png";
import layout02 from "../../images/desktop/layout_02.png";
import realtime01 from "../../images/desktop/realtime_01.png";
import realtime02 from "../../images/desktop/realtime_02.png";

const jsonLd = {
"@context": "https://schema.org",
"@type": "SoftwareApplication",
name: "Gephi",
url: "https://gephi.org/desktop/",
description: "Open-source desktop application to visualize, analyze and explore networks and graphs.",
applicationCategory: "DataVisualization",
operatingSystem: "Windows, macOS, Linux",
license: "https://www.gnu.org/licenses/gpl-3.0.html",
image: "https://gephi.org/gephi-screenshot.jpg",
offers: { "@type": "Offer", price: "0", priceCurrency: "USD" },
};
---

<Layout
pageId="desktop"
title="Gephi Desktop"
description="Gephi is an open-source desktop application to visually analyze and explore networks and graphs. Free download for Windows, macOS and Linux."
fullTitle="Gephi Desktop: Free Network Analysis and Visualization Software"
description="Gephi is a free, open-source desktop application to visualize, analyze and explore networks and graphs. Download for Windows, macOS and Linux."
jsonLd={jsonLd}
>
<style>
:root {
Expand Down
16 changes: 15 additions & 1 deletion src/pages/faq/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -286,12 +286,26 @@ const QUESTIONS: Group<Question | Group<Question>>[] = [
],
},
];

const flatten = (items: (Question | Group<Question>)[]): Question[] =>
items.flatMap((item) => ("label" in item ? flatten(item.children) : [item]));

const jsonLd = {
"@context": "https://schema.org",
"@type": "FAQPage",
mainEntity: flatten(QUESTIONS.flatMap((group) => group.children)).map(({ question, answer }) => ({
"@type": "Question",
name: question,
acceptedAnswer: { "@type": "Answer", text: answer.trim() },
})),
};
---

<Layout
class="faq-page"
pageId="faq"
title="FAQ"
fullTitle="Gephi FAQ: Network Visualization and Analysis Questions"
jsonLd={jsonLd}
description="Answers to frequently asked questions about Gephi, the open-source network visualization and exploration software."
>
<Banner containerClass="my-5 py-4">
Expand Down
23 changes: 22 additions & 1 deletion src/pages/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,30 @@ import Layout from "../layouts/Layout.astro";

import GephiLitePaper from "../images/homepage/gephi-lite-paper.png";
import GephiPaper from "../images/homepage/gephi-paper.png";

const jsonLd = [
{
"@context": "https://schema.org",
"@type": "WebSite",
name: "Gephi",
url: "https://gephi.org/",
},
{
"@context": "https://schema.org",
"@type": "Organization",
name: "Gephi",
url: "https://gephi.org/",
logo: "https://gephi.org/gephi-logo.svg",
sameAs: ["https://github.com/gephi", "https://www.reddit.com/r/Gephi/", "https://www.youtube.com/@gephi-official"],
},
];
---

<Layout>
<Layout
fullTitle="Gephi: Open-Source Network Visualization and Analysis Software"
description="Gephi is free, open-source software for network visualization and analysis. Explore graphs and networks with Gephi desktop or Gephi Lite, right in your browser."
jsonLd={jsonLd}
>
<Banner>
<div class="row align-items-center">
<div class="col-lg-8 mb-5">
Expand Down
18 changes: 16 additions & 2 deletions src/pages/lite/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,26 @@ import Datatable from "../../images/lite/datatable.png";
import Multitouch from "../../images/lite/multi-touch.jpg";
import Responsive from "../../images/lite/responsiveness.jpg";
import Retina from "../../images/lite/retina.png";

const jsonLd = {
"@context": "https://schema.org",
"@type": "WebApplication",
name: "Gephi Lite",
url: "https://gephi.org/lite/",
description: "Open-source web application for network visualization and analysis, no install required.",
applicationCategory: "DataVisualization",
operatingSystem: "Any (web browser)",
browserRequirements: "Requires a modern web browser with WebGL",
license: "https://github.com/gephi/gephi-lite/blob/main/LICENSE.md",
offers: { "@type": "Offer", price: "0", priceCurrency: "USD" },
};
---

<Layout
pageId="lite"
title="Gephi Lite"
description="Gephi Lite is an open-source web application dedicated to visual network analysis. Works on desktop, tablets and mobiles, no install required."
fullTitle="Gephi Lite: Online Network Visualization Tool, No Install"
description="Gephi Lite is a free, open-source web application for network visualization and analysis. Works on desktop, tablets and mobiles, no install required."
jsonLd={jsonLd}
>
<style>
:root {
Expand Down
4 changes: 2 additions & 2 deletions src/pages/quickstart/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ import Layout from "../../layouts/Layout.astro";
<Layout
class="no-sticky-nav"
pageId="quickstart"
title="Quickstart"
description="Get started quickly with Gephi: install the software and learn the basics of visualizing and exploring your first network."
fullTitle="Gephi Quickstart: Visualize and Analyze Your First Network"
description="Get started with Gephi: install the software, import your data, and learn the basics of network visualization and analysis step by step."
>
<Banner>
<h1>Quickstart</h1>
Expand Down
11 changes: 11 additions & 0 deletions src/pages/toolkit/index.astro
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,23 @@ import { Image } from "astro:assets";
import Banner from "../../components/Banner.astro";
import Architecture from "../../images/toolkit/architecture.svg";
import Layout from "../../layouts/Layout.astro";

const jsonLd = {
"@context": "https://schema.org",
"@type": "SoftwareSourceCode",
name: "Gephi Toolkit",
url: "https://gephi.org/toolkit/",
description: "Java library to script Gephi and reuse its Graph, Layout, Filters and I/O modules in any Java program.",
programmingLanguage: "Java",
codeRepository: "https://github.com/gephi/gephi-toolkit",
};
---

<Layout
pageId="toolkit"
title="Gephi Toolkit"
description="Gephi Toolkit lets you script Gephi from any Java program. Reuse Gephi's core modules, including Graph, Layout, Filters, and I/O."
jsonLd={jsonLd}
>
<Banner>
<div class="banner-contents">
Expand Down
Loading