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
35 changes: 8 additions & 27 deletions .github/workflows/lint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,9 @@ name: "Lint"

on:
workflow_dispatch:
pull_request:
branches: [master]
push:
branches: [master]
branches: [master, main]
pull_request:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
Expand Down Expand Up @@ -34,29 +33,25 @@ jobs:
continue-on-error: true
run: env

- name: "Setup Node 24"
- name: "Setup Node"
uses: actions/setup-node@v6
with:
node-version: 24

- name: "Install"
run: |
npm ci
run: npm ci

- name: "Build"
if: ${{ !cancelled() }}
run: |
npm run docs:deploy
run: npm run docs:deploy

#- name: "esLint"
#- name: "eslint"
# if: ${{ !cancelled() }}
# run: |
# npm run lint
# run: npm run lint

- name: "prettier"
if: ${{ !cancelled() }}
run: |
npm run prettier:check
run: npm run prettier:check

- name: "yamllint"
if: ${{ !cancelled() }}
Expand All @@ -73,17 +68,3 @@ jobs:
uses: cssnr/actionlint-action@v1
with:
shellcheck_opts: -e SC2129

# Note: this will most likely be split into two different workflows...
- name: "Check Docs Changes"
id: docs-changed
uses: tj-actions/changed-files@9426d40962ed5378910ee2e21d5f8c6fcbf2dd96 # v47.0.6
with:
files: |
docs/**
package*.json

- name: "Verify Docs Build"
if: steps.docs-changed.outputs.any_changed == 'true'
run: |
npm run docs:deploy
12 changes: 8 additions & 4 deletions .github/workflows/pages.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ name: "Pages"
on:
workflow_dispatch:
push:
branches: ["master"]
branches: [master, main]
paths:
- ".github/workflows/pages.yaml"
- ".vitepress/**"
Expand All @@ -15,7 +15,7 @@ env:
purge-domain: "cssnr.com"

concurrency:
group: pages
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
Expand All @@ -29,6 +29,10 @@ jobs:
build: "npm run docs:deploy"
path: ".vitepress/dist"
pages: true
secrets:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
ai_chat_api: ${{ secrets.AI_CHAT_API }}
ai_chat_auth: ${{ secrets.AI_CHAT_AUTH }}

deploy:
name: "Deploy"
Expand Down Expand Up @@ -58,7 +62,7 @@ jobs:
description: ${{ steps.deployment.outputs.page_url }}

post:
name: "Post-Deploy"
name: "Post"
runs-on: ubuntu-latest
timeout-minutes: 5
needs: deploy
Expand All @@ -79,7 +83,7 @@ jobs:
crawler_user_id: ${{ secrets.CRAWLER_USER_ID }}
crawler_api_key: ${{ secrets.CRAWLER_API_KEY }}

- name: "Send Post-Deploy Notification"
- name: "Send Discord Notification"
if: ${{ failure() }}
uses: sarisia/actions-status-discord@eb045afee445dc055c18d3d90bd0f244fd062708 # v1.16.0
with:
Expand Down
8 changes: 5 additions & 3 deletions .github/workflows/preview.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,21 +3,21 @@ name: "Preview"
on:
workflow_dispatch:
push:
branches-ignore: [master]
branches-ignore: [master, main]
paths:
- ".github/workflows/preview.yaml"
- ".vitepress/**"
- "docs/**"
- "package*.json"

concurrency:
group: preview
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
name: "Build"
if: ${{ !contains(github.event.head_commit.message, '#nodev') }}
if: ${{ !contains(github.event.head_commit.message, '#nopreview') }}
uses: cssnr/workflows/.github/workflows/npm-build.yaml@master
permissions:
contents: read
Expand All @@ -26,6 +26,8 @@ jobs:
path: ".vitepress/dist"
secrets:
webhook: ${{ secrets.DISCORD_WEBHOOK }}
ai_chat_api: ${{ secrets.AI_CHAT_API }}
ai_chat_auth: ${{ secrets.AI_CHAT_AUTH }}

deploy:
name: "Deploy"
Expand Down
2 changes: 1 addition & 1 deletion .github/yamllint.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@ ignore-from-file: .gitignore

rules:
line-length:
max: 119
max: 120
11 changes: 10 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# Generic
.idea/
*.iml
.vscode/
cache/
dist/
build/
node_modules/
contributors.json
eslint_report.json
*.log
*.tgz
*.zip
# App
.secrets
.vars
.env
.env.development
9 changes: 7 additions & 2 deletions .prettierignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
.github/disabled
.github/pull_request_template.md
# Tools
dist/
package-lock.json

# Files
.github/disabled/
.github/PULL_REQUEST_TEMPLATE/
.github/pull_request_template.md
9 changes: 5 additions & 4 deletions .prettierrc.json
Original file line number Diff line number Diff line change
@@ -1,19 +1,20 @@
{
"$schema": "https://json.schemastore.org/prettierrc",
"semi": false,
"singleQuote": true,
"printWidth": 120,
"overrides": [
{
"files": ["**/*.html", "**/*.yaml", "**/*.yml"],
"files": ["**/*.vue"],
"options": {
"singleQuote": false,
"printWidth": 120
}
},
{
"files": ["**/*.js", "**/*.mjs", "**/*.css", "**/*.scss"],
"files": ["**/*.html", "**/*.yaml", "**/*.yml"],
"options": {
"tabWidth": 4
"singleQuote": false,
"printWidth": 120
}
}
]
Expand Down
2 changes: 2 additions & 0 deletions .vitepress/config.mts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { defineConfig } from 'vitepress'
import vitePressInstructions from '@cssnr/vitepress-chat/instructions-plugin'

