Skip to content

Commit 69e9152

Browse files
authored
Merge branch 'main' into update-MAGs-workflow
2 parents d10ae14 + 6113aae commit 69e9152

File tree

196 files changed

+16815
-15855
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

196 files changed

+16815
-15855
lines changed

.github/workflows/ci.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
types: [run-all-workflow-tests-command]
88
env:
99
GALAXY_FORK: galaxyproject
10-
GALAXY_BRANCH: release_25.0
10+
GALAXY_BRANCH: release_25.1
1111
MAX_CHUNKS: 40
1212
jobs:
1313
setup:

.github/workflows/gh-build-and-test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ jobs:
3535
run: npm install
3636
working-directory: ./website
3737

38-
- name: Build Nuxt 3 Static Site
39-
run: npm run generate
38+
- name: Build Astro Static Site
39+
run: npm run build
4040
working-directory: ./website
4141

4242
- name: Install Playwright

.github/workflows/gh-page-build.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -34,12 +34,12 @@ jobs:
3434
run: npm install
3535
working-directory: ./website
3636

37-
- name: Build Nuxt 3 Static Site
38-
run: npm run generate
37+
- name: Build Astro Static Site
38+
run: npm run build
3939
working-directory: ./website
4040

4141
- name: Deploy to GitHub Pages
4242
uses: peaceiris/actions-gh-pages@v4
4343
with:
4444
github_token: ${{ secrets.GITHUB_TOKEN }}
45-
publish_dir: ./website/.output/public
45+
publish_dir: ./website/dist

.github/workflows/workflow_test.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ jobs:
2222
python-version-list: "[\"3.11\"]"
2323
max-chunks: 4
2424
galaxy-fork: galaxyproject
25-
galaxy-branch: release_25.0
25+
galaxy-branch: release_25.1
2626

2727
# Planemo lint the changed repositories
2828
lint:
@@ -69,7 +69,7 @@ jobs:
6969
python-version-list: "[\"3.11\"]"
7070
repository-list: ${{ needs.setup.outputs.repository-list }}
7171
galaxy-fork: galaxyproject
72-
galaxy-branch: release_25.0
72+
galaxy-branch: release_25.1
7373
check-outputs: false
7474

7575
combine_outputs:

scripts/workflow_manifest.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
import requests
55
import re
66
import shutil
7-
from urllib.parse import quote_plus
7+
from urllib.parse import quote_plus, quote
88
from create_mermaid import walk_directory
99
from planemo.galaxy.workflows import job_template
1010

@@ -230,7 +230,10 @@ def path_to_location(input_item, root):
230230
else:
231231
# Create location URL from path for downloading files
232232
relative_path = os.path.join(root.replace("./", ""), input_item["path"].lstrip("/"))
233-
input_item["location"] = f"https://raw.githubusercontent.com/galaxyproject/iwc/main/{relative_path}"
233+
# URL-encode the path to handle spaces and special characters
234+
# Use safe='/' to keep forward slashes unencoded as path separators
235+
encoded_path = quote(relative_path, safe='/')
236+
input_item["location"] = f"https://raw.githubusercontent.com/galaxyproject/iwc/main/{encoded_path}"
234237
del input_item["path"]
235238
if "filetype" not in input_item:
236239
# Add filetype if not present

website/.gitignore

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,27 @@
1-
# Nuxt dev/build outputs
2-
.output
3-
.data
4-
.nuxt
5-
.nitro
6-
.cache
7-
dist
1+
# build output
2+
dist/
3+
.output/
84

9-
# Node dependencies
10-
node_modules
5+
# generated types
6+
.astro/
117

12-
# Logs
13-
logs
14-
*.log
8+
# dependencies
9+
node_modules/
1510

16-
# Misc
17-
.DS_Store
18-
.fleet
19-
.idea
11+
# logs
12+
npm-debug.log*
13+
yarn-debug.log*
14+
yarn-error.log*
15+
pnpm-debug.log*
2016

21-
# Local env files
17+
# environment variables
2218
.env
23-
.env.*
24-
!.env.example
19+
.env.production
20+
21+
# macOS-specific files
22+
.DS_Store
23+
24+
# playwright
25+
test-results/
26+
test-output.txt
27+
playwright-report/

