Skip to content

Commit

Permalink
Upstream docs for v1.3
Browse files Browse the repository at this point in the history
  • Loading branch information
skryukov committed Oct 30, 2024
1 parent 56dfc76 commit 6796ae1
Show file tree
Hide file tree
Showing 51 changed files with 10,584 additions and 1 deletion.
41 changes: 41 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
name: Documentation Checks

on:
push:
branches:
- main
paths:
- 'docs/**'
- '.github/workflows/docs.yml'
pull_request:
paths:
- 'docs/**'
- '.github/workflows/docs.yml'

jobs:
check_formatting:
runs-on: ubuntu-latest
name: Check Documentation Formatting

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

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '22'
cache: 'npm'
cache-dependency-path: './docs/package-lock.json'

- name: Install dependencies
working-directory: ./docs
run: npm ci

- name: Check formatting
working-directory: ./docs
run: npm run format:check
14 changes: 13 additions & 1 deletion .github/workflows/push.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,18 @@
name: Testing

on: [push, pull_request]
on:
push:
branches:
- master
paths-ignore:
- 'docs/**'
- '.github/workflows/docs.yml'
- '**.md'
pull_request:
paths-ignore:
- 'docs/**'
- '.github/workflows/docs.yml'
- '**.md'

jobs:
test:
Expand Down
3 changes: 3 additions & 0 deletions docs/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
node_modules
.vitepress/dist
.vitepress/cache
3 changes: 3 additions & 0 deletions docs/.prettierignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
**/node_modules
**/dist
**/cache
156 changes: 156 additions & 0 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
@@ -0,0 +1,156 @@
import { defineConfig } from 'vitepress'
import { tabsMarkdownPlugin } from './vitepress-plugin-tabs/tabsMarkdownPlugin'

const title = 'Inertia Rails'
const description = 'Documentation for Inertia.js Rails adapter'
const site = 'https://inertia-rails.dev'
const image = `${site}/og_image.jpg`

