Skip to content

Linaro/ecosystemdashboard-astro

Repository files navigation

Linaro Arm Ecosystem Dashboard Astro Site

This is the git repository for the https://ecosystemdashboard.linaro.org static Astro website.

Hosted in this repo are the markdown content files associated with the website. Feel free to submit a PR / Issue if there is anything you would like to change.


Rules to add a new project to the top level

The project can be added to the top level if it can fit the one of the following conditions:

  1. The project officially released Arm supported releases.

  2. The project itself does not release Arm supported releases(some project only release source code), but they officially claimed that they can run on.

  3. The project neither released Arm supported releases, nor officially claimed to have Arm support, but some of the mainstream OS distribution provided packages(CentOS, Ubuntu, openEuler, etc), we can probably also provide the information, because those OS distributions can provide support for the software.

Pull Requests

When a Pull Request is created, GitHub Actions are used to automatically build a test version of the proposed modified site and then check that any links in the pages are valid.

If there are any questions or problems with the GitHub Actions, please contact Linaro IT Services.

Project Details Structure

Directory "src/content/projects/" contains all the sub-page info using yaml, so please refer to existing files to filling in the content.

Field Details
category* Filling the category filed, e.g. "storage", "database", "big data"
project - type* Coding language of the project
project - logo* Better to find the png logo without any background. Store it at public/assets/projectLogos/
project - overview* Project introduction
support_release* All support arm64 release
user_stories(if have) - optional The user stories, please check with user before public the cases. Reference to Hadoop User story
work_items Patch, PR, Jira Items which is related to this project support and status on Arm64, the status can be DONE, TODO or WIP
Events - optional All the presentations, talks, demo which is related to this project support and status on Arm64

* required field

** offer a “not available” option so we can flag it.

Dependencies

The website is developed with the following tools:

  • Astro - UI meta-framework used to develop and build the website.
  • Tailwind - css framework used to do the majority of the styling.
  • Solid.js - client-side UI framework used for highly interactive elements.
  • Pagefind - fully static search library used to create search indexes from built website files.

Project Structure

The high-level folder structure of the project is as follows:


├── src/

│   └── components/

│   └── content/

│   └── layouts/

│   └── lib/

│   └── pages/

│   └── styles/


components contains .astro and .tsx (for solid.js) UI component files that are reused throughout the website to build pages.

content contains .md, yaml and other text files that provide the content of the website. Go to content section.

layouts contains reusable Astro layout files that describe the overall layout of a page, including html headers, scripts etc.

lib contains .ts typescript files with helper functions that are used throughout the website for formatting, fetching images etc.

pages contains Astro page files that describe the individual pages within the website. This folder uses file based routing to determine urls in the built site.

styles contains css files. Due to the use tailwind, there is only one global css file to extend tailwind where necessary (alongside the tailwind configuration file). Further stylesheets might be added where necessary if required for specific dependencies.

Content

The content of the website is located in the src/content folder of the repo, spread across various folders, referred to as "collections". See Astro content collections for more info.



├── content/

│   └── authors/

│   └── blogs/

│   └── data/

│   └── events/

│   └── news/

│   └── pages/

│   └── rows/

│   └── sections/

│   └── tags/

Pages

Pages can be edited via the relevant .md files in the src/content/pages folder. The slug property of the frontmatter determines the resulting url of the page.

New layouts can be built by adding rows and sections to the flow property of a page's frontmatter. This property defines a series of row components that contain section components to build the page. The row property of flow and the component property of a sections item must both reference a filename (without extension) within the row and section collections respectively.

- flow:
    - row: container_row
      sections:
        - component: cards

container_row here references src/content/rows/container_row.md and cards references src/content/sections/cards.md

If a new row or section component is required, please contact it-support@linaro.org.

Developer note: Pages are built from the pages collection by the src/pages/[...slug].astro file.

Local Development

Running the site locally will require Node.js (>=18) and the yarn package manager.

First, install dependencies with yarn install.

The following commands can then be used to build and run the site locally.

Command Description
yarn build Builds the site in the dist folder of the root directory.
yarn start Runs the site in a development server, with hot module replacement to reflect updates to the code as soon as they are saved.
yarn preview Runs the most recent build files in a development server. Unlike yarn dev this won't have live updates, but will be a closer representation of the site as it would be in deployment.

Questions?

If you have any questions about updating or building this website, please contact Linaro IT Support at it-support@linaro.org.