Skip to content

Commit

Permalink
Merge pull request #28 from JeremyParish69/add-landing-page-cms
Browse files Browse the repository at this point in the history
Add Landing Page CMS for Upcoming Assets
  • Loading branch information
JeremyParish69 authored Mar 12, 2024
2 parents c523d18 + 2234d74 commit dfa0671
Show file tree
Hide file tree
Showing 4 changed files with 140 additions and 0 deletions.
22 changes: 22 additions & 0 deletions .github/workflows/validate-landing-page.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
on:
pull_request:
branches:
- main
name: Pull request workflow
jobs:
validate_earn_strategies:
name: Validate Landing Page Content
runs-on: ubuntu-latest
steps:

- name: Checkout repository
uses: actions/checkout@v3
with:
token: ${{ secrets.GITHUB_TOKEN }}
submodules: true

- name: Install JSON-Schema-Validator
run: npm install -g jsonschema

- name: Validate Landing Page Schema
run: jsonschema -i ./cms/landing-page/landing-page.json ./schemas/landing-page.schema.json
57 changes: 57 additions & 0 deletions cms/landing-page/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
# Landing Page

Welcome to the Landing Page CMS! This repository contains a JSON schema for structuring landing page content. We welcome contributions from the community to help improve the CMS and keep the content up to date.

## Overview

The Landing Page CMS is designed to organize content for the Osmosis Zone landing page. It utilizes a JSON schema to define the structure of the content, ensuring consistency and ease of use.

### Upcoming Assets

Currently, the only data maintained in this CMS is the Upcoming Assets. Assets shown here should be valuable and strategic for visitors to see.
Upcoming assets should only include assets launching within the next month, and have a plan for asset integration, as well as substanital market making.

## Schema

### Properties

The Landing Page schema includes the following properties:

- `upcomingAssets`: An array of assets containing information about each asset.
- `assetName`: The name of the asset.
- `symbol`: The symbol of the asset.
- `chainName`: The name of the blockchain or network where the asset originates.
- `logoURL`: The URL to the logo image of the asset. It must be hosted on the Cosmos chain registry master and have a `.png` or `.svg` extension.
- `estimatedLaunchDateUtc`: The estimated launch date and time (UTC) of the asset.
- `osmosisAirdrop`: Indicates whether Osmosis Stakers or LPs are eligible for an airdrop of the asset.

### Example

Here's an example of how content can be structured using the Landing Page schema:

```json
{
"upcoming_assets": [
{
"assetName": "Osmosis",
"symbol": "OSMO",
"chainName": "Osmosis",
"logoURL": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/osmo.png",
"estimatedLaunchDateUtc": "2049-01-01T01:01:01Z",
"osmosisAirdrop": false
},
{
"assetName": "Celestia",
"symbol": "TIA",
"chainName": "Celstia",
"logoURL": "https://raw.githubusercontent.com/cosmos/chain-registry/master/celestia/images/tia.png",
"estimatedLaunchDateUtc": "2049-01-01T01:01:01Z",
"osmosisAirdrop": true
}
]
}
```

## Contributing

Contributions to the schema are welcome. If you identify any issues, have suggestions for improvements, or wish to contribute enhancements, feel free to open an issue or submit a pull request.
12 changes: 12 additions & 0 deletions cms/landing-page/landing-page.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"upcomingAssets": [
{
"assetName": "Osmosis",
"symbol": "OSMO",
"chainName": "Osmosis",
"logoURL": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/osmo.png",
"estimatedLaunchDateUtc": "2049-01-01T01:01:01Z",
"osmosisAirdrop": false
}
]
}
49 changes: 49 additions & 0 deletions schemas/landing-page.schema.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"upcomingAssets": {
"type": "array",
"items": {
"type": "object",
"properties": {
"assetName": {
"type": "string",
"description": "The name of the asset.",
"example": "Osmosis"
},
"symbol": {
"type": "string",
"description": "The symbol of the asset.",
"example": "OSMO"
},
"chainName": {
"type": "string",
"description": "The name of the blockchain or network where the asset originates.",
"example": "Osmosis"
},
"logoURL": {
"type": "string",
"format": "uri",
"description": "The URL to the logo image of the asset.",
"pattern": "^https://raw.githubusercontent.com/cosmos/chain-registry/master/.+\\.png$",
"example": "https://raw.githubusercontent.com/cosmos/chain-registry/master/osmosis/images/osmo.png"
},
"estimatedLaunchDateUtc": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}:\\d{2}Z)?$",
"example": "2049-01-01T01:01:01Z",
"description": "The estimated launch date and time (UTC) of the asset."
},
"osmosisAirdrop": {
"type": "boolean",
"description": "Indicates whether Osmosis Stakers or LPs are eligible for an airdrop of the asset.",
"example": false
}
},
"required": ["assetName", "symbol", "chainName", "logoURL", "estimatedLaunchDateUtc", "osmosisAirdrop"]
}
}
},
"required": ["upcomingAssets"]
}

0 comments on commit dfa0671

Please sign in to comment.