Skip to content

Commit c1d7700

Browse files
committed
docs app generated
1 parent 24856a8 commit c1d7700

25 files changed

+518
-156
lines changed

apps/docs/.eslintrc.json

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
{
2+
"extends": ["../../.eslintrc.json"],
3+
"ignorePatterns": ["!**/*"],
4+
"overrides": [
5+
{
6+
"files": ["*.ts"],
7+
"extends": ["plugin:@nx/nx/angular", "plugin:@angular-eslint/template/process-inline-templates"],
8+
"rules": {
9+
"@angular-eslint/directive-selector": [
10+
"error",
11+
{
12+
"type": "attribute",
13+
"prefix": "Docs",
14+
"style": "camelCase"
15+
}
16+
],
17+
"@angular-eslint/component-selector": [
18+
"error",
19+
{
20+
"type": "element",
21+
"prefix": "docs",
22+
"style": "kebab-case"
23+
}
24+
]
25+
}
26+
},
27+
{
28+
"files": ["*.html"],
29+
"extends": ["plugin:@nx/nx/angular-template"],
30+
"rules": {}
31+
}
32+
]
33+
}

apps/docs/index.html

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<title>MyApp</title>
6+
<base href="/" />
7+
<meta name="viewport" content="width=device-width, initial-scale=1" />
8+
<link rel="icon" type="image/x-icon" href="/favicon.ico" />
9+
<link rel="stylesheet" href="/src/styles.css" />
10+
</head>
11+
<body>
12+
<docs-root></docs-root>
13+
<script type="module" src="/src/main.ts"></script>
14+
</body>
15+
</html>

apps/docs/package.json

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
{
2+
"type": "module"
3+
}

apps/docs/postcss.config.cjs

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
const { join } = require('node:path');
2+
3+
module.exports = {
4+
plugins: {
5+
tailwindcss: {
6+
config: join(__dirname, 'tailwind.config.cjs'),
7+
},
8+
autoprefixer: {},
9+
},
10+
};

apps/docs/project.json

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
{
2+
"name": "docs",
3+
"$schema": "../../node_modules/nx/schemas/project-schema.json",
4+
"projectType": "application",
5+
"targets": {
6+
"build": {
7+
"executor": "@analogjs/platform:vite",
8+
"defaultConfiguration": "production",
9+
"configurations": {
10+
"development": {
11+
"mode": "development"
12+
},
13+
"production": {
14+
"sourcemap": false,
15+
"mode": "production"
16+
}
17+
},
18+
"outputs": [
19+
"{options.outputPath}",
20+
"{workspaceRoot}/dist/apps/docs/.nitro",
21+
"{workspaceRoot}/dist/apps/docs/ssr",
22+
"{workspaceRoot}/dist/apps/docs/analog"
23+
],
24+
"options": {
25+
"main": "apps/docs/src/main.ts",
26+
"configFile": "apps/docs/vite.config.ts",
27+
"outputPath": "dist/apps/docs/client",
28+
"tsConfig": "apps/docs/tsconfig.app.json"
29+
}
30+
},
31+
"serve": {
32+
"executor": "@analogjs/platform:vite-dev-server",
33+
"defaultConfiguration": "development",
34+
"options": {
35+
"buildTarget": "docs:build",
36+
"port": 4200
37+
},
38+
"configurations": {
39+
"development": {
40+
"buildTarget": "docs:build:development",
41+
"hmr": true
42+
},
43+
"production": {
44+
"buildTarget": "docs:build:production"
45+
}
46+
}
47+
}
48+
},
49+
"tags": [],
50+
"sourceRoot": "apps/docs/src"
51+
}

apps/docs/public/.gitkeep

Whitespace-only changes.

apps/docs/public/analog.svg

Lines changed: 1 addition & 0 deletions
Loading

apps/docs/public/favicon.ico

1.6 KB
Binary file not shown.

apps/docs/src/app/app.component.ts

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
import { Component } from '@angular/core';
2+
import { RouterOutlet } from '@angular/router';
3+
4+
@Component({
5+
selector: 'docs-root',
6+
standalone: true,
7+
imports: [RouterOutlet],
8+
template: `
9+
<router-outlet></router-outlet>
10+
`,
11+
})
12+
export class AppComponent {}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import { ApplicationConfig, mergeApplicationConfig } from '@angular/core';
2+
import { provideServerRendering, ɵSERVER_CONTEXT as SERVER_CONTEXT } from '@angular/platform-server';
3+
4+
import { appConfig } from './app.config';
5+
6+
const serverConfig: ApplicationConfig = {
7+
providers: [provideServerRendering(), { provide: SERVER_CONTEXT, useValue: 'ssr-analog' }],
8+
};
9+
10+
export const config = mergeApplicationConfig(appConfig, serverConfig);