const settings = {
title: 'Zipline Android',
Expand All @@ -22,6 +23,7 @@ export default defineConfig({
server: {
allowedHosts: true,
},
plugins: [vitePressInstructions({ exclude: ['index.md'], outputFilename: 'llms.txt' })],
},

title: settings.title,
Expand Down
45 changes: 23 additions & 22 deletions .vitepress/theme/custom.css
Original file line number Diff line number Diff line change
@@ -1,41 +1,42 @@
:root {
--vp-home-hero-name-color: transparent;
--vp-home-hero-name-background: linear-gradient(120deg, #ff00ff, #18e7ff);
--vp-home-hero-name-color: transparent;
--vp-home-hero-name-background: linear-gradient(120deg, #ff00ff, #18e7ff);

--vp-home-hero-image-background-image: linear-gradient(0deg, #344398 80%, #344398 50%);
--vp-home-hero-image-filter: blur(56px);
--vp-home-hero-image-background-image: linear-gradient(0deg, #344398 80%, #344398 50%);
--vp-home-hero-image-filter: blur(56px);
}

@supports (scrollbar-gutter: stable) {
/* Note: local search is: 768px */
@media (min-width: 769px) {
html {
scrollbar-gutter: stable;
}
html:has(:fullscreen) {
scrollbar-gutter: auto;
}
}
}

body {
overflow-y: scroll;
overflow-x: hidden; /* for animate.css */
overflow-y: scroll;
overflow-x: hidden; /* for animate.css */
}

summary {
cursor: pointer;
cursor: pointer;
}

table th {
text-wrap: nowrap;
text-wrap: nowrap;
}

.search-keywords {
display: none;
display: none;
}

/*!* NOTE: This is a "fix" for the search modal content shift *!*/
/*!* NOTE: This fix has bugs on fullscreen elements like swiper *!*/
/*@supports (scrollbar-gutter: stable) {*/
/* !* Note: local search is: 768px *!*/
/* @media (min-width: 769px) {*/
/* html {*/
/* scrollbar-gutter: stable;*/
/* }*/
/* }*/
/*}*/

.vp-doc p > img,
.vp-doc p > a > img {
display: inline-block;
margin-right: 8px;
display: inline-block;
margin-right: 8px;
}
26 changes: 0 additions & 26 deletions .vitepress/theme/index.js

This file was deleted.

35 changes: 35 additions & 0 deletions .vitepress/theme/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import DefaultTheme, { VPBadge } from 'vitepress/theme'
import './custom.css'

import Layout from './Layout.vue'

import GetOnBadges from './components/GetOnBadges.vue'

import VPSwiper from '@cssnr/vitepress-swiper'
import '@cssnr/vitepress-swiper/style.css'

import VitePressChat from '@cssnr/vitepress-chat'
import '@cssnr/vitepress-chat/style.css'

// https://vitepress.dev/guide/extending-default-theme
// noinspection JSUnusedGlobalSymbols
/** @type {import('vitepress').Theme} */
export default {
...DefaultTheme,

// Layout: Layout,

...VitePressChat(Layout, {
api: import.meta.env.VITE_AI_API,
headers: import.meta.env.VITE_AI_AUTH ? { Authorization: import.meta.env.VITE_AI_AUTH } : undefined,
instructionsFile: 'llms.txt',
}),

enhanceApp({ app }) {
app.component('Badge', VPBadge)

app.component('GetOnBadges', GetOnBadges)

app.component('VPSwiper', VPSwiper)
},
}
Loading