// https://vitepress.dev/reference/site-config
export default defineConfig({
title,
description,

markdown: {
config(md) {
md.use(tabsMarkdownPlugin)
},
},

head: [
['link', { rel: 'icon', href: '/favicon.ico', sizes: '32x32' }],
['link', { rel: 'icon', href: '/icon.svg', type: 'image/svg+xml' }],

['meta', { name: 'twitter:card', content: 'summary_large_image' }],
['meta', { name: 'twitter:site', content: site }],
['meta', { name: 'twitter:description', value: description }],
['meta', { name: 'twitter:image', content: image }],

['meta', { property: 'og:type', content: 'website' }],
['meta', { property: 'og:locale', content: 'en_US' }],
['meta', { property: 'og:site', content: site }],
['meta', { property: 'og:site_name', content: title }],
['meta', { property: 'og:image', content: image }],
['meta', { property: 'og:description', content: description }],
],
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
nav: [
{ text: 'Home', link: '/' },
{ text: 'Guide', link: '/guide' },
{ text: 'Cookbook', link: '/cookbook/integrating-shadcn-ui' },
{
text: 'Links',
items: [
{ text: 'Official Inertia.js docs', link: 'https://inertiajs.com' },
{
text: 'Gems',
items: [
{
text: 'inertia_rails',
link: 'https://github.com/inertiajs/inertia-rails',
},
{
text: 'inertia_rails-contrib',
link: 'https://github.com/skryukov/inertia_rails-contrib',
},
],
},
],
},
],

logo: '/logo.svg',

sidebar: {
'/guide': [
{
items: [
{ text: 'Introduction', link: '/guide' },
{ text: 'Demo app', link: '/guide/demo-application' },
],
},
{
text: 'Installation',
items: [
{ text: 'Server-side', link: '/guide/server-side-setup' },
{ text: 'Client-side', link: '/guide/client-side-setup' },
],
},
{
text: 'Core concepts',
items: [
{ text: 'Who is it for', link: '/guide/who-is-it-for' },
{ text: 'How it works', link: '/guide/how-it-works' },
{ text: 'The protocol', link: '/guide/the-protocol' },
],
},
{
text: 'The basics',
items: [
{ text: 'Pages', link: '/guide/pages' },
{ text: 'Responses', link: '/guide/responses' },
{ text: 'Redirects', link: '/guide/redirects' },
{ text: 'Routing', link: '/guide/routing' },
{ text: 'Title & meta', link: '/guide/title-and-meta' },
{ text: 'Links', link: '/guide/links' },
{ text: 'Manual visits', link: '/guide/manual-visits' },
{ text: 'Forms', link: '/guide/forms' },
{ text: 'File uploads', link: '/guide/file-uploads' },
{ text: 'Validation', link: '/guide/validation' },
{ text: 'Shared data', link: '/guide/shared-data' },
],
},
{
text: 'Advanced',
items: [
{ text: 'Events', link: '/guide/events' },
{ text: 'Testing', link: '/guide/testing' },
{ text: 'Partial reloads', link: '/guide/partial-reloads' },
{ text: 'Scroll management', link: '/guide/scroll-management' },
{ text: 'Authentication', link: '/guide/authentication' },
{ text: 'Authorization', link: '/guide/authorization' },
{ text: 'CSRF protection', link: '/guide/csrf-protection' },
{ text: 'Error handling', link: '/guide/error-handling' },
{ text: 'Asset versioning', link: '/guide/asset-versioning' },
{ text: 'Progress indicators', link: '/guide/progress-indicators' },
{ text: 'Remembering state', link: '/guide/remembering-state' },
{ text: 'Code splitting', link: '/guide/code-splitting' },
{
text: 'Server-side rendering',
link: '/guide/server-side-rendering',
},
],
},
],
'/cookbook': [
{
items: [
{
text: 'Integrations',
items: [
{ text: 'shadcn/ui', link: '/cookbook/integrating-shadcn-ui' },
],
},
],
},
],
},

search: {
provider: 'local',
},

editLink: {
pattern:
'https://github.com/inertiajs/inertia-rails/edit/master/docs/:path',
text: 'Edit this page on GitHub',
},

socialLinks: [
{ icon: 'github', link: 'https://github.com/inertiajs/inertia-rails' },
{ icon: 'x', link: 'https://x.com/inertiajs' },
{ icon: 'discord', link: 'https://discord.gg/inertiajs' },
],
},
})
24 changes: 24 additions & 0 deletions docs/.vitepress/theme/frameworksTabs.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
const localStorageKey = 'vitepress:tabsSharedState'
const ls = typeof localStorage !== 'undefined' ? localStorage : null

const getLocalStorageValue = (): Record<string, string> => {
const rawValue = ls?.getItem(localStorageKey)
if (rawValue) {
try {
return JSON.parse(rawValue)
} catch {}
}
return {}
}

const setLocalStorageValue = (v: Record<string, string>) => {
if (!ls) return
ls.setItem(localStorageKey, JSON.stringify(v))
}

export const setupFrameworksTabs = () => {
const v = getLocalStorageValue()
if (!v.frameworks) {
setLocalStorageValue({ frameworks: 'React' })
}
}
22 changes: 22 additions & 0 deletions docs/.vitepress/theme/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
// https://vitepress.dev/guide/custom-theme
import type { Theme } from 'vitepress'
import { enhanceAppWithTabs } from 'vitepress-plugin-tabs/client'
import DefaultTheme from 'vitepress/theme'
import { h } from 'vue'
import { setupFrameworksTabs } from './frameworksTabs'
import './style.css'

export default {
extends: DefaultTheme,
Layout: () => {
return h(DefaultTheme.Layout, null, {
// https://vitepress.dev/guide/extending-default-theme#layout-slots
})
},
enhanceApp({ app, router, siteData }) {
enhanceAppWithTabs(app)
},
setup() {
setupFrameworksTabs()
},
} satisfies Theme
Loading

0 comments on commit 6796ae1

Please sign in to comment.