apps/docs/src/app/app.config.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { provideFileRouter } from '@analogjs/router';
2+
import { provideHttpClient, withFetch } from '@angular/common/http';
3+
import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
4+
import { provideClientHydration } from '@angular/platform-browser';
5+
6+
export const appConfig: ApplicationConfig = {
7+
providers: [
8+
provideZoneChangeDetection({ eventCoalescing: true }),
9+
provideFileRouter(),
10+
provideClientHydration(),
11+
provideHttpClient(withFetch()),
12+
],
13+
};
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { Component } from '@angular/core';
2+
3+
import { AnalogWelcomeComponent } from './analog-welcome.component';
4+
5+
@Component({
6+
selector: 'docs-home',
7+
standalone: true,
8+
imports: [AnalogWelcomeComponent],
9+
template: `
10+
<docs-analog-welcome />
11+
`,
12+
})
13+
export default class HomeComponent {}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
import { Component } from '@angular/core';
2+
3+
@Component({
4+
selector: 'docs-analog-welcome',
5+
standalone: true,
6+
host: {
7+
class: 'flex min-h-screen flex-col text-zinc-900 bg-zinc-50 px-4 pt-8 pb-32',
8+
},
9+
template: `
10+
<main class="flex-1 mx-auto">
11+
<section class="space-y-6 pb-8 pt-6 md:pb-12 md:pt-10 lg:py-32">
12+
<div class="flex max-w-[64rem] flex-col items-center gap-4 text-center">
13+
<img
14+
class="h-12 w-12"
15+
src="https://analogjs.org/img/logos/analog-logo.svg"
16+
alt="AnalogJs logo. Two red triangles and a white analog wave in front"
17+
/>
18+
<a
19+
class="rounded-2xl bg-zinc-200 px-4 py-1.5 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
20+
target="_blank"
21+
href="https://twitter.com/analogjs"
22+
>
23+
Follow along on Twitter
24+
</a>
25+
<h1 class="font-heading font-medium text-3xl sm:text-5xl md:text-6xl lg:text-7xl">
26+
<span class="text-[#DD0031]">Analog.</span>
27+
The fullstack Angular meta-framework
28+
</h1>
29+
<p class="max-w-[42rem] leading-normal text-muted-foreground sm:text-xl sm:leading-8">
30+
Analog is for building applications and websites with Angular.
31+
<br />
32+
Powered by Vite.
33+
</p>
34+
<div class="space-x-4">
35+
<a
36+
class="inline-flex items-center justify-center text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background bg-zinc-950 text-zinc-50 hover:bg-zinc-950/90 h-11 px-8 rounded-md"
37+
href="https://analogjs.org"
38+
>
39+
Read the docs
40+
</a>
41+
<a
42+
target="_blank"
43+
rel="noreferrer"
44+
class="inline-flex items-center justify-center text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background border border-input hover:bg-zinc-100 hover:text-zinc-950 h-11 px-8 rounded-md"
45+
href="https://github.com/analogjs/analog"
46+
>
47+
Star on GitHub
48+
</a>
49+
</div>
50+
</div>
51+
</section>
52+
<section id="counter-demo" class="container py-8 md:py-12 lg:py-24">
53+
<div class="mx-auto flex max-w-[58rem] flex-col items-center justify-center gap-4 text-center">
54+
<h2 class="text-[#DD0031] font-medium text-3xl leading-[1.1]">Counter</h2>
55+
<p class="max-w-[85%] leading-normal text-muted-foreground sm:text-lg sm:leading-7">
56+
This is a simple interactive counter. Powered by Angular.
57+
</p>
58+
<button
59+
(click)="increment()"
60+
class="inline-flex items-center justify-center text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:opacity-50 disabled:pointer-events-none ring-offset-background border border-input hover:bg-zinc-100 hover:text-zinc-950 h-11 px-8 rounded-md"
61+
>
62+
Count:
63+
<span class="ml-1 font-mono">{{ count }}</span>
64+
</button>
65+
</div>
66+
</section>
67+
</main>
68+
`,
69+
})
70+
export class AnalogWelcomeComponent {
71+
public count = 0;
72+
public increment() {
73+
this.count++;
74+
}
75+
}

apps/docs/src/main.server.ts

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
import '@angular/platform-server/init';
2+
import 'zone.js/node';
3+
4+
import { enableProdMode } from '@angular/core';
5+
import { bootstrapApplication } from '@angular/platform-browser';
6+
import { renderApplication } from '@angular/platform-server';
7+
8+
import { AppComponent } from './app/app.component';
9+
import { config } from './app/app.config.server';
10+
11+
if (import.meta.env.PROD) {
12+
enableProdMode();
13+
}
14+
15+
const bootstrap = () => bootstrapApplication(AppComponent, config);
16+
17+
export default async function render(url: string, document: string) {
18+
const html = await renderApplication(bootstrap, {
19+
document,
20+
url,
21+
});
22+
return html;
23+
}

0 commit comments

Comments
 (0)