Skip to content

Commit 2b60bf3

Browse files
authored
feat(landing): publish QuantLab landing via GitHub Pages (#249)
1 parent 78bd1d6 commit 2b60bf3

5 files changed

Lines changed: 1294 additions & 0 deletions

File tree

.github/workflows/pages.yml

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Deploy Landing To GitHub Pages
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- "landing/**"
9+
- ".github/workflows/pages.yml"
10+
workflow_dispatch:
11+
12+
permissions:
13+
contents: read
14+
pages: write
15+
id-token: write
16+
17+
concurrency:
18+
group: "pages"
19+
cancel-in-progress: true
20+
21+
jobs:
22+
deploy:
23+
environment:
24+
name: github-pages
25+
url: ${{ steps.deployment.outputs.page_url }}
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
31+
- name: Setup Pages
32+
uses: actions/configure-pages@v5
33+
34+
- name: Upload landing artifact
35+
uses: actions/upload-pages-artifact@v3
36+
with:
37+
path: ./landing
38+
39+
- name: Deploy to GitHub Pages
40+
id: deployment
41+
uses: actions/deploy-pages@v4

landing/README.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# QuantLab Landing
2+
3+
Landing estatica preparada para publicarse en GitHub Pages.
4+
5+
## Estructura
6+
7+
- `index.html`
8+
- `styles.css`
9+
- `app.js`
10+
11+
## Preview local
12+
13+
Se puede abrir `index.html` directamente o servir la carpeta `landing/` con cualquier servidor estatico.
14+
15+
## Deploy
16+
17+
El workflow [pages.yml](../.github/workflows/pages.yml) publica el contenido de `landing/` en GitHub Pages cuando hay cambios en `main`.
18+
19+
Requisito del repositorio:
20+
21+
- GitHub Pages debe estar configurado para desplegar desde **GitHub Actions**.

landing/app.js

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
document.querySelectorAll(".site-nav a, .button, .header-cta").forEach((link) => {
2+
link.addEventListener("click", () => {
3+
document.body.dataset.lastAction = link.getAttribute("href") || "";
4+
});
5+
});
6+
7+
const observer = new IntersectionObserver(
8+
(entries) => {
9+
entries.forEach((entry) => {
10+
if (entry.isIntersecting) {
11+
entry.target.classList.add("is-visible");
12+
observer.unobserve(entry.target);
13+
}
14+
});
15+
},
16+
{
17+
threshold: 0.18,
18+
},
19+
);
20+
21+
document.querySelectorAll(".panel, .timeline-step, .principle, .maturity-step").forEach((node) => {
22+
node.classList.add("reveal");
23+
observer.observe(node);
24+
});

0 commit comments

Comments
 (0)