website/.prettierrc

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
{
2+
"plugins": ["prettier-plugin-astro"],
23
"tabWidth": 4,
34
"printWidth": 120,
45
"bracketSameLine": true

website/README.md

Lines changed: 106 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,141 @@
1-
# Nuxt 3 Minimal Starter
1+
# IWC Website (Astro)
22

3-
Look at the [Nuxt 3 documentation](https://nuxt.com/docs/getting-started/introduction) to learn more.
3+
This is the Astro-based website for the Intergalactic Workflow Commission (IWC), showcasing the Galaxy Workflow Library.
44

5-
## Setup
5+
## 🚀 Quick Start
66

7-
Make sure to install the dependencies:
7+
### Prerequisites
8+
9+
- Node.js 18+
10+
- npm or yarn
11+
12+
### Installation
813

914
```bash
10-
# npm
1115
npm install
16+
```
1217

13-
# pnpm
14-
pnpm install
15-
16-
# yarn
17-
yarn install
18+
### Development
1819

19-
# bun
20-
bun install
20+
```bash
21+
npm run dev
2122
```
2223

23-
## Build workflow manifest
24+
This starts the development server at `http://localhost:4321/`
2425

25-
Build the workflow manifest file with
26+
### Building for Production
2627

2728
```bash
28-
python scripts/workflow_manifest.py
29+
npm run build
2930
```
3031

31-
## Development Server
32+
This generates a static site in the `dist/` directory.
3233

33-
Start the development server on `http://localhost:3000`:
34+
### Preview Production Build
3435

3536
```bash
36-
# npm
37-
npm run dev
37+
npm run preview
38+
```
39+
40+
### Testing
41+
42+
```bash
43+
npm run test
44+
```
3845

39-
# pnpm
40-
pnpm run dev
46+
Runs the Playwright E2E tests.
4147

42-
# yarn
43-
yarn dev
48+
## 📁 Project Structure
4449

45-
# bun
46-
bun run dev
50+
```
51+
├── public/ # Static assets
52+
│ ├── workflow_manifest.json # Generated workflow metadata
53+
│ └── category-descriptions/ # Markdown descriptions for categories
54+
├── src/
55+
│ ├── components/ # Vue components (islands)
56+
│ │ ├── WorkflowCard.vue
57+
│ │ ├── Filters.vue
58+
│ │ ├── WorkflowGrid.vue
59+
│ │ ├── MarkdownRenderer.vue
60+
│ │ ├── GalaxyInstanceSelector.vue
61+
│ │ └── ...
62+
│ ├── layouts/ # Astro layouts
63+
│ │ └── BaseLayout.astro
64+
│ ├── models/ # TypeScript models
65+
│ │ └── workflow.ts
66+
│ ├── pages/ # Astro pages (file-based routing)
67+
│ │ ├── index.astro
68+
│ │ ├── about.astro
69+
│ │ ├── collection/[slug].astro
70+
│ │ └── workflow/[id].astro
71+
│ ├── stores/ # Nanostores for state management
72+
│ │ └── workflowStore.ts
73+
│ ├── utils/ # Utility functions
74+
│ │ ├── manifest.ts
75+
│ │ └── index.ts
76+
│ └── env.d.ts
77+
├── astro.config.mjs # Astro configuration
78+
├── tailwind.config.ts # Tailwind CSS configuration
79+
└── tsconfig.json # TypeScript configuration
4780
```
4881

49-
## Production
82+
## 🧩 Key Technologies
5083

51-
Build the application for production:
84+
- **Astro 5.2**: Static site generator with islands architecture
85+
- **Vue 3**: Interactive components using Vue islands
86+
- **Tailwind CSS**: Utility-first CSS framework
87+
- **Nanostores**: Lightweight state management
88+
- **TypeScript**: Type-safe development
89+
- **Fuse.js**: Fuzzy search
90+
- **Marked**: Markdown rendering
91+
- **Mermaid**: Diagram rendering
92+
- **Playwright**: E2E testing
5293

53-
```bash
54-
# npm
55-
npm run build
94+
## 🏗️ Architecture
5695

57-
# pnpm
58-
pnpm run build
96+
This site uses Astro's islands architecture, where:
5997

60-
# yarn
61-
yarn build
98+
- Pages are pre-rendered at build time (SSG)
99+
- Interactive Vue components are hydrated on the client only where needed (`client:load`)
100+
- State management is handled by Nanostores (lighter than Pinia)
101+
- Workflow data is loaded from `workflow_manifest.json` generated by the Python scripts in the parent directory
62102

63-
# bun
64-
bun run build
65-
```
103+
## 📝 Generating Workflow Manifest
66104

67-
Locally preview production build:
105+
The workflow manifest must be generated before building the site:
68106

69107
```bash
70-
# npm
71-
npm run preview
108+
# From the repository root
109+
python scripts/workflow_manifest.py
110+
```
72111

73-
# pnpm
74-
pnpm run preview
112+
This creates `website-astro/public/workflow_manifest.json` with metadata for all workflows.
75113

76-
# yarn
77-
yarn preview
114+
## 🎨 Styling
78115

79-
# bun
80-
bun run preview
81-
```
116+
The site uses a custom Galaxy color scheme defined in `tailwind.config.ts`:
117+
118+
- **ebony-clay**: Dark navy (primary dark)
119+
- **bay-of-many**: Medium blue (primary)
120+
- **hokey-pokey**: Gold accent
121+
- **chicago**: Gray (secondary)
122+
123+
## 🔄 Migration from Nuxt
124+
125+
This site was migrated from Nuxt 3 to Astro for:
126+
127+
- Better static site generation performance
128+
- Reduced JavaScript bundle size
129+
- Simpler architecture for a content-heavy site
130+
- Islands architecture for selective hydration
131+
132+
Key changes:
133+
134+
- Replaced Nuxt UI components with plain Tailwind
135+
- Replaced Pinia with Nanostores
136+
- Replaced Nuxt pages with Astro pages
137+
- Vue components remain mostly unchanged (used as islands)
138+
139+
## 📄 License
82140

83-
Check out the [deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
141+
See the parent repository for license information.

website/app.config.ts

Lines changed: 0 additions & 11 deletions
This file was deleted.

website/app.vue

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)